Hallo Leute,
abgesehen von den üblichen Funktionen des LM Air, wie Licht, Rolladen usw, benutze ich ihn auch noch zum speichern und verarbeiten von Wetterdaten.
Ich habe fünf Bresser Thermo/Hygrometer eingebunden und diese verschiedenen Zonen zugeordnet.
Die aktuellen Daten sind dann unter http:///weather.json verfügbar.
Bis hierhin ist alles eine Standardfunktionalität des LM.
Um das Ganze aber zu speichern und auswerten zu können, musste eine DB her.
Ich habe mich dann aus verschiedene Gründen für eine MS SQL 2016 Express auf Windows Server 2016 entschieden. Das ganze läuft auf einem Notebook, das in meinem Netzwerk auch noch andere Aufgaben, wie DNS, DHCP, Webserver und Videoüberwachung übernimmt.
MS SQL 2016 Express ist kostenlos, hat aber Einschränkungen in Bezug auf RAM und CPU und der SQL Agent funktioniert nicht.
RAM und CPU sind nicht so tragisch, da die DB sowieso sehr klein ist, dass der Agent nicht funktioniert ist ärgerlich, lässt sich aber mit dem Windows Taskplaner und SQLCMD ersetzen.
Wie funktioniert das Ganze nun:
Ich habe einen Scheduled Task eingerichtet, der die Daten vom LM abholt, in die DB importiert und dann anschließend in Zahlen konvertiert.
1. Abholen der Daten vom LM
Um die Daten von LM abzuholen benuzte ich das Tool curl.exe
curl.exe http:///weather.json >wetter.json
2. Importieren der Daten aus der weather.json in eine temp. Tabelle der DB
SQL Script über SQLCMD
3. Konvertieren der Daten in der temp. Tabelle von NVARCHAR in die benötigten Datentypen, TINYINT und DECIMAL
SQL Script über SQLCMD
4. Löschen der temp. Tabelle
SQL Script über SQLCMD
Die Schritte 2 bis 4 sind so notwendig, da das Datenformat der weather.json NVARCHAR ist. Um die Daten aber sinnvoll auszuwerten, müssen es aber Zahlen sein.
Die Schritte 1 bis 4 laufen jede Stunde ab, also habe ich 24 Werte pro Sensor und Tag.
Derzeit importiere ich die Daten in eine Excel Tabelle und erstelle damit ein Diagramm.
[ATTACHMENT NOT FOUND]
Irgendwann muss ich mich mal mit dem MS Reportserver beschschäftigen, damit ich das Diagramm in eine Webseite einbinden kann. Vielleicht gibt es ja einen hier im Forum, der Reports erstellen kann.
Bei Interesse kann ich gerne die SQL Scripte zur Erstellung der DB und zum Import der Daten hier einstellen
abgesehen von den üblichen Funktionen des LM Air, wie Licht, Rolladen usw, benutze ich ihn auch noch zum speichern und verarbeiten von Wetterdaten.
Ich habe fünf Bresser Thermo/Hygrometer eingebunden und diese verschiedenen Zonen zugeordnet.
Die aktuellen Daten sind dann unter http:///weather.json verfügbar.
Bis hierhin ist alles eine Standardfunktionalität des LM.
Um das Ganze aber zu speichern und auswerten zu können, musste eine DB her.
Ich habe mich dann aus verschiedene Gründen für eine MS SQL 2016 Express auf Windows Server 2016 entschieden. Das ganze läuft auf einem Notebook, das in meinem Netzwerk auch noch andere Aufgaben, wie DNS, DHCP, Webserver und Videoüberwachung übernimmt.
MS SQL 2016 Express ist kostenlos, hat aber Einschränkungen in Bezug auf RAM und CPU und der SQL Agent funktioniert nicht.
RAM und CPU sind nicht so tragisch, da die DB sowieso sehr klein ist, dass der Agent nicht funktioniert ist ärgerlich, lässt sich aber mit dem Windows Taskplaner und SQLCMD ersetzen.
Wie funktioniert das Ganze nun:
Ich habe einen Scheduled Task eingerichtet, der die Daten vom LM abholt, in die DB importiert und dann anschließend in Zahlen konvertiert.
1. Abholen der Daten vom LM
Um die Daten von LM abzuholen benuzte ich das Tool curl.exe
curl.exe http:///weather.json >wetter.json
2. Importieren der Daten aus der weather.json in eine temp. Tabelle der DB
SQL Script über SQLCMD
3. Konvertieren der Daten in der temp. Tabelle von NVARCHAR in die benötigten Datentypen, TINYINT und DECIMAL
SQL Script über SQLCMD
4. Löschen der temp. Tabelle
SQL Script über SQLCMD
Die Schritte 2 bis 4 sind so notwendig, da das Datenformat der weather.json NVARCHAR ist. Um die Daten aber sinnvoll auszuwerten, müssen es aber Zahlen sein.
Die Schritte 1 bis 4 laufen jede Stunde ab, also habe ich 24 Werte pro Sensor und Tag.
Derzeit importiere ich die Daten in eine Excel Tabelle und erstelle damit ein Diagramm.
[ATTACHMENT NOT FOUND]
Irgendwann muss ich mich mal mit dem MS Reportserver beschschäftigen, damit ich das Diagramm in eine Webseite einbinden kann. Vielleicht gibt es ja einen hier im Forum, der Reports erstellen kann.
Bei Interesse kann ich gerne die SQL Scripte zur Erstellung der DB und zum Import der Daten hier einstellen
<t></t>