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. Function Node welche zwei Werte vergleicht

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Function Node welche zwei Werte vergleicht

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

      @mickym
      ja läuft auch in Docker

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

        @1984chris sagte in Function Node welche zwei Werte vergleicht:

        @mickym
        ja läuft auch in Docker

        Na wichtig ist nur wie Du den erreichst, hast Du schon mal aus Deinem NodeRed eine Kommunikation zu Deinem mqtt-Broker aufgebaut?

        1 1 Reply Last reply Reply Quote 0
        • 1
          1984chris @mickym last edited by

          @mickym
          ja tasmota sendet über node red zu mqtt

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

            @1984chris Na das glaube ich jetzt mal nicht. Sondern tasmota sendet zu mqtt und nodered sendet zu mqtt.

            Gut aber jedenfalls hast Du dann in Nodered einen mqtt Broker definiert.

            dann sollte das ja funktionieren. Bitte mal testen und Screenshot am Besten so wie ich es gemacht habe.

            78bfe22a-315d-4dbf-ba27-34e67ad37ac1-image.png

            Hier der Import:

            [{"id":"ff05c97f8218f3d2","type":"inject","z":"044a4dbd8e5edf6a","name":"","props":[{"p":"payload"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"Heute ist Sonntag","payloadType":"str","x":250,"y":1280,"wires":[["d5d8fd055e8e7eb5"]]},{"id":"d5d8fd055e8e7eb5","type":"mqtt out","z":"044a4dbd8e5edf6a","name":"","topic":"test/string2","qos":"","retain":"","respTopic":"","contentType":"","userProps":"","correl":"","expiry":"","broker":"","x":470,"y":1280,"wires":[]},{"id":"825a4a193ee0b081","type":"mqtt in","z":"044a4dbd8e5edf6a","name":"","topic":"test/string2","qos":"2","datatype":"auto-detect","broker":"","nl":false,"rap":true,"rh":0,"inputs":0,"x":240,"y":1340,"wires":[["423588f6a78b52fb"]]},{"id":"423588f6a78b52fb","type":"debug","z":"044a4dbd8e5edf6a","name":"test/string2","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":450,"y":1340,"wires":[]}]
            

            Du musst halt Deinen Server / Broker eintragen und dann genauso einen Screenshot hinbekommen.

            1 1 Reply Last reply Reply Quote 0
            • 1
              1984chris @mickym last edited by

              @mickym
              2024-07-21 21_20_27-Node-RED _ PoolWp – Mozilla Firefox.jpg

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

                @1984chris Gut wenn Du - Deine Flows neu startest, sollte keine weitere Nachricht kommen.

                f2e3f8c2-e99b-4ba4-9af0-9b5ce7807dc8-image.png

                1 1 Reply Last reply Reply Quote 0
                • 1
                  1984chris @mickym last edited by

                  @mickym
                  nur jede Minute der Status vom Shelly, is das eh ok?

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

                    @1984chris Ja das ist OK. Ich kämpfe wieder mal mit den retained Nachrichten. Ich check das mal noch.

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

                      @1984chris sagte in Function Node welche zwei Werte vergleicht:

                      @mickym
                      nur jede Minute der Status vom Shelly, is das eh ok?

                      Gut funktioniert. Wenn Du jetzt in der mqtt-Out Node die Nachricht mit dem Retained Flag schickst und die Flows neustartest, solltest Du die Nachricht automatisch nach dem Neustart bekommen.

                      9f6c9417-809f-411c-9be9-512146134bba-image.png

                      1 1 Reply Last reply Reply Quote 0
                      • 1
                        1984chris @mickym last edited by

                        @mickym
                        ja bekomme die Nachricht Heute ist Sonntag

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

                          @1984chris Ja das Retain Flag kannst Du wieder löschen - wenn Du in die gleiche Node einen leeren String injiizierst. Dann neustarten und es sollte nicht mehr kommen.

                          b7ab3339-5ad5-4ba8-b63c-d7f53d229178-image.png

                          Das Retain Flag bleibt aber auf "wahr"

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

                            Wenn das soweit funktioniert, dann speichern wir die Laufzeit in Minuten in mqtt und lesen die dann beim Neustart wieder ein.

                            1 Reply Last reply Reply Quote 0
                            • 1
                              1984chris @mickym last edited by

                              @mickym
                              jetzt kommt bei einem neustart ger nichts mehr....ist das so richtig?

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

                                @1984chris Genau. Weil wir so das Retain Flag wieder löschen.

                                1 1 Reply Last reply Reply Quote 0
                                • 1
                                  1984chris @mickym last edited by

                                  @mickym
                                  ok.

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

                                    @1984chris Ok dann kannst diese Nodes wieder löschen.

                                    Also zurück zum Flow.
                                    Du hast jetzt das Pollintervall auf 60000 gesetzt und die Nachrichten werden mit der SwitchNode gefiltert, dass NUR Nachrichten durchkommen, wenn die WP eingeschaltet ist.

                                    76690c28-d87d-4ac9-b195-6bfa901cfb2a-image.png

                                    Hier die ChangeNode, die die Nachrichten zählt.

                                    [{"id":"1b6c6646565c829e","type":"switch","z":"517cd16e4d7e6ae4","name":"Check WP","property":"payload.switch0.output","propertyType":"msg","rules":[{"t":"true"}],"checkall":"true","repair":false,"outputs":1,"x":350,"y":4260,"wires":[["a81280bcde91cb43"]]},{"id":"a81280bcde91cb43","type":"change","z":"517cd16e4d7e6ae4","name":"Setze Laufzeit","rules":[{"t":"set","p":"payload","pt":"msg","to":"LaufzeitWP","tot":"flow"},{"t":"set","p":"payload","pt":"msg","to":"$exists(payload) ? payload : 0","tot":"jsonata"},{"t":"set","p":"payload","pt":"msg","to":"payload + 1","tot":"jsonata"},{"t":"set","p":"LaufzeitWP","pt":"flow","to":"payload","tot":"msg"}],"action":"","property":"","from":"","to":"","reg":false,"x":540,"y":4260,"wires":[["c123c50175c3bd3b","8b7cf8516fdd7fa9","80831e30d1f4f496"]]}]
                                    

                                    Die Laufzeit kannst du in einer Debug Node ausgeben und gleichzeitig hängst Du eine mqtt Node an, in der Du die Laufzeit retained speicherst.

                                    Wenn Du dann Deinen Kontext aufmachst (Du musst manuell aktualisieren)

                                    7edb2c48-90e2-4097-8cdd-968efc53b1f6-image.png

                                    Dann sollte jetzt alle Minuten (aber nur solange die WP eingeschaltet ist) hochzählen.

                                    1 1 Reply Last reply Reply Quote 0
                                    • 1
                                      1984chris @mickym last edited by

                                      @mickym
                                      das funktioniert.

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

                                        @1984chris Gut in der anschliessenden switch Node geben wir die maximale Laufzeit ein und prüfen, ob die Laufzeit überschritten ist. Zum Test habe ich es mal auf 5 Minuten eingestellt. Das musst Du halt später auf 300 stellen, wenn die WP max. 5 Std. am gelaufen sein darf. Sprich wenn 6 Minuten bzw. 301 Minuten erreicht sind, wird die Ruhezeit gestartet ( zum Test auf 1 Minute in der Trigger Node eingestellt - später halt die Zeit, die halt die Pause dauern soll)
                                        96663c8e-1a04-4d12-8e85-755764391f6b-image.png

                                        1. die WP ausgeschaltet
                                        2. die Pausenzeit startet

                                        38178b05-f351-4b2d-bb72-24b3b9cd4d45-image.png
                                        Hier der Import:

                                        [{"id":"8b7cf8516fdd7fa9","type":"switch","z":"517cd16e4d7e6ae4","name":"Laufzeitlimit erreicht?","property":"payload","propertyType":"msg","rules":[{"t":"gt","v":"5","vt":"num"}],"checkall":"true","repair":false,"outputs":1,"x":780,"y":4260,"wires":[["a99fb16f9e1aaf53"]]},{"id":"a99fb16f9e1aaf53","type":"trigger","z":"517cd16e4d7e6ae4","name":"","op1":"false","op2":"0","op1type":"bool","op2type":"str","duration":"0","extend":false,"overrideDelay":false,"units":"ms","reset":"true","bytopic":"all","topic":"topic","outputs":1,"x":1000,"y":4260,"wires":[["d32930fee61a93db"]]},{"id":"d32930fee61a93db","type":"trigger","z":"517cd16e4d7e6ae4","name":"PauseWP ","op1":"false","op2":"true","op1type":"bool","op2type":"bool","duration":"1","extend":false,"overrideDelay":false,"units":"min","reset":"","bytopic":"all","topic":"topic","outputs":2,"x":1180,"y":4260,"wires":[["0df1fcecdcb502cd"],["878c47ba3fe7f98d"]]},{"id":"d64cd3672f38dec5","type":"debug","z":"517cd16e4d7e6ae4","name":"Ergebnis für Shelly","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","targetType":"msg","statusVal":"","statusType":"auto","x":1550,"y":4240,"wires":[]},{"id":"0df1fcecdcb502cd","type":"change","z":"517cd16e4d7e6ae4","name":"PauseWP","rules":[{"t":"set","p":"payload","pt":"msg","to":"{\t   \"method\": \"Switch.Set\",\t   \"parameters\" : {\t       \"id\" : 0,\t       \"on\": payload       \t   }\t}","tot":"jsonata"}],"action":"","property":"","from":"","to":"","reg":false,"x":1360,"y":4240,"wires":[["d64cd3672f38dec5"]]},{"id":"878c47ba3fe7f98d","type":"change","z":"517cd16e4d7e6ae4","name":"","rules":[{"t":"set","p":"LaufzeitWP","pt":"flow","to":"0","tot":"num"}],"action":"","property":"","from":"","to":"","reg":false,"x":1380,"y":4320,"wires":[["a99fb16f9e1aaf53"]]}]
                                        

                                        Wenn es funktioniert, dann machen wir noch die Abschlussarbeiten.

                                        1 1 Reply Last reply Reply Quote 0
                                        • 1
                                          1984chris @mickym last edited by

                                          @mickym
                                          so habe das jetzt probiert funktioniert so nach 1 Minute Pause startet das ganze wieder von vorn...

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

                                            @1984chris sagte in Function Node welche zwei Werte vergleicht:

                                            @mickym
                                            so habe das jetzt probiert funktioniert so nach 1 Minute Pause startet das ganze wieder von vorn...

                                            Gut - dann müssen wir nur verhindert, dass nachdem die Pumpe ausgeschaltet wurde, die durch den anderen Flow wieder eingeschaltet wird.

                                            Deswegen machen wir nun noch einen Filter in den oberen Ast, der die WP einschaltet, der die Nachrichten nur durchlässt, solange die max. Laufzeit noch nicht erreicht wurde

                                            2928d533-5aee-4bc7-b01e-45f14caedb1d-image.png

                                            eb76c708-e991-45e1-bedd-8c9c654371cd-image.png

                                            Zum Schluß lesen wir falls NodeRed neugestartet wurde via mqtt die Laufzeit wieder ein

                                            ab2ad734-4765-4d2a-88e3-680fc67debef-image.png

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            1.0k
                                            Online

                                            31.7k
                                            Users

                                            79.7k
                                            Topics

                                            1.3m
                                            Posts

                                            5
                                            207
                                            18958
                                            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