Hallo zusammen,
ich habe folgendes Notify was an sich funktioniert:
rgr_Bewohner:state:.* {
if (Value("rgr_Bewohner") eq "abwesend") {
fhem("set heizregler_wand_Climate controlMode night");
}
else {
fhem("set heizregler_wand_Climate controlMode auto");
}
}
Die Anwesenheit prüfe ich über Residents. Nun hätte ich gerne dass dieses Notify zeitverzögert ausgeführt wird. Eine Stunde nach dem das Ereignis eingetreten ist. Es könnte ja sein man ist im Keller mit dem Handy oder "kurz" einkaufen. Ich hab einiges gelesen über die Realisierung mit Sleep oder einem AT ...ich komme aber einfach nicht auf die Lösung. Könnt ihr mir helfen ?
Vielen Dank für eure Hilfe im Voraus.
Grüße
Steven
ich denke, das verzögern könnte im chaos enden, da du die at's ggf wieder löschen müstest.
setze besser den status erst auf "abwesend", wenn du wirklich willst, dass "abwesend" erreicht ist.
Nimm ein DOIF, da kann man mit dem Attrribut wait die Reaktion für jeden Zweig verzögern (Angabe in Sekunden).
Nachfolgend wird der Nachtmodus um 10min und der Automodus nicht verzögert.
Code für die fhem.cfg:
define xyz DOIF ( [rgr_Bewohner:state] eq "abwesend" ) ( set heizregler_wand_Climate controlMode night )\
DOELSEIF ( [rgr_Bewohner:state] eq "anwesend") ( set heizregler_wand_Climate controlMode auto )
attr xyz wait 600:0
"anwesend" habe ich geraten, das muss ggf. angepasst werden.
Hallo Frank,
über so was habe ich auch nachgedacht. Aber wie mache ich das ? Ich habe ein Reading gefuden:
durTimerPresence
Könntest du mir da bitte helfen ?
Grüße
Steven
Zitat von: frank am 07 Dezember 2022, 17:46:25
ich denke, das verzögern könnte im chaos enden, da du die at's ggf wieder löschen müstest.
setze besser den status erst auf "abwesend", wenn du wirklich willst, dass "abwesend" erreicht ist.
im presence modul kann man das über attribute verzögern.
bei residence kenne ich mich nicht aus.
..wie macht man das ?
..ich mach gerade einen Test mit dem hier. Der erste Schritt hat geklappt. Das AT hat sich automatisch gelöscht nach der Ausführung. Die Temps wurden wieder ordentlich gesetzt als ich wieder anwesen war...
Was meinst du mit "Chaos"?
rgr_Bewohner:state:.* {
if (Value("rgr_Bewohner") eq "abwesend") {
fhem("define ausfuehren_in_5_minuten at +00:05:00 set heizregler_wand_Climate controlMode night");
}
else {
fhem("set heizregler_wand_Climate controlMode auto");
}
}
Grüße
Steven
wenn du, wie im ersten post gesagt, 1std mit at verzögerst, bleibt das at scharf, auch wenn du nach 30min zurückkommst.
presencemodul:
ZitatabsenceThreshold
(not applicable in mode "event" )
The number of checks that have to result in "absent" before the state of the PRESENCE definition is changed to "absent". This can be used to verify the absence of a device with multiple check runs before the state is finally changed to "absent". If this attribute is set to a value >1, the reading state and presence will be set to "maybe absent" during the absence verification.
Default Value is 1 (no absence verification)
das habe ich befürchtet ..so ein Mist ...
Grüße
Steven
Zitat von: frank am 07 Dezember 2022, 20:08:43
wenn du, wie im ersten post gesagt, 1std mit at verzögerst, bleibt das at scharf, auch wenn du nach 30min zurückkommst.
presencemodul:
Zitat von: sxx128 am 07 Dezember 2022, 20:18:44
das habe ich befürchtet ..so ein Mist ...
Grüße
Steven
Daher der alternative Vorschlag von Miami, da passiert das nicht :)
Hallole
dann werde ich wohl auf ein DOIF umsteigen.... Ist das dann so richtig wenn ich die Abwesenheit verzögern möchten?
define xyz DOIF ( [rgr_Bewohner:state] eq "abwesend" ) ( set heizregler_wand_Climate controlMode night )\
DOELSEIF ( [rgr_Bewohner:state] eq "anwesend") ( set heizregler_wand_Climate controlMode auto )
attr xyz wait 600:0
Wenn ich die Abwesenheit verzögern möchte ? Die xxx:0 würde sich auf die Anwesenheit auswirken wenn da einen Wert angebe?
Grüße
Steven
Zitat von: Damian am 07 Dezember 2022, 20:24:13
Daher der alternative Vorschlag von Miami, da passiert das nicht :)
aber keinen fhem restart machen.
oder überleben die timer mittlerweile?
Zitat von: frank am 07 Dezember 2022, 20:30:38
aber keinen fhem restart machen.
oder überleben die timer mittlerweile?
Nein, allerdings nützt ein wiederhergestellter Timer auch nicht viel, wenn während der Reboot-Phase oder sogar einer längeren Stillstandsphase des Systems sich der Bewohner-Zustand geändert hat.
In beiden Fällen muss man mehr Logik in die Definition - eher schon in die Programmierung - reinstecken.
Zitat von: Damian am 07 Dezember 2022, 20:39:39
Nein, allerdings nützt ein wiederhergestellter Timer auch nicht viel, wenn während der Reboot-Phase oder sogar einer längeren Stillstandsphase des Systems sich der Bewohner-Zustand geändert hat.
In beiden Fällen muss man mehr Logik in die Definition - eher schon in die Programmierung - reinstecken.
Bei der DOIF-Definition, würde schon das Setzen eines startup-Attributs helfen, nach dem Neustart einen sauberen Zustand wiederherzustellen:
attr di_xyz startup set $SELF checkall
...brauch ich da ein
do always
Grüße
Steven
Zitat von: sxx128 am 07 Dezember 2022, 20:51:19
...brauch ich da ein
do always
Grüße
Steven
Nicht unbedingt. Wenn sich der Zustand des Devices nach Prüfung der Bedingungen beim Neustart nicht geändert hat, dann muss man auch nichts schalten.
Stören würde es aber auch nicht, dann wird einmal mehr geschaltet.
Kannst du dein Ziel Mal semantisch beschreiben?
Einerseits sollte man für die Abwesenheit nicht auf den state des Resident-devices triggern sondern auf presence....
Anderseits sieht mir das nach einem klassischen Anwendungsfall von watchdog aus ...
Wenn Abwesenheit eintritt und keine Anwesenheit innerhalb von 1h, dann tue was...
Wenn Abwesenheit eintritt und keine Anwesenheit innerhalb von einer Stunde, dann tue etwas anders?
Hallole ..
ich möchte einfach verhindern das meine Thermostate heruntergeregelt werden wenn ich nur eine ,,kurze" zeit abwesend bin. Presence habe ich nicht genommen weil wir zwei Personen sind und ich so einfach den Status abfragen kann.
Ich bin aber für weitere Vorschläge jederzeit offen. Residence ist ja quasi mein ,,Dummy" auf den ich reagiere im Doif.. wenn man das so sagen kann ..
Grüße
Steven
Also zu dem Betreff und der eigentlichen Frage: Man könnte den Ausführungsteil im Notify mit einem benannten sleep verzögern:
define n_Bewohner notify rgr_Bewohner:state:.* {
if ($EVTPART1 eq "abwesend") {
fhem("sleep 3600 n_Bewohner ;; set heizregler_wand_Climate controlMode night")
}
else {
fhem("cancel n_Bewohner ;; set heizregler_wand_Climate controlMode auto")
}
}
Hinweis: Der Vorschlag ging von einem state Event aus! Der muss aber extra aktiviert werden, damit der so funktioniert wie im ursprünglichen Ansatz:
attr n_Bewohner addStateEvent 1
Ich würde aber immer zuerst die eigentliche Abwesenheit verzögern und nicht sofort den Spezialfall draus machen.
ZitatPresence habe ich nicht genommen weil wir zwei Personen
Beide Personen jeweils ein presence device, dann aus beiden eine structure, diese dann für die Steuerung.
Hallole
danke für den Hinweis und eure Hilfe. Warum ist es besser auf Presence zu referenzieren und nicht auf Residence ?
Grüße
Steven
hab ich nicht gesagt ob besser oder schlechter, ich verwende aber Residents nicht. Kann Residents denn die Abwesenheitsschwelle nicht selbst?
..ich glaube nicht ..das geht wohl nur bei Presence ... aber ich weiss es nicht ..
Grüße
Steven
Zitat von: sxx128 am 07 Dezember 2022, 21:56:37
danke für den Hinweis und eure Hilfe. Warum ist es besser auf Presence zu referenzieren und nicht auf Residence ?
Was ist Residence?
Ich kenne RESIDENTS, und das ist eine "besondere" Art "structure" für ROOMMATE und GUEST Devices, die wiederum per PRESENCE-Devices mit An- und Abwesenheiten "versorgt" werden können.
MAn. ist das der einfachste Weg, Bewohner abzubilden... (und nebenbei die Basis für ein Benachrichtigungssystem aufzubauen).
Hallo
du hast natürlich recht. Ich habe es falsch geschrieben. Sorry Es heisst natürlich
RESIDENTS
aus den von dir geschilderten Gründen dachte ich halt auch es hier zu verwenden sei ne gute Idee...
Grüße
Steven
Ich habe genau diese Anforderung umgesetzt. Eine Stunde nachdem RESIDENTS absent meldet werden alle Heizungsthermostate runter gedreht. Lösung
watchdog!!
Hallo CoolTux
würdest du mir da bitte zeigen wie du das gemacht hast ?
Grüße
Steven
defmod watchdog_ResidentsAbsentLowerHomeTemperature watchdog AnniKraussStr:absent 01:00:00 AnniKraussStr:home set TYPE=CUL_HM:FILTER=R-nightTemp=17.C:FILTER=controlMode=auto controlManu 19
Meine Residents heißt AnniKraussStr
Moin Steven,
ich habe dafür das Modul "Homezone" von Kernsani im Einsatz. Dort sind dann Lampen und TV (Shelly), Bewegungsmelder (HM) und Fritzbox Presence beteiligt. Vielleicht ja auch ein Ansatz.
https://forum.fhem.de/index.php/topic,98594.0.html
Gruss
Enno
Hallo
werde ich mir auch anschauen ...danke für den Hinweis. Ich hab derzeit ein Problem mit meinem Notify. Gestern hatte ich das witzigerweise nicht und es hat ohne Probleme gekappt...das ist ja mein Notify:
rgr_Bewohner:state:.* {
if ($EVTPART1 eq "abwesend") {
fhem("sleep 3600 heizungabwsenheit ;; set heizregler_wand_Climate controlMode night")
}
else {
fhem("cancel heizungabwsenheit ;; set heizregler_wand_Climate controlMode auto")
}
}
Wenn das Notify auslöst habe ich eine total "wirre" TriggerTime (siehe Screenshot). Deswegen löst das Notify dann nicht aus so wie ich das einschätze. Was läuft denn da aufeinmal schief ? Habt ihr eine Idee? Mal abgesehen von dem Schreibfehler der ist aber durchgängig falsch und deswegen passt es dann wieder :-)
Grüße
Steven
abgesehen von Deinem "TriggerTime Fehler": die DEF ist falsch! Dort stehen zwei semikolon, es darf nur eins sein!
Merke: Ich habe ein define geschrieben, das ist für die FHEM Kommandozeile. Da wird dann in der DEF ein ; aus den beiden in der Kommandozeile.
Wenn Du also den define Code einfach in die DEF kopierst, musst Du die Semikolon halbieren!
Es sollte bei der Ausführung des notify einen Fehler im Log geben
Was findest Du an der TriggerTime wirre ? Das ist doch einfach die Sekunden seit 1970.
Hallole Otto123,
ich bin total verwirrt. Die Anpassung hab ich gemacht. Danke für den Hinweis mit den Semikolon.
Im Log bekomme ich folgenden Fehler:
abwesenheit return value: no such id: abwesenheit
Internals:
CFGFN
DEF rgr_Bewohner:state:.* {
if ($EVTPART1 eq "abwesend") {
fhem("sleep 3600 abwesenheit; set heizregler_wand_Climate controlMode night")
}
else {
fhem("cancel abwesenheit; set heizregler_wand_Climate controlMode auto")
}
}
FUUID 6393acb1-f33f-a8d7-c043-3b061cc2040df3a4
NAME abwesenheit
NOTIFYDEV rgr_Bewohner
NR 801
NTFY_ORDER 50-abwesenheit
REGEXP rgr_Bewohner:state:.*
STATE 2022-12-09 23:12:00
TRIGGERTIME 1670623920.03853
TYPE notify
eventCount 5
READINGS:
2022-12-09 23:06:33 state active
2022-12-09 23:12:00 triggeredByDev rgr_Bewohner
2022-12-09 23:12:00 triggeredByEvent state: absent
Attributes:
addStateEvent 1
room Heizregler
verbose 5
Grüße
Steven
Hallo Steven,
die Behebung für den Eintrag steht hier ;)
https://fhem.de/commandref_modular_DE.html#cancel
cancel abwesenheit quiet
Man könnte auch aufwendig abfragen ob der sleep Timer gesetzt wurde ;)
Was mich noch aufmerksam macht: triggeredByEvent state: absent
Sicher das Du jemals einen Event mit abwesend bekommst?
Hast Du mal im Eventmonitor geschaut was da so passiert?
Es wäre eventuell besser das Suchmuster präziser zu gestalten:
rgr_Bewohner:state:.absent|rgr_Bewohner:state:.present
oder auch
rgr_Bewohner:state:.[abpre]+sent
;)
Gruß Otto
Hallole Otto123
eigentlich schon. Zumindest ist es in anderen Bereichen so. Aber das hat mich auch schon stutzig gemacht. Ich schau mal in den Evenmonitor.
Das mit dem
cancel abwesenheit quiet
verstehe ich nicht ... sorry
Grüße
Steven
dann ist er ruhig wenn das benannte sleep nicht existiert ;)
Das Problem entsteht, wenn ein Event kommt, der nicht auf den ersten Zweig trifft und gar kein benanntes sleep existiert.
Das ist der Event laut Eventmonitor
rgr_Bewohner abwesend
Grüße
Steven
Zitat von: sxx128 am 07 Dezember 2022, 17:30:55
rgr_Bewohner:state:.* {
if (Value("rgr_Bewohner") eq "abwesend") {
fhem("set heizregler_wand_Climate controlMode night");
}
else {
fhem("set heizregler_wand_Climate controlMode auto");
}
}
Mit ein klein Wenig mehr Logik ist das Problem doch ganz einfach zu lösen.
Hier mein Vorschlag dazu:
defmod n_rgr_Bewohner_presence notify rgr_Bewohner:presence:.* {\
if ($EVTPART1 eq 'absent') {\
fhem('defmod atTmp_heizregler_wand_Climate_night at +01:00:00 { fhem("set heizregler_wand_Climate:FILTER=controlMode!=night controlMode night") if (ReadingsVal("rgr_Bewohner","presence","") eq "absent")}');;\
}\
else {\
fhem('set heizregler_wand_Climate:FILTER=controlMode!=auto controlMode auto');;\
}\
}
Gruß
Dan
..hab ich dann nicht wieder das Problem das wenn ich innerhalb der Stunde zurückkomme der Timer weiter läuft ?
Zitat von: sxx128 am 10 Dezember 2022, 01:25:08
..hab ich dann nicht wieder das Problem das wenn ich innerhalb der Stunde zurückkomme der Timer weiter läuft ?
Ja, er läuft weiter! Ist aber kein Problem da im Timer ja noch einmal abgefragt wird ob wirklich die Bewohner abwesend sind.
Und falls man wirklich noch einmal kurz wiederkommt und dann wieder geht, wird der Timer wieder neu gestellt.
Gruß
Dan
...aber er wird nicht abgebrochen richtig ...falls man nur innerhalb der Stunde wiederkommt .richtig ? Dein Vorschlag funktioniert ich habe ihn nur ein wenig angepasst ..Danke dafür schonmal :-)
Zitat von: sxx128 am 10 Dezember 2022, 01:35:46
...aber er wird nicht abgebrochen richtig ...falls man nur innerhalb der Stunde wiederkommt .richtig ?
Er muss auch nicht abgebrochen werden!
Der set Befehl wird nach der Stunde nur ausgeführt wenn die Bewohner auch wirklich abwesend sind.
Sonst läuft das "at" einfach ohne etwas auszuführen ab.
Gruß
Dan
..ah jetzt verstanden ..sorry...
das hier
rgr_Bewohner:presence:.*
verstehe ich auch nicht ganz. Ich hätte da jetzt so was erwartet wie z.B.
rgr_Bewohner eq "abwesend"
was macht das
:presence
da?
Werden dadurch die Events von rgr_bewohner und presence abgeprüft ?
Das ist meine abgeänderte Version:
rgr_Bewohner:presence:.* {
if ($EVTPART1 eq 'abwesend') {
fhem('defmod atTmp_heizregler_wand_Climate_night at +01:00:00 { fhem("set heizregler_wand_Climate:FILTER=controlMode!=night controlMode night") if (ReadingsVal("rgr_Bewohner","presence","") eq "abwesend")}');;
}
else {
fhem('set heizregler_wand_Climate:FILTER=controlMode!=auto controlMode auto');;
}
}
die jetzt offensichtlich funktioniert...
rgr_Bewohner:.* {
if ($EVTPART1 eq 'abwesend') {
fhem('defmod atTmp_heizregler_wand_Climate_night at +01:00:00 { fhem("set heizregler_wand_Climate:FILTER=controlMode!=night controlMode night") if (ReadingsVal("rgr_Bewohner","") eq "abwesend")}');;
}
else {
fhem('set heizregler_wand_Climate:FILTER=controlMode!=auto controlMode auto');;
}
}
müsste ja dann auch gehen oder ?
Das kann natürlich sein dass das bei dir auf deutsch ist das Reading, finde ich irgendwie gruselig.
Bei mir sind die RESIDENTs auf englisch und dort kommen halt diese Events.
Schön wenn es jetzt für dich funktioniert.
Gruß
Dan
..ja vielen Dank für die Hilfe ..
das müsste dann auch gehen oder ?
rgr_Bewohner:.* {
if ($EVTPART1 eq 'abwesend') {
fhem('defmod atTmp_heizregler_wand_Climate_night at +01:00:00 { fhem("set heizregler_wand_Climate:FILTER=controlMode!=night controlMode night") if (ReadingsVal("rgr_Bewohner","") eq "abwesend")}');;
}
else {
fhem('set heizregler_wand_Climate:FILTER=controlMode!=auto controlMode auto');;
}
}
Zitat von: sxx128 am 10 Dezember 2022, 01:56:17
..ja vielen Dank für die Hilfe ..
das müsste dann auch gehen oder ?
Gerne!
Bloß nicht!
Damit reagierst du im notify auf alle Events von rgr_Bewohner.
Ich würde das bei "rgr_Bewohner:presence:.*" belassen.
Gruß
Dan
vielleicht habe ich gestern beim überfliegen von residents etwas falsch verstanden. aber kommt nicht nach 36 std der status "gone" und macht die heizung wieder an?
Zitat von: CoolTux am 08 Dezember 2022, 12:46:22
defmod watchdog_ResidentsAbsentLowerHomeTemperature watchdog AnniKraussStr:absent 01:00:00 AnniKraussStr:home set TYPE=CUL_HM:FILTER=R-nightTemp=17.C:FILTER=controlMode=auto controlManu 19
Meine Residents heißt AnniKraussStr
Notify ist einfach nicht das geeignete Werkzeug
Zitat von: frank am 10 Dezember 2022, 02:44:10
vielleicht habe ich gestern beim überfliegen von residents etwas falsch verstanden. aber kommt nicht nach 36 std der status "gone" und macht die heizung wieder an?
U.a. wird deshalb im notify auf "presence" reagiert, das kennt nur "absent/present" bzw. "anwesend/abwesend" und sagt definitiv aus ob jemand anwesend ist oder nicht.
Zitat von: CoolTux am 10 Dezember 2022, 03:24:36
Notify ist einfach nicht das geeignete Werkzeug
Doch, ist es! Wenn man es richtig einsetzt!
Zitat von: sxx128 am 10 Dezember 2022, 01:46:19
rgr_Bewohner:presence:.* {
if ($EVTPART1 eq 'abwesend') {
fhem('defmod atTmp_heizregler_wand_Climate_night at +01:00:00 { fhem("set heizregler_wand_Climate:FILTER=controlMode!=night controlMode night") if (ReadingsVal("rgr_Bewohner","presence","") eq "abwesend")}');;
}
else {
fhem('set heizregler_wand_Climate:FILTER=controlMode!=auto controlMode auto');;
}
}
die jetzt offensichtlich funktioniert...
Gruß
Dan
Hier noch das komplette notify unabhängig von DE oder EN:
defmod n_rgr_Bewohner_presence notify rgr_Bewohner:presence:.* {\
if ($EVTPART1 =~ /^ab(sent|wesend)$/) {\
fhem('defmod atTmp_heizregler_wand_Climate_night at +01:00:00 { fhem("set heizregler_wand_Climate:FILTER=controlMode!=night controlMode night") if (ReadingsVal("rgr_Bewohner","presence","") =~ /^ab(sent|wesend)$/)}');;\
}\
else {\
fhem('set heizregler_wand_Climate:FILTER=controlMode!=auto controlMode auto');;\
}\
}
Gruß
Dan
Hallole .. also ich hab das jetzt mal live getestet. Das AT wurde angelegt , nach dem Ablauf des AT wurden Temperaturen nicht gesetzt. Ich schau mir das nachher mal an und schau in die Logs was da passiert .. bin noch unterwegs ..
Grüße Steven
Zitat von: sxx128 am 10 Dezember 2022, 14:39:17
Hallole .. also ich hab das jetzt mal live getestet. Das AT wurde angelegt , nach dem Ablauf des AT wurden Temperaturen nicht gesetzt. Ich schau mir das nachher mal an und schau in die Logs was da passiert .. bin noch unterwegs ..
Grüße Steven
Probier doch dann zu Hause mal aus ob der set-Befehl überhaupt zum gewünschten Ergebnis führt.
Also einfach mal in die Eingabezeile:
set heizregler_wand_Climate:FILTER=controlMode!=night controlMode night
Gruß
Dan
EDIT: Entsprechende list deiner verwendeten Devices könnten auch helfen Dir zu helfen.
Hallole
also mit den SET Befehlen ist es so dass der Befehl
set heizregler_wand_Climate:FILTER=controlMode!=night controlMode night
funktioniert.
Der Befehl:
set heizregler_wand_Climate:FILTER=controlMode!=auto controlMode auto
hat keine Wirkung. Beim absetzen des Befehls wird aber keine Fehlermeldung ausgegeben. Der heizregler_wand bleibt im "Nachtmodus".
Daraufhin habe ich es mit dem Befehl:
set heizregler_wand_Climate:FILTER=controlMode!=auto controlMode day
probiert. Das hat dann funktioniert und der heizregler_wand ist in den richtigen Modus gesprungen.Wie gesagt alles manuell in der Eingabezeile von Fhem.
Das AT wird immer gesetzt wenn das Notify auslöst.
Hier das Listing des Notify
Internals:
CFGFN
DEF rgr_Bewohner:presence:.* {
if ($EVTPART1 eq 'abwesend') {
fhem('defmod atTmp_heizregler_wand_Climate_night at +00:02:00 { fhem("set heizregler_wand_Climate:FILTER=controlMode!=night controlMode night") if (ReadingsVal("rgr_Bewohner","presence","") eq "abwesend")}');
}
else {
fhem('set heizregler_wand_Climate:FILTER=controlMode!=auto controlMode auto');
}
}
FUUID 63949bfa-f33f-a8d7-19de-65248c60cdae1d6e
NAME alleweg_presence
NOTIFYDEV rgr_Bewohner
NR 6529
NTFY_ORDER 50-alleweg_presence
REGEXP rgr_Bewohner:presence:.*
STATE 2022-12-10 16:17:17
TRIGGERTIME 1670685437.48963
TYPE notify
eventCount 3
READINGS:
2022-12-10 15:59:53 state active
2022-12-10 16:17:17 triggeredByDev rgr_Bewohner
2022-12-10 16:17:17 triggeredByEvent presence: abwesend
Attributes:
room Heizregler
verbose 5
und hier das Listning des heizregler_wand:
Internals:
DEF 60650D02
FUUID 6389ed4e-f33f-a8d7-ce8d-18778cd38ae505a5
NAME heizregler_wand_Climate
NR 309
NTFY_ORDER 48-heizregler_wand_Climate
STATE T: 21.1 desired: 21.0
TYPE CUL_HM
chanNo 02
device heizregler_wand
disableNotifyFn 1
eventCount 470
peerList heizregler_couch_Climate,heizregler_esszimmer_Climate
Helper:
DBLOG:
humidity:
LOG_Db:
TIME 1670687508.89925
VALUE 54
READINGS:
2022-12-10 16:35:58 CommandAccepted yes
2022-12-04 00:59:32 R-boostPeriod 5 min
2022-12-04 00:59:32 R-dayTemp 21 C
2022-12-04 00:59:32 R-daylightSaveTime on
2022-12-04 00:59:32 R-heatCool heating
2022-12-04 00:59:32 R-modePrioManu all
2022-12-04 00:59:32 R-modePrioParty all
2022-12-10 12:37:07 R-nightTemp 20 C
2022-12-04 00:59:32 R-noMinMax4Manu off
2022-12-04 00:59:32 R-sendWeatherData on
2022-12-04 00:59:32 R-showHumidity temp
2022-12-04 00:59:32 R-showInfo time
2022-12-04 00:59:32 R-showSetTemp actTemp
2022-12-04 00:59:32 R-showWeekday off
2022-12-02 13:33:04 R-sign off
2022-12-04 00:59:32 R-tempMax 30.5 C
2022-12-04 00:59:32 R-tempMin 4.5 C
2022-12-04 00:59:32 R-tempOffset 0.0K
2022-12-04 00:59:32 R-weekPrgSel prog1
2022-12-04 00:59:32 R-winOpnBoost off
2022-12-10 13:21:48 R_P1_0_tempListSat 07:30 19.0 22:00 21.0 24:00 19.0
2022-12-10 13:21:48 R_P1_1_tempListSun 07:30 19.0 22:00 21.0 24:00 19.0
2022-12-10 13:21:48 R_P1_2_tempListMon 05:00 19.0 15:00 20.0 22:30 21.0 24:00 19.0
2022-12-10 13:21:48 R_P1_3_tempListTue 05:00 19.0 15:00 20.0 22:00 21.0 24:00 19.0
2022-12-10 13:21:48 R_P1_4_tempListWed 05:00 19.0 15:00 20.0 22:00 21.0 24:00 19.0
2022-12-10 13:21:48 R_P1_5_tempListThu 05:00 19.0 15:00 20.0 22:00 21.0 24:00 19.0
2022-12-10 13:21:48 R_P1_6_tempListFri 05:00 19.0 15:00 20.0 22:00 21.0 24:00 19.0
2022-12-10 13:21:48 R_P1_tempList_State verified
2022-12-10 13:21:52 R_P2_0_tempListSat 24:00 17.0
2022-12-10 13:21:52 R_P2_1_tempListSun 24:00 17.0
2022-12-10 13:21:52 R_P2_2_tempListMon 24:00 17.0
2022-12-10 13:21:52 R_P2_3_tempListTue 24:00 17.0
2022-12-10 13:21:52 R_P2_4_tempListWed 24:00 17.0
2022-12-10 13:21:52 R_P2_5_tempListThu 24:00 17.0
2022-12-10 13:21:52 R_P2_6_tempListFri 24:00 17.0
2022-12-10 13:21:52 R_P2_tempList_State verified
2022-12-10 13:22:03 R_P3_0_tempListSat 24:00 17.0
2022-12-10 13:22:03 R_P3_1_tempListSun 24:00 17.0
2022-12-10 13:22:03 R_P3_2_tempListMon 24:00 17.0
2022-12-10 13:22:03 R_P3_3_tempListTue 24:00 17.0
2022-12-10 13:22:03 R_P3_4_tempListWed 24:00 17.0
2022-12-10 13:22:03 R_P3_5_tempListThu 24:00 17.0
2022-12-10 13:22:03 R_P3_6_tempListFri 24:00 17.0
2022-12-10 13:22:03 R_P3_tempList_State verified
2022-12-10 16:36:50 boostTime -
2022-12-10 13:23:10 cfgState TempChk
2022-12-10 16:36:50 commReporting off
2022-12-10 16:36:50 controlMode auto
2022-12-10 16:51:48 desired-temp 21.0
2022-12-10 16:51:48 humidity 54
2022-12-10 16:51:48 measured-temp 21.1
2022-12-10 13:21:38 peerList heizregler_couch_Climate,heizregler_esszimmer_Climate
2022-12-10 16:35:58 recentStateType ack
2022-12-10 16:51:48 state T: 21.1 desired: 21.0
2022-12-10 16:35:57 trigLast fhem:80
2022-12-10 16:36:50 winOpenReporting off
helper:
cfgChkResult No regs found for:-ret--ret-heizregler_wand_Climate type:thermostat - -ret-list:peer register :value-ret- 1: sign :off-ret- -ret- -ret-
peerFriend peerRtTc
peerIDsRaw ,5F9CF802,5F950402,00000000
peerIDsState complete
peerOpt p:thermostat
regLst 1,7,8,9
cfgChk:
idTp00 file: ./tempList.cfg error:Can't open ./tempList.cfg: No such file or directory
cmds:
TmplKey heizregler_couch_Climate,heizregler_esszimmer_Climate:no:1670626962.98739
TmplTs 1670626962.98739
cmdKey 1:0:0::heizregler_wand:00AD:02:heizregler_couch_Climate,heizregler_esszimmer_Climate
cmdLst:
clear [({msgErrors}|msgEvents|rssi|attack|trigger|register|oldRegs|readings|all)]
controlManu (on|off|5.0..30.0;0.5)
controlMode (auto|manual|boost|day|night)
controlParty -temp- -startDate- -startTime- -endDate- -endTime-
desired-temp (on|off|5.0..30.0;0.5)
getConfig noArg
getRegRaw (List0|List1|List2|List3|List4|List5|List6|List7) [-peerChn-]
inhibit [(on|{off})]
peerBulk -peer1,peer2,...- [({set}|unset)]
peerChan -btnNumber- -actChn- [({single})] [({set}|unset)] [(actor|remote|{both})]
peerSmart -peerOpt-
regBulk -list-.-peerChn- -addr1:data1- [-addr2:data2-]...
regSet [(prep|{exec})] -regName- -value- [-peerChn-]
sign [(on|{off})]
tempListFri [(prep|{exec})] [({p1}|p2|p3)] -HH:MM- -temp- [...]
tempListMon [(prep|{exec})] [({p1}|p2|p3)] -HH:MM- -temp- [...]
tempListSat [(prep|{exec})] [({p1}|p2|p3)] -HH:MM- -temp- [...]
tempListSun [(prep|{exec})] [({p1}|p2|p3)] -HH:MM- -temp- [...]
tempListThu [(prep|{exec})] [({p1}|p2|p3)] -HH:MM- -temp- [...]
tempListTmpl [({verify}|restore)] [[-file-:]-templateName-]
tempListTue [(prep|{exec})] [({p1}|p2|p3)] -HH:MM- -temp- [...]
tempListWed [(prep|{exec})] [({p1}|p2|p3)] -HH:MM- -temp- [...]
tempTmplSet -tempTmpl-
tplDel -tplDel-
tplSet_0 -tplChan-
tplSet_heizregler_couch_Climate -tplPeer-
tplSet_heizregler_esszimmer_Climate -tplPeer-
lst:
condition slider,0,1,255
peer heizregler_couch_Climate,heizregler_esszimmer_Climate
peerOpt remove_heizregler_couch_Climate,remove_heizregler_esszimmer_Climate,heizregler_bad_Climate,heizregler_buero_Climate,heizregler_schlafzimmer_Climate
tplChan
tplDel
tplPeer
rtrvLst:
cmdList [({short}|long)]
deviceInfo [({short}|long)]
list [({normal}|full)]
param -param-
reg -addr- -list- [-peerChn-]
regList noArg
regTable noArg
regVal -addr- -list- [-peerChn-]
saveConfig [-filename-]
tplInfo noArg
expert:
def 1
det 1
raw 0
tpl 0
peerIDsH:
00000000 broadcast
5F950402 heizregler_esszimmer_Climate
5F9CF802 heizregler_couch_Climate
regCollect:
role:
chn 1
shRegR:
07 00
shadowReg:
tmpl:
nb:
cnt 1
Attributes:
expert allReg
model HM-TC-IT-WM-W-EU
peerIDs 00000000,5F950402,5F9CF802
room Heizregler
userattr allethermostate allethermostate_map heizregler heizregler_map structexclude thermostat thermostat_map
Grüße
Steven
Ich glaube mich zu erinnern dass die HM-Climate Geräte (ich habe keine mehr) ihren Status irgendwie komisch im Reading "controlMode" anzeigen.
Lass doch einfach mal die Filter weg:
set heizregler_wand_Climate controlMode night
set heizregler_wand_Climate controlMode auto
Zeig mal bitte noch ein list von rgr_Bewohner.
Gruß
Dan
Hallole
nternals:
DURATIONTIMER 1670690249.67482
FUUID 5ea6a535-f33f-65e3-abc8-927cdccb9a418f40
FVERSION 10_RESIDENTS.pm:0.195330/2019-06-02
NAME rgr_Bewohner
NOTIFYDEV global,rr_Michaela,rr_Steffen
NR 59
NTFY_ORDER 50-rgr_Bewohner
READY 1
ROOMMATES rr_Michaela,rr_Steffen
STATE zuhause
TYPE RESIDENTS
eventCount 1078
READINGS:
2022-12-10 17:04:07 durTimerAbsence 00:00:00
2022-12-10 17:04:07 durTimerAbsence_cr 0
2022-12-10 17:36:29 durTimerPresence 00:32:22
2022-12-10 17:36:29 durTimerPresence_cr 32
2022-07-25 15:38:07 durTimerSleep 00:00:00
2022-07-25 15:38:07 durTimerSleep_cr 0
2022-07-25 15:54:43 homealoneSubtype -
2022-07-25 15:54:43 homealoneType -
2022-12-10 17:04:07 lastActivity home
2022-12-10 17:04:07 lastActivityBy Steffen
2022-12-10 17:04:07 lastActivityByDev rr_Steffen
2022-12-10 17:04:07 lastArrival 2022-12-10 17:04:07
2022-12-10 16:48:50 lastDeparture 2022-12-10 16:48:50
2022-12-10 17:04:07 lastDurAbsence 00:15:17
2022-12-10 17:04:07 lastDurAbsence_cr 15
2022-12-10 16:48:50 lastDurPresence 00:04:38
2022-12-10 16:48:50 lastDurPresence_cr 5
2022-07-25 15:54:43 lastHomealoneSubtype -
2022-07-25 15:54:43 lastHomealoneType -
2022-12-10 17:04:07 lastState absent
2022-12-10 17:04:07 presence present
2022-12-10 17:04:07 residentsAbsent 1
2022-12-10 17:04:07 residentsAbsentDevs rr_Michaela
2022-12-10 17:04:07 residentsAbsentNames Michaela
2022-07-25 15:54:43 residentsAsleep 0
2022-07-25 15:54:43 residentsAsleepDevs -
2022-07-25 15:54:43 residentsAsleepNames -
2022-07-25 15:54:43 residentsAwoken 0
2022-07-25 15:54:43 residentsAwokenDevs -
2022-07-25 15:54:43 residentsAwokenNames -
2022-12-01 20:57:04 residentsGone 0
2022-12-01 20:57:04 residentsGoneDevs -
2022-12-01 20:57:04 residentsGoneNames -
2022-07-25 15:54:43 residentsGotosleep 0
2022-07-25 15:54:43 residentsGotosleepDevs -
2022-07-25 15:54:43 residentsGotosleepNames -
2022-12-10 17:04:07 residentsHome 1
2022-12-10 17:04:07 residentsHomeDevs rr_Steffen
2022-12-10 17:04:07 residentsHomeNames Steffen
2022-07-25 15:54:43 residentsTotal 2
2022-12-10 17:04:07 residentsTotalAbsent 1
2022-12-10 17:04:07 residentsTotalAbsentDevs rr_Michaela
2022-12-10 17:04:07 residentsTotalAbsentNames Michaela
2022-07-25 15:54:43 residentsTotalGuests 0
2022-07-25 15:54:43 residentsTotalGuestsAbsent 0
2022-07-25 15:54:43 residentsTotalGuestsAbsentDevs -
2022-07-25 15:54:43 residentsTotalGuestsAbsentNames -
2022-07-25 15:54:43 residentsTotalGuestsPresent 0
2022-07-25 15:54:43 residentsTotalGuestsPresentDevs -
2022-07-25 15:54:43 residentsTotalGuestsPresentNames -
2022-07-25 15:54:43 residentsTotalPeople 2
2022-12-10 17:04:07 residentsTotalPeopleAbsent 1
2022-12-10 17:04:07 residentsTotalPeopleAbsentDevs rr_Michaela
2022-12-10 17:04:07 residentsTotalPeopleAbsentNames Michaela
2022-12-10 17:04:07 residentsTotalPeoplePresent 1
2022-12-10 17:04:07 residentsTotalPeoplePresentDevs rr_Steffen
2022-12-10 17:04:07 residentsTotalPeoplePresentNames Steffen
2022-07-25 15:54:43 residentsTotalPets 0
2022-07-25 15:54:43 residentsTotalPetsAbsent 0
2022-07-25 15:54:43 residentsTotalPetsAbsentDevs -
2022-07-25 15:54:43 residentsTotalPetsAbsentNames -
2022-07-25 15:54:43 residentsTotalPetsPresent 0
2022-07-25 15:54:43 residentsTotalPetsPresentDevs -
2022-07-25 15:54:43 residentsTotalPetsPresentNames -
2022-12-10 17:04:07 residentsTotalPresent 1
2022-12-10 17:04:07 residentsTotalPresentDevs rr_Steffen
2022-12-10 17:04:07 residentsTotalPresentNames Steffen
2022-07-25 15:54:43 residentsTotalRoommates 2
2022-12-10 17:04:07 residentsTotalRoommatesAbsent 1
2022-12-10 17:04:07 residentsTotalRoommatesAbsentDevs rr_Michaela
2022-12-10 17:04:07 residentsTotalRoommatesAbsentNames Michaela
2022-12-10 17:04:07 residentsTotalRoommatesPresent 1
2022-12-10 17:04:07 residentsTotalRoommatesPresentDevs rr_Steffen
2022-12-10 17:04:07 residentsTotalRoommatesPresentNames Steffen
2022-12-06 07:30:01 residentsTotalWakeup 0
2022-12-06 07:30:01 residentsTotalWakeupDevs -
2022-12-06 07:30:01 residentsTotalWakeupNames -
2022-07-25 15:54:43 residentsTotalWayhome 0
2022-07-25 15:54:43 residentsTotalWayhomeDelayed 0
2022-07-25 15:54:43 residentsTotalWayhomeDelayedDevs -
2022-07-25 15:54:43 residentsTotalWayhomeDelayedNames -
2022-07-25 15:54:43 residentsTotalWayhomeDevs -
2022-07-25 15:54:43 residentsTotalWayhomeNames -
2022-12-10 17:04:07 state home
TIMER:
rgr_Bewohner_DurationTimer:
HASH rgr_Bewohner
MODIFIER DurationTimer
NAME rgr_Bewohner_DurationTimer
Attributes:
DbLogExclude .*
alias Bewohner
eventMap home:zuhause absent:abwesend gone:verreist gotosleep:bettfertig asleep:schläft awoken:aufgestanden
group Zuhause Status
icon control_building_filled
room Residents
webCmd state
widgetOverride state:zuhause,bettfertig,schläft,aufgestanden,abwesend,verreist
Setz mal noch:
attr rgr_bewohner event-on-change-reading presence,state
Das schränkt die Events nur auf die wirklich nötigen ein und verhindert wiederholtes Aufrufen des notify.
Gruß
Dan
Hallole
hilft nix ... das Notify löst nicht aus. Das einzige was wie gesagt ist das meine 2 Minuten loslaufen...
Ich hab echt keine Idee...
das steht im Log
alleweg_presence exec {
if ($EVTPART1 eq 'abwesend') {
fhem('defmod atTmp_heizregler_wand_Climate_night at +00:02:00 { fhem("set heizregler_wand_Climate controlMode night") if (ReadingsVal("rgr_Bewohner","presence","") eq "abwesend")}');;
}
else {
fhem('set heizregler_wand_Climate controlMode auto');;
}
}
so ist das Log komplett:
2022.12.10 17:44:10 2: ROOMMATE set rr_Steffen absent
2022.12.10 17:44:11 5: Triggering alleweg_presence
2022.12.10 17:44:11 4: alleweg_presence exec {
if ($EVTPART1 eq 'abwesend') {
fhem('defmod atTmp_heizregler_wand_Climate_night at +00:02:00 { fhem("set heizregler_wand_Climate controlMode night") if (ReadingsVal("rgr_Bewohner","presence","") eq "abwesend")}');;
}
else {
fhem('set heizregler_wand_Climate controlMode auto');;
}
}
Grüße
Steven
Zitat von: sxx128 am 10 Dezember 2022, 17:49:32
hilft nix ... das Notify löst nicht aus. Das einzige was wie gesagt ist das meine 2 Minuten loslaufen...
Also das notify löst aus, sonst würde ja das AT mit den 2 Minuten nicht loslaufen!
Wenn die 2 Minuten abgelaufen sind passiert dann nichts? Sicher dass in dem Moment auch "rgr_Bewohner" abwesend ist?
Gruß
Dan
ja genau ..so ist es besser formuliert ... die set Befehle werden nich ausgeführt. Also ich bin definitiv nicht da und der Status wird vom Notifiy immer richtig erkannt. Anlaog dazu ob ich mein Smartphone eingeschaltet habe oder nicht ..das zweite Handy ist komplett aus...
Also das passt zu 100%
Grüße
Steven
Änder bitte mal den Code kurzeitig so ab und lass die 2 Minuten verstreichen und dann schaue mal ins Log. Die letzten beiden Zeilen sollten dann mit "DEBUG" beginnen. Diese beiden Zeilen bitte mal hier posten.
{
if ($EVTPART1 eq 'abwesend') {
fhem('defmod atTmp_heizregler_wand_Climate_night at +00:02:00 { Debug ReadingsVal("rgr_Bewohner","presence","");;;; Debug ReadingsVal("heizregler_wand_Climate","controlMode","")}');;
}
else {
fhem('set heizregler_wand_Climate controlMode auto');;
}
}
Gruß
Dan
Hallole
022.12.10 18:43:50 2: ROOMMATE set rr_Michaela absent
2022.12.10 18:44:12 2: ROOMMATE set rr_Steffen absent
2022.12.10 18:46:13 1: DEBUG>
2022.12.10 18:46:13 1: DEBUG>auto
mehr kommt da nicht ..
Grüße
Steven
Zitat von: sxx128 am 10 Dezember 2022, 18:48:40
2022.12.10 18:46:13 1: DEBUG>
2022.12.10 18:46:13 1: DEBUG>auto
Eigentlich hätte ich dort erwartet:
2022.12.10 18:46:13 1: DEBUG>absent
2022.12.10 18:46:13 1: DEBUG>auto
Gib mal bitte in die Eingabezeile das ein:
{ ReadingsVal("rgr_Bewohner","presence","nicht definiert") }
Jetzt sollte eigentlich "absent/abwesend" oder "present/anwesend" zurück kommen.
Gruß
Dan
...kommt nur ein absent...
Grüsse
Steffen
Zitat von: sxx128 am 10 Dezember 2022, 18:57:52
...kommt nur ein absent...
So sollte es sein! Genau diesen Wert habe ich doch vorhin auch mit dem Debug in dem AT ausgegeben! Eigentlich hätte das auch in der ersten DEBUG Zeile stehen müssen.
Nimm doch mal bitte das EN/DE notify welches ich nochmal gebaut hatte:
defmod n_rgr_Bewohner_presence notify rgr_Bewohner:presence:.* {\
if ($EVTPART1 =~ /^ab(sent|wesend)$/) {\
fhem('defmod atTmp_heizregler_wand_Climate_night at +00:02:00 { fhem("set heizregler_wand_Climate:FILTER=controlMode!=night controlMode night") if (ReadingsVal("rgr_Bewohner","presence","") =~ /^ab(sent|wesend)$/)}');;\
}\
else {\
fhem('set heizregler_wand_Climate:FILTER=controlMode!=auto controlMode auto');;\
}\
}
Gruß
Dan
EDIT: Ich bin der Meinung dass das Problem mit meinem ursprünglich ersten notify Code schon längst gelöst wäre, denn die Events scheinen doch (wie ursprünglich angenommen) auf englisch anzukommen.
jetzt ham wir wieder das Verhalten dass die Umschaltung in den Night Modus klappt aber zurück geht es nicht mehr sobald ich wieder anwesend bin
Probier mal bitte diesen Code komplett ohne Änderungen deinerseits:
defmod n_rgr_Bewohner_presence notify rgr_Bewohner:presence:.* {\
if ($EVTPART1 eq 'absent') {\
fhem('defmod atTmp_heizregler_wand_Climate_night at +01:00:00 { fhem("set heizregler_wand_Climate controlMode night") if (ReadingsVal("rgr_Bewohner","presence","") eq "absent")}');;\
}\
else {\
fhem('set heizregler_wand_Climate controlMode auto');;\
}\
}
Das ist genau meine allererste Code Version, aber ohne die FILTER.
Gruß
Dan
EDIT: Die Zeit kannst du natürlich anpassen.
Hallole DeeSPe,
also du wirst es nicht glauben es funktioniert. :D :D :D Ich habe aber tatsächlich noch etwas geändert. Beide set Befehle haben so funktioniert:
rgr_Bewohner:presence:.* {
if ($EVTPART1 =~ /^ab(sent|wesend)$/) {
fhem('defmod atTmp_heizregler_wand_Climate_night at +00:01:00 { fhem("set heizregler_wand_Climate:FILTER=controlMode!=night controlMode night") if (ReadingsVal("rgr_Bewohner","presence","") =~ /^ab(sent|wesend)$/)}');
}
else {
fhem('set heizregler_wand_Climate:FILTER=controlMode!=day controlMode day');
}
}
Es wurde sauber zwischen beiden Zuständen umgeschalten. Abhängig von meiner Anwenseheit.
Ich kann mich gar nicht genug bedanken für die Zeit die du da für mein Problem aufgewendet hast. Das ist nicht selbstverständlich. Vielen vielen Dank.....
Grüße
Steven
Zitat von: sxx128 am 10 Dezember 2022, 19:41:08
also du wirst es nicht glauben es funktioniert. :D :D :D
Hey Steven, ich freue mich sehr dass wir nun gemeinsam zur Lösung gekommen sind!
Mich würde trotzdem interessieren wie die Events und Werte wirklich aussehen um den Code noch zu Ende zu optimieren.
Könntest Du bitte mal die eine (Debug) Zeile noch einfügen und 1x abwesend gehen, die 1 Minute verstreichen lassen und dann wieder anwesend schalten.
rgr_Bewohner:presence:.* {
Debug "presence: '$EVTPART1', controlMode: '".ReadingsVal("heizregler_wand_Climate","controlMode","na")."'";
if ($EVTPART1 =~ /^ab(sent|wesend)$/) {
fhem('defmod atTmp_heizregler_wand_Climate_night at +00:01:00 { fhem("set heizregler_wand_Climate:FILTER=controlMode!=night controlMode night") if (ReadingsVal("rgr_Bewohner","presence","") =~ /^ab(sent|wesend)$/)}');
}
else {
fhem('set heizregler_wand_Climate:FILTER=controlMode!=day controlMode day');
}
}
Bei jedem presence Wechsel wird nun eine DEBUG Zeile ins Log geschrieben.
Bitte mal die beiden erzeugten Zeilen hier posten.
Gruß
Dan
P.S. Ich denke die Schaltung auf "controlMode day" ist "ungünstig", da dann nicht mehr automatisch die eingestellte automatische Nachtabsenkung erfolgt.
Hallole
keine guten Nachrichten. Es ist wieder so wie es war. Aufgrund deines Hinweises habe ich wieder zurückgestellt auf:
else {
fhem('set heizregler_wand_Climate:FILTER=controlMode!=auto controlMode auto');
}
Weil ich ja möchte dass die Nachtabschaltung funktioniert.
Im Ergebnis war es jetzt wieder so das in den ControlMode Night umgeschalten wurde.Der zweite Set Befehl bewirkt nicht dass wieder auf den alten Temperaturwert zurückgeschalten wird.
- Bervor ich "anwesend" bin habe ich eine Temperatur von 21 Grad im Mode Auto
- Wenn ich dann "abwesend" bin wird die Temperatur abgesenkt auf den Wert von 20 Grad (Nacht Temperatur). Der Regler befindet sich aber immer noch im Auto Modus (das Halbmond Symbol ist zu sehen).
- Wenn ich dann wieder online komme ist und bleibt der Regler im Auto Modus (das Halbmond Symbol ist zu sehen) und die Temperatur bleibt bei 20 Grad
Wenn ich folgendes konfiguriere:
else {
fhem('set heizregler_wand_Climate:FILTER=controlMode!=day controlMode day');
}
schaltet der Regler auf 21 Grad und der Regler ist im Auto Modus sobald ich "anwesend" bin.
Das hat ja aber dann wohl zur Folge dass die Nachtabsenkung nicht geht ...
2022.12.10 20:29:00 2: ROOMMATE set rr_Steffen absent
2022.12.10 20:29:01 1: DEBUG>presence: 'abwesend', controlMode: 'auto'
2022.12.10 20:34:09 2: ROOMMATE set rr_Steffen home
2022.12.10 20:34:10 1: DEBUG>presence: 'present', controlMode: 'auto'
Grüße
Steven
Zitat von: sxx128 am 10 Dezember 2022, 20:49:07
2022.12.10 20:29:00 2: ROOMMATE set rr_Steffen absent
2022.12.10 20:29:01 1: DEBUG>presence: 'abwesend', controlMode: 'auto'
2022.12.10 20:34:09 2: ROOMMATE set rr_Steffen home
2022.12.10 20:34:10 1: DEBUG>presence: 'present', controlMode: 'auto'
Da finde ich sehr merkwürdig!
Das Event für "abwesend" kommt auf deutsch (abwesend) und das Event für "anwesend" kommt in englisch (present).
Und wie ich mich richtig erinnert habe hat das Device die Eigenheit im "controlMode" immer wieder "auto" anzuzeigen. Also sind die FILTER eigentlich nutzlos.
Aufgrund der Werte würde ich den Code wie folgt ändern:
rgr_Bewohner:presence:.* {
if ($EVTPART1 eq "abwesend") {
fhem('defmod atTmp_heizregler_wand_Climate_night at +00:01:00 { fhem("set heizregler_wand_Climate controlMode night") if (ReadingsVal("rgr_Bewohner","presence","") eq "absent")}');
}
else {
fhem('set heizregler_wand_Climate controlMode auto');
}
}
Das sollte nun wie gewünscht funktionieren.
Gruß
Dan
Ahh, ich denke der DE/EN Mix im Event kommt vom Attribut "eventMap".
Dort steht ja ein Wert für "absent" drin, aber nicht für "present".
Gruß
Dan
Hallole
ja kann sein. Tut mir leid. Der zweite set Befehl wird immer noch "ignoriert". Der schaltet im Auto Modus auf die definierte Night Temp und dann bei Anwesenheit einfach wieder in den Auto Modus in dem er ja eh schon ist und da dort nix weiter definiert ist (also keine Temperatur) bleibt es bei den 20 Grad Nachttemperatur. Der Auto Modus ändert sich bei beiden Zuständen nicht... sorry für die laienhafte Ausdrucksweise. Besser kann ich es nicht ausdrücken :-) :-) So sieht das aus ... und ist auch bei Listing vom Device nachzuvollziehen...
Wenn ich die Befehle alleridngs händisch eingebe funktioniert es wie erwartet... Schaltet auf Nachttemperatur und schaltet dann wieder zurück auf meine 21 Grad
set heizregler_wand_Climate controlMode Night
set heizregler_wand_Climate auto
Grüße
Steven
Sorry, ich hatte das "controlMode" im else Zweig vergessen!
So sollte es sein:
rgr_Bewohner:presence:.* {
if ($EVTPART1 eq "abwesend") {
fhem('defmod atTmp_heizregler_wand_Climate_night at +00:01:00 { fhem("set heizregler_wand_Climate controlMode night") if (ReadingsVal("rgr_Bewohner","presence","") eq "absent")}');
}
else {
fhem('set heizregler_wand_Climate controlMode auto');
}
}
Gruß
Dan
wenn die cmds nicht über burst gesendet werden, braucht es ja ggf 3 min bis geschaltet wird.
mit verbose 3 sollten eigentlich auch logeinträge für die cul_hm cmds erscheinen.
Hallole Dan,
es ist vollbracht :-) Es funktioniert :D :D :D
Nochmals vielen Dank für die Hilfe...
Grüße
Steven
Zitat von: frank am 10 Dezember 2022, 21:57:00
wenn die cmds nicht über burst gesendet werden, braucht es ja ggf 3 min bis geschaltet wird.
Ich hatte damals bei meinen einfach "Burst" am Gerät dauerhaft aktiviert und somit wurden die Befehle immer sofort ausgeführt. Hatte m.E. damals keine wirklich große Auswirkung auf die Haltbarkeit der Batterie.
Ich weiß aber natürlich nicht ob Steven das auch gemacht hat!
Zitat von: sxx128 am 10 Dezember 2022, 22:01:45
es ist vollbracht :-) Es funktioniert :D :D :D
Nochmals vielen Dank für die Hilfe...
SUPER! So sollte es sein!
Ich freue mich für Dich!
Gruß
Dan
..ich habe Burst überall aktiv...
Bitte noch ein [gelöst] vor den Titel des Beitrags setzen!
Danke.
Gruß
Dan
Zitat von: sxx128 am 10 Dezember 2022, 22:08:25
..ich habe Burst überall aktiv...
zeig mal ein list
Zitat von: frank am 10 Dezember 2022, 22:14:29
zeig mal ein list
Hatte er hier (https://forum.fhem.de/index.php/topic,130784.msg1250551.html#msg1250551).
Gruß
Dan
Zitat von: DeeSPe am 10 Dezember 2022, 22:22:03
Hatte er hier (https://forum.fhem.de/index.php/topic,130784.msg1250551.html#msg1250551).
Gruß
Dan
nee.
nur chn2.
Burst Access steht bei mir auf 1_Auto.
Grüße
Steven
Als Nachteil der Lösung sehe ich die ständige Änderung der Konfiguration des Systems per defmod.
Zitat von: Damian am 10 Dezember 2022, 22:45:12
Als Nachteil der Lösung sehe ich die ständige Änderung der Konfiguration des Systems per defmod.
Was genau bedeutet "ständig"?
Im Normalfall wird das temp. at nur 1x beim Verlassen angelegt und nicht mehr geändert.
Im stateFile überlebt das sogar einen evtl. geregelten Neustart von FHEM.
Ich benutze das so ähnlich bei mir schon seit Jahren sehr zuverlässig und ohne Probleme.
Warum das nachteilig sein soll würde mich echt mal interessieren.
Gruß
Dan
Zitat von: sxx128 am 10 Dezember 2022, 22:43:28
Burst Access steht bei mir auf 1_Auto.
das ist nur die theorie.
wer nicht will, ....
Damian meint: es gibt ein rotes Fragezeichen.
gibt es aber bei einem einmaligen at nicht ;)
Zitat von: DeeSPe am 10 Dezember 2022, 23:06:55
Was genau bedeutet "ständig"?
Im Normalfall wird das temp. at nur 1x beim Verlassen angelegt und nicht mehr geändert.
Im stateFile überlebt das sogar einen evtl. geregelten Neustart von FHEM.
Ich benutze das so ähnlich bei mir schon seit Jahren sehr zuverlässig und ohne Probleme.
Warum das nachteilig sein soll würde mich echt mal interessieren.
Gruß
Dan
Ich habe immer Bauchschmerzen, wenn ich das rote Fragezeichen sehen, denn dann hat sich etwas an meiner Konfiguration geändert. Diese Information verliert durch solche Konstrukte an Bedeutung.
Zitat von: Damian am 10 Dezember 2022, 23:17:01
Ich habe immer Bauchschmerzen, wenn ich das rote Fragezeichen sehen, denn dann hat sich in etwas an meiner Konfiguration geändert. Diese Information verliert durch solche Konstrukte an Bedeutung.
Ein temporäres at erzeugt aber kein rotes Fragezeichen!
Kannst Du gern mal probieren:
defmod at_test123 at +00:01 {}
Gruß
Dan
Zitat von: DeeSPe am 10 Dezember 2022, 23:20:35
Ein temporäres at erzeugt aber kein rotes Fragezeichen!
Kannst Du gern mal probieren:
defmod at_test123 at +00:01 {}
Gruß
Dan
Dann ist ja alles gut.
Zitat von: DeeSPe am 10 Dezember 2022, 11:18:21
U.a. wird deshalb im notify auf "presence" reagiert, das kennt nur "absent/present" bzw. "anwesend/abwesend" und sagt definitiv aus ob jemand anwesend ist oder nicht.
ok.
man könnte doch aber den "gone" timer bei residents verwenden, um das at zu sparen.
den timer natürlich auf 1 stunde stellen und das notify auf gone triggern lassen.
Zitat von: frank am 10 Dezember 2022, 23:54:41
ok.
man könnte doch aber den "gone" timer bei residents verwenden, um das at zu sparen.
den timer natürlich auf 1 stunde stellen und das notify auf gone triggern lassen.
Viele Wege führen zum Ziel. ;)
Ich verwende "gone" dann aber eher um die Temperatur gezielt noch tiefer zu fahren als bei "absent" da man dann voraussichtlich wirklich länger weg ist. Hab auch noch andere Dinge die bei "gone" aktiv werden, z.B. Lichter die dann automatisch an und aus gehen um Anwesenheit zu simulieren.
Gruß
Dan