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

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

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Node-Red
  5. shelly Status zur Fallunterscheidung nutzen

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.4k

shelly Status zur Fallunterscheidung nutzen

Scheduled Pinned Locked Moved Node-Red
38 Posts 2 Posters 1.7k Views 2 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • R Rudi 3

    Eine Verständnisfrage zwischendurch. Ich habe testweise nach Deinem Vorbild eine change-node genommen um aus der Payload vom shelly-relays einen Teil zu extrahieren. Dabei kam aber wieder das ganze Nachrichtenobjekt raus. Warum ist das so?
    shelly2.PNG

    mickymM Online
    mickymM Online
    mickym
    Most Active
    wrote on last edited by mickym
    #15

    @rudi-3 sagte in shelly Status zur Fallunterscheidung nutzen:

    Eine Verständnisfrage zwischendurch. Ich habe testweise nach Deinem Vorbild eine change-node genommen um aus der Payload vom shelly-relays einen Teil zu extrahieren. Dabei kam aber wieder das ganze Nachrichtenobjekt raus. Warum ist das so?
    shelly2.PNG

    Vielleicht ein Syntax- Leerzeichen oder irgendwas - was ich so auch nicht sehe. Oder nicht ÜBERNEHMEN geklickt. ;) Keine Ahnung. Bei mir funktioniert es:
    af04bef3-9d1d-488a-99e1-c238aa13e657-image.png

    Hier der Import:

    [
       {
           "id": "b540dd62c4b7bb4b",
           "type": "inject",
           "z": "a3ff42d9e3f31af7",
           "name": "Shelly Input",
           "props": [
               {
                   "p": "payload"
               }
           ],
           "repeat": "",
           "crontab": "",
           "once": false,
           "onceDelay": 0.1,
           "topic": "",
           "payload": "{\"status\":{\"wifi_sta\":{\"connected\":true,\"ssid\":\"Kellerfritz\",\"ip\":\"192.168.2.196\",\"rssi\":-46},\"cloud\":{\"enabled\":false,\"connected\":false},\"mqtt\":{\"connected\":false},\"time\":\"15:16\",\"serial\":1,\"has_update\":true,\"mac\":\"10521C06EE47\",\"relays\":[{\"ison\":false,\"has_timer\":false,\"overpower\":false,\"overtemperature\":false,\"is_valid\":true},{\"ison\":false,\"has_timer\":false,\"overpower\":false,\"overtemperature\":false,\"is_valid\":true}],\"rollers\":[{\"state\":\"stop\",\"power\":0,\"is_valid\":true,\"safety_switch\":false,\"overtemperature\":false,\"stop_reason\":\"normal\",\"last_direction\":\"stop\",\"current_pos\":101,\"calibrating\":false,\"positioning\":true}],\"meters\":[{\"power\":0,\"is_valid\":true,\"timestamp\":1689347786,\"counters\":[0,0,0],\"total\":0},{\"power\":0,\"is_valid\":true,\"timestamp\":1689347786,\"counters\":[0,0,0],\"total\":0}],\"inputs\":[{\"input\":0},{\"input\":0}],\"temperature\":56.18,\"overtemperature\":false,\"tmp\":{\"tC\":56.18,\"tF\":133.12,\"is_valid\":\"true\"},\"update\":{\"status\":\"pending\",\"has_update\":true,\"new_version\":\"20230503-095750/v1.13.0-g9aed950\",\"old_version\":\"20191217-074901/1047-long-id-for-shelly-devices@ab2bdce7\"},\"ram_total\":49480,\"ram_free\":37016,\"fs_size\":233681,\"fs_free\":157628,\"voltage\":235.06,\"uptime\":6684},\"payload\":{\"relays\":[{\"ison\":false,\"has_timer\":false,\"overpower\":false,\"overtemperature\":false,\"is_valid\":true},{\"ison\":false,\"has_timer\":false,\"overpower\":false,\"overtemperature\":false,\"is_valid\":true}],\"rollers\":[{\"state\":\"stop\",\"power\":0,\"is_valid\":true,\"safety_switch\":false,\"overtemperature\":false,\"stop_reason\":\"normal\",\"last_direction\":\"stop\",\"current_pos\":101,\"calibrating\":false,\"positioning\":true}],\"meters\":[{\"power\":0,\"is_valid\":true,\"timestamp\":1689347786,\"counters\":[0,0,0],\"total\":0},{\"power\":0,\"is_valid\":true,\"timestamp\":1689347786,\"counters\":[0,0,0],\"total\":0}],\"inputs\":[{\"input\":0},{\"input\":0}],\"tmp\":{\"tC\":56.18,\"tF\":133.12,\"is_valid\":\"true\"}},\"_msgid\":\"9bd7710f1fddad89\"}",
           "payloadType": "json",
           "x": 210,
           "y": 1040,
           "wires": [
               [
                   "326d78cdf99b0b69",
                   "d5a4defd13b3e3cf"
               ]
           ]
       },
       {
           "id": "84167164063b10b2",
           "type": "debug",
           "z": "a3ff42d9e3f31af7",
           "name": "ison?",
           "active": true,
           "tosidebar": true,
           "console": false,
           "tostatus": false,
           "complete": "payload",
           "targetType": "msg",
           "statusVal": "",
           "statusType": "auto",
           "x": 590,
           "y": 1040,
           "wires": []
       },
       {
           "id": "326d78cdf99b0b69",
           "type": "change",
           "z": "a3ff42d9e3f31af7",
           "name": "",
           "rules": [
               {
                   "t": "set",
                   "p": "payload",
                   "pt": "msg",
                   "to": "payload.payload.relays[0].ison",
                   "tot": "jsonata"
               }
           ],
           "action": "",
           "property": "",
           "from": "",
           "to": "",
           "reg": false,
           "x": 410,
           "y": 1040,
           "wires": [
               [
                   "84167164063b10b2"
               ]
           ]
       },
       {
           "id": "d5a4defd13b3e3cf",
           "type": "debug",
           "z": "a3ff42d9e3f31af7",
           "name": "Komplett",
           "active": true,
           "tosidebar": true,
           "console": false,
           "tostatus": false,
           "complete": "payload",
           "targetType": "msg",
           "statusVal": "",
           "statusType": "auto",
           "x": 400,
           "y": 980,
           "wires": []
       }
    ]
    

    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.

    R 1 Reply Last reply
    0
    • mickymM mickym

      @rudi-3 sagte in shelly Status zur Fallunterscheidung nutzen:

      Eine Verständnisfrage zwischendurch. Ich habe testweise nach Deinem Vorbild eine change-node genommen um aus der Payload vom shelly-relays einen Teil zu extrahieren. Dabei kam aber wieder das ganze Nachrichtenobjekt raus. Warum ist das so?
      shelly2.PNG

      Vielleicht ein Syntax- Leerzeichen oder irgendwas - was ich so auch nicht sehe. Oder nicht ÜBERNEHMEN geklickt. ;) Keine Ahnung. Bei mir funktioniert es:
      af04bef3-9d1d-488a-99e1-c238aa13e657-image.png

      Hier der Import:

      [
         {
             "id": "b540dd62c4b7bb4b",
             "type": "inject",
             "z": "a3ff42d9e3f31af7",
             "name": "Shelly Input",
             "props": [
                 {
                     "p": "payload"
                 }
             ],
             "repeat": "",
             "crontab": "",
             "once": false,
             "onceDelay": 0.1,
             "topic": "",
             "payload": "{\"status\":{\"wifi_sta\":{\"connected\":true,\"ssid\":\"Kellerfritz\",\"ip\":\"192.168.2.196\",\"rssi\":-46},\"cloud\":{\"enabled\":false,\"connected\":false},\"mqtt\":{\"connected\":false},\"time\":\"15:16\",\"serial\":1,\"has_update\":true,\"mac\":\"10521C06EE47\",\"relays\":[{\"ison\":false,\"has_timer\":false,\"overpower\":false,\"overtemperature\":false,\"is_valid\":true},{\"ison\":false,\"has_timer\":false,\"overpower\":false,\"overtemperature\":false,\"is_valid\":true}],\"rollers\":[{\"state\":\"stop\",\"power\":0,\"is_valid\":true,\"safety_switch\":false,\"overtemperature\":false,\"stop_reason\":\"normal\",\"last_direction\":\"stop\",\"current_pos\":101,\"calibrating\":false,\"positioning\":true}],\"meters\":[{\"power\":0,\"is_valid\":true,\"timestamp\":1689347786,\"counters\":[0,0,0],\"total\":0},{\"power\":0,\"is_valid\":true,\"timestamp\":1689347786,\"counters\":[0,0,0],\"total\":0}],\"inputs\":[{\"input\":0},{\"input\":0}],\"temperature\":56.18,\"overtemperature\":false,\"tmp\":{\"tC\":56.18,\"tF\":133.12,\"is_valid\":\"true\"},\"update\":{\"status\":\"pending\",\"has_update\":true,\"new_version\":\"20230503-095750/v1.13.0-g9aed950\",\"old_version\":\"20191217-074901/1047-long-id-for-shelly-devices@ab2bdce7\"},\"ram_total\":49480,\"ram_free\":37016,\"fs_size\":233681,\"fs_free\":157628,\"voltage\":235.06,\"uptime\":6684},\"payload\":{\"relays\":[{\"ison\":false,\"has_timer\":false,\"overpower\":false,\"overtemperature\":false,\"is_valid\":true},{\"ison\":false,\"has_timer\":false,\"overpower\":false,\"overtemperature\":false,\"is_valid\":true}],\"rollers\":[{\"state\":\"stop\",\"power\":0,\"is_valid\":true,\"safety_switch\":false,\"overtemperature\":false,\"stop_reason\":\"normal\",\"last_direction\":\"stop\",\"current_pos\":101,\"calibrating\":false,\"positioning\":true}],\"meters\":[{\"power\":0,\"is_valid\":true,\"timestamp\":1689347786,\"counters\":[0,0,0],\"total\":0},{\"power\":0,\"is_valid\":true,\"timestamp\":1689347786,\"counters\":[0,0,0],\"total\":0}],\"inputs\":[{\"input\":0},{\"input\":0}],\"tmp\":{\"tC\":56.18,\"tF\":133.12,\"is_valid\":\"true\"}},\"_msgid\":\"9bd7710f1fddad89\"}",
             "payloadType": "json",
             "x": 210,
             "y": 1040,
             "wires": [
                 [
                     "326d78cdf99b0b69",
                     "d5a4defd13b3e3cf"
                 ]
             ]
         },
         {
             "id": "84167164063b10b2",
             "type": "debug",
             "z": "a3ff42d9e3f31af7",
             "name": "ison?",
             "active": true,
             "tosidebar": true,
             "console": false,
             "tostatus": false,
             "complete": "payload",
             "targetType": "msg",
             "statusVal": "",
             "statusType": "auto",
             "x": 590,
             "y": 1040,
             "wires": []
         },
         {
             "id": "326d78cdf99b0b69",
             "type": "change",
             "z": "a3ff42d9e3f31af7",
             "name": "",
             "rules": [
                 {
                     "t": "set",
                     "p": "payload",
                     "pt": "msg",
                     "to": "payload.payload.relays[0].ison",
                     "tot": "jsonata"
                 }
             ],
             "action": "",
             "property": "",
             "from": "",
             "to": "",
             "reg": false,
             "x": 410,
             "y": 1040,
             "wires": [
                 [
                     "84167164063b10b2"
                 ]
             ]
         },
         {
             "id": "d5a4defd13b3e3cf",
             "type": "debug",
             "z": "a3ff42d9e3f31af7",
             "name": "Komplett",
             "active": true,
             "tosidebar": true,
             "console": false,
             "tostatus": false,
             "complete": "payload",
             "targetType": "msg",
             "statusVal": "",
             "statusType": "auto",
             "x": 400,
             "y": 980,
             "wires": []
         }
      ]
      

      R Offline
      R Offline
      Rudi 3
      wrote on last edited by
      #16

      Bei mir jetzt auch. Um meine Erkenntnis für die Nachwelt zu beschreiben: Ich hatte es erst im Originalflow versucht, da ging es nicht. Dann habe ich den neuen Teil in einen neuen Flow kopiert und jetzt geht's.

      1 Reply Last reply
      0
      • mickymM Online
        mickymM Online
        mickym
        Most Active
        wrote on last edited by mickym
        #17

        So ich kann Deinen Fehler nachvollziehen - hatte dann aber nur die Blocks etwas auseinandergezogen und da war der Fehler komischerweise kurz weg.

        Also um es kurz zu machen, was definitiv falsch ist, sind Deine Ausgaben. Keine dieser 3 variablen sind definiert.

        Alles was innerhalb von geschweiften Klammern definiert wird, hat auch nur Gültigkeit innerhalb dieser geschweiften Klammern. Und msg.payload2 ist ein Objekt das gar nicht definiert ist. Wenn Du das alles zum Schluss ausgeben willst, dann musst Du auch alles am Anfang definieren.

        ed357b39-3773-407e-8dbc-9c2928c131a5-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.

        R 1 Reply Last reply
        0
        • mickymM mickym

          So ich kann Deinen Fehler nachvollziehen - hatte dann aber nur die Blocks etwas auseinandergezogen und da war der Fehler komischerweise kurz weg.

          Also um es kurz zu machen, was definitiv falsch ist, sind Deine Ausgaben. Keine dieser 3 variablen sind definiert.

          Alles was innerhalb von geschweiften Klammern definiert wird, hat auch nur Gültigkeit innerhalb dieser geschweiften Klammern. Und msg.payload2 ist ein Objekt das gar nicht definiert ist. Wenn Du das alles zum Schluss ausgeben willst, dann musst Du auch alles am Anfang definieren.

          ed357b39-3773-407e-8dbc-9c2928c131a5-image.png

          R Offline
          R Offline
          Rudi 3
          wrote on last edited by
          #18

          Ich hätte also die Ausgaben direkt in die IF-Blöcke packen müssen / können? Heute habe ich eine steile Lernkurve ;-)

          mickymM 1 Reply Last reply
          0
          • R Rudi 3

            Ich hätte also die Ausgaben direkt in die IF-Blöcke packen müssen / können? Heute habe ich eine steile Lernkurve ;-)

            mickymM Online
            mickymM Online
            mickym
            Most Active
            wrote on last edited by mickym
            #19

            @rudi-3 Nein die Variablen LED1 und LED2 vor den IF Abfragen definieren.

            Dann machst Du Vergleiche - obwohl Dein Kontext gar nicht initialisiert ist, wenn Du das Dashboard nicht vorher betätigt hast:

            f2b0f60f-0f0a-4e13-8884-f2103846da58-image.png

            Prüfe also zu jeder Zeit - Deine Kontextdaten und initialisiere die Werte auch bevor Du irgendwas im Dashboard gesetzt hast.

            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 Reply Last reply
            0
            • mickymM Online
              mickymM Online
              mickym
              Most Active
              wrote on last edited by mickym
              #20

              Desweiteren wenn Du schon function NOde nimmst, dann musst Du darauf achten, dass Du alle Fälle berücksichtigst:

              541b615d-da0d-4e97-8cf4-c598f741007e-image.png

              Mit so vielen unterschiedlichen Parametern, ein, aus, und Summe sind da glaub 12 Fälle. Was machst Du denn wenn summe < ein ist - dann passiert gar nichts.

              Mit node.warn kannst Du überprüfen, ob was gesetzt ist.

              cf6e881f-469d-4812-8596-a65d39e0bbca-image.png

              Du siehst es ist alles undefined - ja wenn kein Fall eintritt - ist es empty weil wir gesetzt haben oder undefined.

              Auch so was ist Käse:

              c3b8c98a-8b62-4fc2-bf28-e541a6fadfae-image.png

              1. Definierst Du ein Objekt im luftleeren Raum - wenn das ausgegeben werden soll, dann musst Du ein msg Objekt definieren.
                364a0ded-1136-4de7-9d7a-352ba7e420c0-image.png

              Dein Objekt kommt nie und nimmer an.

              1. Du musst doch IMMER - wenn Du alles AUSGIBST auch alle Ausgaben definieren oder Du setzt diese auf null. Korrigiere ich noch. Aber Du musst auch den 2. Ausgang definieren - entweder für alles oder in jedem Ast.

              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.

              R 2 Replies Last reply
              0
              • mickymM mickym

                Desweiteren wenn Du schon function NOde nimmst, dann musst Du darauf achten, dass Du alle Fälle berücksichtigst:

                541b615d-da0d-4e97-8cf4-c598f741007e-image.png

                Mit so vielen unterschiedlichen Parametern, ein, aus, und Summe sind da glaub 12 Fälle. Was machst Du denn wenn summe < ein ist - dann passiert gar nichts.

                Mit node.warn kannst Du überprüfen, ob was gesetzt ist.

                cf6e881f-469d-4812-8596-a65d39e0bbca-image.png

                Du siehst es ist alles undefined - ja wenn kein Fall eintritt - ist es empty weil wir gesetzt haben oder undefined.

                Auch so was ist Käse:

                c3b8c98a-8b62-4fc2-bf28-e541a6fadfae-image.png

                1. Definierst Du ein Objekt im luftleeren Raum - wenn das ausgegeben werden soll, dann musst Du ein msg Objekt definieren.
                  364a0ded-1136-4de7-9d7a-352ba7e420c0-image.png

                Dein Objekt kommt nie und nimmer an.

                1. Du musst doch IMMER - wenn Du alles AUSGIBST auch alle Ausgaben definieren oder Du setzt diese auf null. Korrigiere ich noch. Aber Du musst auch den 2. Ausgang definieren - entweder für alles oder in jedem Ast.
                R Offline
                R Offline
                Rudi 3
                wrote on last edited by
                #21

                Node warn kannte ich noch nicht. Nützliches Ding. Bezüglich der Fälle kommen in der Praxis nicht so viele vor. Wichtig ist mir, das ich die Relais gestuft schalten kann. Etwas tricky ist, das sich der PV-Überschuss in dem Moment kleiner wird, in dem man den Heizstab zuschalten. Ich muss also später noch eine Hystere dazunehmen, sonst schwingt das ganze Werk wild.

                mickymM 2 Replies Last reply
                0
                • R Rudi 3

                  Node warn kannte ich noch nicht. Nützliches Ding. Bezüglich der Fälle kommen in der Praxis nicht so viele vor. Wichtig ist mir, das ich die Relais gestuft schalten kann. Etwas tricky ist, das sich der PV-Überschuss in dem Moment kleiner wird, in dem man den Heizstab zuschalten. Ich muss also später noch eine Hystere dazunehmen, sonst schwingt das ganze Werk wild.

                  mickymM Online
                  mickymM Online
                  mickym
                  Most Active
                  wrote on last edited by
                  #22

                  @rudi-3 sagte in shelly Status zur Fallunterscheidung nutzen:

                  Node warn kannte ich noch nicht. Nützliches Ding. Bezüglich der Fälle kommen in der Praxis nicht so viele vor. Wichtig ist mir, das ich die Relais gestuft schalten kann. Etwas tricky ist, das sich der PV-Überschuss in dem Moment kleiner wird, in dem man den Heizstab zuschalten. Ich muss also später noch eine Hystere dazunehmen, sonst schwingt das ganze Werk wild.

                  Gut - also eigentlich will ich nun nicht die ganze function Node umschreiben - es gäbe noch 1000 Dinge zu sagen - wollen wir ohne weiter machen?

                  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.

                  R 1 Reply Last reply
                  0
                  • mickymM mickym

                    Desweiteren wenn Du schon function NOde nimmst, dann musst Du darauf achten, dass Du alle Fälle berücksichtigst:

                    541b615d-da0d-4e97-8cf4-c598f741007e-image.png

                    Mit so vielen unterschiedlichen Parametern, ein, aus, und Summe sind da glaub 12 Fälle. Was machst Du denn wenn summe < ein ist - dann passiert gar nichts.

                    Mit node.warn kannst Du überprüfen, ob was gesetzt ist.

                    cf6e881f-469d-4812-8596-a65d39e0bbca-image.png

                    Du siehst es ist alles undefined - ja wenn kein Fall eintritt - ist es empty weil wir gesetzt haben oder undefined.

                    Auch so was ist Käse:

                    c3b8c98a-8b62-4fc2-bf28-e541a6fadfae-image.png

                    1. Definierst Du ein Objekt im luftleeren Raum - wenn das ausgegeben werden soll, dann musst Du ein msg Objekt definieren.
                      364a0ded-1136-4de7-9d7a-352ba7e420c0-image.png

                    Dein Objekt kommt nie und nimmer an.

                    1. Du musst doch IMMER - wenn Du alles AUSGIBST auch alle Ausgaben definieren oder Du setzt diese auf null. Korrigiere ich noch. Aber Du musst auch den 2. Ausgang definieren - entweder für alles oder in jedem Ast.
                    R Offline
                    R Offline
                    Rudi 3
                    wrote on last edited by
                    #23

                    Da kommt doch einiges zusammen, das ich erstmal durcharbeiten muss.... Da wird das Wochenende wohl etwas knapp.

                    mickymM 1 Reply Last reply
                    0
                    • R Rudi 3

                      Da kommt doch einiges zusammen, das ich erstmal durcharbeiten muss.... Da wird das Wochenende wohl etwas knapp.

                      mickymM Online
                      mickymM Online
                      mickym
                      Most Active
                      wrote on last edited by
                      #24

                      @rudi-3 sagte in shelly Status zur Fallunterscheidung nutzen:

                      Da kommt doch einiges zusammen, das ich erstmal durcharbeiten muss.... Da wird das Wochenende wohl etwas knapp.

                      Also ohne function Node?

                      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 Reply Last reply
                      0
                      • mickymM mickym

                        @rudi-3 sagte in shelly Status zur Fallunterscheidung nutzen:

                        Node warn kannte ich noch nicht. Nützliches Ding. Bezüglich der Fälle kommen in der Praxis nicht so viele vor. Wichtig ist mir, das ich die Relais gestuft schalten kann. Etwas tricky ist, das sich der PV-Überschuss in dem Moment kleiner wird, in dem man den Heizstab zuschalten. Ich muss also später noch eine Hystere dazunehmen, sonst schwingt das ganze Werk wild.

                        Gut - also eigentlich will ich nun nicht die ganze function Node umschreiben - es gäbe noch 1000 Dinge zu sagen - wollen wir ohne weiter machen?

                        R Offline
                        R Offline
                        Rudi 3
                        wrote on last edited by
                        #25

                        @mickym dann versuchen wir es lieber ohne function node. Das hebe ich mir für später auf.

                        mickymM 1 Reply Last reply
                        0
                        • R Rudi 3

                          @mickym dann versuchen wir es lieber ohne function node. Das hebe ich mir für später auf.

                          mickymM Online
                          mickymM Online
                          mickym
                          Most Active
                          wrote on last edited by mickym
                          #26

                          @rudi-3 sagte in shelly Status zur Fallunterscheidung nutzen:

                          @mickym dann versuchen wir es lieber ohne function node. Das hebe ich mir für später auf.

                          Ja und nochmal - wenn Du programmierst machst Du dir soviel kaputt - deswegen nur wenn es gar nicht anders geht.

                          Als erstes werden wir - da wir ja keine function Node mehr benutzen - Deine ganzen Parameter im flow Kontext speichern.

                          Man kann mit einer Inject Node - die beim Start ausgeführt wird - alle Parameter auch mit 0 initialisieren.
                          e1d61512-683d-4a79-b81f-67e05cbee532-image.png

                          Trigger wird ja der Shelly sein. ;)

                          Da das Setzen der parameter unabhängig von den Shellies ist holen wir uns nun den ganzen FlowKontext rein. Ich ändere das oben nochmal in den ich nicht 3 einzelne Werte nehmen, sondern ein Objekt dann ist das einfacher. Ich nenne das Objekt mal EnergieManagement.

                          Das Ganze sieht dann so aus:

                          602d33bc-e545-4033-9b26-3f9ed5588294-image.png

                          Wenn der Shelly dann triggert, dann lesen wir das ganze Objekt EnergieManagement in unser Nachrichtenobjekt ein.

                          2036d469-106d-4382-8f8b-286ecd4c86b1-image.png

                          Wir haben dazu in das Nachrichtenobjekt eine eigene Eigenschaft EnergieManagement aufgenommen und haben das nun überall in unserem Nachrichtenobjekt jederzeitverfügbar - zusammen mit der Shelly payload.

                          bfd95d73-ebf9-4e77-96ab-1b903324d8dd-image.png

                          So nun versuche ich mich an Deine Logik von der function Node zu orientieren - wobei

                          b4dc9f55-8619-4be7-8b46-898a83f171e1-image.png

                          sowas Käse ist (relais1 = relais[0].ison und wird ja auf true überprüft.

                          Sowas ist auch UNLOGISCH:

                          6ccc8e9f-144b-45ab-9e9f-810fdd5c0ab1-image.png

                          Das sind haargenau die gleichen Bedingungen und werden beide ausgeführt - im Code wird also der grüne Bereich NIE eintreten, weil er durch den roten Code überschrieben wird. Das ist auch überflüssig - da ja theoretisch das Relais 1 schon eingeschaltet ist.

                          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.

                          R 1 Reply Last reply
                          0
                          • mickymM mickym

                            @rudi-3 sagte in shelly Status zur Fallunterscheidung nutzen:

                            @mickym dann versuchen wir es lieber ohne function node. Das hebe ich mir für später auf.

                            Ja und nochmal - wenn Du programmierst machst Du dir soviel kaputt - deswegen nur wenn es gar nicht anders geht.

                            Als erstes werden wir - da wir ja keine function Node mehr benutzen - Deine ganzen Parameter im flow Kontext speichern.

                            Man kann mit einer Inject Node - die beim Start ausgeführt wird - alle Parameter auch mit 0 initialisieren.
                            e1d61512-683d-4a79-b81f-67e05cbee532-image.png

                            Trigger wird ja der Shelly sein. ;)

                            Da das Setzen der parameter unabhängig von den Shellies ist holen wir uns nun den ganzen FlowKontext rein. Ich ändere das oben nochmal in den ich nicht 3 einzelne Werte nehmen, sondern ein Objekt dann ist das einfacher. Ich nenne das Objekt mal EnergieManagement.

                            Das Ganze sieht dann so aus:

                            602d33bc-e545-4033-9b26-3f9ed5588294-image.png

                            Wenn der Shelly dann triggert, dann lesen wir das ganze Objekt EnergieManagement in unser Nachrichtenobjekt ein.

                            2036d469-106d-4382-8f8b-286ecd4c86b1-image.png

                            Wir haben dazu in das Nachrichtenobjekt eine eigene Eigenschaft EnergieManagement aufgenommen und haben das nun überall in unserem Nachrichtenobjekt jederzeitverfügbar - zusammen mit der Shelly payload.

                            bfd95d73-ebf9-4e77-96ab-1b903324d8dd-image.png

                            So nun versuche ich mich an Deine Logik von der function Node zu orientieren - wobei

                            b4dc9f55-8619-4be7-8b46-898a83f171e1-image.png

                            sowas Käse ist (relais1 = relais[0].ison und wird ja auf true überprüft.

                            Sowas ist auch UNLOGISCH:

                            6ccc8e9f-144b-45ab-9e9f-810fdd5c0ab1-image.png

                            Das sind haargenau die gleichen Bedingungen und werden beide ausgeführt - im Code wird also der grüne Bereich NIE eintreten, weil er durch den roten Code überschrieben wird. Das ist auch überflüssig - da ja theoretisch das Relais 1 schon eingeschaltet ist.

                            R Offline
                            R Offline
                            Rudi 3
                            wrote on last edited by
                            #27

                            @mickym stimmt, im Code ist's falsch im Kommentar steht drin wie es sein soll. muss ich beim rumprobieren ver... haben.

                            1 Reply Last reply
                            0
                            • R Rudi 3

                              Node warn kannte ich noch nicht. Nützliches Ding. Bezüglich der Fälle kommen in der Praxis nicht so viele vor. Wichtig ist mir, das ich die Relais gestuft schalten kann. Etwas tricky ist, das sich der PV-Überschuss in dem Moment kleiner wird, in dem man den Heizstab zuschalten. Ich muss also später noch eine Hystere dazunehmen, sonst schwingt das ganze Werk wild.

                              mickymM Online
                              mickymM Online
                              mickym
                              Most Active
                              wrote on last edited by
                              #28

                              @rudi-3 sagte in shelly Status zur Fallunterscheidung nutzen:

                              Ich muss also später noch eine Hystere dazunehmen, sonst schwingt das ganze Werk wild.

                              Die Hysterese hast Du ja in dem Du eine Ein- und Ausschwelle hast.

                              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 Reply Last reply
                              0
                              • mickymM Online
                                mickymM Online
                                mickym
                                Most Active
                                wrote on last edited by
                                #29

                                An Deiner Stelle versteh ich auch nicht, warum du die Summe mit einem Slider setzt - macht es nicht Sinn, dass die Summe automatisch festgelegt wird - z.Bsp. durch den oberen Teil.

                                435dabf8-141b-4f7a-95ac-da4d40ad39ef-image.png

                                Musst Du aber wissen.

                                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.

                                R 2 Replies Last reply
                                0
                                • mickymM mickym

                                  An Deiner Stelle versteh ich auch nicht, warum du die Summe mit einem Slider setzt - macht es nicht Sinn, dass die Summe automatisch festgelegt wird - z.Bsp. durch den oberen Teil.

                                  435dabf8-141b-4f7a-95ac-da4d40ad39ef-image.png

                                  Musst Du aber wissen.

                                  R Offline
                                  R Offline
                                  Rudi 3
                                  wrote on last edited by
                                  #30

                                  @mickym Der Slider ist nur zu Testzwecken drin. Die für die Relaisschaltung relevante Summe kommt aus dem ersten Teil des Flows.

                                  R 1 Reply Last reply
                                  0
                                  • R Rudi 3

                                    @mickym Der Slider ist nur zu Testzwecken drin. Die für die Relaisschaltung relevante Summe kommt aus dem ersten Teil des Flows.

                                    R Offline
                                    R Offline
                                    Rudi 3
                                    wrote on last edited by
                                    #31

                                    @rudi-3 also abgezweigt von der Gesamtleistung. Wie ich schon sagte, der Flow ist durch die vielen Versuche leider ziemlich zerpflückt.

                                    R 1 Reply Last reply
                                    0
                                    • R Rudi 3

                                      @rudi-3 also abgezweigt von der Gesamtleistung. Wie ich schon sagte, der Flow ist durch die vielen Versuche leider ziemlich zerpflückt.

                                      R Offline
                                      R Offline
                                      Rudi 3
                                      wrote on last edited by
                                      #32

                                      @rudi-3 Wenn ich das Konzept richtig verstanden habe, müsste man die Summe von oben in das Objekt "Energiemanagement" aufnehmen?

                                      1 Reply Last reply
                                      0
                                      • mickymM mickym

                                        An Deiner Stelle versteh ich auch nicht, warum du die Summe mit einem Slider setzt - macht es nicht Sinn, dass die Summe automatisch festgelegt wird - z.Bsp. durch den oberen Teil.

                                        435dabf8-141b-4f7a-95ac-da4d40ad39ef-image.png

                                        Musst Du aber wissen.

                                        R Offline
                                        R Offline
                                        Rudi 3
                                        wrote on last edited by
                                        #33

                                        @mickym Sorry habe zwischendurch für eventuelle Mitleser meine Gedanken zur Hysterese zusammengefasst. Stimmt, das ist die halbe Miete. In der Praxis wird allerdings folgendes passieren: Wir erreichen z.B. 1000W Überschuss. Der Heizstab schaltet ein (700W). Dann liegt der Überschuss nur noch bei 300W. Dementsprechend groß muss die Hystere sein bzw. wird unnötig Strom verschenkt. Zudem soll der Heizstab nicht unnötig oft schalten. Daher möchte ich zum Schluss eine Verzögerung einbauen, die z.B. nur alle paar Minuten ein Schaltsignal an die Relais gibt. Dabei muss man natürlich abwägen, das hier kurzzeitig teurer Netzstrom ins Warmwasser geht.

                                        mickymM 2 Replies Last reply
                                        0
                                        • R Rudi 3

                                          @mickym Sorry habe zwischendurch für eventuelle Mitleser meine Gedanken zur Hysterese zusammengefasst. Stimmt, das ist die halbe Miete. In der Praxis wird allerdings folgendes passieren: Wir erreichen z.B. 1000W Überschuss. Der Heizstab schaltet ein (700W). Dann liegt der Überschuss nur noch bei 300W. Dementsprechend groß muss die Hystere sein bzw. wird unnötig Strom verschenkt. Zudem soll der Heizstab nicht unnötig oft schalten. Daher möchte ich zum Schluss eine Verzögerung einbauen, die z.B. nur alle paar Minuten ein Schaltsignal an die Relais gibt. Dabei muss man natürlich abwägen, das hier kurzzeitig teurer Netzstrom ins Warmwasser geht.

                                          mickymM Online
                                          mickymM Online
                                          mickym
                                          Most Active
                                          wrote on last edited by
                                          #34

                                          @rudi-3 Na mit der Ein und Ausschaltschwelle hast Du eine Hysterese - wenn Du Angst hast, dass das zeitlich beides zu häufig ausgelöst wird kannst Du die Nachrichtenrate begrenzen.

                                          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.

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


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          497

                                          Online

                                          32.7k

                                          Users

                                          82.3k

                                          Topics

                                          1.3m

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

                                          • Don't have an account? Register

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