Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Node-Red
    5. Zeitverzögerte Reaktion / Hysterese

    NEWS

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Zeitverzögerte Reaktion / Hysterese

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

      @mickym danke für die Rückmeldung!!! Ich hatte erwartet, dass auch eine Änderung der Solltemperatur eigentlich einen Abgleich auslösen sollte. Liegt das an dem fertigen Node? Denn die Fußbodenheizung ist träge, braucht mithin 3 Stunden um sich anzupassen. Heißt: eine Änderung der Ist-Temperatur wird eigentlich nur durch „externe Schocks“ ausgelöst, wie eine Tür oder ein Fenster. Was wäre die Lösung aus deiner Sicht?

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

        Wie gesagt, wenn es funktioniert ist es einfach mit solchen Nodes. Dann holst Du beim Verstellen Deiner Zieltemperatur nochmal die IST Temperature mit einer GET Node. Ich gehe mal davon aus, dass die Hysterese Node dann reagiert.

        Ich gehe mal davon aus, dass die Hysterese Node anhand des topics unterscheidet, was ist und was soll Temperatur ist. Zeig halt mal, wie Du Deine Hysterese Node konfiguriert hast.

        S 1 Reply Last reply Reply Quote 0
        • S
          Segelfreak @mickym last edited by Segelfreak

          @mickym so sieht es aktuell aus... viel ist da nicht einzustellen 🙂

          Bildschirm­foto 2022-12-06 um 21.14.20.png Bildschirm­foto 2022-12-06 um 21.14.27.png

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

            @segelfreak Ja wie ich vermutet habe. Dann versuche ich das mal mit Standardmitteln zu erstellen. 😉

            S 1 Reply Last reply Reply Quote 0
            • S
              Segelfreak @mickym last edited by

              @mickym ach, das wäre cool! Danke!

              S 1 Reply Last reply Reply Quote 0
              • S
                Segelfreak @Segelfreak last edited by

                hier sieht man auch, dass es dann echt zu fehlerhaften Zuständen führt!
                Die Soll-Temp ist 18°C, die Ist-Temp 21. Trotzdem bleibt der Schalter aktiv, weil der Node nicht aktualisiert.

                Bildschirm­foto 2022-12-06 um 21.20.28.png

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

                  @segelfreak So hier das ganze mit "Hausmitteln"

                  f6cdeaac-b69a-44b1-a81b-217fcf293153-image.png

                  Musst halt statt den Inject Nodes die entsprechenden iobroker-IN Nodes eingeben und hinten statt oder zustätzlich zur Debug Node den iobroker-Out Node.

                  Hier der Flow:

                  [
                     {
                         "id": "7d275e7f6a37d1b7",
                         "type": "inject",
                         "z": "289f539dcc33814e",
                         "name": "",
                         "props": [
                             {
                                 "p": "payload"
                             },
                             {
                                 "p": "topic",
                                 "vt": "str"
                             }
                         ],
                         "repeat": "",
                         "crontab": "",
                         "once": false,
                         "onceDelay": 0.1,
                         "topic": "SOLL",
                         "payload": "19",
                         "payloadType": "num",
                         "x": 3020,
                         "y": 2020,
                         "wires": [
                             [
                                 "fb4dcbbcdc1835b6"
                             ]
                         ]
                     },
                     {
                         "id": "5e6ad4295bc56958",
                         "type": "inject",
                         "z": "289f539dcc33814e",
                         "name": "",
                         "props": [
                             {
                                 "p": "payload"
                             },
                             {
                                 "p": "topic",
                                 "vt": "str"
                             }
                         ],
                         "repeat": "",
                         "crontab": "",
                         "once": false,
                         "onceDelay": 0.1,
                         "topic": "IST",
                         "payload": "18.7",
                         "payloadType": "num",
                         "x": 3020,
                         "y": 1960,
                         "wires": [
                             [
                                 "3a8f5535f0d9bd36"
                             ]
                         ]
                     },
                     {
                         "id": "f22abc09d4bef2a5",
                         "type": "switch",
                         "z": "289f539dcc33814e",
                         "name": "",
                         "property": "sollTemperatur",
                         "propertyType": "flow",
                         "rules": [
                             {
                                 "t": "lt",
                                 "v": "payload - 0.2",
                                 "vt": "jsonata"
                             },
                             {
                                 "t": "gt",
                                 "v": "payload + 0.2",
                                 "vt": "jsonata"
                             }
                         ],
                         "checkall": "true",
                         "repair": false,
                         "outputs": 2,
                         "x": 3470,
                         "y": 1980,
                         "wires": [
                             [
                                 "adee782f4c9fa56d"
                             ],
                             [
                                 "8fcace1a78975abe"
                             ]
                         ]
                     },
                     {
                         "id": "8fcace1a78975abe",
                         "type": "change",
                         "z": "289f539dcc33814e",
                         "name": "setze true - EIN",
                         "rules": [
                             {
                                 "t": "set",
                                 "p": "payload",
                                 "pt": "msg",
                                 "to": "true",
                                 "tot": "bool"
                             }
                         ],
                         "action": "",
                         "property": "",
                         "from": "",
                         "to": "",
                         "reg": false,
                         "x": 3640,
                         "y": 2020,
                         "wires": [
                             [
                                 "8f22299d04cfd002"
                             ]
                         ]
                     },
                     {
                         "id": "adee782f4c9fa56d",
                         "type": "change",
                         "z": "289f539dcc33814e",
                         "name": "setze false - AUS",
                         "rules": [
                             {
                                 "t": "set",
                                 "p": "payload",
                                 "pt": "msg",
                                 "to": "false",
                                 "tot": "bool"
                             }
                         ],
                         "action": "",
                         "property": "",
                         "from": "",
                         "to": "",
                         "reg": false,
                         "x": 3650,
                         "y": 1940,
                         "wires": [
                             [
                                 "8f22299d04cfd002"
                             ]
                         ]
                     },
                     {
                         "id": "fb4dcbbcdc1835b6",
                         "type": "change",
                         "z": "289f539dcc33814e",
                         "name": "Speichere SOLL, setze IST",
                         "rules": [
                             {
                                 "t": "set",
                                 "p": "sollTemperatur",
                                 "pt": "flow",
                                 "to": "payload",
                                 "tot": "msg"
                             },
                             {
                                 "t": "set",
                                 "p": "payload",
                                 "pt": "msg",
                                 "to": "istTemperatur",
                                 "tot": "flow"
                             }
                         ],
                         "action": "",
                         "property": "",
                         "from": "",
                         "to": "",
                         "reg": false,
                         "x": 3240,
                         "y": 2020,
                         "wires": [
                             [
                                 "f22abc09d4bef2a5"
                             ]
                         ]
                     },
                     {
                         "id": "3a8f5535f0d9bd36",
                         "type": "change",
                         "z": "289f539dcc33814e",
                         "name": "Speichere IST",
                         "rules": [
                             {
                                 "t": "set",
                                 "p": "istTemperatur",
                                 "pt": "flow",
                                 "to": "payload",
                                 "tot": "msg"
                             }
                         ],
                         "action": "",
                         "property": "",
                         "from": "",
                         "to": "",
                         "reg": false,
                         "x": 3200,
                         "y": 1960,
                         "wires": [
                             [
                                 "f22abc09d4bef2a5"
                             ]
                         ]
                     },
                     {
                         "id": "8f22299d04cfd002",
                         "type": "debug",
                         "z": "289f539dcc33814e",
                         "name": "Ergebnis",
                         "active": true,
                         "tosidebar": true,
                         "console": false,
                         "tostatus": false,
                         "complete": "payload",
                         "targetType": "msg",
                         "statusVal": "",
                         "statusType": "auto",
                         "x": 3860,
                         "y": 1980,
                         "wires": []
                     }
                  ]
                  

                  Beide Temperaturen werden im Flow-Kontext gespeichert.

                  Wenn die Soll-Temperatur gesetzt wird, wird diese im Kontext gespeichert, aber die IST-Temperatur gesetzt, die IST-Temperatur speichert im Flow Kontext.

                  aec24514-2afd-49b6-9a71-987d839a8d5a-image.png

                  Die Hysterese machst Du dann in der switch Node:

                  918f6f82-f9ca-4dac-a24c-f23b98513658-image.png

                  die Payload enthält also IMMER die IST-Temperatur und wird mit der flow Kontext sollTemperatur verglichen.

                  Nehmen wir also an die SOLLTEMPERATUR ist 20°C, dann werden folgende Vergleiche gemacht.

                  Wenn IST-Temperatur: 19.7 dann macht die Switch Node folgendes:

                  1. Regel
                    20 < 19.7 - 0.2 = 20 < 19.5 => falsch
                  2. Regel
                    20 > 19.7 + 0.2 = 20 > 19.7 => wahr

                  ==> also unterer Ausgang - Heizung einschalten

                  Wenn IST-Temperatur: 19.9 dann macht die Switch Node folgendes:

                  1. Regel
                    20 < 19.9 - 0.2 = 20 < 19.7 => falsch
                  2. Regel
                    20 > 19.9 + 0.2 = 20 > 20.1 => falsch

                  ==> keine Regel passt, also passiert nichts.

                  Wenn IST-Temperatur: 20.3 dann macht die Switch Node folgendes:

                  1. Regel
                    20 < 20.3 - 0.2 = 20 < 20.1 => wahr
                  2. Regel
                    20 > 20.3 + 0.2 = 20 > 20.5 => falsch

                  ==> also oberer Ausgang - Heizung ausschalten

                  S 1 Reply Last reply Reply Quote 0
                  • S
                    Segelfreak @mickym last edited by

                    @mickym sehr cool, vielen Dank für die Mühe! Das werde ich natürlich ausprobieren. Melde mich mit Resultat!

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

                      @segelfreak Du solltest in jedem Fall den Kontext beim Neustart initialisieren, also die iobroker-In Nodes beim Start feuern lassen:

                      a6f3e621-995c-46b8-a505-4b6c77d70d4a-image.png

                      S 1 Reply Last reply Reply Quote 0
                      • S
                        Segelfreak @mickym last edited by

                        @mickym ja, das hatte ich eigentlich auch eingestellt.

                        S 1 Reply Last reply Reply Quote 0
                        • S
                          Segelfreak @Segelfreak last edited by

                          läuft und schaltet umgehend in beide Richtungen! Toll, nochmals vielen Dank!

                          Bildschirm­foto 2022-12-06 um 22.16.59.png

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

                            @segelfreak Man hat halt mehr Kontrolle, wenn man das selber macht - man hätte es auch machen können mit der Hystere Node - aber dann sparst Du auch nicht mehr viel gegenüber den Standardnodes. 😉

                            S 2 Replies Last reply Reply Quote 0
                            • S
                              Segelfreak @mickym last edited by Segelfreak

                              @mickym so ist schon prima. Wieder etwas dazu gelernt, auch mit den Standard-Nodes zu arbeiten. So kommt man Schritt für Schritt besser in das Thema und sieht, welche Möglichkeiten und Ansätze es gibt. Das passt schon!

                              1 Reply Last reply Reply Quote 0
                              • S
                                Segelfreak @mickym last edited by Segelfreak

                                @mickym so jetzt habe ich offenbar doch noch ein kleines Problem. Und zwar ist es so, dass beim shelly 1 alles ganz normal klappt. Der andere Schalter ist ein Shelly Plus 1 und der reagiert jetzt irgendwie nicht so, wie er sollte. Mir ist das nicht gleich aufgefallen, weil der Datenpunkt sauber aktualisiert wird. Tatsächlich schaltet er aber nicht.
                                Aber... wenn ich in den Objekten im Admin den Switch direkt schalte, und zwar nur über die Schalter-Funktion, dann wird auch tatsächlich am Schalter getriggert.
                                Ich hoffe, ich beschreibe das einigermaßen verständlich und ich kann mir das jetzt auch nicht erklären, warum das nun plötzlich anders ist.
                                Ich habe versucht, den Schalter in node-red als String zu verwenden, statt boolean. Aber weder alles klein "true/false", noch gross "TRUE/FALSE", brachte eine Änderung. Es geht wirklich nur über den Admin-Switch

                                Bildschirm­foto 2022-12-07 um 23.34.45.png

                                Ich vermute, dass es ein spezifisches Problem mit dem Shelly Plus 1 ist, weil der flow exakt so mit dem anderen shelly 1 funktioniert. Hat jemand eine Idee, wie man das in den Griff bekommen kann?

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

                                  @segelfreak Hast Du das auch als command nicht als value geschickt - Du kannst das schon als Boolean schicken. Schau auch dass Du die Konvertierung in der Adapterkonfiguration ausgeschaltet hast. Wenn Du es über die admin Oberfläche schaffst, dann geht das mit Node Red auch. Ich tippe mal Du hast value statt command geschickt.

                                  S 1 Reply Last reply Reply Quote 1
                                  • S
                                    Segelfreak @mickym last edited by

                                    @mickym das war's, ich hatte value drin, nicht command! Das war auch tatsächlich anders als beim anderen Schalter. Danke für die schnelle Hilfe!

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

                                    Support us

                                    ioBroker
                                    Community Adapters
                                    Donate

                                    1.1k
                                    Online

                                    31.7k
                                    Users

                                    79.7k
                                    Topics

                                    1.3m
                                    Posts

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