![]() |
Ich übernehme keine Verantwortung für Schäden, die durch die hier angebotenen Infos/Scripte entstehen! Sie wurden von mir nach besten Wissen und Gewissen erstellt, können jedoch Fehler enthalten. Alles geschieht auf eigene Gefahr! |
Seit der Einführung des AirStudios 7.7 dient die params.htm nicht mehr als Anlaufstelle um Daten aus dem Lightmanager Air auszulesen (Wie ihr trotzdem die params.htm weiternutzen könnt, steht hier beschrieben). Gründe dafür sind z.B. die schlechte Lesbarkeit der params.htm und die vielen, neu hinzugekommen, Temperaturwerte der Oregon Scientific Thermometer.
Ab sofort werden sämtliche, auslesbaren Daten in sog. JSON Files (nähere Details zu JSON gibt es hier) zur Verfügung gestellt. Diese liegen im jeweiligen Theme Ordner (z.B. C:\Program Files (x86)\airStudio\Theme 1) und sind unter dem Lightmanager Air Webserver abrufbar. Aktuell gibt es die folgenden JSON-Files:
params.json (http://lightmanger.ip/params.json) |
auth enabled | Web-Interface mit Authentifizierung? (0=Nein / 1=Ja) |
time | Aktuelle Uhrzeit |
date | Aktuelles Datum |
weekday | Aktueller Wochentag |
is dst | Sommerzeit? (0=Nein / 1=Ja) |
marker state | Markerzustände (0=Marker aus / 1=Marker an) |
ssid | SSID des verbundenen WLAN |
led off | Front LED dauerhaft deaktiviert? (0=Nein / 1=Ja) |
last update | Zeitpunkt des letzten Updates (UNIX Timestamp) |
firmware ver | Aktuell installierte Firmware Version |
mac addr | MAC Adresse des Lightmanagers |
busy | Busy? (0=Nein / 1=Ja) Wert ändert sich auf 1, wenn Szene/Einzelaktion aktiv |
master ip | IP Adresse des Master Lightmanager Air (Wird nur in der params.htm der Extender angezeigt). Extender senden Daten über Netzwerk an den Master LM Air |
weather.json (http://lightmanger.ip/weather.json) |
os selected | Angabe, ob ein Oregon Scientific Themometer für die Innen- bzw. Außentemperaturanzeige im Webinterface des Lightmanagers genutzt werden soll. Werte 0-10 (0 = nein / 1-10 entspricht dem angegeben Funkkanal des Oregon Scientific Thermometers, dessen Werte verwendet werden sollen). Hinweis: Damit alle 10 Kanäle genutzt werden können, braucht man das „größere“ Modell THGR810. Beim Modell THGR122NX können nur die Kanäle 1-3 genutzt werden. Zusätzlich nutzt das Modell THGR122NX bei Kanal 3 tatsächlich den Kanal 4. |
|→ inside | Angabe für Innen (0-10) |
|→ outside | Angabe für Außen (0-10) |
internal | Aktuelle Temperatur des Themometers im Lightmanager |
|→ temperature | Temperatur in °C |
channel1 | Werte eines angeschlossenen Oregon Scientific Thermometers, welches auf Kanal 1 sendet. |
|→ temperature | Temperatur in °C |
|→ humidity | Luftfeuchtigkeit in % |
channel2 | Werte eines angeschlossenen Oregon Scientific Thermometers, welches auf Kanal 2 sendet. |
|→ temperature | Temperatur in °C |
|→ humidity | Luftfeuchtigkeit in % |
… | |
channel10 | Werte eines angeschlossenen Oregon Scientific Thermometers, welches auf Kanal 10 sendet. |
|→ temperature | Temperatur in °C |
|→ humidity | Luftfeuchtigkeit in % |
owm | Werte von openweathermap.org |
|→ temperature | Temperatur in °C |
|→ humidity | Luftfeuchtigkeit in % |
|→ wind | Wind in m/s |
|→ rain | Regen in mm |
|→ weather id | Openweathermap ID |
paramsrf.json (http://lightmanger.ip/paramsrf.json) |
last rf | Zeigt den letzten Funkcode an, der vom Lightmanager bearbeitet wurde. rf steht für radio frequency. |
Nun kennt ihr schon einmal die genauen Werte der JSON Files des Lightmanagers. Am folgenden PHP-Script zeige ich euch, wie einfach die Abfrage der Werte ist. Natürlich lassen sich JSON Files auch mit fast allen anderen Script- und Programmiersprachen abfragen.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<?php $request1 = file_get_contents("http://lightmanagerip/weather.json"); $request2 = file_get_contents("http://lightmanagerip/params.json"); $json1 = json_decode($request1, true); $json2 = json_decode($request2, true); echo 'Werte eines Oregon Scientific Sensors auf Kanal 2:<br>'; echo $json1['channel2']['temperature'] . '°C'; echo " | "; echo $json1['channel2']['humidity'] . '%<br><br>'; echo 'Markerzustände aus der params.json:<br>'; echo $json2['marker state']; ?> |
Das Script generiert den folgenden Output (sofern ihr bei euch auch einen Oregon Scientific Sensor auf Kanal 2 laufen habt. Ansonsten einfach den Kanal channel2 anpassen). Die Werte werden dabei von zwei JSON Files (weather.json & params.json) zeitgleich gezogen.
Habt ihr die Werte in der Form vorliegen, so könnt ihr jede beliebige Weiterverarbeitung (Speicherung in eine Datenbank, Formatierung, etc.) durchführen. Im Gegensatz zur Abfrage der params.htm ist die Abfrage der JSON-Files deutlich Ressourcen schonender, da viele Overhead Information (HTTP Abfrage) entfallen.