NEWS
[Linux Shell-Skript] WLAN-Wetterstation
-
@SBorg Achso ihr redet von der Station selber? Die ist bei mir am Strom angesteckt...
Das der Sensor noch immer nicht da ist, ist echt strange. Bei mir gings voll flott der war sogar schneller wie der neue Wischroboter von Xiaomi da. Kanns sein, dass du eine eMail von denen bekommen hast wo sie fragen ob sie wirklich verschicken sollen? So wars nämlich bei mir, vielleicht warten die noch auf ne Antwort. Das übersieht man gern, weil sonst kein Onlineshop nochmal nachfragt ob er die Bestellung wirklich verschicken soll ;D
Wenn es nicht an den neuen Sensoren liegt hättest du dann evtl. einen Tip worans sonst liegen könnte? Ohne Glaskugel wirst dich da sicher schwer tun aber weiß nicht mal wo ich da nachschauen sollte. Wenn du mir sagt welchen Auszug du brauchst schick ich dir den natürlich gern.
Daten werden seit dem 22.07 nicht mehr übertragen. Der DP "Fehler bei Übermittlung" springt beim Neustart nur kurz auf false (aber ohne Datenübermittlung) und dann nach kurzer Zeit auf true (wahrscheinlich, wenn der erste Datenschwung beim Broker ankommen würde). -
@crunchip sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Vllt waren deine Sachen dabei
Wundern würde es mich nicht und Frankfurt passt auch...
@Stormbringer Station ist eigentlich auch falsch ausgedrückt, sondern der Wettermast. Da ich die Werte nicht nur zur Anzeige nutze, wäre ein Ausfall wegen leerer Batterien "uncool". Da ich sie sowieso noch pimpen will und dabei nicht um eine Spannungsversorgung herum komme (für den Preis der Solarkomponenten kann ich lange Strom verbrauchen), werde ich die 2x AAA 1.5V wohl durch eine 18650 mit passender Ladeschaltung ersetzen oder direkt mit 3V betreiben. Mal sehen.
Du kannst mal ein
./wetterstation.sh --data
im Installationsverzeichnis versuchen (service stoppen falls er noch laufen sollte) ob/was da kommt (ggf. dann PW + StationID x-en). Ev. stellt sich die Station bei Zusatzsensoren direkt auf das ecowitt-Protokoll um.
Lucy von ecowitt hatte mich damals gefragt ob sie mir die Samples raus schicken kann, darauf hatte ich ihr geantwortet. -
@SBorg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
./wetterstation.sh --data
Also da sagt er folgendes:
@SBorg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Wundern würde es mich nicht und Frankfurt passt auch...
Aber du hast doch direkt über Ecowitt und nicht über Aliexpress oder?
@SBorg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
Station ist eigentlich auch falsch ausgedrückt, sondern der Wettermast
Dachte den kann man?! Bei mir werden 3 Battery States angezeigt:
Battery: Tmep&Humidity&Pressure Sensor (den State ordne ich dem weissen Kästchen für indoor zu)
Battery: Soilmoisture Sensor (klar das wär der Erdfeuchtesensor)
Battery: Sensor Arry Battery Level (und dann hätte das nach Ausschlußverfahren der Wettermast sein müssen, weil ich sonst nix anderes habe. Oder hab ich da wieder nen Denkfehler ;D) -
@Stormbringer sagte in [Linux Shell-Skript] WLAN-Wetterstation:
GET hier fehlt was ID=XXX&PASSWORD=XXX&indoortempf=75.4&tempf=80.2&dewptf=48.6
da fehlt in der Config
/weatherstation/updateweatherstation.php?
-
@Stormbringer Der Sensor kommt schon von Ecowitt, ich habe aber noch andere Teile direkt bei Aliexpress geordert. Hängt aber wohl ev. auch beim Zoll fest...
So wie es aussieht ist dein "Path" in der App leer? Muss eigentlich lauten:
/weatherstation/updateweatherstation.php?
Ich sehe aber auch in deinem String keinerlei Anhaltspunkt für einen Batterielevel. Den müsste ja der Mast auch mit schicken, sonst kann die App, Display, Exowitt nichts anzeigen. Ev. gibt es auch einfach andere die es mitschicken.
EDIT ...und paar Sekunden zu spät
-
Ich glaube das war ein Fehler , das ich gestern ein Update auf 1.5.2 gemacht habe ....
ist mir erst heute aufgefallen , das ich keine Daten mehr bekommen .
Alles möglich versucht und dann den Fehler entdeckt.
Ich habe bei mir den Wlan SSID versteckt (den Sinn dafür ist erstmal nebensächlich )
, habe die SSID Sichbar gemacht und siehe da , die Station verbindet sich .Kann da vielleicht einer testen , ob es bei euch auch so jetzt ist !?
-
@Glasfaser und SBorg, wie immer ihr seid der Hammer. Danke jetzt gehts wieder. Wie kommt ihr da immer drauf g Aber ich hab sicher nix an den Einstellungen geändert, steig da irgendwie bei dem Mittelalter meets ioBroker ned so ganz durch. Also halte ich mich davon fern. Muß wohl das Update rausgelöscht haben.
@SBorg Hilft dir ein Screenshot von der App mit dem Batterie Alert? Kann nicht davon kommen, dass das eine WU ist und das andere Ecowitt? Aber wie gesagt steig ned so wirklich durch g
-
@Glasfaser Zumindest bei Unifi geht es; das von der Fritte nutze ich nicht. Verbindet sich brav und funktioniert:
@Stormbringer Kann mit den neuen Sensoren zusammenhängen.
...und ich bin ITler, wäre schlimm wenn ich mich nicht damit auskennen würde, wobei, soll es ja auch geben
Screenshot kannst du gerne mal einen machen, aber solange nichts im String gesendet wird, gibt es schlichtweg auch keinen Batteriestatus -
@SBorg ah daher beziehst du deine Weisheit g Und nochmal blöde Linux Laien Frage... Das der Skript auf WU läuft und von Ecowitt anscheinend nix mitbekommt kann nicht mit den Batterienstatus zusammenhängen?!
-
@Stormbringer sagte in [Linux Shell-Skript] WLAN-Wetterstation:
deine Weisheit...
Jepp, zu den grauen gesellen sich auch schon weiße ... Haare
...und nein, gibt keine blöde Fragen. Doch, kann schon damit zusammenhängen. Wenn bspw. beim Ecowitt-Protokoll dieser mitgesendet würde/wird. Ich habe das aber mangels Sensor(en) noch nicht weiter verfolgt. Für den Anwender ist es (dann) egal ob er jetzt Wunderground oder Ecowitt in der App als Übertragungsprotokoll auswählt. -
@SBorg Jetzt wären wir wieder beim Anfangsproblem, dass sie deine Chinaware immer klauen ;D
-
Ich weiss nicht ob Ihr das schon mitbekommen habt.
Auf Github gibt es mittlerweile einen Froggit/Ecowitt DP1500 API konformen Python Treiber für Weewx. Der greift ohne benötigte Einstellungen in WS View direkt auf den Dongle zu und zieht sich alle Daten inkl. aller verfügbaren Sensoren. Hab damit gestern mal mein Weewx umgestellt.
https://github.com/gjr80/weewx-gw1000
Weewx bringe ich dann mal im Herbst online.
Parallel für unser Dorf bin ich schon mit PWS Dashboard Online. Das rennt wie Hulle gut.https://www.fitzbek-wetter.de/pwsWDxx/PWS_index2.php
@SBorg Dein Script läuft allerdings immer noch bei mir und füttert über das ursprüngliche Wlan Display fleissig weiter den Iobroker...
Gruss,
Matthias
-
Jetzt wo den Mast endlich draussen montiert hab und Netatmo begraben habe tauchen natürlich neue Probleme auf :o(
-
Bei mir merkt er auch ned, wenns leicht regnet. Habe das schon mal irgendwo im Forum gelesen. Habt ihr das Problem auch? Kann ja nicht sein, dass ne Wetterstation es nicht mitbekommt, wenn es regnet. Netatmo hatte da nie Probleme.
-
@SBorg Gibts irgendeine Möglichkeit den Skript neu zu starten nachdem man da WLAN wieder einschaltet? Hintergrund ist der, dass der Broker bei Schlaf und ausser Haus das WLAN von der Fritzbox kappt. Vorher hatte ich da keine Probleme und jetzt anscheinend kommt es zu einem Kommunikationsproblem :o( Also eine andere Möglichkeit wie über Exec JS Befehl. Da reichen meine Linuxkenntnisse leider nicht so wirklich aus einen SSH an einen Remote Rechner zu schicken.
-
-
@lemuba Jein. Weewx ist IMHO etwas oversized wenn man nur paar Daten aus der Station für das eigene SmartHome zieht. Wenn man natürlich auf Statistiken und richtige Wetterinfos steht, dann keine Frage
Falls mal das Gateway und der Sensor von ecowitt eintrudeln sollte, steht aber auch der Implementation ins Shellskript nix im Wege. Ich will ja noch paar andere Zusatzsensoren haben@Stormbringer zu 1: Ja, ist völlig normal. Denn die Station hat keinen Regensensor, sondern einen Regenmengenmesser. Da musst du schon einen echten Regensensor nehmen (@ilovegym nimmt bspw. einen umgebauten Aquara von Xiaomi; ich habe hier einen Kemo liegen).
zu 2: nur extern. Würde ich das WLAN abschalten würde das halbe SmartHome nicht funktionieren, und ohne Messwerte der Wetterstation würde die Markise nicht ein-/ausfahren, die Rollläden beschatten...
Bliebe ein kleines Shellskript auf dem Auswerte-System welches per Cronjob getriggert wird. Das prüft WLAN da --> aktiviere wetterstation-Service. -
@SBorg zu 1. Da messt er aber auch Morentau oder wenn Schnee taut oder? Habt ihr den in den Regentrichter rein?
Und zu 2. Bin leider nicht so weise wie du ;d Ich versuchs jetzt mal mit Adapter ausschalten, wenn WLAN aus und Notfalls mit Display stromlos mit Z Wave Plug. Vielleicht hilft das ja auch. Aber wäre es nicht machbar, dass man das Skript in der Config einen automatischen Restart geben kann wie den Adaptern beim Broker? Oder ist das zu aufwändig? -
@Stormbringer Der Trichter ist schon recht klein, geht also nicht viel Schnee oder Tau rein. Der Knackpunkt sitzt aber unterhalb des Trichters, denn dort ist eine Wippe mit einer Messschale. Die muss mit xx ml gefüllt sein bis sie kippt. Das ergibt dann einen Impuls = Anzeige auf dem Display 0.x mm Regen (die genauen Werte habe ich gerade nicht im Kopf). Deswegen löst der Tau (ist einfach zu wenig) es nicht aus, Schnee ... (noch keine Erfahrung)? Da liegt aber dann auch dein (oder unser aller) Problem, dass es eben schon eine zeit lang nieseln muss bis die Wippe voll ist und ein Impuls ausgelöst wird. Als "echte" Regenerkennung (bspw. Markise) völlig unbrauchbar. Aber er soll ja auch nur die Menge messen...
Im Grunde zwar ja, aber wie oben geschrieben, dreht man normalerweise das WLAN gar nicht ab. Es deswegen direkt im Skript implementieren schafft dann nur eine Fehlerquelle und sorgt für mehr Systemlast (das ist zwar minimal, aber eben für 99.99% der User unnötig. Zumindest ich fahr auch nicht im Sommer den Schneefeger im Kofferraum spazieren )
Das sind nur eine handvoll Zeilen und die mache ich dir fertig. -
@lemuba Die Seite sieht der sehr nice, aus wie bekommt man den DWD Niederschlagsradar rahmenlos eingebunden? Das würde ich auch in meinem Grafana Panel ganz toll machen.
-
@SBorg Ne meinte mit dem Feuchtigkeitssensor
Fand’s allgemein nicht schlecht, wenn mal ein Übertragungsfehler ist mit Neustart des Skripts. Aber wenn du so nett und sozial bist und es nur für mich machst soll’s mir auch recht sein. Vielen Dank
-
@SBorg sagte in [Linux Shell-Skript] WLAN-Wetterstation:
dreht man normalerweise das WLAN gar nicht ab.
man "spielt" aber hin und wieder mit seinem Netzwerk(UniFi), Änderung am Wlan, oder mal 5Ghz abschalten( Einbindung von Geräten)...und bei jeder Änderung wird der AP entsprechend neu provisioniert, folglich sieht das dann ständig so aus
-
Ich kann halt nicht unterscheiden ob es die 868MHz Kommunikation Wettermast --> Display, oder WLAN Display --> Router/AP/etc. ist. Ich habe dafür eine Anzeige in meiner VIS die es dann auf drücken des Buttons resettet.
Aber der Fall ist nun auch kein normales Anwendungsszenario, und eine Netzwerküberwachung an dieser Stelle ist IMHO nicht die Aufgabe eines Skriptes, welches Daten der Wetterstation auswertet?Lässt sich aber auch relativ einfach realisieren. Dafür nachfolgend kleiner "Watchdog". Ich nenne ihn mal wetterstation-watchdog.sh und lege ihn im Verzeichnis des wetterstation-Skriptes ab (hier im Beispiel unter /home/iobroker ).
Da wir nachher noch einen cronjob anlegen ist es als user "root" einfacher, sonst halt sudo davor...cd /home/iobroker touch wetterstation-watchdog.sh chmod +x wetterstation-watchdog.sh nano wetterstation-watchdog.sh
nun folgenden Quellcode einfügen:
#!/bin/bash WATCH_IP="192.168.1.157" if ! ping -c 1 -w 1 ${WATCH_IP} > /dev/null; then echo Display ist Offline, schalte Wetterstation-Service ab... systemctl stop wetterstation else echo Display ist Online, prüfe Wetterstation-Service ... ps -A | grep -q wetterstation if [ "$?" -eq 1 ]; then echo Starte Wetterstation-Service... systemctl start wetterstation fi fi
Unter "WATCH_IP" dann eine IP innerhalb des WLANS eintragen (bietet sich natürlich die IP des Displays an )
Speichern und nano beenden. Der Watchdog macht dann folgendes:- Display/WLAN nicht erreichbar --> schaltet den wetterstation-Service ab
- Display/WLAN erreichbar --> prüfe ob der wetterstation-Service läuft -->
- NEIN --> aktiviere den wetterstation-Service
- JA --> tue nichts
Beim starten des Services wird dann auch immer der "Kommunikationsfehler-Datenpunkt" zurückgesetzt
Jetzt fehlt noch die zyklische Ausführung des Skriptes (für einen Zeitrahmen sei auf die Doku von cron verwiesen), bspw. check alle 5 Minuten:
crontab -e
und folgende Zeile einfügen (WICHTIG!: die crontab muss immer mit einer Leerzeile enden! Wenn ihr es also ganz unten anhängt unbedingt noch eine Leerzeile mit anhängen):
*/5 * * * * /home/iobroker/wetterstation-watchdog.sh >/dev/null 2>&1