NEWS
[Linux Shell-Skript] WLAN-Wetterstation
-
@herrklaus sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Grundsätzlich ist das Anlegen ja kein Problem, aber muss das oder läuft das Skript auch ohne, solange man die Conf nicht entsprechend setzt?
Ne, brauchst du nicht. Selbst wenn die DPs nicht existieren und du aktivierst es, kann er halt nichts in den Nichtexistenten-DP schreiben. Mehr passiert dann auch nicht.
Ich könnte es zwar auch im wetterstation.js konfigurierbar machen (ähnlich der DP-Sensoren), wollte dann aber nicht noch eine Einstellmöglichkeit mehr haben. Sind so jetzt eigentlich schon genug -
@west Hmm, da kommt mal gar nichts...
Du hattest noch nicht darauf geantworter: "....35" ist die IP des Rechners auf dem das Skript läuft?
Setz mal den "WS_POLL" auf 60 damit er länger auf ein Datenpaket wartet, dann nochmals mittels "--data" testen. -
192.168.178.35 ist ein Pi 4 mit Influxdatenbank mit Grafana
192.168.178.12 ist ein Pi 4 mit ioBrokerpi@raspberrypi:~/WLAN-Wetterstation $ sudo ./wetterstation.sh --data Connection to 192.168.178.12 8087 port [tcp/*] succeeded! Warte maximal 126 Sekunden auf Datenpaket der Wetterstation... Listening on [0.0.0.0] (family 2, port 8084)
-
@west Blöde Frage, aber hast du jetzt beim Ecowitt auch den Port auf 8084 geändert? Eingangs warst du noch mit 1080 unterwegs.
Kannst du die IP der Wetterstation anpingen? -
Habe jetzt mal Wunderground
Anpingen geht
pi@raspberrypi:~/WLAN-Wetterstation $ ping 192.168.178.6 PING 192.168.178.6 (192.168.178.6) 56(84) bytes of data. 64 bytes from 192.168.178.6: icmp_seq=1 ttl=128 time=65.6 ms 64 bytes from 192.168.178.6: icmp_seq=2 ttl=128 time=84.6 ms 64 bytes from 192.168.178.6: icmp_seq=3 ttl=128 time=106 ms 64 bytes from 192.168.178.6: icmp_seq=4 ttl=128 time=27.6 ms 64 bytes from 192.168.178.6: icmp_seq=5 ttl=128 time=2.65 ms 64 bytes from 192.168.178.6: icmp_seq=6 ttl=128 time=3.02 ms 64 bytes from 192.168.178.6: icmp_seq=7 ttl=128 time=2.88 ms ^C --- 192.168.178.6 ping statistics --- 7 packets transmitted, 7 received, 0% packet loss, time 15ms rtt min/avg/max/mdev = 2.654/41.693/105.521/40.020 ms
ja ich habe den Port geändert
-
Du hast das Script auf 12 laufen (IO Broker host), schickst aber die Daten nach 35 (Influx) ... das kann doch nicht gehen
Oder bin ich da jetzt durcheinander gekommen mit deinen pi's ?;)
Die beiden Pi's heissen aber nicht beide "raspberrypi" oder? -
@rand Das Skript läuft auf 35 nicht auf 12 wo der ioBroker läuft.
Connection to 192.168.178.12 8087 port [tcp/*] succeeded!
Der 192.168.178.35 holt die Daten von der Wetterstation und der 192.168.178.12 (ioBroker) von 192.168.178.35
-
@west Der Port 8084 auf der IP .35 den die Wetterstation nutzt ist aber nicht zufällig schon von etwas anderem belegt?
-
Das wäre nun die nächste Frage gewesen, allerdings war Eingangs schon alles richtig und da wollte er unter 1080 auch nicht...
Sollte bei deaktiviertem Skript dann keine Ausgabe bringen:sudo netstat -tulpen|grep 8084
Zwei- oder dreimal gab es den Fall, dass trotz korrekter Konfiguration das Display einfach nichts schicken wollte. Die User haben dann zigmal alles kontrolliert, war auch alles richtig, und dann beim x-ten +1-mal, ohne das sie was änderten ging es plötzlich. Meine Vermutung ist, dass einige Displays die Einstellungen die man per VS-View macht nicht korrekt übernehmen. Gerade wenn man den Port ändert muss das Display eigentlich neu booten (ist ja auch ein Mini-PC).
@west Stell mal in VS-View den Port ein den du tatsächlich nutzen willst und speichere es dann ab. Batterien (falls vorhanden) aus dem Display raus und Stecker ziehen. Lass es mal für 30 Minuten gänzlich ohne Strom, dann sollten sich auch Caps etc. entladen haben und probiere es dann nochmal.
Sonst wieder in VS-View, nix mehr ändern und wieder per "Save" raus. Notfalls öfters wiederholen.
Solange das Display seine Daten weiß der Geier wohin schickt (kann man leider nicht feststellen), brauchst du auf der Empfangsseite nicht weiter probieren (hier natürlich in der *.conf dann den korrekten Port beim testen nutzen ) -
Sorry das ich mich jetzt erst zurückmelde hatte noch was anderes zutun.
Auch nach entfernen des Netzteil und Batterien geht es nicht.
Habe jetzt mal den Port 8383 genommen und kriege keine Verbindung.pi@raspberrypi:~/WLAN-Wetterstation $ sudo ./wetterstation.sh Connection to 192.168.178.12 8087 port [tcp/*] succeeded! Listening on [0.0.0.0] (family 2, port 8383) (standard_in) 12: syntax error /home/pi/WLAN-Wetterstation/wetterstation.sub: Zeile 403: [: : Ganzzahliger Ausdruck erwartet. /home/pi/WLAN-Wetterstation/wetterstation.sub: Zeile 404: [: : Ganzzahliger Ausdruck erwartet. /home/pi/WLAN-Wetterstation/wetterstation.sub: Zeile 405: [: : Ganzzahliger Ausdruck erwartet. /home/pi/WLAN-Wetterstation/wetterstation.sub: Zeile 406: [: : Ganzzahliger Ausdruck erwartet. /home/pi/WLAN-Wetterstation/wetterstation.sub: Zeile 407: [: : Ganzzahliger Ausdruck erwartet. (standard_in) 1: syntax error
-
@west Gibt ja auch durchaus wichtigeres
Aber nein, dass sieht jetzt "gut" aus.
Die Fehlermeldungen können nur kommen wenn auch Daten empfangen wurden. Du hast wahrscheinlich nur noch nicht per "wetterstation.js" die nötigen Datenpunkte im ioB angelegt (oder der Pfad in der *.conf stimmt nicht mit dem Ort im ioB überein). -
Statistik-Addon hat nach den letzten Änderungen auch sauber funktioniert
Alles korrekt resettet und die Alt-Werte gesichert. Sieht IMO alles gut aus. -
@sborg Irgenwie kriege ich keine Verbindung zur Wetterstation
pi@raspberrypi:~/WLAN-Wetterstation $ ./wetterstation.sh --debug Connection to 192.168.178.12 8087 port [tcp/*] succeeded! Listening on [0.0.0.0] (family 2, port 8383) Messwerteblock: Nicht alle Werte werden unterstützt (abhängig vom Modell der Wetterstation und dem verwendeten Protokoll)! Temperatur Innen : °C Temperatur Aussen : °C Taupunkt : °C Gefühlte Temperatur : °C Luftfeuchte Innen : % Luftfeuchte Aussen : % Windgeschwindkeit : km/h Windböengeschwindkeit : km/h max. Windböe : km/h Windrichtung : ° Windrichtung : Luftdruck absolut : hPa Luftdruck relativ : hPa Regenrate : mm/h Regenstatus : Regen seit Regenbeginn : mm Regen Stunde : mm Regen Tag : mm Regen Woche : mm Regen Monat : mm Regen Jahr : mm Regen Gesamt : mm Sonnenstrahlung : W/m² UV-Index : Zeitstempel : Firmware : Batteriestand: : Gateway-Modell : Zusatzsensoren: Datenstring für ioBroker: DATA von Wetterstation: Debug VAR: Installationsverzeichnis: /home/pi/WLAN-Wetterstation IPP: 192.168.178.12:8087 WS_PORT: 8383 WS_POLL: 30 PRE_DP: javascript.0.Wetterstation WEB: HTTP WS_PROT: Ecowitt DP50/60/70/100/200: 0 | 0 | 0 | 0 | 0 Script-Version: V2.5.0 Config-Version: V2.5.0 Sub-Version: V2.5.0 Kommunikationsfehler!
Habe es jetzt mal direkt aufen IoBroker Pi gemacht genau das gleiche.
Auch nach der Anleitung mit den PiHole geht es nicht.
WS und Werte in IoBroker habe ich Reset. -
@west Dazu fehlt der Screenshot von der APP damit man die Einstellungen sehen kann.
-
-
-
@rushmed sagte in [Linux Shell-Skript] WLAN-Wetterstation:
@west Fehlt da nicht etwas?
Im gut gepflegten Wiki:
4. Path: /weatherstation/updateweatherstation.php?
Wird bei ECOWITT als Protokoll wohl nicht mehr benötigt.
-
@wendy2702 und @Rushmed
Auch mit dem Wunderground Protokoll geht es nicht.pi@raspberrypi:~/WLAN-Wetterstation $ ./wetterstation.sh --debug Connection to 192.168.178.12 8087 port [tcp/*] succeeded! Listening on [0.0.0.0] (family 2, port 8383) Messwerteblock: Nicht alle Werte werden unterstützt (abhängig vom Modell der Wetterstation und dem verwendeten Protokoll)! Temperatur Innen : °C Temperatur Aussen : °C Taupunkt : °C Gefühlte Temperatur : °C Luftfeuchte Innen : % Luftfeuchte Aussen : % Windgeschwindkeit : km/h Windböengeschwindkeit : km/h max. Windböe : km/h Windrichtung : ° Windrichtung : Luftdruck absolut : hPa Luftdruck relativ : hPa Regenrate : mm/h Regenstatus : Regen seit Regenbeginn : mm Regen Stunde : mm Regen Tag : mm Regen Woche : mm Regen Monat : mm Regen Jahr : mm Regen Gesamt : mm Sonnenstrahlung : W/m² UV-Index : Zeitstempel : Firmware : Batteriestand: : Gateway-Modell : Zusatzsensoren: keine Datenstring für ioBroker: DATA von Wetterstation: Debug VAR: Installationsverzeichnis: /home/pi/WLAN-Wetterstation IPP: 192.168.178.12:8087 WS_PORT: 8383 WS_POLL: 30 PRE_DP: javascript.0.Wetterstation WEB: HTTP WS_PROT: Wunderground DP50/60/70/100/200: 0 | 0 | 0 | 0 | 0 Script-Version: V2.5.0 Config-Version: V2.5.0 Sub-Version: V2.5.0 Kommunikationsfehler!
-
@west Welche Station ID steht im Config File?
Ist der Port wirklich frei?
-
Also ich habe jetzt mal den Port auf 9595 geändert und es geht nicht.
Der Port 9595 wird nicht verwendet.
Ich habe die Vermutung es liegt an der neuen Firmware.Debug Terminal
pi@raspberrypi:~/WLAN-Wetterstation $ ./wetterstation.sh --debug Connection to 192.168.178.12 8087 port [tcp/*] succeeded! Listening on [0.0.0.0] (family 2, port 9595) Messwerteblock: Nicht alle Werte werden unterstützt (abhängig vom Modell der Wetterstation und dem verwendeten Protokoll)! Temperatur Innen : °C Temperatur Aussen : °C Taupunkt : °C Gefühlte Temperatur : °C Luftfeuchte Innen : % Luftfeuchte Aussen : % Windgeschwindkeit : km/h Windböengeschwindkeit : km/h max. Windböe : km/h Windrichtung : ° Windrichtung : Luftdruck absolut : hPa Luftdruck relativ : hPa Regenrate : mm/h Regenstatus : Regen seit Regenbeginn : mm Regen Stunde : mm Regen Tag : mm Regen Woche : mm Regen Monat : mm Regen Jahr : mm Regen Gesamt : mm Sonnenstrahlung : W/m² UV-Index : Zeitstempel : Firmware : Batteriestand: : Gateway-Modell : Zusatzsensoren: keine Datenstring für ioBroker: DATA von Wetterstation: Debug VAR: Installationsverzeichnis: /home/pi/WLAN-Wetterstation IPP: 192.168.178.12:8087 WS_PORT: 9595 WS_POLL: 30 PRE_DP: javascript.0.Wetterstation WEB: HTTP WS_PROT: Wunderground DP50/60/70/100/200: 0 | 0 | 0 | 0 | 0 Script-Version: V2.5.0 Config-Version: V2.5.0 Sub-Version: V2.5.0 Kommunikationsfehler!
wetterstation.conf
### Settings V2.5.0 ----------------------------------------------------------- #Debuging einschalten [true/false] / default: false / Ausgabe der Messwerte debug=true #ioBroker-IP und Port der Simple-Restful-API [xxx.xxx.xxx.xxx:xxxxx] IPP=192.168.178.12:8087 #Protokoll der Wetterstation [1/2/9] / 1=Wunderground ; 2=Ecowitt ; 9=Sainlogic Profi / default: 1 WS_PROTOKOLL=1 #Anzahl der vorhandenen Zusatzsensoren / default: 0 ANZAHL_DP50=0 ANZAHL_DP60=0 ANZAHL_DP70=0 ANZAHL_DP100=0 ANZAHL_DP200=0 #Protokoll (HTTP oder HTTPS) / default: HTTP WEB=HTTP #User-Authentifizierung falls benutzt; sonst leer lassen AUTH_USER= AUTH_PASS= #Port der Wetterstation WS_PORT=9595 #Pollintervall der Wetterstation in Sekunden (minimal 16 Sekunden) WS_POLL=30 #Name/ID der Wetterstation WS_ID=ICOLNR2 #wo sollen die Datenobjekte abgelegt werden PRE_DP=javascript.0.Wetterstation #InfluxDB-Konfiguration / ohne InfluxDB alles leer lassen #IP und Port der API [xxx.xxx.xxx.xxx:xxxxx] INFLUX_API= #Name, User und Passwort der InfluxDB-Datenbank INFLUX_DB= INFLUX_USER= INFLUX_PASSWORD= #letztes Regenereignis als [DATUM], [UNIX]-Timestamp oder [DIFF]erenz ("vor xx Tagen") # DATUM = 28.04.2020 13:12 # UNIX = 1588074964 # DIFF = gerade eben / vor einer Stunde / vor 23 Stunden / vor einem Tag / vor 12 Tagen LAST_RAIN=DIFF #Text-Format für Datenpunkte "Sonnenschein_[Tag|Woche|Monat|Jahr]_Text" # zweistellig wird ggf. mit einer führenden "0" aufgefüllt # d = Tag(e) 0...n ein- und mehrstellig / h = Stunden 0...n ein- oder mehrstellig # hh = Stunden zweistellig (00...23) / mm = Minuten zweistellig (00...59) / ss = Sekunden zweistellig (00...59) # # Beispiel: 68 Stunden, 2 Minuten und 15 Sekunden # # Auswahl | Ausgabe im Datenpunkt # ---------------------------------------------------------------------------- # [0] = h Std. mm Min. ss Sek. | 68 Std. 02 Min. 15 Sek. # [1] = h:mm | 68:02 # [2] = d Tag/e h Std. | 2 Tage 20 Std. # [3] = d Tag/e, h Std, m Min | 2 Tage, 20 Std, 2 Min (Anzeige Tage erst bei >0) SONNENSCHEIN_TXTFORMAT=3 ############################################################################################# ### openSenseMap - Einstellungen (nur nötig falls openSenseMap benutzt werden soll) ### ### ### ### Für die Registrierung muss "openSenseMap" auf "false" eingestellt sein! ### ### Erst wenn auch Sensoren angelegt wurden, darf auf "true" umgestellt werden! ### ############################################################################################# #openSenseMap aktivieren [true/false] / default: false openSenseMap=false #SenseBox-User senseBox_USER= #SenseBox-Password senseBox_PWD= #ID der senseBox (24-stellig) senseBox_ID= #Security-Token der Box BOX_TOKEN= ### Die restlichen Einstellungen für OpenSenseMap werden vom System generiert/benutzt ###### ### Änderungen sind hier nicht nötig, außer man weiß ganz genau was man tut! ############### #Sensor-IDs (wird automatisch anhand der Sensoren erzeugt) SENSEBOX_IDSENSOR=() #Sensor-Bezeichnung (Reihenfolge muss zur Sensor-ID identisch sein!) SENSEBOX_IDNAME=("Temperatur" "Luftfeuchte" "Luftdruck relativ" "Luftdruck absolut" "Taupunkt" "gefühlte Temperatur" "Sonnenstrahlung" "Windgeschwindigkeit" "Windrichtung" "UV-Index" "Regenrate") #Messwertezuordnung (Reihenfolge muss zur Sensor-ID identisch sein!) SENSEBOX_IDMESSWERT=(1 5 10 9 2 3 16 6 8 17 11) #Sensorendefinitionen ICONS=(osem-thermometer osem-humidity osem-barometer osem-barometer osem-thermometer osem-thermometer osem-brightness osem-particulate-matter osem-particulate-matter osem-brightness osem-umbrella) UNITS=('°C' '%H' 'hPa' 'hPa' '°C' '°C' 'W/m²' 'km/h' '°' 'Index' 'mm/h') ############################################################################################# ### openSenseMap - Ende der Einstellungen ############################################# ############################################################################################# ### Ende Usereinstellungen ###EoF