Z-Weather Wetterstation in FHEM integrieren, Daten in mySQL-DB loggen und visualisieren
Egal ob Onlinewetterdienst oder eigene Wetterstation, jedes Smart Home kann Informatinen der Außenwelt gut gebrauchen, um weiterführende Aktionen auszulösen. Mit dem Z-Weather existiert ein energieautarker Multisensor, der durch Solarzellen angetrieben wird und über das Z-Wave-Funkprotokoll erfasste Wetterinformationen an FHEM übermitteln kann. Neben Windstärke und -geschwindigkeit werden eine Reihe weiterer nützlicher Informationen ermittelt. Dazu gehören die relative Luftfeuchtigkeit samt Temperatur und Taupunkt, die Lichtstärke sowie der aktuelle Luftdruck.
Wie sich die Z-Weather so schlägt und wie die Sensordaten an eine mySQL-Datenbank übertragen werden können, um daraufhin im Web visualisiert zu werden, ist Inhalt des nachfolgenden Blogpost.
Z-Weather zusammenbauen
Geliefert wird die Z-Weather (Affiliate-Link) in einigen Einzelteilen, die erst einmal zusammengeschraubt werden müssen.
An dieser Stelle vielen Dank an die Organisation Z-Wave Deutschland, die mir die Z-Weather kostenfrei zur Verfügung gestellt hat.
Die vier Windschaufeln sind dabei in wenigen Minuten installiert und dann kann es auch fast schon losgehen. Die Schaufelräder sind – im direkten Vergleich zur im Artikel HomeMatic FHEM-Wetterstation per UDP in Loxone integrieren vorgestellten “Konkurrenz” – übrigens enorm groß.
Pimp my Z-Weather
Beim Zusammenschrauben ist mir aufgefallen, dass die Verkabelung der Solarzelle nicht gegen Feuchtigkeit geschützt ist. Die an der Innenseite der Solarzelle angelöteten Kontaktestellen liegen dabei komplett offen, was bei Regen wohl eher ungünstig ist.
Mit einem kleinen Stück Isolierband lässt sich das Problem aber glücklicherweise recht schnell lösen.
Das Ergebnis sieht dann einigermaßen vertretbar aus. Jetzt sollten die Kontakte des Z-Weather hoffentlich effektiv gegen Niederschlag und Korrosion geschützt sein.
Vor Inbetriebnahme erstmal Akku laden
Vor der Inbetriebnahme muss der verbaute Kondensator erst einmal durch Solarstrom geladen werden. Bei direkter Sonneneinstrahlung dauert der Ladevorgang laut Anleitung drei Stunden, ansonsten bis zu einem halben Tag.
Integration in FHEM
Um zu prüfen, ob bereits genug Strom für den nachfolgenden Anlernvorgang zur Verfügung steht, wird die Anlerntaste auf der Unterseite des Z-Weather einmal kurz gedrückt. Blinkt nun die direkt daneben angebrachte rote LED einmal auf, steht dem Anlernvorgang nichts mehr im Wege, ansonsten muss weiter gewartet und geladen werden.
Um die Wetterstation in FHEM zu integrieren, wird eine Z-Wave-Schnittstelle benötigt, wie im Blogpost Howto: Z-Wave Gateway und Geräte in FHEM anlernen beschrieben. Genutzt wird in diesem Fall das Z-Wave Me RaZberry Modul ZME_RAZ_EU (Affiliate-Link), welches nur eine von mehreren Möglichkeiten darstellt, um Z-Wave-Geräte in FHEM anzubinden.
Alle Infos dazu ebenfalls in oben verlinktem Beitrag.
Der im Howto beschriebene Z-Wave-Adapter – in FHEM als “ZWAVE1” geklariert – wird an dieser Stelle auch genutzt, um die Z-Weather anzulernen. Damit der Adapter neue Geräte inkludieren kann, wird der FHEM-Konsolenbefehl
set ZWAVE1 addNode on
ausgeführt.
Daraufhin muss der Anlernknopf der Z-Weather drei Mal kurz hintereinander gedrückt werden. Wenige Sekunden später sollte die Wetterstation dann bereits im Raum “ZWAVE” auftauchen und es können alle relevanten Readings eingesehen werden. Sofern das nicht klappt, kann die Wetterstation auch einmal durch längeres Drücken der Taste (mind. 2 Sekunden) in den Werkszustand versetzt werden. Danach einfach nochmals den Anlernvorgang starten.
Sobald die Zentrale in FHEM auftaucht, kann der Inklusionsmodul (Anlernmodus) mit dem FHEM-Konsolenbefehl
set ZWAVE1 addNode off
wieder deaktiviert werden und mit dem FHEM-Konsolenbefehl
rename ZWave_SENSOR_MULTILEVEL_15 TE.ZWeather
erhält die im Raum ZWave auftauchende Wetterstation “ZWave_SENSOR_MULTILEVEL_15” dann auch den passenderen Namen “TE.ZWeather”.
Die Wetterstation wird mit dem FHEM-Konsolenbefehl
attr TE.ZWeather room ZWave,Terrasse
zusätzlich noch in den Raum “Terrasse” aufgenommen.
Z-Wave im Außenbereich installieren
Jetzt kann die Z-Weather an einem passenden Platz im Außenbereich montiert werden. In meinem Fall wird die Wetterstation erst einmal temporär neben der bereits fest installatieren HomeMatic-Wetterstation platziert, um die Messwerte miteinander vergleichen zu können.
Datenbank für FHEM-Loggings aufbauen
Genutzt wird eine frisch erstellte mySQL-Datenbank bei HostEurope, jedoch kann natürlich jeder selbst auf seinem RPI eine entsprechende Datenbank erstellen. Alle Informationen dazu finden sich im FHEM-Wiki.
Um die Datenbank vernünftig verwalten zu können, wird nachfolgend Sequel Pro genutzt.
Hier wird ein neuer Favorit hinzugefügt (1), die passenden Login-Daten hinterlegt (2), der erstelle Eintrage gespeichert (3) und eine Verbindung zum Server aufgebaut (4).
Nach dem Login auf der mySQL-Datenbank müssen erst einmal zwei Tabellen (history und current) erzeugt werden, welche später mit den FHEM-Readings versorgt werden:
CREATE TABLE history (TIMESTAMP TIMESTAMP, DEVICE varchar(32), TYPE varchar(32), EVENT varchar(512), READING varchar(32), VALUE varchar(32), UNIT varchar(32)); CREATE TABLE current (TIMESTAMP TIMESTAMP, DEVICE varchar(32), TYPE varchar(32), EVENT varchar(512), READING varchar(32), VALUE varchar(32), UNIT varchar(32))
Dieser Befehl wird in Sequel Pro im “Abfrage”-Feld eingetragen und mit dem Mauszeiger markiert (1) und durch den Button “Auswahl ausführen” abgesendet (2). Sofern es keine Fehler gab (3), sollten die gerade erzeugten Tabellen in der Liste auftauchen (4).
FHEM für DB-Logging vorbereiten
Damit ein Logging auf die Datenbank möglich ist, müssen einige Dinge konfiguriert werden. Dazu erst einmal per Terminal auf dem FHEM-Server (hier ein RPI2) einloggen:
ssh pi@192.168.3.86
Die IP-Adresse muss natürlich jeder selbst austauschen. Das Standardpasswort bei einem Raspbian-Image lautet “raspberry” (ohne Anführungszeichen).
Als erstes wird das benötigte Modul “libdbi-perl” nachinstalliert (braucht man evtl. gar nicht…):
sudo aptitude install libdbi-perl
Weiterhin werden noch benötigte Perl-Module installiert:
sudo apt-get -y install libclass-dbi-mysql-perl
Daraufhin wird in der Template-Datei db.conf die Verbindungsdaten zur Datenbank hinterlegt. Dazu wird die Datei per nano-Editor geöffnet:
sudo nano /opt/fhem/contrib/dblog/db.conf
Bei den Zeilen 7-11 werden die Auskommentierungen (#) entfernt und die Login-Daten zur mySQL-Datenbank hinterlegt:
%dbconfig= ( connection => "mysql:database=db117xxxx-fhem;host=vwp0009.webpack.hosteurope.de;port=3306", user => "db117xxxx-fhem", password => "xxxx", );
So sieht das dann im nano-Editor aus:
FHEM-Wetterdaten in mySQL-DB schreiben
Ähnlich wie beim normalen FileLog wird ein define für das DBLog-Modul erzeugt. Nachfolgend der FHEM-Konsolenbefehl, welcher alle neuen Events von TE.ZWeather in die Datenbank schreibt:
define DBLog_TE.ZWeather DbLog /opt/fhem/contrib/dblog/db.conf TE.ZWeather.*
Wenn nicht alles in die Datenbank geschrieben werden sollen, um diese nicht unnötig vollzumüllen, können mit der Funktion DbLogExclude verschiedene Readings ausgeschlossen werden. In diesem Fall energy, model, modelId, transmit, wakeup:
attr TE.ZWeather DbLogExclude energy,model,modelId,transmit,wakeup
Daneben git es auch andere Möglichkeiten, um nur die gewünschten Readings zu übertragen, dazu bitte im FHEM-Wiki nachlesen.
Nach einigen Minuten sollten neue Werte der Wetterstation an FHEM übermittelt und direkt in die Datenbank geschrieben werden. Dies lässt sich direkt in Sequel Pro überprüfen:
Hier kann man die zuletzt übermittelten Werte von TE.Wetterstation (HomeMatic-Wetterstation) und TE.ZWeather (ZWave-Wetterstation) in der Tabelle “current” einsehen. Wie man sieht, sind hier noch einige “unerwünschte” Readings übermittelt worden, da ich oben erläuterte DbLogExclude-Funktion erst später eingefügt hatte.
Bei der Anbindung einer externer Datenbanken ist es zudem wichtig die Verbindung mit dem passenden FHEM-Befehl regelmäßig neu aufzubauen. Das liegt daran, dass die DB-Verbindung bspw. durch eine DSL-Zwangstrenung verloren geht und daraufhin keine Daten mehr im DB-Log landen. Dieses Problem lässt sich durch einen einfachen at-Befehl lösen, welcher die Verbindung über den “reopen”-Befehl bspw. alle fünf Minunten neu aufbaut:
define DBLog_TE.ZWeatherReopen at +*00:05:00 set DBLog_TE.ZWeather reopen
Damit sollte auch dieses Problem aus der Welt geschafft sein.
Datenbank-Werte auf einer Website visualieren
Neben der Visualisierung durch FHEM-Plots lassen sich die in der Datenbank gespeicherten Werte bspw. auch auf einer Website – wie diesem Blogposts – darstellen. Wie das geht, wird Matthias in Kürze beschreiben. Hier ein erster Screenshot vom Ergebnis.
Aus meinem täglichen Leben
Auf den ersten Blick macht die ZWeather bis auf einige Kleinigkeiten – allem voran die freiliegenden Kontakte der Solarzelle – insgesamt eine gute Figur. Optisch wirkt die Station jedenfall sehr dezent, obgleich die Windschaufeln gerade im Vergleich zur HomeMatic-Wetterstation schon wirklich gewaltig sind.
Mal sehen, wie sich die ZWeather in nächster Zeit im direkten Vergleich zur HomeMatic-Wetterstation so schlagen wird. Um die Messwerte beider Stationen vergleichen zu können, werden die Daten auf einer Website visualisiert.
Insgesamt muss wohl jeder selbst entscheiden, welche Messwerte benötigt werden bzw. welche Wetterstation die gewünschten Sensoren mitbringt. So finde ich es bspw. klasse, dass die ZWeather neben Windgeschwindigkeit, Temperatur, Luftfeuchtigkeit und Helligkeit auch noch den Luftdruck misst. Andererseits fehlen natürlich andere Informationen zur Windrichtung, Niederschlag und Niederschlagsmenge, wie es etwa die HomeMatic-Zentrale liefert.
Auch bin ich recht gespannt, wie gut das batterielose Konzept auf Dauer funktionieren wird. Die Umsetzung sieht dabei vor, dass die Messwerte bei ausreichender Sonneneinstrahlung alle fünf Minuten übermittelt werden. Sinkt die Kapazität des eingebauten Batteriespeichers ab, vergrößert sich dieses Intervall, um Engerie zu sparen. Energie, die dann bspw. vorgehalten wird, um bei einem aufkommendem Sturm auch bei schwindender Akkukapazität sofort eine Benachrichtigung auszulösen zu können. Auch hier wird sich zeigen, wie gut das Ganze in der Realität funktionieren wird.
Welche Wetterstation ist euer Favorit?
31 Kommentare
Das ist ja eine sehr schöne Visualisierung. Ich finde die Idee zur Veröffentlichung der Daten (z.B. für Nachbarn) sehr gut, allerdings recht aufwändig. Ist die Visualisierung auch mit anderen Wetterdaten auf diese Weise möglich?
Zur Wetterstation selbst bin ich auf die Folgeberichte gespannt. Ich hätte mir die Wetterstation schon längst gekauft, wäre ich nicht über einige negative Bewertungen gestoßen, was die Qualität der Daten betrifft. Deine Beschreibung der offenen Lötstelle lässt mich nicht gerade mehr Vertrauen in das Gerät fassen ….
Auf diese Weise lässt sich eigentlich alles visulisieren, was man sich vorstellen kann. Die Z-Weather macht bis auf die Lötstellen an der Solarzelle schon einen ordentlichen Eindruck. Über die Datenqualität kann ich noch nicht allzu viel sagen, wobei die Temperaturwerte bei Sonnenschein augenscheinlich schon etwas zu hoch waren. Vermutlich liegt das am schwarzen Gehäuse, das sich dadurch aufheizt?!.. Naja mal die nächsten Tage/Wochen abwarten, dann kann ich bzw. die Auswertung mehr dazu sagen.
Grüße
Jörg
Ich habe jetzt eine MySQL Datenbank am laufen, die Daten von meinen LaCrosse Sensoren werden erfolgreich dorthin geschickt.
Als nächstes werde ich schauen ob ich ein Raspi 2 als Datenbank nutzen kann, mal schauen ob die Leistung reicht. Die Zuverlässigkeit vom Flash-Speicher ist auch ein potentielles Problem…
Benutze mein RasPi 1 und 3 nun schon seit ca. 1 Jahr um fhem und ne mysql daten zu speichern. Funktioniert ohne Probleme. Die Graphen erstelle ich per Munin da ich das system eh schon habe.
Gruß clemens
Sehr schön….ich find die Idee eine SQL-Datenbank zu nutzen um die Daten vom Smarthome zu sichern super! Man könnte alles dort speichern und analysieren……
FHEM ist wirklich nicht geeignet für sowas.
Ich könnte mir auch eine MySQL Datenbank in einem VM auf dem QNAP NAS vorstellen, das würde genauso gehen, oder?
Klar…
Wäre deiner Meinung nach MySQL die beste Lösung, oder gibt es bessere Alternativen?
Puh,
da bin ich ehrlich gesagt auch nicht so der Datenbankexperte…
Ist der Z-Wave auch mit HomeMatic kombinierbar?
Wie meinst du das? Für Z-Wave benötigt man ein eigenes Funkgateway (z.B. Z-Wave Me RaZberry Modul) und für HomeMatic ebenfalls (z.B. HMLan-Adapter). Mit FHEM als Zentrale lassen sich beide Protokolle gemeinsam nutzen, sodass man bspw. die Wetterinfos des Z-Weather auch dazu nutzen kann, um einen HomeMatic-Jalousieaktor zu schalten (z.B. aufgrund der Helligkeit).
Grüße
Jörg
In Ergänzung zur Antwort von Jörg:
Um mit beiden Protokolle kommunizieren zu können ist es möglich mit zwei Aufsteckmodulen nur einem Gateway (zB. einem Raspberry Pi) auszukommen.
Voraussetzung: Die Hausautomationssoftware versteht beides (zB. FHEM).
Nunja, ich bin im Besitz einer HomeMatic und würde gern die Daten der Z-Wave Me mit dem Raspberry Funkmodul daran nutzen, ist dies möglich oder benötige ich zusätzlich FHEM als Kommunikations Schnittstelle?
Wollte Jalousieaktoren und Beleuchtung darüber steuern.
Was genau setzt du aktuell ein? Eine HomeMatic CCU2-Zentrale? Diese versteht nur das HomeMatic-Protokoll.
Wenn du HomeMatic und ZWave-Komponenten gemeinsam nutzen möchtest, benötigst du eine “unabhängige” Smart-Home-Software wie FHEM.
“Um die Datenbank vernünftig verwalten zu können, wird nachfolgend Sequel Pro genutzt.”
Gibt es auch ein Pedant aus der Microsoft oder Linux Welt?
Ich nutze HeidiSQL. das funktioniert super!
Ich habe jetzt auch HeidiSQL installiert, es funktioniert wirklich gut und kostet tatsächlich nix.
“Neben der Visualisierung durch FHEM-Plots lassen sich die in der Datenbank gespeicherten Werte bspw. auch auf einer Website – wie diesem Blogposts – darstellen. Wie das geht, wird Matthias in Kürze beschreiben. Hier ein erster Screenshot vom Ergebnis.”
Wann ist denn “in Kürze”? Ich bin schon gespannt.
Hallo,
ich habe die Z-Weather auch noch hier liegen und möchte sie bald aufs Dach bringen.
In der Anleitung steht ja extra drin, dass es aufgrund des schwarzen Gehäuses zur Verfälschung der Temperatur kommen kann, falls die Station im direkten Sonnenlicht montiert wird.
Hast du der Sache schon irgendwie Abhilfe geschaffen?
Ich überlege gerade, ein kleines Dächlein aus Edelstahl oder so über der Z-Weather anzubringen, um sie zumindest etwas zu verschatten.
Toll ist das aber nicht.
Und an der nördlichen Hauswand kann und möchte ich das Teil eigentlich auch nicht anbringen.
Außerdem müsste ja dann wieder ein Ausleger dran, um die Ergebnisse des Windmesser nichts zu sehr zu verfälschen…
Viele Grüße
Nope, habe nichts geändert. Die Temperaturwerte scheinen aber dennoch recht valide zu sein.
Grüße
Jörg
Hallo,
Wie sieht der Stand der Dinge bezügliche der Visualisierung aus – würde mich sehr interesseieren.
Danke & Gruss
es würde mich auch interessieren 🙂 Mein MySQL Datenbank hat inzwischen einige GB gesammelt…..was ich mit den Daten machen soll ist mir unklar! 🙂
Eine Visualisierung wäre der Hammer.
Ich habe Highcharts angeschaut, ich habs aber noch nicht hin bekommen eine Visualisierung zu erstellen.
..habe dasselbe Problem mit Highcharts. Schön wäre wenn der Raspi dynamisch die MySQL Daten visualisieren kann und dann automatisiert (Bsp. via cronjob) als Grafikdatei auf eine Webseite lädt.
Hallo!
Nachdem ich auf meinem RP-3 erfolgreich Z-Wave installiert habe, möchte ich jetzt meine Z-Weather mit FHEM verbinden und ihre Werte dann per http zu Loxone schicken.
Wie finde ich denn heraus, welche Werte/Readings von der Z-Weather in FHEM ankommen? Den Rest würde ich dann irgendwie mit eurer Anleitung für http-Verbindung mit Loxone versuchen hinzubekommen. UDP möchte ich aus Sicherheitsgründen nicht verwenden.
Vielen Dank,
Christian
Klick einfach dein angelerntes Z-Weather-Device in FHEM an und es werden dir alle verfügbaren Readings als Liste angezeigt. Oder meinst du etwas anders?
Grüße
Jörg
Danke (bin nur kurz auf der Leitung gestanden).
Leider habe ich es noch nicht geschafft, die aktuellen Daten meiner Z-Weather-Station per http nach Loxone zu schicken. Ich stecke bei der Aktualisierung der fhem.cfg. Hat jemand Tipps für mich? 😉
“Neben der Visualisierung durch FHEM-Plots lassen sich die in der Datenbank gespeicherten Werte bspw. auch auf einer Website – wie diesem Blogposts – darstellen. Wie das geht, wird Matthias in Kürze beschreiben. Hier ein erster Screenshot vom Ergebnis.”
darf ich nochmals nachfragen, wann wir das hier lesen dürfen?
Das Thema ist augenscheinlich verschütt gegangen. Ich hake mal bei Matthias nach, aber vermutlich wird das auch so schnell nicht nachgeliefert, sorry.
Hab mit Matthias gequatscht. Er hatte das Thema auf dem Schirm, hätte aber “einen halben Programmierkurs” schreiben müssen, damit man als Einsteiger versteht, wie es funktioniert. Aus diesem Grund wird es wohl vorerst nichts mit einer Howto-Anleitung. :/
Schade. Vielleicht findet sich jemand aus der Community, der als Gastautor das beschreibt?
Vermutlich schwierig, da das Thema augenscheinlich recht komplex ist und auf Leserseite sehr viele Grundlagen in Webprogrammierung voraussetzen würde.
Moin Jörg, moin Kinnaz,
ich möchte zu der Station gerne mal ein paar Fragen los werden, falls die überhaupt wer beantworten kann?
1. Wie wird die Helligkeit ermittelt? Doch nicht etwa über die Solarzelle?! Das wäre ziemlich dumm (um es mal freundlich auszudrücken)…
Mal unterstellt, das dem (zum Glück) nicht so ist, wo sitzt dann der Sensor dafür? Ich konnte den auf den Bildern nicht ausmachen…
2. Wenn bei 1. nicht die Solarzelle den Sensor macht, ist vielleicht schon mal jemand auf die Idee gekommen, das ganze Ding zu pimpen und mit zusätzlichen Zellen zu mehr Potenz zu verhelfen? Ich könnte mir vorstellen, das dem Teil bei länger anhaltendem Trübsinn- Wetter und Anordnung der Zelle an der Seite schon mal der Saft aus geht…
Ich trage mich mit dem Gedanken, mir so ein Teil anzuschaffen (falls es die noch gibt), da mir die HM- Station für die angegebenen Leistungsdaten und den bekannten Problemen des Regensensors deutlich zu teuer ist. Wenn also zumindest Frage 1 beantwortet werden kann, würde ich den Rest selbst erforschen und der Allgemeinheit zur Verfügung stellen…
Eine Anmerkung hätte ich noch: Weiter oben wurde irgendwo berichtet, das auf Grund des schwarzen Gehäuses mal gerne falsche (zu hohe) Temperaturwerte gemessen werden… Schon mal wer auf die Idee gekommen, das ganze Teil weiß oder chrom zu lackieren?
DLzG
Micha