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.
    • Nashra
      Nashra Most Active Forum Testing last edited by Nashra

      @SBorg
      die Klammern sind drin
      statistik-1.PNG
      statistik-2.PNG

      aber das Skript habe ich verglichen, ist die alte Version.
      Nehme das von dir jetzt.

      Beim Start von deinem Skript kommt

      17:17:44.965	error	javascript.0 (377) script.js.Wetter.Statistik-Tabelle-LivInSky: SyntaxError: Unexpected token : in JSON at position 12
      17:17:44.965	error	javascript.0 (377) at script.js.Wetter.Statistik-Tabelle-LivInSky:59:56
      17:17:44.965	error	javascript.0 (377) at dataStuff (script.js.Wetter.Statistik-Tabelle-LivInSky:51:15)
      17:17:44.966	error	javascript.0 (377) at main (script.js.Wetter.Statistik-Tabelle-LivInSky:157:3)
      
      SBorg 1 Reply Last reply Reply Quote 0
      • SBorg
        SBorg Forum Testing Most Active @Nashra last edited by

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

        SyntaxError: Unexpected token : in JSON at position 12

        Da meckert er den ":" in einem JSON-Datensatz an. Sieht nach einem (oder mehreren) inkonsistenten Datensatz/sätze aus.
        Schau mal so ab Zeile ~#55 nach:

          if (typeof(formathelp)=="object") {helper=getState(id).val[0];} 
           else if (typeof(formathelp)=="string") { helper=getState(id).val;
                                                    helper=JSON.parse(helper.substring(1, (getState(id).val).length-1)); }
           else {helper=JSON.parse(getState(id).val);}
         console.log(helper);
          helper={ ...helper, ...obj2, ...obj3}
        

        und füge da den Befehl console.log(helper); wie oben zu sehen ein. Dann sollten in der Console und Log bis zu 16 Meldungen (wir hatten IMHO so Sep. 2020 angefangen) auftauchen. Die müssen alle dem Schema nach sein:

        script.js.common._wo_das_Skript_liegt_._wie_es_heißt_: {'Tiefstwert':-3.38,'Hoechstwert':12.5,'Temp_Durchschnitt':2.86,'Max_Windboe':40.39,'Max_Regenmenge':29.8,'Regenmenge_Monat':68.8,'warme_Tage':0,'Sommertage':0,'heisse_Tage':0,'Frost_Tage':13,'kalte_Tage':27,'Eistage':0,'sehr_kalte_Tage':0}
        

        Wichtig dabei ist, dass der Datensatz mit {} beginnt/endet. Zur Kontrolle genügt dann auch noch der Blick auf den
        ersten Messwert nach dem Muster 'Messwertbezeichnung':Messwert, (brauchst also nicht alle Werte kontrollieren, es genügt die reine Syntax. Ist der erste in der Syntax soweit korrekt, sind es die anderen diesen Datensatzes auch).
        Sollte das alles korrekt sein, muss eigentlich einer/mehrere der Datenpunkte im falschen Format ("string/json") angelegt sein.

        ...und nicht vergessen den "console.log..."-Befehl wieder zu löschen, sonst hast du jede Menge Meldungen im Log 😉

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

          Hallo @SBorg, alles so gemacht wie beschrieben aber beim starten des Skripts immer ERROR-Meldung.

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

            @nashra Ok, dann kann es eigentlich nur noch am Format liegen und er erkennt es nicht korrekt.

            Nochmal wie oben, anstelle von console.log(helper); nun aber console.log(typeof(formathelp));
            Da sollte nun eigentlich so ~12x "object" kommen und die letzten x-mal (zumindest mindestens der letzte) "string" ?

            btw: ioB auf Linux oder Windows und stable oder latest? (me ist auf Linux und latest unterwegs)
            Muss ja irgendeinen Grund haben warum es gerade offenbar nur bei dir nicht lüppt 😉

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

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

              @nashra Ok, dann kann es eigentlich nur noch am Format liegen und er erkennt es nicht korrekt.

              Nochmal wie oben, anstelle von console.log(helper); nun aber console.log(typeof(formathelp));
              Da sollte nun eigentlich so ~12x "object" kommen und die letzten x-mal (zumindest mindestens der letzte) "string" ?

              btw: ioB auf Linux oder Windows und stable oder latest? (me ist auf Linux und latest unterwegs)
              Muss ja irgendeinen Grund haben warum es gerade offenbar nur bei dir nicht lüppt 😉

              Moin, Linux mit
              Admin 5.2.3
              JS 5.2.13
              Node.js v14.18.2
              NPM 6.14.15
              Hosts 3.3.22

              javascript.0	377	2022-02-05 11:01:30.065	info	Stop script script.js.Wetter.Statistik-Tabelle-LivInSky
              javascript.0	377	2022-02-05 11:01:25.477	error	at main (script.js.Wetter.Statistik-Tabelle-LivInSky:158:3)
              javascript.0	377	2022-02-05 11:01:25.477	error	at dataStuff (script.js.Wetter.Statistik-Tabelle-LivInSky:50:15)
              javascript.0	377	2022-02-05 11:01:25.477	error	at Object.result.each (/opt/iobroker/node_modules/iobroker.javascript/lib/sandbox.js:819:29)
              javascript.0	377	2022-02-05 11:01:25.477	error	at script.js.Wetter.Statistik-Tabelle-LivInSky:58:56
              javascript.0	377	2022-02-05 11:01:25.477	error	at JSON.parse (<anonymous>)
              javascript.0	377	2022-02-05 11:01:25.477	error	script.js.Wetter.Statistik-Tabelle-LivInSky: SyntaxError: Unexpected token : in JSON at position 12
              javascript.0	377	2022-02-05 11:01:25.468	info	script.js.Wetter.Statistik-Tabelle-LivInSky: registered 2 subscriptions and 1 schedule
              javascript.0	377	2022-02-05 11:01:25.448	info	Start javascript script.js.Wetter.Statistik-Tabelle-LivInSky
              

              Nachtrag:
              habe die eckigen Klammern mal entfernt im json und das alte Skript
              gestartet, Daten werden angezeigt.

              Nachtrag2:
              ist mir gerade erst aufgefallen, der Januar hat 31 Tage aber in der Anzeige
              steht "kalte_Tage": 52,

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

                @nashra Hmm, ok, dann eben anders...

                Neues JS, egal wo und wie es heißt mit folgendem Inhalt:

                let t="0_userdata.0.Statistik.Wetter.Data.2022.01";
                let wert=getState(t).val;
                let test=JSON.parse(wert.substring(1, wert.length-1));
                
                console.log(typeof(t));
                console.log(wert);
                console.log(test);
                

                Bei #1 ggf. den Pfad anpassen, die Daten aber bitte vom Januar 2022 belassen (gerne aber auch mal mit bspw. Juni 2021 gegenchecken).
                Erwarteter Output für 01.2022 wäre:

                string
                [{"Tiefstwert": ... }]
                {'Tiefstwert': ... }
                

                Wichtig sind nur "string" (Juni 21 sollte hier "object" liefern), dass die eckigen Klammern entfallen und " durch ' ersetzt wurde.

                Ich kann leider bei mir nichts simulieren, denn dazu müsste ich wissen was der Fehler ist. Dann könnte ich ihn aber auch gleich beseitigen... 😉


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

                ist mir gerade erst aufgefallen, der Januar hat 31 Tage aber in der Anzeige
                steht "kalte_Tage": 52,

                Ich weiß nicht wie lange schon und warum überhaupt, aber das Problem scheint älter. Da es nicht immer auftritt ist es wohl ein Timing-Problem. Teil 1 läuft noch während Teil 2 schon was von Teil 1 möchte...
                Geändert habe ich es bereits, muss aber bis zum nächsten 1. warten ob es auch funktioniert.

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

                  Also folgendes

                  15:44:39.706	error	javascript.0 (115229) script.js.Wetter.Test: SyntaxError: Unexpected token ] in JSON at position 327
                  15:44:39.706	error	javascript.0 (115229) at script.js.Wetter.Test:3:15
                  15:44:39.706	error	javascript.0 (115229) at script.js.Wetter.Test:9:3
                  

                  ändere ich den Pfad auf 2020.01 kommt dies

                  15:48:17.997	info	javascript.0 (115229) Start javascript script.js.Wetter.Test
                  15:48:18.011	info	javascript.0 (115229) script.js.Wetter.Test: string
                  15:48:18.011	info	javascript.0 (115229) script.js.Wetter.Test: [ { "Tiefstwert": -1.77, "Hoechstwert": 12.27, "Temp_Durchschnitt": 2.95, "Max_Windboe": 40.39, "Max_Regenmenge": 22.3, "Regenmenge_Monat": 165.6, "warme_Tage": 0, "Sommertage": 0, "heisse_Tage": 0, "Frost_Tage": 10, "kalte_Tage": 26, "Eistage": 0, "sehr_kalte_Tage": 0 } ]
                  15:48:18.011	info	javascript.0 (115229) script.js.Wetter.Test: {'Tiefstwert':-1.77,'Hoechstwert':12.27,'Temp_Durchschnitt':2.95,'Max_Windboe':40.39,'Max_Regenmenge':22.3,'Regenmenge_Monat':165.6,'warme_Tage':0,'Sommertage':0,'heisse_Tage':0,'Frost_Tage':10,'kalte_Tage':26,'Eistage':0,'sehr_kalte_Tage':0}
                  15:48:18.011	info	javascript.0 (115229) script.js.Wetter.Test: registered 0 subscriptions and 0 schedules
                  

                  sorry aber das kapier ich nicht 😕

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

                    @nashra Immerhin kommen wir der Sache näher. Ich glaube der mag bei dir "JSON.parse" nicht...

                    Kommentiere mal #3 aus (// voranstellen):

                    //let test=...
                    

                    Geht dann zumindest teilweise der Januar 22? Müsste eine "NaN / undefined" Meldung kommen da er "test" nun nicht mehr kennt.

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

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

                      @nashra Immerhin kommen wir der Sache näher. Ich glaube der mag bei dir "JSON.parse" nicht...

                      Kommentiere mal #3 aus (// voranstellen):

                      //let test=...
                      

                      Geht dann zumindest teilweise der Januar 22? Müsste eine "NaN / undefined" Meldung kommen da er "test" nun nicht mehr kennt.

                      16:27:05.629	info	javascript.0 (115229) Start javascript script.js.Wetter.Test
                      16:27:05.631	info	javascript.0 (115229) script.js.Wetter.Test: string
                      16:27:05.631	info	javascript.0 (115229) script.js.Wetter.Test: [ { "Tiefstwert": -4.77, "Hoechstwert": 14.88, "Temp_Durchschnitt": 4.58, "Max_Windboe": 38.46, "Max_Regenmenge": 12.9, "Regenmenge_Monat": 145.3, "warme_Tage": 0, "Sommertage": 0, "heisse_Tage": 0, "Frost_Tage": 13, "kalte_Tage": 52, "Eistage": 0, "sehr_kalte_Tage": 0 } ]
                      16:27:05.632	info	javascript.0 (115229) script.js.Wetter.Test: registered 0 subscriptions and 0 schedules
                      16:27:05.632	error	javascript.0 (115229) script.js.Wetter.Test: ReferenceError: test is not defined
                      16:27:05.632	error	javascript.0 (115229) at script.js.Wetter.Test:7:13
                      16:27:05.632	error	javascript.0 (115229) at script.js.Wetter.Test:9:3
                      
                      SBorg 1 Reply Last reply Reply Quote 0
                      • SBorg
                        SBorg Forum Testing Most Active @Nashra last edited by

                        @nashra Na immerhin "lebt" es 😉

                        Ändere mal #3 in

                        let test=wert.join());
                        
                        Nashra 1 Reply Last reply Reply Quote 0
                        • Nashra
                          Nashra Most Active Forum Testing @SBorg last edited by

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

                          let test=wert.join());

                          16:40:20.426	info	javascript.0 (115229) Start javascript script.js.Wetter.Test
                          16:40:20.432	error	javascript.0 (115229) script.js.Wetter.Test compile failed: at script.js.Wetter.Test:3
                          
                          SBorg 1 Reply Last reply Reply Quote 0
                          • SBorg
                            SBorg Forum Testing Most Active @Nashra last edited by

                            @nashra Mist, eine Klammer zu viel...

                            let test=wert.join();
                            
                            Nashra 1 Reply Last reply Reply Quote 0
                            • Nashra
                              Nashra Most Active Forum Testing @SBorg last edited by

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

                              @nashra Mist, eine Klammer zu viel...

                              let test=wert.join();
                              
                              16:43:33.321	info	javascript.0 (115229) Start javascript script.js.Wetter.Test
                              16:43:33.345	info	javascript.0 (115229) script.js.Wetter.Test: registered 0 subscriptions and 0 schedules
                              16:43:33.347	error	javascript.0 (115229) script.js.Wetter.Test: TypeError: wert.join is not a function
                              16:43:33.347	error	javascript.0 (115229) at script.js.Wetter.Test:3:15
                              16:43:33.347	error	javascript.0 (115229) at script.js.Wetter.Test:9:3
                              
                              SBorg 1 Reply Last reply Reply Quote 0
                              • SBorg
                                SBorg Forum Testing Most Active @Nashra last edited by

                                @nashra Keine Ahnung was bei dir schief läuft...
                                Muss ich mir im stillen Kämmerlein paar Gedanken dazu machen. Melde mich dann so am 30. Februar wieder 😂

                                Als Q&D nimm halt aktuell die alte Version und lösche die [] heraus (sind ja auch wieder schnell eingefügt 😉 ).

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

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

                                  @nashra Keine Ahnung was bei dir schief läuft...
                                  Muss ich mir im stillen Kämmerlein paar Gedanken dazu machen. Melde mich dann so am 30. Februar wieder 😂

                                  Am 31. würde mir eher passen 😂

                                  Als Q&D nimm halt aktuell die alte Version und lösche die [] heraus (sind ja auch wieder schnell eingefügt 😉 ).

                                  Ok, mache ich, Danke erstmal 👍

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

                                    Moin @SBorg
                                    bei mir funktioniert auf einmal die Übertragung an Wetter.com nicht mehr.
                                    In der conf ist die ID und Passwort eingetragen aber der DP steht auf false.
                                    Von Hand auf true geändert aber beim nächsten aktualisieren geht er wieder auf false.
                                    Aufgefallen ist mir dies als ich bei Wetter.com meine Station überprüfen wollte
                                    und dort "Wetterdaten sind noch nicht vorhanden" angezeigt wurde. Wie lange
                                    das jetzt schon so ist kann ich nicht genau sagen, aber es hatte mal funktioniert.

                                    R SBorg 2 Replies Last reply Reply Quote 0
                                    • R
                                      Rushmed Most Active @Nashra last edited by

                                      @nashra +1

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

                                        @nashra Moin, moin. So ca. 2-3 Tage. War kurz vor dem Wochenende tot. Hat wohl keiner bei denen gemerkt, und beim letzten Ausfall haben sie übers WE auch nichts gefixt. Geht vermutlich morgen dann irgendwann wieder.
                                        Einfach abwarten und bis zum 31. Februar Tee trinken 😂

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

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

                                          Einfach abwarten und bis zum 31. Februar Tee trinken 😂

                                          Nix Tee, lieber lecker Bierchen 😂

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

                                            Bierpause beendet, läuft seit ~11:30 Uhr wieder 😊

                                            da_Woody Nashra 2 Replies Last reply Reply Quote 0
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            921
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

                                            linux shell-script wetterstation wlan-wetterstation
                                            142
                                            5473
                                            3260268
                                            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