Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Node-Red
    5. Schrittwerk mit einer Bedingung begrenzen

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Schrittwerk mit einer Bedingung begrenzen

    This topic has been deleted. Only users with topic management privileges can see it.
    • H
      hawell @mickym last edited by

      @mickym

      korrekt, poduktiv sind es aber 60Sek. anstatt 5

      es soll der flippen zwischen 2 Zuständen verhindern,

      die Eingangswerte kommen von einen Energiezähler, und diese Werte können bekanntlich durch eine PV-Anlage auf dem Dach etwas schwanken.

      mickym 1 Reply Last reply Reply Quote 0
      • mickym
        mickym Most Active @hawell last edited by

        @hawell Aber wenn der gleiche Ast kommt soll alle 5s (bzw. 60s) der counter eines hochgezählt werden?

        H 1 Reply Last reply Reply Quote 0
        • H
          hawell @mickym last edited by

          @mickym

          ja, wenn die die Bedingung zum hochzählen 5 sec gegeben ist, dann einen Schritt hochzählen (am Schrittwerk hängen Heizstäbe, welche dann den Eingangswert (Stromüberschuss) reduzieren).
          wenn Bedingung nicht erfüllt, dann nichts machen.
          die Britte Bedingung ist runterzählen und somit Leistung abschalten.

          mickym 1 Reply Last reply Reply Quote 0
          • mickym
            mickym Most Active @hawell last edited by mickym

            @hawell Ok - ich meine es funktioniert bei Dir ja. Insofern ist es doch OK. Ich mach mal eine Alternative ohne 100% sicher zu sein, ob das dann tut.

            8a62d397-5b45-42c1-be99-e916fed1bd61-image.png

            Die erste Regel kannst Dir natürlich sparen - da Du ja mit der nächsten Regel die payload neu setzt - damit ist das was vorher in der payload war sowieso egal. 😉

            H 1 Reply Last reply Reply Quote 0
            • H
              hawell @mickym last edited by

              @mickym sagte in Schrittwerk mit einer Bedingung begrenzen:

              @hawell Ok - ich meine es funktioniert bei Dir ja. Insofern ist es doch OK. Ich mach mal eine Alternative ohne 100% sicher zu sein, ob das dann tut.

              ich bin mit dem Konstruckt auch nicht glücklich, da ich atkuell auch an einem "Doppelsprung" arbeite - wenn genug leistung ansteht, dann kann um "2" gesprugen werden.
              Übersichtlicher wird es damit aber nicht

              mickym 1 Reply Last reply Reply Quote 0
              • mickym
                mickym Most Active @hawell last edited by mickym

                @hawell Schau mal, ob das tut was Du brauchst:

                46b39409-dfe6-4693-820a-f5f1f6305a46-image.png

                [
                   {
                       "id": "4bbe3cb139220b42",
                       "type": "switch",
                       "z": "fbeffc2c8bcc1d00",
                       "name": "",
                       "property": "payload",
                       "propertyType": "msg",
                       "rules": [
                           {
                               "t": "gte",
                               "v": "2",
                               "vt": "num"
                           },
                           {
                               "t": "btwn",
                               "v": "-699",
                               "vt": "num",
                               "v2": "1",
                               "v2t": "num"
                           },
                           {
                               "t": "lt",
                               "v": "-700",
                               "vt": "num"
                           }
                       ],
                       "checkall": "true",
                       "repair": false,
                       "outputs": 3,
                       "x": 330,
                       "y": 400,
                       "wires": [
                           [
                               "034c5314770775c6"
                           ],
                           [
                               "b554f04062367f31"
                           ],
                           [
                               "07f087d511c8b3e2"
                           ]
                       ]
                   },
                   {
                       "id": "034c5314770775c6",
                       "type": "change",
                       "z": "fbeffc2c8bcc1d00",
                       "name": "-1",
                       "rules": [
                           {
                               "t": "set",
                               "p": "payload",
                               "pt": "msg",
                               "to": "-1",
                               "tot": "num"
                           },
                           {
                               "t": "set",
                               "p": "topic",
                               "pt": "msg",
                               "to": "action",
                               "tot": "str"
                           }
                       ],
                       "action": "",
                       "property": "",
                       "from": "",
                       "to": "",
                       "reg": false,
                       "x": 490,
                       "y": 340,
                       "wires": [
                           [
                               "95c9633ab4777657"
                           ]
                       ]
                   },
                   {
                       "id": "07f087d511c8b3e2",
                       "type": "change",
                       "z": "fbeffc2c8bcc1d00",
                       "name": "+1",
                       "rules": [
                           {
                               "t": "set",
                               "p": "payload",
                               "pt": "msg",
                               "to": "1",
                               "tot": "num"
                           },
                           {
                               "t": "set",
                               "p": "topic",
                               "pt": "msg",
                               "to": "action",
                               "tot": "str"
                           }
                       ],
                       "action": "",
                       "property": "",
                       "from": "",
                       "to": "",
                       "reg": false,
                       "x": 490,
                       "y": 460,
                       "wires": [
                           [
                               "95c9633ab4777657"
                           ]
                       ]
                   },
                   {
                       "id": "458ecde97817f777",
                       "type": "inject",
                       "z": "fbeffc2c8bcc1d00",
                       "name": "100",
                       "props": [
                           {
                               "p": "payload"
                           }
                       ],
                       "repeat": "",
                       "crontab": "",
                       "once": false,
                       "onceDelay": 0.1,
                       "topic": "",
                       "payload": "100",
                       "payloadType": "num",
                       "x": 110,
                       "y": 360,
                       "wires": [
                           [
                               "4bbe3cb139220b42"
                           ]
                       ]
                   },
                   {
                       "id": "9a176b2bfce3c5bc",
                       "type": "inject",
                       "z": "fbeffc2c8bcc1d00",
                       "name": "-500",
                       "props": [
                           {
                               "p": "payload"
                           }
                       ],
                       "repeat": "",
                       "crontab": "",
                       "once": false,
                       "onceDelay": 0.1,
                       "topic": "",
                       "payload": "-500",
                       "payloadType": "num",
                       "x": 110,
                       "y": 420,
                       "wires": [
                           [
                               "4bbe3cb139220b42"
                           ]
                       ]
                   },
                   {
                       "id": "dbb92ef2ecce8bdb",
                       "type": "inject",
                       "z": "fbeffc2c8bcc1d00",
                       "name": "-2000",
                       "props": [
                           {
                               "p": "payload"
                           }
                       ],
                       "repeat": "",
                       "crontab": "",
                       "once": false,
                       "onceDelay": 0.1,
                       "topic": "",
                       "payload": "-2000",
                       "payloadType": "num",
                       "x": 110,
                       "y": 480,
                       "wires": [
                           [
                               "4bbe3cb139220b42"
                           ]
                       ]
                   },
                   {
                       "id": "b554f04062367f31",
                       "type": "change",
                       "z": "fbeffc2c8bcc1d00",
                       "name": "0",
                       "rules": [
                           {
                               "t": "set",
                               "p": "payload",
                               "pt": "msg",
                               "to": "0",
                               "tot": "num"
                           },
                           {
                               "t": "set",
                               "p": "topic",
                               "pt": "msg",
                               "to": "action",
                               "tot": "str"
                           }
                       ],
                       "action": "",
                       "property": "",
                       "from": "",
                       "to": "",
                       "reg": false,
                       "x": 490,
                       "y": 400,
                       "wires": [
                           [
                               "95c9633ab4777657"
                           ]
                       ]
                   },
                   {
                       "id": "95c9633ab4777657",
                       "type": "rbe",
                       "z": "fbeffc2c8bcc1d00",
                       "name": "",
                       "func": "rbe",
                       "gap": "",
                       "start": "",
                       "inout": "out",
                       "septopics": false,
                       "property": "payload",
                       "topi": "topic",
                       "x": 630,
                       "y": 400,
                       "wires": [
                           [
                               "85d35cf6ea80789b"
                           ]
                       ]
                   },
                   {
                       "id": "85d35cf6ea80789b",
                       "type": "trigger",
                       "z": "fbeffc2c8bcc1d00",
                       "name": "",
                       "op1": "",
                       "op2": "",
                       "op1type": "nul",
                       "op2type": "payl",
                       "duration": "5",
                       "extend": true,
                       "overrideDelay": false,
                       "units": "s",
                       "reset": "",
                       "bytopic": "all",
                       "topic": "topic",
                       "outputs": 1,
                       "x": 780,
                       "y": 400,
                       "wires": [
                           [
                               "712d4e4919ac7f2d"
                           ]
                       ]
                   },
                   {
                       "id": "712d4e4919ac7f2d",
                       "type": "trigger",
                       "z": "fbeffc2c8bcc1d00",
                       "name": "",
                       "op1": "",
                       "op2": "0",
                       "op1type": "pay",
                       "op2type": "str",
                       "duration": "-5",
                       "extend": false,
                       "overrideDelay": false,
                       "units": "s",
                       "reset": "0",
                       "bytopic": "all",
                       "topic": "topic",
                       "outputs": 1,
                       "x": 980,
                       "y": 400,
                       "wires": [
                           [
                               "f21d6c44133561ef",
                               "e16d9f5e94d3229f"
                           ]
                       ]
                   },
                   {
                       "id": "f21d6c44133561ef",
                       "type": "debug",
                       "z": "fbeffc2c8bcc1d00",
                       "name": "action",
                       "active": true,
                       "tosidebar": true,
                       "console": false,
                       "tostatus": false,
                       "complete": "payload",
                       "targetType": "msg",
                       "statusVal": "",
                       "statusType": "auto",
                       "x": 970,
                       "y": 460,
                       "wires": []
                   }
                ]
                

                Falls der Energiemanager aus irgendeinem Grund gar nicht mehr tut - kannst Du das periodische Senden ja dann auch unterbinden.

                H 1 Reply Last reply Reply Quote 0
                • H
                  hawell @mickym last edited by

                  @mickym sagte in Schrittwerk mit einer Bedingung begrenzen:

                  erschreckenderweise tut es was es soll ...
                  bis auf, dass es immer die gleichen Zeiten nimmt, ich konnte schneller runterschalten, als hoch.

                  mickym 2 Replies Last reply Reply Quote 0
                  • mickym
                    mickym Most Active @hawell last edited by mickym

                    @hawell Ja gut - die Zyklik bleibt gleich - aber Du könntest ja in der Switch Node noch andere Werte einsetzen, um schneller hoch und runter zu schalten.

                    6797b744-9d47-4881-8c45-22f697ebd432-image.png

                    Sobald Du an der Rändern bist - wird ja durch die hintere filter Node die Nachrichtenanzahl beschränkt.

                    Aber soweit ich verstanden habe - kommt aus dem Energiemanager ja alle Sekunden ein trigger - insofern ist es ja egal, ob Du einen eigenen Taktgeber verwendest und nicht den vom Energiemanager.

                    Aber ist ja nur ein Alternativvorschlag. Deines hat ja funktioniert.

                    H 1 Reply Last reply Reply Quote 0
                    • mickym
                      mickym Most Active @hawell last edited by

                      @hawell Wenn Du den Takt vom Energiemanager behalten willst - dann kannst Du dieses Mal auch eine function Node verwenden. Ich mach Dir mal einen Vorschlag.

                      1 Reply Last reply Reply Quote 0
                      • H
                        hawell @mickym last edited by

                        @mickym
                        das skalieren mit größeren Schritten hatte ich schon getestet das geht super.

                        zwei Sachen verstehe ich aber nicht.
                        wieso sendet der letzte Trigger nur bei Zahlen außer "0" alle 5 sek ? und bei 0 Macht er nichts ??

                        und leider gibt der Trigger den Wert aus, welcher "auf den Weg bebracht wurde", auch wenn sich schon die Richtung geändert wurde.
                        also wenn +1 wiederholt wird, und dann auch 0 umspringt, wird trotzdem noch einmal hochgeschaltet und dann erst gestoppt.

                        man müsste den laufenden Tigger bei Wertänderung unterbrechen.

                        und zwei unterschiedliche zeitliche Trigger paralell laufen lassen (einen fürs hochschalten und einen fürs runter Schalten.

                        mickym 1 Reply Last reply Reply Quote 0
                        • mickym
                          mickym Most Active @hawell last edited by

                          @hawell sagte in Schrittwerk mit einer Bedingung begrenzen:

                          @mickym
                          das skalieren mit größeren Schritten hatte ich schon getestet das geht super.

                          zwei Sachen verstehe ich aber nicht.
                          wieso sendet der letzte Trigger nur bei Zahlen außer "0" alle 5 sek ? und bei 0 Macht er nichts ??

                          Na das hatte ich aus Deinem alten Flow so verstanden, da alles rückgesetzt wurde - das dann nichts mehr gesendet werden soll.

                          und leider gibt der Trigger den Wert aus, welcher "auf den Weg bebracht wurde", auch wenn sich schon die Richtung geändert wurde.
                          also wenn +1 wiederholt wird, und dann auch 0 umspringt, wird trotzdem noch einmal hochgeschaltet und dann erst gestoppt.

                          Nun ja - da musst aber mal logisch überlegen - dass ja EXTRA eine Zeit abgewartet wird, bis eine Änderung registriert wird.

                          man müsste den laufenden Tigger bei Wertänderung unterbrechen.

                          In dem Fall werde ich Dir mal mit einer function Node helfen, die Du dann wieder nur vom Energiemanager getriggert wird und nur bei +1 oder -1

                          und zwei unterschiedliche zeitliche Trigger paralell laufen lassen (einen fürs hochschalten und einen fürs runter Schalten.

                          Nein das ergibt Chaos.

                          H 1 Reply Last reply Reply Quote 0
                          • H
                            hawell @mickym last edited by

                            @mickym sagte in Schrittwerk mit einer Bedingung begrenzen:

                            @hawell sagte in Schrittwerk mit einer Bedingung begrenzen:

                            @mickym
                            das skalieren mit größeren Schritten hatte ich schon getestet das geht super.

                            zwei Sachen verstehe ich aber nicht.
                            wieso sendet der letzte Trigger nur bei Zahlen außer "0" alle 5 sek ? und bei 0 Macht er nichts ??

                            Na das hatte ich aus Deinem alten Flow so verstanden, da alles rückgesetzt wurde - das dann nichts mehr gesendet werden soll.

                            das ist auch richtig, aber wieso macht die Node das - ich ich finde die entsprechende Einstellung nicht. oder liegt es am dem Befehl "0" dieser Stoppt den Trigger?

                            und leider gibt der Trigger den Wert aus, welcher "auf den Weg bebracht wurde", auch wenn sich schon die Richtung geändert wurde.
                            also wenn +1 wiederholt wird, und dann auch 0 umspringt, wird trotzdem noch einmal hochgeschaltet und dann erst gestoppt.

                            Nun ja - da musst aber mal logisch überlegen - dass ja EXTRA eine Zeit abgewartet wird, bis eine Änderung registriert wird.

                            man müsste den laufenden Tigger bei Wertänderung unterbrechen.

                            In dem Fall werde ich Dir mal mit einer function Node helfen, die Du dann wieder nur vom Energiemanager getriggert wird und nur bei +1 oder -1

                            und zwei unterschiedliche zeitliche Trigger paralell laufen lassen (einen fürs hochschalten und einen fürs runter Schalten.

                            Nein das ergibt Chaos.

                            geht das nicht so ? 0 hat immer Priorität und setzt die Laufenden Trigger zurück?

                            Screenshot 2023-10-07 233611.png

                            mickym 1 Reply Last reply Reply Quote 0
                            • mickym
                              mickym Most Active @hawell last edited by mickym

                              gelöscht

                              1 Reply Last reply Reply Quote 0
                              • mickym
                                mickym Most Active last edited by mickym

                                Na ich glaube Du behälst Deinen ursprünglichen Flow.

                                H 2 Replies Last reply Reply Quote 0
                                • H
                                  hawell @mickym last edited by

                                  @mickym
                                  ich schau mir das morgen mal genauer an.
                                  aber der letzte flox ist buggy, der gibt teilweise nur 1 aus egal was man drückt (mit oder ohne warten; mit oder ohne 0 drücken)

                                  mickym 1 Reply Last reply Reply Quote 0
                                  • mickym
                                    mickym Most Active @hawell last edited by

                                    @hawell sagte in Schrittwerk mit einer Bedingung begrenzen:

                                    @mickym
                                    ich schau mir das morgen mal genauer an.
                                    aber der letzte flox ist buggy, der gibt teilweise nur 1 aus egal was man drückt (mit oder ohne warten; mit oder ohne 0 drücken)

                                    Ja bleib bei dem ursprünglichen Flow - ich glaube das ist wahrscheinlich am Besten.

                                    1 Reply Last reply Reply Quote 0
                                    • H
                                      hawell @mickym last edited by

                                      @mickym sagte in Schrittwerk mit einer Bedingung begrenzen:

                                      Na ich glaube Du behälst Deinen ursprünglichen Flow.

                                      gar nicht so einfach .. 😉

                                      ich finde deinen ansatz mit der vereinfachten Form gut, evtl bau ich mir da was draus.
                                      aber heut nicht mehr -> morgen wieder ..

                                      ich danke dir vielmals für die Unterstützung !!!

                                      1 Reply Last reply Reply Quote 0
                                      • First post
                                        Last post

                                      Support us

                                      ioBroker
                                      Community Adapters
                                      Donate

                                      604
                                      Online

                                      31.7k
                                      Users

                                      79.7k
                                      Topics

                                      1.3m
                                      Posts

                                      2
                                      22
                                      959
                                      Loading More Posts
                                      • Oldest to Newest
                                      • Newest to Oldest
                                      • Most Votes
                                      Reply
                                      • Reply as topic
                                      Log in to reply
                                      Community
                                      Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                      The ioBroker Community 2014-2023
                                      logo