Skip to content

Installation Teil 2

SBorg2014 edited this page May 18, 2021 · 85 revisions

Einrichtung des Skriptes auf dem Linux-Client

Wir kopieren die drei Dateien wetterstation.sh, wetterstation.sub und wetterstation.conf aus dem entpackten Package mittels WinSCP in ein Verzeichnis auf dem Linux-Client. Dafür eignet sich ein "home"-Verzeichnis (wir nehmen mal /home/iobroker an). Die wetterstation.sh muss "ausführbar" sein (WinSCP) oder per Putty: chmod +x wetterstation.sh im /home/iobroker - Verzeichnis ausführen.

Konfiguration des Skriptes:

Um die Konfiguration anpassen zu können ist die Datei wetterstation.conf zu editieren (z.B. mittels "nano").

Wichtig: Möchte man später das Addon Wetterstation-Statistik nutzen, so müssen die Datenpunkte unter javascript.x oder 0_userdata.x (x = Instanz; normalerweise "0") verbleiben, da nur hier der Javascript-Adapter das anlegen von Ordnern/Datenpunkten zulässt! Auch die Bezeichnungen wie bspw. "Aussentemperatur" der Datenpunkte dürfen nicht geändert werden, da dass Addon genau auf diese Bezeichnung später zugreift.

Folgende Parameter sind den eigenen Gegebenheiten einzustellen:

  • debug: Ausgabe der Messwerte, mögliche Parameter sind true oder false, default false. Für den Erstversuch hilfreich, um zu sehen ob die Daten korrekt ankommen (gleiche Funktion wie der Aufruf mittels --debug). Bei true wird die Ausführung des Skriptes aber nach einem Durchlauf abgebrochen!
  • IPP: IP-Adresse des ioBrokers samt Port des Simple-RESTful Adapters. Format ist xxx.xxx.xxx.xxx:port_nr (z.B. 192.168.1.100:8087)
  • WS_PROTOKOLL: je nach gewähltem Protokoll in der APP bzw. Nutzung per eigenem DNS-Server (Protokoll #9)
  • ANZAHL_DPxxx: Anzahl der benutzten DP50/60/70/100/200 Zusatzsensoren
  • WEB(1): HTTP oder HTTPS, je nachdem ob die Übertragung der Daten (un)verschlüsselt erfolgen soll. Dies muss natürlich dann auch im Simple-RESTful Adapter des ioBrokers aktiviert sein.
  • AUTH_USER / AUTH_PASS(1): Username und Passwort falls die Nutzer-Authentifizierung benutzt werden soll. Sonst einfach leer lassen.
  • WS_PORT: Port an den die Wetterstation sendet. Dies wird in der WS View App eingestellt (Punkt 7 der Einstellungen). Bei Protokoll #9 muss Port-Nummer 80 benutzt werden!
  • WS_POLL: Abfrageintervall der Wetterstation. Hier ist der Wert aus der WS View App zu übernehmen (Punkt 8 der Einstellungen)
  • WS_ID: Name der Wetterstation. Hier ist der Wert aus der WS View App zu übernehmen (Punkt 5 der Einstellungen). Entfällt bei Nutzung des "Ecowitt"-Protokolls
  • PRE_DP: Ort, wo die Datenpunkte mit den Wetterinformationen im ioBroker angelegt werden soll (z.B. javascript.0.Wetterstation oder 0_userdata.0.MeinWetter oä.). Dies ist seitens des ioBrokers nur unter "javascript..." oder "0_userdata..." zulässig!
  • INFLUX_xxx: IP, Port, Name der Datenbank, (ggf. Username und Passwort) der Influxdatenbank. Wird für die Datenpunkte Min-/Max-Aussentemperatur der letzten 24 Stunden und Min-/Max-/Avg-Aussentemperatur vor einem Jahr benötigt (diese Datenpunkte bleiben sonst leer).
  • SONNENSCHEIN_TXTFORMAT: in welchem Format die Textanzeige der Sonnenscheindauer erfolgen soll
  • OpenSenseMap: siehe bei Installation OpenSenseMap
  • Windy: siehe bei Installation Windy

(1) - erst ab Version V1.5.0

Das war´s auch schon mit der Konfiguration des Skriptes.

Anlegen der Datenobjekte im ioBroker: Wir öffnen wetterstation.js aus dem Paket mit einem Texteditor, kopieren uns den gesamten Inhalt in die Zwischenablage und wechseln zum ioBroker. Dort wählen wir "Skripte" und legen per Klick auf das "+" ein neues Javascript vom Typ "Javascript" an. Speicherort (unter common) und Bezeichnung sind frei wählbar. In dieses leere Skript fügen wir nun den Inhalt der Zwischenablage ein. Falls eine andere Instanz des Javascript-Adapters oder eine andere Datenobjektstruktur benutzt wird, muss noch let DP="javascript.0.Wetterstation." angepasst (identische Einstellung wie in der wetterstation.conf unter PRE_DP) werden. Beachtet unbedingt den Punkt hinter "Wetterstation"! Falls das Gateway und/oder Zusatzsensoren (DP50/60/70/100/200 bzw. deren WHxxx-Derivate) benutzt werden muss deren Anzahl nun noch eingetragen werden.

Datenobjekte in ioBroker Nun klicken wir auf "Speichern" und in der linken Liste auf das "rote Playsymbols" bei dem neu angelegtem Skript. Nach ein paar Sekunden können wir dann das Skript durch anklicken des nun "grünen Pausezeichens" wieder stoppen. Das Skript legt lediglich die Ordnerstruktur und die Datenobjekte an, damit man dies nicht einzeln per Hand erledigen muss 😉 Es muss nicht laufen und wird nicht mehr gebraucht (kann also sogar gelöscht werden).
Wir sind jetzt schon auf der Zielgeraden...

Erster Test: Am einfachsten wird das Script mit der Option --debug gestartet:
Wir geben im /home/iobroker-Verzeichnis ein ./wetterstation.sh --debug Je nachdem wann die Wetterstation das letzte Datenpaket gesendet hat, kann es nun bis zum eingestellten Intervall dauern bis Daten empfangen werden. Im Beispiel sollten also spätestens nach 60 Sekunden ein Datenpaket eintreffen. Dann sollte es in etwa so aussehen:
Ausgabe der Daten mit Debug-Option

Dabei sollte der Block "Temperatur Innen" ... "Zeitstempel" plausible, aktuelle Werte enthalten und im ioBroker unter "javascript.x" bzw. "0_userdata.x" (x=die Instanz unter dem alles läuft) zu finden sein: Datenobjekte in ioBroker

Sofern bis hierhin alles geklappt hat, macht es Sinn die Datenaufbereitung dauerhaft laufen zu lassen. Dazu muss das Skript als Autostart angelegt werden. Vorher noch sicherstellen, dass in der Datei wetterstation.conf der Parameter debug=false gesetzt ist (bei true läuft das Skript nur einmalig!).


Einstellung als Autostart (Möglichkeit #1 per systemd): Sofern möglich sollte diese Variante benutzt werden, da sie wesentlich Anwender freundlicher ist. Wir legen zuerst im Terminalfenster die nötige Datei an sudo nano /etc/systemd/system/wetterstation.service
Diese bekommt folgenden Inhalt:

[Unit]
Description=Service für ioBroker Wetterstation

[Service]
ExecStart=/home/iobroker/wetterstation.sh

[Install]
WantedBy=multi-user.target

Die Beschreibung ist frei wählbar, der Service muss ggf. entsprechend Eurem Pfades angepasst werden, je nach dem wo Ihr das Skript liegen habt. Speichern und mittels sudo chmod +x /etc/systemd/system/wetterstation.service ausführbar machen.
Damit das Skript verfügbar ist den Daemon neu laden: sudo systemctl daemon-reload
Damit es beim booten automatisch geladen wird: sudo systemctl enable wetterstation.service

Steuern kann man das Skript dann folgendermaßen:
Start: sudo systemctl start wetterstation
Stop: sudo systemctl stop wetterstation
Neustart (zB. bei Änderungen): sudo systemctl restart wetterstation
Status: sudo systemctl status wetterstation


Einstellung als Autostart (Möglichkeit #2 per cronjob): Wir benutzen im Terminalfenster einen beliebigen Editor (z.B. nano) und bearbeiten den Autostart mit crontab -e (als Benutzer mit root-Rechten) oder sudo crontab -e (falls keine root-Rechte) und erweitern das Dokument zB. ganz am Ende, oder an einer gewünschten Stelle, mit folgenden Zeilen:

@reboot /home/iobroker/wetterstation.sh &
2 0 * * * pkill -9 wetterstation.sh && /home/iobroker/wetterstation.sh &

(/home/iobroker ist das Installationsverzeichnis, ersichtlich in der debug-Ausgabe, wetterstation.sh ist der Name des Skriptes). Die zweite Zeile beendet und startet jede Nacht um 0:02 Uhr das Skript neu.

Wichtig ist hierbei, falls es am Ende eingefügt wurde, dass nach dem & noch mindestens eine Leerzeile folgt, sonst laufen sämtliche cronjobs nicht mehr!

Nach dem Speichern der Datei und einem Neustart des Linux-Clients läuft die Datenübertragung automatisch und die Wetterdaten werden im eingestellten Zeitintervall übermittelt (dies kann im Datenpunkt Zeitstempel überprüft werden). Kleiner Hinweis am Rande: Es funktioniert nicht das Skript in einer Putty-Session dauerhaft zu starten. Solange die Sitzung aktiv ist läuft es zwar, mit beenden der Sitzung wird dann aber auch das Skript beendet...


Bei etwaigen Problemen lohnt ein Blick in die FAQ
Für Statistik-Freaks lohnt sich eventuell auch das Addon Wetterstation-Statistik
Wer seine Daten auf OpenSenseMap bereitstellen möchte, dem wird hier geholfen: OpenSenseMap-Installation
Wer seine Daten auf Windy bereitstellen möchte, dem wird hier geholfen: Windy-Installation