Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. [gelöst] Fensterkontakt steuert Thermostat - Logikfehler?

    NEWS

    • Wir empfehlen: Node.js 22.x

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker goes Matter ... Matter Adapter in Stable

    [gelöst] Fensterkontakt steuert Thermostat - Logikfehler?

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

      @paul53

      So, denke mal da sich es verstanden habe, was du geschrieben hast. Dürfte jetzt korrekt sein.

      var Heizperiode, Heizung, Meldung;
      
      
      // Fensterkontakt
      on({id: 'zigbee.0.00158d0004524503.opened', change: "ne"}, function (obj) {
        var value = obj.state.val;
        var oldValue = obj.oldState.val;
        if (Heizperiode) {
          if ((obj.state ? obj.state.val : "")) {
            // Variablen
            Heizung = 'OFF';
            Meldung = 'Fenster offen';
          } else {
            Heizung = 'ON';
            Meldung = 'Fenster geschlossen';
            // Heizung wird auf Automatik gestellt
            setStateDelayed("tado.0.125400.Rooms.8.overlay.clearZoneOverlay"/*Clear Zone Overlay*/, true, 120000, true);
          }
          if (getState("tado.0.125400.Rooms.8.setting.power").val != Heizung) {
            // Heizung on
            setStateDelayed("tado.0.125400.Rooms.8.setting.power"/*Power*/, Heizung, 60000, true);
          }
          sendTo("telegram", "send", {
              text: Meldung
          });
        }
      });
      
      on({id: 'javascript.0.Eigene_Datenpunkte.Heizung.Heizperiode', change: "ne"}, function (obj) {
        var value = obj.state.val;
        var oldValue = obj.oldState.val;
        Heizperiode = (obj.state ? obj.state.val : "");
        if (!Heizperiode) {
          // Heizung on
          setState("tado.0.125400.Rooms.8.setting.power"/*Power*/, 'OFF');
        }
      });
      
      // Heiperiode Datenpunkt gesetzt
      

      Der letzte Blockly ist dafür da, das wenn DP Heizperiode false ist, der obrige Blockly gar nicht erst gestartet wird, richtig?

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

        @Slowman sagte:

        Dürfte jetzt korrekt sein.

        Sieht so aus.

        Slowman 1 Reply Last reply Reply Quote 1
        • Slowman
          Slowman @paul53 last edited by

          @paul53

          😞 🙄 Keine Auschaltung, keine Meldung per Telegram. Kann der Fehler vielelicht daran liegen das ich einmal auf Automatikprogramm Trigger und ein mal auf Power? Den Trigger auf das Automatikprogramm brauche ich auch.

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

            @Slowman sagte:

            Keine Auschaltung, keine Meldung per Telegram.

            Initialisiere die Variable Heizperiode bei Skript-Start.

            Blockly_temp.JPG

            Slowman 1 Reply Last reply Reply Quote 1
            • Slowman
              Slowman @paul53 last edited by

              @paul53

              👍 Funktioniert jetzt, vielen Dank für die Hilfe und natürlich die Geduld 😊

              Für mich zum Verständnis, man sollte nicht so viele Datenpunkte anlegen (was ich gemacht habe), sondern lieber mit Variablen arbeiten, damit man das ioBroker System nicht so belastet? Wenn ich den Script jetzt mir anschaue, habe ich nur die "Hardware" DP abgefasst und nur einen DP angelegt.

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

                @Slowman sagte:

                sondern lieber mit Variablen arbeiten, damit man das ioBroker System nicht so belastet?

                Ja.

                Slowman 1 Reply Last reply Reply Quote 1
                • Slowman
                  Slowman @paul53 last edited by

                  @paul53

                  Kleines kosmetisches Problem noch, wenn ich mehrere Fenster in einem Raum öffne bekomme ich für jedes geöffnete Fenster im Raum eine Benachrichtigung. 🙄

                  amg_666 paul53 2 Replies Last reply Reply Quote 0
                  • amg_666
                    amg_666 @Slowman last edited by

                    @Slowman Das ist aber nur bedingt ein "Problem". Wenn du das nicht willst müsstest du dir noch ne Variable "fenster_auf" spendieren und die auf true setzen sobald ein Fenster geöffnet ist. und dann darfst du die Benachrichtigung nur bei "fenster_auf"=True senden.
                    Ich hab das bei mir nicht gemacht, weil Fenster auf zum einen die Heizung runterfährt, bei mir aber auch die Alarmanlage auslöst wenn niemand im Haus ist. Und da will ich für jedes Fenster wissen ob es geöffnet wurde, egal ob schon eins auf ist.

                    1 Reply Last reply Reply Quote 1
                    • paul53
                      paul53 @Slowman last edited by paul53

                      @Slowman sagte:

                      bekomme ich für jedes geöffnete Fenster im Raum eine Benachrichtigung.

                      Wenn das nicht gewollt ist, schiebe Telegram in in den falls-Block "Wert von Power != Heizung".

                      Slowman 1 Reply Last reply Reply Quote 1
                      • Slowman
                        Slowman @paul53 last edited by

                        @paul53

                        😢 Habe jetzt einiges rumprobiert und klappt nicht. Also gelesen ja, nur die Umsetzung des Typen für dem Bildschirm hapert es.

                        Screenshot_2020-12-15 javascript - ioBroker.png

                        In diesen Block kommen die

                        Screenshot_2020-12-15 javascript - ioBroker(1).png

                        Screenshot_2020-12-15 javascript - ioBroker(2).png

                        Funzt nicht, denke mal falsche Stelle und die Meldung Fenster im Raum geschlossen auch erst, wenn alle Fenster zu sind sind.

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

                          @Slowman sagte:

                          klappt nicht.

                          Was klappt nicht ? Bitte das ganze Blockly zeigen.

                          @Slowman sagte in [gelöst] Fensterkontakt steuert Thermostat - Logikfehler?:

                          Meldung Fenster im Raum geschlossen auch erst, wenn alle Fenster zu sind sind.

                          So soll es sein ?

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

                            @paul53

                            Also, es wird immer noh je geöffneten Fenster eine Meldung per Telegram ausgegeben und auch beim Schliessen von jedem Fenster. Es sollte so sein, das wenn 1 Fenster geöffnet ist und das 2 dazu geöffnet wird nur eine Meldung kommt, auch beim Schliessen eine Meldung kommt, wenn das letzte Fenster geschlossen wird. Die Heizung startet ja lt. Script sowieso erst, wenn alle Fenster geschlossen sind und schaltet sich aus, wenn 1 Fenster geöffnet ist.

                            Screenshot_2020-12-15 javascript - ioBroker(3).png

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

                              @Slowman
                              Man kann Wert nicht verwenden, wenn mehr als ein Datenpunkt als Trigger dient. Man muss beide Fensterwerte per ODER verknüpfen.

                              Blockly_temp.JPG

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

                                @paul53

                                Danke, aber will nicht so, schmeißt jetzt 3x die Meldung raus (denke mal 1 Fenster geöffnet, 2. Fenster geöffnet, ein Fenster geschlossen) und wenn das letzte offene Fenster geschlossen wird, kommt die geschlossenen Meldung.

                                Habe mir jetzt meinen alten Script nochmal angeschaut, warum ich dort nicht die Meldung für jedes einzelne Fenster bekommen hatte. Da war ja ein Datenpunkt true und der hat nur auf false geschaltet, wenn alle Fenster zu waren. Hänge ich unten nochmal ran, muss ja auch ohen DP gehen 😇

                                Screenshot_2020-12-15 javascript - ioBroker(4).png

                                Screenshot_2020-12-15 Telegram Web.png

                                var Heizperiode, Heizung, Meldung;
                                
                                
                                // Fensterkontakt
                                Heizperiode = getState("javascript.0.Eigene_Datenpunkte.Heizung.Heizperiode").val;
                                on({id: new RegExp('zigbee\\.0\\.00158d00047e6700\\.opened' + "|" + 'zigbee\\.0\\.00158d00049fb32f\\.opened'), change: "ne"}, function (obj) {
                                    if (Heizperiode) {
                                    if (getState("zigbee.0.00158d00047e6700.opened").val || getState("zigbee.0.00158d00049fb32f.opened").val) {
                                      // Variablen
                                      Heizung = 'OFF';
                                      Meldung = ' 🛌 😴  Fenster 🔓 und Heizung ❄️ 📴 ';
                                    } else {
                                      Heizung = 'ON';
                                      Meldung = ' 🛌 😴 Fenster 🔒 und Heizung ♨️ 🔛 ';
                                      // Heizung wird auf Automatik gestellt
                                      setStateDelayed("tado.0.125400.Rooms.7.overlay.clearZoneOverlay"/*Clear Zone Overlay*/, true, 120000, true);
                                    }
                                    if (getState("tado.0.125400.Rooms.7.setting.power").val != Heizung) {
                                      // Heizung on
                                      setStateDelayed("tado.0.125400.Rooms.7.setting.power"/*Power*/, Heizung, 60000, true);
                                    }
                                  }
                                  sendTo("telegram", "send", {
                                      text: Meldung
                                  });
                                });
                                
                                on({id: 'javascript.0.Eigene_Datenpunkte.Heizung.Heizperiode', change: "ne"}, function (obj) {
                                  var value = obj.state.val;
                                  var oldValue = obj.oldState.val;
                                  Heizperiode = (obj.state ? obj.state.val : "");
                                  if (!Heizperiode) {
                                    // Heizung on
                                    setState("tado.0.125400.Rooms.7.setting.power"/*Power*/, 'OFF');
                                  }
                                });
                                
                                
                                paul53 1 Reply Last reply Reply Quote 0
                                • paul53
                                  paul53 @Slowman last edited by

                                  @Slowman sagte:

                                  3x die Meldung

                                  Der Telegram-Block ist falsch platziert (vergleiche die Bilder).

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

                                    @paul53

                                    Screenshot_2020-12-15 javascript - ioBroker(5).png

                                    Geändert, wenn ich richtig sehen wird die Fenster geschlossen Meldung erst "losgeschickt" wenn die Heizung anspringt. Mit den Fenster öffnen die 3x Meldungen sind geblieben.

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

                                      @Slowman sagte:

                                      Mit den Fenster öffnen die 3x Meldungen sind geblieben.

                                      Aber nur, wenn die Fenster innerhalb von einer Minute geöffnet werden. Ist die Verzögerung für die Heizung erforderlich ?

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

                                        @paul53

                                        OK, das Öffnen der Fenster war unter 1 min. Die Verzögerung für die Heizung ist eigentlich nicht notwendig. Somit wäre auch die Meldungen innerhalb dieser Minute weg. Hintergedanke war nur, wenn Jemand das Fenster bloß kurz auf und wieder zu macht, das die Heizung nicht unnötig hin und her geschaltet wird.

                                        Mit der Umstellung auf das Automatikprogramm von Tado würde ich doch gerne eine Verzögerung drin lassen.

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

                                          @Slowman sagte:

                                          Mit der Umstellung auf das Automatikprogramm von Tado würde ich doch gerne eine Verzögerung drin lassen.

                                          Kein Problem, denn diese Verzögerung hat keinen Einfluss auf die Meldungen.

                                          Slowman 1 Reply Last reply Reply Quote 1
                                          • Slowman
                                            Slowman @paul53 last edited by

                                            @paul53

                                            😁 Funzt Danke!

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

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate
                                            FAQ Cloud / IOT
                                            HowTo: Node.js-Update
                                            HowTo: Backup/Restore
                                            Downloads
                                            BLOG

                                            506
                                            Online

                                            32.0k
                                            Users

                                            80.4k
                                            Topics

                                            1.3m
                                            Posts

                                            fensterkontakt tado
                                            3
                                            34
                                            2448
                                            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