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
    176

  • 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 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

                      440

                      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