Stap 7: Robin API-integratie
Ontkurkt Studios gebruikt de Robin vergadering kamer reserveringssysteem voor al onze vergaderzalen. Via het systeem, kunnen we plannen kamers en detecteren als de kamer is bezet. Robin biedt dat een Rustgevende API voor ontwikkelaars aan beide Lees kamer staat en volledige kamer boekingen. Voor deze toepassing gebruiken we de API's 'current_event' veld om te bepalen of de op lucht licht waarschuwing moet op.
Haal de broncode
Om te beginnen, uitgeput aan dit project Github repo en pak een nieuwe kopie van de scripts.
git clone https://github.com/UncorkedStudios/on-air-light.gi...
Genereren van een toegangstoken op Robin
Voor toegang tot de API Robin, moet u om een unieke API-token te genereren.
Vind uw Robin ruimte-ID
- Log in op uw dashboard Robin en selecteer "Weergave ruimte" voor de kamer die u koppelen aan het wilt op Air Light
- De ruimte-ID is de laatste tekenreeks in de URL voor de pagina ruimte details. Het is dus in ons geval, de URL voor Echo kamer eindigt in ruimten/902, 902.
De belangrijkste Python script
Onze script vraagt de huidige kamer staat (in dit geval, SPACEID 902) en controles om te zien of het current_event-veld aanwezig. Als dat zo is, wordt uitvoer 1 "op". Anders is ingesteld op "off".
Daarnaast gebruiken we de oproep van de explorerhat.light.blue.pulse() te vervagen van de blauwe LED eenmaal per tweede voor een visuele "hartslag".
Bewerken op-air-light.py en wijzigt u de volgende regels zodat deze overeenkomen met uw token en ruimte-ID
# configuration constants # Robin access token _ACCESSTOKEN = <YOUR_ROBIN_ACCESS_TOKEN>
# Space ID from Robin_SPACEID = <YOUR_SPACE_ID>
Maak het script uitvoerbaar:
chmod a+x on-air-light.py
Daarna, we gebruiken 'parvenu' op-air-light.py bij het opstarten automatisch wordt gestart, en geven ons controle van de dienst op run-time.
Installeren van upstart
sudo apt-get install upstart
Het systeem zal sommige waarschuwen over het vervangen van de traditionele init.d (dat is het punt!), maar u kunt hen veilig sluiten.
Als op-air-light.py op een andere locatie dan uw gebruikersmap is, bewerken de volgende regels in op-air-light.conf aan, ter vervanging van /home/pi/on-air-light.py:
script /home/pi/on-air-light.py > /var/log/onairlight.log 2>&1 end script
Kopieer vervolgens op-air-light.conf in/etc/init. Het script zal de op-air-licht-service starten na netwerken is geladen, en zal blijven proberen te verbinden met Robin elke minuut totdat het is succesvol, verbindingsfouten logboekregistratie te /var/log/onairlight.log.
sudo cp on-air-light.conf /etc/init
Opnieuw opstarten wanneer het proces voltooid is, en weer inloggen op de shell. Op dit moment moet de op-air-licht-service worden uitgevoerd:
sudo service on-air-light status on-air-light start/running, process <process_id>
U ziet de blauwe LED zachtjes fading op-en-off. Testen van de API-verbinding, maakt u een onmiddellijke kamer reserveren voor uw kamer in Robin, en het licht moet komen op binnen 60 seconden. Als dat niet het geval is, neem een kijkje op het logboek service in /var/log/onairlight.log op fouten.