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

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    [Linux Shell-Skript] WLAN-Wetterstation

    This topic has been deleted. Only users with topic management privileges can see it.
    • Negalein
      Negalein Global Moderator @SBorg last edited by

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

      Weil es zu einfach ist

      Merci, war ja echt voll easy.
      Danke

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

        Bild 001.png

        coming soon ... 😇 😁

        Negalein 1 Reply Last reply Reply Quote 4
        • Negalein
          Negalein Global Moderator @SBorg last edited by

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

          coming soon ...

          cool
          World of Warcraft 😂 😂 😂

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

            @SBorg
            Heute Morgen folgender Fehler im Log

            2023-07-01 01:03:00.081 - error: javascript.0 (433) Error in callback: TypeError: VorJahr.substring is not a function
            2023-07-01 01:03:00.081 - error: javascript.0 (433) at VorJahr (script.js.Wetter.Statistik-WS:415:38)
            2023-07-01 01:03:00.082 - error: javascript.0 (433) at Object.main (script.js.Wetter.Statistik-WS:156:4)
            2023-07-01 01:03:00.082 - error: javascript.0 (433) at Job.job (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1606:34)
            2023-07-01 01:03:00.082 - error: javascript.0 (433) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Job.js:171:15)
            2023-07-01 01:03:00.082 - error: javascript.0 (433) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Invocation.js:268:28
            2023-07-01 01:03:00.082 - error: javascript.0 (433) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Invocation.js:228:7)
            2023-07-01 01:03:00.082 - error: javascript.0 (433) at listOnTimeout (node:internal/timers:569:17)
            2023-07-01 01:03:00.082 - error: javascript.0 (433) at processTimers (node:internal/timers:512:7)
            

            In der Statistik-Anzeige ist soweit alles ok
            ws-statistik.png

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

              @nashra said in [Linux Shell-Skript] WLAN-Wetterstation:

              @SBorg
              Heute Morgen folgender Fehler im Log

              2023-07-01 01:03:00.081 - error: javascript.0 (433) Error in callback: TypeError: VorJahr.substring is not a function
              2023-07-01 01:03:00.081 - error: javascript.0 (433) at VorJahr (script.js.Wetter.Statistik-WS:415:38)
              2023-07-01 01:03:00.082 - error: javascript.0 (433) at Object.main (script.js.Wetter.Statistik-WS:156:4)
              2023-07-01 01:03:00.082 - error: javascript.0 (433) at Job.job (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:1606:34)
              2023-07-01 01:03:00.082 - error: javascript.0 (433) at Job.invoke (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Job.js:171:15)
              2023-07-01 01:03:00.082 - error: javascript.0 (433) at /opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Invocation.js:268:28
              2023-07-01 01:03:00.082 - error: javascript.0 (433) at Timeout._onTimeout (/opt/iobroker/node_modules/iobroker.javascript/node_modules/node-schedule/lib/Invocation.js:228:7)
              2023-07-01 01:03:00.082 - error: javascript.0 (433) at listOnTimeout (node:internal/timers:569:17)
              2023-07-01 01:03:00.082 - error: javascript.0 (433) at processTimers (node:internal/timers:512:7)
              

              In der Statistik-Anzeige ist soweit alles ok
              ws-statistik.png

              @SBorg

              Mein modifizierter Code lief diesmal ohne Probleme 😉

              2023-07-01 01:03:00.028 - info: javascript.0 (1421438) script.js.common.wetter.Wetterstation_Statistik: [{'Tiefstwert':6.7,'Hoechstwert':37,'Temp_Durchschnitt':21,'Max_Windboee':42.11,'Max_Regenmenge':22,'Regenmenge_Monat':54.9,'warme_Tage':29,'Sommertage':23,'heisse_Tage':8,'Frost_Tage':0,'kalte_Tage':0,'Eistage':0,'sehr_kalte_Tage':0}]
              2023-07-01 01:03:00.029 - info: javascript.0 (1421438) script.js.common.wetter.Wetterstation_Statistik: .Vorjahres_Tiefstwert--> 6.7
              2023-07-01 01:03:00.029 - info: javascript.0 (1421438) script.js.common.wetter.Wetterstation_Statistik: .Vorjahres_Hoechstwert--> 37
              2023-07-01 01:03:00.030 - info: javascript.0 (1421438) script.js.common.wetter.Wetterstation_Statistik: .Vorjahres_Temp_Durchschnitt--> 21
              2023-07-01 01:03:00.030 - info: javascript.0 (1421438) script.js.common.wetter.Wetterstation_Statistik: .Vorjahres_Max_Windboee--> 42.11
              2023-07-01 01:03:00.030 - info: javascript.0 (1421438) script.js.common.wetter.Wetterstation_Statistik: .Vorjahres_Max_Regenmenge--> 22
              2023-07-01 01:03:00.030 - info: javascript.0 (1421438) script.js.common.wetter.Wetterstation_Statistik: .Vorjahres_Regenmenge_Monat--> 54.9
              2023-07-01 01:03:00.031 - info: javascript.0 (1421438) script.js.common.wetter.Wetterstation_Statistik: .Vorjahres_warme_Tage--> 29
              2023-07-01 01:03:00.031 - info: javascript.0 (1421438) script.js.common.wetter.Wetterstation_Statistik: .Vorjahres_Sommertage--> 23
              2023-07-01 01:03:00.031 - info: javascript.0 (1421438) script.js.common.wetter.Wetterstation_Statistik: .Vorjahres_heisse_Tage--> 8
              2023-07-01 01:03:00.031 - info: javascript.0 (1421438) script.js.common.wetter.Wetterstation_Statistik: .Vorjahres_Frost_Tage--> 0
              2023-07-01 01:03:00.031 - info: javascript.0 (1421438) script.js.common.wetter.Wetterstation_Statistik: .Vorjahres_kalte_Tage--> 0
              2023-07-01 01:03:00.032 - info: javascript.0 (1421438) script.js.common.wetter.Wetterstation_Statistik: .Vorjahres_Eistage--> 0
              2023-07-01 01:03:00.048 - info: javascript.0 (1421438) script.js.common.wetter.Wetterstation_Statistik: .Vorjahres_sehr_kalte_Tage--> 0
              2023-07-01 01:03:00.049 - info: javascript.0 (1421438) script.js.common.wetter.Wetterstation_Statistik: Auswertung durchgeführt...
              2023-07-01 01:03:00.230 - info: javascript.0 (1421438) script.js.common.wetter.Wetterstation_Statistik: Ausführung zum Monatsersten beendet...
              
                 let zeitstempel = new Date();
                  let datum = new Date(zeitstempel.getFullYear(),zeitstempel.getMonth(),zeitstempel.getDate());
                  let monatsdatenpunkt = '.Data.'+ (datum.getFullYear()-1) +'.'+pad(datum.getMonth()+1);
                  if (existsState(PRE_DP+monatsdatenpunkt)) { //der einfache Weg: wir haben schon Daten vom Vorjahr...
              
                      let VorJahr = getState(PRE_DP+monatsdatenpunkt).val;
                      VorJahr = JSON.parse(VorJahr);
                      
                      // Daten vom Vorjahr durchiterieren und Datenpunkte befüllen
                          console.log (VorJahr);
                          VorJahr.forEach(obj => {
                              Object.keys(obj).forEach(key => {
                                  console.log ('.Vorjahres_' + key + '--> ' + obj[key]);
              
                                  // fix für Datenpunktname
                                  let setkey = key;                                       
                                  if (key == 'Temp_Durchschnitt') setkey = "Temperatur_Durchschnitt";
              
                                  setState(PRE_DP+'.Vorjahres_Monat.' +setkey, obj[key], true);
                              });
                          });
              
              SBorg 1 Reply Last reply Reply Quote 0
              • SBorg
                SBorg Forum Testing Most Active @Nashra last edited by

                @nashra Der Fehler bezieht sich/macht sich bemerkbar auch auf den VorJahres_Monat. Hier wirst du so aktuell keine Daten vom Juli 2022 haben, sondern irgendwo Daten von April oder Mai 2022 (Zeitstempel 01-05-2023 oä):
                Bild 001.png


                @_all_Statistiker
                Fix für Juli:

                • neues JS mit folgendem Inhalt anlegen, ausführen, stoppen (kann danach gelöscht werden)
                
                    const PRE_DP='0_userdata.0.Statistik.Wetter';  //Speicherort der Statistikdaten
                    const monatsdatenpunkt='.Data.2022.07';        //.Data.Jahr.Monat
                
                        let VorJahr = getState(PRE_DP+monatsdatenpunkt).val;
                        VorJahr = JSON.parse(VorJahr);
                
                        
                        // Daten vom Vorjahr durchiterieren und Datenpunkte befüllen
                            console.log (VorJahr);
                            VorJahr.forEach(obj => {
                                Object.keys(obj).forEach(key => {
                                    console.log ('.Vorjahres_' + key + '--> ' + obj[key]);
                
                                    // fix für Datenpunktname
                                    let setkey = key;                                       
                                    if (key == 'Temp_Durchschnitt') setkey = "Temperatur_Durchschnitt";
                
                                    setState(PRE_DP+'.Vorjahres_Monat.' +setkey, obj[key], true);
                
                                });
                            });
                
                

                (sollte einiges an Ausgabe produzieren), danach sind die Juli 2022 (sofern man Daten hatte) Werte vorhanden.

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

                  @boronsbruder Asche auf mein Haupt 🤕
                  Schon vor Juni geändert, lief dann im Juni und Juli durch, da ich es selbst aber aktiv nicht nutze kpl. vergessen...


                  An alle Statistiker:

                  Neue Version V2.0.3 des Statistik-Scriptes auf GitHub verfügbar.
                  Am einfachsten wie immer den Konfigurationsblock per C&P sichern, Skript kpl. ersetzen und den Konfig-Block wieder mittels C&P zurückschreiben.

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

                    @sborg

                    also für die noch-nicht-fitten Statistiker, diesen Bereich sichern?

                    // *** User-Einstellungen **********************************************************************************************************************************
                        const WET_DP='0_userdata.0.Wetterstation';          // wo liegen die Datenpunkte mit den Daten der Wetterstation  [default: 0_userdata.0.Wetterstation]                          
                        const INFLUXDB_INSTANZ='0';                         // unter welcher Instanz läuft die InfluxDB [default: 0]
                        const INFLUXDB_BUCKET='ioBroker';                     // Name des zu benutzenden Buckets
                        const PRE_DP='0_userdata.0.Statistik.Wetter';       // wo sollen die Statistikwerte abgelegt werden. Nur unter "0_userdata" oder "javascript" möglich!
                        let REKORDWERTE_AUSGABEFORMAT="[WERT] im [MONAT] [JAHR]";   /* Wie soll die Ausgabe der Rekordwerte formatiert werden (Template-Vorlage)?
                                                                                        [WERT]      = Messwert (zB. '22.42' bei Temperatur, '12' bei Tagen)
                                                                                        [TAG]       = Tag (0-31)
                                                                                        [MONAT]     = Monatsname (Januar, Februar,..., Dezember)
                                                                                        [MONAT_ZAHL]= Monat als Zahl (01-12)
                                                                                        [MONAT_KURZ]= Monatsname kurz (Jan, Feb,..., Dez)
                                                                                        [JAHR]      = Jahreszahl vierstellig (2020)
                                                                                     Die 'Units' wie bspw. "°C" oder "Tage" werden direkt aus dem Datenpunkt ergänzt. 
                                                                                     [default: [WERT] im [MONAT] [JAHR] ] erzeugt als Beispiel im DP die 
                                                                                     Ausgabe: "22.42 °C im Juni 2020"
                                                                                    */
                        const ZEITPLAN = "3 1 * * *";                       // wann soll die Statistik erstellt werden (Minuten Stunde * * *) [default 1:03 Uhr] 
                    // *** ENDE User-Einstellungen *****************************************************************************************************************************
                    

                    dann neues Script einfügen und den User-Einstellungs-Bereich wieder einfügen?

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

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

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

                      coming soon ...

                      cool
                      World of Warcraft 😂 😂 😂

                      Nicht ganz 😁
                      Wer demnächst Beta testen will, kann schon mal https://github.com/SBorg2014/WLAN-Wetterstation/wiki/Installation-WeatherObservationsWebsite-(optional)
                      und könnte mir vor dem anlegen der Site einen Auszug schicken was da bei "My Sites" steht:
                      Bild 002.png
                      ...und wie man sieht, "WOW" kommt nicht von mir (hätte ich aber auch genauso abgekürzt 😂 )

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

                        @tritor Im Grunde ja. In deinem Fall (wenn man die Defaults nutzt) einfach den Inhalt des kpl. Scripts löschen (CTRL-A und dann "Entf" drucken) das neue Script mittels (CTRL-A und CTRL-C) in die Zwischenablage kopieren und mittels CTRL-V in das leere Script im ioBroker einfügen. Dann brauchst du nur in dem Einstellungsblock dein Bucket von "Wetter" wieder auf "ioBroker" ändern, speichern und wieder starten.

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

                          @sborg

                          Hätte noch ein Problem mit Regeninfos:
                          Es hatte gestern geregnet und habe es aber nicht angezeigt bekommen. Werder als Status noch als Regenrate/h

                          hier die Screenshots:
                          letzte Regenmenge wurde angezeigt,
                          iobWlanWetter06.png

                          Bei den RegenDPs aber nicht:
                          iobWlanWetter07.png

                          Woran kann das liegen?

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

                            @tritor Liegt leider an der Station. Deren "Woche" beginnt dummerweise Sonntags, nicht wie bei uns üblich Montags. Also resetten die Sonntags um Mitternacht die Werte. Da kann ich dann leider auch nichts mehr auslesen...

                            Die Werte sind nicht verloren, nur landet der "Sontags-Regen" dann in der aktuellen Woche, die dann aber auch leider Samstagd endet...

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

                              @sborg
                              ok - ist halt so.
                              Aber dann sollte dich Regen_Total irgendeienn Wert annehmen - oder bzw. während des Regens sollte dich die Regenrate sich ändern. Die blieb aber immer auf 0.

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

                                @tritor Das mit "Regen_Total" liegt auch an der Station (wurde bei mir mit irgendeinem FW-Upgrade eingeführt), denn der Wert kommt auch so von der Station (und einige liefern diesen nicht).

                                Die Regenrate sollte sich aber ändern. Ich habe zwar aktuell keinen Regen, aber das hat gestern bei mir funktioniert. Bei Regenrate > 0 meldet Alexa bei mir "Es hat angefangen zu regnen" und das vermeldete sie gestern Abend 😉

                                ...und noch mal eben nachgeschaut, jepp, da war ein Regenereignis (ist also [leider] so kein prinzipielles Problem):

                                Bild 003.png
                                Funktionierte dies bisher bei dir bzw. hast du eine Regenrate-Anzeige auf deinem Display? Nutzt du WU- oder Ecowitt-Protokoll?
                                Du kannst auch mal den Service stoppen (systemctl stop wetterstation) und dann im Installationsverzeichnis stehend ein ./wetterstation.sh --data ausführen. Dann sieht man was die Station tatsächlich liefert (wenn du ihn hier posten willst ruhig die StationID und Passwort x-en, brauche ich nicht 😉 )
                                Service wieder starten nicht vergessen: systemctl start wetterstation

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

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

                                  und könnte mir vor dem anlegen der Site einen Auszug schicken was da bei "My Sites" steht:

                                  was genau benötigst du da?

                                  e57a4322-05cb-4a02-b894-5e69fb4a4f48-image.png

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

                                    @sborg

                                    Hier die Daten. Übertragen sollten sie werden, aber kommt nix von Wetterstation.
                                    Ich prüf mal die Außenstation. Eventuell hat der Regensensor ein Problem.

                                    iobroker@ioBroker-prox:~$ ./wetterstation.sh --data
                                    Connection to 192.168.10.161 8087 port [tcp/*] succeeded!
                                    
                                    
                                    Warte maximal 56 Sekunden auf Datenpaket der Wetterstation...
                                    
                                    Listening on 0.0.0.0 9080
                                    Connection received on 192.168.10.188 26636
                                    PASSKEY=XXXXXXXXXXXXXXXXXX&stationtype=EasyWeatherV1.6.5&dateutc=2023-07-02+13:01:02&tempinf=76.5&humidityin=51&baromrelin=29.844&baromabsin=29.144&tempf=75.4&humidity=55&winddir=317&winddir_avg10m=329&windspeedmph=10.3&windspdmph_avg10m=4.7&windgustmph=13.6&maxdailygust=18.3&rainratein=0.000&eventrainin=0.000&hourlyrainin=0.000&dailyrainin=0.000&weeklyrainin=0.000&monthlyrainin=0.000&yearlyrainin=15.571&solarradiation=1015.51&uv=9&soilmoisture1=41&soilmoisture2=28&soilmoisture3=17&soilmoisture4=18&soilmoisture5=50&wh65batt=0&wh25batt=0&soilbatt1=1.3&soilbatt2=1.3&soilbatt3=1.3&soilbatt4=1.2&soilbatt5=1.3&freq=868M&model=HP1000SE-PRO_Pro_V1.9.0
                                    
                                    SBorg 1 Reply Last reply Reply Quote 0
                                    • SBorg
                                      SBorg Forum Testing Most Active @Negalein last edited by

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

                                      was genau benötigst du da?

                                      Danke, sehe ich schon auf deiner Hardcopy (es ging um den Link-Text neben "Home").

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

                                        @tritor Ok, Regenrate ist da vorhanden. Du kannst, sofern du an den Wettermast kommst, auch paar mal die Wippe des Regensenors bewegen, dann sollte sich aktuell etwas ändern.

                                        ...und "Regen_total" macht deine Station tatsächlich nicht.

                                        1 Reply Last reply Reply Quote 0
                                        • S
                                          sebhoff last edited by sebhoff

                                          Hallo in die Runde!
                                          Kurze Frage: bekomme ich die Sache auch mit einer ioBroker-Installation zum laufen, die sich in einem Docker-Container auf einer Synology befindet? (Eine Suche im Thread nach den Begriffen "docker" oder "Synology" hat mir nicht weitergeholfen...) Ich habe mit diesem Setup schon viele, viele Stunden Frustration erlebt und wenn ich von Anfang as weiß, dass es nicht (einfach) geht, lasse ich besser die Finger davon...

                                          Update: sorry, hatte zu früh gefragt und inzwischen die Infos zu Docker gefunden. Werde es versuchen…

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

                                            @sebhoff Erwarte da aber nicht all zu viel Hilfe für Docker. Ich weiß zwar, dass es ein paar am laufen haben, selbst kann ich da aber kaum helfen (ich nutze Proxmox).

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            724
                                            Online

                                            31.7k
                                            Users

                                            79.9k
                                            Topics

                                            1.3m
                                            Posts

                                            linux shell-script wetterstation wlan-wetterstation
                                            143
                                            5478
                                            3302820
                                            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