Logo Juerg Wenger

Wetterdaten via ELV FS20-Sensoren

Um die aktuellen Wetterdaten zu erhalten habe ich mich für die Wetterstation von ELV entschieden. Nicht zuletzt, weil sich diese perfekt in die geplante Homeautomation einbinden lässt (angeblich). Als Sensoren verwende ich den KS300 mit integrierten Sensoren von Temperatur, Luftfeuchte, Windgeschwindigkeit sowie Regenmenge. Ebenfalls wird sofort (naja dehnnarer Begriff des Herstellers) übermittelt, wenn es regnet.

KS300 Wettersensor mit Temperatur-, Feuchte-, Windgeschwindigkeit- und RegenmengensensorIPWE1 ist die Hardware um die es in diesem Artikel geht. Der IP-Wetterdaten- empfänger
Innenanzeige der gesendeten WertePERL-Skript ist die Software um die erhaltenden Wetterdaten des IPWE1 auf der Homepage darstellen zu können (und in der Datenbank zu speichern)

Die Übermittlung der Daten geschieht über ein proprietäres Funkprotokoll von ELV auf der Frequenz von 868 MHz. Es handelt sich dabei um das FS20-Protokoll. Die Reichweite wird von Hersteller ELV mit 100m angegeben. Im Praxistest ergeben sich aber Reichweiten weit darunter. Natürlich spielen die räumlichen Gegebenheiten bei Funkgeräten eine Rolle. Die Distanz vom KS300 zum IPWE1 beträgt bei mir knapp 20m und teilweise habe ich schon dabei Empfangsprobleme. Dabei ist lediglich eine Mauer dazwischen. Diese Empfangsleistung ist sehr schwach, denn der Hausautomationsempfänger liegt drei Mauern weiter in der Wohnung und kann die KS300-Daten problemlos erfassen...

Die Wetterdaten werden auch vom Homeautomation-Empfänger verarbeitet. Aber dieser ist nicht geeigent um die Wetterdaten in einer Datenbank abspeichern zu können. Mehr zum Thema Hausautomation gibt es hier. Ich will in diesem Beitrag abllerdings zeigen, wie die Wetterdaten aus dem IPWE1 ausgelesen und beliebig weiterverarbeitet werden können.

Der Empfänger hat eine Webseite, welcher die empfangenen Werte darstellt. Diese Seite hat aber den gravierenden Nachteil, dass keine Zeit zu den Datensätzen verfügbar ist. Es wird lediglich die vergangene seit dem Empfang des Datensatzes angezeigt.

--> Fazit: Nicht gerade praktisch.

Auch eine Datenabfrage über den eingebauten Telnet-Server wäre grundsätzlich möglich. Allerdings ergaben Tests nicht allzugute Resultate (der Prozessor ist etwas langsam und kann nicht alle Befehle die ihm gesendet werden sofort beantworten). Daher habe ich auf den vorhandenen PERL-Skript von Thomas Hoerndlein zurückgegriffen und ihn als mein erstes PERL-Projekt weiterentwickelt um die erhaltenen Daten eben auch in einer MysQL Datenbank zu speichern (und auf der Homepage anzuzeigen).

Der Skript benötigt eine grundlegende PERL-Installation sowie ein paar PERL-Module:

LWP::UserAgent
HTML::TreeBuilder
HTML::FormatText
Proc::Daemon
IO::Socket
Proc::PID::File
DBI

Der PERL-Skript und die Datenbank-Definition kann hier in der Version 1.31 heruntergeladen werden.

Change History:

Version 1.0Thomas Hoerndlein (www.hoendlein.de), 04.07.2008
 
  • 1. Version

Version 1.1Thomas Hoerndlein (www.hoendlein.de), 15.08.2008
 
  • Prozessor und Netzwerklast verringert

Version 1.2Thomas Hoerndlein (www.hoendlein.de), 23.08.2008
 
  • Neues Feld "Raining" hinzugefügt
  • Benutzt Process-id-file wie in UNIX-Umgebungen üblich

Version 1.3Juerg Wenger (www.juergwenger.ch), 24.10.2009
 
  • Wetterdaten werden auf Wunsch in eine MySQL-Datenbank geschrieben

Version 1.31Juerg Wenger (www.juergwenger.ch), 18.12.2009
 
  • Datenbankstruktur geändert um die Wetterdaten filtern zu können

Dieser Script wird nicht mehr weiterentwickelt, da die ganze Wetterstation umgebaut und nicht mehr das unzuverlässige FS20-Funkprotokoll verwendet wird. Neu werden alle Wetterdaten (und noch viiiel mehr als jetzt) mittels OneWire übertragen und ausgewertet. Mehr dazu gibt es hier. Fragen hierzu bitte hier klicken.