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

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Blockly
  5. Balkontür länger geöffnet

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    14
    1
    183

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    17
    1
    4.4k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    1.3k

Balkontür länger geöffnet

Geplant Angeheftet Gesperrt Verschoben Blockly
11 Beiträge 4 Kommentatoren 901 Aufrufe 4 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.
  • L Offline
    L Offline
    lustig29
    schrieb am zuletzt editiert von
    #1

    Hallo,
    ich habe meine Xiaomi Fensterkontakte mit meinen Homematic Heizungsthermostaten verknüpft. Fenster auf... Temperatur runter.... Fenster zu... Temperatur wieder hoch.
    Leider kommt es ab und an mal vor, dass die Temperatur beim schließen nicht wieder hoch geht.
    Ich möchte jetzt, dass wenn das Fenster längere Zeit auf offen steht, die Temperatur wieder hoch geht.

    amg_666A 1 Antwort Letzte Antwort
    0
    • L lustig29

      Hallo,
      ich habe meine Xiaomi Fensterkontakte mit meinen Homematic Heizungsthermostaten verknüpft. Fenster auf... Temperatur runter.... Fenster zu... Temperatur wieder hoch.
      Leider kommt es ab und an mal vor, dass die Temperatur beim schließen nicht wieder hoch geht.
      Ich möchte jetzt, dass wenn das Fenster längere Zeit auf offen steht, die Temperatur wieder hoch geht.

      amg_666A Offline
      amg_666A Offline
      amg_666
      schrieb am zuletzt editiert von
      #2

      @lustig29 und wie hast du das bisher umgesetz? Script? Im iobroker oder in homematic?
      Ich hatte so ein ähnliches Problem, dass die Temperatur nach einer gewissen Zeit wieder hochgeht obwohl Fenster noch auf war. Das lag aber an Homematic Logik...

      Also poste mal deine Lösung/deine Scripte dann kann man mal schauen

      iobroker auf proxmox container

      L SquelshS 2 Antworten Letzte Antwort
      0
      • amg_666A amg_666

        @lustig29 und wie hast du das bisher umgesetz? Script? Im iobroker oder in homematic?
        Ich hatte so ein ähnliches Problem, dass die Temperatur nach einer gewissen Zeit wieder hochgeht obwohl Fenster noch auf war. Das lag aber an Homematic Logik...

        Also poste mal deine Lösung/deine Scripte dann kann man mal schauen

        L Offline
        L Offline
        lustig29
        schrieb am zuletzt editiert von
        #3

        @amg_666 Screenshot_20201030_160855_com.android.chrome.jpg

        amg_666A OcrimO 2 Antworten Letzte Antwort
        0
        • L lustig29

          @amg_666 Screenshot_20201030_160855_com.android.chrome.jpg

          amg_666A Offline
          amg_666A Offline
          amg_666
          schrieb am zuletzt editiert von amg_666
          #4

          @lustig29 Hm, sieht eigentlich richtig aus, ich geh mal davon aus, dass deine Merkervariablen alle eindeutig sind, also wirklich eine pro Raum.
          Bau doch in das Skript mal ein paar debug Anweisungen ein, damit du im logfile nachlesen kannst ob ein Schliessen überhaupt erkannt wurde und welchen Wert Merker_Temperatur_xxxx da hat.

          Arbeitest du mit Alias? Bei mir heisst der Datenpunkt vom HM Thermostat anders, SetPointTemperature kenne ich gar nicht:
          hm-rpc.0.LEQxxxxxxx.4.SET_TEMPERATURE

          iobroker auf proxmox container

          1 Antwort Letzte Antwort
          0
          • amg_666A amg_666

            @lustig29 und wie hast du das bisher umgesetz? Script? Im iobroker oder in homematic?
            Ich hatte so ein ähnliches Problem, dass die Temperatur nach einer gewissen Zeit wieder hochgeht obwohl Fenster noch auf war. Das lag aber an Homematic Logik...

            Also poste mal deine Lösung/deine Scripte dann kann man mal schauen

            SquelshS Offline
            SquelshS Offline
            Squelsh
            schrieb am zuletzt editiert von
            #5

            Hi @amg_666,

            ich habe das selbe Prob: Ist ein Fenster lange auf, stellt der Thermostat wieder die hohe Temperatur ein und heizt damit die Umwelt.

            Komischerweise zeigt der Thermostat DENNOCH das Fenstersymbol an. Ich denke daher, dass es nicht an meiner Script-Logik hängt. Der Support von Homatic will damit natürlich nichts zu tun haben, da ich IoBroker einsetze...

            Was war denn bei dir der Fehler?

            VG,
            Andy

            Mein Jave-Script kann ich gerne hier rein packen:

            
            const myRooms = getEnums("rooms");
            
            
            // iterate through all sensors of a room and check, if any window/door is open
            // returns true, if any window is open, false if all windows are closed:
            function isAnyWindowInRoomOpen(str_roomName)
            {
                let anyInRoomOpen = false;
                $('channel[state.id=opened](rooms=' + str_roomName + ')(functions=funcSecurity)').each(function(id) {
            
                        let myObj = getObject(id);
                        let singleSensorState = getState(id);
                        myLog(1, "isAnyWindowInRoomOpen():: " + myObj.common.name + " is " + singleSensorState.val);
            
                        anyInRoomOpen = anyInRoomOpen || singleSensorState.val;
            
                    });
            
                myLog(2, "isAnyWindowInRoomOpen(): " + str_roomName + " has an open window? " + anyInRoomOpen);
                return anyInRoomOpen;
            }
            
            // creates state variables for each room if a window is open
            function setupStates()
            {
                let anyInFlatOpen = false;
                
                for( let myRoom of myRooms)
                {
                    let myRoomName = myRoom.id.split(".")[2];
            
                    let anyInRoomOpen = isAnyWindowInRoomOpen(myRoomName);
                    anyInFlatOpen = anyInFlatOpen || anyInRoomOpen;
            
                    
            
                    myLog(3, "setupStates():: Initializing room " + myRoomName + ".anyWindowOpen to: " + anyInRoomOpen);
                    createState('roomstates.' + myRoomName + '.anyWindowOpen', anyInRoomOpen, true, {
                        read: true,
                        write: true,
                        name: 'Ist ein Fenster geöffnet',
                        desc: 'Ist ein Fenster geöffnet',
                        type: 'boolean'
                    });
                }
            
                myLog(3, "setupStates(): Initializing flatWindowOpen to: " + anyInFlatOpen);
                createState("flatWindowOpen", anyInFlatOpen, true, {
                    read: true, 
                    write: true, 
                    name: "Is true, if any window or door in appartment is open", 
                    type: "boolean", 
                    def: false
                });
            }
            
            // subscribe to all contact sensor changes and set a timer if something changes:
            function setupWindowSubscriptions()
            {
                $('[state.id=opened](functions=funcSecurity)').on(function (obj) {
                    myLog(1, "setupWindowSubscriptions(): Contact " + obj.common.name + " changed to: " + obj.state.val);
                    // reconstruct sensor ID
                    let strArr_splittedId = obj.id.split(".");
                    let uri_sensorId = strArr_splittedId[0] + "." + strArr_splittedId[1] + "." + strArr_splittedId[2];
                    let obj_sensor = getObject(uri_sensorId);
                    
                    setTimeout(reCheckState, shortTimeOpen, uri_sensorId, obj.state.val);
                    
                });
            
            }
            
            
            // triggered short time after window state changes to see, if change is still present
            // if so, toggle the state of the whole room
            function reCheckState(uri_sensorId, bool_stateToCheck)
            {
                let sensorState = getState(uri_sensorId + ".opened");
                //whatIs("checkStillOpen: sensorState = ", sensorState);
                if(sensorState.val == bool_stateToCheck)
                {
                    myLog(2, "reCheckState: State unchanged after " + (shortTimeOpen / 1000) + " seconds.");
                    let obj_room = whichRoom(uri_sensorId);
                    let str_roomName = obj_room.enumIds[0].split(".")[2];
            
                    let bool_roomState = isAnyWindowInRoomOpen(str_roomName);
            
                    setState('javascript.0.roomstates.' + str_roomName + '.anyWindowOpen', bool_roomState);
                    
                } else {
                    myLog(2 ,"reCheckState: State changed within " + (shortTimeOpen / 1000) + " seconds. Ignoring.");
                }
            }
            
            
            function whichRoom(obj) {
                let dp = getObject(obj,"rooms");
                //myLog("room fct: devname = " + obj + " dp " + dp.enumIds[0]);
                return dp;
            }
            
            // monitors if a room's "any window is open" state changed:
            function setupRoomStateSubscriptions()
            {
                // this only triggers if new state != oldState so it ignores false positives.
                // and only sends triggers to the heating, if necessary:
                $('[state.id=anyWindowOpen]').on(function (obj) {
                    reactOnRoomStateChange(obj.id.split(".")[3], obj.state.val);
                });
            
                //perhaps use $ but define any "true" state as trigger.
            }
            
            function reactOnRoomStateChange(room, isAnyWindowOpen)
            {
                myLog(2, "reactOnRoomStateChange(): A window in room " + room + " changed its state. Any window is open? " + isAnyWindowOpen);
                
                let windowInAppartmentOpen = false;
                for( let myRoom of myRooms)
                {
                    let myRoomName = myRoom.id.split(".")[2];
                    let status = getState('roomstates.' + myRoomName + '.anyWindowOpen').val;
                    myLog(1, "reactOnRoomStateChange():: Status of single room " + myRoomName + " is " + status);
                    windowInAppartmentOpen = windowInAppartmentOpen || status;
            
                }
            
                myLog(3, "reactOnRoomStateChange(): Set flatWindowOpen to: " + windowInAppartmentOpen);
                setState("javascript.0.flatWindowOpen", windowInAppartmentOpen);
            
            }
            
            setupStates();
            setupWindowSubscriptions();
            setupRoomStateSubscriptions();
            
            amg_666A L 2 Antworten Letzte Antwort
            0
            • SquelshS Squelsh

              Hi @amg_666,

              ich habe das selbe Prob: Ist ein Fenster lange auf, stellt der Thermostat wieder die hohe Temperatur ein und heizt damit die Umwelt.

              Komischerweise zeigt der Thermostat DENNOCH das Fenstersymbol an. Ich denke daher, dass es nicht an meiner Script-Logik hängt. Der Support von Homatic will damit natürlich nichts zu tun haben, da ich IoBroker einsetze...

              Was war denn bei dir der Fehler?

              VG,
              Andy

              Mein Jave-Script kann ich gerne hier rein packen:

              
              const myRooms = getEnums("rooms");
              
              
              // iterate through all sensors of a room and check, if any window/door is open
              // returns true, if any window is open, false if all windows are closed:
              function isAnyWindowInRoomOpen(str_roomName)
              {
                  let anyInRoomOpen = false;
                  $('channel[state.id=opened](rooms=' + str_roomName + ')(functions=funcSecurity)').each(function(id) {
              
                          let myObj = getObject(id);
                          let singleSensorState = getState(id);
                          myLog(1, "isAnyWindowInRoomOpen():: " + myObj.common.name + " is " + singleSensorState.val);
              
                          anyInRoomOpen = anyInRoomOpen || singleSensorState.val;
              
                      });
              
                  myLog(2, "isAnyWindowInRoomOpen(): " + str_roomName + " has an open window? " + anyInRoomOpen);
                  return anyInRoomOpen;
              }
              
              // creates state variables for each room if a window is open
              function setupStates()
              {
                  let anyInFlatOpen = false;
                  
                  for( let myRoom of myRooms)
                  {
                      let myRoomName = myRoom.id.split(".")[2];
              
                      let anyInRoomOpen = isAnyWindowInRoomOpen(myRoomName);
                      anyInFlatOpen = anyInFlatOpen || anyInRoomOpen;
              
                      
              
                      myLog(3, "setupStates():: Initializing room " + myRoomName + ".anyWindowOpen to: " + anyInRoomOpen);
                      createState('roomstates.' + myRoomName + '.anyWindowOpen', anyInRoomOpen, true, {
                          read: true,
                          write: true,
                          name: 'Ist ein Fenster geöffnet',
                          desc: 'Ist ein Fenster geöffnet',
                          type: 'boolean'
                      });
                  }
              
                  myLog(3, "setupStates(): Initializing flatWindowOpen to: " + anyInFlatOpen);
                  createState("flatWindowOpen", anyInFlatOpen, true, {
                      read: true, 
                      write: true, 
                      name: "Is true, if any window or door in appartment is open", 
                      type: "boolean", 
                      def: false
                  });
              }
              
              // subscribe to all contact sensor changes and set a timer if something changes:
              function setupWindowSubscriptions()
              {
                  $('[state.id=opened](functions=funcSecurity)').on(function (obj) {
                      myLog(1, "setupWindowSubscriptions(): Contact " + obj.common.name + " changed to: " + obj.state.val);
                      // reconstruct sensor ID
                      let strArr_splittedId = obj.id.split(".");
                      let uri_sensorId = strArr_splittedId[0] + "." + strArr_splittedId[1] + "." + strArr_splittedId[2];
                      let obj_sensor = getObject(uri_sensorId);
                      
                      setTimeout(reCheckState, shortTimeOpen, uri_sensorId, obj.state.val);
                      
                  });
              
              }
              
              
              // triggered short time after window state changes to see, if change is still present
              // if so, toggle the state of the whole room
              function reCheckState(uri_sensorId, bool_stateToCheck)
              {
                  let sensorState = getState(uri_sensorId + ".opened");
                  //whatIs("checkStillOpen: sensorState = ", sensorState);
                  if(sensorState.val == bool_stateToCheck)
                  {
                      myLog(2, "reCheckState: State unchanged after " + (shortTimeOpen / 1000) + " seconds.");
                      let obj_room = whichRoom(uri_sensorId);
                      let str_roomName = obj_room.enumIds[0].split(".")[2];
              
                      let bool_roomState = isAnyWindowInRoomOpen(str_roomName);
              
                      setState('javascript.0.roomstates.' + str_roomName + '.anyWindowOpen', bool_roomState);
                      
                  } else {
                      myLog(2 ,"reCheckState: State changed within " + (shortTimeOpen / 1000) + " seconds. Ignoring.");
                  }
              }
              
              
              function whichRoom(obj) {
                  let dp = getObject(obj,"rooms");
                  //myLog("room fct: devname = " + obj + " dp " + dp.enumIds[0]);
                  return dp;
              }
              
              // monitors if a room's "any window is open" state changed:
              function setupRoomStateSubscriptions()
              {
                  // this only triggers if new state != oldState so it ignores false positives.
                  // and only sends triggers to the heating, if necessary:
                  $('[state.id=anyWindowOpen]').on(function (obj) {
                      reactOnRoomStateChange(obj.id.split(".")[3], obj.state.val);
                  });
              
                  //perhaps use $ but define any "true" state as trigger.
              }
              
              function reactOnRoomStateChange(room, isAnyWindowOpen)
              {
                  myLog(2, "reactOnRoomStateChange(): A window in room " + room + " changed its state. Any window is open? " + isAnyWindowOpen);
                  
                  let windowInAppartmentOpen = false;
                  for( let myRoom of myRooms)
                  {
                      let myRoomName = myRoom.id.split(".")[2];
                      let status = getState('roomstates.' + myRoomName + '.anyWindowOpen').val;
                      myLog(1, "reactOnRoomStateChange():: Status of single room " + myRoomName + " is " + status);
                      windowInAppartmentOpen = windowInAppartmentOpen || status;
              
                  }
              
                  myLog(3, "reactOnRoomStateChange(): Set flatWindowOpen to: " + windowInAppartmentOpen);
                  setState("javascript.0.flatWindowOpen", windowInAppartmentOpen);
              
              }
              
              setupStates();
              setupWindowSubscriptions();
              setupRoomStateSubscriptions();
              
              amg_666A Offline
              amg_666A Offline
              amg_666
              schrieb am zuletzt editiert von
              #6

              @Squelsh Ne, bei mir war es ein simpler Logik-Fehler: Ich steuere meine (Homematic-) Thermostaten über ein Homematic Script und ich hatte da einfach einen logischen Fehler drin: Das Script läuft alle 20 Minuten und hat nicht geprüft ob ein Fenster offen ist. Effekt: Ich öffne z.B. im Bad ein Fenster, dann regelt der Bad-Heizkörper runter. Und nach spätestens 20 Minuten bügelt das Script da drüber und stellt die geplante Temperatur wieder ein.

              Eine Idee habe ich nicht, was bei dir der Fehler sein könnte. Stehen die Thermostate auf "Manu Modus" oder auf "Auto Modus"? Wenn du in HM was mit Skripten "manipulieren" willst, dann sollten die Device auf "Manu" stehen, da hatte ich mal ein Problem, weiss aber nicht ob dir das weiterhilft...

              iobroker auf proxmox container

              SquelshS 1 Antwort Letzte Antwort
              0
              • L lustig29

                @amg_666 Screenshot_20201030_160855_com.android.chrome.jpg

                OcrimO Offline
                OcrimO Offline
                Ocrim
                schrieb am zuletzt editiert von
                #7

                @lustig29
                Wie sieht denn dein Hauptprogramm aus, mit dem du die Thermostate auf die Heiztemperatur setzt?

                SquelshS 1 Antwort Letzte Antwort
                0
                • SquelshS Squelsh

                  Hi @amg_666,

                  ich habe das selbe Prob: Ist ein Fenster lange auf, stellt der Thermostat wieder die hohe Temperatur ein und heizt damit die Umwelt.

                  Komischerweise zeigt der Thermostat DENNOCH das Fenstersymbol an. Ich denke daher, dass es nicht an meiner Script-Logik hängt. Der Support von Homatic will damit natürlich nichts zu tun haben, da ich IoBroker einsetze...

                  Was war denn bei dir der Fehler?

                  VG,
                  Andy

                  Mein Jave-Script kann ich gerne hier rein packen:

                  
                  const myRooms = getEnums("rooms");
                  
                  
                  // iterate through all sensors of a room and check, if any window/door is open
                  // returns true, if any window is open, false if all windows are closed:
                  function isAnyWindowInRoomOpen(str_roomName)
                  {
                      let anyInRoomOpen = false;
                      $('channel[state.id=opened](rooms=' + str_roomName + ')(functions=funcSecurity)').each(function(id) {
                  
                              let myObj = getObject(id);
                              let singleSensorState = getState(id);
                              myLog(1, "isAnyWindowInRoomOpen():: " + myObj.common.name + " is " + singleSensorState.val);
                  
                              anyInRoomOpen = anyInRoomOpen || singleSensorState.val;
                  
                          });
                  
                      myLog(2, "isAnyWindowInRoomOpen(): " + str_roomName + " has an open window? " + anyInRoomOpen);
                      return anyInRoomOpen;
                  }
                  
                  // creates state variables for each room if a window is open
                  function setupStates()
                  {
                      let anyInFlatOpen = false;
                      
                      for( let myRoom of myRooms)
                      {
                          let myRoomName = myRoom.id.split(".")[2];
                  
                          let anyInRoomOpen = isAnyWindowInRoomOpen(myRoomName);
                          anyInFlatOpen = anyInFlatOpen || anyInRoomOpen;
                  
                          
                  
                          myLog(3, "setupStates():: Initializing room " + myRoomName + ".anyWindowOpen to: " + anyInRoomOpen);
                          createState('roomstates.' + myRoomName + '.anyWindowOpen', anyInRoomOpen, true, {
                              read: true,
                              write: true,
                              name: 'Ist ein Fenster geöffnet',
                              desc: 'Ist ein Fenster geöffnet',
                              type: 'boolean'
                          });
                      }
                  
                      myLog(3, "setupStates(): Initializing flatWindowOpen to: " + anyInFlatOpen);
                      createState("flatWindowOpen", anyInFlatOpen, true, {
                          read: true, 
                          write: true, 
                          name: "Is true, if any window or door in appartment is open", 
                          type: "boolean", 
                          def: false
                      });
                  }
                  
                  // subscribe to all contact sensor changes and set a timer if something changes:
                  function setupWindowSubscriptions()
                  {
                      $('[state.id=opened](functions=funcSecurity)').on(function (obj) {
                          myLog(1, "setupWindowSubscriptions(): Contact " + obj.common.name + " changed to: " + obj.state.val);
                          // reconstruct sensor ID
                          let strArr_splittedId = obj.id.split(".");
                          let uri_sensorId = strArr_splittedId[0] + "." + strArr_splittedId[1] + "." + strArr_splittedId[2];
                          let obj_sensor = getObject(uri_sensorId);
                          
                          setTimeout(reCheckState, shortTimeOpen, uri_sensorId, obj.state.val);
                          
                      });
                  
                  }
                  
                  
                  // triggered short time after window state changes to see, if change is still present
                  // if so, toggle the state of the whole room
                  function reCheckState(uri_sensorId, bool_stateToCheck)
                  {
                      let sensorState = getState(uri_sensorId + ".opened");
                      //whatIs("checkStillOpen: sensorState = ", sensorState);
                      if(sensorState.val == bool_stateToCheck)
                      {
                          myLog(2, "reCheckState: State unchanged after " + (shortTimeOpen / 1000) + " seconds.");
                          let obj_room = whichRoom(uri_sensorId);
                          let str_roomName = obj_room.enumIds[0].split(".")[2];
                  
                          let bool_roomState = isAnyWindowInRoomOpen(str_roomName);
                  
                          setState('javascript.0.roomstates.' + str_roomName + '.anyWindowOpen', bool_roomState);
                          
                      } else {
                          myLog(2 ,"reCheckState: State changed within " + (shortTimeOpen / 1000) + " seconds. Ignoring.");
                      }
                  }
                  
                  
                  function whichRoom(obj) {
                      let dp = getObject(obj,"rooms");
                      //myLog("room fct: devname = " + obj + " dp " + dp.enumIds[0]);
                      return dp;
                  }
                  
                  // monitors if a room's "any window is open" state changed:
                  function setupRoomStateSubscriptions()
                  {
                      // this only triggers if new state != oldState so it ignores false positives.
                      // and only sends triggers to the heating, if necessary:
                      $('[state.id=anyWindowOpen]').on(function (obj) {
                          reactOnRoomStateChange(obj.id.split(".")[3], obj.state.val);
                      });
                  
                      //perhaps use $ but define any "true" state as trigger.
                  }
                  
                  function reactOnRoomStateChange(room, isAnyWindowOpen)
                  {
                      myLog(2, "reactOnRoomStateChange(): A window in room " + room + " changed its state. Any window is open? " + isAnyWindowOpen);
                      
                      let windowInAppartmentOpen = false;
                      for( let myRoom of myRooms)
                      {
                          let myRoomName = myRoom.id.split(".")[2];
                          let status = getState('roomstates.' + myRoomName + '.anyWindowOpen').val;
                          myLog(1, "reactOnRoomStateChange():: Status of single room " + myRoomName + " is " + status);
                          windowInAppartmentOpen = windowInAppartmentOpen || status;
                  
                      }
                  
                      myLog(3, "reactOnRoomStateChange(): Set flatWindowOpen to: " + windowInAppartmentOpen);
                      setState("javascript.0.flatWindowOpen", windowInAppartmentOpen);
                  
                  }
                  
                  setupStates();
                  setupWindowSubscriptions();
                  setupRoomStateSubscriptions();
                  
                  L Offline
                  L Offline
                  lustig29
                  schrieb am zuletzt editiert von
                  #8

                  @Squelsh Bei mir ist ja das Problem, das bei geöffneter und dann wieder geschlossener Tür die 12 Grad (Fenster offen Temperatur) stehen bleiben und nicht die zuvor eingestellte Raumtemperatur.

                  1 Antwort Letzte Antwort
                  0
                  • amg_666A amg_666

                    @Squelsh Ne, bei mir war es ein simpler Logik-Fehler: Ich steuere meine (Homematic-) Thermostaten über ein Homematic Script und ich hatte da einfach einen logischen Fehler drin: Das Script läuft alle 20 Minuten und hat nicht geprüft ob ein Fenster offen ist. Effekt: Ich öffne z.B. im Bad ein Fenster, dann regelt der Bad-Heizkörper runter. Und nach spätestens 20 Minuten bügelt das Script da drüber und stellt die geplante Temperatur wieder ein.

                    Eine Idee habe ich nicht, was bei dir der Fehler sein könnte. Stehen die Thermostate auf "Manu Modus" oder auf "Auto Modus"? Wenn du in HM was mit Skripten "manipulieren" willst, dann sollten die Device auf "Manu" stehen, da hatte ich mal ein Problem, weiss aber nicht ob dir das weiterhilft...

                    SquelshS Offline
                    SquelshS Offline
                    Squelsh
                    schrieb am zuletzt editiert von
                    #9

                    Danke @amg_666! Bisher stelle ich sie nicht auf Manuell um. Das teste ich auf jeden Fall mal.

                    1 Antwort Letzte Antwort
                    0
                    • OcrimO Ocrim

                      @lustig29
                      Wie sieht denn dein Hauptprogramm aus, mit dem du die Thermostate auf die Heiztemperatur setzt?

                      SquelshS Offline
                      SquelshS Offline
                      Squelsh
                      schrieb am zuletzt editiert von
                      #10

                      Sorry @Ocrim, hatte das falsche Script gepostet. Das was da ist, setzt ein Flag pro Zimmer.
                      Und dieses Script hier reagiert darauf:

                      
                      // monitors if a room's "any window is open" state changed:
                      function setupRoomStateSubscriptions()
                      {
                          // this only triggers if new state != oldState so it ignores false positives.
                          // and only sends triggers to the heating, if necessary:
                          $('[state.id=anyWindowOpen]').on(function (obj) {
                              reactOnRoomStateChange(obj.id.split(".")[3], obj.state.val);
                          });
                      
                          //perhaps use $ but define any "true" state as trigger.
                      }
                      
                      function reactOnRoomStateChange(roomname_str, anyWindowOpen_bool)
                      {
                          myLog(3, "reactOnRoomStateChange(): AnyWindowOpen state of room " + roomname_str + " changed to " + anyWindowOpen_bool)
                          $('channel(rooms=' + roomname_str + ')[state.id=*.WINDOW_STATE](functions=funcHeating)').setState(toInt(anyWindowOpen_bool))
                      }
                      
                      
                      
                      setupRoomStateSubscriptions();
                      
                      

                      Werde da jetzt mal noch einbauen, dass zuerst auf manuellen Modus umgeschaltet wird. Dann Fenster-Status setzen. Vllt hilft das.

                      1 Antwort Letzte Antwort
                      0
                      • SquelshS Offline
                        SquelshS Offline
                        Squelsh
                        schrieb am zuletzt editiert von
                        #11

                        Falls hier jemand in Zukunft das selbe Problem hat: Bei mir hat es geholfen, die temperaturabhängige Fenster-Auf-Erkennung der Thermostate auszuschalten. Das geht in via CCU in den Einstellungen der Homematic IP Thermostate.

                        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

                        340

                        Online

                        32.7k

                        Benutzer

                        82.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