====== Portal 300 / shack open close monitor | P300 ====== {{tag>project infrastructure shackoperations process hardware software}} {{infrastruktur:portal300:p1090326-annotated.jpg?600}} **Legende** (Auszug aus [[infrastruktur:portal300#aufbau|Portal300 / Aufbau]] ) * APU * WLAN-Accesspoint für SSID "Portal-Dev" * Zentrale Steuerung für * ESP32 "Status" * ESP32 "Status" * empfängt den Zustand des Portals via USB serial * übermittelt den Zustand des Portals über das shack-WLAN zum Internetservice Das Open/Close-Monitoring basiert auf der Annahme, dass die shack-Türe nur unverschlossen ist, wenn der shack geöffnet ist. ===== Abstract ===== An dem unteren USB-Port der APU ist ein ESP32-µC angeschlossen. Er verbindet sich mit dem WLAN "shack". Erhält er das Byte 0x12 von der APU, beginnt er alle 60 Sekunden einen HTTPS-Request, "Ping" genannt, an den API-Endpoint unter https://api.shackspace.de/v1/space/notify-open?auth_token=**** zu senden. (**** repäsentiert hier ein Shared Secret, es ist im Passwort-Tresor unter dem Stichwort "API" zu finden). Serverseitig liegt api2.shackspace.de unter /srv/api.shackspace.de die Softwareinstallation. Der Prozess ./api lauscht auf Port 8081 nach den "Pings" und schreibt den Epoch-Zeitstempel in die Datei /srv/api.shackspace.de/www/last-seen.txt . Der HTTPS-Request wird dabei nicht direkt von api2 behandelt, sondern wird von dem HTTP-Proxy auf proxy2.shackspace.de vermittelt. Anhand des Alters dieses Zeitstempels entscheiden weitere API-Funktionen, wie https://api.shackspace.de/v1/space und https://api.shackspace.de/v1/spaceapi ob der shack als "open" oder "closed" reportet wird. Die Anzeige im Kopf der Landingpage greift auf https://api.shackspace.de/v1/space zurück.