Skip to content
  • 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
Logo
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Node-Red
  5. Hilfe bei debuggen einer übernommenen Funktion

NEWS

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

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

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

Hilfe bei debuggen einer übernommenen Funktion

Scheduled Pinned Locked Moved Node-Red
157 Posts 2 Posters 14.9k 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.
  • B BF0911

    @mickym

    Ich werde mich nächste Woche mal ransetzen, danke!

    Doch, die Laufzeit der Filterpumpe ist ja auf 1 Minute begrenzt, wenn der Scheduler ein "False" ausgibt.

    Screenshot 2024-05-17 150502.png

    Das nur noch als Info.

    Ich melde mich, wenn ich eine Lösung "programmiert" habe.

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

    @bf0911 Ok ich habe Dir ja unten eine Lösung gepostet, der den ganzen Flow blockiert, wenn die Automatik abgeschaltet wurde.

    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.

    B 1 Reply Last reply
    0
    • mickymM mickym

      @bf0911 Ok ich habe Dir ja unten eine Lösung gepostet, der den ganzen Flow blockiert, wenn die Automatik abgeschaltet wurde.

      B Online
      B Online
      BF0911
      wrote on last edited by
      #143

      @mickym

      ich hab am langen Wochenende festgestellt, dass die PH-Pumpe noch lief und die Filter-Pumpe sich aber schon ausgeschaltet hatte.

      Jetzt stehe ich etwas auf dem Schlauch, woran, dass gelegen haben könnte.

      Ich vermute mal, dass der PH-Pumpe-Logik-Pfad noch durch ein "True" der Filterpumpe getriggert wurde, dann entsprechend gepumpt hat. Was ich aber nicht verstehe, ist warum die PH-Pumpe, durch diesen Zweig, nicht ausgeschaltet wurde.

      Screenshot 2024-05-22 075739.png

      mickymM 1 Reply Last reply
      0
      • B BF0911

        @mickym

        ich hab am langen Wochenende festgestellt, dass die PH-Pumpe noch lief und die Filter-Pumpe sich aber schon ausgeschaltet hatte.

        Jetzt stehe ich etwas auf dem Schlauch, woran, dass gelegen haben könnte.

        Ich vermute mal, dass der PH-Pumpe-Logik-Pfad noch durch ein "True" der Filterpumpe getriggert wurde, dann entsprechend gepumpt hat. Was ich aber nicht verstehe, ist warum die PH-Pumpe, durch diesen Zweig, nicht ausgeschaltet wurde.

        Screenshot 2024-05-22 075739.png

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

        @bf0911 Na ja auf Deinem Screenshot sieht man ja nicht den Status der Nodes nicht. Du kannst ja auch noch mal die Zeitstempel in dem Shelly Adapter überprüfen, ob die PH Pumpe nach der Filter Pumpe nochmals eingeschaltet wurde.

        Generell prüfst Du ja auch noch nach dem Ausschalten der Pumpe und vor dem Ausschalten der Filterpumpe, ob beide Pumpen ausgeschaltet sind.

        dcf6c6ea-1f69-4be8-bf37-21953b5625a0-image.png

        Und dann sollten ja Debug Meldungen auftauchen. Vielleicht schreibst Du debug Meldungen wieder in das iobroker-log (Systemkonsole) (musst aber unbedingt die aktuelle Version drauf haben - in der 5.0.x Versionen hat man das leider fehlerhafterweise entfernt).

        Auserdem kannst Du ja mal versuchen - den scheduler zu durch Durchtrennen der Kabel zu deaktivieren und mit Inject Nodes mit true und false dieses Verhalten mit Inject Nodes zu simulieren, wie Du dir das denkst.

        11a26bdc-c85c-4338-babc-ba6d3120d8c1-image.png

        Und ganz zuletzt kannst mit einer Inject Node - noch einen unabhängigen Scheduler erstellen, der Dir in bestimmten Zeitabständen den Zustand Deiner Pumpen überprüfst (zumindest testweise).

        Ich vermute mal, dass der PH-Pumpe-Logik-Pfad noch durch ein "True" der Filterpumpe getriggert wurde, dann entsprechend gepumpt hat. Was ich aber nicht verstehe, ist warum die PH-Pumpe, durch diesen Zweig, nicht ausgeschaltet wurde.

        Wenn dem so wäre, würde ich halt die Prüfung

        5b4d3522-0654-402a-a0fe-5fcfddd9fe6e-image.png

        ganz nach hinten machen - direkt vor dem true schalten - dann sollte das ja ausgeschlossen sein.

        Dazu müsstest Du die Abprüfung ja nur nach in das orange markierte Kabel verlegen.

        05a01c87-8876-4604-9a8a-39b20f5f6dc9-image.png

        In die msg.reset Change Node kannst Du zur Sicherheit noch die payload löschen, damit (kann zwar in meinen Augen nicht) - da auf jeden Fall kein True der payload in den grauen Kasten gelangt:

        90e93a5d-6124-4b90-9665-5a84916d388f-image.png

        Und wie bereits erwähnt - nutze die Debug Node nach der Filter Node, um Dir das triggern durch den Scheduler ins iobroker log zu schreiben:

        7664a45c-70ea-4d8d-877e-96b5148efccf-image.png

        Wenn Du das Debuggen in die Systemkonsole eingeschaltet hast, dann bekommt die Debug-Node so einen Pfeil
        03bb711f-ab5e-4790-bf58-d5fc93dc22ee-image.png
        und Du siehst dann auch im Nachhinein - auch wenn Du den NodeRed Editor nicht offen hast, entsprechende Einträger im iobroker-log:

        0293fdb1-651f-405d-b00b-393502c3154d-image.png

        Und zu guter Letzt - natürlich schauen, dass nirgendwo anders deine PH Pumpe steuerst - alte Flows deaktiviert und keine weiteren Stellen, an den die PH Pumpe gesteuert wird.

        Ganz zum Schluss kannst ja auch mal testen, indem Du mit einer Inject Node false hier manuell injizierst

        4174c6bc-cf50-4262-ace3-cb124895a256-image.png

        ob der Shelly Adapter nicht überfordert ist, wenn beide Pumpen gleichzeitig ausgeschaltet werden. Wenn dem so sein sollte dann mach halt in einen Ast noch einen kleinen Delay von einer halben Sekunde rein. Glaub ich zwar nicht, aber kann man ja prüfen, ob die Adapter Befehle auch speichern oder quasi parallel abarbeiten.

        Das Simulieren von Situation mit Inject nodes ist ja einer der wesentlichen Vorteile von NodeRed - anstelle von herkömmlicher Programmierung oder JS Code in function Nodes, da Du nun an jeder Stelle im Flow bestimmte Situation manuell triggern kannst.

        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.

        B 1 Reply Last reply
        0
        • mickymM mickym

          @bf0911 Na ja auf Deinem Screenshot sieht man ja nicht den Status der Nodes nicht. Du kannst ja auch noch mal die Zeitstempel in dem Shelly Adapter überprüfen, ob die PH Pumpe nach der Filter Pumpe nochmals eingeschaltet wurde.

          Generell prüfst Du ja auch noch nach dem Ausschalten der Pumpe und vor dem Ausschalten der Filterpumpe, ob beide Pumpen ausgeschaltet sind.

          dcf6c6ea-1f69-4be8-bf37-21953b5625a0-image.png

          Und dann sollten ja Debug Meldungen auftauchen. Vielleicht schreibst Du debug Meldungen wieder in das iobroker-log (Systemkonsole) (musst aber unbedingt die aktuelle Version drauf haben - in der 5.0.x Versionen hat man das leider fehlerhafterweise entfernt).

          Auserdem kannst Du ja mal versuchen - den scheduler zu durch Durchtrennen der Kabel zu deaktivieren und mit Inject Nodes mit true und false dieses Verhalten mit Inject Nodes zu simulieren, wie Du dir das denkst.

          11a26bdc-c85c-4338-babc-ba6d3120d8c1-image.png

          Und ganz zuletzt kannst mit einer Inject Node - noch einen unabhängigen Scheduler erstellen, der Dir in bestimmten Zeitabständen den Zustand Deiner Pumpen überprüfst (zumindest testweise).

          Ich vermute mal, dass der PH-Pumpe-Logik-Pfad noch durch ein "True" der Filterpumpe getriggert wurde, dann entsprechend gepumpt hat. Was ich aber nicht verstehe, ist warum die PH-Pumpe, durch diesen Zweig, nicht ausgeschaltet wurde.

          Wenn dem so wäre, würde ich halt die Prüfung

          5b4d3522-0654-402a-a0fe-5fcfddd9fe6e-image.png

          ganz nach hinten machen - direkt vor dem true schalten - dann sollte das ja ausgeschlossen sein.

          Dazu müsstest Du die Abprüfung ja nur nach in das orange markierte Kabel verlegen.

          05a01c87-8876-4604-9a8a-39b20f5f6dc9-image.png

          In die msg.reset Change Node kannst Du zur Sicherheit noch die payload löschen, damit (kann zwar in meinen Augen nicht) - da auf jeden Fall kein True der payload in den grauen Kasten gelangt:

          90e93a5d-6124-4b90-9665-5a84916d388f-image.png

          Und wie bereits erwähnt - nutze die Debug Node nach der Filter Node, um Dir das triggern durch den Scheduler ins iobroker log zu schreiben:

          7664a45c-70ea-4d8d-877e-96b5148efccf-image.png

          Wenn Du das Debuggen in die Systemkonsole eingeschaltet hast, dann bekommt die Debug-Node so einen Pfeil
          03bb711f-ab5e-4790-bf58-d5fc93dc22ee-image.png
          und Du siehst dann auch im Nachhinein - auch wenn Du den NodeRed Editor nicht offen hast, entsprechende Einträger im iobroker-log:

          0293fdb1-651f-405d-b00b-393502c3154d-image.png

          Und zu guter Letzt - natürlich schauen, dass nirgendwo anders deine PH Pumpe steuerst - alte Flows deaktiviert und keine weiteren Stellen, an den die PH Pumpe gesteuert wird.

          Ganz zum Schluss kannst ja auch mal testen, indem Du mit einer Inject Node false hier manuell injizierst

          4174c6bc-cf50-4262-ace3-cb124895a256-image.png

          ob der Shelly Adapter nicht überfordert ist, wenn beide Pumpen gleichzeitig ausgeschaltet werden. Wenn dem so sein sollte dann mach halt in einen Ast noch einen kleinen Delay von einer halben Sekunde rein. Glaub ich zwar nicht, aber kann man ja prüfen, ob die Adapter Befehle auch speichern oder quasi parallel abarbeiten.

          Das Simulieren von Situation mit Inject nodes ist ja einer der wesentlichen Vorteile von NodeRed - anstelle von herkömmlicher Programmierung oder JS Code in function Nodes, da Du nun an jeder Stelle im Flow bestimmte Situation manuell triggern kannst.

          B Online
          B Online
          BF0911
          wrote on last edited by
          #145

          @mickym

          Wow, wie immer eine ausführliche und verständliche Antwort.

          Ich werde mir das mal mit deinen Tipps anschauen.

          Danke!

          1 Reply Last reply
          0
          • B Online
            B Online
            BF0911
            wrote on last edited by
            #146

            @mickym said in Hilfe bei debuggen einer übernommenen Funktion:

            Und zu guter Letzt - natürlich schauen, dass nirgendwo anders deine PH Pumpe steuerst - alte Flows deaktiviert und keine weiteren Stellen, an den die PH Pumpe gesteuert wird.

            Wie genau meinst du das? oder bezieht sich das eher auf 2 Flows etc?

            Die PH- und Chlor-Pumpe werden in den Flow an 2 Stellen geschaltet.

            Einmal in dem "Zweig", Filter-Pumpe aus, dann Dosier-Pumpen aus und einmal in dem jeweiligen Logik-Zweig.

            mickymM 1 Reply Last reply
            0
            • B BF0911

              @mickym said in Hilfe bei debuggen einer übernommenen Funktion:

              Und zu guter Letzt - natürlich schauen, dass nirgendwo anders deine PH Pumpe steuerst - alte Flows deaktiviert und keine weiteren Stellen, an den die PH Pumpe gesteuert wird.

              Wie genau meinst du das? oder bezieht sich das eher auf 2 Flows etc?

              Die PH- und Chlor-Pumpe werden in den Flow an 2 Stellen geschaltet.

              Einmal in dem "Zweig", Filter-Pumpe aus, dann Dosier-Pumpen aus und einmal in dem jeweiligen Logik-Zweig.

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

              @bf0911 sagte in Hilfe bei debuggen einer übernommenen Funktion:

              Einmal in dem "Zweig", Filter-Pumpe aus, dann Dosier-Pumpen aus und einmal in dem jeweiligen Logik-Zweig.

              Na in dem Filter-Pumpe aus, können die ja nur ausgeschaltet werden, da ja nur false durchgelassen wird. In der Switch Node wird ja nur false durchgelassen (boolean).
              b01d5bed-50d9-4e06-b18e-c9111747ccfc-image.png

              Also kann ja nur an der Stelle mit der trigger node eingeschaltet werden. Also nur an einer Stelle. Wie gesagt Du kannst ja immer mit Inject Nodes testen oder die Bedingung dass die filter node aus sein muss, nach hinten an den ersten Ausgang der schaltenden trigger node machen.

              Die Wahrscheinlichkeit dass noch ein true Signal unterwegs ist, während schon abgeschaltet wurde halte ich eher für gering. Ausserdem selbst wenn sich die PH-Pumpe für 1 Minute einschaltet, sollte sie sich ja selbst wieder abschalten.

              Ich weiß ja nicht, ob Du noch irgendwo was manuell schaltest.

              Wie gesagt mit debug Nodes und inject Nodes arbeiten. Mehr kann ich auch nicht sagen. Ansonsten mach Dir wie gesagt einen Überwachungsflow - der Dir alle x Minuten den Zustand Deiner Pumpen meldet.

              Und wie gesagt die Debug Node beim Ausschalten, kannst Dir ja noch ins Log schreiben lassen
              502592ff-602f-4d47-85db-671c83b4023a-image.png

              Allerdings würde dann ja eigentlich die Filternode nicht ausgeschaltet.

              Wie gesagt - ich kanns mir im Moment auch nicht erklären, wenn der Flow so ist, wie ich ihn vor mir habe.

              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.

              B 1 Reply Last reply
              0
              • mickymM mickym

                @bf0911 sagte in Hilfe bei debuggen einer übernommenen Funktion:

                Einmal in dem "Zweig", Filter-Pumpe aus, dann Dosier-Pumpen aus und einmal in dem jeweiligen Logik-Zweig.

                Na in dem Filter-Pumpe aus, können die ja nur ausgeschaltet werden, da ja nur false durchgelassen wird. In der Switch Node wird ja nur false durchgelassen (boolean).
                b01d5bed-50d9-4e06-b18e-c9111747ccfc-image.png

                Also kann ja nur an der Stelle mit der trigger node eingeschaltet werden. Also nur an einer Stelle. Wie gesagt Du kannst ja immer mit Inject Nodes testen oder die Bedingung dass die filter node aus sein muss, nach hinten an den ersten Ausgang der schaltenden trigger node machen.

                Die Wahrscheinlichkeit dass noch ein true Signal unterwegs ist, während schon abgeschaltet wurde halte ich eher für gering. Ausserdem selbst wenn sich die PH-Pumpe für 1 Minute einschaltet, sollte sie sich ja selbst wieder abschalten.

                Ich weiß ja nicht, ob Du noch irgendwo was manuell schaltest.

                Wie gesagt mit debug Nodes und inject Nodes arbeiten. Mehr kann ich auch nicht sagen. Ansonsten mach Dir wie gesagt einen Überwachungsflow - der Dir alle x Minuten den Zustand Deiner Pumpen meldet.

                Und wie gesagt die Debug Node beim Ausschalten, kannst Dir ja noch ins Log schreiben lassen
                502592ff-602f-4d47-85db-671c83b4023a-image.png

                Allerdings würde dann ja eigentlich die Filternode nicht ausgeschaltet.

                Wie gesagt - ich kanns mir im Moment auch nicht erklären, wenn der Flow so ist, wie ich ihn vor mir habe.

                B Online
                B Online
                BF0911
                wrote on last edited by
                #148

                @mickym

                Ich hab mal wieder eine neue Idee, wo ich nicht so reicht weiß, wie man das sinnvoll umsetzt.

                Ich möchte, dass die Dosierpumpen-Logik erst 15 oder 30 Minuten nach Start der Filterpumpe starten.

                Das Delay-Node verzögert ja jede Nachricht um die entsprechende Zeit. Der UI-Scheduler schickt alle 30 Sekunden ein True oder False. Für mein Verständnis würde ja dann jedes true verzögert werden, was nicht gewünscht ist.

                Jetzt hatte ich testweise mal ein Filter-Node vor dem Delay gesetzt. In meiner Testumgebung mit Inject-Node, kam nur ein True an, bis ich halt ein false schicke. Soweit so richtig.

                Nun, ist die Frage, der Ui-Scheduler schickt ein "true" zum Start und triggern der einzelnen iobroker-get-Nodes. Diese werden dann aber durch den Filter dann erst wieder aktualisiert, wenn ein false kommt richtig? Und nicht wie bisher alle 30 SEkunden.

                Lange Rede, kurzer Sinn, bin ich auf dem richtigen WEg oder total falsch?

                mickymM 1 Reply Last reply
                0
                • B BF0911

                  @mickym

                  Ich hab mal wieder eine neue Idee, wo ich nicht so reicht weiß, wie man das sinnvoll umsetzt.

                  Ich möchte, dass die Dosierpumpen-Logik erst 15 oder 30 Minuten nach Start der Filterpumpe starten.

                  Das Delay-Node verzögert ja jede Nachricht um die entsprechende Zeit. Der UI-Scheduler schickt alle 30 Sekunden ein True oder False. Für mein Verständnis würde ja dann jedes true verzögert werden, was nicht gewünscht ist.

                  Jetzt hatte ich testweise mal ein Filter-Node vor dem Delay gesetzt. In meiner Testumgebung mit Inject-Node, kam nur ein True an, bis ich halt ein false schicke. Soweit so richtig.

                  Nun, ist die Frage, der Ui-Scheduler schickt ein "true" zum Start und triggern der einzelnen iobroker-get-Nodes. Diese werden dann aber durch den Filter dann erst wieder aktualisiert, wenn ein false kommt richtig? Und nicht wie bisher alle 30 SEkunden.

                  Lange Rede, kurzer Sinn, bin ich auf dem richtigen WEg oder total falsch?

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

                  @bf0911 Wenn Du das nicht mehr willst, dass der UI-Scheduler alle 30s sendet - dann brauchen wir auch keinen Filter Node für die Filterpumpe und den Rest der Pumpen - dann gewöhnen wir dem UI- Scheduler das Senden alle 30 s ab, in dem wir impliziert den Filter anwenden.

                  0ad2c63e-2667-4b99-8ebe-e4ecaa089e27-image.png

                  Sprich damit gewöhnen wir der UI-Scheduler Node generell ab, dass sie im Intervall sendet. Nun kommen nur noch Signale wenn der Zeitplan sich ändert. Diese Überpfügung alle 30 s kann man sich dann auch sparen und würde wieder auf default von 60s gehen, da Dich ja nur noch Änderungen interessieren.

                  Wenn du dass nun willst, das nur nach einem Aktivierungssignal nach 15 oder 30 Minuten der Flow für die Dosierpumpenlogik losläuft, dann nutze wieder eine Trigger Node.

                  Diese Trigger Node übernimmt vollständig das triggern der Dosierpumpen:

                  b8a5fb9c-e8b6-41eb-b639-678a43484b22-image.png

                  Immer versuchen den Flow so einfach wie möglich zu halten, um die Transparenz zu erhalten. Hier mal die veränderten Nodes zum Import:

                  [
                     {
                         "id": "678c75e771b741cf",
                         "type": "ui_time_scheduler",
                         "z": "d25606275138920f",
                         "group": "3979c1d87146b072",
                         "name": "",
                         "startDay": 0,
                         "refresh": "30",
                         "devices": [
                             "Filter-Pumpe"
                         ],
                         "singleOff": false,
                         "onlySendChange": true,
                         "customPayload": false,
                         "eventMode": false,
                         "eventOptions": [],
                         "sendTopic": false,
                         "lat": "",
                         "lon": "",
                         "customContextStore": "",
                         "outputs": 2,
                         "order": 1,
                         "width": 0,
                         "height": 0,
                         "x": 130,
                         "y": 1900,
                         "wires": [
                             [
                                 "734dada8a6cc2f4e"
                             ],
                             [
                                 "51faf2b5bfa34119"
                             ]
                         ]
                     },
                     {
                         "id": "51faf2b5bfa34119",
                         "type": "switch",
                         "z": "d25606275138920f",
                         "name": "Pumpenautomatik aktiv?",
                         "property": "Pumpenautomatik",
                         "propertyType": "flow",
                         "rules": [
                             {
                                 "t": "true"
                             }
                         ],
                         "checkall": "true",
                         "repair": false,
                         "outputs": 1,
                         "x": 370,
                         "y": 2100,
                         "wires": [
                             [
                                 "bf1b3cdd0ebcbe1f",
                                 "10db98b5762e33d9"
                             ]
                         ]
                     },
                     {
                         "id": "10db98b5762e33d9",
                         "type": "trigger",
                         "z": "d25606275138920f",
                         "name": "",
                         "op1": "",
                         "op2": "true",
                         "op1type": "nul",
                         "op2type": "bool",
                         "duration": "30",
                         "extend": false,
                         "overrideDelay": false,
                         "units": "min",
                         "reset": "false",
                         "bytopic": "all",
                         "topic": "topic",
                         "outputs": 1,
                         "x": 620,
                         "y": 2460,
                         "wires": [
                             [
                                 "1371455361c75baf",
                                 "083d7a431bf1c459"
                             ]
                         ]
                     },
                     {
                         "id": "083d7a431bf1c459",
                         "type": "debug",
                         "z": "d25606275138920f",
                         "name": "Starte Dosierpumpen",
                         "active": true,
                         "tosidebar": true,
                         "console": false,
                         "tostatus": false,
                         "complete": "payload",
                         "targetType": "msg",
                         "statusVal": "",
                         "statusType": "auto",
                         "x": 880,
                         "y": 2400,
                         "wires": []
                     },
                     {
                         "id": "3979c1d87146b072",
                         "type": "ui_group",
                         "name": "Scheduler",
                         "tab": "5fb772105c6cc8b7",
                         "order": 2,
                         "disp": true,
                         "width": "6",
                         "collapse": false,
                         "className": ""
                     },
                     {
                         "id": "5fb772105c6cc8b7",
                         "type": "ui_tab",
                         "name": "Home",
                         "icon": "dashboard",
                         "disabled": false,
                         "hidden": false
                     }
                  ]
                  

                  Da die trigger Node parallel für die Dosierpumpen genutzt wird, wird das triggern der Filter-Pumpe nicht verzögert.

                  Die trigger Node ist auch so definiert, wenn die Filterpumpen ausschalten, kommt ein false Signal, was den Trigger wieder zurücksetzt, sodass auch nicht 20 Minuten nach dem Ausschalten noch ein Einschaltsignal kommt.

                  903569c0-1f33-4cca-aba2-ed7f72f39b7d-image.png

                  Du kannst zwar nochmals überprüfen, ob die Filterpumpe läuft, aber das sollte nach der Logik ja nicht vorkommen und soweit ich in Erinnerung habe, prüfst Du das ja nochmal mit dem finalen Einschaltsignal.

                  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.

                  B 1 Reply Last reply
                  0
                  • mickymM mickym

                    @bf0911 Wenn Du das nicht mehr willst, dass der UI-Scheduler alle 30s sendet - dann brauchen wir auch keinen Filter Node für die Filterpumpe und den Rest der Pumpen - dann gewöhnen wir dem UI- Scheduler das Senden alle 30 s ab, in dem wir impliziert den Filter anwenden.

                    0ad2c63e-2667-4b99-8ebe-e4ecaa089e27-image.png

                    Sprich damit gewöhnen wir der UI-Scheduler Node generell ab, dass sie im Intervall sendet. Nun kommen nur noch Signale wenn der Zeitplan sich ändert. Diese Überpfügung alle 30 s kann man sich dann auch sparen und würde wieder auf default von 60s gehen, da Dich ja nur noch Änderungen interessieren.

                    Wenn du dass nun willst, das nur nach einem Aktivierungssignal nach 15 oder 30 Minuten der Flow für die Dosierpumpenlogik losläuft, dann nutze wieder eine Trigger Node.

                    Diese Trigger Node übernimmt vollständig das triggern der Dosierpumpen:

                    b8a5fb9c-e8b6-41eb-b639-678a43484b22-image.png

                    Immer versuchen den Flow so einfach wie möglich zu halten, um die Transparenz zu erhalten. Hier mal die veränderten Nodes zum Import:

                    [
                       {
                           "id": "678c75e771b741cf",
                           "type": "ui_time_scheduler",
                           "z": "d25606275138920f",
                           "group": "3979c1d87146b072",
                           "name": "",
                           "startDay": 0,
                           "refresh": "30",
                           "devices": [
                               "Filter-Pumpe"
                           ],
                           "singleOff": false,
                           "onlySendChange": true,
                           "customPayload": false,
                           "eventMode": false,
                           "eventOptions": [],
                           "sendTopic": false,
                           "lat": "",
                           "lon": "",
                           "customContextStore": "",
                           "outputs": 2,
                           "order": 1,
                           "width": 0,
                           "height": 0,
                           "x": 130,
                           "y": 1900,
                           "wires": [
                               [
                                   "734dada8a6cc2f4e"
                               ],
                               [
                                   "51faf2b5bfa34119"
                               ]
                           ]
                       },
                       {
                           "id": "51faf2b5bfa34119",
                           "type": "switch",
                           "z": "d25606275138920f",
                           "name": "Pumpenautomatik aktiv?",
                           "property": "Pumpenautomatik",
                           "propertyType": "flow",
                           "rules": [
                               {
                                   "t": "true"
                               }
                           ],
                           "checkall": "true",
                           "repair": false,
                           "outputs": 1,
                           "x": 370,
                           "y": 2100,
                           "wires": [
                               [
                                   "bf1b3cdd0ebcbe1f",
                                   "10db98b5762e33d9"
                               ]
                           ]
                       },
                       {
                           "id": "10db98b5762e33d9",
                           "type": "trigger",
                           "z": "d25606275138920f",
                           "name": "",
                           "op1": "",
                           "op2": "true",
                           "op1type": "nul",
                           "op2type": "bool",
                           "duration": "30",
                           "extend": false,
                           "overrideDelay": false,
                           "units": "min",
                           "reset": "false",
                           "bytopic": "all",
                           "topic": "topic",
                           "outputs": 1,
                           "x": 620,
                           "y": 2460,
                           "wires": [
                               [
                                   "1371455361c75baf",
                                   "083d7a431bf1c459"
                               ]
                           ]
                       },
                       {
                           "id": "083d7a431bf1c459",
                           "type": "debug",
                           "z": "d25606275138920f",
                           "name": "Starte Dosierpumpen",
                           "active": true,
                           "tosidebar": true,
                           "console": false,
                           "tostatus": false,
                           "complete": "payload",
                           "targetType": "msg",
                           "statusVal": "",
                           "statusType": "auto",
                           "x": 880,
                           "y": 2400,
                           "wires": []
                       },
                       {
                           "id": "3979c1d87146b072",
                           "type": "ui_group",
                           "name": "Scheduler",
                           "tab": "5fb772105c6cc8b7",
                           "order": 2,
                           "disp": true,
                           "width": "6",
                           "collapse": false,
                           "className": ""
                       },
                       {
                           "id": "5fb772105c6cc8b7",
                           "type": "ui_tab",
                           "name": "Home",
                           "icon": "dashboard",
                           "disabled": false,
                           "hidden": false
                       }
                    ]
                    

                    Da die trigger Node parallel für die Dosierpumpen genutzt wird, wird das triggern der Filter-Pumpe nicht verzögert.

                    Die trigger Node ist auch so definiert, wenn die Filterpumpen ausschalten, kommt ein false Signal, was den Trigger wieder zurücksetzt, sodass auch nicht 20 Minuten nach dem Ausschalten noch ein Einschaltsignal kommt.

                    903569c0-1f33-4cca-aba2-ed7f72f39b7d-image.png

                    Du kannst zwar nochmals überprüfen, ob die Filterpumpe läuft, aber das sollte nach der Logik ja nicht vorkommen und soweit ich in Erinnerung habe, prüfst Du das ja nochmal mit dem finalen Einschaltsignal.

                    B Online
                    B Online
                    BF0911
                    wrote on last edited by
                    #150

                    @mickym

                    Danke für die Ausführung.

                    Mein Flow sieht aktuell so aus:

                    Screenshot 2024-05-31 173758.png

                    Ich würde den Trigger ja hinter "Durchfluss vorhanden?" setzen.

                    Jetzt ist aber noch meine Frage offen, was passiert mit den Iobroker-Get-Nodes, wie "berechneter PH-Wert" oder "Filter-Pumpe", wenn ich den UI-Scheduler nicht mehr als 30 Sekunden aktualisieren lasse?

                    Dann würden die Werte doch nur bei jeder Werte-Änderung (True und False der Filter-Pumpe) aktualisiert oder?

                    Das macht natürlich wenig Sinn in so einer Logik.

                    Sollte man die Werte-Abfrage separieren und per Inject-Node, z. B. alle 30 SEkunden aktualisieren lassen und diese in Flow-Variablen schreiben lassen?

                    mickymM 1 Reply Last reply
                    0
                    • B BF0911

                      @mickym

                      Danke für die Ausführung.

                      Mein Flow sieht aktuell so aus:

                      Screenshot 2024-05-31 173758.png

                      Ich würde den Trigger ja hinter "Durchfluss vorhanden?" setzen.

                      Jetzt ist aber noch meine Frage offen, was passiert mit den Iobroker-Get-Nodes, wie "berechneter PH-Wert" oder "Filter-Pumpe", wenn ich den UI-Scheduler nicht mehr als 30 Sekunden aktualisieren lasse?

                      Dann würden die Werte doch nur bei jeder Werte-Änderung (True und False der Filter-Pumpe) aktualisiert oder?

                      Das macht natürlich wenig Sinn in so einer Logik.

                      Sollte man die Werte-Abfrage separieren und per Inject-Node, z. B. alle 30 SEkunden aktualisieren lassen und diese in Flow-Variablen schreiben lassen?

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

                      @bf0911 Nun ja ich denke, Du durchblickst das ja nun selbst nach Deinen Bedürfnissen. .

                      Ich würde den Trigger ja hinter "Durchfluss vorhanden?" setzen.

                      Ja wenn du den Scheduler so lässt, wie er ist, dann steuerst Du mit und ohne filter Node, ob alle 30s überprüft wird oder nur einmal.

                      Jetzt ist aber noch meine Frage offen, was passiert mit den Iobroker-Get-Nodes, wie "berechneter PH-Wert" oder "Filter-Pumpe", wenn ich den UI-Scheduler nicht mehr als 30 Sekunden aktualisieren lasse?

                      ja

                      Dann würden die Werte doch nur bei jeder Werte-Änderung (True und False der Filter-Pumpe) aktualisiert oder?

                      ja

                      Sollte man die Werte-Abfrage separieren und per Inject-Node, z. B. alle 30 SEkunden aktualisieren lassen und diese in Flow-Variablen schreiben lassen?

                      Kann man machen. Man kann aber auch, wenn die Pumpenautomatik aktiv ist, eine Triggernode alle 30 s triggern lassen.

                      Insgesamt glaube ich aber, dass Du das alles nun sehr gut verstanden hast und die Möglichkeiten nach Deinen Bedürnissen anzupassen.

                      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.

                      B 1 Reply Last reply
                      0
                      • mickymM mickym

                        @bf0911 Nun ja ich denke, Du durchblickst das ja nun selbst nach Deinen Bedürfnissen. .

                        Ich würde den Trigger ja hinter "Durchfluss vorhanden?" setzen.

                        Ja wenn du den Scheduler so lässt, wie er ist, dann steuerst Du mit und ohne filter Node, ob alle 30s überprüft wird oder nur einmal.

                        Jetzt ist aber noch meine Frage offen, was passiert mit den Iobroker-Get-Nodes, wie "berechneter PH-Wert" oder "Filter-Pumpe", wenn ich den UI-Scheduler nicht mehr als 30 Sekunden aktualisieren lasse?

                        ja

                        Dann würden die Werte doch nur bei jeder Werte-Änderung (True und False der Filter-Pumpe) aktualisiert oder?

                        ja

                        Sollte man die Werte-Abfrage separieren und per Inject-Node, z. B. alle 30 SEkunden aktualisieren lassen und diese in Flow-Variablen schreiben lassen?

                        Kann man machen. Man kann aber auch, wenn die Pumpenautomatik aktiv ist, eine Triggernode alle 30 s triggern lassen.

                        Insgesamt glaube ich aber, dass Du das alles nun sehr gut verstanden hast und die Möglichkeiten nach Deinen Bedürnissen anzupassen.

                        B Online
                        B Online
                        BF0911
                        wrote on last edited by
                        #152

                        Ich hab nochmal eine eher allgemeinere Frage.

                        Wir fällt des öftern auf, dass sie die Einstellungen auf dem Dashboard auf "default" setzen.

                        Womit kann das zusammenhängen?

                        mickymM 1 Reply Last reply
                        0
                        • B BF0911

                          Ich hab nochmal eine eher allgemeinere Frage.

                          Wir fällt des öftern auf, dass sie die Einstellungen auf dem Dashboard auf "default" setzen.

                          Womit kann das zusammenhängen?

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

                          @bf0911 Keine Ahnung. Wo mache ich das denn?

                          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.

                          B 1 Reply Last reply
                          0
                          • mickymM mickym

                            @bf0911 Keine Ahnung. Wo mache ich das denn?

                            B Online
                            B Online
                            BF0911
                            wrote on last edited by
                            #154

                            @mickym

                            Das wird meines Erachtens gar nicht gemacht, also irgendwelche Werte auf Default gesetzt.

                            Ich habe das Gefühl, dass sich das Dashboard die Werte nicht merkt bzw. die nicht mir mit dem Json übereinstimmt

                            mickymM 1 Reply Last reply
                            0
                            • B BF0911

                              @mickym

                              Das wird meines Erachtens gar nicht gemacht, also irgendwelche Werte auf Default gesetzt.

                              Ich habe das Gefühl, dass sich das Dashboard die Werte nicht merkt bzw. die nicht mir mit dem Json übereinstimmt

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

                              @bf0911 sagte in Hilfe bei debuggen einer übernommenen Funktion:

                              @mickym

                              Das wird meines Erachtens gar nicht gemacht, also irgendwelche Werte auf Default gesetzt.

                              Ich habe das Gefühl, dass sich das Dashboard die Werte nicht merkt bzw. die nicht mir mit dem Json übereinstimmt

                              Ja das ist richtig. Das Dashboard zeigt nur an und hat auch nicht die Aufgabe sich irgendwas zu merken. Es ist Deine Aufgabe ggf. Werte zu speichern und bei einem Neustart von NodeRed die Werte wieder entsprechend zu initialisieren. Zum Speichern von Werten kannst Du ja entweder mqtt nehmen oder Datenpunkte im iobroker unter 0_userdata.0 erstellen.

                              Wobei ich bei dem Thema Hausautomation lieber bevorzuge aktuelle Werte zu haben und ggf. lieber die Dinge nicht initialisiert habe und weiß, dass sie aktuell sind. Aber das muss man von Fall zu Fall entscheiden.

                              Wenn Du aber zum Beispiel Deinen ui_scheduler nimmst, solltest Du bei jeder Änderungen im Dashboard Dir die Zeitpläne abspeichern und dann beim Neustart wieder einlesen. Deswegen hat der ui_scheduler ja auch einen Eingang.

                              Hier einfach mal die Hilfe zu der Node lesen:
                              aae7f160-b0ef-4c3f-a9f7-6846353c639e-image.png

                              Angeblich kann man zwar mit dem neuen Adapter ab 5.2 auf localfilesystem umstellen, aber ich hab das nicht gefunden. Deshalb bleibt das alles nur im Arbeitsspeicher und ist nach Neustart von NodeRed wieder weg. Wie gesagt, musst Du selbst dafür sorgen, ggf. die Zeitpläne in einem Datenpunkt abzuspeichern, dann bei Neustart wieder einzulesen und in den ui_scheduler einzuspeisen.

                              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.

                              B 1 Reply Last reply
                              0
                              • mickymM mickym

                                @bf0911 sagte in Hilfe bei debuggen einer übernommenen Funktion:

                                @mickym

                                Das wird meines Erachtens gar nicht gemacht, also irgendwelche Werte auf Default gesetzt.

                                Ich habe das Gefühl, dass sich das Dashboard die Werte nicht merkt bzw. die nicht mir mit dem Json übereinstimmt

                                Ja das ist richtig. Das Dashboard zeigt nur an und hat auch nicht die Aufgabe sich irgendwas zu merken. Es ist Deine Aufgabe ggf. Werte zu speichern und bei einem Neustart von NodeRed die Werte wieder entsprechend zu initialisieren. Zum Speichern von Werten kannst Du ja entweder mqtt nehmen oder Datenpunkte im iobroker unter 0_userdata.0 erstellen.

                                Wobei ich bei dem Thema Hausautomation lieber bevorzuge aktuelle Werte zu haben und ggf. lieber die Dinge nicht initialisiert habe und weiß, dass sie aktuell sind. Aber das muss man von Fall zu Fall entscheiden.

                                Wenn Du aber zum Beispiel Deinen ui_scheduler nimmst, solltest Du bei jeder Änderungen im Dashboard Dir die Zeitpläne abspeichern und dann beim Neustart wieder einlesen. Deswegen hat der ui_scheduler ja auch einen Eingang.

                                Hier einfach mal die Hilfe zu der Node lesen:
                                aae7f160-b0ef-4c3f-a9f7-6846353c639e-image.png

                                Angeblich kann man zwar mit dem neuen Adapter ab 5.2 auf localfilesystem umstellen, aber ich hab das nicht gefunden. Deshalb bleibt das alles nur im Arbeitsspeicher und ist nach Neustart von NodeRed wieder weg. Wie gesagt, musst Du selbst dafür sorgen, ggf. die Zeitpläne in einem Datenpunkt abzuspeichern, dann bei Neustart wieder einzulesen und in den ui_scheduler einzuspeisen.

                                B Online
                                B Online
                                BF0911
                                wrote on last edited by
                                #156

                                @mickym

                                Entweder habe ich dich bzw. deine Antwort nicht ganz verstanden oder das Problem ist hier ein anderes.

                                Anbei drei Screenshots.

                                Zwei zeigen, das Dashboard, was sich willkürlich auf "Default" gesetzt hat.

                                Im Flow ist aber aus meiner Sicht, genau das, was du vorgeschlagen hast, bereits realisiert.

                                Es wird das "Objekt" Chlor-Parameter eingelesen und wenn dann über das Dashboard was geändert wurde, wieder in das Objekt geschrieben.

                                Die Werte im Objekt bleiben so, wie eingestellt, auch wenn das Dashboard sich auf "default" stellt.

                                z. B. der Redox-Grenzwert steht im Objekt auf 790 (gewünschte Einstellung) im Dashboard aber auf 750.

                                Ich hoffe, du verstehst was ich meine bzw. aus deiner Antwort verstanden habe.
                                Screenshot_20240829_160954_Chrome.jpg Screenshot_20240829_160947_Chrome.jpg Screenshot 2024-08-30 093415.png

                                mickymM 1 Reply Last reply
                                0
                                • B BF0911

                                  @mickym

                                  Entweder habe ich dich bzw. deine Antwort nicht ganz verstanden oder das Problem ist hier ein anderes.

                                  Anbei drei Screenshots.

                                  Zwei zeigen, das Dashboard, was sich willkürlich auf "Default" gesetzt hat.

                                  Im Flow ist aber aus meiner Sicht, genau das, was du vorgeschlagen hast, bereits realisiert.

                                  Es wird das "Objekt" Chlor-Parameter eingelesen und wenn dann über das Dashboard was geändert wurde, wieder in das Objekt geschrieben.

                                  Die Werte im Objekt bleiben so, wie eingestellt, auch wenn das Dashboard sich auf "default" stellt.

                                  z. B. der Redox-Grenzwert steht im Objekt auf 790 (gewünschte Einstellung) im Dashboard aber auf 750.

                                  Ich hoffe, du verstehst was ich meine bzw. aus deiner Antwort verstanden habe.
                                  Screenshot_20240829_160954_Chrome.jpg Screenshot_20240829_160947_Chrome.jpg Screenshot 2024-08-30 093415.png

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

                                  @bf0911 Also ich kann Dir nur sagen, dass sich das Dashboard von sich aus nichts merkt. Wie gesagt werden die Defaultwerte nur gesetzt, wenn Du

                                  1. Alle Flows neustartest
                                  2. Den Adapter oder iobroker neu startest.

                                  Wenn in den Objekten alles richtig ist, dann lies die halt beim Start von NodeRed ein.

                                  So was sieht mir danach aus, als ob beim Start undefinierte Werte vorliegen.

                                  6a0f302b-aa19-4aa2-988e-49e41027bdb8-image.png

                                  Schau mal, ob Du beim Start von NodeRed das Objekt auch einliest.

                                  4083a4cc-2294-4f3b-8955-bb79e4dddd60-image.png

                                  Ansonsten musst Du schauen, woher die Werte kommen und wann das auftritt. Das Dashboard setzt sich nur bei Neustart oder beim Zurücksetzen aller Flows zurück.
                                  Also Flows neustarten setzt auch das Dashboard zurück:

                                  71038981-26b9-4252-bc4f-80c9b26745fa-image.png

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

                                  1 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

                                  533

                                  Online

                                  32.4k

                                  Users

                                  81.4k

                                  Topics

                                  1.3m

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

                                  • Don't have an account? Register

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