Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

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

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.2k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    1.9k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    15
    1
    2.2k

[Linux Shell-Skript] WLAN-Wetterstation

Geplant Angeheftet Gesperrt Verschoben Praktische Anwendungen (Showcase)
linuxshell-scriptwetterstationwlan-wetterstation
5.7k Beiträge 152 Kommentatoren 3.8m Aufrufe 134 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • NegaleinN Negalein

    Hallo @SBorg

    Hab gerade gesehn, dass ich vom Statistik-Script 3 komische Werte bekomme.

    0_userdata.0.Statistik.Wetter.Rekordwerte.Temperatur_Spitzentiefstwert
    0_userdata.0.Statistik.Wetter.Rekordwerte.value.Temp_Min
    0_userdata.0.Statistik.Wetter.Jahreswerte.Temperatur_Tiefstwert

    objects - ioBroker (3).png objects - ioBroker (4).png objects - ioBroker (5).png

    da_WoodyD Offline
    da_WoodyD Offline
    da_Woody
    schrieb am zuletzt editiert von
    #2702

    @negalein bei mir passen die 3 werte...

    gruß vom Woody
    HAPPINESS is not a DESTINATION, it's a WAY of LIFE!

    1 Antwort Letzte Antwort
    0
    • N Nordischerjung

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

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

      Kann man den auch als "Sensor" mißbrauchen?

      Nein, zumindest nicht relativ zeitnah. Da es ein Regenmengenmesser ist, muss systembedingt auch erst mal Regenmenge x ml gesammelt sein bevor er einen Puls auslöst. War es nun länger trocken (Messwippe ist kpl. leer + keine "Regenaltmenge" mehr drin) und es regnet nur leicht, kann es bis zu 20 Minuten dauern bis der erste Puls käme.
      Selbst bei einem stärkeren Regenguss kann es paar Minuten dauern bis er die 1. Regenmenge meldet. Als Regensensor taugt es also nur bedingt. Besser einen "echten" Regensensor nutzen.

      Hmm das ist ja blöd. Dann muss ich mir noch etwas einfallen lassen.

      Hast du einen 2€ - Chinasensor(*) im Einsatz? Ev. wäre da bspw. einer von Kemo besser, wobei mir bei Salzluft jeglicher Erfahrungswert abgeht ;)

      (*) ich habe nix gegen Chinateile, nutze ich auch recht sukzessiv. Nur ab und an für bestimmte Zwecke muss man halt auch mal "Marke" nutzen...
      Ja, das ist der AZDelivery Regensensor. Dann muss ich mal gucken ob der Kemo besser ist. Danke

      SBorgS Offline
      SBorgS Offline
      SBorg
      Forum Testing Most Active
      schrieb am zuletzt editiert von
      #2703

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

      Dann muss ich mal gucken ob der Kemo besser ist. Danke

      Der "K" (=kapazitiv) sollte IMO auch Salzluft aushalten, da die Sensorfläche keinerlei direkten Kontakt mit der Luft/Regenwasser hat. 50 Ökker sind natürlich eine ganz andere Hausnummer ;)

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

      1 Antwort Letzte Antwort
      0
      • NegaleinN Negalein

        Hallo @SBorg

        Hab gerade gesehn, dass ich vom Statistik-Script 3 komische Werte bekomme.

        0_userdata.0.Statistik.Wetter.Rekordwerte.Temperatur_Spitzentiefstwert
        0_userdata.0.Statistik.Wetter.Rekordwerte.value.Temp_Min
        0_userdata.0.Statistik.Wetter.Jahreswerte.Temperatur_Tiefstwert

        objects - ioBroker (3).png objects - ioBroker (4).png objects - ioBroker (5).png

        SBorgS Offline
        SBorgS Offline
        SBorg
        Forum Testing Most Active
        schrieb am zuletzt editiert von
        #2704

        @negalein Den 1. und 3. Wert kannst du knicken, da diese auf dem 2. basieren. Wenn der 2. also nicht stimmt, muss der 1. und 3. ebenso falsch sein.
        Der 2. wird aus der InfluxDB gelesen. Da das Template auch den Timestamp des Wertes berücksichtigt, wirst du im April 2021 zumindest einen Temperaturmesswert mit -5572.77 °C in der Influx stehen haben.
        Da kann mal die Übertragung vom Display gesponnen haben, das Skript hat sich verschluckt, Verkettung ungünstiger Umstände, Influx....
        Da hilft eigentlich nur den falschen Wert in der Influx zu droppen und die DPs korrekt von Hand zu setzen. Den mit den Werten wirst du wohl nie einen neuen Rekord erzielen ;)
        Ich könnte z.B. auch pauschal Werte von <-100 °C und > 100 °C verwerfen, dann bleibt aber trotzdem der falsche Wert in der Influx drin. Dann "knallt" es halt einfach nur später. Der Rostfleck am Auto verschwindet auch nicht einfach dadurch, dass ich die Augen schließe und denke "wenn ich es nicht sehe ist er auch nicht da".


        [OT] yeah, heute kam meine SSD aus Garantieersatz zurück. Think positiv: 250GB eingeschickt, gibt es nicht mehr --> 480GB erhalten :grin:

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

        NegaleinN 1 Antwort Letzte Antwort
        1
        • SBorgS SBorg

          @negalein Den 1. und 3. Wert kannst du knicken, da diese auf dem 2. basieren. Wenn der 2. also nicht stimmt, muss der 1. und 3. ebenso falsch sein.
          Der 2. wird aus der InfluxDB gelesen. Da das Template auch den Timestamp des Wertes berücksichtigt, wirst du im April 2021 zumindest einen Temperaturmesswert mit -5572.77 °C in der Influx stehen haben.
          Da kann mal die Übertragung vom Display gesponnen haben, das Skript hat sich verschluckt, Verkettung ungünstiger Umstände, Influx....
          Da hilft eigentlich nur den falschen Wert in der Influx zu droppen und die DPs korrekt von Hand zu setzen. Den mit den Werten wirst du wohl nie einen neuen Rekord erzielen ;)
          Ich könnte z.B. auch pauschal Werte von <-100 °C und > 100 °C verwerfen, dann bleibt aber trotzdem der falsche Wert in der Influx drin. Dann "knallt" es halt einfach nur später. Der Rostfleck am Auto verschwindet auch nicht einfach dadurch, dass ich die Augen schließe und denke "wenn ich es nicht sehe ist er auch nicht da".


          [OT] yeah, heute kam meine SSD aus Garantieersatz zurück. Think positiv: 250GB eingeschickt, gibt es nicht mehr --> 480GB erhalten :grin:

          NegaleinN Offline
          NegaleinN Offline
          Negalein
          Global Moderator
          schrieb am zuletzt editiert von
          #2705

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

          Da hilft eigentlich nur den falschen Wert in der Influx zu droppen und die DPs korrekt von Hand zu setzen.

          wie macht man das? Und wie finde ich den korrekten Wert?

          ° Node.js: 20.17.0 NPM: 10.8.2
          ° Proxmox, Ubuntu 22.04.3 LTS
          ° Fixer ---> iob fix

          SBorgS 1 Antwort Letzte Antwort
          0
          • NegaleinN Negalein

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

            Da hilft eigentlich nur den falschen Wert in der Influx zu droppen und die DPs korrekt von Hand zu setzen.

            wie macht man das? Und wie finde ich den korrekten Wert?

            SBorgS Offline
            SBorgS Offline
            SBorg
            Forum Testing Most Active
            schrieb am zuletzt editiert von
            #2706

            @negalein Per Terminal in Influx einloggen:

            • influx
            • use _dein_datenbankname_
              • oder show databases um die Datenbanknamen anzuzeigen
            • select * from "javascript.0.Wetterstation.Aussentemperatur" where value < -100

            Dann sollten eigentlich alle Werte kleiner als -100 °C angezeigt werden. DP-Bezeichnung musst du ggf. bei anderer Struktur anpassen.
            Der/die Werte haben dann einen Timestamp. Leider kann man bei Influx nur via Timestamp löschen und nicht einfach "kill alles kleiner -100...", also dann folgend deinen Timestamp einsetzen:

            • delete from "javascript.0.Wetterstation.Aussentemperatur" where time =1572614953000000000

            Den bisherigen Rekordwert solltest du dann in der Statistik unter "Data" in den JSONs finden (kriege ich gerade aus dem Kopf nicht so ganz hin). Dann einfach die Werte mit bspw. -15.57 eintragen und beim Template halt "-15.57 °C im Februar 2021".
            Kannst auch in der Influx nachschauen (ungetestet):

            • select min(value) from "javascript.0.Wetterstation.Aussentemperatur"

            Dann hast du den Wert; vom Timestamp ziehst du rechts 6 Nullen ab und gibst den Rest z.B. bei https://www.unixtime.de/ ein und erhällst dann passend Uhrzeit und Datum.

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

            NegaleinN 1 Antwort Letzte Antwort
            0
            • SBorgS SBorg

              @negalein Per Terminal in Influx einloggen:

              • influx
              • use _dein_datenbankname_
                • oder show databases um die Datenbanknamen anzuzeigen
              • select * from "javascript.0.Wetterstation.Aussentemperatur" where value < -100

              Dann sollten eigentlich alle Werte kleiner als -100 °C angezeigt werden. DP-Bezeichnung musst du ggf. bei anderer Struktur anpassen.
              Der/die Werte haben dann einen Timestamp. Leider kann man bei Influx nur via Timestamp löschen und nicht einfach "kill alles kleiner -100...", also dann folgend deinen Timestamp einsetzen:

              • delete from "javascript.0.Wetterstation.Aussentemperatur" where time =1572614953000000000

              Den bisherigen Rekordwert solltest du dann in der Statistik unter "Data" in den JSONs finden (kriege ich gerade aus dem Kopf nicht so ganz hin). Dann einfach die Werte mit bspw. -15.57 eintragen und beim Template halt "-15.57 °C im Februar 2021".
              Kannst auch in der Influx nachschauen (ungetestet):

              • select min(value) from "javascript.0.Wetterstation.Aussentemperatur"

              Dann hast du den Wert; vom Timestamp ziehst du rechts 6 Nullen ab und gibst den Rest z.B. bei https://www.unixtime.de/ ein und erhällst dann passend Uhrzeit und Datum.

              NegaleinN Offline
              NegaleinN Offline
              Negalein
              Global Moderator
              schrieb am zuletzt editiert von Negalein
              #2707

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

              delete from "javascript.0.Wetterstation.Aussentemperatur" where time =1572614953000000000

              Danke
              hab 8 Einträge gelöscht

              Den bisherigen Rekordwert solltest du dann in der Statistik unter "Data" in den JSONs finden (kriege ich gerade aus dem Kopf nicht so ganz hin). Dann einfach die Werte mit bspw. -15.57 eintragen .

              In der JSON vom April hab ich den Wert korrigiert (dank Grafana leicht herauszufinden).
              Aber wie oder wann ändern sich die Werte zB in 0_userdata.0.Statistik.Wetter.Rekordwerte.Temperatur_Spitzentiefstwert?
              objects - ioBroker (6).png

              und beim Template halt "-15.57 °C im Februar 2021"

              welches Template?

              Kannst auch in der Influx nachschauen (ungetestet):

              funktionierte nicht (getestet) ;)

              select min(value) from "javascript.0.Wetterstation.Aussentemperatur ERR: error parsing query: found javascript.0.Wetterstation.Aussentemperatur, expected identifier at line 1, char 23


              Edit: hab jetzt die 3 Werte händisch eingetragen. Sind nun rot. Ist das normal?

              objects - ioBroker (7).png objects - ioBroker (8).png objects - ioBroker (9).png

              ° Node.js: 20.17.0 NPM: 10.8.2
              ° Proxmox, Ubuntu 22.04.3 LTS
              ° Fixer ---> iob fix

              SBorgS 1 Antwort Letzte Antwort
              0
              • BoronsbruderB Offline
                BoronsbruderB Offline
                Boronsbruder
                schrieb am zuletzt editiert von
                #2708

                @SBorg
                mich hat das Statistikskript beim Monatswechsel angewarnt (das fällt bei Euch wahrscheinlich nicht mehr auf, da ihr schon länger als ein Jahr loggt)

                2021-07-01 01:03:00.046 - warn: javascript.0 (21792) States system pmessage messagebox.system.adapter.javascript.0 {"command":"query","message":{"result":[[],[],[]],"ts":1625094180045,"error":null},"from":"system.adapter.influxdb.0","callback":{"message":"select * FROM \"0_userdata.0.Wetterstation.Aussentemperatur\" WHERE time >= 1593554400000000000 AND time <= 1596232799000000000; select * FROM \"0_userdata.0.Wetterstation.Wind_max\" WHERE time >= 1593554400000000000 AND time <= 1596232799000000000; select * FROM \"0_userdata.0.Wetterstation.Regen_Tag\" WHERE time >= 1593554400000000000 AND time <= 1596232799000000000","id":54,"ack":true,"time":1625094180008},"_id":24065089} temps is not defined
                2021-07-01 01:03:00.049 - warn: javascript.0 (21792) ReferenceError: temps is not defined
                at Object.cb (script.js.common.Wetterstation_Statistik:401:21)
                at change (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:5467:71)
                at Immediate._onImmediate (/opt/iobroker/node_modules/@iobroker/db-states-redis/lib/states/statesInRedisClient.js:234:37)
                at processImmediate (internal/timers.js:461:21)
                

                hab jetzt mal in Zeile 350 ein

                    let temps = [], wind = [], regen = [];
                

                reingepackt, weil er im Skripteditor von Iobroker

                                    temps.length=0;
                                    temps[0]=99999; 
                                    wind.length=0;
                                    wind[0]=99999;
                                    regen.length=0;
                                    regen[0]=99999;
                

                (Zeile 401-406) bemängelt hat (not defined).

                SBorgS 1 Antwort Letzte Antwort
                0
                • NegaleinN Negalein

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

                  delete from "javascript.0.Wetterstation.Aussentemperatur" where time =1572614953000000000

                  Danke
                  hab 8 Einträge gelöscht

                  Den bisherigen Rekordwert solltest du dann in der Statistik unter "Data" in den JSONs finden (kriege ich gerade aus dem Kopf nicht so ganz hin). Dann einfach die Werte mit bspw. -15.57 eintragen .

                  In der JSON vom April hab ich den Wert korrigiert (dank Grafana leicht herauszufinden).
                  Aber wie oder wann ändern sich die Werte zB in 0_userdata.0.Statistik.Wetter.Rekordwerte.Temperatur_Spitzentiefstwert?
                  objects - ioBroker (6).png

                  und beim Template halt "-15.57 °C im Februar 2021"

                  welches Template?

                  Kannst auch in der Influx nachschauen (ungetestet):

                  funktionierte nicht (getestet) ;)

                  select min(value) from "javascript.0.Wetterstation.Aussentemperatur ERR: error parsing query: found javascript.0.Wetterstation.Aussentemperatur, expected identifier at line 1, char 23


                  Edit: hab jetzt die 3 Werte händisch eingetragen. Sind nun rot. Ist das normal?

                  objects - ioBroker (7).png objects - ioBroker (8).png objects - ioBroker (9).png

                  SBorgS Offline
                  SBorgS Offline
                  SBorg
                  Forum Testing Most Active
                  schrieb am zuletzt editiert von
                  #2709

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

                  funktionierte nicht (getestet)

                  Gegentest :grin:
                  Bild 1.png

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

                  welches Template?

                  Wie die Rekordwerte angezeigt werden: [WERT] im [MONAT] [JAHR] (hast du aber schon gemacht, aber das ist ein Template, da du über die verschiedenen Parameter das Aussehen der Ausgabe selbst bestimmen kannst).

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

                  Edit: hab jetzt die 3 Werte händisch eingetragen. Sind nun rot. Ist das normal?

                  Jepp, wenn du beim manuellen setzen das ACK-Flag nicht setzt ("Bestätigt") bleiben die rot. Das hat an der Stelle aber keine Bewandtnis, da hier kein Adapter dahinter steht der es ev. brauchen würde, um zu prüfen ob bspw.. ein anderer Adapter den Wert bestätigt.

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

                  1 Antwort Letzte Antwort
                  1
                  • BoronsbruderB Boronsbruder

                    @SBorg
                    mich hat das Statistikskript beim Monatswechsel angewarnt (das fällt bei Euch wahrscheinlich nicht mehr auf, da ihr schon länger als ein Jahr loggt)

                    2021-07-01 01:03:00.046 - warn: javascript.0 (21792) States system pmessage messagebox.system.adapter.javascript.0 {"command":"query","message":{"result":[[],[],[]],"ts":1625094180045,"error":null},"from":"system.adapter.influxdb.0","callback":{"message":"select * FROM \"0_userdata.0.Wetterstation.Aussentemperatur\" WHERE time >= 1593554400000000000 AND time <= 1596232799000000000; select * FROM \"0_userdata.0.Wetterstation.Wind_max\" WHERE time >= 1593554400000000000 AND time <= 1596232799000000000; select * FROM \"0_userdata.0.Wetterstation.Regen_Tag\" WHERE time >= 1593554400000000000 AND time <= 1596232799000000000","id":54,"ack":true,"time":1625094180008},"_id":24065089} temps is not defined
                    2021-07-01 01:03:00.049 - warn: javascript.0 (21792) ReferenceError: temps is not defined
                    at Object.cb (script.js.common.Wetterstation_Statistik:401:21)
                    at change (/opt/iobroker/node_modules/iobroker.js-controller/lib/adapter.js:5467:71)
                    at Immediate._onImmediate (/opt/iobroker/node_modules/@iobroker/db-states-redis/lib/states/statesInRedisClient.js:234:37)
                    at processImmediate (internal/timers.js:461:21)
                    

                    hab jetzt mal in Zeile 350 ein

                        let temps = [], wind = [], regen = [];
                    

                    reingepackt, weil er im Skripteditor von Iobroker

                                        temps.length=0;
                                        temps[0]=99999; 
                                        wind.length=0;
                                        wind[0]=99999;
                                        regen.length=0;
                                        regen[0]=99999;
                    

                    (Zeile 401-406) bemängelt hat (not defined).

                    SBorgS Offline
                    SBorgS Offline
                    SBorg
                    Forum Testing Most Active
                    schrieb am zuletzt editiert von
                    #2710

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

                    (das fällt bei Euch wahrscheinlich nicht mehr auf, da ihr schon länger als ein Jahr loggt)

                    Ja, da kommt er nur hin wenn unter einem Jahr noch nichts geloggt wurde. Irgendwie muss da aber auch was gewesen sein (kann mich nur nicht mehr erinnern was), denn in der nächsten Version ist es schon enthalten:

                    //Abfrage der Influx-Datenbank
                            let start, end, result = [], temps = [], wind = [], regen = [];
                    

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

                    1 Antwort Letzte Antwort
                    0
                    • L Offline
                      L Offline
                      Langer
                      schrieb am zuletzt editiert von
                      #2711

                      @SBorg

                      Guten Morgen,

                      in der Wetter Statistik sind mir 2 Sachen aufgefallen, die ich nicht verstehe.

                      Vorweg, bin absoluter Neuling und daher weiß ich nicht ob ich da falsch liege!!

                      Rekordwerte.value.Regenmengemonat ist kleiner als Jahreswerte.Regenmengemonat
                      Rekordwerte.value.Regenmengemonat = 177.8 l/m²
                      Jahreswerte.Regenmengemonat = 253.2 l/m²

                      Jahreswerte.Gradtage_warmeTage = 25 Tage
                      Jahreswerte.Gradtage_Sommertage = 20 Tage
                      Jahreswerte.Gradtage_heisseTage = 6 Tage

                      muss dann Jahreswerte.Gradtage_warmeTage = 25 Tage nicht 26 Tage sein?
                      Meine Frage:

                      Wäre diese Darstellung nicht besser:
                      warmeTage = 6
                      Sommertage = 14
                      heisseTage = 6

                      Weil heisser Tag immer die Temperatur 20°C und 25°C enthält
                      und ein Sommertag immer 20°C enthält.

                      Habe die im Skript bei mir geändert und es funktioniert.

                      Dann noch folgendes:

                      Bei Data Monatsstatistik ist:

                      {"Tiefstwert":4.27,"Hoechstwert":33,"Temp_Durchschnitt":18.11,"Max_Windboe":38.46,"Max_Regenmenge":75.4,"Regenmenge_Monat":253.2,"warme_Tage":26,"Sommertage":12,"heisse_Tage":6,"Frost_Tage":0,"kalte_Tage":0,"Eistage":0,"sehr_kalte_Tage":0}
                      

                      Wunsch:

                      {"Tiefstwert":4.27,“Tiefswert_Datum“:02062021,"Hoechstwert":33,“Hoechstwert_Datum“:20062021,"Temp_Durchschnitt":18.11,"Max_Windboe":38.46,“Max_Windboe_Datum“:30062021,"Max_Regenmenge":75.4,“Max_Regenmenge_Datum“:30062021,"Regenmenge_Monat":253.2,"warme_Tage":14,"Sommertage":6,"heisse_Tage":6,"Frost_Tage":0,"kalte_Tage":0,"Eistage":0,"sehr_kalte_Tage":0}
                      

                      Bei Jahreswerte
                      Regenmengemonat
                      Regenmengetag
                      Temperatur Hoechstwert
                      Temperatur Tiefstwert
                      Trockenperiode
                      Windboe_Max

                      Jeweils das Datum mit ausgeben

                      aktueller_Monat den Tag bzw. Datum anhängen
                      wie bei Jahreswerte

                      Sollten meine Gedanken nicht machbar oder falsch sein "SORRY".

                      MfG
                      Wastl

                      SBorgS 1 Antwort Letzte Antwort
                      0
                      • L Langer

                        @SBorg

                        Guten Morgen,

                        in der Wetter Statistik sind mir 2 Sachen aufgefallen, die ich nicht verstehe.

                        Vorweg, bin absoluter Neuling und daher weiß ich nicht ob ich da falsch liege!!

                        Rekordwerte.value.Regenmengemonat ist kleiner als Jahreswerte.Regenmengemonat
                        Rekordwerte.value.Regenmengemonat = 177.8 l/m²
                        Jahreswerte.Regenmengemonat = 253.2 l/m²

                        Jahreswerte.Gradtage_warmeTage = 25 Tage
                        Jahreswerte.Gradtage_Sommertage = 20 Tage
                        Jahreswerte.Gradtage_heisseTage = 6 Tage

                        muss dann Jahreswerte.Gradtage_warmeTage = 25 Tage nicht 26 Tage sein?
                        Meine Frage:

                        Wäre diese Darstellung nicht besser:
                        warmeTage = 6
                        Sommertage = 14
                        heisseTage = 6

                        Weil heisser Tag immer die Temperatur 20°C und 25°C enthält
                        und ein Sommertag immer 20°C enthält.

                        Habe die im Skript bei mir geändert und es funktioniert.

                        Dann noch folgendes:

                        Bei Data Monatsstatistik ist:

                        {"Tiefstwert":4.27,"Hoechstwert":33,"Temp_Durchschnitt":18.11,"Max_Windboe":38.46,"Max_Regenmenge":75.4,"Regenmenge_Monat":253.2,"warme_Tage":26,"Sommertage":12,"heisse_Tage":6,"Frost_Tage":0,"kalte_Tage":0,"Eistage":0,"sehr_kalte_Tage":0}
                        

                        Wunsch:

                        {"Tiefstwert":4.27,“Tiefswert_Datum“:02062021,"Hoechstwert":33,“Hoechstwert_Datum“:20062021,"Temp_Durchschnitt":18.11,"Max_Windboe":38.46,“Max_Windboe_Datum“:30062021,"Max_Regenmenge":75.4,“Max_Regenmenge_Datum“:30062021,"Regenmenge_Monat":253.2,"warme_Tage":14,"Sommertage":6,"heisse_Tage":6,"Frost_Tage":0,"kalte_Tage":0,"Eistage":0,"sehr_kalte_Tage":0}
                        

                        Bei Jahreswerte
                        Regenmengemonat
                        Regenmengetag
                        Temperatur Hoechstwert
                        Temperatur Tiefstwert
                        Trockenperiode
                        Windboe_Max

                        Jeweils das Datum mit ausgeben

                        aktueller_Monat den Tag bzw. Datum anhängen
                        wie bei Jahreswerte

                        Sollten meine Gedanken nicht machbar oder falsch sein "SORRY".

                        MfG
                        Wastl

                        SBorgS Offline
                        SBorgS Offline
                        SBorg
                        Forum Testing Most Active
                        schrieb am zuletzt editiert von
                        #2712

                        @langer Sorry, dauert bei mir im Moment einfach, null-komma-überhaupt-keine-Zeit... ;)

                        Also...
                        #1: kann ich so nicht nachvollziehen, ist bei mir identisch. Anhand der Regenmenge hast du wohl auch schon einen Monatswechsel hinter dir (einiges wird nur am 01. des Monats berechnet)? Außer dass er ev. mal hängen geblieben ist fällt mir wenig dazu ein.

                        #2: Jepp, ist ein Fehler. Da ich es selbst nicht aktiv nutze wohl bisher noch keinem aufgefallen.
                        Die Darstellung wurde so eingangs von den Nutzern gewünscht, wobei ich allerdings hier auch für die Logik bin, dass bspw. ein heißer Tag auch immer ein Sommertag bzw. warmer Tag ist/war. Wer aber zB. nicht im JS (wg. Updates, fehlender Kenntnisse etc.) direkt ändern möchte, kann sich ja auch ein Blockly erstellen mit neuen DPs erstellen. Sind ja nur 2 Subtraktionen. Bei anderen Meinungen gerne Feedback. Wäre ja nicht so, dass es in Stein gemeißelt ist :)

                        ...und hier darf jeder frei seine Gedanken, Ideen, Vorschläge, Kritik und Meinungen äußern, ich nehme nichts krumm oder persönlich, auch wenn der ein oder andere da zwischen den Zeilen etwas andere herausließt.

                        Deswegen von meiner Seite nur ein freundliches "Nein" zur allgemeinen Datumsthematik (zB. Data Monatsstatistik), weil das dann doppelt wäre. Jeder (also nicht nur auf dieses Projekt bezogen) Datenpunkt enthält immer zwei Timestamps: den sog. TS und LC. TS ist wann er das letzte mal aktualisiert wurde, LC wann der Wert sich das letzte mal änderte.
                        Wenn du also beim Monat zB. einen Tiefstwert von x.xx°C hast, zeigt der LC von alleine auf das Datum wann er geändert wurde.
                        Außer du willst natürlich mit den JSONs etwas anderes anstellen. Eigentlich sind die nur dazu da, dass ich jetzt aktuell Juli 2020 schnell einlesen kann, dann die Vorjahresmonatswerte anzeigen lassen kann und nicht jedes mal eine kpl. Auswertung des Monats durchführen muss (dauert auf einem PI bis zu 2 Minuten).

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

                        NegaleinN L 2 Antworten Letzte Antwort
                        0
                        • SBorgS SBorg

                          @langer Sorry, dauert bei mir im Moment einfach, null-komma-überhaupt-keine-Zeit... ;)

                          Also...
                          #1: kann ich so nicht nachvollziehen, ist bei mir identisch. Anhand der Regenmenge hast du wohl auch schon einen Monatswechsel hinter dir (einiges wird nur am 01. des Monats berechnet)? Außer dass er ev. mal hängen geblieben ist fällt mir wenig dazu ein.

                          #2: Jepp, ist ein Fehler. Da ich es selbst nicht aktiv nutze wohl bisher noch keinem aufgefallen.
                          Die Darstellung wurde so eingangs von den Nutzern gewünscht, wobei ich allerdings hier auch für die Logik bin, dass bspw. ein heißer Tag auch immer ein Sommertag bzw. warmer Tag ist/war. Wer aber zB. nicht im JS (wg. Updates, fehlender Kenntnisse etc.) direkt ändern möchte, kann sich ja auch ein Blockly erstellen mit neuen DPs erstellen. Sind ja nur 2 Subtraktionen. Bei anderen Meinungen gerne Feedback. Wäre ja nicht so, dass es in Stein gemeißelt ist :)

                          ...und hier darf jeder frei seine Gedanken, Ideen, Vorschläge, Kritik und Meinungen äußern, ich nehme nichts krumm oder persönlich, auch wenn der ein oder andere da zwischen den Zeilen etwas andere herausließt.

                          Deswegen von meiner Seite nur ein freundliches "Nein" zur allgemeinen Datumsthematik (zB. Data Monatsstatistik), weil das dann doppelt wäre. Jeder (also nicht nur auf dieses Projekt bezogen) Datenpunkt enthält immer zwei Timestamps: den sog. TS und LC. TS ist wann er das letzte mal aktualisiert wurde, LC wann der Wert sich das letzte mal änderte.
                          Wenn du also beim Monat zB. einen Tiefstwert von x.xx°C hast, zeigt der LC von alleine auf das Datum wann er geändert wurde.
                          Außer du willst natürlich mit den JSONs etwas anderes anstellen. Eigentlich sind die nur dazu da, dass ich jetzt aktuell Juli 2020 schnell einlesen kann, dann die Vorjahresmonatswerte anzeigen lassen kann und nicht jedes mal eine kpl. Auswertung des Monats durchführen muss (dauert auf einem PI bis zu 2 Minuten).

                          NegaleinN Offline
                          NegaleinN Offline
                          Negalein
                          Global Moderator
                          schrieb am zuletzt editiert von
                          #2713

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

                          Die Darstellung wurde so eingangs von den Nutzern gewünscht, wobei ich allerdings hier auch für die Logik bin, dass bspw. ein heißer Tag auch immer ein Sommertag bzw. warmer Tag ist/war.

                          Jep, war ich :grin:

                          wenn ein heißer Tag auch ein Sommertag bzw. warmer Tag ist, dann hat in der Statistik plötzlich der Monat 50 und mehr Tage.
                          ein heißer Tag würde dann zB 3x gerechnet werden.
                          ein Sommertag zB 2x

                          ° Node.js: 20.17.0 NPM: 10.8.2
                          ° Proxmox, Ubuntu 22.04.3 LTS
                          ° Fixer ---> iob fix

                          SBorgS 1 Antwort Letzte Antwort
                          0
                          • SBorgS SBorg

                            @langer Sorry, dauert bei mir im Moment einfach, null-komma-überhaupt-keine-Zeit... ;)

                            Also...
                            #1: kann ich so nicht nachvollziehen, ist bei mir identisch. Anhand der Regenmenge hast du wohl auch schon einen Monatswechsel hinter dir (einiges wird nur am 01. des Monats berechnet)? Außer dass er ev. mal hängen geblieben ist fällt mir wenig dazu ein.

                            #2: Jepp, ist ein Fehler. Da ich es selbst nicht aktiv nutze wohl bisher noch keinem aufgefallen.
                            Die Darstellung wurde so eingangs von den Nutzern gewünscht, wobei ich allerdings hier auch für die Logik bin, dass bspw. ein heißer Tag auch immer ein Sommertag bzw. warmer Tag ist/war. Wer aber zB. nicht im JS (wg. Updates, fehlender Kenntnisse etc.) direkt ändern möchte, kann sich ja auch ein Blockly erstellen mit neuen DPs erstellen. Sind ja nur 2 Subtraktionen. Bei anderen Meinungen gerne Feedback. Wäre ja nicht so, dass es in Stein gemeißelt ist :)

                            ...und hier darf jeder frei seine Gedanken, Ideen, Vorschläge, Kritik und Meinungen äußern, ich nehme nichts krumm oder persönlich, auch wenn der ein oder andere da zwischen den Zeilen etwas andere herausließt.

                            Deswegen von meiner Seite nur ein freundliches "Nein" zur allgemeinen Datumsthematik (zB. Data Monatsstatistik), weil das dann doppelt wäre. Jeder (also nicht nur auf dieses Projekt bezogen) Datenpunkt enthält immer zwei Timestamps: den sog. TS und LC. TS ist wann er das letzte mal aktualisiert wurde, LC wann der Wert sich das letzte mal änderte.
                            Wenn du also beim Monat zB. einen Tiefstwert von x.xx°C hast, zeigt der LC von alleine auf das Datum wann er geändert wurde.
                            Außer du willst natürlich mit den JSONs etwas anderes anstellen. Eigentlich sind die nur dazu da, dass ich jetzt aktuell Juli 2020 schnell einlesen kann, dann die Vorjahresmonatswerte anzeigen lassen kann und nicht jedes mal eine kpl. Auswertung des Monats durchführen muss (dauert auf einem PI bis zu 2 Minuten).

                            L Offline
                            L Offline
                            Langer
                            schrieb am zuletzt editiert von
                            #2714

                            @sborg

                            Als erstes vielen Dank für die Antwort, trotz Deiner knapp bemessenen Zeit.

                            Ich bin und war in mehreren Foren, aber selten so ein super Forum gefunden wie hier, nochmals an allen meine herzlichen Dank!!!
                            Gerade für Neulinge ist es super, Fragen stellen zu können und zu 95% eine Antwort zu bekommen, ohne sich bei der Antwort blöde vorzukommen.

                            Wie Du gelesen hast, bin ich Neuling, daher meine Frage:

                            Was ist bitte "TS" und "LC" und wie bekomme ich diese Werte zu dem Datenpunkt??

                            Vorab vielen Dank für Deine Antwort.

                            MfG
                            Wastl

                            SBorgS 1 Antwort Letzte Antwort
                            0
                            • NegaleinN Negalein

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

                              Die Darstellung wurde so eingangs von den Nutzern gewünscht, wobei ich allerdings hier auch für die Logik bin, dass bspw. ein heißer Tag auch immer ein Sommertag bzw. warmer Tag ist/war.

                              Jep, war ich :grin:

                              wenn ein heißer Tag auch ein Sommertag bzw. warmer Tag ist, dann hat in der Statistik plötzlich der Monat 50 und mehr Tage.
                              ein heißer Tag würde dann zB 3x gerechnet werden.
                              ein Sommertag zB 2x

                              SBorgS Offline
                              SBorgS Offline
                              SBorg
                              Forum Testing Most Active
                              schrieb am zuletzt editiert von SBorg
                              #2715

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

                              Jep, war ich

                              So dunkel hatte ich es noch in Erinnerung, wollte nur niemand fälschlich bezichtigen (oder heißt das züchtigen..?!) :joy:

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

                              1 Antwort Letzte Antwort
                              0
                              • L Langer

                                @sborg

                                Als erstes vielen Dank für die Antwort, trotz Deiner knapp bemessenen Zeit.

                                Ich bin und war in mehreren Foren, aber selten so ein super Forum gefunden wie hier, nochmals an allen meine herzlichen Dank!!!
                                Gerade für Neulinge ist es super, Fragen stellen zu können und zu 95% eine Antwort zu bekommen, ohne sich bei der Antwort blöde vorzukommen.

                                Wie Du gelesen hast, bin ich Neuling, daher meine Frage:

                                Was ist bitte "TS" und "LC" und wie bekomme ich diese Werte zu dem Datenpunkt??

                                Vorab vielen Dank für Deine Antwort.

                                MfG
                                Wastl

                                SBorgS Offline
                                SBorgS Offline
                                SBorg
                                Forum Testing Most Active
                                schrieb am zuletzt editiert von
                                #2716

                                @langer Leider hat es meine SSD mit allem zerbröselt und die Backups, naja...
                                Ein Großteil von 1.5 Jahren Arbeit sind nu wech...

                                Den TS und LC siehst du bspw. direkt in den Objekten (nicht an irgendwelchen Daten orientieren, mein Sys läuft nicht korrekt):
                                Bild 1.png

                                Wenn du dann bspw. in der VIS ein Widget nimmst
                                Bild 3.png
                                sieht es dann so aus:
                                Bild 2.png

                                Die Timestamps kann man dabei mit allem abfragen, wie obiges Beispiel in der VIS, per Javascript, Blockly, Binding, Node-RED...

                                Im Skript kann man die Funktion auch gelegentlich finden (".lc" damit wird die letzte Änderung des Datenpunkts ermittelt):

                                ...new Date(getState(PRE_DP+'.Rekordwerte.value.'+DatenPunkt).lc).getFullYear());
                                

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

                                L 1 Antwort Letzte Antwort
                                0
                                • SBorgS SBorg

                                  @langer Leider hat es meine SSD mit allem zerbröselt und die Backups, naja...
                                  Ein Großteil von 1.5 Jahren Arbeit sind nu wech...

                                  Den TS und LC siehst du bspw. direkt in den Objekten (nicht an irgendwelchen Daten orientieren, mein Sys läuft nicht korrekt):
                                  Bild 1.png

                                  Wenn du dann bspw. in der VIS ein Widget nimmst
                                  Bild 3.png
                                  sieht es dann so aus:
                                  Bild 2.png

                                  Die Timestamps kann man dabei mit allem abfragen, wie obiges Beispiel in der VIS, per Javascript, Blockly, Binding, Node-RED...

                                  Im Skript kann man die Funktion auch gelegentlich finden (".lc" damit wird die letzte Änderung des Datenpunkts ermittelt):

                                  ...new Date(getState(PRE_DP+'.Rekordwerte.value.'+DatenPunkt).lc).getFullYear());
                                  
                                  L Offline
                                  L Offline
                                  Langer
                                  schrieb am zuletzt editiert von
                                  #2717

                                  @sborg

                                  Danke für Deine schnelle Antwort.

                                  Wenn ich mit der Maus über einen Datenpunkt stehe, sehe zB. "Zeitstempel 20.06.2021 01:03:001" und "Letzte Änderung 20.06.2021 01:03:001".

                                  Das heißt doch, um den Tag des Ereignisses zu finden muß ich
                                  ...new Date(getState(PRE_DP+'.Rekordwerte.value.'+DatenPunkt).lc).getFullYear());
                                  minus 1 Tag machen?

                                  Danke nochmals.

                                  MfG
                                  Wastl

                                  SBorgS 1 Antwort Letzte Antwort
                                  0
                                  • L Langer

                                    @sborg

                                    Danke für Deine schnelle Antwort.

                                    Wenn ich mit der Maus über einen Datenpunkt stehe, sehe zB. "Zeitstempel 20.06.2021 01:03:001" und "Letzte Änderung 20.06.2021 01:03:001".

                                    Das heißt doch, um den Tag des Ereignisses zu finden muß ich
                                    ...new Date(getState(PRE_DP+'.Rekordwerte.value.'+DatenPunkt).lc).getFullYear());
                                    minus 1 Tag machen?

                                    Danke nochmals.

                                    MfG
                                    Wastl

                                    SBorgS Offline
                                    SBorgS Offline
                                    SBorg
                                    Forum Testing Most Active
                                    schrieb am zuletzt editiert von
                                    #2718

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

                                    Das heißt doch, um den Tag des Ereignisses zu finden muß ich
                                    ...new Date(getState(PRE_DP+'.Rekordwerte.value.'+DatenPunkt).lc).getFullYear());
                                    minus 1 Tag machen?

                                    Im Grunde ja, nur etwas anders als du wahrscheinlich gerade denkst?
                                    ".getFullYear()" ermittelt aus dem Datums-Objekt das vierstellige Jahr, mehr nicht.
                                    Man muss auch nicht unbedingt einen Tag abziehen, es würden (wenn das Skript um 1:03 Uhr läuft) auch 63 Minuten genügen.
                                    Timestamps (wie auch bei Unix) sind immer Sekunden seit dem 01.01.1970
                                    Um also das Datum korrekt zu berechnen, sähe es so aus:

                                    let Datum_xyz=new Date((getState(hier_Pfad_und_Datenpunktname).lc)-86400);
                                    

                                    86400 = 60sek * 60min * 24h (oder eben ein Tag ;) )

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

                                    L 1 Antwort Letzte Antwort
                                    0
                                    • SBorgS SBorg

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

                                      Das heißt doch, um den Tag des Ereignisses zu finden muß ich
                                      ...new Date(getState(PRE_DP+'.Rekordwerte.value.'+DatenPunkt).lc).getFullYear());
                                      minus 1 Tag machen?

                                      Im Grunde ja, nur etwas anders als du wahrscheinlich gerade denkst?
                                      ".getFullYear()" ermittelt aus dem Datums-Objekt das vierstellige Jahr, mehr nicht.
                                      Man muss auch nicht unbedingt einen Tag abziehen, es würden (wenn das Skript um 1:03 Uhr läuft) auch 63 Minuten genügen.
                                      Timestamps (wie auch bei Unix) sind immer Sekunden seit dem 01.01.1970
                                      Um also das Datum korrekt zu berechnen, sähe es so aus:

                                      let Datum_xyz=new Date((getState(hier_Pfad_und_Datenpunktname).lc)-86400);
                                      

                                      86400 = 60sek * 60min * 24h (oder eben ein Tag ;) )

                                      L Offline
                                      L Offline
                                      Langer
                                      schrieb am zuletzt editiert von
                                      #2719

                                      @sborg

                                      Danke.
                                      Werde mal damit arbeiten und versuchen eine Wetter-Statistik in VIS erstellen.

                                      MfG
                                      Wastl

                                      1 Antwort Letzte Antwort
                                      0
                                      • NegaleinN Offline
                                        NegaleinN Offline
                                        Negalein
                                        Global Moderator
                                        schrieb am zuletzt editiert von
                                        #2720

                                        @SBorg

                                        seit Admin 5 und JS-Controller 3.3.14 hab ich ua. diese Meldung im Log.

                                        simple-api.0 2021-07-08 22:27:02.447	info	State value to set for "javascript.0.Wetterstation.Info.Hitzeindex" has to be type "number" but received type "string"
                                        

                                        Liegt das am Script, am Simple-Api oder am Script-Adapter?
                                        Weißt du das?

                                        ° Node.js: 20.17.0 NPM: 10.8.2
                                        ° Proxmox, Ubuntu 22.04.3 LTS
                                        ° Fixer ---> iob fix

                                        SBorgS 1 Antwort Letzte Antwort
                                        0
                                        • NegaleinN Negalein

                                          @SBorg

                                          seit Admin 5 und JS-Controller 3.3.14 hab ich ua. diese Meldung im Log.

                                          simple-api.0 2021-07-08 22:27:02.447	info	State value to set for "javascript.0.Wetterstation.Info.Hitzeindex" has to be type "number" but received type "string"
                                          

                                          Liegt das am Script, am Simple-Api oder am Script-Adapter?
                                          Weißt du das?

                                          SBorgS Offline
                                          SBorgS Offline
                                          SBorg
                                          Forum Testing Most Active
                                          schrieb am zuletzt editiert von
                                          #2721

                                          @negalein Ist mitunter der JSC 3.3.x
                                          Beim "Hitzeindex" gibt es entweder eine Zahl oder "Null" ("nichts"). Dabei wird anscheinend "Nichts" als String missinterpretiert und da meckert der neue JSC.
                                          Stell mal beim Objekt den Zustandstyp auf gemischt um, sollte es eigentlich beheben:
                                          Bild 1.png

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

                                          da_WoodyD 1 Antwort Letzte Antwort
                                          1
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          764

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe