Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • 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

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

  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.4k

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

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

Hilfe bei debuggen einer übernommenen Funktion

Geplant Angeheftet Gesperrt Verschoben Node-Red
157 Beiträge 2 Kommentatoren 15.0k Aufrufe 2 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • B BF0911

    @mickym

    Danke, habe den Flow direkt deaktiviert.

    mickymM Offline
    mickymM Offline
    mickym
    Most Active
    schrieb am zuletzt editiert von
    #131

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

    @mickym

    Danke, habe den Flow direkt deaktiviert.

    Wie gesagt auch für später ist es immer wichtig die Stellen, wo Du was ausgibst möglichst übersichtlich hälst. Im Idealfall einmal - manchmal auch an mehreren Stellen, um das Ganze übersichtlich zu halten.

    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 Antwort Letzte Antwort
    0
    • mickymM Offline
      mickymM Offline
      mickym
      Most Active
      schrieb am zuletzt editiert von
      #132

      Ich verabschiede mich dann mal, wenn Du noch was auf dem Herzen hast dann schreibs rein. Entweder bekommst dann eine Antwort direkt, aber ich geh ja mal davon aus, dass Du am Nachmittag dann wieder ins reale Leben abtauchst. ;)

      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 Antwort Letzte Antwort
      0
      • mickymM mickym

        Ich verabschiede mich dann mal, wenn Du noch was auf dem Herzen hast dann schreibs rein. Entweder bekommst dann eine Antwort direkt, aber ich geh ja mal davon aus, dass Du am Nachmittag dann wieder ins reale Leben abtauchst. ;)

        B Online
        B Online
        BF0911
        schrieb am zuletzt editiert von
        #133

        @mickym

        Ich bedanke mich total bei dir!

        Ich habe soviel gelernt und verstanden! Stark!

        Ja, genau, ich bin gleich auch erstmal wieder in der echten Welt.

        Werde mich aber sicherlich nochmal melden, spätestens wenn der Flow komplett ist!

        B 1 Antwort Letzte Antwort
        0
        • B BF0911

          @mickym

          Ich bedanke mich total bei dir!

          Ich habe soviel gelernt und verstanden! Stark!

          Ja, genau, ich bin gleich auch erstmal wieder in der echten Welt.

          Werde mich aber sicherlich nochmal melden, spätestens wenn der Flow komplett ist!

          B Online
          B Online
          BF0911
          schrieb am zuletzt editiert von
          #134

          Es scheint immer noch ein Problem mit dem "Vergleich" ist zu Gesamt-Laufzeit Ph-Pumpe zu geben

          Egal, welche deiner beiden Nodes ich nutze, es wird kein true weitergeleitet.

          Es kommt auf jeden Fall von "Chlor-Pumpe nicht aktiv?" noch ein True. Das habe debuggt.

          Screenshot 2024-05-16 150527.png

          mickymM B 2 Antworten Letzte Antwort
          0
          • B BF0911

            Es scheint immer noch ein Problem mit dem "Vergleich" ist zu Gesamt-Laufzeit Ph-Pumpe zu geben

            Egal, welche deiner beiden Nodes ich nutze, es wird kein true weitergeleitet.

            Es kommt auf jeden Fall von "Chlor-Pumpe nicht aktiv?" noch ein True. Das habe debuggt.

            Screenshot 2024-05-16 150527.png

            mickymM Offline
            mickymM Offline
            mickym
            Most Active
            schrieb am zuletzt editiert von
            #135

            @bf0911 Na sowas kann ich doch gar nicht beantworten.

            b9c86ba1-59f5-4fac-9c99-19110b15d16b-image.png

            Du verdoppelst die Nachricht und deaktivierst die Tageslaufzeit.

            Was kommt den wo raus?

            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 Antwort Letzte Antwort
            0
            • B BF0911

              Es scheint immer noch ein Problem mit dem "Vergleich" ist zu Gesamt-Laufzeit Ph-Pumpe zu geben

              Egal, welche deiner beiden Nodes ich nutze, es wird kein true weitergeleitet.

              Es kommt auf jeden Fall von "Chlor-Pumpe nicht aktiv?" noch ein True. Das habe debuggt.

              Screenshot 2024-05-16 150527.png

              B Online
              B Online
              BF0911
              schrieb am zuletzt editiert von
              #136

              Und bei den Schaltern für den Automatik-Modus Chlor und PH gibt es Problem.

              Die Schalter werden bei den Strings "ON" und "OFF" geschaltet.

              Da muss offensichtlich was anderes rein

              B 1 Antwort Letzte Antwort
              0
              • B BF0911

                Und bei den Schaltern für den Automatik-Modus Chlor und PH gibt es Problem.

                Die Schalter werden bei den Strings "ON" und "OFF" geschaltet.

                Da muss offensichtlich was anderes rein

                B Online
                B Online
                BF0911
                schrieb am zuletzt editiert von
                #137

                Der Debug-Node "Chlor-Pumpe nicht aktiv?" gibt ein True aus, das soll ja durch "<max. Laufzeit" oder "max.Laufzeit nicht erreicht?" weitergeleitet werden, auf die Abfrage "PH-Automatik aktiv?" und dann ja die PH-Pumpe einschalten.

                Die beiden Nodes sind jetzt aus Testgründen zusammen drin.

                Nehme ich die Max-Tageslaufzeit-Abfrage raus, funktioniert die Logik und die PH-Pumpe schaltet

                mickymM 1 Antwort Letzte Antwort
                0
                • B BF0911

                  Der Debug-Node "Chlor-Pumpe nicht aktiv?" gibt ein True aus, das soll ja durch "<max. Laufzeit" oder "max.Laufzeit nicht erreicht?" weitergeleitet werden, auf die Abfrage "PH-Automatik aktiv?" und dann ja die PH-Pumpe einschalten.

                  Die beiden Nodes sind jetzt aus Testgründen zusammen drin.

                  Nehme ich die Max-Tageslaufzeit-Abfrage raus, funktioniert die Logik und die PH-Pumpe schaltet

                  mickymM Offline
                  mickymM Offline
                  mickym
                  Most Active
                  schrieb am zuletzt editiert von mickym
                  #138

                  @bf0911 Wie gesagt teste es in dem Du Dir die Switches aus dem Flow einzeln testest:

                  Test Deine Switch Nodes halt getrennt vom Flow:

                  36ac5300-b1c4-4761-9a7c-789edec24cd0-image.png

                  Oben lässt durch, weil die Automatik auf OFF steht.
                  f53abb4c-fa8a-4465-984b-27869845cfe6-image.png

                  [
                     {
                         "id": "5a06d880e13db423",
                         "type": "switch",
                         "z": "d25606275138920f",
                         "name": "",
                         "property": "PH_Parameter.PH_Pumpe_Automatik",
                         "propertyType": "flow",
                         "rules": [
                             {
                                 "t": "eq",
                                 "v": "OFF",
                                 "vt": "str"
                             }
                         ],
                         "checkall": "true",
                         "repair": false,
                         "outputs": 1,
                         "x": 1270,
                         "y": 3120,
                         "wires": [
                             [
                                 "2a46d8527419d1de"
                             ]
                         ]
                     },
                     {
                         "id": "2a46d8527419d1de",
                         "type": "debug",
                         "z": "d25606275138920f",
                         "name": "test",
                         "active": true,
                         "tosidebar": true,
                         "console": false,
                         "tostatus": false,
                         "complete": "payload",
                         "targetType": "msg",
                         "statusVal": "",
                         "statusType": "auto",
                         "x": 1410,
                         "y": 3120,
                         "wires": []
                     },
                     {
                         "id": "228a6ad0adf15765",
                         "type": "inject",
                         "z": "d25606275138920f",
                         "name": "",
                         "props": [
                             {
                                 "p": "payload"
                             }
                         ],
                         "repeat": "",
                         "crontab": "",
                         "once": false,
                         "onceDelay": 0.1,
                         "topic": "",
                         "payload": "Dies ist ein Test",
                         "payloadType": "str",
                         "x": 1100,
                         "y": 3120,
                         "wires": [
                             [
                                 "5a06d880e13db423"
                             ]
                         ]
                     },
                     {
                         "id": "b0e46ea62e68cf43",
                         "type": "switch",
                         "z": "d25606275138920f",
                         "name": "",
                         "property": "PH_Parameter.PH_Pumpe_Automatik",
                         "propertyType": "flow",
                         "rules": [
                             {
                                 "t": "eq",
                                 "v": "ON",
                                 "vt": "str"
                             }
                         ],
                         "checkall": "true",
                         "repair": false,
                         "outputs": 1,
                         "x": 1270,
                         "y": 3180,
                         "wires": [
                             [
                                 "9de1a93d06536ca7"
                             ]
                         ]
                     },
                     {
                         "id": "9de1a93d06536ca7",
                         "type": "debug",
                         "z": "d25606275138920f",
                         "name": "test",
                         "active": true,
                         "tosidebar": true,
                         "console": false,
                         "tostatus": false,
                         "complete": "payload",
                         "targetType": "msg",
                         "statusVal": "",
                         "statusType": "auto",
                         "x": 1410,
                         "y": 3180,
                         "wires": []
                     },
                     {
                         "id": "c6a98dc4bce67b4b",
                         "type": "inject",
                         "z": "d25606275138920f",
                         "name": "",
                         "props": [
                             {
                                 "p": "payload"
                             }
                         ],
                         "repeat": "",
                         "crontab": "",
                         "once": false,
                         "onceDelay": 0.1,
                         "topic": "",
                         "payload": "Dies ist ein Test",
                         "payloadType": "str",
                         "x": 1100,
                         "y": 3180,
                         "wires": [
                             [
                                 "b0e46ea62e68cf43"
                             ]
                         ]
                     }
                  ]
                  

                  und bei der Laufzeit das Gleiche - wie gesagt die Konstante unten rein.

                  e0e17bdc-7016-4163-ac27-198d81327838-image.png

                  Wie du siehst wird bei 8 Minuten geblockt und unter 7 Minuten nicht.

                  [
                     {
                         "id": "b4a85244852fce78",
                         "type": "switch",
                         "z": "d25606275138920f",
                         "name": "",
                         "property": "PHPumpe_Laufzeit_Total.minutes",
                         "propertyType": "flow",
                         "rules": [
                             {
                                 "t": "lte",
                                 "v": "PH_Parameter.MaxTagesLaufzeit_min",
                                 "vt": "flow"
                             }
                         ],
                         "checkall": "true",
                         "repair": false,
                         "outputs": 1,
                         "x": 1290,
                         "y": 3340,
                         "wires": [
                             [
                                 "5ca9c435503069b0"
                             ]
                         ]
                     },
                     {
                         "id": "265b29ab0aaaec2f",
                         "type": "inject",
                         "z": "d25606275138920f",
                         "name": "",
                         "props": [
                             {
                                 "p": "payload"
                             }
                         ],
                         "repeat": "",
                         "crontab": "",
                         "once": false,
                         "onceDelay": 0.1,
                         "topic": "",
                         "payload": "Dies ist ein Test",
                         "payloadType": "str",
                         "x": 680,
                         "y": 3300,
                         "wires": [
                             [
                                 "76b45739cd7ee3fa"
                             ]
                         ]
                     },
                     {
                         "id": "76b45739cd7ee3fa",
                         "type": "change",
                         "z": "d25606275138920f",
                         "name": "",
                         "rules": [
                             {
                                 "t": "set",
                                 "p": "PHPumpe_Laufzeit_Total.minutes",
                                 "pt": "flow",
                                 "to": "0",
                                 "tot": "num"
                             }
                         ],
                         "action": "",
                         "property": "",
                         "from": "",
                         "to": "",
                         "reg": false,
                         "x": 990,
                         "y": 3300,
                         "wires": [
                             [
                                 "b4a85244852fce78"
                             ]
                         ]
                     },
                     {
                         "id": "5ca9c435503069b0",
                         "type": "debug",
                         "z": "d25606275138920f",
                         "name": "test",
                         "active": true,
                         "tosidebar": true,
                         "console": false,
                         "tostatus": false,
                         "complete": "payload",
                         "targetType": "msg",
                         "statusVal": "",
                         "statusType": "auto",
                         "x": 1430,
                         "y": 3340,
                         "wires": []
                     },
                     {
                         "id": "fff4e08af65548df",
                         "type": "inject",
                         "z": "d25606275138920f",
                         "name": "",
                         "props": [
                             {
                                 "p": "payload"
                             }
                         ],
                         "repeat": "",
                         "crontab": "",
                         "once": false,
                         "onceDelay": 0.1,
                         "topic": "",
                         "payload": "Dies ist ein Test",
                         "payloadType": "str",
                         "x": 680,
                         "y": 3360,
                         "wires": [
                             [
                                 "aed3d5cc1789e01b"
                             ]
                         ]
                     },
                     {
                         "id": "aed3d5cc1789e01b",
                         "type": "change",
                         "z": "d25606275138920f",
                         "name": "",
                         "rules": [
                             {
                                 "t": "set",
                                 "p": "PHPumpe_Laufzeit_Total.minutes",
                                 "pt": "flow",
                                 "to": "8",
                                 "tot": "num"
                             }
                         ],
                         "action": "",
                         "property": "",
                         "from": "",
                         "to": "",
                         "reg": false,
                         "x": 990,
                         "y": 3360,
                         "wires": [
                             [
                                 "b4a85244852fce78"
                             ]
                         ]
                     }
                  ]
                  

                  Was im Kleinen funktioniert, funktioniert dann auch im Flow.

                  Die Anzeige des Kontexts musst Du bei jeder Ansicht neu aktualisieren:

                  5978fade-c0bb-4b46-98a1-0cbe940f8094-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.

                  B 1 Antwort Letzte Antwort
                  0
                  • mickymM mickym

                    @bf0911 Wie gesagt teste es in dem Du Dir die Switches aus dem Flow einzeln testest:

                    Test Deine Switch Nodes halt getrennt vom Flow:

                    36ac5300-b1c4-4761-9a7c-789edec24cd0-image.png

                    Oben lässt durch, weil die Automatik auf OFF steht.
                    f53abb4c-fa8a-4465-984b-27869845cfe6-image.png

                    [
                       {
                           "id": "5a06d880e13db423",
                           "type": "switch",
                           "z": "d25606275138920f",
                           "name": "",
                           "property": "PH_Parameter.PH_Pumpe_Automatik",
                           "propertyType": "flow",
                           "rules": [
                               {
                                   "t": "eq",
                                   "v": "OFF",
                                   "vt": "str"
                               }
                           ],
                           "checkall": "true",
                           "repair": false,
                           "outputs": 1,
                           "x": 1270,
                           "y": 3120,
                           "wires": [
                               [
                                   "2a46d8527419d1de"
                               ]
                           ]
                       },
                       {
                           "id": "2a46d8527419d1de",
                           "type": "debug",
                           "z": "d25606275138920f",
                           "name": "test",
                           "active": true,
                           "tosidebar": true,
                           "console": false,
                           "tostatus": false,
                           "complete": "payload",
                           "targetType": "msg",
                           "statusVal": "",
                           "statusType": "auto",
                           "x": 1410,
                           "y": 3120,
                           "wires": []
                       },
                       {
                           "id": "228a6ad0adf15765",
                           "type": "inject",
                           "z": "d25606275138920f",
                           "name": "",
                           "props": [
                               {
                                   "p": "payload"
                               }
                           ],
                           "repeat": "",
                           "crontab": "",
                           "once": false,
                           "onceDelay": 0.1,
                           "topic": "",
                           "payload": "Dies ist ein Test",
                           "payloadType": "str",
                           "x": 1100,
                           "y": 3120,
                           "wires": [
                               [
                                   "5a06d880e13db423"
                               ]
                           ]
                       },
                       {
                           "id": "b0e46ea62e68cf43",
                           "type": "switch",
                           "z": "d25606275138920f",
                           "name": "",
                           "property": "PH_Parameter.PH_Pumpe_Automatik",
                           "propertyType": "flow",
                           "rules": [
                               {
                                   "t": "eq",
                                   "v": "ON",
                                   "vt": "str"
                               }
                           ],
                           "checkall": "true",
                           "repair": false,
                           "outputs": 1,
                           "x": 1270,
                           "y": 3180,
                           "wires": [
                               [
                                   "9de1a93d06536ca7"
                               ]
                           ]
                       },
                       {
                           "id": "9de1a93d06536ca7",
                           "type": "debug",
                           "z": "d25606275138920f",
                           "name": "test",
                           "active": true,
                           "tosidebar": true,
                           "console": false,
                           "tostatus": false,
                           "complete": "payload",
                           "targetType": "msg",
                           "statusVal": "",
                           "statusType": "auto",
                           "x": 1410,
                           "y": 3180,
                           "wires": []
                       },
                       {
                           "id": "c6a98dc4bce67b4b",
                           "type": "inject",
                           "z": "d25606275138920f",
                           "name": "",
                           "props": [
                               {
                                   "p": "payload"
                               }
                           ],
                           "repeat": "",
                           "crontab": "",
                           "once": false,
                           "onceDelay": 0.1,
                           "topic": "",
                           "payload": "Dies ist ein Test",
                           "payloadType": "str",
                           "x": 1100,
                           "y": 3180,
                           "wires": [
                               [
                                   "b0e46ea62e68cf43"
                               ]
                           ]
                       }
                    ]
                    

                    und bei der Laufzeit das Gleiche - wie gesagt die Konstante unten rein.

                    e0e17bdc-7016-4163-ac27-198d81327838-image.png

                    Wie du siehst wird bei 8 Minuten geblockt und unter 7 Minuten nicht.

                    [
                       {
                           "id": "b4a85244852fce78",
                           "type": "switch",
                           "z": "d25606275138920f",
                           "name": "",
                           "property": "PHPumpe_Laufzeit_Total.minutes",
                           "propertyType": "flow",
                           "rules": [
                               {
                                   "t": "lte",
                                   "v": "PH_Parameter.MaxTagesLaufzeit_min",
                                   "vt": "flow"
                               }
                           ],
                           "checkall": "true",
                           "repair": false,
                           "outputs": 1,
                           "x": 1290,
                           "y": 3340,
                           "wires": [
                               [
                                   "5ca9c435503069b0"
                               ]
                           ]
                       },
                       {
                           "id": "265b29ab0aaaec2f",
                           "type": "inject",
                           "z": "d25606275138920f",
                           "name": "",
                           "props": [
                               {
                                   "p": "payload"
                               }
                           ],
                           "repeat": "",
                           "crontab": "",
                           "once": false,
                           "onceDelay": 0.1,
                           "topic": "",
                           "payload": "Dies ist ein Test",
                           "payloadType": "str",
                           "x": 680,
                           "y": 3300,
                           "wires": [
                               [
                                   "76b45739cd7ee3fa"
                               ]
                           ]
                       },
                       {
                           "id": "76b45739cd7ee3fa",
                           "type": "change",
                           "z": "d25606275138920f",
                           "name": "",
                           "rules": [
                               {
                                   "t": "set",
                                   "p": "PHPumpe_Laufzeit_Total.minutes",
                                   "pt": "flow",
                                   "to": "0",
                                   "tot": "num"
                               }
                           ],
                           "action": "",
                           "property": "",
                           "from": "",
                           "to": "",
                           "reg": false,
                           "x": 990,
                           "y": 3300,
                           "wires": [
                               [
                                   "b4a85244852fce78"
                               ]
                           ]
                       },
                       {
                           "id": "5ca9c435503069b0",
                           "type": "debug",
                           "z": "d25606275138920f",
                           "name": "test",
                           "active": true,
                           "tosidebar": true,
                           "console": false,
                           "tostatus": false,
                           "complete": "payload",
                           "targetType": "msg",
                           "statusVal": "",
                           "statusType": "auto",
                           "x": 1430,
                           "y": 3340,
                           "wires": []
                       },
                       {
                           "id": "fff4e08af65548df",
                           "type": "inject",
                           "z": "d25606275138920f",
                           "name": "",
                           "props": [
                               {
                                   "p": "payload"
                               }
                           ],
                           "repeat": "",
                           "crontab": "",
                           "once": false,
                           "onceDelay": 0.1,
                           "topic": "",
                           "payload": "Dies ist ein Test",
                           "payloadType": "str",
                           "x": 680,
                           "y": 3360,
                           "wires": [
                               [
                                   "aed3d5cc1789e01b"
                               ]
                           ]
                       },
                       {
                           "id": "aed3d5cc1789e01b",
                           "type": "change",
                           "z": "d25606275138920f",
                           "name": "",
                           "rules": [
                               {
                                   "t": "set",
                                   "p": "PHPumpe_Laufzeit_Total.minutes",
                                   "pt": "flow",
                                   "to": "8",
                                   "tot": "num"
                               }
                           ],
                           "action": "",
                           "property": "",
                           "from": "",
                           "to": "",
                           "reg": false,
                           "x": 990,
                           "y": 3360,
                           "wires": [
                               [
                                   "b4a85244852fce78"
                               ]
                           ]
                       }
                    ]
                    

                    Was im Kleinen funktioniert, funktioniert dann auch im Flow.

                    Die Anzeige des Kontexts musst Du bei jeder Ansicht neu aktualisieren:

                    5978fade-c0bb-4b46-98a1-0cbe940f8094-image.png

                    B Online
                    B Online
                    BF0911
                    schrieb am zuletzt editiert von
                    #139

                    @mickym

                    Node passt jetzt und der PH-Automatik-Zweig läuft (so wie er soll).

                    Danke!

                    Was ich eben noch festgestellt habe, ist dass wenn ich die Filter-Pumpe manuell per (Soft- oder Hardware)-Schalter einschalte, dass hier natürlich die Laufzeit auf eine Minute begrenzt ist, weil ja, die Zeitsteuerung nicht aktiv ist.

                    Das ist suboptimal. Was wäre hier ein sinnvoller Weg? Doch mit einem Betriebsmodus zu arbeiten?

                    Ideal wäre es, wenn ich die Pumpe zusätzlich zum Scheduler einschalten kann, sie dann aber so lange läuft bis der Scheduler ein False sendet.

                    mickymM 1 Antwort Letzte Antwort
                    0
                    • B BF0911

                      @mickym

                      Node passt jetzt und der PH-Automatik-Zweig läuft (so wie er soll).

                      Danke!

                      Was ich eben noch festgestellt habe, ist dass wenn ich die Filter-Pumpe manuell per (Soft- oder Hardware)-Schalter einschalte, dass hier natürlich die Laufzeit auf eine Minute begrenzt ist, weil ja, die Zeitsteuerung nicht aktiv ist.

                      Das ist suboptimal. Was wäre hier ein sinnvoller Weg? Doch mit einem Betriebsmodus zu arbeiten?

                      Ideal wäre es, wenn ich die Pumpe zusätzlich zum Scheduler einschalten kann, sie dann aber so lange läuft bis der Scheduler ein False sendet.

                      mickymM Offline
                      mickymM Offline
                      mickym
                      Most Active
                      schrieb am zuletzt editiert von mickym
                      #140

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

                      Was ich eben noch festgestellt habe, ist dass wenn ich die Filter-Pumpe manuell per (Soft- oder Hardware)-Schalter einschalte, dass hier natürlich die Laufzeit auf eine Minute begrenzt ist, weil ja, die Zeitsteuerung nicht aktiv ist.

                      Das widerspricht sich doch in der Aussage?

                      Die Laufzeit ist doch nicht begrenzt, wenn die Zeitsteuerung nich aktiv ist?
                      Die Zeitsteuerung hat doch nur die ph-Pumpe gesteuert?

                      Und wenn Du willst, dass die ph-Pumpen Steuerung immer aktiv ist, egal ob manuell oder automatisch geschaltet wird, dann musst Du halt einfach den ganzen Block rausnehmen und dann ist er unabhängig von der Filterpumpen automatik.

                      Ansonsten kannst Du oben ja nochmal gerne nur den Automatikmodus ermitteln und ggf. unten noch blockieren.

                      cbdcf17b-a076-4ffd-a8fd-82fe898fe534-image.png

                      [
                         {
                             "id": "b72cf3fd45869c96",
                             "type": "change",
                             "z": "d25606275138920f",
                             "name": "Automatikmodus ermitteln",
                             "rules": [
                                 {
                                     "t": "set",
                                     "p": "payload",
                                     "pt": "msg",
                                     "to": "$not(payload.settings.disabledDevices~>$reduce(function($result,$v){$v=\"0\" or $result},false))",
                                     "tot": "jsonata"
                                 },
                                 {
                                     "t": "set",
                                     "p": "topic",
                                     "pt": "msg",
                                     "to": "Pumpenautomatik",
                                     "tot": "str"
                                 },
                                 {
                                     "t": "set",
                                     "p": "Pumpenautomatik",
                                     "pt": "flow",
                                     "to": "payload",
                                     "tot": "msg"
                                 }
                             ],
                             "action": "",
                             "property": "",
                             "from": "",
                             "to": "",
                             "reg": false,
                             "x": 550,
                             "y": 1700,
                             "wires": [
                                 [
                                     "03cc276ea13023ba"
                                 ]
                             ]
                         },
                         {
                             "id": "03cc276ea13023ba",
                             "type": "debug",
                             "z": "d25606275138920f",
                             "name": "Zeitautomatik",
                             "active": true,
                             "tosidebar": true,
                             "console": false,
                             "tostatus": false,
                             "complete": "payload",
                             "targetType": "msg",
                             "statusVal": "",
                             "statusType": "auto",
                             "x": 800,
                             "y": 1700,
                             "wires": []
                         },
                         {
                             "id": "734dada8a6cc2f4e",
                             "type": "json",
                             "z": "d25606275138920f",
                             "name": "",
                             "property": "payload",
                             "action": "",
                             "pretty": false,
                             "x": 330,
                             "y": 1700,
                             "wires": [
                                 [
                                     "b72cf3fd45869c96"
                                 ]
                             ]
                         },
                         {
                             "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": 1960,
                             "wires": [
                                 [
                                     "b8bcbf73e79b080b",
                                     "b6a4b77cf6b5b8e4"
                                 ]
                             ]
                         }
                      ]
                      

                      Ich würde jedoch sauberer die ph-Pumpen oder welche Pumpen auch immer aus dem Automatikast entfernen, wenn diese Logik auch erhalten bleiben soll unabhängig, ob die Filterpumpenautomatik aktiv ist.

                      Aber letztlich glaube ich, dass Du das selbst nun umsetzen kannst. Das sind ja nun keine technischen Probleme mehr. ;) Wie gesagt oben habe ich Dir nochmal die Nodes zur Verfügung gestellt mit der Du prüfen bzw. eine Flowvariable setzen kannst, um zu prüfen ob der Automatikmodus der scheduler Node für die Filterpumpe aktiv ist.

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

                      B 1 Antwort Letzte Antwort
                      0
                      • mickymM mickym

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

                        Was ich eben noch festgestellt habe, ist dass wenn ich die Filter-Pumpe manuell per (Soft- oder Hardware)-Schalter einschalte, dass hier natürlich die Laufzeit auf eine Minute begrenzt ist, weil ja, die Zeitsteuerung nicht aktiv ist.

                        Das widerspricht sich doch in der Aussage?

                        Die Laufzeit ist doch nicht begrenzt, wenn die Zeitsteuerung nich aktiv ist?
                        Die Zeitsteuerung hat doch nur die ph-Pumpe gesteuert?

                        Und wenn Du willst, dass die ph-Pumpen Steuerung immer aktiv ist, egal ob manuell oder automatisch geschaltet wird, dann musst Du halt einfach den ganzen Block rausnehmen und dann ist er unabhängig von der Filterpumpen automatik.

                        Ansonsten kannst Du oben ja nochmal gerne nur den Automatikmodus ermitteln und ggf. unten noch blockieren.

                        cbdcf17b-a076-4ffd-a8fd-82fe898fe534-image.png

                        [
                           {
                               "id": "b72cf3fd45869c96",
                               "type": "change",
                               "z": "d25606275138920f",
                               "name": "Automatikmodus ermitteln",
                               "rules": [
                                   {
                                       "t": "set",
                                       "p": "payload",
                                       "pt": "msg",
                                       "to": "$not(payload.settings.disabledDevices~>$reduce(function($result,$v){$v=\"0\" or $result},false))",
                                       "tot": "jsonata"
                                   },
                                   {
                                       "t": "set",
                                       "p": "topic",
                                       "pt": "msg",
                                       "to": "Pumpenautomatik",
                                       "tot": "str"
                                   },
                                   {
                                       "t": "set",
                                       "p": "Pumpenautomatik",
                                       "pt": "flow",
                                       "to": "payload",
                                       "tot": "msg"
                                   }
                               ],
                               "action": "",
                               "property": "",
                               "from": "",
                               "to": "",
                               "reg": false,
                               "x": 550,
                               "y": 1700,
                               "wires": [
                                   [
                                       "03cc276ea13023ba"
                                   ]
                               ]
                           },
                           {
                               "id": "03cc276ea13023ba",
                               "type": "debug",
                               "z": "d25606275138920f",
                               "name": "Zeitautomatik",
                               "active": true,
                               "tosidebar": true,
                               "console": false,
                               "tostatus": false,
                               "complete": "payload",
                               "targetType": "msg",
                               "statusVal": "",
                               "statusType": "auto",
                               "x": 800,
                               "y": 1700,
                               "wires": []
                           },
                           {
                               "id": "734dada8a6cc2f4e",
                               "type": "json",
                               "z": "d25606275138920f",
                               "name": "",
                               "property": "payload",
                               "action": "",
                               "pretty": false,
                               "x": 330,
                               "y": 1700,
                               "wires": [
                                   [
                                       "b72cf3fd45869c96"
                                   ]
                               ]
                           },
                           {
                               "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": 1960,
                               "wires": [
                                   [
                                       "b8bcbf73e79b080b",
                                       "b6a4b77cf6b5b8e4"
                                   ]
                               ]
                           }
                        ]
                        

                        Ich würde jedoch sauberer die ph-Pumpen oder welche Pumpen auch immer aus dem Automatikast entfernen, wenn diese Logik auch erhalten bleiben soll unabhängig, ob die Filterpumpenautomatik aktiv ist.

                        Aber letztlich glaube ich, dass Du das selbst nun umsetzen kannst. Das sind ja nun keine technischen Probleme mehr. ;) Wie gesagt oben habe ich Dir nochmal die Nodes zur Verfügung gestellt mit der Du prüfen bzw. eine Flowvariable setzen kannst, um zu prüfen ob der Automatikmodus der scheduler Node für die Filterpumpe aktiv ist.

                        B Online
                        B Online
                        BF0911
                        schrieb am zuletzt editiert von
                        #141

                        @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 1 Antwort Letzte Antwort
                        0
                        • 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 Offline
                          mickymM Offline
                          mickym
                          Most Active
                          schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                          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
                            schrieb am zuletzt editiert von
                            #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 Antwort Letzte Antwort
                            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 Offline
                              mickymM Offline
                              mickym
                              Most Active
                              schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                              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
                                schrieb am zuletzt editiert von
                                #145

                                @mickym

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

                                Ich werde mir das mal mit deinen Tipps anschauen.

                                Danke!

                                1 Antwort Letzte Antwort
                                0
                                • B Online
                                  B Online
                                  BF0911
                                  schrieb am zuletzt editiert von
                                  #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 Antwort Letzte Antwort
                                  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 Offline
                                    mickymM Offline
                                    mickym
                                    Most Active
                                    schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                                    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
                                      schrieb am zuletzt editiert von
                                      #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 Antwort Letzte Antwort
                                      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 Offline
                                        mickymM Offline
                                        mickym
                                        Most Active
                                        schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                                        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
                                          schrieb am zuletzt editiert von
                                          #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 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          628

                                          Online

                                          32.4k

                                          Benutzer

                                          81.4k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe