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

    • [erledigt] 15. 05. Wartungsarbeiten am ioBroker Forum

    • 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.
    • G
      Gezi70 @SBorg last edited by

      @sborg Ich habe die neue Version aus dem Stable laufen. Kann es sein, dass die Tagesminimum- und -maximumwerte nicht mehr richtig angezeigt werden?

      Screenshot (7).jpg

      Negalein SBorg 2 Replies Last reply Reply Quote 0
      • Negalein
        Negalein Global Moderator @Gezi70 last edited by

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

        dass die Tagesminimum- und -maximumwerte nicht mehr richtig angezeigt werden?

        funktioniert hier

        b03a4593-b6d6-4d81-bb97-42c6cd9ccc44-image.png

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

          @gezi70 Die Daten werden aus der InfluxDB ausgelesen. Ev. lief aus irgendeinem Grund genau vor einem Jahr das Skript, der ioB... mal länger nicht? --> dann wurde nichts aufgezeichnet und er kann auch nix auslesen

          Falls du Grafana nutzt (bzw. es jetzt immer noch nicht funktioniert) scroll doch mal ein Jahr backwards ob da Temperaturmesswerte für "Außen" vorliegen.

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

            @sborg da liegt nix, ich musste das ganze System neu aufsetzen. Mir geht es eigentlich "nur" um die Tages min- und max Werte. Wann werden diese Punkte befüllt? Ich habe ständig in beiden Datenpunkten gleiche Werte: und zwar den des Maximums. Ist mir gestern aufgefallen, als meine Frau meinte, dass es früh minus elf Grad hatte, aber die Werte auf meiner Vis immer das gleiche anzeigen: das jeweilige Maximum des entsprechenden Zeitpunktes. Auch im Skript, bzw. halt in den Objekten. Ich habe auch alles gestern Abend nochmal gelöscht und per Hand frisch aus dem Stable angelegt.

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

              @gezi70 Beide minmax ("heute" und "letzte 24h") werden turnusmäßig alle volle 15 Minuten (xx:00 Uhr, xx:15...xx:45 Uhr) erzeugt.
              Da beides eine Influx-Abfrage ist klemmt es womöglich da bei dir: loggen der Temperatur bzw. Zugang zur InfluxDB (IP, Port, User, Passwort).

              G XxJooO 2 Replies Last reply Reply Quote 0
              • G
                Gezi70 @SBorg last edited by

                @sborg
                Ich hatte wahrscheinlich einen größeren Fehler in der influxdb. Die und Grafana habe ich gestern abend vollständig platt gemacht und wieder aufgesetzt. Jetzt stimmen die Werte wieder. 😉 Der Hinweis auf die influxdb kam aber aus einem anderen Teil des Forums, ich hatte auch Probleme mit dem Backitup - Adapter. Da hing vermutlich noch das alte System mit drin.

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

                  @sborg,

                  hallo, nach der Neuinstallation habe ich gerade eben mal das Log-File aus der Nacht angesehen, um zu schauen, was wetterstation-statistik.js so meldet und finde leider das hier:

                  2023-01-22 01:03:00.022  - info: javascript.0 (572) script.js.DasWetter.Wetter_Statistik: Auswertung durchgeführt...
                  2023-01-22 01:03:00.165  - warn: influxdb.0 (557) Error in query "select * FROM "0_userdata.0.Wetterstation.Aussentemperatur" WHERE time >= 1674255600000000000 AND time <= 1674341999000000000": HttpError: error @1:1-1:7: undefined identifier select
                  
                  error @1:10-1:14: undefined identifier FROM
                  
                  error @1:61-1:66: undefined identifier WHERE
                  
                  error @1:67-1:71: (v: A) => time (function) is not Equatable
                  
                  error @1:67-1:71: (v: A) => time (function) is not Comparable
                  
                  error @1:95-1:98: undefined identifier AND
                  
                  error @1:99-1:103: (v: A) => time (function) is not Equatable
                  
                  error @1:99-1:103: (v: A) => time (function) is not Comparable
                  2023-01-22 01:03:00.171  - warn: influxdb.0 (557) Error in query " select * FROM "0_userdata.0.Wetterstation.Wind_max" WHERE time >= 1674255600000000000 AND time <= 1674341999000000000": HttpError: error @1:2-1:8: undefined identifier select
                  
                  error @1:11-1:15: undefined identifier FROM
                  
                  error @1:54-1:59: undefined identifier WHERE
                  
                  error @1:60-1:64: (v: A) => time (function) is not Equatable
                  
                  error @1:60-1:64: (v: A) => time (function) is not Comparable
                  
                  error @1:88-1:91: undefined identifier AND
                  
                  error @1:92-1:96: (v: A) => time (function) is not Equatable
                  
                  error @1:92-1:96: (v: A) => time (function) is not Comparable
                  2023-01-22 01:03:00.176  - warn: influxdb.0 (557) Error in query " select * FROM "0_userdata.0.Wetterstation.Regen_Tag" WHERE time >= 1674255672000000000 AND time <= 1674341999000000000": HttpError: error @1:2-1:8: undefined identifier select
                  
                  error @1:11-1:15: undefined identifier FROM
                  
                  error @1:55-1:60: undefined identifier WHERE
                  
                  error @1:61-1:65: (v: A) => time (function) is not Equatable
                  
                  error @1:61-1:65: (v: A) => time (function) is not Comparable
                  
                  error @1:89-1:92: undefined identifier AND
                  
                  error @1:93-1:97: (v: A) => time (function) is not Equatable
                  
                  error @1:93-1:97: (v: A) => time (function) is not Comparable
                  2023-01-22 01:03:00.177  - error: influxdb.0 (557) queries: Error: 3 Error happened while processing 3 queries
                  2023-01-22 01:03:00.185  - error: javascript.0 (572) script.js.DasWetter.Wetter_Statistik: Fehler beim Lesen der InfluxDB: Invalid call
                  2023-01-22 01:03:00.186  - warn: javascript.0 (572) States system pmessage io.messagebox.system.adapter.javascript.0 {"command":"query","message":{"result":[],"error":"Invalid call"},"from":"system.adapter.influxdb.0","callback":{"message":"select * FROM \"0_userdata.0.Wetterstation.Aussentemperatur\" WHERE time >= 1674255600000000000 AND time <= 1674341999000000000; select * FROM \"0_userdata.0.Wetterstation.Wind_max\" WHERE time >= 1674255600000000000 AND time <= 1674341999000000000; select * FROM \"0_userdata.0.Wetterstation.Regen_Tag\" WHERE time >= 1674255672000000000 AND time <= 1674341999000000000","id":3,"ack":true,"time":1674345780022},"_id":13128843} Reduce of empty array with no initial value
                  2023-01-22 01:03:00.187  - warn: javascript.0 (572) TypeError: Reduce of empty array with no initial value
                     at Array.reduce (<anonymous>:null:null)
                     at Object.cb (script.js.DasWetter.Wetter_Statistik:184:43)
                     at change (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/build/lib/adapter/adapter.js:5291:71)
                     at Immediate._onImmediate (/opt/iobroker/node_modules/@iobroker/db-states-redis/lib/states/statesInRedisClient.js:322:37)
                     at processImmediate (node:internal/timers:466:21)
                  
                  

                  Kurzer Hinweis, woher das kommt?

                  Geloggt wird ja.

                  Screenshot 2023-01-22 154852.jpg

                  Auch Regen_Tag wird geloggt. Hat das mit influxdb in der Version 2 zu tun? Kann ich das irgendwie prüfen?

                  Vielen dank!!!

                  Jo

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

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

                    Hat das mit influxdb in der Version 2 zu tun? Kann ich das irgendwie prüfen?

                    Schon selbst beantwortet 😉
                    V2 wird nicht supportet. Such mal hier im Thread, da müsste es zwei, drei Treffer geben wie man die Abfrage für InfluxDB V2 abändert, dann geht es wieder.

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

                      Da keine offensichtlichen Fehler aufgetreten sind:

                      Neues Release des Wetterstation WLAN-Skriptes auf GitHub V2.21.0

                      • + Support für AWEKAS
                      • ~ fix fehlende Regenwerte wenn nur der WS90 ohne weitere Außeneinheit benutzt wird / Issue #51

                      Wie immer zu finden im GitHub


                      Update-Routine von Vorgängerversion:

                      • aktuellen WS-Updater nutzen (Download falls älter als V2.12.1: wget -O ws_updater.sh https://raw.githubusercontent.com/SBorg2014/WLAN-Wetterstation/master/ws_updater.sh)
                      • ./ws_updater.sh im Installationsverzeichnis ausführen
                      • Menüpunkt "4" wählen und die Fragen beantworten
                      • wetterstation.js muss ebenfalls im JavaScript-Adapter ersetzt und einmalig ausgeführt werden (neuer Datenpunkt .Info.Awekas_at); bei aktivierter Rest-API wird der Datenpunkt automatisch im ioB angelegt (1)

                      (1) es empfiehlt sich danach den Simple-API-Adapter neu zu starten (entweder per WebIF oder einfach iob restart simple-api.0)


                      Update ist optional.

                      Die Release-Version ist nicht mit dem letzten Beta-Release identisch! Betatester tauschen bitte die ".sh" und ".sub" aus und restarten den Service.

                      1 Reply Last reply Reply Quote 3
                      • T
                        tritor @viper4iob last edited by tritor

                        @viper4iob

                        wo gebe ich bei awekas die Differenz für den Luftdruck ein?

                        wobei ich mal davon ausgehe, daß zumindes die Differenz zwischen rel. und abs. Lufdruck bei mir ok ist.

                        Seehöhe: 194m
                        Rel. 1029.12 hPa
                        abs. 1005.52 hPa

                        Grüße
                        Gernot

                        Negalein 1 Reply Last reply Reply Quote 0
                        • Negalein
                          Negalein Global Moderator @tritor last edited by

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

                          wo gebe ich bei awekas die Differenz für den Luftdruck ein?

                          Mein Awekas
                          --> Benutzerdaten ändern
                          --> Wetterstation
                          a69d0084-5b74-46d6-bc98-067ed0643e03-image.png

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

                            Neue Beta-Version des Wetterstation WLAN-Skriptes auf GitHub V2.22.0

                            (Beta-Releases lassen sich nicht! über den ws_updater.sh installieren, nur die *.conf lässt sich mit dem ws_updater.beta ggf. patchen [s.u.])

                            • + Support für Bresser Thermo-Hygro-7Ch-Sensor #7009999 / Issue #53

                            Wie immer zu finden im GitHub


                            Update-Routine:

                            • wetterstation.sh, wetterstation.sub und ws_updater.beta (muss "ausführbar" sein chmod +x ws_updater.beta) ersetzen bzw. kopieren
                            • wetterstation.js muss ebenfalls im JavaScript-Adapter ersetzt und einmalig ausgeführt werden (nur nötig wenn man auch einen entsprechenden Sensor der Firma Bresser im Einsatz hat) (1)
                            • ./ws_updater.beta --patch im Installationsverzeichnis ausführen und ev. Hinweise beachten
                            • nun mittels [sudo] systemctl restart wetterstation den Service neu starten

                            (1) es empfiehlt sich danach den Simple-API-Adapter neu zu starten (entweder per WebIF oder einfach iob restart simple-api.0)


                            Da es ein reines Funktions-Betarelease ist, ergibt der Einsatz dieser Version nur einen Vorteil wenn man auch Sensor/en der Firma Bresser nutzt. Trotzdem wäre ein Test nicht schlecht, da ich den Sensortyp nicht "einfach" hinzufügen konnte und weitere Änderungen vornehmen musste. Es könnte also durchaus sein, dass ich dabei eine andere Funktion oä. "gegrillt" habe (speziell Zusatz-Sensoren des Typs DP100) 😉

                            1 Reply Last reply Reply Quote 0
                            • A
                              amiethaner last edited by Negalein

                              Servus zusammen!
                              Bei mir läuft die Script Vers: 1.3.0
                              In den Objekten für Werte Vorjahres_Monat steht bei mir überall {"ack":true}
                              Aber erst seit heute. Die Januar Werte passten noch.
                              Wenn ich aber unter Data 02/2022 schau, steht da alles soweit gut drin:

                              [{"Tiefstwert":-7.77,"Hoechstwert":15.77,"Temp_Durchschnitt":3.6,"Max_Windboe":47.96,"Max_Regenmenge":8.6,"Regenmenge_Monat":78.1,"warme_Tage":0,"Sommertage":0,"heisse_Tage":0,"Frost_Tage":44,"kalte_Tage":39,"Eistage":1,"sehr_kalte_Tage":0}]
                              

                              Läuft hier iwas falsch, oder werden de Werte erst heute Nacht richtig berechnet/übernommen?

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

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

                                Läuft hier iwas falsch, oder werden de Werte erst heute Nacht richtig berechnet/übernommen?

                                Ja und nein 😉

                                Für die aktuellen Daten neues JS anlegen (Datenverzeichnis ggf. anpassen [Zeile #1]) und einmalig ausführen, dann sollten die Daten da sein:

                                    const PRE_DP='0_userdata.0.Statistik.Wetter';  //Speicherort der Statistikdaten
                                    const monatsdatenpunkt='.Data.2022.02';        //.Data.Jahr.Monat
                                
                                    
                                        let VorJahr = getState(PRE_DP+monatsdatenpunkt).val;
                                        VorJahr = JSON.parse(VorJahr.substring(1, VorJahr.length-1));
                                        
                                        setState(PRE_DP+'.Vorjahres_Monat.Tiefstwert', VorJahr.Tiefstwert, true);
                                        setState(PRE_DP+'.Vorjahres_Monat.Hoechstwert', VorJahr.Hoechstwert, true);
                                        setState(PRE_DP+'.Vorjahres_Monat.Temperatur_Durchschnitt', VorJahr.Temp_Durchschnitt, true); 
                                        setState(PRE_DP+'.Vorjahres_Monat.Max_Windboe', VorJahr.Max_Windboe, true); 
                                        setState(PRE_DP+'.Vorjahres_Monat.Max_Regenmenge', VorJahr.Max_Regenmenge, true);
                                        setState(PRE_DP+'.Vorjahres_Monat.Regenmenge_Monat', VorJahr.Regenmenge_Monat, true);
                                        setState(PRE_DP+'.Vorjahres_Monat.warme_Tage', VorJahr.warme_Tage, true);
                                        setState(PRE_DP+'.Vorjahres_Monat.Sommertage', VorJahr.Sommertage, true);
                                        setState(PRE_DP+'.Vorjahres_Monat.heisse_Tage', VorJahr.heisse_Tage, true);
                                        setState(PRE_DP+'.Vorjahres_Monat.Frost_Tage', VorJahr.Frost_Tage, true);
                                        setState(PRE_DP+'.Vorjahres_Monat.kalte_Tage', VorJahr.kalte_Tage, true);
                                        setState(PRE_DP+'.Vorjahres_Monat.Eistage', VorJahr.Eistage, true);
                                        setState(PRE_DP+'.Vorjahres_Monat.sehr_kalte_Tage', VorJahr.sehr_kalte_Tage, true);
                                        setState(PRE_DP + '.Vorjahres_Monat.Wuestentage', VorJahr.Wuestentage, true);
                                        setState(PRE_DP + '.Vorjahres_Monat.Tropennaechte', VorJahr.Tropennaechte, true);
                                        setState(PRE_DP + '.Vorjahres_Monat.Regentage', VorJahr.Regentage, true);
                                

                                Wenn das funktioniert hat die V1.3.1 von GitHub laden und nutzen.


                                btw.: das müsste jeden betreffen, genereller Fehler

                                A Boronsbruder 2 Replies Last reply Reply Quote 0
                                • A
                                  amiethaner @SBorg last edited by

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

                                  Jop, ging, nur Regentage, Tropennächte und Wüstentage ned. Aber die wurden da bei mir noch ned aufgezeichnet. Hab die letzten Tage erst von ner alten Version geupdated

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

                                    @sborg

                                    1.2.2023, 18:37:33.611	[info ]: javascript.0 (12957) Start javascript script.js.common.wetter.fix
                                    1.2.2023, 18:37:33.628	[info ]: javascript.0 (12957) script.js.common.wetter.fix: registered 0 subscriptions, 0 schedules, 0 messages, 0 logs and 0 file subscriptions
                                    1.2.2023, 18:37:33.634	[error]: javascript.0 (12957) script.js.common.wetter.fix: TypeError: VorJahr.substring is not a function
                                    1.2.2023, 18:37:33.634	[error]: javascript.0 (12957)     at script.js.common.wetter.fix:11:38
                                    1.2.2023, 18:37:33.635	[error]: javascript.0 (12957)     at script.js.common.wetter.fix:47:3
                                    1.2.2023, 18:39:44.297	[info ]: javascript.0 (12957) Stop script script.js.common.wetter.fix
                                    
                                        const PRE_DP='0_userdata.0.Statistik.Wetter';  //Speicherort der Statistikdaten
                                            const monatsdatenpunkt='.Data.2022.02';        //.Data.Jahr.Monat
                                        
                                                let VorJahr = getState(PRE_DP+monatsdatenpunkt).val;
                                                console.log (VorJahr);
                                                
                                          // Daten vom Vorjahr durchiterieren und Datenpunkte befüllen
                                            VorJahr.forEach(obj => {
                                                        Object.keys(obj).forEach(key => {
                                                            
                                                            // fix für Datenpunktname
                                                            let setkey = key;                                       
                                                            if (key == 'Temp_Durchschnitt') setkey = "Temperatur_Durchschnitt";
                                            
                                                            setState(PRE_DP+'.Vorjahres_Monat.' +setkey, obj[key], true);
                                                        });
                                                    });
                                    

                                    So übernimmt er alle im Vorjahr vorhandenen Daten (also keine Tropentage usw. wenn diese noch nicht gesetzt waren).

                                    Falls dir das hilft, darfst du es gerne verwenden 😉

                                    Edit: Sorry, für die vielen Edits bin zu blöd für Copy und Paste 🤦‍♂️

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

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

                                      Falls dir das hilft, darfst du es gerne verwenden
                                      Edit: Sorry, für die vielen Edits bin zu blöd für Copy und Paste

                                      Im Grunde schon, aber mittlerweile bin ich der Meinung, dass es nicht die beste Idee ist/war mit unterschiedlichen JSONs "rumzuhampeln". Jetzt fällt es uns schon auf die Füße, beim nächsten mal wieder...
                                      Wenn du kannst/magst, mach doch bitte einen Patch der über die "Data"-JSONs iteriert und ggf. die fehlenden GradTage dem JSON hinzufügt. Dann braucht es bei der nächsten Änderung auch keinen Patch mehr, bzw. wenn/falls ein neuer Wert hinzukommt kann man dann alle auf eine gleiche Syntax bringen. Ev. den Wert als User-Parameter, dann kann sich jeder das eintragen was er will, um zu sehen was keinen echten Wert darstellt. Oder wir nehmen pauschal einfach -1, denn bspw. -1 Wüstentage gibt es wohl nicht...

                                      ...und mir haut die Board-Software auch so gelegentlich Zeichen hin wo sie nicht sein sollten 😉

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

                                        Dann mal was an alle (oder den harten Kern 😊 ) :

                                        Seid ihr mit InfluxDB V1 "fest verheiratet"? Es gelingt mir nicht ohne größeres hängen und würgen alles auf V1 + V2 lauffähig zu bekommen. Irgendetwas geht immer nicht 😞
                                        ...und offen gestanden habe ich so nun auch keinen Bock mehr dazu...
                                        Die Konsequenz wäre eine neue V3.x des Skriptes, die nicht mehr mit Influx V1 kompatibel wäre (+ich für V2.x des Skriptes nichts mehr weiter entwickeln würde. Neuerungen gebe es dann nur noch in der 3er). Im Grunde müsste ich sogar direkt in die InfluxDB schreiben, da der Influx-Adapter es leider so macht, wie man es seitens Influx eigentlich nicht machen soll.
                                        Der Datenpunkt heißt so wie der gesamte Pfad, also bspw. javascript.0.Wetterstation.Aussentemperatur
                                        lt. Influx sollte er aber getagged sein, also zB. in der Art: "Temperatur Ort=Aussen (oder Wetterstation oä.) usw." Dann kann man relativ einfach alles per Tags zusammenfassen ("alle Gradtage vom März 2022" oder "alle Wüstentage seit 2019"). Das ist so aktuell nicht möglich da keine Tags verwendet werden und jeder GradTag eine eigene Messwertereihe ist.

                                        M Neuschwansteini Rene55 Latzi T 6 Replies Last reply Reply Quote 1
                                        • M
                                          MartyBr @SBorg last edited by

                                          @sborg
                                          Ich würde den Schritt begrüßen. Ich setze seit mehr als einem Jahr Influxdb V2 ein und muss beispielsweise die Statistik-Scripte umändern.

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

                                            @sborg
                                            Ich würde ab Version 3.x nur noch influx v2 unterstützen, das ist die Zukunft und solange das script v2.x noch läuft ist ja für alle noch okay.

                                            Bin auch gerade dabei meine ganzen grafana views auf influx v2 ( Flux) umzustellen..

                                            Hab sonst nur noch den unipoller der die v1 nutzt und dein Script.. 😉😉

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            562
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            linux shell-script wetterstation wlan-wetterstation
                                            141
                                            5410
                                            2957727
                                            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