Schnittstelle von Weewx zu Wettersektor

Registriere dich jetzt, um exklusive Vorteile zu genießen! Als registriertes Mitglied kannst du Inhalte herunterladen und profitierst von einem werbefreien Forum.
Mach mit und werde Teil unserer Community!
  • Funktion des Skriptes

    Bereitstellung der Daten im richtigen Format für wettersektor, zur Datenabholung von WeeWx.

    Mit dem neuesten Update hat man nun die Möglichkeit, die Daten zur Abholung bereit zustellen oder diese aktiv an Wettersektor zu übermitteln.


    Voraussetzungen

    Funktionierende WeeWx Installation

    Python 3.5 oder höher


    In der folgenden Anleitung wird davon ausgegangen, dass der Standardpfad zur Weewx Datenbank /var/lib/weewx lautet.

    Der Standardpfad zum Datenexport: /var/www/html/weewx/wettersektor

    Dies ist abhängig von der Apache2 Konfiguration, wobei /var/www/html/weewx/ dem Standard der WeeWx Anleitung entspricht.


    Skripte


    Folgende Skripte und Dateien müssen in den selben Ordner kopiert werden:

    eigene_wetterdaten.py (optional, Datei nicht enthalten)

    wetterconfig.toml

    messwerte_umrechner.py

    wettersektor_export.py

    grafana_export.py (optional, Datei nicht enthalten)

    Am besten hierfür im Homeverzeichnis des Benutzers einen Ordner erstellen, Beispielsweise mit dem Namen wetter_daten_management

    mkdir ~/wetter_daten_management

    Hierein die benötigten Skripte und Datein kopieren

    Anschließend die wetterconfig.toml Datei anpassen. Hierbei kann der komplette Block mit grafana ignoriert oder gelöscht werden. Diesen Abschnitt würde die Datei grafana_export.py benötigen.

    Zu beachten:

    Wird datei auf false gestellt, so wird zwingend das Passwort benötigt, welches zu finden ist unter WsWin einrichten. Die Datenabholung muss deaktiviert sein. Wird datei auf true gestellt, so muss die Datenabholung aktiviert sein. Passwort von WsWin einrichten wird nicht benötigt. Der Pfad pfad_wettersektor_ausgabe muss einen Pfad angeben, welcher via Internet erreichbar ist damit Wettersektor die Datei abholen kann.


    Weiterhin ist zu beachten, dass das Skript selbst keine Ordner selbständig erstellen kann, diese müssen vor Ausführung entsprechend der Pfadangeben vorhanden oder erstellt werden.


    Pythonmodule installieren

    pip3 install toml psutil

    Bei der Installation ist gegenfalls zu achten die Module für den passenden User zu installieren (bsp. sudo pip3 install ... oder pip3 install --user)

    Inbetriebnahme


    Anschließend erstmals Datei manuell ausführen, zu beachten ist, dass Weewx per root ausgeführt wird. Deshalb werden hier ebenfalls root Rechte benötigt, welche durch das voranstellen von sudo vor python3 erreicht werden können.

    python3 /pfad/zu/wettersektor_export.py Pfad enstprechend der Umgebung anpassen

    Abhängig der Konfiguration oben ist nun eine Datei am eingestellte Pfad erstellt worden oder die Daten direkt an Wettersektor hochgeladen.

    Cronjob anlegen für regelmäßige Ausführung (Standardmäßig alle 5 Minuten)

    sudo crontab -e

    Code
    */5 * * * * python3 /pfad/zu/wettersektor_export.py



    Log

    Im Verzeichnisordner ist eine Datei Namens wettersektor_datenexport.log zu finden (nachdem das Program das erste mal ausgeführt worden ist).

    In dieser werden Fehler und Informationen gespeichert, wenn es nicht erwünscht ist, dass die Statusmeldung "Export erfolgreich" jedesmal eingetragen wird, so ist in der wetterconfig.toml bei loglevel statt eine 2 eine 3 einzugragen. Dies bewirkt dass keine Meldungen mit dem Status "Info" gespeichert werden, sondern erst ab dem Status "Warnung".



    Zusatzfunktion

    Wer seine komplette Weewx Datenbank exportieren möchte, ruft das Skript wie folgt manuell auf:

    sudo python3 /pfad/zu/wettersektor_export.py all <pfad wohin gespeichert werden soll>



    Weitere Informationen

    • In dem Ausgabepfad werden weitere Txt Dateiein in einem Lesbaren Format zur Kontrolle erstellt (exportdaten.toml)



    Optional - Datei in RAM schreiben statt in den Speicher


    Ramdisk erstellen

    sudo su

    Ordner erstellen

    mkdir /media/ramdisk

    nano /etc/fstab

    Eintragung in fstab

    Code
    tmpfs /media/ramdisk tmpfs defaults    0     0

    Änderungen übernehmen mit einem Neustart oder mit dem Mount

    Befehl. Anschließend prüfen ob die Erstellung des Ram Speichers

    erfolgreich indem eine neue Datei in den Ordner erstellt wird und

    anschließend neu gestartet wird

    mount -a

    touch /media/ramdisk/test.txt

    ls -l /media/ramdisk

    reboot

    ls -l /media/ramdisk

    Die Datei darf beim 2. Aufruf nach dem Neustart nicht mehr

    vorhanden sein.


    Apache2 Konfiguration anpassen

    Hat all das geklappt wird nun der Apache konfiguriert, zur

    ermittlung der Server adressen einfach den Hostname anpingen.

    Innerhalb des Virtual Host wird folgendes ergänzt:

    sudo su

    nano /etc/apache2/sites-available/weewx.conf

    nano /etc/apache2/apache2.conf


    weewx.conf (Name kann von sites-available bei euch abweichen!)

    Code
    # Syntax: Alias Verzeichnisname Pfad-zum-reelen-Verzeichnis
    Alias /datenabholung /media/ramdisk
    <Location /datenabholung>
        # verbietet allen den Zugriff und erlaubt ihn von aufgeführten Adressen
        Order deny,allow
        deny from all
        allow from 192.168 <Serveradresse>
    </Location>

    apache2.conf

    Code
    <Directory /media/ramdisk/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
    </Directory>

    Anschließend muss der Apache neu gestartet werden

    systemctl restart apache2

    exit


    Wetterconfig anpassen

    Zum Abschluss noch die config Datei vom wetter-management Tool

    zur Ausgabe abändern und das wars:

    nano wetterconfig.toml

    wetterconfig.toml (Folgende Zeilen dem Pfad ändern, abhängig

    dessen ob Grafana und oder wettersektor genutzt wird)

    Code
    pfad_wettersektor_ausgabe = "/media/ramdisk"
    pfad_ausgabe = "/media/ramdisk"

    Und schon werden die Dateien nicht mehr auf die SD Karte

    geschrieben sondern in den RAM



    Konstruktive Kritik zum Code, wie immer, gerne Willkommen


    Versionsverlauf


    Versionsstand

    31.05.2018 V1.3.0


    Sollten Fragen oder Probleme auftreten, könnt ihr diese jederzeit hier stellen/mitteilen.

    Eventuell das Thema abonnieren, um Updates vom Skript mitzubekommen


    ______________________


    Neuer Versionsstand hochgeladen.

    17.05.2017 V0.3 - Endlosschleife entfernt.

    ______________________


    24.05.2017 V0.3.1

    Fehler behoben - Script bricht ab wenn Temperatur keinen Wert liefert

    ______________________

    30.07.2017 V1.1.0


    Neue Funktionen:

    • exportdaten.toml wird erstellt anstatt der Ausgabe der datenexport_lesbar.txt - Der Vorteil darin besteht, dass mit diesem Format in anderen Skripten leicht mit den Daten weitergearbeitet werden kann und trotzdem diese Datei leicht lesbar ist
    • Log Modul - Im Verzeichnisordner vom Skript ist eine Logdatei zu finden, hier werden Fehler eingetragen, sofern welche auftreteten beziehungsweise der Erfolg des Exportes eingetragen. Sollte der Erfolg nicht gewünscht sein, so ist statt der 2 in der conf.toml Datei eine 3 einzutragen. Dies bewirkt dass keine Meldungen mit dem Status "Info" gespeichert werden, sondern erst ab dem Status "Warnung"


    Bei einem Versionsupdate empfiehlt sich die erneute Ausführung der install.py Datei


    ______________________

    03.08.2017 V1.2.0


    Datenbankexport in wettersektor_datenexport.py angepasst auf CSV Modul



    Sofern keine Probleme auftauchen, dürfte bis auf weiteres dies (Version 1.2.0) die letzte Version sein. Was aber nicht heißen soll, dass die Entwicklung dafür eingestellt wird.

    Aktuell habe ich alle Funktionen die ich einbauen wollte integriert und arbeit auch alles so wie gewollt.


    ______________________

    31.05.2018 V1.3.0

    Datenübermittlung wahlweise durch Datenabholung oder Datensendung

    wettersektor_export und grafana_export sind 2 eigendständige Skripte



    Hinweis:

    Anleitung ist im entsprechenden Wettersektorforum ebenfalls findbar