Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Praktische Anwendungen (Showcase)
    4. [Linux Shell-Skript] WLAN-Wetterstation

    NEWS

    • 15. 05. Wartungsarbeiten am ioBroker Forum

    • Monatsrückblick - April 2025

    • Minor js-controller 7.0.7 Update in latest repo

    [Linux Shell-Skript] WLAN-Wetterstation

    This topic has been deleted. Only users with topic management privileges can see it.
    • SBorg
      SBorg Forum Testing Most Active last edited by

      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
      
      S Neuschwansteini 2 Replies Last reply Reply Quote 2
      • T
        tritor last edited by

        Hi,

        Habe für die meisten Daten aus dem Skript mit influxdb zum loggen der Daten eingestellt.
        Für die Temperaturen geht das ganz gut.
        Wenn ich z. B. Bei Tabellen in influxdb screen für Aussenluftfeuchte nachsehen, dann sehe ich nur null Werte.
        Auch beim Luftdruck ist das so. Ein umstellen des Typs von String auf Auto hat nichts gebracht.

        Hoffe jemand kann mir helfen.

        SBorg 1 Reply Last reply Reply Quote 0
        • S
          Stormbringer @SBorg last edited by

          @SBorg Cool perfekt, danke. Muss ich demnächst mal ausprobieren. Und du darfst ned so tief stapeln. Der Skript ist ja fast ein Adapter und die verbinden sich ja auch neu wenn was schief geht 😉😋🍻 Und wie Crunchip schon richtig erwähnt hat kanns ja immer wieder mal passieren, dass so ein Kommunikationsfehler auftritt. Falls der Fehler innerhalb der Station ist und nicht im Netzwerk kann man eh nichts machen. Also find ich das einen sehr guten Lösungsansatz.

          Aber wie machst du das dann mit VIS? Wenn man über VIS einen Neustart anstoßen kann bräuchte man ja gar kein Cron Job oder? Könnte man ja dann mit JS anstoßen, wenn Fehler Kommuniktion oder WLAN aus restart/stop.

          SBorg 1 Reply Last reply Reply Quote 0
          • metaxa
            metaxa @SBorg last edited by

            @tritor Witzig, hab gerade begonnen den Tread von Anfang an zu lesen und stolpterte über diese Ausage: Stammt aus dem Beitrag: >>klick<<

            @SBorg sagte in [Linux Shell-Skript] WLAN-Wetterstation:

            bzgl. Daten: Aaarrrgghh, hab den k*ck schon befürchtet. Der History-Adapter schreibt schon nix wenn ack=false ("bestätigt"), der InfluxDB auch...

            Eventuell hilft dir das weiter .... LG, mxa

            1 Reply Last reply Reply Quote 0
            • Neuschwansteini
              Neuschwansteini @SBorg last edited by

              @SBorg Hehe, das Watchdog hab ich glatt mal gemacht, da bei mir von der Wetterstation einiges abhängt...

              und noch um eine simple-api erweitert, wenn die Wetterstation down ist, bekomm ich ne Whatsapp.. 🙂

              1 Reply Last reply Reply Quote 0
              • SBorg
                SBorg Forum Testing Most Active @tritor last edited by

                @tritor Du kannst den "Field Type" bei influx nachträglich nicht mehr ändern. Wenn du im Adapter "automatisch" gewählt hast und er, warum auch immer, die Zahl als String erkannt hat, wird die Datenreihe auch als String angelegt und so fortgeführt.
                Per Terminal ( _DATENBANKNAME_ mit dem Namen deiner Datenbank ersetzen) :

                influx
                use _DATENBANKNAME_
                show field keys from "javascript.0.Wetterstation.Aussenfeuchtigkeit"
                

                Bei value muss dann float stehen (ich habe hier versehentlich Innenfeuchte genommen 😉 ) :
                Bild 1.png
                Steht dort String gibt es nur zwei Möglichkeiten:

                • die Werte sind nicht sehr wichtig: die Datenreihe droppen + darauf achten, dass sie bei Neuanlage auf "Zahl" steht
                • die Werte sind wichtig: die Datenreihe exportieren, dann löschen und explizit wieder als Zahl importieren
                T 1 Reply Last reply Reply Quote 0
                • SBorg
                  SBorg Forum Testing Most Active @Stormbringer last edited by

                  @Stormbringer Ich setze nur den "Kommunikationsfehler" zurück, damit ich in der VIS keinen entsprechenden Hinweis mehr habe. Da du über die VIS aber auch Blockly/JS antriggern kannst, besteht natürlich die Möglichkeit per "exec" auch einen Befehl wie systemctl start/stop wetterstation abzusetzen 🙂

                  Zum "Watchdog" (und warum nicht direkt im Skript):
                  Ich bin Änderungen/Neuerungen immer aufgeschlossen und setzte diese wenn möglich auch um. Die Funktionalität lässt sich aber so nicht abbilden. Das wäre dann "der sich selbst abschleppende Abschleppwagen". Kein Programm, Skript oder what else kann sich selbst starten wenn es sich "aufgehängt" hat oder gar nicht läuft. Beenden oder neu starten ja, aber das andere geht eben nur per externem Trigger. Genau da setzt der Watchdog an. Deswegen habe ich auch die "echos" drin gelassen, damit man sieht wo genau was passiert und man noch etwas hinzufügen kann, auch wenn ich die Ausgabe dann im cronjob mittels ">/dev/null 2>&1" wieder abwürgen muss (sonst loggt er die Ausgabe brav mit).

                  S 1 Reply Last reply Reply Quote 1
                  • S
                    Stormbringer @SBorg last edited by Stormbringer

                    @SBorg Das mit dem Abschleppwagen ergibt Sinn g Glaube wir haben das selbe gemeint aber mir hats halt an der Umsetzung gefehlt. Deine Anleitung war gewohnt top, bin Durchgekommen auch als Linux Laie. Das mit dem Exec Befehl absetzen auf einen entfernten Rechner ist nach wie vor ein Buch mit sieben Siegeln für mich aber danke das wird genau so funktionieren ;o) Vielen Dank

                    1 Reply Last reply Reply Quote 0
                    • L
                      lemuba @Rushmed last edited by lemuba

                      @Rushmed sagte in [Linux Shell-Skript] WLAN-Wetterstation:

                      @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.

                      Den Link hatte ich aus irgendeinem schon eingebundenen DWD Niederschlagsradar gezogen - leider nicht direkt auf DWD gefunden/generiert:

                      https://www.niederschlagsradar.de/image.ashx?type=regioloop&regio=ham&j=&m

                      ham=Region Hamburg
                      m=Mobile Darstellung

                      mun wäre z.B. München...

                      Deutschland: https://www.niederschlagsradar.de/image.ashx?

                      Grafana Panel dann vielleicht so:

                      Panel jason.txt

                      Würde aber eher empfehlen einen Windy Link einzusetzen - z.B.

                      https://embed.windy.com/embed2.html?lat=54.00318&lon=9.76869&zoom=8&level=surface&overlay=radar&menu=&message=true&marker=&calendar=&pressure=&type=map&location=coordinates&detail=&detailLat=54.00318&detailLon=9.76869&metricWind=&metricTemp=&radarRange=-1

                      Panel Jason:

                      Windy jason.txt

                      Das skaliert einwandfrei auf jede Größe die Du ziehst und in der Gewitter Darstellung kannst Du Dir sicher sein, falls so eine blau/grüne Wolke über Dir ist, kommt da auch was raus - ich meine das jeweils aktuelle Radarbild ist ca. "max." 10 Minuten alt. Mein Frau schaut immer nach kurz bevor sie mit den Hunden Gassi geht - Nass werden mit Ansage 😉

                      Leider funktioniert das Windy Radar nicht in meiner PWS Dashboard Webseite, sonst würde es auch da laufen...

                      R 1 Reply Last reply Reply Quote 0
                      • E
                        eviltrooper last edited by

                        Hallo,
                        Gerade gibts bei Elv die ventus 830 im Angebot.
                        Die funktioniert auch mit dem Script oder?

                        SBorg 1 Reply Last reply Reply Quote 0
                        • SBorg
                          SBorg Forum Testing Most Active @eviltrooper last edited by

                          @eviltrooper Jepp (siehe auch 1. Post im Thread Ventus W830) 🙂

                          1 Reply Last reply Reply Quote 0
                          • wendy2702
                            wendy2702 last edited by

                            Gerade die Ventus bestellt.

                            Werde berichten.

                            Gruß und sonniges Wochenende

                            1 Reply Last reply Reply Quote 0
                            • E
                              eviltrooper last edited by

                              Oh man.. peinlich.. danke..
                              Das WU zum Ende des Jahres seine API schließt, tangiert hier nicht oder.

                              1 Reply Last reply Reply Quote 0
                              • SBorg
                                SBorg Forum Testing Most Active last edited by

                                Alles kein Problem 🙂
                                ...und nein, dass funktioniert Cloudfree. Die Station muss auch nicht ins Inet senden, sondern schickt das Datenpaket (das ist aber im "Wunderground-Format") einfach direkt an deinen Auswerteclient.
                                Notfalls gibt es ja auch noch das "Ecowitt-Format" (was wahrscheinlich eh kommt wenn mal meine Sensoren von Ecowitt kommen) 😁

                                1 Reply Last reply Reply Quote 0
                                • R
                                  Rushmed Most Active @lemuba last edited by

                                  @lemuba Die Windy Einbettung ist sehr geil.
                                  Hast du ne Ahnung wie ich gleich die "Regen, Gewitter" Darstellung einbette, statt von "Radar und Blitze" wechseln zu müssen?

                                  Glasfaser 1 Reply Last reply Reply Quote 0
                                  • Glasfaser
                                    Glasfaser @Rushmed last edited by

                                    @Rushmed
                                    du kannst den HTTP Code anpassen , auf deine bedürfnissen !

                                    habe es bei mir so :

                                    &metricWind=default&metricTemp=default&radarRange=-1
                                    

                                    1.JPG

                                    R 1 Reply Last reply Reply Quote 0
                                    • R
                                      Rushmed Most Active @Glasfaser last edited by

                                      @Glasfaser OK, Danke.
                                      Habe overlay=radar zu overlay=rain geändert. Jetz gehts.

                                      1 Reply Last reply Reply Quote 0
                                      • wendy2702
                                        wendy2702 last edited by

                                        Darf ich mal fragen wo ihr eure Wetterstationen installiert habt? Auf dem Hausdach oder wo sonst?

                                        K Latzi crunchip Neuschwansteini 4 Replies Last reply Reply Quote 0
                                        • K
                                          Kueppert @wendy2702 last edited by

                                          @wendy2702 hab ich mich auch heute erst auch gefragt ^^ bin gespannt...

                                          1 Reply Last reply Reply Quote 0
                                          • Latzi
                                            Latzi @wendy2702 last edited by

                                            @wendy2702 sagte in [Linux Shell-Skript] WLAN-Wetterstation:

                                            Wetterstationen installiert

                                            Am Gartenzaun auf einem 50mm Rohr (3 m lang), also ca. 4 m über dem Boden und frei von Störkonturen

                                            metaxa 1 Reply Last reply Reply Quote 1
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            591
                                            Online

                                            31.6k
                                            Users

                                            79.4k
                                            Topics

                                            1.3m
                                            Posts

                                            linux shell-script wetterstation wlan-wetterstation
                                            141
                                            5399
                                            2901525
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo