Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Praktische Anwendungen (Showcase)
  4. [Linux Shell-Skript] WLAN-Wetterstation

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    3.6k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.1k

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.5k

[Linux Shell-Skript] WLAN-Wetterstation

Scheduled Pinned Locked Moved Praktische Anwendungen (Showcase)
linuxshell-scriptwetterstationwlan-wetterstation
5.7k Posts 156 Posters 3.9m Views 138 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • R Rushmed

    @martybr Liegt daran dass du noch keine 365 Tage loggst.

    M Offline
    M Offline
    MartyBr
    wrote on last edited by
    #3576

    @rushmed Ich dachte, dass sind die Tageshöchst- oder Tagesmindesttemperaturen. Dann lasse ich das mal weitere 363 Tage laufen :innocent:

    Gruß
    Martin


    Intel NUCs mit Proxmox / Iobroker als VM unter Debian
    Raspeberry mit USB Leseköpfen für Smartmeter
    Homematic und Homematic IP

    R 1 Reply Last reply
    0
    • M MartyBr

      @rushmed Ich dachte, dass sind die Tageshöchst- oder Tagesmindesttemperaturen. Dann lasse ich das mal weitere 363 Tage laufen :innocent:

      R Offline
      R Offline
      Rushmed
      Most Active
      wrote on last edited by Rushmed
      #3577

      @martybr Sorry, meine aussage bezog sich auf die DPs mit 365t.
      Bei mir siehts so aus, ich hab aber vor Kurzem alle Daten zurückgesetzt.
      49934952-d9a6-40da-a38f-17f0c436d189-grafik.png

      Edit: Ich seh gerade, da stimmt was nicht mit den heutigen min-, max-Werten
      e20710f4-0cb4-405a-a16c-03407abd0f7c-grafik.png

      M 1 Reply Last reply
      0
      • R Rushmed

        @martybr Sorry, meine aussage bezog sich auf die DPs mit 365t.
        Bei mir siehts so aus, ich hab aber vor Kurzem alle Daten zurückgesetzt.
        49934952-d9a6-40da-a38f-17f0c436d189-grafik.png

        Edit: Ich seh gerade, da stimmt was nicht mit den heutigen min-, max-Werten
        e20710f4-0cb4-405a-a16c-03407abd0f7c-grafik.png

        M Offline
        M Offline
        MartyBr
        wrote on last edited by
        #3578

        @rushmed Vielleicht ist da ein Problem in dem Script. Welcher Version setzt du ein?

        Gruß
        Martin


        Intel NUCs mit Proxmox / Iobroker als VM unter Debian
        Raspeberry mit USB Leseköpfen für Smartmeter
        Homematic und Homematic IP

        R 1 Reply Last reply
        0
        • M MartyBr

          @rushmed Vielleicht ist da ein Problem in dem Script. Welcher Version setzt du ein?

          R Offline
          R Offline
          Rushmed
          Most Active
          wrote on last edited by
          #3579

          @martybr Beide Scripte sind aktuell.

          M 1 Reply Last reply
          0
          • R Rushmed

            @martybr Beide Scripte sind aktuell.

            M Offline
            M Offline
            MartyBr
            wrote on last edited by
            #3580

            @rushmed
            Ich setze die 2.11.1 ein. Welche zwei Scripte setzt du ein? Auch das Statistik-Script?

            Gruß
            Martin


            Intel NUCs mit Proxmox / Iobroker als VM unter Debian
            Raspeberry mit USB Leseköpfen für Smartmeter
            Homematic und Homematic IP

            R 1 Reply Last reply
            0
            • M MartyBr

              @rushmed
              Ich setze die 2.11.1 ein. Welche zwei Scripte setzt du ein? Auch das Statistik-Script?

              R Offline
              R Offline
              Rushmed
              Most Active
              wrote on last edited by
              #3581

              @martybr
              wetterstation-statistik.js V1.0.1
              wetterstation.sh V2.11.1

              M 1 Reply Last reply
              0
              • R Rushmed

                @martybr
                wetterstation-statistik.js V1.0.1
                wetterstation.sh V2.11.1

                M Offline
                M Offline
                MartyBr
                wrote on last edited by MartyBr
                #3582

                @rushmed
                Ich habe nun auch das Statistik-Script in der aktuellen Version 1.0.1 installiert. Es liefert leider immer den Fehler

                Fehler beim Lesen der InfluxDB: Invalid call
                

                Hast du den String in

                  //InfluxDB abfragen (Regen +1min Startverzögerung wg. ev. Ungenauigkeit der Systemzeit des Wetterstation-Displays)
                            sendTo('influxdb.'+INFLUXDB_INSTANZ, 'query', 
                            'select * FROM "' + WET_DP + '.Aussentemperatur" WHERE time >= ' + (start *1000000) + ' AND time <= ' + (end *1000000)
                             + '; select * FROM "' + WET_DP + '.Wind_max" WHERE time >= '  + (start *1000000) + ' AND time <= ' + (end *1000000)
                             + '; select * FROM "' + WET_DP + '.Regen_Tag" WHERE time >= ' + ((start+72000) *1000000) + ' AND time <= ' + (end *1000000)
                         , function (result) {
                             //Anlegen der Arrays + befüllen mit den relevanten Daten
                            if (result.error) {
                               console.error('Fehler beim Lesen der InfluxDB: '+result.error);
                               Statusmeldung('Fehler beim Lesen der InfluxDB: '+result.error);
                            } else {
                                //console.log('Rows: ' + JSON.stringify(result.result[2]));
                                for (let i = 0; i < result.result[0].length; i++) { temps[i] = result.result[0][i].value; }
                                for (let i = 0; i < result.result[1].length; i++) { wind[i] = result.result[1][i].value; }
                                for (let i = 0; i < result.result[2].length; i++) { regen[i] = result.result[2][i].value; }
                            }    
                

                auf InfluxDB V2 angepasst?

                Edit:
                Habe folgende Log-Einträge:

                
                javascript.0
                2022-03-02 09:18:07.870	info	Stop script script.js.Wetterstation.Statistik_Wetterstation
                
                javascript.0
                2022-03-02 09:16:00.189	warn	TypeError: Reduce of empty array with no initial value at Array.reduce (<anonymous>) at Object.cb (script.js.Wetterstation.Statistik_Wetterstation:741:43) at change (/opt/iobroker/node_modules/@iobroker/js-controller-adapter/src/lib/adapter/adapter.js:5809:71) at Immediate._onImmediate (/opt/iobroker/node_modules/@iobroker/db-states-redis/lib/states/statesInRedisClient.js:322:37) at processImmediate (internal/timers.js:464:21)
                
                javascript.0
                2022-03-02 09:16:00.185	warn	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 >= 1646089200000000000 AND time <= 1646175599000000000; select * FROM \"0_userdata.0.Wetterstation.Wind_max\" WHERE time >= 1646089200000000000 AND time <= 1646175599000000000; select * FROM \"0_userdata.0.Wetterstation.Regen_Tag\" WHERE time >= 1646089272000000000 AND time <= 1646175599000000000","id":1,"ack":true,"time":1646208960014},"_id":61369237} Reduce of empty array with no initial value
                
                javascript.0
                2022-03-02 09:16:00.184	error	script.js.Wetterstation.Statistik_Wetterstation: Fehler beim Lesen der InfluxDB: Invalid call
                
                influxdb.0
                2022-03-02 09:16:00.158	error	queries: Error: 3 Error happened while processing 3 queries
                
                influxdb.0
                2022-03-02 09:16:00.158	warn	Error in query " select * FROM "0_userdata.0.Wetterstation.Regen_Tag" WHERE time >= 1646089272000000000 AND time <= 1646175599000000000": HttpError: error @1:2-1:8: undefined identifier selecterror @1:11-1:15: undefined identifier FROMerror @1:55-1:60: undefined identifier WHEREerror @1:61-1:65: (v:A) => time is not Equatableerror @1:89-1:92: undefined identifier ANDerror @1:93-1:97: (v:A) => time is not Equatable
                
                influxdb.0
                2022-03-02 09:16:00.151	warn	Error in query " select * FROM "0_userdata.0.Wetterstation.Wind_max" WHERE time >= 1646089200000000000 AND time <= 1646175599000000000": HttpError: error @1:2-1:8: undefined identifier selecterror @1:11-1:15: undefined identifier FROMerror @1:54-1:59: undefined identifier WHEREerror @1:60-1:64: (v:A) => time is not Equatableerror @1:88-1:91: undefined identifier ANDerror @1:92-1:96: (v:A) => time is not Equatable
                
                influxdb.0
                2022-03-02 09:16:00.141	warn	Error in query "select * FROM "0_userdata.0.Wetterstation.Aussentemperatur" WHERE time >= 1646089200000000000 AND time <= 1646175599000000000": HttpError: error @1:1-1:7: undefined identifier selecterror @1:10-1:14: undefined identifier FROMerror @1:61-1:66: undefined identifier WHEREerror @1:67-1:71: (v:A) => time is not Equatableerror @1:95-1:98: undefined identifier ANDerror @1:99-1:103: (v:A) => time is not Equatable
                

                Gruß
                Martin


                Intel NUCs mit Proxmox / Iobroker als VM unter Debian
                Raspeberry mit USB Leseköpfen für Smartmeter
                Homematic und Homematic IP

                1 Reply Last reply
                0
                • SBorgS Offline
                  SBorgS Offline
                  SBorg
                  Forum Testing Most Active
                  wrote on last edited by
                  #3583

                  Die 365Tage lassen wir mal außen vor, da muss man halt schon mindestens ein Jahr loggen ;)
                  Da aber "Heute" und "letzte 24h" im 15 Minuten-Raster generiert werden, liegen diese spätestens zur nächsten vollen (00, 15, 30 oder 45) Viertelstunde vor.
                  "Heute" ist allerdings um Mitternacht ein Sonderfall, da bedingt durch die Usereinstellungen wie viel Datenpunkte im RAM gehalten werden sollen, es nicht sichergestellt ist, dass wirklich schlag 0:00 Uhr auch schon ein Wert der Außentemperatur vorliegt (für "letzte 24h" wird immer mal ein Wert vorliegen, notfalls steht dann halt "(null)" da). Es könnte dann also sein, dass bis zum nächsten Update um 0:15 Uhr oftmals kein Messwert vorliegt/angezeigt wird.
                  Deswegen wird, falls kein Min-/Max-Wert ermittelt werden konnte, einfach die aktuelle Außentemperatur angezeigt. Würde in dem Fall ja stimmen, denn wenn ich nur einen Messwert habe, stellt der Min-, Max- und Durchschnittstemperatur gleichermaßen dar. Erst wenn ich einen davon abweichenden Messwert erhalte sind die drei unterschiedlich.

                  Lange Rede, kurzer Sinn. Das Fehlerbild zeigt eindeutig, das ihr keine Verbindung zur InfluxDB habt, deswegen sind die "24h" nur "(null)" (=kein Wert gelesen) und die Min-/Max-Temp identisch, da er auch hier nix aus der InfluxDB lesen konnte aber dann dafür die akt. Außentemperatur nutzt...

                  LG SBorg ( SBorg auf GitHub)
                  Projekte: Lebensmittelwarnung.de | WLAN-Wetterstation | PimpMyStation

                  1 Reply Last reply
                  0
                  • M Offline
                    M Offline
                    MartyBr
                    wrote on last edited by
                    #3584

                    @sborg Das ist ja genau die Frage. Mit dem folgenden Code kann ich auf dem Influx-Server die Daten abrufen:

                    influx query 'from(bucket:"iobroker") |> range(start:-15m) |> filter(fn: (r) => r._measurement == "proxmox.0.node_pve.cpu")|> pivot(rowKey:["_time"], columnKey: ["_field"], valueColumn: "_value")'
                    

                    Da bekomme ich auch Ergebnisse. Ich habe nun versucht, den Code im Statistik-Script anzupassen. Ich bekomme leider immer wieder Script Fehler:

                               //InfluxDB abfragen (Regen +1min Startverzögerung wg. ev. Ungenauigkeit der Systemzeit des Wetterstation-Displays)
                                sendTo('influxdb.'+INFLUXDB_INSTANZ, 'query', 
                                ' FROM(bucket:"iobroker")' |> range(start:-1h) |> filter(fn: (r) => r["_measurement"] == WET_DP +".Aussentemperatur")|> pivot(rowKey:["_time"], columnKey: ["_field"], valueColumn: "_value")'
                                 + '; FROM(bucket:"iobroker")' |> range(start:-1h) |> filter(fn: (r) => r["_measurement"] == WET_DP +".Wind_max")|> pivot(rowKey:["_time"], columnKey: ["_field"], valueColumn: "_value")'
                                 + '; FROM(bucket:"iobroker")' |> range(start:-1h) |> filter(fn: (r) => r["_measurement"] == WET_DP +".Regen_Tag")|> pivot(rowKey:["_time"], columnKey: ["_field"], valueColumn: "_value")'
                             , function (result) {
                                 //Anlegen der Arrays + befüllen mit den relevanten Daten
                                if (result.error) {
                                   console.error('Fehler beim Lesen der InfluxDB: '+result.error);
                                   Statusmeldung('Fehler beim Lesen der InfluxDB: '+result.error);
                                } else {
                                    //console.log('Rows: ' + JSON.stringify(result.result[2]));
                                    for (let i = 0; i < result.result[0].length; i++) { temps[i] = result.result[0][i].value; }
                                    for (let i = 0; i < result.result[1].length; i++) { wind[i] = result.result[1][i].value; }
                                    for (let i = 0; i < result.result[2].length; i++) { regen[i] = result.result[2][i].value; }
                                }            
                    

                    Vielleicht kann mir hier ein Fachmann helfen?

                    Gruß
                    Martin


                    Intel NUCs mit Proxmox / Iobroker als VM unter Debian
                    Raspeberry mit USB Leseköpfen für Smartmeter
                    Homematic und Homematic IP

                    J 1 Reply Last reply
                    0
                    • SBorgS SBorg

                      @martybr Da muss ich erst mal selbst schauen, offiziell wird aktuell nur 1.x unterstützt. Für die 2er habe ich noch keine Zeit gefunden zu migrieren.

                      R Offline
                      R Offline
                      Rushmed
                      Most Active
                      wrote on last edited by
                      #3585

                      Ich nutze InfluxDB 2.1.1.
                      In der Conf habe ich die Zugangsdaten zu meiner auf V1 gemappten DB eingetragen die ich auch für den Zugriff mit Grafana nutze.

                       #InfluxDB-Konfiguration / ohne InfluxDB alles leer lassen
                        #IP und Port der API [xxx.xxx.xxx.xxx:xxxxx]
                         INFLUX_API=192.168.178.20:8086
                        #Name, User und Passwort der InfluxDB-Datenbank
                         INFLUX_DB=ioBroker_db
                         INFLUX_USER=USERNAME
                         INFLUX_PASSWORD=PASSWORD
                      

                      Reichen denn diese Zugangsdaten wirklich?
                      Um mit Grafana auf die gemappte DB zugreifen zu können muss zusätzlich:
                      13251bf0-7696-4bbd-83f5-130f7be00371-grafik.png
                      eingestellt werden, wobei Value = Token MYTOKEN ist.

                      M 1 Reply Last reply
                      0
                      • R Rushmed

                        Ich nutze InfluxDB 2.1.1.
                        In der Conf habe ich die Zugangsdaten zu meiner auf V1 gemappten DB eingetragen die ich auch für den Zugriff mit Grafana nutze.

                         #InfluxDB-Konfiguration / ohne InfluxDB alles leer lassen
                          #IP und Port der API [xxx.xxx.xxx.xxx:xxxxx]
                           INFLUX_API=192.168.178.20:8086
                          #Name, User und Passwort der InfluxDB-Datenbank
                           INFLUX_DB=ioBroker_db
                           INFLUX_USER=USERNAME
                           INFLUX_PASSWORD=PASSWORD
                        

                        Reichen denn diese Zugangsdaten wirklich?
                        Um mit Grafana auf die gemappte DB zugreifen zu können muss zusätzlich:
                        13251bf0-7696-4bbd-83f5-130f7be00371-grafik.png
                        eingestellt werden, wobei Value = Token MYTOKEN ist.

                        M Offline
                        M Offline
                        MartyBr
                        wrote on last edited by
                        #3586

                        @rushmed Ich habe es genauso gemacht. Die Datenbank habe ich auf V1 gemalt und
                        influx v1 dbrp list
                        hat das erfolgreiche Mapping gezeigt.
                        Setzt du das unveränderte Statistik-Script ein?

                        Gruß
                        Martin


                        Intel NUCs mit Proxmox / Iobroker als VM unter Debian
                        Raspeberry mit USB Leseköpfen für Smartmeter
                        Homematic und Homematic IP

                        R 1 Reply Last reply
                        0
                        • M MartyBr

                          @rushmed Ich habe es genauso gemacht. Die Datenbank habe ich auf V1 gemalt und
                          influx v1 dbrp list
                          hat das erfolgreiche Mapping gezeigt.
                          Setzt du das unveränderte Statistik-Script ein?

                          R Offline
                          R Offline
                          Rushmed
                          Most Active
                          wrote on last edited by
                          #3587

                          @martybr ja

                          M 1 Reply Last reply
                          0
                          • R Rushmed

                            @martybr ja

                            M Offline
                            M Offline
                            MartyBr
                            wrote on last edited by
                            #3588

                            @rushmed Und es liefert Werte? Bei mir bricht es ab.
                            Ich habe keine Idee mehr :disappointed:

                            Gruß
                            Martin


                            Intel NUCs mit Proxmox / Iobroker als VM unter Debian
                            Raspeberry mit USB Leseköpfen für Smartmeter
                            Homematic und Homematic IP

                            R 1 Reply Last reply
                            0
                            • M MartyBr

                              @rushmed Und es liefert Werte? Bei mir bricht es ab.
                              Ich habe keine Idee mehr :disappointed:

                              R Offline
                              R Offline
                              Rushmed
                              Most Active
                              wrote on last edited by
                              #3589

                              @martybr Du hast Recht. Ich hab das voll übersehen. Die Werte sind noch von vor meine Umstellung auf Influx2.

                              M 1 Reply Last reply
                              0
                              • R Rushmed

                                @martybr Du hast Recht. Ich hab das voll übersehen. Die Werte sind noch von vor meine Umstellung auf Influx2.

                                M Offline
                                M Offline
                                MartyBr
                                wrote on last edited by
                                #3590

                                @rushmed
                                Du kannst den Status hier ablesen:

                                0_userdata.0.Statistik.Wetter.Control.Statusmeldung

                                Gruß
                                Martin


                                Intel NUCs mit Proxmox / Iobroker als VM unter Debian
                                Raspeberry mit USB Leseköpfen für Smartmeter
                                Homematic und Homematic IP

                                R 1 Reply Last reply
                                0
                                • M MartyBr

                                  @rushmed
                                  Du kannst den Status hier ablesen:

                                  0_userdata.0.Statistik.Wetter.Control.Statusmeldung

                                  R Offline
                                  R Offline
                                  Rushmed
                                  Most Active
                                  wrote on last edited by
                                  #3591

                                  @martybr Fehler beim Lesen der InfluxDB: Invalid call

                                  M 1 Reply Last reply
                                  0
                                  • R Rushmed

                                    @martybr Fehler beim Lesen der InfluxDB: Invalid call

                                    M Offline
                                    M Offline
                                    MartyBr
                                    wrote on last edited by
                                    #3592

                                    @rushmed Wie bei mir. Das Script scheint nur bei Influx Version 1 zu laufen. Ich hatte weiter oben mal einen Versuch eingestellt, die Abfrage auf Influx Version zu ändern. Bekommen aber immer einen Error beim Speichern.
                                    Die Abfragen hatte ich mir aus der Weboberfläche Influx geholt. Dort funktionieren sie und liefern Daten.
                                    Ich komme da mit dem Script nicht weiter, vielleicht kann sich das jemand mal anschauen.

                                    Gruß
                                    Martin


                                    Intel NUCs mit Proxmox / Iobroker als VM unter Debian
                                    Raspeberry mit USB Leseköpfen für Smartmeter
                                    Homematic und Homematic IP

                                    SBorgS 1 Reply Last reply
                                    0
                                    • M MartyBr

                                      @rushmed Wie bei mir. Das Script scheint nur bei Influx Version 1 zu laufen. Ich hatte weiter oben mal einen Versuch eingestellt, die Abfrage auf Influx Version zu ändern. Bekommen aber immer einen Error beim Speichern.
                                      Die Abfragen hatte ich mir aus der Weboberfläche Influx geholt. Dort funktionieren sie und liefern Daten.
                                      Ich komme da mit dem Script nicht weiter, vielleicht kann sich das jemand mal anschauen.

                                      SBorgS Offline
                                      SBorgS Offline
                                      SBorg
                                      Forum Testing Most Active
                                      wrote on last edited by
                                      #3593

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

                                      Ich hatte weiter oben mal einen Versuch eingestellt, die Abfrage auf Influx Version zu ändern. Bekommen aber immer einen Error beim Speichern.

                                      Das wird auch so nicht funktionieren, da du die Syntax eines Influx-Querys nicht 1:1 in den "sendTo" des Javascript-Adapters übernehmen kannst. Der kann damit schlichtweg nichts anfangen.

                                      Ich habe aktuell leider keine Zeit mir das selbst anzuschauen, da es nur mit "kleinen" Anpassungen auch nicht getan ist.

                                      LG SBorg ( SBorg auf GitHub)
                                      Projekte: Lebensmittelwarnung.de | WLAN-Wetterstation | PimpMyStation

                                      1 Reply Last reply
                                      0
                                      • M MartyBr

                                        @sborg Das ist ja genau die Frage. Mit dem folgenden Code kann ich auf dem Influx-Server die Daten abrufen:

                                        influx query 'from(bucket:"iobroker") |> range(start:-15m) |> filter(fn: (r) => r._measurement == "proxmox.0.node_pve.cpu")|> pivot(rowKey:["_time"], columnKey: ["_field"], valueColumn: "_value")'
                                        

                                        Da bekomme ich auch Ergebnisse. Ich habe nun versucht, den Code im Statistik-Script anzupassen. Ich bekomme leider immer wieder Script Fehler:

                                                   //InfluxDB abfragen (Regen +1min Startverzögerung wg. ev. Ungenauigkeit der Systemzeit des Wetterstation-Displays)
                                                    sendTo('influxdb.'+INFLUXDB_INSTANZ, 'query', 
                                                    ' FROM(bucket:"iobroker")' |> range(start:-1h) |> filter(fn: (r) => r["_measurement"] == WET_DP +".Aussentemperatur")|> pivot(rowKey:["_time"], columnKey: ["_field"], valueColumn: "_value")'
                                                     + '; FROM(bucket:"iobroker")' |> range(start:-1h) |> filter(fn: (r) => r["_measurement"] == WET_DP +".Wind_max")|> pivot(rowKey:["_time"], columnKey: ["_field"], valueColumn: "_value")'
                                                     + '; FROM(bucket:"iobroker")' |> range(start:-1h) |> filter(fn: (r) => r["_measurement"] == WET_DP +".Regen_Tag")|> pivot(rowKey:["_time"], columnKey: ["_field"], valueColumn: "_value")'
                                                 , function (result) {
                                                     //Anlegen der Arrays + befüllen mit den relevanten Daten
                                                    if (result.error) {
                                                       console.error('Fehler beim Lesen der InfluxDB: '+result.error);
                                                       Statusmeldung('Fehler beim Lesen der InfluxDB: '+result.error);
                                                    } else {
                                                        //console.log('Rows: ' + JSON.stringify(result.result[2]));
                                                        for (let i = 0; i < result.result[0].length; i++) { temps[i] = result.result[0][i].value; }
                                                        for (let i = 0; i < result.result[1].length; i++) { wind[i] = result.result[1][i].value; }
                                                        for (let i = 0; i < result.result[2].length; i++) { regen[i] = result.result[2][i].value; }
                                                    }            
                                        

                                        Vielleicht kann mir hier ein Fachmann helfen?

                                        J Offline
                                        J Offline
                                        jostereo
                                        wrote on last edited by jostereo
                                        #3594

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

                                        @sborg Das ist ja genau die Frage. Mit dem folgenden Code kann ich auf dem Influx-Server die Daten abrufen:

                                        influx query 'from(bucket:"iobroker") |> range(start:-15m) |> filter(fn: (r) => r._measurement == "proxmox.0.node_pve.cpu")|> pivot(rowKey:["_time"], columnKey: ["_field"], valueColumn: "_value")'
                                        

                                        Da bekomme ich auch Ergebnisse. Ich habe nun versucht, den Code im Statistik-Script anzupassen. Ich bekomme leider immer wieder Script Fehler:

                                                   //InfluxDB abfragen (Regen +1min Startverzögerung wg. ev. Ungenauigkeit der Systemzeit des Wetterstation-Displays)
                                                    sendTo('influxdb.'+INFLUXDB_INSTANZ, 'query', 
                                                    ' FROM(bucket:"iobroker")' |> range(start:-1h) |> filter(fn: (r) => r["_measurement"] == WET_DP +".Aussentemperatur")|> pivot(rowKey:["_time"], columnKey: ["_field"], valueColumn: "_value")'
                                                     + '; FROM(bucket:"iobroker")' |> range(start:-1h) |> filter(fn: (r) => r["_measurement"] == WET_DP +".Wind_max")|> pivot(rowKey:["_time"], columnKey: ["_field"], valueColumn: "_value")'
                                                     + '; FROM(bucket:"iobroker")' |> range(start:-1h) |> filter(fn: (r) => r["_measurement"] == WET_DP +".Regen_Tag")|> pivot(rowKey:["_time"], columnKey: ["_field"], valueColumn: "_value")'
                                                 , function (result) {
                                                     //Anlegen der Arrays + befüllen mit den relevanten Daten
                                                    if (result.error) {
                                                       console.error('Fehler beim Lesen der InfluxDB: '+result.error);
                                                       Statusmeldung('Fehler beim Lesen der InfluxDB: '+result.error);
                                                    } else {
                                                        //console.log('Rows: ' + JSON.stringify(result.result[2]));
                                                        for (let i = 0; i < result.result[0].length; i++) { temps[i] = result.result[0][i].value; }
                                                        for (let i = 0; i < result.result[1].length; i++) { wind[i] = result.result[1][i].value; }
                                                        for (let i = 0; i < result.result[2].length; i++) { regen[i] = result.result[2][i].value; }
                                                    }            
                                        

                                        Vielleicht kann mir hier ein Fachmann helfen?

                                        Ich habe das Statistikscript glaube ich für InfluxDB 2.0 angepasst.

                                        Dafür benutze ich folgendes Flux Command. Ist die entsprechende Anpassung zu dem bestehenden Command für Version 1.0

                                        'from(bucket: "iobroker") |> range(start: ' + (start / 1000) + ', stop: ' + (end / 1000) + ') |> filter(fn: (r) => r["_measurement"] == "' + WET_DP + '.Aussentemperatur") |> filter(fn: (r) => r["_field"] == "value");' +
                                                'from(bucket: "iobroker") |> range(start: ' + (start / 1000) + ', stop: ' + (end / 1000) + ') |> filter(fn: (r) => r["_measurement"] == "' + WET_DP + '.Wind_max") |> filter(fn: (r) => r["_field"] == "value");' +
                                                'from(bucket: "iobroker") |> range(start: ' + ((start + 72000) / 1000) + ', stop: ' + (end / 1000) + ') |> filter(fn: (r) => r["_measurement"] == "' + WET_DP + '.Regen_Tag") |> filter(fn: (r) => r["_field"] == "value")'
                                        

                                        Ich bin der Meinung das das Script bei mir richtig funktioniert, allerdings habe ich das nicht bis ins Detail an den Messwerten überprüft. Die Messwerte werden allerdings geschrieben und auch vollständig berechnet.

                                        Vielleicht kannst du den FLUX Command auch mal bei dir einbauen und dann testen ob es für dich läuft.

                                        Influx Bucket heißt bei mir "iobroker", müsste natürlich notfalls angepasst werden.

                                        Ich hatte damals längere Zeit damit verbracht die Zeitangaben entsprechende anzupassen, da der Timestamp Vergleich wohl in FLUX anders läuft als in V 1.0.

                                        Gruß,

                                        jostereo

                                        M 1 Reply Last reply
                                        2
                                        • J jostereo

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

                                          @sborg Das ist ja genau die Frage. Mit dem folgenden Code kann ich auf dem Influx-Server die Daten abrufen:

                                          influx query 'from(bucket:"iobroker") |> range(start:-15m) |> filter(fn: (r) => r._measurement == "proxmox.0.node_pve.cpu")|> pivot(rowKey:["_time"], columnKey: ["_field"], valueColumn: "_value")'
                                          

                                          Da bekomme ich auch Ergebnisse. Ich habe nun versucht, den Code im Statistik-Script anzupassen. Ich bekomme leider immer wieder Script Fehler:

                                                     //InfluxDB abfragen (Regen +1min Startverzögerung wg. ev. Ungenauigkeit der Systemzeit des Wetterstation-Displays)
                                                      sendTo('influxdb.'+INFLUXDB_INSTANZ, 'query', 
                                                      ' FROM(bucket:"iobroker")' |> range(start:-1h) |> filter(fn: (r) => r["_measurement"] == WET_DP +".Aussentemperatur")|> pivot(rowKey:["_time"], columnKey: ["_field"], valueColumn: "_value")'
                                                       + '; FROM(bucket:"iobroker")' |> range(start:-1h) |> filter(fn: (r) => r["_measurement"] == WET_DP +".Wind_max")|> pivot(rowKey:["_time"], columnKey: ["_field"], valueColumn: "_value")'
                                                       + '; FROM(bucket:"iobroker")' |> range(start:-1h) |> filter(fn: (r) => r["_measurement"] == WET_DP +".Regen_Tag")|> pivot(rowKey:["_time"], columnKey: ["_field"], valueColumn: "_value")'
                                                   , function (result) {
                                                       //Anlegen der Arrays + befüllen mit den relevanten Daten
                                                      if (result.error) {
                                                         console.error('Fehler beim Lesen der InfluxDB: '+result.error);
                                                         Statusmeldung('Fehler beim Lesen der InfluxDB: '+result.error);
                                                      } else {
                                                          //console.log('Rows: ' + JSON.stringify(result.result[2]));
                                                          for (let i = 0; i < result.result[0].length; i++) { temps[i] = result.result[0][i].value; }
                                                          for (let i = 0; i < result.result[1].length; i++) { wind[i] = result.result[1][i].value; }
                                                          for (let i = 0; i < result.result[2].length; i++) { regen[i] = result.result[2][i].value; }
                                                      }            
                                          

                                          Vielleicht kann mir hier ein Fachmann helfen?

                                          Ich habe das Statistikscript glaube ich für InfluxDB 2.0 angepasst.

                                          Dafür benutze ich folgendes Flux Command. Ist die entsprechende Anpassung zu dem bestehenden Command für Version 1.0

                                          'from(bucket: "iobroker") |> range(start: ' + (start / 1000) + ', stop: ' + (end / 1000) + ') |> filter(fn: (r) => r["_measurement"] == "' + WET_DP + '.Aussentemperatur") |> filter(fn: (r) => r["_field"] == "value");' +
                                                  'from(bucket: "iobroker") |> range(start: ' + (start / 1000) + ', stop: ' + (end / 1000) + ') |> filter(fn: (r) => r["_measurement"] == "' + WET_DP + '.Wind_max") |> filter(fn: (r) => r["_field"] == "value");' +
                                                  'from(bucket: "iobroker") |> range(start: ' + ((start + 72000) / 1000) + ', stop: ' + (end / 1000) + ') |> filter(fn: (r) => r["_measurement"] == "' + WET_DP + '.Regen_Tag") |> filter(fn: (r) => r["_field"] == "value")'
                                          

                                          Ich bin der Meinung das das Script bei mir richtig funktioniert, allerdings habe ich das nicht bis ins Detail an den Messwerten überprüft. Die Messwerte werden allerdings geschrieben und auch vollständig berechnet.

                                          Vielleicht kannst du den FLUX Command auch mal bei dir einbauen und dann testen ob es für dich läuft.

                                          Influx Bucket heißt bei mir "iobroker", müsste natürlich notfalls angepasst werden.

                                          Ich hatte damals längere Zeit damit verbracht die Zeitangaben entsprechende anzupassen, da der Timestamp Vergleich wohl in FLUX anders läuft als in V 1.0.

                                          Gruß,

                                          jostereo

                                          M Offline
                                          M Offline
                                          MartyBr
                                          wrote on last edited by MartyBr
                                          #3595

                                          @jostereo Super, das teste ich sofort. Ich gebe dir dann Rückmeldung.

                                          Edit: 15:17 Uhr
                                          Änderung Script funktioniert. Nun kann auch eine Influxdb Version2 ausgelesen werden.

                                          Kleiner Schönheitsfehler: Ich musste in der letzten Zeile das Semikolon entfernen.

                                          Herzlichen Dank
                                          :+1:

                                          Gruß
                                          Martin


                                          Intel NUCs mit Proxmox / Iobroker als VM unter Debian
                                          Raspeberry mit USB Leseköpfen für Smartmeter
                                          Homematic und Homematic IP

                                          J 1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          684

                                          Online

                                          32.7k

                                          Users

                                          82.4k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe