Skip to content
  • 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
  1. ioBroker Community Home
  2. Deutsch
  3. Entwicklung
  4. Accuweather - stündliche Werte nicht komplett

NEWS

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

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

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

Accuweather - stündliche Werte nicht komplett

Geplant Angeheftet Gesperrt Verschoben Entwicklung
accuweatherhourly datenpunkte
33 Beiträge 2 Kommentatoren 2.4k Aufrufe 2 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.
  • T ThomKast

    @mickym sagte in Accuweather - stündliche Werte nicht komplett:

    @thomkast Das ist gleich mein 2. Flow für Dich - wie willst Du den Datumspunkt gerne genannt haben, habs gerade

    a498de2b-c005-4bc3-b719-4c77930b7c04-image.png

    forcastTime genannt - aber such Dir gerne was anderes aus, dann ändere ich das noch schnell in dem Flow.

    Normalerweise darf da aber gar kein Datum drin stehen, sondern nur eine Zahl

    66010d28-d04f-437c-8e6b-8b03b4f792cd-image.png

    Ja klar. Ich habe die Rolle manuell auf DATE geändert. Dachte es wird dann direkt korrekt dargestellt. Als Rolle STATE steht dann das UNIX UTC Datum/Uhrzeit als Zahl drin.

    mickymM Online
    mickymM Online
    mickym
    Most Active
    schrieb am zuletzt editiert von
    #22

    @thomkast So nun noch ein paar Ergänzungen - weil seit dem admin5 sich einiges geändert hat und in NodeRed hat man das bei den iobroker-out Nodes nicht mitberücksichtigt.

    Bei den ganzen Ordnern fehlen leider die Objekte (rot markiert):

    fc2212fb-098c-4f2c-a10b-87bd030e93d9-image.png

    Deshalb bitte folgendes Skript im Javascript Adapter als Javascript importieren:

    /**
    * Zweck:       Korrigiert übergeordnete Ordnerstrukturen eines Datenpunkts
    * Datum:      07.08.2021
    * Autor:       @fastfoot
    */
     
    //              In den Settings der Javascript-Instanz muss setObject erlaubt sein!!!
     
    let arr = [],
       id = '';
     
    const ids = $('0_userdata.0.*');
    ids.each(idTmp => {
       arr=idTmp.split('.');
       arr.splice(arr.length-1);
       id=arr.join('.');
       if(arr[0] === '0_userdata' || arr[0] === 'alias' || arr[0] === 'mqtt' || arr[0] === 'javascript'){
           correctObject(id, arr);
       }
    })
     
    function correctObject(id,arr){
       if(arr.length === 2) return;
       if(!existsObject(id)){
           let obj = {};
           obj = {
               type: 'folder',
               common:{
                   name: arr[arr.length - 1]
               }
           }
           extendObject(id, obj, e => {
               if (e) log('Fehler beim Schreiben des Objektes: '+ id + ' ' + e);
           })
       }
       arr.splice(arr.length - 1);
       id = arr.join('.');
       correctObject(id, arr);
    }
    

    Dieses Skript musst Du einmal Laufen lassen und immer dann - wenn Du mal den ganzen Openweather Ast löscht.

    43effdba-1509-458c-954a-534a52bc4f8f-image.png

    Sobald das Skript einmal gelaufen ist, dann sind das wieder saubere Folder Objekte:

    5b04b5af-20b3-409e-beeb-a45a9d50a244-image.png

    Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

    1 Antwort Letzte Antwort
    0
    • mickymM mickym

      @thomkast So wenn Du in Deinen bestehenden Flow noch folgende Nodes importierst, dann wird das um neue Datenpunkte mit ausgeschriebenem Datum ergänzt:

      ba98d939-8405-4847-83d4-68001e535641-image.png

      Dieses Mal kannst Du den Code direkt über die Zwischenablage importieren:

      [
         {
             "id": "4d65b9d.07b0148",
             "type": "ioBroker in",
             "z": "918d8a88.bb7cf8",
             "name": "",
             "topic": "0_userdata.0.openweather.hourly.*.dt",
             "payloadType": "value",
             "onlyack": "",
             "func": "all",
             "gap": "",
             "fireOnStart": "false",
             "x": 490,
             "y": 180,
             "wires": [
                 [
                     "2fb2b1d1.03df6e"
                 ]
             ]
         },
         {
             "id": "2fb2b1d1.03df6e",
             "type": "change",
             "z": "918d8a88.bb7cf8",
             "name": "",
             "rules": [
                 {
                     "t": "change",
                     "p": "topic",
                     "pt": "msg",
                     "from": "(.*)\\/dt",
                     "fromt": "re",
                     "to": "$1",
                     "tot": "str"
                 },
                 {
                     "t": "change",
                     "p": "topic",
                     "pt": "msg",
                     "from": "/",
                     "fromt": "str",
                     "to": ".",
                     "tot": "str"
                 },
                 {
                     "t": "set",
                     "p": "topic",
                     "pt": "msg",
                     "to": "topic & '.forcastTime'",
                     "tot": "jsonata"
                 }
             ],
             "action": "",
             "property": "",
             "from": "",
             "to": "",
             "reg": false,
             "x": 770,
             "y": 180,
             "wires": [
                 [
                     "a732a96b.a95798"
                 ]
             ]
         },
         {
             "id": "a732a96b.a95798",
             "type": "change",
             "z": "918d8a88.bb7cf8",
             "name": "",
             "rules": [
                 {
                     "t": "set",
                     "p": "payload",
                     "pt": "msg",
                     "to": "$moment((payload)*1000).locale(\"de\").tz('Europe/Berlin').format('DD.MM.YY [um] HH:mm')",
                     "tot": "jsonata"
                 }
             ],
             "action": "",
             "property": "",
             "from": "",
             "to": "",
             "reg": false,
             "x": 990,
             "y": 180,
             "wires": [
                 [
                     "5014a26.bf5065c"
                 ]
             ]
         },
         {
             "id": "5014a26.bf5065c",
             "type": "ioBroker out",
             "z": "918d8a88.bb7cf8",
             "name": "",
             "topic": "",
             "ack": "true",
             "autoCreate": "true",
             "stateName": "",
             "role": "",
             "payloadType": "string",
             "readonly": "false",
             "stateUnit": "",
             "stateMin": "",
             "stateMax": "",
             "x": 1200,
             "y": 180,
             "wires": []
         }
      ]
      

      Dann bekommst Du die folgenden Nodes noch dazu:

      659ab3ae-2b23-4f99-8eb9-3d8e458e5565-image.png

      Eigentlich müsste es ja forecastTime heißen:

      Musst halt hier nochmal ändern:

      ddb5be3d-68ee-44d8-9343-fca5b0ad100b-image.png

      T Offline
      T Offline
      ThomKast
      schrieb am zuletzt editiert von
      #23

      @mickym
      Also, Du machst mich vollends sprachlos....

      Klappt perfekt und die Daten sehen gut aus. Damit kann ich erst mal meine weiteren Überlegungen anstellen.

      Müsste jetzt nicht noch der inject per CRON automatisiert werden?
      Hattest Du bei OW gelesen wie oft die Daten aktualisiert werden?

      mickymM 1 Antwort Letzte Antwort
      0
      • T ThomKast

        @mickym sagte in Accuweather - stündliche Werte nicht komplett:

        @thomkast Das ist gleich mein 2. Flow für Dich - wie willst Du den Datumspunkt gerne genannt haben, habs gerade

        a498de2b-c005-4bc3-b719-4c77930b7c04-image.png

        forcastTime genannt - aber such Dir gerne was anderes aus, dann ändere ich das noch schnell in dem Flow.

        Normalerweise darf da aber gar kein Datum drin stehen, sondern nur eine Zahl

        66010d28-d04f-437c-8e6b-8b03b4f792cd-image.png

        Ja klar. Ich habe die Rolle manuell auf DATE geändert. Dachte es wird dann direkt korrekt dargestellt. Als Rolle STATE steht dann das UNIX UTC Datum/Uhrzeit als Zahl drin.

        mickymM Online
        mickymM Online
        mickym
        Most Active
        schrieb am zuletzt editiert von
        #24

        @thomkast Und damit Du wenn alles klappt nicht immer auf die Inject - Node drücken musst - öffnest Du die Inject Node einfach und gibst unten an, in welchen Zeitintervallen die Openweather API aufgerufen werden soll:

        69d62f01-9077-42ee-b9c9-7fb56d64a9c2-image.png

        Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

        T 1 Antwort Letzte Antwort
        0
        • T ThomKast

          @mickym
          Also, Du machst mich vollends sprachlos....

          Klappt perfekt und die Daten sehen gut aus. Damit kann ich erst mal meine weiteren Überlegungen anstellen.

          Müsste jetzt nicht noch der inject per CRON automatisiert werden?
          Hattest Du bei OW gelesen wie oft die Daten aktualisiert werden?

          mickymM Online
          mickymM Online
          mickym
          Most Active
          schrieb am zuletzt editiert von mickym
          #25

          @thomkast sagte in Accuweather - stündliche Werte nicht komplett:

          @mickym
          Also, Du machst mich vollends sprachlos....

          Klappt perfekt und die Daten sehen gut aus. Damit kann ich erst mal meine weiteren Überlegungen anstellen.

          Müsste jetzt nicht noch der inject per CRON automatisiert werden?
          Hattest Du bei OW gelesen wie oft die Daten aktualisiert werden?

          Hab ich Dir gerade geschrieben, in der Inject-Node kannst Du selbst das Intervall bestimmen, wie oft dieses automatisch abruft. Ich machs alle 10 Minuten - aber bei 1000 Aufrufen/Tag solltest Du nun keine Probleme mehr haben. 😉

          Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

          1 Antwort Letzte Antwort
          0
          • mickymM mickym

            @thomkast Und damit Du wenn alles klappt nicht immer auf die Inject - Node drücken musst - öffnest Du die Inject Node einfach und gibst unten an, in welchen Zeitintervallen die Openweather API aufgerufen werden soll:

            69d62f01-9077-42ee-b9c9-7fb56d64a9c2-image.png

            T Offline
            T Offline
            ThomKast
            schrieb am zuletzt editiert von
            #26

            @mickym
            Oh cool! Sogar mit "Intervall zwischen Uhrzeiten".

            Vielleicht noch den eigentlichen UseCase zum Ende der Umsetzung :man-facepalming: ...

            Wir haben eine Wärmepumpe erhalten, die über SGready den Wasserspeicher um 5K überhitzen kann. Wenn also viel PV-Überschuss zur Verfügung steht, kann der Speicher zusätzlich aufgeheizt werden und damit bei späterer Nutzung Energie gespart werden.
            Das Problem ist nur, wenn ich vom reinen Einspeisewert ausgehe, dann kommt es vor, dass die Einspeisemenge einbricht, die Wärmepumpe aber dennoch mind. 10 Minuten läuft und und für diese Dauer dann Strom zugekauft werden muss.
            Sofern die OpenWeather-UVindex-Werte einigermaßen passen, könnte erst ab einem entsprechend hohen Wert das SGready-Signal Verwendung finden.

            Vielleicht hilft Deine Umsetzung ja auch noch anderen der Community. Mir hast Du auf alle perfekt weitergeholfen.
            Schaue mir die Tage mal node-red und Deine Umsetzung tiefer an. Dann würde ich mich vielleicht gerne noch mal bei Dir melden.

            Für heute meinen herzlichen Dank für Deine Hilfe. 🎆

            mickymM 2 Antworten Letzte Antwort
            0
            • T ThomKast

              @mickym
              Oh cool! Sogar mit "Intervall zwischen Uhrzeiten".

              Vielleicht noch den eigentlichen UseCase zum Ende der Umsetzung :man-facepalming: ...

              Wir haben eine Wärmepumpe erhalten, die über SGready den Wasserspeicher um 5K überhitzen kann. Wenn also viel PV-Überschuss zur Verfügung steht, kann der Speicher zusätzlich aufgeheizt werden und damit bei späterer Nutzung Energie gespart werden.
              Das Problem ist nur, wenn ich vom reinen Einspeisewert ausgehe, dann kommt es vor, dass die Einspeisemenge einbricht, die Wärmepumpe aber dennoch mind. 10 Minuten läuft und und für diese Dauer dann Strom zugekauft werden muss.
              Sofern die OpenWeather-UVindex-Werte einigermaßen passen, könnte erst ab einem entsprechend hohen Wert das SGready-Signal Verwendung finden.

              Vielleicht hilft Deine Umsetzung ja auch noch anderen der Community. Mir hast Du auf alle perfekt weitergeholfen.
              Schaue mir die Tage mal node-red und Deine Umsetzung tiefer an. Dann würde ich mich vielleicht gerne noch mal bei Dir melden.

              Für heute meinen herzlichen Dank für Deine Hilfe. 🎆

              mickymM Online
              mickymM Online
              mickym
              Most Active
              schrieb am zuletzt editiert von mickym
              #27

              @thomkast sagte in Accuweather - stündliche Werte nicht komplett:

              Vielleicht hilft Deine Umsetzung ja auch noch anderen der Community. Mir hast Du auf alle perfekt weitergeholfen.
              Schaue mir die Tage mal node-red und Deine Umsetzung tiefer an. Dann würde ich mich vielleicht gerne noch mal bei Dir melden.

              Für heute meinen herzlichen Dank für Deine Hilfe. 🎆

              Ich hab Dir gerne weitergeholfen und vielleicht bist Du nun jemand (oder wirst es), der erkennt, was für ein tolles Tool Node Red ist, gerade wenn man in der Programmierung nicht so bewandert ist, sondern sich mehr auf die Logik konzentriert. Übrigens hilft Dir vielleicht auch der Clouds Wert - also der Bedeckungsgrad.

              Ich nutz den bei meiner Visualisierung bei Tag hellblauer oder grauer Hintergrund. 😉

              36a1a500-5504-46f8-91fa-f4e4e11bbef7-image.png

              Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

              1 Antwort Letzte Antwort
              0
              • T ThomKast

                @mickym
                Oh cool! Sogar mit "Intervall zwischen Uhrzeiten".

                Vielleicht noch den eigentlichen UseCase zum Ende der Umsetzung :man-facepalming: ...

                Wir haben eine Wärmepumpe erhalten, die über SGready den Wasserspeicher um 5K überhitzen kann. Wenn also viel PV-Überschuss zur Verfügung steht, kann der Speicher zusätzlich aufgeheizt werden und damit bei späterer Nutzung Energie gespart werden.
                Das Problem ist nur, wenn ich vom reinen Einspeisewert ausgehe, dann kommt es vor, dass die Einspeisemenge einbricht, die Wärmepumpe aber dennoch mind. 10 Minuten läuft und und für diese Dauer dann Strom zugekauft werden muss.
                Sofern die OpenWeather-UVindex-Werte einigermaßen passen, könnte erst ab einem entsprechend hohen Wert das SGready-Signal Verwendung finden.

                Vielleicht hilft Deine Umsetzung ja auch noch anderen der Community. Mir hast Du auf alle perfekt weitergeholfen.
                Schaue mir die Tage mal node-red und Deine Umsetzung tiefer an. Dann würde ich mich vielleicht gerne noch mal bei Dir melden.

                Für heute meinen herzlichen Dank für Deine Hilfe. 🎆

                mickymM Online
                mickymM Online
                mickym
                Most Active
                schrieb am zuletzt editiert von mickym
                #28

                @thomkast Ich hab noch bissi nachgedacht - bei uns ist leider nicht so schönes Wetter in nächster Zeit.

                Ich habe mal mit folgendem Flow - in der 3 Tagesvorhersage rausgefiltert, ab wann der UV Index über 1 ist - den Wert kann man natürlich dann später viel höher setzen

                Mit dem folgenden Flow filterst Du die Zeiten dann aus:

                28af1e07-700c-46df-b90a-3ba4fab30439-image.png

                [
                   {
                       "id": "2920aadc.0badc6",
                       "type": "ioBroker in",
                       "z": "40d29c16.113a14",
                       "name": "",
                       "topic": "0_userdata.0.openweather.hourly.*.uvi",
                       "payloadType": "value",
                       "onlyack": "",
                       "func": "all",
                       "gap": "",
                       "fireOnStart": "false",
                       "x": 190,
                       "y": 320,
                       "wires": [
                           [
                               "111ae666.75877a"
                           ]
                       ]
                   },
                   {
                       "id": "111ae666.75877a",
                       "type": "change",
                       "z": "40d29c16.113a14",
                       "name": "Prepare Topic & setze msg.uvi",
                       "rules": [
                           {
                               "t": "change",
                               "p": "topic",
                               "pt": "msg",
                               "from": "(.*)\\/uvi",
                               "fromt": "re",
                               "to": "$1",
                               "tot": "str"
                           },
                           {
                               "t": "change",
                               "p": "topic",
                               "pt": "msg",
                               "from": "/",
                               "fromt": "str",
                               "to": ".",
                               "tot": "str"
                           },
                           {
                               "t": "set",
                               "p": "topic",
                               "pt": "msg",
                               "to": "topic & '.forcastTime'",
                               "tot": "jsonata"
                           },
                           {
                               "t": "move",
                               "p": "payload",
                               "pt": "msg",
                               "to": "uvi",
                               "tot": "msg"
                           }
                       ],
                       "action": "",
                       "property": "",
                       "from": "",
                       "to": "",
                       "reg": false,
                       "x": 510,
                       "y": 320,
                       "wires": [
                           [
                               "becb8167.7d6bd"
                           ]
                       ]
                   },
                   {
                       "id": "becb8167.7d6bd",
                       "type": "switch",
                       "z": "40d29c16.113a14",
                       "name": "Filter UVI",
                       "property": "uvi",
                       "propertyType": "msg",
                       "rules": [
                           {
                               "t": "gt",
                               "v": "1",
                               "vt": "num"
                           }
                       ],
                       "checkall": "true",
                       "repair": false,
                       "outputs": 1,
                       "x": 740,
                       "y": 320,
                       "wires": [
                           [
                               "746d1820.319268"
                           ]
                       ]
                   },
                   {
                       "id": "9b0fa59a.28c568",
                       "type": "debug",
                       "z": "40d29c16.113a14",
                       "name": "",
                       "active": true,
                       "tosidebar": true,
                       "console": false,
                       "tostatus": false,
                       "complete": "true",
                       "targetType": "full",
                       "statusVal": "",
                       "statusType": "auto",
                       "x": 1310,
                       "y": 380,
                       "wires": []
                   },
                   {
                       "id": "746d1820.319268",
                       "type": "ioBroker get",
                       "z": "40d29c16.113a14",
                       "name": "",
                       "topic": "",
                       "attrname": "forecastTime",
                       "payloadType": "value",
                       "x": 920,
                       "y": 320,
                       "wires": [
                           [
                               "b380af18.9c4b6"
                           ]
                       ]
                   },
                   {
                       "id": "b380af18.9c4b6",
                       "type": "change",
                       "z": "40d29c16.113a14",
                       "name": "Lösche nicht benötigte Eigenschaften",
                       "rules": [
                           {
                               "t": "delete",
                               "p": "acknowledged",
                               "pt": "msg"
                           },
                           {
                               "t": "delete",
                               "p": "timestamp",
                               "pt": "msg"
                           },
                           {
                               "t": "delete",
                               "p": "lastchange",
                               "pt": "msg"
                           },
                           {
                               "t": "delete",
                               "p": "from",
                               "pt": "msg"
                           }
                       ],
                       "action": "",
                       "property": "",
                       "from": "",
                       "to": "",
                       "reg": false,
                       "x": 1170,
                       "y": 320,
                       "wires": [
                           [
                               "9b0fa59a.28c568"
                           ]
                       ]
                   }
                ]
                

                Die Debug Node spukt Dir dann den UVI Index aus und wann das ist. Du wirst den Wert zum herausfiltern natürlich viel höher machen - aber das wird wohl auch alles erst bei besserem Wetter relevant sein.

                04946a01-f6b6-45ea-9bc8-3947dc8536e6-image.png

                Die Indexnr. (also Ordnernummer) verschiebt sich ja, da das zurückgelieferte Array ja immer in Stundenabstand vom aktuellen Abrufzeitpunkt abhängt.

                Andererseits ist das aber auch Praktisch - weil im Ordner 0 immer der ForeCast der aktuellen Stunde enthalten ist und in Ordner 1 der in einer Stunde, sodass man auch ohne Filter eigentlich nur diese beiden Werte braucht um direkt eine Steuerung anzustossen.

                Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                T 1 Antwort Letzte Antwort
                0
                • mickymM mickym

                  @thomkast Ich hab noch bissi nachgedacht - bei uns ist leider nicht so schönes Wetter in nächster Zeit.

                  Ich habe mal mit folgendem Flow - in der 3 Tagesvorhersage rausgefiltert, ab wann der UV Index über 1 ist - den Wert kann man natürlich dann später viel höher setzen

                  Mit dem folgenden Flow filterst Du die Zeiten dann aus:

                  28af1e07-700c-46df-b90a-3ba4fab30439-image.png

                  [
                     {
                         "id": "2920aadc.0badc6",
                         "type": "ioBroker in",
                         "z": "40d29c16.113a14",
                         "name": "",
                         "topic": "0_userdata.0.openweather.hourly.*.uvi",
                         "payloadType": "value",
                         "onlyack": "",
                         "func": "all",
                         "gap": "",
                         "fireOnStart": "false",
                         "x": 190,
                         "y": 320,
                         "wires": [
                             [
                                 "111ae666.75877a"
                             ]
                         ]
                     },
                     {
                         "id": "111ae666.75877a",
                         "type": "change",
                         "z": "40d29c16.113a14",
                         "name": "Prepare Topic & setze msg.uvi",
                         "rules": [
                             {
                                 "t": "change",
                                 "p": "topic",
                                 "pt": "msg",
                                 "from": "(.*)\\/uvi",
                                 "fromt": "re",
                                 "to": "$1",
                                 "tot": "str"
                             },
                             {
                                 "t": "change",
                                 "p": "topic",
                                 "pt": "msg",
                                 "from": "/",
                                 "fromt": "str",
                                 "to": ".",
                                 "tot": "str"
                             },
                             {
                                 "t": "set",
                                 "p": "topic",
                                 "pt": "msg",
                                 "to": "topic & '.forcastTime'",
                                 "tot": "jsonata"
                             },
                             {
                                 "t": "move",
                                 "p": "payload",
                                 "pt": "msg",
                                 "to": "uvi",
                                 "tot": "msg"
                             }
                         ],
                         "action": "",
                         "property": "",
                         "from": "",
                         "to": "",
                         "reg": false,
                         "x": 510,
                         "y": 320,
                         "wires": [
                             [
                                 "becb8167.7d6bd"
                             ]
                         ]
                     },
                     {
                         "id": "becb8167.7d6bd",
                         "type": "switch",
                         "z": "40d29c16.113a14",
                         "name": "Filter UVI",
                         "property": "uvi",
                         "propertyType": "msg",
                         "rules": [
                             {
                                 "t": "gt",
                                 "v": "1",
                                 "vt": "num"
                             }
                         ],
                         "checkall": "true",
                         "repair": false,
                         "outputs": 1,
                         "x": 740,
                         "y": 320,
                         "wires": [
                             [
                                 "746d1820.319268"
                             ]
                         ]
                     },
                     {
                         "id": "9b0fa59a.28c568",
                         "type": "debug",
                         "z": "40d29c16.113a14",
                         "name": "",
                         "active": true,
                         "tosidebar": true,
                         "console": false,
                         "tostatus": false,
                         "complete": "true",
                         "targetType": "full",
                         "statusVal": "",
                         "statusType": "auto",
                         "x": 1310,
                         "y": 380,
                         "wires": []
                     },
                     {
                         "id": "746d1820.319268",
                         "type": "ioBroker get",
                         "z": "40d29c16.113a14",
                         "name": "",
                         "topic": "",
                         "attrname": "forecastTime",
                         "payloadType": "value",
                         "x": 920,
                         "y": 320,
                         "wires": [
                             [
                                 "b380af18.9c4b6"
                             ]
                         ]
                     },
                     {
                         "id": "b380af18.9c4b6",
                         "type": "change",
                         "z": "40d29c16.113a14",
                         "name": "Lösche nicht benötigte Eigenschaften",
                         "rules": [
                             {
                                 "t": "delete",
                                 "p": "acknowledged",
                                 "pt": "msg"
                             },
                             {
                                 "t": "delete",
                                 "p": "timestamp",
                                 "pt": "msg"
                             },
                             {
                                 "t": "delete",
                                 "p": "lastchange",
                                 "pt": "msg"
                             },
                             {
                                 "t": "delete",
                                 "p": "from",
                                 "pt": "msg"
                             }
                         ],
                         "action": "",
                         "property": "",
                         "from": "",
                         "to": "",
                         "reg": false,
                         "x": 1170,
                         "y": 320,
                         "wires": [
                             [
                                 "9b0fa59a.28c568"
                             ]
                         ]
                     }
                  ]
                  

                  Die Debug Node spukt Dir dann den UVI Index aus und wann das ist. Du wirst den Wert zum herausfiltern natürlich viel höher machen - aber das wird wohl auch alles erst bei besserem Wetter relevant sein.

                  04946a01-f6b6-45ea-9bc8-3947dc8536e6-image.png

                  Die Indexnr. (also Ordnernummer) verschiebt sich ja, da das zurückgelieferte Array ja immer in Stundenabstand vom aktuellen Abrufzeitpunkt abhängt.

                  Andererseits ist das aber auch Praktisch - weil im Ordner 0 immer der ForeCast der aktuellen Stunde enthalten ist und in Ordner 1 der in einer Stunde, sodass man auch ohne Filter eigentlich nur diese beiden Werte braucht um direkt eine Steuerung anzustossen.

                  T Offline
                  T Offline
                  ThomKast
                  schrieb am zuletzt editiert von
                  #29

                  @mickym
                  Verstehe ich dank Deiner Beschreibung. In den Nodes muss ich mir das in Ruhe anarbeiten...

                  Für die Ansteuerung des SGready-Relais werde ich die UVindex-Werte aus 0h und 1h verwenden, also ähnlich wie in Deinem Ansatz. Da die Wärmepumpe nach einem Start mindestens 10 Minuten läuft und im Standardbetrieb ~ 2.8 kW zieht, macht es mMn. Sinn folgende Logik näher zu betrachten:

                  • Wenn Minuten (akt.Zeit) zwischen 0 und 45 -> prüfe UVi-Schwellwert gegen UVi von 0h
                  • Wenn Minuten (akt.Zeit) zwischen 46 und 59 -> prüfe UVi-Schwellwert gegen Mittelwert UVi von 0h und 1h
                  • zum Zeitpunkt der Ermittlung des UVi-Schwellwerts, müsste dann der Wert der PV-Einspeisung >= 3.0 kW sein (PV-Schwellwert)
                  • Wenn beides eingetreten ist, dann ist das SGready-Relais zu aktivieren
                  • Sobald entweder UVi oder PV-Einspeisung unter den jeweiligen Schwellwert fällt, ist das SGready-Relais zu deaktivieren

                  Um diese Logik zu prüfen werde ich die Werte in grafana darstellen. Mal schauen, ob sich ein sinnvoller UVi-Schwellwert finden lässt.

                  Wobei, noch eine Anmerkung: So wie ich es verstanden habe, ist der UVindex als 100'stel dargestellt und dürfte nie größer 1 werden. "0.15" würde damit 15% der maximal möglichen Sonneneinstrahlung entsprechen.
                  Da die Werte "UVindex" und "Clouds" in grafana den Werten der PV-Produktion gegenübergestellt werden sollen, wäre es nötig die beiden Werte zu vereinheitlich. Denn "Clouds" wiederum läuft von "0" bis "100" und stellt die Bewölkung direkt in "%" dar. Diese Anpassung führe ich dann in grafana herbei.

                  Muss mal über mehrere Tage die Daten sammeln und betrachten. Melde mich dann gerne wieder mit einem ersten Eindruck.

                  Du bist doch Profi im Forum ;-). Macht es Sinn, die weiteren Details in diesem Post fortzuführen, oder sollte der Post thematisch in einer anderen Gruppe/Kategorie geführt werden ??.??

                  mickymM 2 Antworten Letzte Antwort
                  0
                  • T ThomKast

                    @mickym
                    Verstehe ich dank Deiner Beschreibung. In den Nodes muss ich mir das in Ruhe anarbeiten...

                    Für die Ansteuerung des SGready-Relais werde ich die UVindex-Werte aus 0h und 1h verwenden, also ähnlich wie in Deinem Ansatz. Da die Wärmepumpe nach einem Start mindestens 10 Minuten läuft und im Standardbetrieb ~ 2.8 kW zieht, macht es mMn. Sinn folgende Logik näher zu betrachten:

                    • Wenn Minuten (akt.Zeit) zwischen 0 und 45 -> prüfe UVi-Schwellwert gegen UVi von 0h
                    • Wenn Minuten (akt.Zeit) zwischen 46 und 59 -> prüfe UVi-Schwellwert gegen Mittelwert UVi von 0h und 1h
                    • zum Zeitpunkt der Ermittlung des UVi-Schwellwerts, müsste dann der Wert der PV-Einspeisung >= 3.0 kW sein (PV-Schwellwert)
                    • Wenn beides eingetreten ist, dann ist das SGready-Relais zu aktivieren
                    • Sobald entweder UVi oder PV-Einspeisung unter den jeweiligen Schwellwert fällt, ist das SGready-Relais zu deaktivieren

                    Um diese Logik zu prüfen werde ich die Werte in grafana darstellen. Mal schauen, ob sich ein sinnvoller UVi-Schwellwert finden lässt.

                    Wobei, noch eine Anmerkung: So wie ich es verstanden habe, ist der UVindex als 100'stel dargestellt und dürfte nie größer 1 werden. "0.15" würde damit 15% der maximal möglichen Sonneneinstrahlung entsprechen.
                    Da die Werte "UVindex" und "Clouds" in grafana den Werten der PV-Produktion gegenübergestellt werden sollen, wäre es nötig die beiden Werte zu vereinheitlich. Denn "Clouds" wiederum läuft von "0" bis "100" und stellt die Bewölkung direkt in "%" dar. Diese Anpassung führe ich dann in grafana herbei.

                    Muss mal über mehrere Tage die Daten sammeln und betrachten. Melde mich dann gerne wieder mit einem ersten Eindruck.

                    Du bist doch Profi im Forum ;-). Macht es Sinn, die weiteren Details in diesem Post fortzuführen, oder sollte der Post thematisch in einer anderen Gruppe/Kategorie geführt werden ??.??

                    mickymM Online
                    mickymM Online
                    mickym
                    Most Active
                    schrieb am zuletzt editiert von mickym
                    #30

                    @thomkast

                    Lass mich mal folgende Gedanken zu Deinem Post - letztlich kenne ich erst seit gestern abend zum Schluß den Use Case und ich bin noch wie vor der Meinung, dass Du mit Forecast Solar ggf. besser fährst, da es Dir die ganze Rechnerei abnimmt und im Prinzip Dir den zu erwartenden Wert der PV Einspeisung fix und fertig liefert und Du damit viel schneller zum Ziel kommst, zudem ich nicht immer von der Genauigkeit der globalen Wetterdienste begeistert bin.
                    Bislang hast Du ja nicht gesagt, was nicht funktioniert hat.

                    Ich hatte Dir ja noch eine kleine Anleitung hier geschickt https://forum.iobroker.net/topic/48993/accuweather-stündliche-werte-nicht-komplett/23?_=1635944835645 und das geht sogar ohne API-Key.

                    Wobei, noch eine Anmerkung: So wie ich es verstanden habe, ist der UVindex als 100'stel dargestellt und dürfte nie größer 1 werden. "0.15" würde damit 15% der maximal möglichen Sonneneinstrahlung entsprechen.

                    Da die Werte "UVindex" und "Clouds" in grafana den Werten der PV-Produktion gegenübergestellt werden sollen, wäre es nötig die beiden Werte zu vereinheitlich. Denn "Clouds" wiederum läuft von "0" bis "100" und stellt die Bewölkung direkt in "%" dar. Diese Anpassung führe ich dann in grafana herbei.

                    Nein der UV Index richtet sich genau nach der offiziellen Skala:
                    https://de.wikipedia.org/wiki/UV-Index
                    Wenn Du also mal schaust in diesem Wikipedia Artikel - (z. Bsp. Berlin) wird in unseren Breitengraden im Winter selten ein UV-Index über 1 erreicht. Selbst wenn die Sonne scheint - da der Sonnenstand hier mit eine Rolle spielt. Übrigens gabs in dem Screenshot - heute einen UVI von über 1 (also 1,1 und 1,17 😉 )

                    63aa6963-d161-409a-8272-9a6531c8ff3c-image.png

                    Falls die PV-Einspeisung also mit dem UVI direkt korreliert, wirst Du damit nun im Winter ein Problem haben.

                    Für die Ansteuerung des SGready-Relais werde ich die UVindex-Werte aus 0h und 1h verwenden, also ähnlich wie in Deinem Ansatz. Da die Wärmepumpe nach einem Start mindestens 10 Minuten läuft und im Standardbetrieb ~ 2.8 kW zieht, macht es mMn. Sinn folgende Logik näher zu betrachten:

                    Wenn Minuten (akt.Zeit) zwischen 0 und 45 -> prüfe UVi-Schwellwert gegen UVi von 0h
                    Wenn Minuten (akt.Zeit) zwischen 46 und 59 -> prüfe UVi-Schwellwert gegen Mittelwert UVi von 0h und 1h

                    Das hast Du zwar in meinen Augen alles richtig verstanden, aber ich würde hier nicht mit Minuten rechnen. Du brauchst ja sowieso eine gewisse Hysterese.

                    Gesetzt den Fall (Du schwenkst nicht doch noch auf Forecast Solar um 😉 ) hätte ich anstelle der Stündlichen Vorhersage oder zusätzlich zur stündlichen Vorhersage noch current mitgenommen.
                    Nach in dem Link https://api.openweathermap.org/data/2.5/onecall?lat=xxxxx&lon=yyyyy&exclude=minutely,current,daily,alerts&appid=zzzzz&units=metric&lang=de current nicht ausgeschlossen.

                    Das heißt Du bekommst den Trigger einfach genau zu dem Zeitpunkt, in dem Du die API aufrufst. Dann kann man hourly 0 und hourly 1 noch mithinzuziehen, um quasi eine Fehlschaltung zu vermeiden. Du musst ja sowieso eine gewisse Hysterese einbauen, damit am Schwellenwert nicht hin und hergeschaltet wird. Wie gesagt ich halt deshalb Forcast Solar für geeigneter.

                    Du bekommst letztlich für den Tag solche blauen Kurve und kannst dann überlegen, ob es Sinn macht zu reagieren oder auch Peaks zu ignorieren:

                    6a193d40-3506-4f99-b793-b94c6e150247-image.png

                    Zuletzt:

                    Du bist doch Profi im Forum ;-). Macht es Sinn, die weiteren Details in diesem Post fortzuführen, oder sollte der Post thematisch in einer anderen Gruppe/Kategorie geführt werden ??.??

                    Na ja. 😉 - Fürs erste war der Threadtitel ja ganz richtig. Ich denke aber, dass Du vielleicht noch am Anfang stehst und ja ich würde wahrscheinlich einen neuen Thread aufmachen, wobei ich im Titel die Vorhersage der Sonneneinstrahlung mit der PV Analge - sprich Deinen UseCase beschreiben würde. Da gibts sicher noch eine Menge Input. Ich kann da selbst nicht mitreden, da ich in einer Mietwohnung ohne Solarpanelen wohne. 😉
                    Aber ich helfe eben gerne die Logik bei verschiedenen Problemen insbesondere mit NodeRed zu implementieren - da ich das Tool toll finde und es mir Spaß macht mit Leuten hier Probleme gemeinsam zu lösen. Sofern ich das kann. Ich nutze ja auch nicht alles - Ich habe zum Beispiel kein Grafana, sondern nutze noch flot mit mySQL usw. Da kann ich also weniger helfen.

                    Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                    mickymM 1 Antwort Letzte Antwort
                    0
                    • mickymM mickym

                      @thomkast

                      Lass mich mal folgende Gedanken zu Deinem Post - letztlich kenne ich erst seit gestern abend zum Schluß den Use Case und ich bin noch wie vor der Meinung, dass Du mit Forecast Solar ggf. besser fährst, da es Dir die ganze Rechnerei abnimmt und im Prinzip Dir den zu erwartenden Wert der PV Einspeisung fix und fertig liefert und Du damit viel schneller zum Ziel kommst, zudem ich nicht immer von der Genauigkeit der globalen Wetterdienste begeistert bin.
                      Bislang hast Du ja nicht gesagt, was nicht funktioniert hat.

                      Ich hatte Dir ja noch eine kleine Anleitung hier geschickt https://forum.iobroker.net/topic/48993/accuweather-stündliche-werte-nicht-komplett/23?_=1635944835645 und das geht sogar ohne API-Key.

                      Wobei, noch eine Anmerkung: So wie ich es verstanden habe, ist der UVindex als 100'stel dargestellt und dürfte nie größer 1 werden. "0.15" würde damit 15% der maximal möglichen Sonneneinstrahlung entsprechen.

                      Da die Werte "UVindex" und "Clouds" in grafana den Werten der PV-Produktion gegenübergestellt werden sollen, wäre es nötig die beiden Werte zu vereinheitlich. Denn "Clouds" wiederum läuft von "0" bis "100" und stellt die Bewölkung direkt in "%" dar. Diese Anpassung führe ich dann in grafana herbei.

                      Nein der UV Index richtet sich genau nach der offiziellen Skala:
                      https://de.wikipedia.org/wiki/UV-Index
                      Wenn Du also mal schaust in diesem Wikipedia Artikel - (z. Bsp. Berlin) wird in unseren Breitengraden im Winter selten ein UV-Index über 1 erreicht. Selbst wenn die Sonne scheint - da der Sonnenstand hier mit eine Rolle spielt. Übrigens gabs in dem Screenshot - heute einen UVI von über 1 (also 1,1 und 1,17 😉 )

                      63aa6963-d161-409a-8272-9a6531c8ff3c-image.png

                      Falls die PV-Einspeisung also mit dem UVI direkt korreliert, wirst Du damit nun im Winter ein Problem haben.

                      Für die Ansteuerung des SGready-Relais werde ich die UVindex-Werte aus 0h und 1h verwenden, also ähnlich wie in Deinem Ansatz. Da die Wärmepumpe nach einem Start mindestens 10 Minuten läuft und im Standardbetrieb ~ 2.8 kW zieht, macht es mMn. Sinn folgende Logik näher zu betrachten:

                      Wenn Minuten (akt.Zeit) zwischen 0 und 45 -> prüfe UVi-Schwellwert gegen UVi von 0h
                      Wenn Minuten (akt.Zeit) zwischen 46 und 59 -> prüfe UVi-Schwellwert gegen Mittelwert UVi von 0h und 1h

                      Das hast Du zwar in meinen Augen alles richtig verstanden, aber ich würde hier nicht mit Minuten rechnen. Du brauchst ja sowieso eine gewisse Hysterese.

                      Gesetzt den Fall (Du schwenkst nicht doch noch auf Forecast Solar um 😉 ) hätte ich anstelle der Stündlichen Vorhersage oder zusätzlich zur stündlichen Vorhersage noch current mitgenommen.
                      Nach in dem Link https://api.openweathermap.org/data/2.5/onecall?lat=xxxxx&lon=yyyyy&exclude=minutely,current,daily,alerts&appid=zzzzz&units=metric&lang=de current nicht ausgeschlossen.

                      Das heißt Du bekommst den Trigger einfach genau zu dem Zeitpunkt, in dem Du die API aufrufst. Dann kann man hourly 0 und hourly 1 noch mithinzuziehen, um quasi eine Fehlschaltung zu vermeiden. Du musst ja sowieso eine gewisse Hysterese einbauen, damit am Schwellenwert nicht hin und hergeschaltet wird. Wie gesagt ich halt deshalb Forcast Solar für geeigneter.

                      Du bekommst letztlich für den Tag solche blauen Kurve und kannst dann überlegen, ob es Sinn macht zu reagieren oder auch Peaks zu ignorieren:

                      6a193d40-3506-4f99-b793-b94c6e150247-image.png

                      Zuletzt:

                      Du bist doch Profi im Forum ;-). Macht es Sinn, die weiteren Details in diesem Post fortzuführen, oder sollte der Post thematisch in einer anderen Gruppe/Kategorie geführt werden ??.??

                      Na ja. 😉 - Fürs erste war der Threadtitel ja ganz richtig. Ich denke aber, dass Du vielleicht noch am Anfang stehst und ja ich würde wahrscheinlich einen neuen Thread aufmachen, wobei ich im Titel die Vorhersage der Sonneneinstrahlung mit der PV Analge - sprich Deinen UseCase beschreiben würde. Da gibts sicher noch eine Menge Input. Ich kann da selbst nicht mitreden, da ich in einer Mietwohnung ohne Solarpanelen wohne. 😉
                      Aber ich helfe eben gerne die Logik bei verschiedenen Problemen insbesondere mit NodeRed zu implementieren - da ich das Tool toll finde und es mir Spaß macht mit Leuten hier Probleme gemeinsam zu lösen. Sofern ich das kann. Ich nutze ja auch nicht alles - Ich habe zum Beispiel kein Grafana, sondern nutze noch flot mit mySQL usw. Da kann ich also weniger helfen.

                      mickymM Online
                      mickymM Online
                      mickym
                      Most Active
                      schrieb am zuletzt editiert von mickym
                      #31

                      @ThomKast

                      Wenn Du mal diesen Flow importierst (die GeoDaten sind vom Berliner Olympiastadion und musst halt austauschen) und dann noch die Werte Deiner PV Anlage angibst dann bekommst folgende Daten:

                      54eabb99-2485-4db0-9e92-90b6d42f7dc8-image.png

                      Du musst halt neben den Geodaten noch die Daten Deiner PV Anlage eingeben. Das habe ich ja in dem Thread hier beschrieben.

                      Damit siehst dann sofort wann Deine 3kW überschritten sind. Du hast nur 12 Aufrufe pro Tag frei, aber bei diesem ForeCast dürfte das genügen.

                      Das schöne ist, dass man auch sieht wieviele Aufrufe noch für den Tag verbleiben:

                      5b812f02-d35b-4e80-a698-de4d02261b93-image.png

                      Im Prinzip kann man mit den Daten im Node Red direkt arbeiten, aber Du kannst das natürlich genauso wie vorher alles in Datenpunkte im iobroker schreiben und dann kannst DU wieder mit Blockly oder mit was Du bisher gearbeitet hast weiter machen. Man würde hier wahrscheinlich dann aber nur die Punkte zur vollen Stunde nehmen, da sonst die Anzahl der Punkte kontinuierlich wächst. 😉

                      Musst halt trotzdem mit dem Probieren aufpassen, sonst sind Deine 12 Aufrufe bald verbraucht.

                      Das Debug Fenster im Node Red ist übrigens die Wanze:

                      8272a01a-b358-4dc0-8028-f7fc97cb473e-image.png

                      Hier der Flow zum Import 😉 :

                      [
                         {
                             "id": "a4d40a7.56844f8",
                             "type": "debug",
                             "z": "f19174b9.aa88f8",
                             "name": "",
                             "active": true,
                             "tosidebar": true,
                             "console": false,
                             "tostatus": false,
                             "complete": "false",
                             "statusVal": "",
                             "statusType": "auto",
                             "x": 2070,
                             "y": 240,
                             "wires": []
                         },
                         {
                             "id": "8fbde98c.7a1a48",
                             "type": "http request",
                             "z": "f19174b9.aa88f8",
                             "name": "",
                             "method": "GET",
                             "ret": "txt",
                             "paytoqs": false,
                             "url": "",
                             "persist": false,
                             "authType": "",
                             "x": 1740,
                             "y": 240,
                             "wires": [
                                 [
                                     "b6f47228.f98f7",
                                     "6a71bc30.111ad4"
                                 ]
                             ]
                         },
                         {
                             "id": "b6f47228.f98f7",
                             "type": "json",
                             "z": "f19174b9.aa88f8",
                             "name": "",
                             "property": "payload",
                             "action": "",
                             "pretty": false,
                             "x": 1910,
                             "y": 240,
                             "wires": [
                                 [
                                     "a4d40a7.56844f8"
                                 ]
                             ]
                         },
                         {
                             "id": "28c617df.bad4e8",
                             "type": "inject",
                             "z": "f19174b9.aa88f8",
                             "name": "Forecast Solar API",
                             "props": [
                                 {
                                     "p": "url",
                                     "v": "https://api.forecast.solar/estimate/52.5/13.2/37/0/3",
                                     "vt": "str"
                                 },
                                 {
                                     "p": "header",
                                     "v": "{\"Accept\":\"application/json\"}",
                                     "vt": "json"
                                 }
                             ],
                             "repeat": "",
                             "crontab": "",
                             "once": false,
                             "onceDelay": 0.1,
                             "topic": "",
                             "x": 1530,
                             "y": 240,
                             "wires": [
                                 [
                                     "8fbde98c.7a1a48"
                                 ]
                             ]
                         },
                         {
                             "id": "6a71bc30.111ad4",
                             "type": "ioBroker out",
                             "z": "f19174b9.aa88f8",
                             "name": "",
                             "topic": "0_userdata.0.ForecastSolar.JSON",
                             "ack": "true",
                             "autoCreate": "true",
                             "stateName": "",
                             "role": "",
                             "payloadType": "",
                             "readonly": "false",
                             "stateUnit": "",
                             "stateMin": "",
                             "stateMax": "",
                             "x": 2010,
                             "y": 180,
                             "wires": []
                         }
                      ]
                      

                      dc8bbd06-8da2-4a4c-ad54-6387871eb703-image.png

                      Die Anpassung um die Watt Werte Deiner tatsächlichen Leistung anzupassen kann man ja über den letzten Parameter machen, der ja die Leitsung Deiner PV Anlage angibt. Da kann man ja bissi spielen, damit sich das annähert.

                      Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                      mickymM 1 Antwort Letzte Antwort
                      0
                      • mickymM mickym

                        @ThomKast

                        Wenn Du mal diesen Flow importierst (die GeoDaten sind vom Berliner Olympiastadion und musst halt austauschen) und dann noch die Werte Deiner PV Anlage angibst dann bekommst folgende Daten:

                        54eabb99-2485-4db0-9e92-90b6d42f7dc8-image.png

                        Du musst halt neben den Geodaten noch die Daten Deiner PV Anlage eingeben. Das habe ich ja in dem Thread hier beschrieben.

                        Damit siehst dann sofort wann Deine 3kW überschritten sind. Du hast nur 12 Aufrufe pro Tag frei, aber bei diesem ForeCast dürfte das genügen.

                        Das schöne ist, dass man auch sieht wieviele Aufrufe noch für den Tag verbleiben:

                        5b812f02-d35b-4e80-a698-de4d02261b93-image.png

                        Im Prinzip kann man mit den Daten im Node Red direkt arbeiten, aber Du kannst das natürlich genauso wie vorher alles in Datenpunkte im iobroker schreiben und dann kannst DU wieder mit Blockly oder mit was Du bisher gearbeitet hast weiter machen. Man würde hier wahrscheinlich dann aber nur die Punkte zur vollen Stunde nehmen, da sonst die Anzahl der Punkte kontinuierlich wächst. 😉

                        Musst halt trotzdem mit dem Probieren aufpassen, sonst sind Deine 12 Aufrufe bald verbraucht.

                        Das Debug Fenster im Node Red ist übrigens die Wanze:

                        8272a01a-b358-4dc0-8028-f7fc97cb473e-image.png

                        Hier der Flow zum Import 😉 :

                        [
                           {
                               "id": "a4d40a7.56844f8",
                               "type": "debug",
                               "z": "f19174b9.aa88f8",
                               "name": "",
                               "active": true,
                               "tosidebar": true,
                               "console": false,
                               "tostatus": false,
                               "complete": "false",
                               "statusVal": "",
                               "statusType": "auto",
                               "x": 2070,
                               "y": 240,
                               "wires": []
                           },
                           {
                               "id": "8fbde98c.7a1a48",
                               "type": "http request",
                               "z": "f19174b9.aa88f8",
                               "name": "",
                               "method": "GET",
                               "ret": "txt",
                               "paytoqs": false,
                               "url": "",
                               "persist": false,
                               "authType": "",
                               "x": 1740,
                               "y": 240,
                               "wires": [
                                   [
                                       "b6f47228.f98f7",
                                       "6a71bc30.111ad4"
                                   ]
                               ]
                           },
                           {
                               "id": "b6f47228.f98f7",
                               "type": "json",
                               "z": "f19174b9.aa88f8",
                               "name": "",
                               "property": "payload",
                               "action": "",
                               "pretty": false,
                               "x": 1910,
                               "y": 240,
                               "wires": [
                                   [
                                       "a4d40a7.56844f8"
                                   ]
                               ]
                           },
                           {
                               "id": "28c617df.bad4e8",
                               "type": "inject",
                               "z": "f19174b9.aa88f8",
                               "name": "Forecast Solar API",
                               "props": [
                                   {
                                       "p": "url",
                                       "v": "https://api.forecast.solar/estimate/52.5/13.2/37/0/3",
                                       "vt": "str"
                                   },
                                   {
                                       "p": "header",
                                       "v": "{\"Accept\":\"application/json\"}",
                                       "vt": "json"
                                   }
                               ],
                               "repeat": "",
                               "crontab": "",
                               "once": false,
                               "onceDelay": 0.1,
                               "topic": "",
                               "x": 1530,
                               "y": 240,
                               "wires": [
                                   [
                                       "8fbde98c.7a1a48"
                                   ]
                               ]
                           },
                           {
                               "id": "6a71bc30.111ad4",
                               "type": "ioBroker out",
                               "z": "f19174b9.aa88f8",
                               "name": "",
                               "topic": "0_userdata.0.ForecastSolar.JSON",
                               "ack": "true",
                               "autoCreate": "true",
                               "stateName": "",
                               "role": "",
                               "payloadType": "",
                               "readonly": "false",
                               "stateUnit": "",
                               "stateMin": "",
                               "stateMax": "",
                               "x": 2010,
                               "y": 180,
                               "wires": []
                           }
                        ]
                        

                        dc8bbd06-8da2-4a4c-ad54-6387871eb703-image.png

                        Die Anpassung um die Watt Werte Deiner tatsächlichen Leistung anzupassen kann man ja über den letzten Parameter machen, der ja die Leitsung Deiner PV Anlage angibt. Da kann man ja bissi spielen, damit sich das annähert.

                        mickymM Online
                        mickymM Online
                        mickym
                        Most Active
                        schrieb am zuletzt editiert von
                        #32

                        So wenn man das dann noch als schöne Datenpunkte im iobroker haben möchte - ist das etwas komplexer, aber dann würde sich dieser Flow anbieten:

                        [
                           {
                               "id": "68a96605.f0a0d8",
                               "type": "ioBroker in",
                               "z": "40d29c16.113a14",
                               "name": "",
                               "topic": "0_userdata.0.ForecastSolar.JSON",
                               "payloadType": "value",
                               "onlyack": "",
                               "func": "all",
                               "gap": "",
                               "fireOnStart": "false",
                               "x": 160,
                               "y": 660,
                               "wires": [
                                   [
                                       "95d3d3c.c4ab93"
                                   ]
                               ]
                           },
                           {
                               "id": "95d3d3c.c4ab93",
                               "type": "json",
                               "z": "40d29c16.113a14",
                               "name": "",
                               "property": "payload",
                               "action": "obj",
                               "pretty": false,
                               "x": 390,
                               "y": 660,
                               "wires": [
                                   [
                                       "639fd7a6.95a0f8",
                                       "5922f52.96fd30c",
                                       "b4f10006.daf97",
                                       "9b4c9098.a90c9"
                                   ]
                               ]
                           },
                           {
                               "id": "5922f52.96fd30c",
                               "type": "change",
                               "z": "40d29c16.113a14",
                               "name": "",
                               "rules": [
                                   {
                                       "t": "set",
                                       "p": "payload",
                                       "pt": "msg",
                                       "to": "payload.result.watt_hours",
                                       "tot": "msg"
                                   }
                               ],
                               "action": "",
                               "property": "",
                               "from": "",
                               "to": "",
                               "reg": false,
                               "x": 590,
                               "y": 660,
                               "wires": [
                                   [
                                       "21ccfd34.facae2"
                                   ]
                               ]
                           },
                           {
                               "id": "b4f10006.daf97",
                               "type": "change",
                               "z": "40d29c16.113a14",
                               "name": "",
                               "rules": [
                                   {
                                       "t": "set",
                                       "p": "payload",
                                       "pt": "msg",
                                       "to": "payload.result.watt_hours_day",
                                       "tot": "msg"
                                   }
                               ],
                               "action": "",
                               "property": "",
                               "from": "",
                               "to": "",
                               "reg": false,
                               "x": 590,
                               "y": 780,
                               "wires": [
                                   [
                                       "9fe82316.5a4a9"
                                   ]
                               ]
                           },
                           {
                               "id": "639fd7a6.95a0f8",
                               "type": "change",
                               "z": "40d29c16.113a14",
                               "name": "",
                               "rules": [
                                   {
                                       "t": "set",
                                       "p": "payload",
                                       "pt": "msg",
                                       "to": "payload.result.watts",
                                       "tot": "msg"
                                   }
                               ],
                               "action": "",
                               "property": "",
                               "from": "",
                               "to": "",
                               "reg": false,
                               "x": 590,
                               "y": 540,
                               "wires": [
                                   [
                                       "3ed3c97f.258866"
                                   ]
                               ]
                           },
                           {
                               "id": "9b4c9098.a90c9",
                               "type": "change",
                               "z": "40d29c16.113a14",
                               "name": "",
                               "rules": [
                                   {
                                       "t": "set",
                                       "p": "payload",
                                       "pt": "msg",
                                       "to": "payload.message",
                                       "tot": "msg"
                                   },
                                   {
                                       "t": "set",
                                       "p": "topic",
                                       "pt": "msg",
                                       "to": "0_userdata.0.ForecastSolar.Message",
                                       "tot": "str"
                                   }
                               ],
                               "action": "",
                               "property": "",
                               "from": "",
                               "to": "",
                               "reg": false,
                               "x": 590,
                               "y": 840,
                               "wires": [
                                   [
                                       "bba12036.7657b"
                                   ]
                               ]
                           },
                           {
                               "id": "3ed3c97f.258866",
                               "type": "split",
                               "z": "40d29c16.113a14",
                               "name": "",
                               "splt": "\\n",
                               "spltType": "str",
                               "arraySplt": 1,
                               "arraySpltType": "len",
                               "stream": false,
                               "addname": "",
                               "x": 770,
                               "y": 540,
                               "wires": [
                                   [
                                       "76cda8d5.5890f8"
                                   ]
                               ]
                           },
                           {
                               "id": "76cda8d5.5890f8",
                               "type": "change",
                               "z": "40d29c16.113a14",
                               "name": "",
                               "rules": [
                                   {
                                       "t": "set",
                                       "p": "key",
                                       "pt": "msg",
                                       "to": "$split(parts.key, ' ')\t",
                                       "tot": "jsonata"
                                   },
                                   {
                                       "t": "set",
                                       "p": "date",
                                       "pt": "msg",
                                       "to": "key[0]",
                                       "tot": "msg"
                                   },
                                   {
                                       "t": "set",
                                       "p": "time",
                                       "pt": "msg",
                                       "to": "key[1]",
                                       "tot": "msg"
                                   },
                                   {
                                       "t": "delete",
                                       "p": "key",
                                       "pt": "msg"
                                   },
                                   {
                                       "t": "set",
                                       "p": "topic",
                                       "pt": "msg",
                                       "to": "0_userdata.0.ForecastSolar.Watt",
                                       "tot": "str"
                                   }
                               ],
                               "action": "",
                               "property": "",
                               "from": "",
                               "to": "",
                               "reg": false,
                               "x": 940,
                               "y": 540,
                               "wires": [
                                   [
                                       "c276add5.5ff3"
                                   ]
                               ]
                           },
                           {
                               "id": "c276add5.5ff3",
                               "type": "switch",
                               "z": "40d29c16.113a14",
                               "name": "Nur volle Stunden",
                               "property": "time",
                               "propertyType": "msg",
                               "rules": [
                                   {
                                       "t": "regex",
                                       "v": "\\d{2}:00:\\d{2}",
                                       "vt": "str",
                                       "case": true
                                   }
                               ],
                               "checkall": "true",
                               "repair": false,
                               "outputs": 1,
                               "x": 1160,
                               "y": 540,
                               "wires": [
                                   [
                                       "f12c37e.0d20ac8"
                                   ]
                               ]
                           },
                           {
                               "id": "f12c37e.0d20ac8",
                               "type": "function",
                               "z": "40d29c16.113a14",
                               "name": "",
                               "func": "var today = context.get('today');\nif (today === undefined) context.set('today',msg.date); \nif (today === msg.date) return [msg,null]; else return [null,msg];",
                               "outputs": 2,
                               "noerr": 0,
                               "initialize": "",
                               "finalize": "",
                               "libs": [],
                               "x": 1340,
                               "y": 540,
                               "wires": [
                                   [
                                       "7beaf8a7.f0c048"
                                   ],
                                   [
                                       "cf163280.c332b"
                                   ]
                               ]
                           },
                           {
                               "id": "7beaf8a7.f0c048",
                               "type": "change",
                               "z": "40d29c16.113a14",
                               "name": "",
                               "rules": [
                                   {
                                       "t": "set",
                                       "p": "topic",
                                       "pt": "msg",
                                       "to": "topic & '.heute.' & $substring(time, 0, 2)\t",
                                       "tot": "jsonata"
                                   }
                               ],
                               "action": "",
                               "property": "",
                               "from": "",
                               "to": "",
                               "reg": false,
                               "x": 1540,
                               "y": 520,
                               "wires": [
                                   [
                                       "d9737c55.64cfd"
                                   ]
                               ]
                           },
                           {
                               "id": "cf163280.c332b",
                               "type": "change",
                               "z": "40d29c16.113a14",
                               "name": "",
                               "rules": [
                                   {
                                       "t": "set",
                                       "p": "topic",
                                       "pt": "msg",
                                       "to": "topic & '.morgen.' & $substring(time, 0, 2)\t",
                                       "tot": "jsonata"
                                   }
                               ],
                               "action": "",
                               "property": "",
                               "from": "",
                               "to": "",
                               "reg": false,
                               "x": 1540,
                               "y": 560,
                               "wires": [
                                   [
                                       "d9737c55.64cfd"
                                   ]
                               ]
                           },
                           {
                               "id": "d9737c55.64cfd",
                               "type": "ioBroker out",
                               "z": "40d29c16.113a14",
                               "name": "",
                               "topic": "",
                               "ack": "true",
                               "autoCreate": "true",
                               "stateName": "",
                               "role": "",
                               "payloadType": "number",
                               "readonly": "false",
                               "stateUnit": "W",
                               "stateMin": "",
                               "stateMax": "",
                               "x": 1760,
                               "y": 540,
                               "wires": []
                           },
                           {
                               "id": "21ccfd34.facae2",
                               "type": "split",
                               "z": "40d29c16.113a14",
                               "name": "",
                               "splt": "\\n",
                               "spltType": "str",
                               "arraySplt": 1,
                               "arraySpltType": "len",
                               "stream": false,
                               "addname": "",
                               "x": 770,
                               "y": 660,
                               "wires": [
                                   [
                                       "aa4effb3.39e9b"
                                   ]
                               ]
                           },
                           {
                               "id": "aa4effb3.39e9b",
                               "type": "change",
                               "z": "40d29c16.113a14",
                               "name": "",
                               "rules": [
                                   {
                                       "t": "set",
                                       "p": "key",
                                       "pt": "msg",
                                       "to": "$split(parts.key, ' ')\t",
                                       "tot": "jsonata"
                                   },
                                   {
                                       "t": "set",
                                       "p": "date",
                                       "pt": "msg",
                                       "to": "key[0]",
                                       "tot": "msg"
                                   },
                                   {
                                       "t": "set",
                                       "p": "time",
                                       "pt": "msg",
                                       "to": "key[1]",
                                       "tot": "msg"
                                   },
                                   {
                                       "t": "delete",
                                       "p": "key",
                                       "pt": "msg"
                                   },
                                   {
                                       "t": "set",
                                       "p": "topic",
                                       "pt": "msg",
                                       "to": "0_userdata.0.ForecastSolar.Watt_Stunden",
                                       "tot": "str"
                                   }
                               ],
                               "action": "",
                               "property": "",
                               "from": "",
                               "to": "",
                               "reg": false,
                               "x": 940,
                               "y": 660,
                               "wires": [
                                   [
                                       "b8b11466.adf4f8"
                                   ]
                               ]
                           },
                           {
                               "id": "b8b11466.adf4f8",
                               "type": "switch",
                               "z": "40d29c16.113a14",
                               "name": "Nur volle Stunden",
                               "property": "time",
                               "propertyType": "msg",
                               "rules": [
                                   {
                                       "t": "regex",
                                       "v": "\\d{2}:00:\\d{2}",
                                       "vt": "str",
                                       "case": true
                                   }
                               ],
                               "checkall": "true",
                               "repair": false,
                               "outputs": 1,
                               "x": 1160,
                               "y": 660,
                               "wires": [
                                   [
                                       "16932e09.c305e2"
                                   ]
                               ]
                           },
                           {
                               "id": "16932e09.c305e2",
                               "type": "function",
                               "z": "40d29c16.113a14",
                               "name": "",
                               "func": "var today = context.get('today');\nif (today === undefined) context.set('today',msg.date); \nif (today === msg.date) return [msg,null]; else return [null,msg];",
                               "outputs": 2,
                               "noerr": 0,
                               "initialize": "",
                               "finalize": "",
                               "libs": [],
                               "x": 1340,
                               "y": 660,
                               "wires": [
                                   [
                                       "f8c076f7.275ec8"
                                   ],
                                   [
                                       "74b612aa.212cfc"
                                   ]
                               ]
                           },
                           {
                               "id": "f8c076f7.275ec8",
                               "type": "change",
                               "z": "40d29c16.113a14",
                               "name": "",
                               "rules": [
                                   {
                                       "t": "set",
                                       "p": "topic",
                                       "pt": "msg",
                                       "to": "topic & '.heute.' & $substring(time, 0, 2)\t",
                                       "tot": "jsonata"
                                   }
                               ],
                               "action": "",
                               "property": "",
                               "from": "",
                               "to": "",
                               "reg": false,
                               "x": 1540,
                               "y": 640,
                               "wires": [
                                   [
                                       "9dce4023.d2f67"
                                   ]
                               ]
                           },
                           {
                               "id": "74b612aa.212cfc",
                               "type": "change",
                               "z": "40d29c16.113a14",
                               "name": "",
                               "rules": [
                                   {
                                       "t": "set",
                                       "p": "topic",
                                       "pt": "msg",
                                       "to": "topic & '.morgen.' & $substring(time, 0, 2)\t",
                                       "tot": "jsonata"
                                   }
                               ],
                               "action": "",
                               "property": "",
                               "from": "",
                               "to": "",
                               "reg": false,
                               "x": 1540,
                               "y": 680,
                               "wires": [
                                   [
                                       "9dce4023.d2f67"
                                   ]
                               ]
                           },
                           {
                               "id": "9dce4023.d2f67",
                               "type": "ioBroker out",
                               "z": "40d29c16.113a14",
                               "name": "",
                               "topic": "",
                               "ack": "true",
                               "autoCreate": "true",
                               "stateName": "",
                               "role": "",
                               "payloadType": "number",
                               "readonly": "false",
                               "stateUnit": "Wh",
                               "stateMin": "",
                               "stateMax": "",
                               "x": 1760,
                               "y": 660,
                               "wires": []
                           },
                           {
                               "id": "9fe82316.5a4a9",
                               "type": "split",
                               "z": "40d29c16.113a14",
                               "name": "",
                               "splt": "\\n",
                               "spltType": "str",
                               "arraySplt": 1,
                               "arraySpltType": "len",
                               "stream": false,
                               "addname": "",
                               "x": 770,
                               "y": 780,
                               "wires": [
                                   [
                                       "be420a38.a53768"
                                   ]
                               ]
                           },
                           {
                               "id": "be420a38.a53768",
                               "type": "change",
                               "z": "40d29c16.113a14",
                               "name": "",
                               "rules": [
                                   {
                                       "t": "set",
                                       "p": "key",
                                       "pt": "msg",
                                       "to": "$split(parts.key, ' ')\t",
                                       "tot": "jsonata"
                                   },
                                   {
                                       "t": "set",
                                       "p": "date",
                                       "pt": "msg",
                                       "to": "key[0]",
                                       "tot": "msg"
                                   },
                                   {
                                       "t": "delete",
                                       "p": "key",
                                       "pt": "msg"
                                   },
                                   {
                                       "t": "set",
                                       "p": "topic",
                                       "pt": "msg",
                                       "to": "0_userdata.0.ForecastSolar.Watt_Stunden_Tag",
                                       "tot": "str"
                                   }
                               ],
                               "action": "",
                               "property": "",
                               "from": "",
                               "to": "",
                               "reg": false,
                               "x": 940,
                               "y": 780,
                               "wires": [
                                   [
                                       "1f33e1b7.1e8e7e"
                                   ]
                               ]
                           },
                           {
                               "id": "1f33e1b7.1e8e7e",
                               "type": "function",
                               "z": "40d29c16.113a14",
                               "name": "",
                               "func": "var today = context.get('today');\nif (today === undefined) context.set('today',msg.date); \nif (today === msg.date) return [msg,null]; else return [null,msg];",
                               "outputs": 2,
                               "noerr": 0,
                               "initialize": "",
                               "finalize": "",
                               "libs": [],
                               "x": 1140,
                               "y": 780,
                               "wires": [
                                   [
                                       "864dddc6.9c7ef"
                                   ],
                                   [
                                       "4b2237a5.6d6c58"
                                   ]
                               ]
                           },
                           {
                               "id": "864dddc6.9c7ef",
                               "type": "change",
                               "z": "40d29c16.113a14",
                               "name": "",
                               "rules": [
                                   {
                                       "t": "set",
                                       "p": "topic",
                                       "pt": "msg",
                                       "to": "topic & '.heute'",
                                       "tot": "jsonata"
                                   }
                               ],
                               "action": "",
                               "property": "",
                               "from": "",
                               "to": "",
                               "reg": false,
                               "x": 1340,
                               "y": 760,
                               "wires": [
                                   [
                                       "16a13ee3.3c7781"
                                   ]
                               ]
                           },
                           {
                               "id": "4b2237a5.6d6c58",
                               "type": "change",
                               "z": "40d29c16.113a14",
                               "name": "",
                               "rules": [
                                   {
                                       "t": "set",
                                       "p": "topic",
                                       "pt": "msg",
                                       "to": "topic & '.morgen'",
                                       "tot": "jsonata"
                                   }
                               ],
                               "action": "",
                               "property": "",
                               "from": "",
                               "to": "",
                               "reg": false,
                               "x": 1340,
                               "y": 800,
                               "wires": [
                                   [
                                       "16a13ee3.3c7781"
                                   ]
                               ]
                           },
                           {
                               "id": "16a13ee3.3c7781",
                               "type": "ioBroker out",
                               "z": "40d29c16.113a14",
                               "name": "",
                               "topic": "",
                               "ack": "true",
                               "autoCreate": "true",
                               "stateName": "",
                               "role": "",
                               "payloadType": "number",
                               "readonly": "false",
                               "stateUnit": "Wh",
                               "stateMin": "",
                               "stateMax": "",
                               "x": 1540,
                               "y": 780,
                               "wires": []
                           },
                           {
                               "id": "bba12036.7657b",
                               "type": "json",
                               "z": "40d29c16.113a14",
                               "name": "",
                               "property": "payload",
                               "action": "",
                               "pretty": false,
                               "x": 770,
                               "y": 840,
                               "wires": [
                                   [
                                       "474f55f1.7acf2c"
                                   ]
                               ]
                           },
                           {
                               "id": "474f55f1.7acf2c",
                               "type": "ioBroker out",
                               "z": "40d29c16.113a14",
                               "name": "",
                               "topic": "",
                               "ack": "true",
                               "autoCreate": "true",
                               "stateName": "",
                               "role": "",
                               "payloadType": "",
                               "readonly": "false",
                               "stateUnit": "",
                               "stateMin": "",
                               "stateMax": "",
                               "x": 940,
                               "y": 840,
                               "wires": []
                           }
                        ]
                        

                        8d7cccf8-ddb3-4493-83e5-f72cb7ab2deb-image.png

                        Dieser erzeugt dann die Datenpunkte immer zur vollen Stunde. Man darf aber nur auf die Trigger gehen - sprich wird für einen Tag der Datenpunkt nicht aktualisiert - bleibt da der alte Wert stehen - sieht man dann ja am Timestamp:

                        Das sieht dann so aus und Du hättest somit für jede Stunde des Tages die zu erwartende Leistung Deiner PV:

                        5d8528ef-3969-4ebf-9004-71a90733af1c-image.png

                        Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                        1 Antwort Letzte Antwort
                        0
                        • T ThomKast

                          @mickym
                          Verstehe ich dank Deiner Beschreibung. In den Nodes muss ich mir das in Ruhe anarbeiten...

                          Für die Ansteuerung des SGready-Relais werde ich die UVindex-Werte aus 0h und 1h verwenden, also ähnlich wie in Deinem Ansatz. Da die Wärmepumpe nach einem Start mindestens 10 Minuten läuft und im Standardbetrieb ~ 2.8 kW zieht, macht es mMn. Sinn folgende Logik näher zu betrachten:

                          • Wenn Minuten (akt.Zeit) zwischen 0 und 45 -> prüfe UVi-Schwellwert gegen UVi von 0h
                          • Wenn Minuten (akt.Zeit) zwischen 46 und 59 -> prüfe UVi-Schwellwert gegen Mittelwert UVi von 0h und 1h
                          • zum Zeitpunkt der Ermittlung des UVi-Schwellwerts, müsste dann der Wert der PV-Einspeisung >= 3.0 kW sein (PV-Schwellwert)
                          • Wenn beides eingetreten ist, dann ist das SGready-Relais zu aktivieren
                          • Sobald entweder UVi oder PV-Einspeisung unter den jeweiligen Schwellwert fällt, ist das SGready-Relais zu deaktivieren

                          Um diese Logik zu prüfen werde ich die Werte in grafana darstellen. Mal schauen, ob sich ein sinnvoller UVi-Schwellwert finden lässt.

                          Wobei, noch eine Anmerkung: So wie ich es verstanden habe, ist der UVindex als 100'stel dargestellt und dürfte nie größer 1 werden. "0.15" würde damit 15% der maximal möglichen Sonneneinstrahlung entsprechen.
                          Da die Werte "UVindex" und "Clouds" in grafana den Werten der PV-Produktion gegenübergestellt werden sollen, wäre es nötig die beiden Werte zu vereinheitlich. Denn "Clouds" wiederum läuft von "0" bis "100" und stellt die Bewölkung direkt in "%" dar. Diese Anpassung führe ich dann in grafana herbei.

                          Muss mal über mehrere Tage die Daten sammeln und betrachten. Melde mich dann gerne wieder mit einem ersten Eindruck.

                          Du bist doch Profi im Forum ;-). Macht es Sinn, die weiteren Details in diesem Post fortzuführen, oder sollte der Post thematisch in einer anderen Gruppe/Kategorie geführt werden ??.??

                          mickymM Online
                          mickymM Online
                          mickym
                          Most Active
                          schrieb am zuletzt editiert von mickym
                          #33

                          @thomkast

                          Ach und wieder eine ganz grundsätzliche Anmerkung. Im Grunde brauchst Du gar keine Datenpunkte im iobroker, um die Logik zu implementieren.

                          Es ist halt schön, die jeweiligen Werte zu sehen oder wenn Du mit anderen Tools (Blockly, JS) über die Datenpunkte weiter arbeiten willst oder die in eine Datenbank zu Visualisierung für einen Graphen brauchst. Dann macht es tatsächlich Sinn, alles in Datenpunkten abzuspeichern.

                          Meine Openweather Werte werden alle 10 Minuten abgerufen und ich speichere die gar nicht in Datenpunkten, sondern nur im NodeRed zur weiteren Verarbeitung. Natürlich sind die nach jedem Adapterneustart verloren, aber bei 10 Minuten Aktualisierung ist das nicht tragisch.

                          Sprich wenn Du nach Adapterneustart direkt die APIs aufrufst, dann hast Du ja immer die aktuellen Daten zur Weiterverarbeitung parat.

                          Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

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


                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          757

                          Online

                          32.4k

                          Benutzer

                          81.4k

                          Themen

                          1.3m

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

                          • Du hast noch kein Konto? Registrieren

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