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.
    • 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

                            605
                            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