NEWS
[Linux Shell-Skript] WLAN-Wetterstation
-
Das ganze entstand aus diesem Thread.
Damit ist es möglich mit einem Linux-Client die Daten einer WLAN-Wetterstation und/oder mit Hilfe eines Gateways und Zusatzsensoren zu empfangen, aufzubereiten und im ioBroker zur Verfügung zu stellen. Optional können die Daten auch bei AWEKAS.at, OpenSenseMap, Windy und wetter.com zur Verfügung gestellt werden.
Mein Dank geht an @Latzi für das testen in der Entwicklungsphase und dessen Unterstützung bei der Verfassung der WiKi-Artikel.
Aktuelle Version auf GitHub:
Neue Versionen im Thread sind ab V2.15.0 (Juli 2022) unterschiedlich farblich gekennzeichnet:- Beta-Releases haben dann eine rote Versionsnummer
- stabile Releases haben dann eine grüne Versionsnummer
Projektseite (inkl. WiKi): https://sborg2014.github.io/WLAN-Wetterstation/
Da es sich um keinen Adapter handelt, ist dies eine "Vorschaltseite" von GitHub. Nicht das wer auf die Idee kommt von der URL im ioBroker installieren zu wollen
Zum Download/WiKi geht es dann weiter per View on GitHubBisher geteste Stationen:
- BRESSER
- WLAN Farb-Wetter Center mit 5-in-1 Profi-Sensor V (1) @pandor
- WLAN Comfort Wetterstation mit 7-in-1 Profi-Sensor (1)
- ChiliTec Funk Wetterstation 12in1 @tege0
- DNT Weatherscreen PRO @Petersilie
- Ecowitt
- GW1000
- GW2000A
- WS2910 @Nashra
- ELV WS980WiFi @sonystar
- Eurochron EFWS2900 @Latzi, @ilovegym, @SBorg (baugleich mit Ambient Weather WS-2902, Chilitec CTW-902, Sainlogic 10 in 1)
- Froggit
- Gateway/USB-Dongle DP1500/DP2000 @Boronsbruder
- HP1000SE Pro @Stormbringer
- WH3000 SE @ToxSox, @crunchip
- WH4000 SE @unltdnetworx, @Glasfaser, @Negalein, @Boronsbruder
- WH6000 Pro @Mugel80
- Renkforce WH2600
- Sainlogic
- Ventus W830 @CiroCool, @Rushmed
(1) Abfrage per DNS-Server wie bspw. PiHole oder dnsmasq
Bisher unterstütze Zusatzsensoren per Station oder mittels DP1500/DP2000/GW1000/GW2000A - Gateway:
- bis zu 8 Stück DP35/WN34 Wassertemperatur-Sensoren
- ein DP40/WH32 (bzw. WH26) Außentemperatur- und Luftfeuchtigkeitssensor
- bis zu 8 Stück DP50/WH31 Temperatur-/Luftfeuchtigkeit-Sensoren
- ein DP60/WH57 Blitzsensor
- bis zu 4 Stück DP70/WH55 Wasserleckage-Sensoren
- bis zu 8 Stück DP100/WH51 Bodenfeuchte-Sensoren
- bis zu 4 Stück DP200/WH43 PM2.5 Feinstaub-Sensoren
- ein DP250/WH45 5-In-1 CO2 / PM2.5 / PM10 / Temperatur / Luftfeuchte Innenraumsensor
- ein DP300/WS68 Solarunterstütztes Anemometer mit UV-Lichtsensor
- ein WH31 (bzw. WH25) Sensor
- ein WS90 "Wittboy" Sensor
- BRESSER (1)
- bis zu 4 Stück(2) BRESSER Thermo-/Hygro-Sensor 7 Kanal #7009999
(1) nicht alle Bresser-Stationen unterstützen Zusatzsensoren! siehe hier
(2) durch das verwendete Wunderground-Protokoll limitiertDie mögliche Anzahl der Zusatzsensoren ist nicht durch das Skript begrenzt, sondern wird vom Display und/oder Gateway bestimmt.
Es besteht ferner auch die Möglichkeit Stationen (wie bspw. Sainlogic Profi Wlan Wetterstation FT0300) einzubinden die nicht per WS View[+] App konfiguriert werden können und nur ein Web-Interface bieten, dass keine Angabe eines eigenen Wetterdienst-Servers zulässt. Hierfür kann man den Umweg eines eigenen DNS-Servers wie dnsmasq oder Pi-hole gehen. Für Pi-hole hat @XxJooO freundlicherweise hier im Forum eine ausführliche Doku erstellt: klick mich
Wäre schön wenn sich weitere User mit entsprechenden Modellen melden bei denen es funktioniert (auch wenn es baugleiche sein sollten, so ist man sich wenigstens sicher )
Update von einer Vorgängerversion (bei Nutzung per systemd):
Im Installationsverzeichnis
./ws_updater.sh
ausführen.
Alternativ (falls die aktuell installierte Version kleiner als V2.12.0 ist): im Installationsverzeichnisbash <(curl -s https://raw.githubusercontent.com/SBorg2014/WLAN-Wetterstation/master/ws_updater.sh)
ausführenUpdate von einer Vorgängerversion (bei Nutzung als cronjob):
Am besten das laufende Skript mit
pkill -9 wetterstation.sh
stoppen, wetterstation.sh und -.sub ersetzen (-.conf und -.js nur nach Aufforderung nötig; conf dann neu konfigurieren / js ersetzen und einmalig ausführen), dann entweder- direkt am Linux-Client
./wetterstation.sh &
- oder per Putty oä.
nohup ./wetterstation.sh &
(erzeugt dabei eine Datei nohup.out) - oder reboot des Systemes (Skript wird dann per cronjob wieder gestartet)
jeweils im Installationsverzeichnis ausführen. Sonst befindet sich ggf. noch das alte Skript im RAM und läuft munter bis zum nächsten Reboot weiter
Beispiele einer grafischen Umsetzung:
@Glasfaser: View / zum Beitrag
@crunchip: Grafana / zum Beitrag
Wetterstation-Statistik (JS-Addon)
Statistikmodul als Javascript. Liefert diverse Statistiken:
Javascript für eine HTML-Tabelle vorheriger Monatswerte ( @liv-in-sky ) :
zum ThreadNeues Projekt PimpMyStation (14.11.2020)
Kein Support per PM/Chat !
-
Vorab vielen Dank für die Arbeit. Gerade soweit alles laut Anleitung durchgeführt und klappt auch schon.
Wetterstation Froggit WH3000SEEinzige Sache, in der Anleitung hast du geschrieben, dass beide Dateien ausführbar sein müssen. Aber wofür braucht die .conf Ausführungsrechte?
-
Danke und Danke
Wetterstation nehme ich gleich noch auf.@ToxSox sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Aber wofür braucht die .conf Ausführungsrechte?
Gar nicht. Das Konzept war erst etwas anders, dann später einfach überlesen/-sehen. Ist geändert (+ dabei gleich noch was entdeckt)
Wenn du am Adapter weiter bauen willst hätte ich wieder Ressourcen frei. Nur testen kann ich nach wie vor nicht, aber ev. erbarmt sich ja auch der Osterhase meiner...
Lass uns dann aber ggf. im "alten" Thread weitermachen. -
Axo, gerade noch eingefallen und ganz wichtig, in Station ID und Station Password muss umbedingt etwas drinstehen. Wenn eins von beiden Feldern leer ist, dann werden keine Request erzeugt.
-
wollt es auch mal testen, jedoch scheiter ich seltsamerweise bei meinem Host??
ebenfalls eine Froggit
es ist alles eingetragen, habe auch mehrere Ports probiert, jedoch kommtroot@IoBroker:/home/iobroker# ./wetterstation.sh --debug 80: inverse host lookup failed: Unknown host listening on [any] 34167 ...
-
@crunchip sagte in [Linux Shell-Skript] WLAN-Wetterstation:
inverse host lookup
@crunchip läuft iobroker in einem docker-container?
-
@Latzi nein, in einer Proxmox VM
-
@ToxSox sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Axo, gerade noch eingefallen und ganz wichtig, in Station ID und Station Password muss umbedingt etwas drinstehen. Wenn eins von beiden Feldern leer ist, dann werden keine Request erzeugt.
Danke, ist geändert
-
@crunchip Kannst du vom Host aus die Wetterstation anpingen? Mir sieht das so aus als wenn deine VM keine Verbindung zur Wetterstation aufbauen kann. Unter VirtualBox (nutze leider kein Proxmox) muss man das Netzwerkinterface entweder als "Bridge" einrichten, dann ist sämtlicher Datenverkehr erlaubt, oder eben jeden einzelnen Port explizit durch reichen.
-
@SBorg ja, ping funktioniert, sind auch im gleichen Netzwerk
Netzwerk läuft mit UniFi
Proxmox VM/CT laufen im bridge mode -
@crunchip Ich nehme mal für die Wetterstation Port 1234 an. Versuche mal vom Host aus ein
netstat -4tnl IP_der_Wetterstation | grep :1234
Da sollte dann kommen (x=IP der Wetterstation)tcp 0 0 xxx.xxx.x.xx:1234 0.0.0.0:* LISTEN
-
@SBorg da kommt gar nix
-
@crunchip Dann ist zumindest eindeutig warum das Script auch nicht funktioniert...
Versuche mal auf dem Proxmox-Server (Port der Wetterstation immer noch 1234):iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 1234 -j DNAT --to x.x.x.x:1234
vmbr0 sollte stimmen, zumindest ist das die Standard-Bezeichnung der Bridge bei Installation
x.x.x.x ist dann die IP des virtuellen Hostsystemes -
@SBorg grad erst dazu gekommen
kommt auch nix an -
hab es statt auf meiner IoBroker VM, mal auf nen CT in Proxmox versucht, klappt auch nicht, gleiche Problem
desweiteren hab ich noch nen Raspberry (mit MotioneyeOS) laufen
da hab ich mich mal mit Putty eingeloggt und probiert, sollte doch normalerweise etwas ankommen?[root@MotioneyeOS ~]# nc -lv 80 Warning: Inverse name lookup failed for `0.0.0.80' ^CExiting. [root@MotioneyeOS ~]# nc -lv 8097 Warning: Inverse name lookup failed for `0.0.31.161' ^CExiting. [root@MotioneyeOS ~]# nc -lv 8096 Warning: Inverse name lookup failed for `0.0.31.160'
-
@crunchip sagte in [Linux Shell-Skript] WLAN-Wetterstation:
grad erst dazu gekommen
Na, ich wohn hier auch nicht ^^
Mit dem extra Client wollte ich jetzt auch vorschlagen. Hast du bei dem Versuch mit dem Raspberry in der Wetterstation auch dessen IP angegeben?
Wetterstation sendet an die angegebene IP
die IP (bzw. der Rechner) "lauscht" dann mittels nc auf diese Datenpakete -
@SBorg ja IP geändert und jeweils mit verschiedenen ports (eingetragen) probiert
-
@crunchip Oh, man, man, man, wenn es das jetzt ist bin ich echt ein Blödel...
Das kam erst gestern heraus und ist auch erst seit da in der Anleitung gefixt:Station ID: Name der Wetterstation (derzeit nicht benutzt), Eingabe jedoch erforderlich Station Key: Passwort der Wetterstation (derzeit nicht benutzt), Eingabe jedoch erforderlich
Vorher stand da "kann leer bleiben", dass ist aber schlichtweg falsch. Es wird zwar nicht benutzt, wenn aber eins oder beides leer sind, schickt die Station keine Datenpakete...
-
@SBorg ist in meinem Fall aber beides eingetragen(voreingestellt in der APP) und hab ich auch nicht geändert
hab die gleich Wetter App wie https://forum.iobroker.net/post/346111 also ne Froggit -
@crunchip Schade, beim "Blödel" würde es aber wenigstens funktionieren.
Welche Froggit hast du denn, oder ist das eine 3000er? Ev. macht die auch irgendwas etwas anders.