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

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [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 @lemuba last edited by

      @lemuba Läuft denn der Cron-Service? DietPi nutzt den üblichen cron, müsste also soweit auch laufen...
      service cron status
      Bild 1.png
      falls nicht, service cron start, dass wird aber nur bis zum nächsten reboot funktionieren.
      Mittels systemctl enable cron aktivierst du dann den "Autostart" auch beim booten dauerhaft.

      Wenn es mittels "pkill" nicht funktioniert, kannst du auch "killall" nutzen, nur würde ich noch "-9" hinzufügen. Dies würgt den Prozess nicht brutal ab, sondern schickt ihm eine Mitteilung "los, beende dich gefälligst", und gibt ihm Zeit, noch Daten zu schreiben oder was er sonst gerade tut noch ordnungsgemäß zu beenden 🙂

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

        @SBorg
        Erstmal vielen Dank für Deinen 1A Support und Geduld!

        Ja der Cron Service läuft nach einem Reboot, aber wenn ich den Cron nach Wiki anlege, kümmerts meine Dietpi Instanz nicht was da drinne steht. Im welchem Verzeichnis muss das Teil denn drinne liegen, damit es eventuell nach eine Reboot abgearbeitet wird...?


        ^Croot@DietPi:~# for DietPi-Postboot to finish... (Press CTRL+C to abort) (2)
        root@DietPi:~# service cron status
        ● cron.service - Regular background program processing daemon
        Loaded: loaded (/lib/systemd/system/cron.service; disabled; vendor preset: en
        abled)
        Active: active (running) since Sun 2020-03-29 13:55:18 CEST; 57s a
        go
        Docs: man:cron(8)
        Main PID: 1390 (cron)
        Tasks: 1 (limit: 4915)
        CGroup: /system.slice/cron.service
        └─1390 /usr/sbin/cron -f

        Mär 29 13:55:19 DietPi cron[1390]: (CRON) INFO (pidfile fd = 3)
        Mär 29 13:55:20 DietPi cron[1390]: (CRON) INFO (Running @reboot jobs)
        Mär 29 13:55:20 DietPi CRON[1409]: pam_unix(cron:session): session opened for us
        er root by (uid=0)
        Mär 29 13:55:20 DietPi CRON[1410]: pam_unix(cron:session): session opened for us
        er root by (uid=0)
        Mär 29 13:55:20 DietPi CRON[1419]: (root) CMD ( PATH="$PATH:/usr/local/bin/" p
        ihole updatechecker remote reboot)
        Mär 29 13:55:20 DietPi CRON[1421]: (root) CMD (/usr/sbin/logrotate /etc/pihole/l
        ogrotate)
        Mär 29 13:55:20 DietPi CRON[1410]: (CRON) info (No MTA installed, discarding out
        put)
        Mär 29 13:55:20 DietPi CRON[1410]: pam_unix(cron:session): session closed for us
        er root
        Mär 29 13:55:20 DietPi CRON[1409]: (CRON) info (No MTA installed, discarding out
        put)
        Mär 29 13:55:20 DietPi CRON[1409]: pam_unix(cron:session): session closed for us
        er root
        root@DietPi:~#

        Rufe die Wetterstation.sh nun als Postboot Script auf - das funktioniert auch und es kommen im Iobroker die Werte an.
        Nur wenn ich dann ein Terminal Fenster aufmache, muss ich jedes mal CTRL + C eingeben um diese Ausgabe im Terminafenster zu beeenden:

        INFO ] Waiting for DietPi-Postboot to finish... (Press CTRL+C to abort)

        Und noch eine Frage... Warum sollte Wetterstation.sh einmal am Tag um 0:02 Uhr beendet und neu gestartet werden? Kann das irgendwelche Nachteile haben wenn mans nicht einrichtet?

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

          @lemuba Eigentlich unter /etc/crontab für die systemweite. Dann gibt es aber noch die User eigenen und "root" ist auch ein User 😉
          Irgendwo habe ich aber gelesen, dass bei DietPi nur "root" abgearbeitet wird. Deswegen würde ich die Einträge mal so probieren crontab -u root -e bzw. -l für die Ausgabe.
          Dann bliebe notfalls noch /etc/crontab direkt bearbeiten oder per rc.local (ist wie bei Windows der Autostart)

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

          Warum sollte Wetterstation.sh einmal am Tag um 0:02 Uhr beendet

          Kannst du auch testweise mal weglassen. Das Ganze ist ja über einen längeren Zeitraum gewachsen. Dabei stellte sich heraus, dass uU der nc nach einer längeren Laufzeit (meist ~3-4 Tage) einfach "hängen bleibt". Deswegen der tägliche "reboot" des Skriptes und damit auch des netcat 😉

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

            @SBorg

            Ich habs nun hin - allerdings ohne crontab.

            Hatte ja in "/var/lib/dietpi/postboot.d" noch ein wetterstation_start.sh File mit folgender Zeile reinkopiert:

            /opt/iobroker/wetterstation.sh &

            Nun noch das "&"/"UND" Zeichen dahinter eingefügt und nun meckerts auch nicht mehr im Terminal-Fenster mit "Waiting for DietPi-Postboot to finish... (Press CTRL+C to abort)"

            start.JPG

            Nach einem Reboot läuft nun Alles sauber hoch.

            Habt Ihr vielleicht noch einen Tip für mich?

            Hatte gerade meine Wetterstation draußen aufgebaut. Im Grafana View werden mir natürlich noch die alten Daten von gestern, also von Drinnen angezeigt. Grafana greift ja die Daten aus der influxdb ab - hatte in der Iobroker Instanz nun gesagt, dass er die alten Daten löschen soll - tuts aber anscheined nicht. Der Grafan View zeigt mir immer noch den Verlauf seit gestern an...??? Hmm?!

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

              @lemuba
              @SBorg
              Danke für eure Hilfe .👍

              Mach mal ein which nc --> /bin/nc
              ls -al /bin/nc --> ... /bin/nc -> /etc/alternatives/nc
              ls -al /etc/alternatives/nc --> ... /etc/alternatives/nc -> /bin/nc.openbsd
              Steht da .../nc.openbsd, ist es zumindest schon mal der "richtige" netcat

              Alles Ausgaben kommen so , wie du es auch angegeben hast .

              Dann könnte es uU sein, dass dein Port 9999 gar nicht durch die VM durch gereicht wird (Firewall etc.).

              Ports geändert ... immer das gleiche , Ausgabe bleibt stehen .

              Egal ... das hat mich jetzt über 15 Stunden aufgehalten 😧 , rauf und runter installiert und und ...
              ..... vielleicht liegt es am Dietpie Image ...!?

              Ich gebe erstmal auf .... ,Hat auch nichts mit diesem Thread zu tun !

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

                Für meine W830 kam gerade eine neue Firmware.
                Screenshot_20200329-222409_WS View.jpg

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

                  #3 könnte interessant werden. Ev. behebt dies die gelegentlich willkürlich verschwindenden Datenpakete.

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

                    @crunchip & (@SBorg )

                    Erstmal vielen Dank für Deinen klasse View! Bin auch neu mit Grafana und hatte mir echt geholfen da rein zu kommen!

                    Aber sagt mal, wie habe Ihr in Influxdb denn die Datenaufzeichnung eingestellt? Hatte da grundsätzlich "nur bei Änderungen" aufzeichenen eingestellt. Nun hatte ich aber Nachts auch noch Werte im View für UV-Index von 0,xxx und auch 0,xxxx Watt/m² im Plusbereich... Habe nun mal für entsprechende Datenpunkte "Minimale Differenz zum letzten Wert" auf 0,1 eigestellt - nun schaltet es auch das Licht im View auf NULL... 😉

                    Anbei mal Screenshots von der Regenrate bevor ich die auf 0,1 geändert hatte - die stand noch auf 0,9 im View obwohl es seit Stunden keinen Niederschlag mehr gab...

                    Regenrate.JPG

                    Differenz.JPG

                    @SBorg

                    Nur Kosmetik und Erbsenzählerei... Heute hatte es in Schleswig-Holstein geschneit und gehagelt (kommt ja mittlerweile selten vor 😉 ). Aber macht es vielleicht Sinn die Variabeln/Datenpunkte mal namentlich von Regen auf "Niederschlag" zu ändern...?

                    crunchip SBorg 2 Replies Last reply Reply Quote 0
                    • crunchip
                      crunchip Forum Testing Most Active @lemuba last edited by

                      @lemuba sieht bei mir so aus
                      0486fa1d-272a-47f5-b152-a2df1a672041-image.png

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

                        @crunchip

                        Ok, habe verstanden... 😉 Bei Dir scheint die Sonne noch mind. 30 Minuten länger als bei mir und es wird erst dann Dunkel 🙂
                        Dafür stehe ich aber mit 0,1 nicht so lange im 🌧 wie Du 🙂

                        Darüber muss ich jetzt nochmal schlafen...

                        L crunchip 2 Replies Last reply Reply Quote 0
                        • L
                          lemuba @lemuba last edited by lemuba

                          Ich verstehe gerade nicht den Wert der berechneten Regen-Jahresgenmenge von 4,5mm...? Wird da nicht einfach jede Regenmenge im aktuellen Jahr aufaddiert, müsste also mind. 7.1mm ergeben?

                          Regenmenge.JPG

                          1 Reply Last reply Reply Quote 0
                          • crunchip
                            crunchip Forum Testing Most Active @lemuba last edited by crunchip

                            @lemuba auch nicht länger als bei dir, es werden bei mir nur Werte zwischen geschrieben, bis eine Änderung eintrifft
                            Vllt liegt es an deinen Settings in Influx, hab da nen Schreibintervall von 60 sec

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

                              @crunchip

                              Das verstehe ich gerade nicht - wo hast Du den Schreibintervall von 60 Sek. eingestellt? Kann ja eigentlich nur in der wetterstation.sh sein? Somit kommen dann im Broker alle 60 Sek. die aktualisierten Werte an.

                              Ich interpretiere Deine Einstellungen dann wie folgt:
                              Wenn Du dann im influxdb Adapter 1800 eigestellt hast, kann Folgendes passieren:

                              • UV Index bei Sonnenuntergang 0,9, aber ggf. erst 1800Sek,/eine halbe Stunde später, die aktualisierten Werte (Null, weil Nacht) in influxdb und somit in der Grafana Anzeige/View...?

                              Edit: Sehe gerade, im influxdb Adapter kann man auch noch einen Schreibintervall entstellen - verstehe nur gerade noch nicht die Gesamtzusammenhänge...

                              crunchip 1 Reply Last reply Reply Quote 0
                              • crunchip
                                crunchip Forum Testing Most Active @lemuba last edited by

                                @lemuba Grafana selbst hat einen einstellbaren Schreibintervall.
                                Den Schreibintervall deiner InfluxDb stellst du in der Instanz selbst ein. Dort könntest du auch einstellen, Werte sammeln und nur alle x Minuten zu senden.
                                Die 1800sec ist die Zeit, indem zusätzlich ein Wert geschrieben wird, falls sich über längeren Zeitraum der eigentliche Wert nicht ändern sollte.

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

                                  @crunchip

                                  Ok, gesehen - aber Du meinst sicherlich "Influxdb" selbst hat einen einstellbaren Schreibintervall...?
                                  Weil Grafana selber liest doch nur aus Influxdb...?

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

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

                                    Nur Kosmetik und Erbsenzählerei... Heute hatte es in Schleswig-Holstein geschneit und gehagelt (kommt ja mittlerweile selten vor ). Aber macht es vielleicht Sinn die Variabeln/Datenpunkte mal namentlich von Regen auf "Niederschlag" zu ändern...?

                                    Jein. Einen Datenpunkt benennt man möglichst nicht mehr um, gerade wenn es eigentlich nur Kosmetik ist. Denk da mal an die ganzen Javascripte, Blocklys, VIS... die da ggf. von den Usern darauf schon verweisen. Die müssten dann alle geändert werden.
                                    Aber in der wetterstation.conf kann sich ja jeder die Datenpunkte benennen wie er möchte.

                                    So heißen aber nur rein die Datenpunkte, denn wie du es in der Anzeige (VIS, Grafana...) benennst ist ja völlig unabhängig davon. So könnte der reine Datenpunkt auch "Käsekuchen" heißen, in der VIS lässt du dann "Kirschtorte" anzeigen und in Grafana "Schweinshaxe mit Sauerkraut" 🙂
                                    Die Benennung dort ist nur dazu da, um die Datenpunkte eindeutig identifizieren zu können. Wären die bspw. durchnummeriert, könnte man mit Messwert #11 wahrscheinlich erst mal recht herzlich wenig anfangen.
                                    Ändere also einfach in Grafana die Bezeichnungen auf Niederschlagsmenge und alles ist gut 😁

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

                                    Ich verstehe gerade nicht den Wert der berechneten Regen-Jahresgenmenge von 4,5mm...? Wird da nicht einfach jede Regenmenge im aktuellen Jahr aufaddiert, müsste also mind. 7.1mm ergeben?

                                    Nur wenn das Skript genau so lange läuft wie die Station. Wenn die Station bspw. schon einen Tag die Regenmenge sammelte, schreibt sie die Jahresregenmenge um 0:00 Uhr und nullt die Tagesmenge. Lässt du nun das Skript laufen fängt es bei 0mm an, die Station hat aber schon einen "Vorsprung" durch den 1. Wert.
                                    Du müsstest also einmalig die kumulierte Jahresregenmenge korrekt setzen (also auf 7.1 mm). Ab dann kann erst die Berechnung stimmen, da der bis dahin gefallene/gemessene Regen schlichtweg fehlt. siehe auch im WiKi

                                    L Glasfaser 2 Replies Last reply Reply Quote 0
                                    • L
                                      lemuba @SBorg last edited by

                                      @SBorg

                                      Super, Danke! Die FAQ im WIKI hatte ich leider übersehen.

                                      Ich lass meine VM/Dietpi nun mal ein paar Tage durchlaufen und schaue ob das Script stabil ohne Crontab/reboot arbeitet.

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

                                        @SBorg

                                        Ich bin jetzt von der Raspberry auf die Synology VMM umgezogen ( DietPi ) und es funktioniert alles.

                                        Was mich stutzig macht ist der pkill Befehl mit dem Prozessnamen , er killt den Prozess nicht :

                                        pkill -9 wetterstation.sh
                                        

                                        Andere Befehle wie kill , killall , oder pkill -9 wetterstation .* gehen auch nicht .

                                        laut Ausgabe von ps -e , läuft der Prozess immer noch und die Daten werden empfangen /gesendet .
                                        .
                                        1.JPG

                                        Erst wenn der Befehl mit dem Namen wetterstation.s ausgefüht wird , ist der Prozess auch gekillt .

                                        pkill -9 wetterstation.s
                                        

                                        Dieses habe ich auch auf der Raspberry ausprobiert und auch dort das gleiche .

                                        1.JPG

                                        Hier sind zwei verschiedene Systeme und bei beiden das gleiche ....!!?
                                        Kann das sein , das es dann so richtig ist wie ich es rausgefunden habe oder !!??

                                        L SBorg 2 Replies Last reply Reply Quote 0
                                        • L
                                          lemuba @Glasfaser last edited by lemuba

                                          @Glasfaser

                                          Auf meiner Dietpi VM funktioniert killall einwandfrei, allerding ohne den parameter -9 wie ich meine.
                                          Also >killall wetterstation.sh

                                          pkill dagegen funktioniert nicht.

                                          Starten tue ich das Script nach Ende des Bootvorgangs wie hier beschrieben:
                                          https://forum.iobroker.net/post/402255

                                          Ich wollte auch nochmal im Ibroker ein Blockly basteln, welches den Zeitstempel auf Änderungen prüft und dann ggf. über exec die wetterstation.sh neu startet und mir darüber ggf. auch ne Telegram Nachricht sendet.

                                          https://forum.iobroker.net/topic/2892/ssh-befehle-als-skript-in-iobroker-ausführen/5

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

                                            @Glasfaser Eigentlich sollte es wetterstation.sh heißen. Da sich Linux aber nicht sehr für die Endungen interessiert, läuft es trotzdem auch wenn die Endung nur "s" ist. Wahrscheinlich hast du in der crontab beim starten einfach das "h" vergessen.
                                            Dann müssen aber auch die Aufrufe mit wetterstation.s und nicht wetterstation.sh erfolgen 😉
                                            Dann der nächste Fallstrick: "kill" funktioniert nur mit den PIDs (=Nummer bei Ausgabe durch ps), nicht mit den Prozessnamen
                                            killall wetterstation.sh sollte aber immer funktionieren. "-9" funktioniert allerdings nicht (steht oben irgendwo falsch, sorry), dass müsste -s 9 lauten, ist aber eh die Standardeinstellung, kann man also weglassen.
                                            ...und um es noch verwirrender zu machen: pkill funktioniert nicht mit dem Asterisk wenn man im Verzeichnis mit dem Shell-Skript steht. Wenn also bspw. die wetterstation.sh in /home/iobroker liegt und ihr steht im Verzeichnis /home/iobroker, funktioniert ein "pkill -9 wetterstation.*" nicht!

                                            Alle noch ggf. vorhandenen restlichen Klarheiten beseitigt? 😇
                                            ...und nein, ist echt kein Aprilscherz 😁

                                            Glasfaser 1 Reply Last reply Reply Quote 2
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            1.0k
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            linux shell-script wetterstation wlan-wetterstation
                                            142
                                            5471
                                            3255023
                                            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