Hallo zusammen,
ich habe folgendes Problem.
3 Xiaomi Fenstersensoren und 3 Spirit Heizungsthermostate in unterschiedlichen Räumen.
Angebunden über Zigbee Conbee2 auf einem Raspberry
Es soll in dem jeweiligen Raum das Thermostat auf 5°C gestellt werden sobald das Fenster geöffnet wird. Beim Schließen des Fensters dann wieder auf die gewünschte Raumtemperatur.
Dafür habe ich je Raum 2 Notify´s angelegt. Fensterauf und Fensterzu.
Funktioniert auch im Prinzip, aber egal welches Fenster ich öffne, es werden alle Thermostate runtergeregelt, beim schließen gehen dann alle wieder auf die jeweilige Wunschtemperatur.
Wie kann ich das entkoppeln?
Die Fenstersensoren sind alle eindeutig benannt und den Notify´s auch entsprechend zugeordnet, ebenso die Thermostate.
Was mir auffällt das in jedem Notify in der Raw Definition Triggered by, der zuletzt genutzt Fenster Sensor steht.
z.B. Bad_1OG
defmod Bad1OG_Fensterauf notify Bad_1OG_Fenster:state:.*|open set Bad_1OG_Hz heatsetpoint 5
attr Bad1OG_Fensterauf room Bad 1_OG
setstate Bad1OG_Fensterauf 2021-12-19 13:29:42
setstate Bad1OG_Fensterauf 2021-12-19 13:12:56 state active
setstate Bad1OG_Fensterauf 2021-12-19 13:29:42 triggeredByDev FensterKueche_1OG
setstate Bad1OG_Fensterauf 2021-12-19 13:29:42 triggeredByEvent open
Hier noch die dazugehörende DEF: Bad_1OG_Fenster:state:.*|open set Bad_1OG_Hz heatsetpoint 5
Und das Listing von dem Notify:
Internals:
CFGFN
DEF Bad_1OG_Fenster:state:.*|open set Bad_1OG_Hz heatsetpoint 5
FUUID 61bf1daf-f33f-04b7-d06c-b55984d690cbafad
NAME Bad1OG_Fensterauf
NR 189
NTFY_ORDER 50-Bad1OG_Fensterauf
REGEXP Bad_1OG_Fenster:state:.*|open
STATE 2021-12-19 13:29:42
TRIGGERTIME 1639916982.52292
TYPE notify
READINGS:
2021-12-19 13:12:56 state active
2021-12-19 13:29:42 triggeredByDev FensterKueche_1OG
2021-12-19 13:29:42 triggeredByEvent open
Attributes:
room Bad 1_OG
Habt ihr den Effekt schon mal gehabt und wie kann ich das Lösen?
Viele Grüße
defmod Bad1OG_Fensterauf notify Bad_1OG_Fenster:.open
Deine Trigger RegEx ist nicht korrekt. So sollte es für das Badezimmerfenster aussehen denke ich mal.
Allerdings solltest Du darüber nachdenken das ganze zu verallgemeinern und dadurch ausbaufähiger zu machen. So könnte zum Beispiel ein einziges Notify ausreichen mit passender RegEx auf alle Kontakte zu reagieren. Im Notify selber kannst Du rausfinden zu welchen Raum der Fensterkontakt gehört und somit alle Thermostate im selben Raum runter regeln.
Natürlich wäre eine bessere Benamung angebracht.
Hallo CoolTux,
erstmal danke für die Rückmeldung.
Aber so ganz verstehe ich nicht was genau Du gemeint hast.
Internals:
DEF Bad_1OG_Fenster:.open set Bad_1OG_Hz heatsetpoint 5
FUUID 61bf1daf-f33f-04b7-d06c-b55984d690cbafad
NAME Bad1OG_Fensterauf
NOTIFYDEV Bad_1OG_Fenster
NR 40
NTFY_ORDER 50-Bad1OG_Fensterauf
REGEXP Bad_1OG_Fenster:.open
STATE active
TRIGGERTIME 1639921550.88546
TYPE notify
READINGS:
2021-12-19 14:46:51 state active
2021-12-19 14:45:50 triggeredByDev Bad1OG_Fensterauf
2021-12-19 14:45:50 triggeredByEvent addRegexpPart Bad1OG_Fensterauf addRegexpPart.*
Attributes:
room Bad 1_OG
So sieht das jetzt aus. Thermostat reagiert jetzt nicht mehr. Den Code von dir habe ich so eingesetzt.
Viele Grüße
Das verstehe ich jetzt nicht. Du hast dein gar nichts von meinem oben geschrieben übernommen.
Ich hatte geschrieben
Bad1OG_Fensterauf notify Bad_1OG_Fenster:.open
Du hast
Bad1OG_Fensterzu
Wir reden aneinander vorbei.
Dann nimm am Besten den Eventmonitor löse das Fenster aus und suche den Event auf den Du reagieren willst und modifiziere dein notify.
Hier steht wie es geht
https://wiki.fhem.de/wiki/Event_monitor
Hallo CoolTux,
ich habe die Zeile so direkt übernommen in die Commandline, Enter und gespeichert.
Internals:
DEF Bad_1OG_Fenster:.open set Bad_1OG_Hz heatsetpoint 5
FUUID 61bf1daf-f33f-04b7-d06c-b55984d690cbafad
NAME Bad1OG_Fensterauf
NOTIFYDEV Bad_1OG_Fenster
NR 40
NTFY_ORDER 50-Bad1OG_Fensterauf
REGEXP Bad_1OG_Fenster:.open
STATE active
TRIGGERTIME 1639921550.88546
TYPE notify
READINGS:
2021-12-19 15:31:04 state active
2021-12-19 14:45:50 triggeredByDev Bad1OG_Fensterauf
2021-12-19 14:45:50 triggeredByEvent addRegexpPart Bad1OG_Fensterauf addRegexpPart.*
Attributes:
room Bad 1_OG
Oder kann ich das irgendwie anders einstellen?
Viele Grüße
Hallo Otto,
im Eventmonitor sieht das so aus:
2021-12-19 15:27:13 HUEDevice Bad_1OG_Fenster open
2021-12-19 15:27:41 HUEDevice Bad_1OG_Fenster closed
Im Prinzip das was ich erwartet habe.
Viele Grüße
Das geht so nicht.
Meine Empfehlung. Mache es wie Otto sagte. Am besten Du löschst Dein Notify zum öffnen der Fenster.
Dann Eventmonitor öffnen und das Fenster auf machen. Danach die Zeile markieren welche entstanden ist als du das Fenster geöffnet hast und create Notify anklicken. Siehe auch Ottos Link. Geht am einfachsten für Dich.
Zitat von: Intmic am 19 Dezember 2021, 15:30:07
Hallo Otto,
im Eventmonitor sieht das so aus:
2021-12-19 15:27:13 HUEDevice Bad_1OG_Fenster open
2021-12-19 15:27:41 HUEDevice Bad_1OG_Fenster closed
Im Prinzip das was ich erwartet habe.
Viele Grüße
Na dann Zeile markieren und notify modifizieren! Ist das zu kompliziert beschrieben?
Hallo zusammen,
über den Eventmonitor hat es dann einwandfrei funktioniert.
Vielen Dank für die sehr hilfreichen Antworten.
Die nächste Ausbaustufe ist dann das ganze noch mit einer Zeitsteuerung zu kombinieren, also heizen nur von bis zu einer bestimmten Uhrzeit. Sollte doch gehen?
Viele Grüße
Ja das geht. Dafür aber bitte einen neuen Thread aufmachen.
Grüße