@amandus99 Hab damit auch ewig rum probiert, aber mit dem IKEA Repeater wollten sich weder meine Osram Steckdosen noch meine Xiaomi Sensoren verbinden. Habs aufgegeben und bin auf einen ConBee Stick umgestiegen. Der hat mehr Reichweite als mein voriger cc2531Stick. Die Osram Dosen als Repeater sind auch nur mäßig gut...
NEWS
Latest posts made by Squelsh
-
RE: Ikea Repeater an Zigbee Stick
-
RE: [Gelöst] HomematicIP Thermostat heizt trotz Fenstersensor
@amg_666 Danke für den Hinweis. Aber mein Script setzt keine Temperaturen. Einzig und alleine der Fenster-Status wird gesetzt.
-
RE: [Gelöst] HomematicIP Thermostat heizt trotz Fenstersensor
Falls hier jemand in Zukunft das selbe Problem hat: Bei mir hat es jetzt geholfen, die eigene temperaturabhängige Fenster-Auf-Erkennung der Thermostate auszuschalten. Das geht in via CCU in den Einstellungen der Homematic IP Thermostate.
-
RE: Balkontür länger geöffnet
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.
-
RE: Balkontür länger geöffnet
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.
-
RE: Balkontür länger geöffnet
Danke @amg_666! Bisher stelle ich sie nicht auf Manuell um. Das teste ich auf jeden Fall mal.
-
[Gelöst] HomematicIP Thermostat heizt trotz Fenstersensor
Hallo Leute,
kennt einer von euch das Problem: Meine Homematic IP Thermostatate haben sporadisch den Fehler, dass auch bei angezeigtem Fenstersymbol die Heiztemperatur als Soll gesetzt ist?!
Habe Xiaomi Sensoren und schicke das "Fenster Auf" Signal via ioBroker an die CCU. Der Thermostat (WINDOW_STATE Datenpunkt) zeigt dann im Display das "Fenster auf" Symbol und regelt auf die eingestellten 6 Grad runter.
Meistens klappt das super, aber immer wieder finde ich Thermostate, die nach einer Weile wieder die Programm-Temperatur von 21 Grad anzeigen, OBWOHL das Fenstersymbol noch da ist. ==> Daher denke ich, dass mein Script nicht Schuld sein kann...
Der Homatic Support will damit natürlich nichts zu tun haben, weil ja ioBroker im Spiel ist.
Hat jemand eine Idee, was das sein könnte?
Danke,
Squelsh -
RE: Balkontür länger geöffnet
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,
AndyMein 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();
-
RE: Zigbee Adapter: kann keine Geräte löschen
So, nun geht's. Was ich gemacht habe:
- Vorschlag von @Thomas-Braun gefolgt und auf Node12 aktualisiert.
- In der Objects-Liste das kaputte Zigbee-Device und alle Unterpunkte gelöscht. Danach war das Device im Zigbee Adapter nur noch ein Fragezeichen.
- Nochmal mehrfach im Zigbee Adapter das ?-Device gelöscht. Hatte im Log aber weiterhin den selben Fehler wie vorhin. Als ich dann aber noch mal den Knopf am Sensor gedrückt habe, damit dieser ein Paket sendet, war das Ding dann endlich weg. ==> WICHTIG: Nach dem Löschen muss wohl noch mal ein Datenpaket vom gelöschten Objekt empfangen werden.
Dann nochmal gepaired und wie ein Blöder andauernd auf den Knopf am Aquara gehämmert. Und dann hat er es hinbekommen.
-
RE: Zigbee Adapter: kann keine Geräte löschen
@Thomas-Braun Danke Thomas. Ich versuche immer möglichst wenige Dinge auf einmal zu ändern... Aber gut, dann teste ich das mal. Irgendwas sagt mir, dass ich mir mit dem 12er was anderes zerstöre