Wetterdaten aus dem LM speichern und verarbeiten

Antworten
ThoBlu
Beiträge: 14
Registriert: Sa 24. Sep 2016, 21:13

Fr 23. Nov 2018, 19:36

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://<LM Air IP>/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://<LM Air IP>/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.
Wetter.JPG
Wetter.JPG (86.4 KiB) 37198 mal betrachtet
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
rsk4you
Beiträge: 49
Registriert: Mo 25. Jul 2016, 20:46

Sa 26. Jan 2019, 15:56

Ich erhalte seit einiger Zeit gar keine Wetterdiagramme mehr :( . Muss ich irgendwo was einstellen ? Ich hatte die mal aufrufen können. Jetzt geht nichts mehr. Auch nach Restart oder so...
ThoBlu
Beiträge: 14
Registriert: Sa 24. Sep 2016, 21:13

So 27. Jan 2019, 16:22

Das Wetterdiagramm ist wohl bei einem der letzten Updates rausgeflogen.

Mittlerweile generiere ich das Diagramm mit Hilfe eines MS Reportservers.
Das Interesse im Forum schein aber nicht vorhanden zu sein. Deswegen habe ich hier auch keine Fortschritte mehr gepostet.
Benutzeravatar
rtwl
Beiträge: 1269
Registriert: So 30. Dez 2018, 18:08

So 27. Jan 2019, 16:33

Ist für den MS Reportserver ein immer laufender Webserver notwendig?
ich hatte schon großes Interesse, aber dafür andauernd einen PC/Notebook laufen zu lassen möchte ich nicht.
Peter
ThoBlu
Beiträge: 14
Registriert: Sa 24. Sep 2016, 21:13

So 27. Jan 2019, 17:55

Ein Webserver ist nicht notwendig, da der Reportserver seinen eigenen mitbringt. Es ist jedoch so, dass ein permanent laufendes System notwendig ist. Der LM speichert die Wetterdaten nicht, sondern liefert nur die aktuellen Daten. Deswegen läuft bei mir ein Notebook rund um die Uhr. Auf diesem läuft u.a. ein SQL Server mit Reportserver. Die Wetterdaten werden stündlich vom LM abgeholt, im SQL Server gespeichert und bei Bedarf im über den Reportserver aufbereitet.

Das Ganze sieht dann so aus:
Dateianhänge
Reportserver.jpg
Reportserver.jpg (156.28 KiB) 36976 mal betrachtet
Benutzeravatar
rtwl
Beiträge: 1269
Registriert: So 30. Dez 2018, 18:08

So 27. Jan 2019, 20:54

Schade, dass es der LM selber nicht kann, aber ich denke das brauchen die wenigsten, deswegen hat jbmedia dies nicht integriert.
ein ständig laufender PC ist nicht meins, für die paar Daten ;)
aber danke für die Info 👍🏼
Peter
Massimo
Beiträge: 20
Registriert: Sa 18. Mär 2017, 10:00

Mo 6. Mai 2019, 20:40

Hallo ThoBlu

Mich würde sowas auch interessieren. Könnte dies auf meinem Synology installieren. Allerdings hab ich sowas noch nie gemacht.
Ich möchte einfach die Temperaturen der Mess-Sensoren abrufen können und diese über einen Diagramm auflisten. Am liebsten über die
ganze Messperiode.

Gruss Massimo
Benutzeravatar
BooosesThaSnipper
Beiträge: 323
Registriert: Mi 24. Feb 2016, 15:10

Fr 10. Mai 2019, 07:28

Hi,

eine günstige / einfache Methode wäre Grafana auf nen Raspberry zu installieren.
Habe ich seit 2 Jahren mal gemacht und seit dem hab ich alle Werte gespeichert.

Grüße
Markus
Benutzeravatar
rtwl
Beiträge: 1269
Registriert: So 30. Dez 2018, 18:08

Sa 11. Mai 2019, 23:47

Eine noch günstigere Variante wäre ein Smartphone und die Tasker app mit der Zusatzapp "AutoTools". Mit dieser Zusatzapp AutoTools kann Tasker eine JSON lesen und deren Werte in Variablen speichern.
Über einen HTTP POST Befehl in Tasker kann man dann die Variablen via Google Formular direkt in eine Google Tabelle schreiben lassen.
Diesen task dann einfach stündlich (oder auch minütlich) ausführen lassen, und schon hat kann man die Daten sammeln.

Ich bin da zwar noch ein wenig am testen, aber die ersten Tests waren vielversprechend.
Peter
Benutzeravatar
rtwl
Beiträge: 1269
Registriert: So 30. Dez 2018, 18:08

Di 14. Mai 2019, 12:29

Inzwischen läuft diese Konfiguration bei mir perfekt.
das Smartphone hängt am Ladegerät mit einer Funksteckdose. Da man mit tasker je nach Akkustand die Steckdose schalten kann, ist es auch für den Akku kein Problem. (15% Akku -> Funksteckdose EIN. / 100% -> AUS)

wenn ma im airStudio die aktuellen Sensor Werte in den HTTP POST Befehl packen könnte, wäre das dann noch einfacher zu erfüllen.
Peter
Antworten