wfrog die Software für Wetterstationen

Als Software für die Wetterstation habe ich mich für wfrog (Externer Link www.wfrog.org) entschieden. Die Software ist nicht zu überladen, lässt sich leicht anpassen und sieht im Gegensatz zu anderen Lösungen sehr gut aus. Eine lauffähige Installation benötigt aber doch etwas Arbeit. Ich habe ein HowTo geschrieben wie man die Software installiert, konfiguriert, an das Layout seiner Homepage anpasst und eine Schnittstelle zur Haussteuerung erstellen kann.

Als Plattform dient ein Rapsberry Pi mit der Standardinstallation des Raspian OS Jessie 4.1 vom 2015-09-24. Es wurden vorab alle Pakete aktualisiert.

Installation & Konfiguration wfrog

Download der Sourcen

cd /usr/src
sudo wget https://github.com/wfrog/wfrog/releases/download/wfrog-0.8.2/wfrog_0.8.2-1_all.deb

Früher konnten die Sourcen über http://wfrog.googlecode.com/files/wfrog_0.8.2-1_all.deb geladen werden. Dieser Link ist nicht mehr aktuell.

Installation von wfrog (Fehler ignorieren)

sudo dpkg --install wfrog_0.8.2-1_all.deb

Abhängigkeiten auflösen (wfrog wird jetzt installiert)

sudo apt-get install -f -y

Update wfrog

Subversion installieren

sudo apt-get install subversion

Altes Verzeichnis löschen (geht vielleicht auch eleganter aber so klappt es 🙂 )

sudo rm -rf /usr/lib/wfrog

Checkout (Download) der aktuellen wfrog (Nightly Build) Version. Bei mir war es die Revision 959.

cd /usr/src
sudo svn checkout -r 959 http://wfrog.googlecode.com/svn/trunk/ wfrog

Nach dem Checkout alles in das wfrog Programm Verzeichnis verschieben

sudo mv /usr/src/wfrog /usr/lib/wfrog

Setup wfrog

Beim ersten Start von wfrog müssen verschiedene Parameter wie Wetterstation und Maßeinheiten angegeben werden. Der Parameter -S steht für nur Setup, so können wir gleich weitermachen.

sudo wfrog -S

Umstellung auf SQLite Datenbank

Installation SQLite Datenbank

sudo apt-get install sqlite3

Datenbank erstellen

cd /usr/lib/wfrog
sudo sqlite3 /var/lib/wfrog/wfrog.sql < database/sqlite3.sql

Storage Konfiguration anpassen

sudo joe /usr/lib/wfrog/wfcommon/config/storage.yaml

Den CSV Absatz auskommentieren

#storage: !user
#    choices:
#        root: !csv
#            path: /var/lib/wfrog/wfrog.csv
#        default: !csv
#            path: data/wfrog.csv

beim sqlite3 Absatz die Kommentarzeichen entfernen

storage: !user
    choices:
       root: !sqlite3
           database: /var/lib/wfrog/wfrog.sql
       default: !sqlite3
           database: data/wfrog.sql

FTP-Upload aktivieren

Konfigurationsdatei öffnen

sudo joe /usr/lib/wfrog/wfrender/config/wfrender.yaml

Folgenden Bereich anpassen

        ftp: !scheduler
            period: 600  # in seconds
            delay: 60 # in seconds, delay before start rendering
            renderer: !ftp
                host: HOST.COM 
                username: USERNAME
                password: PASSWORD
                directory: DIRECTORY
                renderers:
                    3hours.html: !file
                        path: /tmp/3hours.html
                        renderer: !include
                            path: default/3hours.yaml
                    24hours.html: !file
                        path: /tmp/24hours.html
                        renderer: !include
                            path: default/24hours.yaml
                    30days.html: !file
                        path: /tmp/30days.html
                        renderer: !include
                            path: default/30days.yaml
                    365days.html: !file
                        path: /tmp/365days.html
                        renderer: !include
                            path: default/365days.yaml

Diese Zeilen hinzufügen damit später nicht die “7 Tage” Seite fehlt

                    7days.html: !file
                        path: /tmp/7days.html
                        renderer: !include
                            path: default/7days.yaml

Vorbereitung Smart Home Schnittstelle

Webserver installieren

sudo apt-get install apache2

PHP5 SQLite Erweiterung installieren

sudo apt-get install php5-sqlite

Ich habe die PHP-Skripte unter Downloads abgelegt. Ich werde die PHP-Skripte als Cronjob ausführen und die Werte alle 5 Minuten an den Loxone Miniserver schicken.

Layout und Sprache

Für das Layout habe ich Farbwerte und Texte in folgenden Dateien angepasst

/usr/lib/wfrog/wfrender/templates/default/main.html
/usr/lib/wfrog/wfrender/config/default/charts.yaml

wfrog automatisch und manuell starten

wfrog automatisch starten (Fehlermeldung kann ignoriert werden)

sudo update-rc.d wfrender defaults 99
sudo update-rc.d wflogger defaults 99

wfrog (wfrender und wflogger) manuell starten

sudo /etc/init.d/wflogger start
sudo /etc/init.d/wfrender start

wfrog Webseite

Wenn alles korrekt installiert wurde, sollte jetzt über http://<IP-Adresse Raspberry Pi>:7680  die wfrog Seite erreichbar sein. Beim ersten Aufruf kann es ein wenig länger dauern da wfrender die Seite erst noch aufbereiten muss.

Logging

Falls etwas mal nicht so klappen sollte, sollte man sich die beiden wfrog Log-Dateien anschauen.

Probleme mit HTML Seiten und Upload

tail -f /var/log/wfrender.log

Probleme mit Datenaufzeichnung

tail -f /var/log/wflogger.log

21 Gedanken zu „wfrog die Software für Wetterstationen“

  1. Hallo Stefan,

    super Anleitung – bin kurz davor, mir auch ein Oregon zu holen,daher meine Frage, hat dies noch Gültigkeit:
    “Da es in der aktuellen Version noch ein Fehler mit Phyton 2.7 gibt, muss die Datei fileloghandler.yaml angepasst werden”?

    Grüße

    Klaus

  2. Hallo Stefan,

    dank deiner Anleitung habe ich es entlich hinbekommen die WS1080 Wetterstation mit dem Pi auszulesen. Herzlichen Dank für die Anleitung.
    Aber jetzt meine Bitte. Kannst du mir die ins Deutsche übersetzten Dateien zukommen lassen?

    mit freundlichen Grüßen
    Steffen

    1. Hallo Steffen,

      im aktualisiertem wfrog Download sollte jetzt alles drin sein was du benötigst. Am besten die vorhandene Datei umbenennen und die Datei aus der Zip Datei übertragen. Wenn ich dich falsch verstanden habe oder sonst noch etwas fehlt, melde dich einfach nochmal.

      Viele Grüße
      Stefan

  3. Hallo Stefan,

    ich habe Dein How To fast umgesetzt. Leider hänge ich bei der Umstellung auf die SQL-Datenbank.
    Nach “sudo joe /usr/lib/wfrog/wfcommon/config/storage.yaml” kommt die Meldung:
    “sudo: joe: command not fund”

    Kannst Du mir hier weiter helfen? Ich habe heute raspbian mit noobs installiert und ugedated.

    Viele Grüße

    Torsten

    1. Hallo Torsten,

      Sorry, joe ist mein favorisierter Editor. Du kannst aber auch nano, vi oder was auch immer du magst nutzen. Mit WinSCP (Windows) kannst du auch Dateien anpassen ohne dich mit der Konsole rumzuärgern. Wenn du joe ausprobieren willst kannst du den Editor einfach mit “sudo apt-get install joe” nachinstallieren. Ich hoffe, ich konnte dir weiterhelfen.

      Viele Grüße
      Stefan

  4. Ich möchte gerne die Wetterdateien per FTP in meine Homepage speichern. Leider kann ich mit obigem Script “FTP-Upload aktivieren” nichts anfangen. Die darin angegebenen Pfade “path: /tmp/3hours.html” und weitere finde ich nicht in meinem Raspberry, bzw die Verzeichnisse sind leer. Als Newcomer habe ich halt noch Probleme, alle Zusammenhänge zu verstehen. Die Anzeige der Wetterdaten mit “/server:7680” funktioniert einwandfrei. Für Hilfe oder Hinweise wäre ich sehr dankbar.
    Dieter

    1. Hallo Dieter,

      du musst die wfrender.yaml im Verzeichnis /usr/lib/wfrog/wfrender/config editieren und wie im Beispiel den FTP Scheduler durch entfernen der # Zeichen “befreien” (aber nur die # am Anfang der Zeile löschen!) und deine Zugangsdaten vom FTP Server eintragen. Ob alles funktioniert hat kannst du nach einem Neustart mit /etc/init.d/wfrender restart über tail -f /var/log/wfrender.log prüfen. Im /tmp Verzeichnis werden die Daten vom Rendering Prozess gespeichert und dann von dort übertragen.

      Hier eine komplette Übertragung wie sie bei mir Logfile steht

      2016-07-18 20:55:17,018 INFO [renderer.ftp] Rendering 24hours.html
      2016-07-18 20:55:17,801 INFO [renderer.ftp] Rendering 7days.html
      2016-07-18 20:55:21,230 INFO [renderer.ftp] Rendering 30days.html
      2016-07-18 20:55:22,140 INFO [renderer.ftp] Rendering 365days.html
      2016-07-18 20:55:23,340 INFO [renderer.ftp] Rendering 3hours.html
      2016-07-18 20:55:27,366 INFO [renderer.ftp] Connected to host123@11.22.33.44:21
      2016-07-18 20:55:27,720 INFO [renderer.ftp] Sent /tmp/24hours.html to 24hours.html
      2016-07-18 20:55:28,179 INFO [renderer.ftp] Sent /tmp/7days.html to 7days.html
      2016-07-18 20:55:28,484 INFO [renderer.ftp] Sent /tmp/30days.html to 30days.html
      2016-07-18 20:55:28,748 INFO [renderer.ftp] Sent /tmp/365days.html to 365days.html
      2016-07-18 20:55:28,997 INFO [renderer.ftp] Sent /tmp/3hours.html to 3hours.html

      Schau mal ob dich das so weiterbringt, sonst melde dich nochmal!

      Viele Grüße
      Stefan

  5. Hallo Stefan,
    mir ist durch einen glücklichen Zufall diese Wetterstation in die Hände gefallen.
    Bevor ich mit dem Projekt starte nur kurz die Frage, ob Du diese Komponenten noch im Einsatz hast und ob die von Dir erstellten Dateien noch einsetzbar sind.

    Danke und Gruß
    Stefan

    1. Hallo Stefan,

      abgesehen vom Regensensor der entweder abgesoffen oder einfach nur leere Batterien hat, funktioniert noch alles. Die Anleitung ist natürlich etwas veraltet, Google Code wurde mittlerweile geschlossen. Ich habe daher den Link zur wfrog_0.8.2-1_all.deb angepasst.

      Der Abschnitt “Update wfrog” ist nicht mehr gültig. Ob und wofür das SVN Update benötigt wurde, kann ich dir leider nicht mehr sagen. Zur Not kann ich dir aber den SVN Export zuschicken. Der Rest sollte noch so funktionieren.

      Viele Grüße
      Stefan

      1. Hallo Stefan,

        danke Dir für die Info.
        Wenn Du mir die SVN zusenden würdest, wäre das super.
        Ich kann mich anschliessend an das Projekt machen 🙂

        Grüße
        Stefan

        1. Hallo Stefan,

          habe dir gerade eine E-Mail mit dem SVN Export geschickt. Viel Spaß noch bei deinem Projekt!

          Viele Grüße
          Stefan

  6. Hallo Stefan,
    bin ganz begeistert von Deinen Projekten und Deinem aufgebrachten Perfektionismus!
    Bei mir hat alles mit der Loxone angefangen und mittlerweile kommunizieren Loxone, HA-Bridge, Lupusec, homee und “Alexa” miteinander. Das Thema mit dem Wetter beschäftigt mich jetzt seit ein paar Tagen, nachdem ich meiner Markise eine Qubino Rollo Shutter (funktioniert m.e. besser als der Fibaro) verpasst habe und diese bei Wind autom. einfahren möchte. Auf der Suche nach einer günstigen Lösung habe ich jetzt eine neue WH1080 für wenig Euro erstanden.
    Würde gerne Deine Lösung mit wfrog umsetzten, aber habe im Moment ein paar Probleme und Fragen. Ich würde mich sehr freuen, wenn Du mir etwas weiterhelfen könntest.

    1. Bei der Installation von wfrog mit Deiner Anleitung auf meinem Raspberry (Ver.8, jessie) scheitere ich im Moment an der Erstellung der sqlite3-Datenbank. Ich erhalte immer folgenden Fehler “pi@raspberrypi:/usr/lib/wfrog $ sudo sqlite3 /var/lib/wfrog/wfrog.sql < database/sqlite3.sql
    -bash: database/sqlite3.sql: No such file or directory"
    Komme hier leider nicht weiter.

    2. Wenn ich alles richtig verstanden habe, dann kommen die PHP-Scripte (aus Deinem Download) für Loxone auf den Raspberry in "/usr/lib/wfrog/wfrender/templates/default". Per Cronjob werden die Daten dann an die Loxone gesendet.
    Die config.php habe ich mit meinen Loxone-Werten angepasst und als Cronjop "*/1 * * * * /usr/lib/wfrog/wfrender/templates/default/loxone.php" definiert.
    Noch nicht verstanden habe ich, wie die Werte anschließend in der Loxone angezeigt werden. Die PHP-Scripte habe ja ein Layout und ich habe leider nicht genug Erfahrung, wie diese dann in der Loxone dargestellt werden können, bzw. was ich in der LoxConfig noch programmieren muss. Bislang habe ich stets Werte über virtuelle http Eingänge von seiten der Loxone abgefragt.

    Besten Dank und viele Grüße
    Ralph

    1. Hallo Ralph,

      danke erstmal für das Lob! Ich versuche mal deine Fragen zu beantworten.

      Ich habe mal meine “history” durchsucht und mein Befehl sieht genauso aus wie deiner?!

      cd /usr/lib/wfrog
      sudo sqlite3 /var/lib/wfrog/wfrog.sql < database/sqlite3.sql

      Liegt denn bei dir im Ordner /usr/lib/wfrog/database überhaupt eine Datei mit dem Namen sqlite3.sql? Diese sollte normalerweise vorhanden sein. Du kannst sie auch mit folgendem Befehl suchen.

      find / -name "sqlite3.sql"

      Du bist schon auf dem richtigen Weg. Virtuellen Eingang anlegen, irgendeinen Namen vergeben und auf Analog stellen nicht vergessen. Jetzt in den Eigenschaften den ausgegrauten Wert unter Anschluss (Format: VIxx) oder den Namen hinter /dev/sps/io/ in der loxone.php eintragen. Das war es schon!

      Viele Grüße
      Stefan

  7. Hallo Stefan,

    vielen Dank für die schnelle Antwort und Hilfe. Also bei mir sind weder der Ordner /database , noch die sqlite3.sql vorhanden gewesen. Habe sie jetzt selbst erstellt und anschließend konnte ich auch die sqlite-Datenbank konvertieren und anlegen. Komisch ist nur, dass das Verzeichnis /database und die Datenbank sqlite3.sql nicht autom. angelegt worden sind.
    Das mit der Loxone ist mir jetzt auch klar. Vielen Dank für die Erklärung. Bislang habe ich die Werte immer seiten der Loxone mittels Befehlserkennung abgefragt. Der umgekehrte Weg ist mir gar nicht bewusst gewesen. Gibt es hier einen speziellen Vorteil? Ansonsten könnte man doch auch sämtliche Werte auch auf dem raspberry Server als unformatierte html anlegen und mittels “Virtueller HTTP-Eingänge” abrufen.
    Besten Dank nochmal und schöne Grüße
    Ralph

  8. Hallo Stefan,
    ich habe eine Elecsa AstroTouch 6975, wohl baugleich mit WH1080.
    Ich komme mit Deiner Anleitung leider nicht zurecht.
    Wenn ich wfrog starte bekomme ich das hier:
    bernd@PC1 ~ $ sudo wfrog -v
    [sudo] password for bernd:
    Exception in thread Thread-3:
    Traceback (most recent call last):
    File “/usr/lib/python2.7/threading.py”, line 810, in __bootstrap_inner
    self.run()
    File “/usr/lib/python2.7/threading.py”, line 763, in run
    self.__target(*self.__args, **self.__kwargs)
    File “/usr/lib/wfrog/wfdriver/wfdriver.py”, line 110, in run
    self.configure(config_file, settings_file, embedded)
    File “/usr/lib/wfrog/wfdriver/wfdriver.py”, line 82, in configure
    (config, context) = self.configurer.configure(options, self, config_file, settings_file, embedded)
    File “/usr/lib/wfrog/wfcommon/config.py”, line 110, in configure
    config = yaml.load( str(Template(file=file(self.config_file, “r”), searchList=[variables])))
    File “/usr/lib/python2.7/dist-packages/Cheetah/Template.py”, line 1005, in __str__
    rc = getattr(self, mainMethName)()
    File “cheetah_DynamicallyCompiledCheetahTemplate_1513889096_63_92987.py”, line 86, in respond
    NotFound: cannot find ‘station’ while searching for ‘settings.station.driver’

    In /etc/wfrog/wfdriver/config habe ich folgende Datei:
    /etc/wfrog/wfdriver/config/embedded.yaml
    In dieser Datei steht:
    station: !${settings.station.driver} { }

    #station: !${settings.station.driver}
    # port: /dev/ttyS1
    # pressure_cal: -8

    output: !service { name: events }

    In der Bedienungsanleitung von wfrog (leider alles nur auf englisch) steht, man solle die Auskommentierungen unter station wegmachen und entsprechend ergänzen. Ich weiß allerdings nicht wie ich sie ergänzen soll.
    lsusb gibt mir die Wetterstation folgendermaßen aus:
    Bus 004 Device 003: ID 1941:8021 Dream Link WH1080 Weather Station / USB Missile Launcher

    Hast Du irgendeine Idee ?
    Vielleicht funktioniert die Software ja auch gar nicht mehr.
    Ich bin Neuling in Sachen Linux und habe immer die Wetterstation über Windows gemacht. Habe jetzt aber kein Windows mehr.

    Viele Grüße und vielen Dank für Deine Hilfe im Voraus.
    Bernd

    1. Hallo Bernd,

      normalerweise musst du nur beim ersten Start von wfrog deine Station konfigurieren?! Mit dem Befehl “sudo wfrog -S” (Quelle https://github.com/wfrog/wfrog/wiki/UserManual) kannst du das Menü nochmal öffnen. Du hast zwar andere Pfade als ich, aber die Konfiguration wird in einer settings.yaml unter /etc/wfrog angespeichert. Dort wird auch der Typ der Wetterstation gespeichert. Die Software sollte weiterhin funktionieren, sie wird leider nur nicht mehr gepflegt.

      Ich hoffe, dass ich dir ein wenig weiterhelfen konnte?!

      Viele Grüße
      Stefan

    2. Hallo Bernd,

      aktuell kommt da tatsächlich wieder etwas in die quere. Abhilfe schafft aber das manuelle Editieren der settings.yaml wie folgt:

      sudo nano /etc/wfrog/settings.yaml

      und das Eintragen der Werte von Hand. hier meine Werte, für eine WH1080 bei einer Höhe des Wohnortes von 180m über N.N.

      altitude: 180
      station:
      driver: wh1080
      units:
      press: hPa
      rain: mm
      temp: C
      wind: km/h

      So, dann alles speichern und mit

      sudo reboot

      einen Neustart hinlegen und es läuft alles. Bei mir mit aktueller Installation und weiterem “Feintunig” auch mit richtigen Grafiken ohne Querstrichen und funktionierender regenintensität.
      HaVeFuN

  9. Hallo an alle,

    ansonten hier mal der aktuelle Weg einer Installation, ausgehend von einem Raspbian Jessie Desktop Image vom März 2018.

    1.Updates
    sudo apt-get update
    sudo apt-get upgrade

    2.Install python, dependencies, usb library, etc:
    sudo apt-get install python
    sudo apt-get install python-pip
    sudo apt-get install python-dev
    sudo apt-get install libudev-dev
    sudo apt-get install libusb-1.0-0
    sudo apt-get install libusb-1.0-0-dev

    3.Install pip (python package manager):
    sudo pip install –upgrade pip

    4.Install required python packages:
    sudo pip install tzlocal
    sudo pip install libusb1
    sudo pip install pyusb –pre

    5.Install pywws:
    sudo pip install pywws

    6.Plug in the WH1080 weather station
    plug…

    7.Test connectivity:
    sudo pywws-testweatherstation

    14:31:48:pywws.Logger:pywws version 18.04.1, build 1389 (5a32227)
    0000 55 aa 80 10 20 49 65 04 60 e1 0a fb 9f 1e f5 ff 05 20 02 30 11 00 00 00 00 00 00 f0 0f 00 e0 e2
    0020 63 28 af 26 00 00 00 00 00 00 00 18 04 15 14 30 41 23 c8 00 00 00 46 2d 2c 01 64 80 c8 00 00 00
    0040 64 00 64 80 a0 28 80 25 a0 28 80 25 00 b4 00 00 68 01 00 0a 00 f4 01 12 00 00 00 00 00 00 00 64
    0060 04 60 4e 17 63 01 36 01 a7 00 75 01 90 81 75 01 90 81 da 00 ef 80 89 27 78 25 2f 29 42 26 ce 01
    0080 e4 00 96 00 c5 01 49 02 0a 05 4b 09 00 17 07 09 13 20 18 01 16 01 36 17 07 06 05 19 15 01 01 12
    00a0 00 15 01 01 12 00 17 11 19 12 06 17 08 01 16 08 15 01 01 12 00 17 08 01 16 08 15 01 01 12 00 17
    00c0 08 01 16 07 18 02 25 13 24 17 12 20 10 26 17 12 11 00 43 18 01 27 17 51 17 10 29 05 27 18 02 21
    00e0 00 58 17 10 29 10 21 17 07 12 22 44 18 01 16 16 44 17 07 15 19 26 17 11 06 09 38 17 11 21 23 33

    8.Install wfrog:
    sudo apt-get install wfrog

    9.Create the configuration, answer the questions and the configuration file will be created:
    sudo wfrog –S

    10.The installed wfrog package automatically creates an initd script, start it up:
    sudo service wfrog start

    11.Reboot
    sudo reboot

    12.Surf to the report:
    http://raspberrypi.local:7680

    HaVeFuN

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert