Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Blockly
    5. 2 Heizkörper synchron steuern

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    2 Heizkörper synchron steuern

    This topic has been deleted. Only users with topic management privileges can see it.
    • paul53
      paul53 @georg2608 last edited by paul53

      @georg2608 sagte: Wie sollte das Skript denn aussehen, wenn dasa zusätzlich auch andersrum funktionieren soll?

      Du vergleichst mit dem falschen Ausdruck (Sollwert ist nicht der Ursprung). Versuche es mal so:

      Blockly_temp.JPG

      G 1 Reply Last reply Reply Quote 0
      • G
        georg2608 @paul53 last edited by

        @paul53 hm, also das klappt auch irgendwie nicht. Der erste Block geht. ist aber wieder one-way.
        Sobald der 2. Block aktiviert ist und ich am HK 1 stelle komme ich wieder in einen Loop.

        Würde es evtl Sinn machen per Blockly die Datenpunkte zusammenzufassen und die beiden HK's als Gruppe zu behandeln?

        Bildschirmfoto 2025-03-14 um 12.38.22.png

        paul53 1 Reply Last reply Reply Quote 0
        • paul53
          paul53 @georg2608 last edited by paul53

          @georg2608 sagte: Sobald der 2. Block aktiviert ist und ich am HK 1 stelle komme ich wieder in einen Loop.

          Wirklich? Füge mal einen Debug-Log ein:

          Blockly_temp.JPG

          Kann es sein, dass der Sollwert nach dem Schreiben des neuen Wertes erst wieder auf den alten Wert zurück geht und dann verzögert den neuen Wert bestätigt?

          Codierknecht G 2 Replies Last reply Reply Quote 0
          • Codierknecht
            Codierknecht Developer Most Active @paul53 last edited by

            @paul53
            Bei meinen Tests ist "Name des Scripts" = "undefined".

            @georg2608
            Versuchs mit dem Ursprung. Aber mach das dann auch so wie gezeigt - also der Zeichenfolge "system.adapter.javascript.0" und nicht mit "Wert von xyz" (wie kommt man eigentlich auf sowas? Das Beispiel ist doch eindeutig).

            39f36588-9c27-49b7-b4c7-3d506db3a0d4-image.png

            paul53 G 2 Replies Last reply Reply Quote 0
            • paul53
              paul53 @Codierknecht last edited by paul53

              @codierknecht sagte: Bei meinen Tests ist "Name des Scripts" = "undefined".

              Du meinst den Kommentar, wenn der Ursprung nicht ein Skript ist. In dem Fall wird "steuere" ausgeführt. Wenn der Ursprung das Skript ist, enthält der Kommentar den Skriptnamen.

              1 Reply Last reply Reply Quote 1
              • G
                georg2608 @paul53 last edited by

                @paul53 Ich hab das mal nach Deiner Vorlage nachgebaut. Aber es kommen immer wieder Dauermeldungen und der LoopBildschirmfoto 2025-03-14 um 13.11.25.png Bildschirmfoto 2025-03-14 um 13.02.33.png

                paul53 1 Reply Last reply Reply Quote 0
                • G
                  georg2608 @Codierknecht last edited by

                  @codierknecht hm, selbst bei der Angabe: "system.adapter.javascript" kommt der Loop. Sorry, für mich ist das nicht wirklich eindeutig, warum der da so reagiert. Bildschirmfoto 2025-03-14 um 13.09.42.png

                  Codierknecht 1 Reply Last reply Reply Quote 0
                  • Codierknecht
                    Codierknecht Developer Most Active @georg2608 last edited by

                    @georg2608
                    Der Text für den Debug-Block für HK2 sollte auch "HK2" lauten.
                    So kann man das nicht auseinanderhalten.

                    1 Reply Last reply Reply Quote 0
                    • paul53
                      paul53 @georg2608 last edited by

                      @georg2608
                      Ändere es mal mit Deaktivierung von "steuern" im unteren Tigger, um die Loop zu vermeiden und korrigiere den String "javascript":

                      Blockly_temp.JPG

                      G 1 Reply Last reply Reply Quote 0
                      • G
                        georg2608 @paul53 last edited by

                        @paul53
                        Also so bekomme ich keinen Loop mehr und wenn ich HK 1 steuere passt sich HK 2 an. Nur beim ändern von HK 2 ändert sich an HK 1 nichts (Screenshot mit Ausgabe)
                        Bildschirmfoto 2025-03-14 um 13.32.41.png

                        Der 2. Screenshot ist die Ausgabe wenn ich HK 1 stelle.
                        Bildschirmfoto 2025-03-14 um 13.36.53.png

                        paul53 1 Reply Last reply Reply Quote 0
                        • paul53
                          paul53 @georg2608 last edited by

                          @georg2608 sagte: Ausgabe wenn ich HK 1 stelle.

                          Wie vermutet: Bevor der neue Wert (24) bestätigt wird, wird der alte Wert (26) gesendet. Das führt zur Loop.

                          G 1 Reply Last reply Reply Quote 0
                          • G
                            georg2608 @paul53 last edited by

                            @paul53 Okay verstanden. Aber wie kann ich das umgehen?
                            Macht es Sinn einen timeout einzu bauen?

                            paul53 1 Reply Last reply Reply Quote 0
                            • black.falcon87
                              black.falcon87 last edited by

                              Ich werf mal das „Binde“ Objekt in den Raum.

                              Kannst du da nicht einfach beide Objekte miteinander verbinden?
                              Also du brauchst das Binde Objekt zweimal untereinander.

                              Einmal HK1 -> HK2 und einmal HK2 -> HK1
                              Und den Haken bei „nur Änderungen“ setzen.
                              Klappt das ohne einen Loop zu erzeugen?

                              Codierknecht 1 Reply Last reply Reply Quote 0
                              • Codierknecht
                                Codierknecht Developer Most Active @black.falcon87 last edited by

                                @black-falcon87 sagte in 2 Heizkörper synchron steuern:

                                Ich werf mal das „Binde“ Objekt in den Raum.

                                Das macht unter der Haube auch nix anders.

                                on({ id: 'Object ID 1', change: 'ne' }, (obj) => {
                                  setState('Object ID 2', obj.state.val);
                                });
                                
                                1 Reply Last reply Reply Quote 1
                                • paul53
                                  paul53 @georg2608 last edited by paul53

                                  @georg2608 sagte: Macht es Sinn einen timeout einzu bauen?

                                  Ein so hässliches Verhalten (bedanke dich in China) kann man per Timer-Sperre überbrücken.

                                  Blockly_temp.JPG

                                  G 1 Reply Last reply Reply Quote 0
                                  • G
                                    georg2608 @paul53 last edited by

                                    @paul53 Ich bedanke mich da lieber bei Dir!
                                    Ich glaub jetzt funktioniert das richtig gut.

                                    Vielen lieben Dank

                                    1 Reply Last reply Reply Quote 0
                                    • W
                                      Walkera last edited by Walkera

                                      Hallo zusammen,
                                      bisher hab ich als Mitleser oft hilfreiche Posts gesehen und nach und nach meine Ideen umsetzen können und auftretende Probleme mit etwas Recherche ganz gut lösen können. Jetzt bin ich auf aber auf ein Verhalten gestoßen, bei dem ich eure Unterstützung bräuchte.

                                      Es ähnelt sehr dem Anliegen wie hier zwei Status gleich halten zu wollen. Anstatt die Temperatur zweier Thermostate möchte ich den Schaltstatus eines Status aus Homematic und den Schaltstatus eines Shelly bidirektional verknüpfen. Sowie sich z. B. der Zustand des Shelly ändert, soll sich der in der Homematic identisch geändert werden. Und andersrum. Bisher hat es mit den beigefügten Skripts super geklappt, es gab keine Schleifen. Anfang der Woche ist es mir bei einer anderen Kombination zum ersten Mal aufgefallen und heute bei dem aktuellen Beispiel.

                                      Normal würde ich es erstmal eine Zeit beobachten und "draufrum denken", habe diesmal aber etwas Bedenken, da die Shelly vermutlich das viele schnelle Schalten nicht auf Dauer toll finden.

                                      Hier mal beide Skripte (ich wusste lange nicht, dass auch beide in eins können):

                                      Screenshot_20250323_174132_Chrome.jpg Screenshot_20250323_174123_Chrome.jpg

                                      Und hier ein Auszug aus dem Log:
                                      Screenshot_20250323_175335_Chrome.jpg

                                      Könnte hier der Vorschlag mit der Pause ebenfalls funktionieren und habt ihr eine Idee, wie ich es reproduzieren kann? Es tritt (leider) nicht bei jeder Änderung auf. Dankeschön 🙂

                                      Asgothian 1 Reply Last reply Reply Quote 0
                                      • Asgothian
                                        Asgothian Developer @Walkera last edited by Asgothian

                                        @walkera sagte in 2 Heizkörper synchron steuern:

                                        Hallo zusammen,
                                        bisher hab ich als Mitleser oft hilfreiche Posts gesehen und nach und nach meine Ideen umsetzen können und auftretende Probleme mit etwas Recherche ganz gut lösen können. Jetzt bin ich auf aber auf ein Verhalten gestoßen, bei dem ich eure Unterstützung bräuchte.

                                        Könnte hier der Vorschlag mit der Pause ebenfalls funktionieren und habt ihr eine Idee, wie ich es reproduzieren kann? Es tritt (leider) nicht bei jeder Änderung auf. Dankeschön 🙂

                                        Nein und Nein.

                                        Das ganze hat mit Zeitverhalten und anderen Details zu tun. Was funktioniert:

                                        Screenshot 2025-03-23 at 18.26.31.png

                                        Wichtig - der Bausteh "Ursprung" und "Wert" ist der gleiche Baustein aus dem "Trigger" Bereich.

                                        Natürlich brauchst Du das 2 mal, einmal ind die eine, einmal in die andere Richtung.

                                        A.

                                        Nachtrag - das ganze klappt natürlich nur wenn du die Datenpunkte nicht über ein Skript änderst - wenn das auch gehen soll brauchst Du eine genauere Bedingung zur Erkennung wann es nicht der Fall sein soll - das müsste ich mir aber erst irgendwo ausgraben.

                                        W paul53 2 Replies Last reply Reply Quote 1
                                        • W
                                          Walkera @Asgothian last edited by

                                          @asgothian vielen Dank für deine schnelle Antwort!

                                          Das werde ich genau so umsetzen - die Ansteuerung via Skript hab ich bei den "synchronisierten" Variablen zwar auch verwendet, kann es aber ja über die homematic machen lassen.

                                          1 Reply Last reply Reply Quote 0
                                          • paul53
                                            paul53 @Asgothian last edited by paul53

                                            @asgothian sagte: klappt natürlich nur wenn du die Datenpunkte nicht über ein Skript änderst

                                            @walkera: Damit auch das funktioniert, bringe die beiden Trigger in ein Skript:

                                            Blockly_temp.JPG

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            952
                                            Online

                                            31.9k
                                            Users

                                            80.2k
                                            Topics

                                            1.3m
                                            Posts

                                            7
                                            26
                                            1261
                                            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