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

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    2 Heizkörper synchron steuern

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

      Vielen Dank erstmal!
      Aber egal was ich probiere: ob bestätigte Änderung, das JS oder Ursprung, funktioniert das nur one-way. Also ich kann HK 1 steuern und HK 2 passt sich an.
      Wie sollte das Skript denn aussehen, wenn dasa zusätzlich auch andersrum funktionieren soll?
      Sobald ich das deaktivierte Skript laufen lasse, bin ich wieder in einem Loop:

      Bildschirmfoto 2025-03-14 um 10.43.04.png

      paul53 1 Reply Last reply Reply Quote 0
      • 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
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate

                                            534
                                            Online

                                            31.7k
                                            Users

                                            79.8k
                                            Topics

                                            1.3m
                                            Posts

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