froggitt HP1000SE Daten in eigene Datenbank schreiben

Für Geräte von froggit
heinzi.tuberkel
Offline
Beiträge: 4
Registriert: 05 Sep 2022, 17:09

froggitt HP1000SE Daten in eigene Datenbank schreiben

#1

Beitrag von heinzi.tuberkel »

Hallo zusammen,
vor ca. 1 Monat habe ich mir eine froggit HP1000SE pro single sensor edition zugelegt.
Vor allem fand ich interessant, dass man die Daten auch an einen eigen Server senden kann.
Bei meiner Suche vorher habe ich bemerkt, dass auch andere die Daten gerne in ihrem eigenen Format speichern möchten.

Ich habe Zuhause eine Synology Diskstation, die auch einen Webserver bereitstellt. An diesen sende ich jetzt die Daten.
Das PHP-Script, mit dem ich die Daten auswerte und in meine Datenbank schreibe habe ich für alle intessierten an diesen Beitrag angehängt.
Das Script kann die Daten auf Wunsch zusätzlich oder statt dessen in eine .csv-Datei und/oder eine Protokolldatei schreiben.

Die Erklärung, wie das einzustellen ist, habe ich in die index.php-Datei als Kommentar hineingeschrieben.
Unten ist sie vorab nochmal.
Viel Spaß damit !
Ach ja: Die PHP-Datei darf jeder gerne verwenden, ändern und weitergeben wie er/sie möchte. Nur Geld nehmen soll dafür keiner!


/*
Dieses Script erwartet Wetterdaten wie sie von der Wetterstation "HP1000SE PRO" (z.B. von froggit) gesendet werden können.
Dazu muss in der Wetterstation die Einstellung Setup->Weather Server->Customized aktiviert werden. Protokolltyp "Same As Ecowitt".
Hostname: Adresse eines eigenen Webservers. Path: ein selbst erzeugtes Verzeichnis auf dem Server.
In dem Verzeichnis wird nur diese Datei benötigt.

Für Protokolldatei und CSV-Datei sollten (wenn gewünscht) die entsprechenden Unterverzeichnisse erzeugt werden. Andernfalls die
Einträge "$csvfile" und/oder "$logfile" anpassen oder leer (="") machen.

Zum Eintragen in eine MySQL-Datenbank müssen die Einstellungen $srv, $db, $usr, $pw, $tbl (siehe unten) korrekt ausgefüllt werden.

Zum Testen der Funktion kann die Adresse
http://<Hostname>/<Path>/index.php
im Browser aufgerufen werden.
Dann wird je nach gültigen Einträgen
- eine Log-Datei
- eine CSV-Datei
- eine Datenbanktabelle "wetter" mit einem Datensatz
erzeugt und ein "Dummy"-Datensatz im Browser angezeigt.
*/
Dateianhänge
wetter.zip
(2.42 KiB) 117-mal heruntergeladen
Peter
Offline
Beiträge: 245
Registriert: 14 Dez 2021, 12:03
Wohnort: Petershagen
Hat sich bedankt: 21 mal
Danksagung erhalten: 10 mal

Re: froggitt HP1000SE Daten in eigene Datenbank schreiben

#2

Beitrag von Peter »

Hallo Heinz, sorry wenn ich daneben liegen sollte, vielleicht bin ich ja auch paranoid :lol:.... Aber bei mir haben sofort die Alarmglocken geschellt, als ich gesehen habe, dass ein neues Foren-Mitglied, was sich nach einem Bazillus benennt, als erstes ein Script im Forum veröffentlicht ;).... Aber vielleicht stellen unsere Scriptgurus ja schnell fest, dass es harmlos ist (ich bin leider zu doof dazu), dann entschuldige ich mich und gratuliere zu deinem Einstieg.
heinzi.tuberkel
Offline
Beiträge: 4
Registriert: 05 Sep 2022, 17:09

Re: froggitt HP1000SE Daten in eigene Datenbank schreiben

#3

Beitrag von heinzi.tuberkel »

OOOPS sorry,
darüber hatte ich überhaupt nicht nachgedacht. :o :D
Das ist seit längerem mein Benutzername in vielen Foren und kommt aus einem Comic von Walter Moers aus den 80ern.
Hat eigentlich gar nichts mit Viren zu tun - und schon gar nicht mit Computerviren.. Wenn's jemand interessiert, ich hab' die eingescannte Seite mit dem Comic hier eingestellt: https://files.tailorsoft.de/HeinziTuberkel.JPG (auch dieser Link öffnet nur, was er anzeigt ;) ).
Wer sich das PHP-Scritpt ansieht, wird gleich erkennen, dass es harmlos ist.
Wenn man's als Textdatei herunterlädt und mit einem einfachen Editor (z.B. Notepad) öffnet könnte sowieso nichts passieren.
... oh stimmt, ich hatte ein ZIP gepostet. Dann hier nochmal als Textdatei.
index.txt
(6.48 KiB) 92-mal heruntergeladen
Sorry, ich wollte niemandem Angst machen. Ich hatte nur schon vor Jahren nach so einer Möglichkeit gesucht (also Wetterdaten in eigenem Format zu speichern), und wollte jetzt meine Lösung mit anderen Teilen.
Zum Lesen musste ich mich bisher in keinem Forum anmelden. Das hab' ich dann erst jetzt gemacht, als ich was zu sagen hatte. :oops:

Habe übrigens noch einen Fehler entdeckt. Anscheinend wird der Luftdruck nicht richtig gespeichert. Wenn ich Zeit hatte, den Fehler zu korrigieren, stell' ich 'ne neue Version ein.
- hilft das zur allgemeinen Beruhigung?
Peter
Offline
Beiträge: 245
Registriert: 14 Dez 2021, 12:03
Wohnort: Petershagen
Hat sich bedankt: 21 mal
Danksagung erhalten: 10 mal

Re: froggitt HP1000SE Daten in eigene Datenbank schreiben

#4

Beitrag von Peter »

Gut, dass du das kurz erläutert hast. Ich gehe auch davon aus, dass unsere Moderatoren schon eingestiegen wären, wenn irgendwas nicht stimmen würde. Na dann willkommen hier :beer:!
heinzi.tuberkel
Offline
Beiträge: 4
Registriert: 05 Sep 2022, 17:09

Nachtrag: froggitt HP1000SE Daten in eigene Datenbank schreiben

#5

Beitrag von heinzi.tuberkel »

Habe heute gesehen, dass das Script auf einen Fehler läuft, wenn nicht alle Datenfelder übergeben werden. Deshalb habe ich es noch etwas erweitert bzw. die Fehlertoleranz erhöht.
Hier die neue Version.
Dateianhänge
wetter 2022-12-26.zip
(3.21 KiB) 83-mal heruntergeladen
heinzi.tuberkel
Offline
Beiträge: 4
Registriert: 05 Sep 2022, 17:09

froggitt HP1000SE Daten in eigene Datenbank schreiben - Erweiterung des Scriptes

#6

Beitrag von heinzi.tuberkel »

Wegen einer Anfrage eines anderen Users, der das Script nicht zum Laufen bekam, habe ich mal eine ausführlichere Beschreibung erarbeitet und dabei gleich noch ein Problem auf manchen Synology Diskstation Servern erkannt und behoben. Die erweiterte Script-Datei habe ich wieder diesem Post angehängt.

So, mal sehen, ob ich's halbwegs verständlich erklären kann. Ich fang einfach bei Adam und Eva an.

Die Syno muss als Webserver (Web Station) eingerichtet sein.
Ob/wie der Zugriff funktioniert testest du am besten mit einer kleinen php-Datei mit einer Zeile:

Code: Alles auswählen

<?php echo "Hallo Welt, ich bin da"; phpinfo();
Diese schiebst du (z.B. als "test.php") in den "web" Ordner auf der Syno - oder den passenden Unterordner, wenn du mit virtellen Hosts arbeitest.

Wenn alles klappt kannst sie jetzt aufrufen mit http://<meinSynoServer>/test.php
Dann müsste der Browser den Text "Hallo Welt..." anzeigen und eine ausführliche Liste der vorhandenen PHP-Module.
Damit mein Wetter-Script funktioniert, muss in der Liste das Modul "mysqli" aufgelistet sein.
Wenn es fehlt, musst du es in den "PHP-Einstellungen" der Syno Nachinstallieren (ggf. dazu nachfragen).

Auf der Syno muss MySQL (bzw. MariaDB) installiert sein.
Am besten auch phpMyAdmin, um die Datenbanken zu verwalten.
Mit phpMyAdmin (oder irgendeinem anderen MySQL-Verwaltungsprogramm) legst du eine Datenbank und einen User mit Lese- und Schreibzugriff auf diese Datenbank. Für das Script reicht es aus, wenn der User nur lokalen Zugriff bekommt (Hostname "localhost" oder "127.0.0.1").

Jetzt musst du die Script-Datei anpassen:
In den Zeilen ab 25 musst du die Einstellungen für die Datenbank anpassen und deine Daten eintragen:
$srv = "localhost"; //Servername/-adresse - kann meist so bleiben
$db = "wetter"; //Der Name der Datenbank, die du gerade eingerichtet hast.
$usr = "wetter"; //Der Benutzer-/Anmeldename mit Schreibzugriff auf diese Datenbank
$pw = "4Wttr+Lkal"; //Das Passwort für diesen User
$tbl = "wetter"; //Name der Tabelle für die Wetterdaten - kann meist so bleiben.
Wenn die in $tbl angegebene Tabelle nicht existiert, wird sie automatisch angelegt. So kann man bei Bedarf auch eine neue Tabelle erzeugen (z.B. jährlich), ohne die alte Tabelle zu löschen oder leer zu machen.

... hah!!
Wie gut, dass ich heute mal auf 'nem anderen Syno-Server arbeite: hier sind zwei MariaDB-Server installiert: MariaDB 5 und MariaDB 10.
Da gab's Probleme, weil der MariaDB 10-Server einen anderen Port und Socket verwendet.
Ich habe das Script angepasst/erweitert, so dass man jetzt bei Bedarf den Zugriff auf die DB mit anderem Port und Socket aktivieren kann:
Zeilen 31 ff:
//Wenn auf der Syno MariaDB 5 und MariaDB 10 parallel installiert sind, muss meist für Mariadb10
//diese Einstellung (Port 3307, Socket /run/mysqld/mysqld10.sock) aktiviert werden.
//Also dann die Kommentarzeichen "//" für die beiden folgenden Zeilen entfernen.
//$dbport = 3307;
//$dbsock = "/run/mysqld/mysqld10.sock";

Jetzt kannst du die "index.php"-Datei auf den webserver kopieren. Dort wo diese Datei steht, müssen zwei Unterverzeichnisse angelegt werden: "csv" und "log".

Jetzt kannst du das Wetter-Script direkt vom Browser auf der Syno aufrufen. Bei mir ist das z.B. "http://diskstation/wetter/"
Dann kommt im Browser eine Dummy-Antwort:
'16.01.2023 12:47:05','2023-01-16 12:47:05',-17.8,0,-17.8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,'192.168.15.153'
Das sind die Leerdaten der Sensoren.
Diese werden wenn alles funktionert in die Datenbank und in eine CSV-Datei (im Unterordner) geschrieben.
In der erzeugten log-Datei müsste ein leerer Eintrag "Array" mit der aufrufenden IP-Adresse stehen.
Dateianhänge
wetter 2023-01-16.zip
(3.38 KiB) 85-mal heruntergeladen
Wetterzentrum NRW
Offline
Beiträge: 7
Registriert: 11 Dez 2020, 10:14
Wohnort: Swisttal
Danksagung erhalten: 2 mal
Kontaktdaten:

Re: froggitt HP1000SE Daten in eigene Datenbank schreiben

#7

Beitrag von Wetterzentrum NRW »

Guten Abend,

ich bin seit ca. einer Woche auch stolzer Besitzer der HP1000SE-Pro Single Sensor Edition, letztendlich auch durch die sehr guten Informationen hier im Forum :thumbup:

Nun würde ich gerne die Daten meiner Station in einer einfachen Tabelle auf meine Webseite integrieren und bin bei der Suche nach Lösungen hier auf dieses Script gestoßen. PHP ist für mich nicht unbedingt Neuland, die Grundlagen beherrsche ich und auch in HTML und co bin ich fit. Das Script läuft auch bereits auf meinem Webserver und macht auch seinen Dienst so wie es soll. Einzigst bei der Windgeschwindigkeit habe ich das Problem das völlig andere Werte gespeichert werden als meine Station anzeigt/liefert.

Beispiel Datensatz von jetzt grade 20:41 Uhr ... Station meldet am Display und bei Ecowitt: WR: 233 Grad, Speed: 7km/h in die DB werden folgende Werte geschrieben: WR: 233 Grad, vWind: 2.10 und auch der Böenwert ist komplett anders. Wo ist der Fehler? Oder steh ich aufm Schlauch und chek irgendwas nicht? xD Temperaturen, Feuchte und co stimmen alle.

Desweiteren interessiert mich, wie kommt man an die Namen der einzelnen Werte die über POST übergeben werden wennn die Station diese sendet... also an die Bezeichnung der einzelnen Werte die man eben dann über PHP abrufen kann? Ich plane in Zukunft noch einen Bodenfeuchtesensor und zusätzlichen Sensor für die 5cm Bodentemp anzubringen und wüsste daher gerne wie ich diesen dann über PHP anzusprechen habe. Ich hoffe ich habe mich verständlich genug ausgedrückt .

Freue mich über Rückmeldung.

Grüße
Froggit HP1000SE-Single Sensor Edition

https://www.wetterzentrum-nrw.de
Benutzeravatar
olicat
Offline
Beiträge: 2003
Registriert: 07 Dez 2020, 20:33
Wohnort: Hohen Neuendorf
Hat sich bedankt: 26 mal
Danksagung erhalten: 411 mal
Kontaktdaten:

Re: froggitt HP1000SE Daten in eigene Datenbank schreiben

#8

Beitrag von olicat »

Hi!

Vermutlich zeigt Deine lokale Anzeige metrische Daten an. Die Konsole selbst uebertraegt die Daten jedoch im imperialen System.
Beim Wind muesstest Du also einfach mph nach kmh umrechnen (oder eben in die Einheit, die Du benoetigst.

Zu den Keys:
Eine vollstaendige Liste gibt es nicht. Zumindest kenne ich eine solche nicht. Die Keys sind jedoch meist logisch aufgebaut - Du erkennst also am Namen, worum es geht.

Oliver
Wetterzentrum NRW
Offline
Beiträge: 7
Registriert: 11 Dez 2020, 10:14
Wohnort: Swisttal
Danksagung erhalten: 2 mal
Kontaktdaten:

Re: froggitt HP1000SE Daten in eigene Datenbank schreiben

#9

Beitrag von Wetterzentrum NRW »

Hey,

vielen Dank für die schnelle Antwort.

Hatte ich auch vermutet, 2,1 mph ergibt jedoch 3,3 km/h. Gemessen wurden ja aber 7 Km/h.. daher passt das irgendwie nicht.
Froggit HP1000SE-Single Sensor Edition

https://www.wetterzentrum-nrw.de
Benutzeravatar
olicat
Offline
Beiträge: 2003
Registriert: 07 Dez 2020, 20:33
Wohnort: Hohen Neuendorf
Hat sich bedankt: 26 mal
Danksagung erhalten: 411 mal
Kontaktdaten:

Re: froggitt HP1000SE Daten in eigene Datenbank schreiben

#10

Beitrag von olicat »

Hi!

In welcher Einheit zeigt denn Ecowitt.net bzw. die Konsole an?
Es gibt da ja nicht nur kmh und mph, sondern auch m/s und Knoten.

Oliver
Antworten