FHEM Forum

FHEM => Automatisierung => Thema gestartet von: sxx128 am 07 Dezember 2022, 17:30:55

Titel: Notify verzögert ausführen
Beitrag von: sxx128 am 07 Dezember 2022, 17:30:55
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

Titel: Antw:Notify verzögert ausführen
Beitrag 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.
Titel: Antw:Notify verzögert ausführen
Beitrag von: Miami am 07 Dezember 2022, 17:59:11
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.
Titel: Antw:Notify verzögert ausführen
Beitrag von: sxx128 am 07 Dezember 2022, 18:52:49
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.

Titel: Antw:Notify verzögert ausführen
Beitrag von: frank am 07 Dezember 2022, 19:15:08
im presence modul kann man das über attribute verzögern.
bei residence kenne ich mich nicht aus.
Titel: Antw:Notify verzögert ausführen
Beitrag von: sxx128 am 07 Dezember 2022, 19:21:24
..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
Titel: Antw:Notify verzögert ausführen
Beitrag 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:
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)
Titel: Antw:Notify verzögert ausführen
Beitrag von: sxx128 am 07 Dezember 2022, 20:18:44
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:
Titel: Antw:Notify verzögert ausführen
Beitrag von: Damian am 07 Dezember 2022, 20:24:13
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 :)
Titel: Antw:Notify verzögert ausführen
Beitrag von: sxx128 am 07 Dezember 2022, 20:27:25
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

Titel: Antw:Notify verzögert ausführen
Beitrag von: frank am 07 Dezember 2022, 20:30:38
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?
Titel: Antw:Notify verzögert ausführen
Beitrag von: Damian am 07 Dezember 2022, 20:39:39
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. 

Titel: Antw:Notify verzögert ausführen
Beitrag von: Damian am 07 Dezember 2022, 20:48:08
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
Titel: Antw:Notify verzögert ausführen
Beitrag von: sxx128 am 07 Dezember 2022, 20:51:19
...brauch ich da ein




do always



Grüße
Steven
Titel: Antw:Notify verzögert ausführen
Beitrag von: Damian am 07 Dezember 2022, 20:59:16
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.
Titel: Antw:Notify verzögert ausführen
Beitrag von: bartman121 am 07 Dezember 2022, 21:22:46
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?

Titel: Antw:Notify verzögert ausführen
Beitrag von: sxx128 am 07 Dezember 2022, 21:31:04
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
Titel: Antw:Notify verzögert ausführen
Beitrag von: Otto123 am 07 Dezember 2022, 21:50:49
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.
Titel: Antw:Notify verzögert ausführen
Beitrag von: sxx128 am 07 Dezember 2022, 21:56:37
Hallole

danke für den Hinweis und eure Hilfe. Warum ist es besser auf  Presence zu referenzieren und nicht auf Residence ?

Grüße
Steven
Titel: Antw:Notify verzögert ausführen
Beitrag von: Otto123 am 07 Dezember 2022, 22:02:08
hab ich nicht gesagt ob besser oder schlechter, ich verwende aber Residents nicht. Kann Residents denn die Abwesenheitsschwelle nicht selbst?
Titel: Antw:Notify verzögert ausführen
Beitrag von: sxx128 am 07 Dezember 2022, 22:03:42
..ich glaube nicht ..das geht wohl nur bei Presence ... aber ich weiss es nicht ..

Grüße
Steven
Titel: Antw:Notify verzögert ausführen
Beitrag von: Beta-User am 07 Dezember 2022, 22:29:58
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).
Titel: Antw:Notify verzögert ausführen
Beitrag von: sxx128 am 07 Dezember 2022, 22:33:46
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
Titel: Antw:Notify verzögert ausführen
Beitrag von: CoolTux am 08 Dezember 2022, 06:05:14
Ich habe genau diese Anforderung umgesetzt. Eine Stunde nachdem RESIDENTS absent meldet werden alle Heizungsthermostate runter gedreht. Lösung

watchdog!!
Titel: Antw:Notify verzögert ausführen
Beitrag von: sxx128 am 08 Dezember 2022, 09:09:36
Hallo CoolTux

würdest du mir da bitte zeigen wie du das gemacht hast ?

Grüße
Steven
Titel: Antw:Notify verzögert ausführen
Beitrag 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
Titel: Antw:Notify verzögert ausführen
Beitrag von: enno am 08 Dezember 2022, 21:16:06
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
Titel: Antw:Notify verzögert ausführen
Beitrag von: sxx128 am 09 Dezember 2022, 22:10:39
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



Titel: Antw:Notify verzögert ausführen
Beitrag von: Otto123 am 09 Dezember 2022, 22:33:11
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.
Titel: Antw:Notify verzögert ausführen
Beitrag von: sxx128 am 09 Dezember 2022, 23:14:41
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
Titel: Antw:Notify verzögert ausführen
Beitrag von: Otto123 am 09 Dezember 2022, 23:36:01
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
Titel: Antw:Notify verzögert ausführen
Beitrag von: sxx128 am 09 Dezember 2022, 23:42:00
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
Titel: Antw:Notify verzögert ausführen
Beitrag von: Otto123 am 09 Dezember 2022, 23:48:03
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.
Titel: Antw:Notify verzögert ausführen
Beitrag von: sxx128 am 10 Dezember 2022, 00:15:21
Das ist der Event laut Eventmonitor


rgr_Bewohner abwesend


Grüße
Steven
Titel: Antw:Notify verzögert ausführen
Beitrag von: DeeSPe am 10 Dezember 2022, 00:52:49
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
Titel: Antw:Notify verzögert ausführen
Beitrag 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 ?
Titel: Antw:Notify verzögert ausführen
Beitrag von: DeeSPe am 10 Dezember 2022, 01:33:54
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
Titel: Antw:Notify verzögert ausführen
Beitrag von: sxx128 am 10 Dezember 2022, 01:35:46
...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 :-)
Titel: Antw:Notify verzögert ausführen
Beitrag von: DeeSPe am 10 Dezember 2022, 01:39:50
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
Titel: Antw:Notify verzögert ausführen
Beitrag von: sxx128 am 10 Dezember 2022, 01:46:19
..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 ?
Titel: Antw:Notify verzögert ausführen
Beitrag von: DeeSPe am 10 Dezember 2022, 01:54:45
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
Titel: Antw:Notify verzögert ausführen
Beitrag von: sxx128 am 10 Dezember 2022, 01:56:17
..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');;
  }
}


Titel: Antw:Notify verzögert ausführen
Beitrag von: DeeSPe am 10 Dezember 2022, 01:59:17
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
Titel: Antw:Notify verzögert ausführen
Beitrag 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?
Titel: Antw:Notify verzögert ausführen
Beitrag von: CoolTux am 10 Dezember 2022, 03:24:36
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
Titel: Antw:Notify verzögert ausführen
Beitrag von: DeeSPe am 10 Dezember 2022, 11:18:21
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
Titel: Antw:Notify verzögert ausführen
Beitrag von: DeeSPe am 10 Dezember 2022, 11:24:04
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
Titel: Antw:Notify verzögert ausführen
Beitrag 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
Titel: Antw:Notify verzögert ausführen
Beitrag von: DeeSPe am 10 Dezember 2022, 16:03:00
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.
Titel: Antw:Notify verzögert ausführen
Beitrag von: sxx128 am 10 Dezember 2022, 16:59:00
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
Titel: Antw:Notify verzögert ausführen
Beitrag von: DeeSPe am 10 Dezember 2022, 17:15:49
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
Titel: Antw:Notify verzögert ausführen
Beitrag von: sxx128 am 10 Dezember 2022, 17:38:54
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
Titel: Antw:Notify verzögert ausführen
Beitrag von: DeeSPe am 10 Dezember 2022, 17:42:50
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
Titel: Antw:Notify verzögert ausführen
Beitrag von: sxx128 am 10 Dezember 2022, 17:49:32
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
Titel: Antw:Notify verzögert ausführen
Beitrag von: DeeSPe am 10 Dezember 2022, 17:58:36
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
Titel: Antw:Notify verzögert ausführen
Beitrag von: sxx128 am 10 Dezember 2022, 18:00:45
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
Titel: Antw:Notify verzögert ausführen
Beitrag von: DeeSPe am 10 Dezember 2022, 18:12:37
Ä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
Titel: Antw:Notify verzögert ausführen
Beitrag von: sxx128 am 10 Dezember 2022, 18:48:40
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
Titel: Antw:Notify verzögert ausführen
Beitrag von: DeeSPe am 10 Dezember 2022, 18:54:49
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
Titel: Antw:Notify verzögert ausführen
Beitrag von: sxx128 am 10 Dezember 2022, 18:57:52
...kommt nur ein absent...

Grüsse
Steffen
Titel: Antw:Notify verzögert ausführen
Beitrag von: DeeSPe am 10 Dezember 2022, 19:01:03
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.
Titel: Antw:Notify verzögert ausführen
Beitrag von: sxx128 am 10 Dezember 2022, 19:21:16
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
Titel: Antw:Notify verzögert ausführen
Beitrag von: DeeSPe am 10 Dezember 2022, 19:24:31
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.
Titel: Antw:Notify verzögert ausführen
Beitrag von: sxx128 am 10 Dezember 2022, 19:41:08
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
Titel: Antw:Notify verzögert ausführen
Beitrag von: DeeSPe am 10 Dezember 2022, 20:11:54
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.
Titel: Antw:Notify verzögert ausführen
Beitrag von: sxx128 am 10 Dezember 2022, 20:49:07
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



Titel: Antw:Notify verzögert ausführen
Beitrag von: DeeSPe am 10 Dezember 2022, 20:58:47
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
Titel: Antw:Notify verzögert ausführen
Beitrag von: DeeSPe am 10 Dezember 2022, 21:11:09
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
Titel: Antw:Notify verzögert ausführen
Beitrag von: sxx128 am 10 Dezember 2022, 21:22:58
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
Titel: Antw:Notify verzögert ausführen
Beitrag von: DeeSPe am 10 Dezember 2022, 21:50:01
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
Titel: Antw:Notify verzögert ausführen
Beitrag 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.

mit verbose 3 sollten eigentlich auch logeinträge für die cul_hm cmds erscheinen.
Titel: Antw:Notify verzögert ausführen
Beitrag von: sxx128 am 10 Dezember 2022, 22:01:45
Hallole Dan,

es ist vollbracht :-) Es funktioniert   :D :D :D

Nochmals vielen Dank für die Hilfe...

Grüße
Steven

Titel: Antw:Notify verzögert ausführen
Beitrag von: DeeSPe am 10 Dezember 2022, 22:03:12
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
Titel: Antw:Notify verzögert ausführen
Beitrag von: sxx128 am 10 Dezember 2022, 22:08:25
..ich habe Burst überall aktiv...
Titel: Antw:Notify verzögert ausführen
Beitrag von: DeeSPe am 10 Dezember 2022, 22:11:14
Bitte noch ein [gelöst] vor den Titel des Beitrags setzen!

Danke.

Gruß
Dan
Titel: Antw:Notify verzögert ausführen
Beitrag von: frank am 10 Dezember 2022, 22:14:29
Zitat von: sxx128 am 10 Dezember 2022, 22:08:25
..ich habe Burst überall aktiv...
zeig mal ein list
Titel: Antw:Notify verzögert ausführen
Beitrag von: DeeSPe am 10 Dezember 2022, 22:22:03
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
Titel: Antw:Notify verzögert ausführen
Beitrag von: frank am 10 Dezember 2022, 22:25:05
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.
Titel: Antw:Notify verzögert ausführen
Beitrag von: sxx128 am 10 Dezember 2022, 22:43:28
Burst Access steht bei mir auf  1_Auto. 

Grüße
Steven
Titel: Antw:Notify verzögert ausführen
Beitrag 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.
Titel: Antw:Notify verzögert ausführen
Beitrag von: DeeSPe am 10 Dezember 2022, 23:06:55
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
Titel: Antw:Notify verzögert ausführen
Beitrag von: frank am 10 Dezember 2022, 23:10:54
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, ....
Titel: Antw:Notify verzögert ausführen
Beitrag von: Otto123 am 10 Dezember 2022, 23:14:23
Damian meint: es gibt ein rotes Fragezeichen.
gibt es aber bei einem einmaligen at nicht  ;)
Titel: Antw:Notify verzögert ausführen
Beitrag von: Damian am 10 Dezember 2022, 23:17:01
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.
Titel: Antw:Notify verzögert ausführen
Beitrag von: DeeSPe am 10 Dezember 2022, 23:20:35
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
Titel: Antw:Notify verzögert ausführen
Beitrag von: Damian am 10 Dezember 2022, 23:23:01
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.
Titel: Antw:Notify verzögert ausführen
Beitrag von: frank am 10 Dezember 2022, 23:54:41
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.
Titel: Antw:Notify verzögert ausführen
Beitrag von: DeeSPe am 11 Dezember 2022, 00:28:19
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