Hallo zusammen,
ich nutze das Modul HOMEMODE und konnte damit schon vieles einfangen. Vor allem die Beispiele aus dem zugehörigen Wiki-Artikel sind immer sehr hilfreich. So habe ich nun auch das Beispiel aus dem Wiki für das Attribut "HomeCMDpresence-absent-resident" übernommen und an meine Begebenheiten angepasst.
{
# Mich benachrichtigen wenn ich nicht zu hause bin und jemand anderes die Wohnung verlässt
fhem "msg text \@rr_Vera %ALIAS% hat gerade die Wohnung verlassen!"
if ("%RESIDENT%" ne "rr_Vera" && ReadingsVal("rr_Vera","presence","") ne "present");
# Verabschiedungsnachricht zusammensetzen
my $msg;
# Alle außer mich selbst verabschieden
$msg .= "Bis bald und auf Wiedersehen %ALIAS%...";
# Glättewarnung wenn nötig
$msg .= " ACHTUNG!!! Es ist %TEMPERATURE%°C kalt! Somit könnte es glatt werden!" if (%ICE%);
# Nachricht senden wenn vorhanden
fhem "msg \@%RESIDENT% $msg" if ($msg);
fhem "msg text alias:%ALIAS%, resident:%RESIDENT%, presenceVera: " . ReadingsVal("rr_Vera","presence","") . "Message:$msg";
}
Mit der letzten Zeile wollte ich eigentlich nur prüfen wie die Variablen zum Zeitpunkt des Ausführens gefüllt sind und ob ich vielleicht die if's anpassen muss, aber nicht einmal das funktioniert. Also er führt diesen Befehl wohl erst gar nicht aus.
Leider funktioniert das nicht wie gewünscht/gedacht?! Ich verstehe es doch richtig dass dieser Befehl ausgeführt wird wenn ein Resident das Reading "presence" auf absent ändert. Oder?
Und wenn ich genau das tue (simuliert durch Ausschalten von Bluetooth, worüber meine Anwesenheit erkannt wird), passiert nichts. Hier das Log mit verbose 5 zu dem Zeitpunkt wenn ich absent gehe.
2018.02.15 08:10:38 5: myHomemode: Events from monitored device OUT_Unwetter: WarnUWZLevel: 0 --- WarnUWZLevel_Color: gruen --- WarnUWZLevel_Str: Stufe Grün (keine Warnung) --- durationFetchReadings: 0.00 --- WarnCount: 0 --- state: Warnungen: 0 --- lastConnection: 5 values captured in 0.00 s
2018.02.15 08:10:46 5: myHomemode: Events from monitored device BAD_Heizung: actuator: 100 --- battery: ok --- batteryLevel: 3 --- desired-temp: 27.0 --- measured-temp: 23.3 --- motorErr: ok
2018.02.15 08:10:47 2: ROOMMATE set rr_Vera absent
2018.02.15 08:10:48 5: myHomemode: Events from monitored device rgr_Residents: residentsTotalRoommatesPresent: 0 --- residentsTotalRoommatesPresentDevs: - --- residentsTotalRoommatesPresentNames: - --- residentsTotalRoommatesAbsent: 2 --- residentsTotalRoommatesAbsentDevs: rr_Mirco,rr_Vera --- residentsTotalRoommatesAbsentNames: Mirco, Vera --- residentsTotalPresent: 0 --- residentsTotalPresentDevs: - --- residentsTotalPresentNames: - --- residentsTotalAbsent: 2 --- residentsTotalAbsentDevs: rr_Mirco,rr_Vera --- residentsTotalAbsentNames: Mirco, Vera --- residentsHome: 0 --- residentsHomeDevs: - --- residentsHomeNames: - --- residentsAbsent: 2 --- residentsAbsentDevs: rr_Mirco,rr_Vera --- residentsAbsentNames: Mirco, Vera --- lastState: zuhause --- state: absent --- presence: abwesend --- lastDeparture: 2018-02-15 08:10:48 --- lastDurPresence: 00:02:57 --- lastDurPresence_cr: 3 --- durTimerPresence_cr: 0 --- durTimerPresence: 00:00:00 --- lastActivity: abwesend --- lastActivityBy: Vera --- lastActivityByDev: rr_Vera
2018.02.15 08:10:48 5: myHomemode: HOMEMODE_RESIDENTS mode: absent
2018.02.15 08:10:49 5: myHomemode: Events from monitored device global: DEFINED atTmp_absent_belated_myHomemode
2018.02.15 08:10:49 5: myHomemode: cmdnew: { my $room = (split(/_/, "atTmp_absent_belated_myHomemode"))[0]; if ($room eq "WHG"){ $room = "01_Wohnung" } elsif ($room eq "EF"){ $room = "10_Eingangsflur" } elsif ($room eq "WZ"){ $room = "20_Wohnzimmer" } elsif ($room eq "KU"){ $room = "30_Kueche" } elsif ($room eq "SZ"){ $room = "40_Schlafzimmer" } elsif ($room eq "JZ"){ $room = "50_Jana" } elsif ($room eq "SOZ"){ $room = "60_Sophia" } elsif ($room eq "BAD"){ $room = "70_Bad" } elsif ($room eq "OUT"){ $room = "80_Draussen" } elsif ($room eq "SVG"){ $room = "Plots" } elsif ($room eq "not"){ $room = "96_Logik" } elsif ($room eq "CAL"){ $room = "92_Calendar" } fhem ("attr atTmp_absent_belated_myHomemode room ". $room); fhem ("attr atTmp_absent_belated_myHomemode DbLogExclude .*"); }
2018.02.15 08:10:49 4: executed CMDs: { my $room = (split(/_/, "atTmp_absent_belated_myHomemode"))[0];; if ($room eq "WHG"){ $room = "01_Wohnung" } elsif ($room eq "EF"){ $room = "10_Eingangsflur" } elsif ($room eq "WZ"){ $room = "20_Wohnzimmer" } elsif ($room eq "KU"){ $room = "30_Kueche" } elsif ($room eq "SZ"){ $room = "40_Schlafzimmer" } elsif ($room eq "JZ"){ $room = "50_Jana" } elsif ($room eq "SOZ"){ $room = "60_Sophia" } elsif ($room eq "BAD"){ $room = "70_Bad" } elsif ($room eq "OUT"){ $room = "80_Draussen" } elsif ($room eq "SVG"){ $room = "Plots" } elsif ($room eq "not"){ $room = "96_Logik" } elsif ($room eq "CAL"){ $room = "92_Calendar" } fhem ("attr atTmp_absent_belated_myHomemode room ". $room);; fhem ("attr atTmp_absent_belated_myHomemode DbLogExclude .*");; }
2018.02.15 08:10:49 5: myHomemode: cmdnew: { if ("%PREVAMODE%" eq "disarm") { my $msg; $msg .= "Die Alarmanlage ist nun scharf geschaltet!"; my $is = "%ALARMHR%" =~ /und/ ? "sind" : "ist"; $msg .= " " if ($msg); $msg .= "ACHTUNG: %ALARMHR% $is noch offen!!!" if (%ALARMCT%); fhem "msg \@%RESIDENT% $msg" if ($msg); } }
2018.02.15 08:10:49 3: msg rr_Vera: ID=1518678649.41603.1 TYPE=push ROUTE=teleBot RECIPIENT=@364555228 STATUS=OK PRIORITY=0 TITLE='' MSG='Die Alarmanlage ist nun scharf geschaltet!'
2018.02.15 08:10:49 4: executed CMDs: { if ("disarm" eq "disarm") { my $msg;; $msg .= "Die Alarmanlage ist nun scharf geschaltet!";; my $is = "" =~ /und/ ? "sind" : "ist";; $msg .= " " if ($msg);; $msg .= "ACHTUNG: $is noch offen!!!" if (0);; fhem "msg \@rr_Vera $msg" if ($msg);; } }
2018.02.15 08:10:49 5: myHomemode: Events from monitored device rr_Vera: lastState: zuhause --- state: absent --- lastMood: calm --- mood: - --- presence: abwesend --- lastLocation: arrival --- location: underway --- lastDeparture: 2018-02-15 08:10:47 --- lastDurPresence: 00:02:56 --- lastDurPresence_cr: 3 --- durTimerPresence_cr: 0 --- durTimerPresence: 00:00:00
2018.02.15 08:10:49 5: myHomemode: HOMEMODE_RESIDENTS mode: absent
2018.02.15 08:10:49 5: myHomemode: Events from monitored device HandyVeraBT: absent
Wie man erkennen kann wird der Befehl von HomeCMDmodeAlarm-armaway ausgeführt. Das ist ja auch ein Ergebnis meiner Abwesenheit.
Wo liegt hier der Fehler?
Der Vollständigkeit halber noch ein list meines HOMEMODE-Devices
Internals:
CHANGED
DEF rgr_Residents
NAME myHomemode
NOTIFYDEV BAD_Fensterkontakt,BAD_Heizung,BAD_Pflanze5,BAD_Raumklima,CalGeburtstag,EF_Garderobenlicht,EF_Tuerkontakt,HandyAline,HandyMircoBT,HandyRebeccaMay,HandyRebeccaMueller,HandySabine,HandySandraAmann,HandyVeraBT,JZ_Fensterkontakt,JZ_Nachtlicht,JZ_Raumklima,KU_KuehlschrankKlima,KU_StromNexus6,OUT_Lichtverhaeltnisse,OUT_StromGrosserBalkon,OUT_StromKleinerBalkon,OUT_Unwetter,OUT_WetterYahoo,SOZ_Schmetterlingslicht,SZ_Fensterkontakt,SZ_Raumklima,WZ_Fensterkontakt,WZ_Heizung,WZ_Multimedia,WZ_Pflanze1,WZ_Pflanze2,WZ_Pflanze3,WZ_Pflanze4,WZ_Pflanze6,WZ_StromNexus10,WZ_Wandthermostat,WZ_Zimmerbrunnen,bw,de_social,global,rg_Aline,rg_RebeccaMay,rg_RebeccaMueller,rg_Sabine,rg_SandraAmann,rgr_Residents,rr_Mirco,rr_Vera,urlaub
NR 155
NTFY_ORDER 51-myHomemode
RESIDENTS rg_Aline,rg_RebeccaMay,rg_RebeccaMueller,rg_Sabine,rg_SandraAmann,rr_Mirco,rr_Vera
SENSORSBATTERY BAD_Fensterkontakt,BAD_Heizung,BAD_Pflanze5,BAD_Raumklima,EF_Tuerkontakt,JZ_Fensterkontakt,JZ_Raumklima,KU_KuehlschrankKlima,SZ_Fensterkontakt,SZ_Raumklima,WZ_Fensterkontakt,WZ_Heizung,WZ_Pflanze1,WZ_Pflanze2,WZ_Pflanze3,WZ_Pflanze4,WZ_Pflanze6,WZ_Wandthermostat
SENSORSCONTACT BAD_Fensterkontakt,EF_Tuerkontakt,JZ_Fensterkontakt,SZ_Fensterkontakt,WZ_Fensterkontakt
SENSORSENERGY EF_Garderobenlicht,JZ_Nachtlicht,KU_StromNexus6,OUT_StromGrosserBalkon,OUT_StromKleinerBalkon,SOZ_Schmetterlingslicht,WZ_Multimedia,WZ_StromNexus10,WZ_Zimmerbrunnen
STATE absent
TYPE HOMEMODE
VERSION 1.4.2
Helper:
DBLOG:
power:
DBLogging:
TIME 1518679168.54934
VALUE 0.00
READINGS:
2018-02-05 10:08:15 HomeInfo <html>Gefunden wurden 1 übereinstimmende(s) Anwesenheits Gerät(e) vom Devspec "TYPE=PRESENCE" für Bewohner "rg_Aline"! Übereinstimmende Geräte: "HandyAline"<br>Gefunden wurden 1 übereinstimmende(s) Anwesenheits Gerät(e) vom Devspec "TYPE=PRESENCE" für Bewohner "rg_RebeccaMay"! Übereinstimmende Geräte: "HandyRebeccaMay"<br>Gefunden wurden 1 übereinstimmende(s) Anwesenheits Gerät(e) vom Devspec "TYPE=PRESENCE" für Bewohner "rg_RebeccaMueller"! Übereinstimmende Geräte: "HandyRebeccaMueller"<br>Gefunden wurden 1 übereinstimmende(s) Anwesenheits Gerät(e) vom Devspec "TYPE=PRESENCE" für Bewohner "rg_Sabine"! Übereinstimmende Geräte: "HandySabine"<br>Gefunden wurden 1 übereinstimmende(s) Anwesenheits Gerät(e) vom Devspec "TYPE=PRESENCE" für Bewohner "rg_SandraAmann"! Übereinstimmende Geräte: "HandySandraAmann"<br>Gefunden wurden 1 übereinstimmende(s) Anwesenheits Gerät(e) vom Devspec "TYPE=PRESENCE" für Bewohner "rr_Mirco"! Übereinstimmende Geräte: "HandyMircoBT"<br>Gefunden wurden 1 übereinstimmende(s) Anwesenheits Gerät(e) vom Devspec "TYPE=PRESENCE" für Bewohner "rr_Vera"! Übereinstimmende Geräte: "HandyVeraBT"<br><br>Falls ein oder mehr Anweseheits Geräte falsch zugeordnet wurden, so benenne diese bitte so um dass die Bewohner Namen (aline,rebeccamay,rebeccamueller,sabine,sandraamann,mirco,vera) nicht Bestandteil des Namen sind.<br>Nach dem Umbenennen führe einfach "set myHomemode updateInternalsForce" aus um diese Überprüfung zu wiederholen.</html>
2018-02-15 08:10:49 alarmState armaway
2018-02-15 07:58:33 alarmTriggered
2018-02-15 07:58:33 alarmTriggered_ct 0
2018-02-15 07:58:33 alarmTriggered_hr
2018-02-03 18:45:37 anyoneElseAtHome off
2018-02-03 20:10:14 batteryLow_ct 0
2018-02-05 18:18:27 contactsDoorsInsideOpen
2018-02-05 18:18:27 contactsDoorsInsideOpen_ct 0
2018-02-05 18:18:27 contactsDoorsInsideOpen_hr
2018-02-15 07:58:36 contactsDoorsMainOpen
2018-02-15 07:58:36 contactsDoorsMainOpen_ct 0
2018-02-15 07:58:36 contactsDoorsMainOpen_hr
2018-02-04 20:37:13 contactsDoorsOutsideOpen_ct 0
2018-02-15 07:58:36 contactsOpen
2018-02-15 07:58:36 contactsOpen_ct 0
2018-02-15 07:58:36 contactsOpen_hr
2018-02-15 07:58:36 contactsOutsideOpen
2018-02-15 07:58:36 contactsOutsideOpen_ct 0
2018-02-15 07:58:36 contactsOutsideOpen_hr
2018-02-14 18:59:28 contactsWindowsOpen
2018-02-14 18:59:28 contactsWindowsOpen_ct 0
2018-02-14 18:59:28 contactsWindowsOpen_hr
2018-02-15 08:00:00 daytime Vormittag
2018-02-03 18:45:37 dnd off
2018-02-13 06:09:49 energy 166945.00
2018-02-15 00:00:00 event-CalGeburtstag none
2018-02-13 06:09:49 event-bw none
2018-02-15 00:00:05 event-de_social Fastenzeit: Woche 1
2018-02-13 06:09:49 event-urlaub none
2018-02-15 07:44:20 humidity 53
2018-02-15 07:44:20 humidityTrend falling
2018-02-14 18:43:13 icewarning 1
2018-02-15 08:10:49 lastActivityByResident rr_Vera
2018-02-14 22:53:56 lastAsleepByResident rr_Vera
2018-02-15 05:59:10 lastAwokenByResident rr_Vera
2018-02-09 13:24:54 lastCMDerror error: >FATAL ERROR: Message NOT sent. No gateway device was available.< in CMD: msg audio 0 das Schlafzimmerfenster steht noch offen!
2018-02-15 07:58:10 lastContact EF_Tuerkontakt
2018-02-15 07:58:36 lastContactClosed EF_Tuerkontakt
2018-02-14 22:38:55 lastGotosleepByResident rr_Vera
2018-02-15 08:07:53 lastPresentByResident rr_Vera
2018-02-15 08:01:39 light 5
2018-02-15 08:10:49 location underway
2018-02-15 08:10:49 mode absent
2018-02-15 08:10:49 modeAlarm armaway
2018-02-03 18:45:37 panic off
2018-02-15 08:19:28 power 0.00
2018-02-15 08:10:49 presence absent
2018-02-15 07:44:20 pressure 990
2018-02-15 08:10:49 prevActivityByResident rr_Vera
2018-02-15 07:58:10 prevContact EF_Tuerkontakt
2018-02-15 07:58:36 prevContactClosed EF_Tuerkontakt
2018-02-15 08:10:49 prevLocation arrival
2018-02-15 08:10:49 prevMode Vormittag
2018-02-15 08:10:49 prevModeAlarm disarm
2018-02-03 18:45:37 season winter
2018-02-04 20:37:13 sensorsTampered_ct 0
2018-02-15 08:10:49 state absent
2018-02-15 07:44:20 temperature 1
2018-02-15 07:44:20 temperatureTrend constant
2018-02-15 08:15:59 twilight 98.9
2018-02-15 08:01:39 twilightEvent sr_indoor
2018-02-15 08:10:38 uwz_warnCount 0
2018-02-15 07:44:20 wind 18
helper:
enabledDevices BAD_Fensterkontakt,BAD_Heizung,BAD_Pflanze5,BAD_Raumklima,CalGeburtstag,EF_Garderobenlicht,EF_Tuerkontakt,HandyAline,HandyMircoBT,HandyRebeccaMay,HandyRebeccaMueller,HandySabine,HandySandraAmann,HandyVeraBT,JZ_Fensterkontakt,JZ_Nachtlicht,JZ_Raumklima,KU_KuehlschrankKlima,KU_StromNexus6,OUT_Lichtverhaeltnisse,OUT_StromGrosserBalkon,OUT_StromKleinerBalkon,OUT_Unwetter,OUT_WetterYahoo,SOZ_Schmetterlingslicht,SZ_Fensterkontakt,SZ_Raumklima,WZ_Fensterkontakt,WZ_Heizung,WZ_Multimedia,WZ_Pflanze1,WZ_Pflanze2,WZ_Pflanze3,WZ_Pflanze4,WZ_Pflanze6,WZ_StromNexus10,WZ_Wandthermostat,WZ_Zimmerbrunnen,bw,de_social,global,rg_Aline,rg_RebeccaMay,rg_RebeccaMueller,rg_Sabine,rg_SandraAmann,rgr_Residents,rr_Mirco,rr_Vera,urlaub
lastChangedAttr verbose
lastChangedAttrValue 5
Attributes:
DbLogExclude .*
DbLogInclude power,energy
HomeAdvancedDetails detail
HomeAdvancedUserAttr 1
HomeAtTmpRoom atTmp
HomeAutoAlarmModes 1
HomeAutoArrival 10
HomeAutoAsleep 15
HomeAutoAwoken 15
HomeAutoDaytime 1
HomeAutoPresence 1
HomeAutoPresenceSuppressState asleep|awoken|gotosleep
HomeCMDbatteryLow {
fhem("msg text Die Batterie von %BATTERYLOWCT% Geräten ist schwach. Bitte prüfe folgende Geräte: %BATTERYLOWALL%");
}
HomeCMDcontact {
if ("%SENSOR%" =~ /Fensterkontakt/){
fhem ("set Nexus10 notifySndFile doorbell_16.mp3");
}
elsif ("%SENSOR%" eq "EF_Tuerkontakt" && "%DAYTIME%" =~ /bend/){
fhem ("msg light Tür geht auf")
}
elsif ("%SENSOR%" eq "EF_Tuerkontakt" && "%DAYTIME%" !~ /bend/){
fhem ("set Nexus10 notifySndFile doorbell_02.mp3");
}
}
HomeCMDcontactDoormainClosed {
# Wenn es Ankommende gibt
if ("%ARRIVERS%")
{
# Zusammenstellen der Begrüßung
my $msg = "Gute";
# "n" anhängen wenn Tageszeit nicht Nacht ist
$msg .= "n" if ("%DAYTIME%" ne "Nacht");
# Leerzeichen einfügen
$msg .= " ";
# den Feiertag der Tageszeit voranstellen wenn ein Feiertag im Kalender BW ist
$msg .= "%bw%-" if ("%bw%");
# Tageszeit einfügen
$msg .= "%DAYTIME% " if ("%DAYTIME%" eq "Morgen");
$msg .= "Tag " if ("%DAYTIME%" eq "Vormittag" || "%DAYTIME%" eq "Mittagsruhe" || "%DAYTIME%" eq "Nachmittag");
$msg .= "Abend " if ("%DAYTIME%" =~ /bend/);
# bei ROOMMATE "zu Hause" in Begrüßung einfügen
$msg .= "zu Hause " if ("%RESIDENT%" =~ /^rr_/);
# Ankommende einfügen
$msg .= "%ARRIVERS%";
# Begrüßung am Sonos im Essbereich ausgeben bei Abwesenheit über 20 min
fhem ("msg audio $msg!") if (%DURABSENCELAST% > 20);
fhem ("msg audio Wir haben heute " . "%de_social%") if ("%de_social%");
}
}
HomeCMDcontactOpenWarning1 msg audio 0 %ALIAS% steht noch offen!
HomeCMDcontactOpenWarning2 msg audio 1 %ALIAS% steht immer noch offen! Vielleicht sollte %ALIAS% endlich geschlossen werden!?
HomeCMDcontactOpenWarningLast msg audio 2 Das ist der letzte Hinweis %ALIAS% endlich zu schliessen!
HomeCMDdaytime-Abend {
#Tablet stumm schalten, Audionachricht ausgeben und Alexa leiser stellen
fhem ("msg audio Der Abend ist nun eingeleitet, und ab jetzt halte ich die Klappe.");
fhem ("set TYPE=AMADDevice volume 0");
fhem ("set Nexus10 volumeNotification 0");
fhem ("set ECHO_G090LF11744604XN volume 30");
#Schrankwand nur anmachen wenn jemand zu Hause ist
fhem ("set WZ_Multimedia on") if ("%PRESENT%");
}
HomeCMDdaytime-Mittagsruhe {
#Zur Mittagsruhe das Tablet und Alexa leiser stellen
fhem ("msg audio Jetzt ist es %DAYTIME%, und ich schalte die Lautstärke ein wenig runter; sleep 2; set HouseAnn kurz");
fhem ("set TYPE=AMADDevice volume 4");
fhem ("set Nexus10 volumeNotification 2");
fhem ("set ECHO_G090LF11744604XN volume 30");
}
HomeCMDdaytime-Morgen {
#An Werktagen um 6 Uhr (Beginn Daytime Morgen) das Tablet lauter stellen, Tabletseite auf Wetteransicht stellen
if (!($we)) {
fhem ("set TYPE=AMADDevice volume 10");
fhem ("set Nexus10 volumeNotification 5");
fhem ("set ECHO_G090LF11744604XN volume 60");
fhem ("set Nexus10Fully clearCache;set Nexus10Fully url http://192.168.178.62:8083/fhem/ftui/#draussen.html");
fhem ("msg audio Jetzt ist es %DAYTIME% und der Tag kann beginnen");
#Temporäre at definieren die erzählen welcher Feiertag heute ist.
fhem ("define -temporary atTmp_EventAnsageBW at +00:30:00 msg audio 1 Heute ist %bw%!") if ("%bw%");
fhem ("define -temporary atTmp_EventAnsageSocial at +00:35:00 msg audio 1 Heute ist %de_social%!") if ("%de_social%");
#Wenn um 6 Uhr der Sonnenaufgang größer als 6 Uhr ist, startet auf allen HUE-Leuchten ein Sonnenaufgang
#if (ReadingsVal("OUT_Lichtverhaeltnisse","sr",0) gt "06:00:00" ){
# {myUtils_wakeuplight()}
#}
}
}
HomeCMDdaytime-Nachmittag {
#Tablet wieder lauter stellen nach der Mittagsruhe und Tabletanzeige auf Wohnzimmer stellen
fhem ("set TYPE=AMADDevice volume 10");
fhem ("set Nexus10 volumeNotification 5");
fhem ("set Nexus10Fully clearCache;set Nexus10Fully url http://192.168.178.62:8083/fhem/ftui/#wohnzimmer.html");
fhem ("set HouseAnn lang; sleep 2; msg audio Jetzt ist es %DAYTIME%, und die Mittagsruhe ist beendet");
#falls Mirco geschlafen hat, ihn wieder auf aufgewacht setzen
fhem ("set rr_Mirco:FILTER=state!=home home") if (ReadingsVal ("rr_Mirco","presence","") eq "present");
}
HomeCMDdaytime-Nacht {
#Reduzierung des Logs für alle Werte älter als 90 Tage
fhem ("set DBLogging reduceLogNbl 90 average");
}
HomeCMDdaytime-Spätabend {
my $ar = ReadingsVal("doif_AbendroutineWZ","abendroutineWZ","");
#Wenn die Abendroutine verändert wird, wird die Abendroutine ausgesetzt und alle Lichter müssen von Hand ausgemacht werden
fhem ("set WZ_Lichtszenen scene AllesAus") if ($ar eq "normal");
# Außerdem leere die Anrufeliste, setze die Abendroutine zurück und schalte die Heizung aus
fhem ("set fbCallList clear");
fhem ("set doif_AbendroutineWZ abendroutineWZ normal");
fhem ("set .*Heizung_Clima desired-temp off; set .*Heizung_Clima burstXmit");
fhem ("set WZ_Wandthermostat_Climate desired-temp off");
#Audioausgabe über msg auf KURZ stellen
fhem ("set HouseAnn kurz");
}
HomeCMDdaytime-Vormittag {
my $TodayTask = ReadingsVal("CAL_Hausarbeit","now_text","Fehler");
#An Wochenenden schalte um 8 Uhr das Tablet und Alexa lauter und definiere temporäre at für die Feiertagsansagen
if ($we) {
fhem("set TYPE=AMADDevice volume 10");
fhem("set Nexus10 volumeNotification 5");
fhem("set ECHO_G090LF11744604XN volume 60");
fhem ("define -temporary atTmp_EventAnsageBW at +00:10:00 msg audio 1 Heute ist %bw%!") if ("%bw%");
fhem ("define -temporary atTmp_EventAnsageSocial at +00:15:00 msg audio 1 Heute ist %de_social%!") if ("%de_social%");
}
#Außerdem lese die heute anstehende Hausarbeit und die Wettervorhersage vor und setze das Tablet auf die Seite mit den Hausarbeiten
fhem ("msg audio 1 Guten Morgen %ALIAS%, jetzt ist es %DAYTIME% und es stehen heute folgende Aufgaben auf dem Plan: $TodayTask.");
fhem ("msg audio Und nun die Wettervorhersage: %FORECASTTODAY%");
fhem ("set Nexus10Fully clearCache;set Nexus10Fully url http://192.168.178.62:8083/fhem/ftui/#hausarbeit.html");
}
HomeCMDdnd-on {
#my $TodayTask = ReadingsVal("CAL_Hausarbeit","now_text","Fehler");
#fhem ("msg audio \@Sonos_Wohnzimmer Jetzt ist es %DAYTIME% O[{\"VOLUME\":10}]");
#fhem ("msg audio \@Sonos_Wohnzimmer Guten Morgen %ALIAS%. Heute müssen wir $TodayTask. Die Wettervorhersage für heute: %FORECASTTODAY% O[{\"VOLUME\":10}]");
fhem ("set HouseAnn lang; sleep 2; msg audio Jetzt ist es %DAYTIME%, und die Mittagsruhe ist beendet");
}
HomeCMDevent-CalGeburtstag-each {
fhem ("define -temporary atTmp_EventAnsageGeburtstag at +09:00:00 msg audio 2 Heute hat %EVENT% Geburtstag!") if ("%EVENT%" ne "none");
}
HomeCMDfhemDEFINED {
# Jedem neu definierten Gerät den Geräte-TYPE auch als Raum zuweisen
my $room = (split(/_/, "%DEFINED%"))[0];
if ($room eq "WHG"){
$room = "01_Wohnung"
}
elsif ($room eq "EF"){
$room = "10_Eingangsflur"
}
elsif ($room eq "WZ"){
$room = "20_Wohnzimmer"
}
elsif ($room eq "KU"){
$room = "30_Kueche"
}
elsif ($room eq "SZ"){
$room = "40_Schlafzimmer"
}
elsif ($room eq "JZ"){
$room = "50_Jana"
}
elsif ($room eq "SOZ"){
$room = "60_Sophia"
}
elsif ($room eq "BAD"){
$room = "70_Bad"
}
elsif ($room eq "OUT"){
$room = "80_Draussen"
}
elsif ($room eq "SVG"){
$room = "Plots"
}
elsif ($room eq "not"){
$room = "96_Logik"
}
elsif ($room eq "CAL"){
$room = "92_Calendar"
}
fhem ("attr %DEFINED% room ". $room);
fhem ("attr %DEFINED% DbLogExclude .*");
}
HomeCMDfhemINITIALIZED {
fhem("msg text FHEM wurde neugestartet !");
my $sceneEF = ReadingsVal("EF_Lichtszenen","state","off");
my $sceneWZ = ReadingsVal("WZ_Lichtszenen","state","off");
my $sceneSZ = ReadingsVal("SZ_Lichtszenen","state","off");
my $sceneJZ = ReadingsVal("JZ_Lichtszenen","state","off");
my $sceneSOZ = ReadingsVal("SOZ_Lichtszenen","state","off");
my $sceneNachtlicht = ReadingsVal("LS_NachtlichtSzenen","state","off");
fhem "sleep 120; set EF_Lichtszenen scene $sceneEF";
fhem "sleep 120; set WZ_Lichtszenen scene $sceneWZ";
fhem "sleep 120; set SZ_Lichtszenen scene $sceneSZ";
fhem "sleep 120; set JZ_Lichtszenen scene $sceneJZ";
fhem "sleep 120; set SOZ_Lichtszenen scene $sceneSOZ";
fhem "sleep 120; set LS_NachtlichtSzenen scene $sceneNachtlicht";
}
HomeCMDfhemUPDATE sleep 2; shutdown restart
HomeCMDicewarning-off msg audio Es sind wieder %TEMPERATURE%°C! Die Glättewarnung ist damit beendet!
HomeCMDicewarning-on msg audio ACHTUNG!!! Es sind nur noch %TEMPERATURE%°C! Somit könnte es glatt werden!
HomeCMDmode-absent-belated {
fhem ("set TYPE=LightScene scene AllesAus");
fhem ("set Sonos StopAll");
}
HomeCMDmode-gone {
fhem ("msg text 2 Jetzt beginnt der Urlaubsmodus der Wohnung.");
}
HomeCMDmodeAlarm-armaway {
if ("%PREVAMODE%" eq "disarm")
{
# Nachricht zusammensetzen
my $msg;
$msg .= "Die Alarmanlage ist nun scharf geschaltet!";
my $is = "%ALARMHR%" =~ /und/ ? "sind" : "ist";
$msg .= " " if ($msg);
$msg .= "ACHTUNG: %ALARMHR% $is noch offen!!!" if (%ALARMCT%);
# Nachricht an ROOMMATE/GUEST senden
fhem "msg \@%RESIDENT% $msg" if ($msg);
}
}
HomeCMDpresence-absent-resident {
# Mich benachrichtigen wenn ich nicht zu hause bin und jemand anderes die Wohnung verlässt
fhem "msg text \@rr_Vera %ALIAS% hat gerade die Wohnung verlassen!"
if ("%RESIDENT%" ne "rr_Vera" && ReadingsVal("rr_Vera","presence","") ne "present");
# Verabschiedungsnachricht zusammensetzen
my $msg;
# Alle außer mich selbst verabschieden
$msg .= "Bis bald und auf Wiedersehen %ALIAS%...";
# Glättewarnung wenn nötig
$msg .= " ACHTUNG!!! Es ist %TEMPERATURE%°C kalt! Somit könnte es glatt werden!" if (%ICE%);
# Nachricht senden wenn vorhanden
fhem "msg \@%RESIDENT% $msg" if ($msg);
fhem "msg text alias:%ALIAS%, resident:%RESIDENT%, presenceVera: " . ReadingsVal("rr_Vera","presence","") . "Message:$msg";
}
HomeCMDpresence-present-resident {
#Vorwarnung das ein Bewohner gerade kommt, Garderobenlicht geht für zwei Minuten an und Tablet-Screen wird angeschaltet
fhem ("msg audio %ALIAS% kommt gerade!") if ("%LOCATION%" ne "arrival");
fhem ("set EF_Lichtszenen scene Begruessung");
fhem ("set Nexus10 screen on");
}
HomeCMDseason {
my $t = "%SEASON%";
$t .= "s" if ($t eq "Frühling");
fhem ("define -temporary atTmp_SeasonAnsage at +09:00:00 msg audio Es ist nun offiziel $t!");
}
HomeCMDtwilight-sr {
fhem("set TYPE=LightScene scene AllesAus");
}
HomeCMDtwilight-ss {
#Abendroutine der Kinder holen
my $ar = ReadingsVal("doif_AbendroutineKIZ","abendroutineKIZ","");
#Lichtszene entsprechend der Kinder-Schlafstätten setzen
fhem ("set LS_NachtlichtSzenen scene $ar");
}
HomeCMDuwz-warn-begin {
fhem ("msg audio Es liegt folgende Unwetterwarnung vor, die jetzt beginnt %UWZSHORT%")
}
HomeCMDuwz-warn-end {
fhem ("msg audio Die zurückliegende Unwetterwarnung endet laut Warnmeldung jetzt. Alles wieder gut.")
}
HomeDaytimes 00:00|Mitternacht 03:00|Nacht 06:00|Morgen 08:00|Vormittag 13:00|Mittagsruhe 15:00|Nachmittag 18:30|Abend 23:00|Spätabend
HomeEventsCalendarDevices CalGeburtstag
HomeEventsHolidayDevices TYPE=holiday
HomeLanguage DE
HomeModeAbsentBelatedTime 5
HomeSensorsBattery .*
HomeSensorsContact model=HM-SEC-SC(o|-2)
HomeSensorsContactOpenTimeDividers 1 2 3 2
HomeSensorsContactOpenTimes 20
HomeSensorsPowerEnergy TYPE=FBDECT
HomeTextAndAreIs und|sind|ist
HomeTextTodayTomorrowAfterTomorrow heute|morgen|übermorgen
HomeTextWeatherForecastToday %DAY% %CONDITION% bei Temperaturen von %LOW% bis %HIGH%°C. Aktuelle Temperatur %TEMPERATURE%°C bei einer Luftfeuchtigkeit von %HUMIDITY%%. Die gefühlte Temperatur ist %WINDCHILL%°C bei einer Windgeschwindigkeit von %WIND%km/h.
HomeTextWeatherNoForecast Es ist leider keine Wettervorhersage für den angegebenen Tag verfügbar!
HomeTwilightDevice OUT_Lichtverhaeltnisse
HomeUWZ OUT_Unwetter
HomeYahooWeatherDevice OUT_WetterYahoo
devStateIcon absent:user_away:dnd+on
gone:user_ext_away:dnd+on
bitte-nicht-stören:audio_volume_mute:dnd+off
bettfertig:scene_sleeping:dnd+on
schläft:scene_sleeping_alternat:dnd+on
aufgestanden:weather_sunrise:dnd+on
home:status_available:dnd+on
Morgen:weather_sunrise:dnd+on
Vormittag:weather_sun:dnd+on
Nachmittag:weather_summer:dnd+on
Abend:weather_sunset:dnd+on
Spätabend:weather_moon_phases_2:dnd+on
eventMap home:zuhause gone:verreist gotosleep:bettfertig asleep:schläft awoken:aufgestanden dnd:bitte-nicht-stören
icon floor
room HOMEMODE
userattr HomeCMDdaytime-Abend:textField-long HomeCMDdaytime-Mittagsruhe:textField-long HomeCMDdaytime-Mitternacht:textField-long HomeCMDdaytime-Morgen:textField-long HomeCMDdaytime-Nachmittag:textField-long HomeCMDdaytime-Nacht:textField-long HomeCMDdaytime-Spätabend:textField-long HomeCMDdaytime-Vormittag:textField-long HomeCMDevent-CalGeburtstag-Amelie-Mayer-begin:textField-long HomeCMDevent-CalGeburtstag-Amelie-Mayer-end:textField-long HomeCMDevent-CalGeburtstag-Anita-Mayer-begin:textField-long HomeCMDevent-CalGeburtstag-Anita-Mayer-end:textField-long HomeCMDevent-CalGeburtstag-Christian-Krall-begin:textField-long HomeCMDevent-CalGeburtstag-Christian-Krall-end:textField-long HomeCMDevent-CalGeburtstag-Detlef-Ruschke-begin:textField-long HomeCMDevent-CalGeburtstag-Detlef-Ruschke-end:textField-long HomeCMDevent-CalGeburtstag-Helga-Zimmermann-begin:textField-long HomeCMDevent-CalGeburtstag-Helga-Zimmermann-end:textField-long HomeCMDevent-CalGeburtstag-Ilse-Dräger-begin:textField-long HomeCMDevent-CalGeburtstag-Ilse-Dräger-end:textField-long HomeCMDevent-CalGeburtstag-Jana-begin:textField-long HomeCMDevent-CalGeburtstag-Jana-end:textField-long HomeCMDevent-CalGeburtstag-Killian-Müller-begin:textField-long HomeCMDevent-CalGeburtstag-Killian-Müller-end:textField-long HomeCMDevent-CalGeburtstag-Lilly-Mayer-begin:textField-long HomeCMDevent-CalGeburtstag-Lilly-Mayer-end:textField-long HomeCMDevent-CalGeburtstag-Ludwig-Furthmüller-begin:textField-long HomeCMDevent-CalGeburtstag-Ludwig-Furthmüller-end:textField-long HomeCMDevent-CalGeburtstag-Manfred-Mayer-begin:textField-long HomeCMDevent-CalGeburtstag-Manfred-Mayer-end:textField-long HomeCMDevent-CalGeburtstag-Mirco-begin:textField-long HomeCMDevent-CalGeburtstag-Mirco-end:textField-long HomeCMDevent-CalGeburtstag-Nico-Zimmermann-begin:textField-long HomeCMDevent-CalGeburtstag-Nico-Zimmermann-end:textField-long HomeCMDevent-CalGeburtstag-Oya-Müller-begin:textField-long HomeCMDevent-CalGeburtstag-Oya-Müller-end:textField-long HomeCMDevent-CalGeburtstag-Rebecca-Müller-begin:textField-long HomeCMDevent-CalGeburtstag-Rebecca-Müller-end:textField-long HomeCMDevent-CalGeburtstag-Rolf-Zimmermann-begin:textField-long HomeCMDevent-CalGeburtstag-Rolf-Zimmermann-end:textField-long HomeCMDevent-CalGeburtstag-Sabine-Ruschke-begin:textField-long HomeCMDevent-CalGeburtstag-Sabine-Ruschke-end:textField-long HomeCMDevent-CalGeburtstag-Simon-Ruschke-begin:textField-long HomeCMDevent-CalGeburtstag-Simon-Ruschke-end:textField-long HomeCMDevent-CalGeburtstag-Sissi-Krinke-begin:textField-long HomeCMDevent-CalGeburtstag-Sissi-Krinke-end:textField-long HomeCMDevent-CalGeburtstag-Vera-begin:textField-long HomeCMDevent-CalGeburtstag-Vera-end:textField-long HomeCMDevent-CalGeburtstag-Yannick-Mayer-begin:textField-long HomeCMDevent-CalGeburtstag-Yannick-Mayer-end:textField-long HomeCMDevent-CalGeburtstag-Yvonne-Mayer-begin:textField-long HomeCMDevent-CalGeburtstag-Yvonne-Mayer-end:textField-long HomeCMDevent-CalGeburtstag-Zoe-Müller-begin:textField-long HomeCMDevent-CalGeburtstag-Zoe-Müller-end:textField-long HomeCMDevent-CalGeburtstag-each:textField-long HomeCMDevent-bw-1.-Weihnachtstag-begin:textField-long HomeCMDevent-bw-1.-Weihnachtstag-end:textField-long HomeCMDevent-bw-2.-Weihnachtstag-begin:textField-long HomeCMDevent-bw-2.-Weihnachtstag-end:textField-long HomeCMDevent-bw-Allerheiligen-begin:textField-long HomeCMDevent-bw-Allerheiligen-end:textField-long HomeCMDevent-bw-Christi-Himmelfahrt-begin:textField-long HomeCMDevent-bw-Christi-Himmelfahrt-end:textField-long HomeCMDevent-bw-Fronleichnam-begin:textField-long HomeCMDevent-bw-Fronleichnam-end:textField-long HomeCMDevent-bw-Heilige-Drei-Koenige-begin:textField-long HomeCMDevent-bw-Heilige-Drei-Koenige-end:textField-long HomeCMDevent-bw-Karfreitag-begin:textField-long HomeCMDevent-bw-Karfreitag-end:textField-long HomeCMDevent-bw-Neujahr-begin:textField-long HomeCMDevent-bw-Neujahr-end:textField-long HomeCMDevent-bw-Ostermontag-begin:textField-long HomeCMDevent-bw-Ostermontag-end:textField-long HomeCMDevent-bw-Pfingsten-begin:textField-long HomeCMDevent-bw-Pfingsten-end:textField-long HomeCMDevent-bw-Tag-der-Arbeit-begin:textField-long HomeCMDevent-bw-Tag-der-Arbeit-end:textField-long HomeCMDevent-bw-Tag-der-deutschen-Einheit-begin:textField-long HomeCMDevent-bw-Tag-der-deutschen-Einheit-end:textField-long HomeCMDevent-bw-each:textField-long HomeCMDevent-de_social-Adventszeit-begin:textField-long HomeCMDevent-de_social-Adventszeit-end:textField-long HomeCMDevent-de_social-Allerseelen-begin:textField-long HomeCMDevent-de_social-Allerseelen-end:textField-long HomeCMDevent-de_social-Aschermittwoch-begin:textField-long HomeCMDevent-de_social-Aschermittwoch-end:textField-long HomeCMDevent-de_social-Beginn-Oktoberfest-begin:textField-long HomeCMDevent-de_social-Beginn-Oktoberfest-end:textField-long HomeCMDevent-de_social-Beginn-der-Fastenzeit-begin:textField-long HomeCMDevent-de_social-Beginn-der-Fastenzeit-end:textField-long HomeCMDevent-de_social-Buß--und-Bettag-begin:textField-long HomeCMDevent-de_social-Buß--und-Bettag-end:textField-long HomeCMDevent-de_social-Ende-der-Fastenzeit-begin:textField-long HomeCMDevent-de_social-Ende-der-Fastenzeit-end:textField-long HomeCMDevent-de_social-Fasching-begin:textField-long HomeCMDevent-de_social-Fasching-end:textField-long HomeCMDevent-de_social-Fasching:-Fastnacht-begin HomeCMDevent-de_social-Fasching:-Fastnacht-end HomeCMDevent-de_social-Fasching:-Fastnachtssamstag-begin HomeCMDevent-de_social-Fasching:-Fastnachtssamstag-end HomeCMDevent-de_social-Fasching:-Fastnachtssonntag-begin HomeCMDevent-de_social-Fasching:-Fastnachtssonntag-end HomeCMDevent-de_social-Fasching:-Rosenmontag-begin HomeCMDevent-de_social-Fasching:-Rosenmontag-end HomeCMDevent-de_social-Fasching:-Weiberfastnacht-begin HomeCMDevent-de_social-Fasching:-Weiberfastnacht-end HomeCMDevent-de_social-Fastenzeit:-Große-Woche-begin HomeCMDevent-de_social-Fastenzeit:-Große-Woche-end HomeCMDevent-de_social-Fastenzeit:-Woche-1-begin HomeCMDevent-de_social-Fastenzeit:-Woche-1-end HomeCMDevent-de_social-Fastenzeit:-Woche-2-begin HomeCMDevent-de_social-Fastenzeit:-Woche-2-end HomeCMDevent-de_social-Fastenzeit:-Woche-3-begin HomeCMDevent-de_social-Fastenzeit:-Woche-3-end HomeCMDevent-de_social-Fastenzeit:-Woche-4-begin HomeCMDevent-de_social-Fastenzeit:-Woche-4-end HomeCMDevent-de_social-Fastenzeit:-Woche-5-begin HomeCMDevent-de_social-Fastenzeit:-Woche-5-end HomeCMDevent-de_social-Fastenzeit:-Woche-6-begin HomeCMDevent-de_social-Fastenzeit:-Woche-6-end HomeCMDevent-de_social-Gründonnerstag-begin:textField-long HomeCMDevent-de_social-Gründonnerstag-end:textField-long HomeCMDevent-de_social-Halloween-begin:textField-long HomeCMDevent-de_social-Halloween-end:textField-long HomeCMDevent-de_social-Halloweenzeit-begin:textField-long HomeCMDevent-de_social-Halloweenzeit-end:textField-long HomeCMDevent-de_social-Heiligabend-begin:textField-long HomeCMDevent-de_social-Heiligabend-end:textField-long HomeCMDevent-de_social-Jahreswechsel-begin:textField-long HomeCMDevent-de_social-Jahreswechsel-end:textField-long HomeCMDevent-de_social-Karsamstag-begin:textField-long HomeCMDevent-de_social-Karsamstag-end:textField-long HomeCMDevent-de_social-Karwoche-begin:textField-long HomeCMDevent-de_social-Karwoche-end:textField-long HomeCMDevent-de_social-Martinstag-begin:textField-long HomeCMDevent-de_social-Martinstag-end:textField-long HomeCMDevent-de_social-Nikolaus-begin:textField-long HomeCMDevent-de_social-Nikolaus-end:textField-long HomeCMDevent-de_social-Ostersamstag-begin:textField-long HomeCMDevent-de_social-Ostersamstag-end:textField-long HomeCMDevent-de_social-Osterzeit-begin:textField-long HomeCMDevent-de_social-Osterzeit-end:textField-long HomeCMDevent-de_social-Passionssonntag-begin:textField-long HomeCMDevent-de_social-Passionssonntag-end:textField-long HomeCMDevent-de_social-Passionszeit-begin:textField-long HomeCMDevent-de_social-Passionszeit-end:textField-long HomeCMDevent-de_social-Silvester-begin:textField-long HomeCMDevent-de_social-Silvester-end:textField-long HomeCMDevent-de_social-Tanz-in-den-Mai-begin:textField-long HomeCMDevent-de_social-Tanz-in-den-Mai-end:textField-long HomeCMDevent-de_social-Valentinstag-begin:textField-long HomeCMDevent-de_social-Valentinstag-end:textField-long HomeCMDevent-de_social-Weißer-Sonntag-begin:textField-long HomeCMDevent-de_social-Weißer-Sonntag-end:textField-long HomeCMDevent-de_social-Wiesnzeit-begin:textField-long HomeCMDevent-de_social-Wiesnzeit-end:textField-long HomeCMDevent-de_social-each:textField-long HomeCMDevent-urlaub-Brückentag-begin:textField-long HomeCMDevent-urlaub-Brückentag-end:textField-long HomeCMDevent-urlaub-Pfingstferien-begin:textField-long HomeCMDevent-urlaub-Pfingstferien-end:textField-long HomeCMDevent-urlaub-Planungstag-Kindergarten-begin:textField-long HomeCMDevent-urlaub-Planungstag-Kindergarten-end:textField-long HomeCMDevent-urlaub-Sommerferien-begin:textField-long HomeCMDevent-urlaub-Sommerferien-end:textField-long HomeCMDevent-urlaub-Weihnachtsferien-begin:textField-long HomeCMDevent-urlaub-Weihnachtsferien-end:textField-long HomeCMDevent-urlaub-each:textField-long HomeCMDevent-urlaub-kein-Kiga-begin:textField-long HomeCMDevent-urlaub-kein-Kiga-end:textField-long HomeCMDmode-Abend:textField-long HomeCMDmode-Mittagsruhe:textField-long HomeCMDmode-Mitternacht:textField-long HomeCMDmode-Morgen:textField-long HomeCMDmode-Nachmittag:textField-long HomeCMDmode-Nacht:textField-long HomeCMDmode-Spätabend:textField-long HomeCMDmode-Vormittag:textField-long HomeCMDmode-absent-rg_Aline:textField-long HomeCMDmode-absent-rg_RebeccaMay:textField-long HomeCMDmode-absent-rg_RebeccaMueller:textField-long HomeCMDmode-absent-rg_Sabine:textField-long HomeCMDmode-absent-rg_SandraAmann:textField-long HomeCMDmode-absent-rr_Mirco:textField-long HomeCMDmode-absent-rr_Vera:textField-long HomeCMDmode-asleep-rg_Aline:textField-long HomeCMDmode-asleep-rg_RebeccaMay:textField-long HomeCMDmode-asleep-rg_RebeccaMueller:textField-long HomeCMDmode-asleep-rg_Sabine:textField-long HomeCMDmode-asleep-rg_SandraAmann:textField-long HomeCMDmode-asleep-rr_Mirco:textField-long HomeCMDmode-asleep-rr_Vera:textField-long HomeCMDmode-awoken-rg_Aline:textField-long HomeCMDmode-awoken-rg_RebeccaMay:textField-long HomeCMDmode-awoken-rg_RebeccaMueller:textField-long HomeCMDmode-awoken-rg_Sabine:textField-long HomeCMDmode-awoken-rg_SandraAmann:textField-long HomeCMDmode-awoken-rr_Mirco:textField-long HomeCMDmode-awoken-rr_Vera:textField-long HomeCMDmode-gone-rr_Mirco:textField-long HomeCMDmode-gone-rr_Vera:textField-long HomeCMDmode-gotosleep-rg_Aline:textField-long HomeCMDmode-gotosleep-rg_RebeccaMay:textField-long HomeCMDmode-gotosleep-rg_RebeccaMueller:textField-long HomeCMDmode-gotosleep-rg_Sabine:textField-long HomeCMDmode-gotosleep-rg_SandraAmann:textField-long HomeCMDmode-gotosleep-rr_Mirco:textField-long HomeCMDmode-gotosleep-rr_Vera:textField-long HomeCMDmode-home-rg_Aline:textField-long HomeCMDmode-home-rg_RebeccaMay:textField-long HomeCMDmode-home-rg_RebeccaMueller:textField-long HomeCMDmode-home-rg_Sabine:textField-long HomeCMDmode-home-rg_SandraAmann:textField-long HomeCMDmode-home-rr_Mirco:textField-long HomeCMDmode-home-rr_Vera:textField-long HomeCMDpresence-absent-rg_Aline:textField-long HomeCMDpresence-absent-rg_RebeccaMay:textField-long HomeCMDpresence-absent-rg_RebeccaMueller:textField-long HomeCMDpresence-absent-rg_Sabine:textField-long HomeCMDpresence-absent-rg_SandraAmann:textField-long HomeCMDpresence-absent-rr_Mirco:textField-long HomeCMDpresence-absent-rr_Vera:textField-long HomeCMDpresence-present-rg_Aline:textField-long HomeCMDpresence-present-rg_RebeccaMay:textField-long HomeCMDpresence-present-rg_RebeccaMueller:textField-long HomeCMDpresence-present-rg_Sabine:textField-long HomeCMDpresence-present-rg_SandraAmann:textField-long HomeCMDpresence-present-rr_Mirco:textField-long HomeCMDpresence-present-rr_Vera:textField-long HomeCMDseason-autumn:textField-long HomeCMDseason-spring:textField-long HomeCMDseason-summer:textField-long HomeCMDseason-winter:textField-long
verbose 5
webCmd modeAlarm
widgetOverride devStateIcon:textField-long
Hallo Vera,
sorry, hab Deinen Beitrag bisher nicht gesehen.
Bin im Moment anderwärtig gut beschäftigt und schaue nur selten ins Forum.
"HomeCMDpresence-absent-resident" "works as designed"... ;)
Zumindest tut es das bei mir mehrmals täglich und bei anderen scheint es auch zu funktionieren, sonst käme schon eher eine Rückmeldung im Forum dazu.
ZitatLeider funktioniert das nicht wie gewünscht/gedacht?! Ich verstehe es doch richtig dass dieser Befehl ausgeführt wird wenn ein Resident das Reading "presence" auf absent ändert. Oder?
Verstehe ich auch gerade nicht richtig. Aber Deine Annahme ist richtig dass dieser Befehl ausgeführt wird sobald ein Resident "presence" auf "absent" geht.
Wird denn das ausgeführt wenn Du es statt in "HomeCMDpresence-absent-resident" in "HomeCMDpresence-absent-HandyVeraBT" tust?
FHEM ist aktuell inklusive HOMEMODE?
Die aktuelle Version von HOMEMODE ist 1.4.2.
Gruß
Dan
Hallo Dan, kein Problem, habe es auch nicht früher geschafft zu antworten.
Für "HomeCMDpresence-absent-HandyVeraBT" kann ich nichts eintragen. HandyVeraBT ist ein PRESENCE-Device. Dafür kann ich doch kein HomeCMD anlegen, oder?
Was ich machen kann und auch getestet habe statt "absent-residents", habe ich "absent-rr_Vera" genommen. Das ist das ROOMMATE-Device. Das funktioniert aber leider genausowenig wie "absent-resident".
Was kann ich noch überprüfen oder testen um dem Fehler auf die Schliche zu kommen?
Gruß
Vera
Sorry, ich meinte auch "HomeCMDpresence-absent-rr_Vera".
Zumindest ist es konsistent, denn "HomeCMDpresence-absent-rr_Vera "HomeCMDpresence-absent-resident" werden parallel aufgerufen, sofern vorhanden.
Funktioniert denn "HomeCMDpresence-absent-rr_Vera-HandyVeraBT" ?
Kannst Du mal bitte lists von rr_Vera und HandyVeraBT bereitstellen?
Ich nehme an dass es an "event-on-...." liegt.
Gruß
Dan
Es gibt keine HomeCMD in dem HandyVeraBT vorkommt. Welches CMD meinst du?
List rr_Vera
Internals:
AUTOGONE 1519409630
DEF rgr_Parents,rgr_Residents
DURATIONTIMER 1519323350.70031
NAME rr_Vera
NOTIFYDEV global,rr_Vera_wakeuptimer1,HandyVeraBT
NR 132
NTFY_ORDER 50-rr_Vera
READY 1
RESIDENTGROUPS rgr_Parents,rgr_Residents
STATE abwesend
TYPE ROOMMATE
Helper:
DBLOG:
presence:
DBLogging:
TIME 1519323230.70523
VALUE abwesend
state:
DBLogging:
TIME 1519323230.70523
VALUE absent
READINGS:
2018-02-22 19:14:50 durTimerAbsence 00:01:00
2018-02-22 19:14:50 durTimerAbsence_cr 1
2018-02-22 19:13:50 durTimerPresence 00:00:00
2018-02-22 19:13:50 durTimerPresence_cr 0
2018-02-22 05:59:06 durTimerSleep 00:00:00
2018-02-22 05:59:06 durTimerSleep_cr 0
2018-02-22 12:39:44 fhemMsgPush Die Alarmanlage ist nun scharf geschaltet!
2018-02-22 12:39:44 fhemMsgPushGw teleBot:@364555228:OK
2018-02-22 12:39:44 fhemMsgPushPrio 0
2018-02-22 12:39:44 fhemMsgPushState 1
2018-02-22 12:39:44 fhemMsgPushTitle -
2018-02-22 18:19:07 fhemMsgRcvPush FHEM { fhem ("set egiGeozone VeraZone home ;; set egiGeozone VeraTransition 1 ") }
2018-02-22 18:19:07 fhemMsgRcvPushGw teleBot
2018-02-22 12:39:44 fhemMsgState 1
2018-02-22 12:39:44 fhemMsgStateTypes push:1 forwards:text>push
2018-02-22 19:11:32 lastArrival 2018-02-22 19:11:32
2018-02-22 05:59:06 lastAwake 2018-02-22 05:59:06
2018-02-22 19:13:50 lastDeparture 2018-02-22 19:13:50
2018-02-22 19:11:32 lastDurAbsence 00:35:36
2018-02-22 19:11:32 lastDurAbsence_cr 36
2018-02-22 19:13:50 lastDurPresence 00:02:18
2018-02-22 19:13:50 lastDurPresence_cr 2
2018-02-22 05:59:06 lastDurSleep 05:54:04
2018-02-22 05:59:06 lastDurSleep_cr 354
2018-02-22 19:13:50 lastLocation arrival
2018-02-22 19:13:50 lastMood calm
2018-02-22 00:05:02 lastSleep 2018-02-22 00:05:02
2018-02-22 19:13:50 lastState home
2018-02-22 05:40:05 lastWakeup 05:55
2018-02-22 05:40:05 lastWakeupDev rr_Vera_wakeuptimer1
2018-02-22 19:13:50 location underway
2018-02-22 19:13:50 mood -
2018-02-18 05:40:00 nextWakeup 05:55
2018-02-18 05:40:00 nextWakeupDev rr_Vera_wakeuptimer1
2018-02-22 19:13:50 presence absent
2018-02-22 19:13:50 state absent
2018-02-22 05:55:07 wakeup 0
2018-02-22 18:34:00 wayhome 0
TIMER:
rr_Vera_AutoGone:
HASH rr_Vera
MODIFIER AutoGone
NAME rr_Vera_AutoGone
rr_Vera_DurationTimer:
HASH rr_Vera
MODIFIER DurationTimer
NAME rr_Vera_DurationTimer
Attributes:
DbLogExclude .*
DbLogInclude state,presence
alias Vera
comment Auto-created by rgr_Parents
devStateIcon .*zuhause:user_available:absent .*anwesend:user_available:absent .*abwesend:user_away:home .*verreist:user_ext_away:home .*bettfertig:scene_toilet:asleep .*schlaeft:scene_sleeping:awoken .*schläft:scene_sleeping:awoken .*aufgestanden:scene_sleeping_alternat:home .*:user_unknown:home
event-on-change-reading .*
eventMap home:zuhause absent:abwesend gone:verreist gotosleep:bettfertig asleep:schläft awoken:aufgestanden
group Vera
icon people_sensor
msgContactAudio Samsung7Vera
msgContactPush teleBot:@364555228
msgContactScreen Samsung7Vera
msgType text
room 95_Bewohner
rr_autoGoneAfter 24
rr_geofenceUUIDs 5fa6ff87-e861-34fa-9a7c-7b00ca4111b5
rr_lang DE
rr_locations home,work,wayhome
rr_presenceDevices HandyVeraBT
rr_realname group
rr_wakeupDevice rr_Vera_wakeuptimer1
sortby 1
userattr msgCmdAudio
webCmd state:mood:location
widgetOverride state:zuhause,bettfertig,schläft,aufgestanden,abwesend,verreist mood:ruhig,schläfrig
list HandyVeraBT
Internals:
ADDRESS DC:66:72:E8:F7:BC
CHANGED
DEF local-bluetooth DC:66:72:E8:F7:BC
INTERVAL_NORMAL 30
INTERVAL_PRESENT 30
MODE local-bluetooth
NAME HandyVeraBT
NOTIFYDEV global
NR 69
NTFY_ORDER 50-HandyVeraBT
STATE absent
TYPE PRESENCE
Helper:
DBLOG:
presence:
DBLogging:
TIME 1519323230.52343
VALUE absent
READINGS:
2018-02-22 19:12:39 device_name Vera Samsung
2018-02-15 08:30:50 model local-bluetooth
2018-02-22 19:16:15 presence absent
2018-02-22 19:16:15 state absent
helper:
ABSENT_COUNT 1
CURRENT_STATE present
Attributes:
DbLogExclude .*
DbLogInclude presence
absenceThreshold 2
devStateIcon present:status_available@green maybe.absent:status_away_1@orange absent:status_away_2@red
event-on-change-reading .*
group Vera
icon it_smartphone
room 95_Bewohner
Ich hatte bis eben kein "event-on-change"-Attribut sitzen. Aber auch jetzt mit "event-on-change" und .* funktioniert es leider nicht. Soll ich da noch was anderes einstellen?
Könntest Du bitte mal das Attribut "rr_presenceDevices" in "rr_Vera" löschen?
Wenn das gesetzt ist versucht RESIDENTS auch den Status zu ändern. Habe das noch nie zusammen probiert, ob sich das irgendwie behindert. Wenn Du die PRESENCE Erkennung von HOMEMODE benutzen möchtest, macht das Attribut keinen Sinn.
Das ist jetzt erst mal nur in's "Blaue" geraten.
BTW: Wenn Du nur ein PRESENCE Device für rr_Vera hast, dann gibt es das Attribut "HomeCMDpresence-absent-rr_Vera-HandyVeraBT" nicht. Aber "HomeCMDpresence-absent-rr_Vera-device" sollte vorhanden sein!?
Gruß
Dan
OK, ich habe das Attribut "rr_presenceDevices" in meinen beiden Residents gelöscht. Verstehe ich das richtig, das HOMEMODE quasi die Funktionalität dieses Attributes übernimmt? Wenn dem so ist, klappt das leider nicht.
Getestet mit rr_Mirco. Attribut weg genommen. Sicherheitshalber "UpdateInternalsForce" gemacht. Bluetooth ausgemacht (zum simulieren von Abwesenheit). Das Device "HandyMircoBT" geht auf absent, Homemode bekommt das auch mit, aber der Status vom resident rr_Mirco bleibt anwesend. Auch werden die CMD für "HomeCMDpresence-absent-resident" und "HomeCMDpresence-absent-rr_Mirco" nicht ausgeführt (was ja klar ist). Aber auch bei Wiederanwesenheit von MircoHandyBT wird "HomeCMDpresence-present-device" nicht ausgeführt.
Währenddessen im Log mit verbose 5
2018.02.23 11:24:22 5: myHomemode: Events from monitored device global: ATTR myHomemode verbose 5
2018.02.23 11:24:24 5: myHomemode: Events from monitored device SZ_Raumklima: temperature: 18.3 --- dewpoint: 13 --- state: T: 18.3 H: 71 D: 13
2018.02.23 11:24:24 5: myHomemode: Events from monitored device rr_Vera: durTimerPresence_cr: 18 --- durTimerPresence: 00:18:01
2018.02.23 11:24:24 5: myHomemode: Events from monitored device rgr_Residents: durTimerPresence_cr: 70 --- durTimerPresence: 01:10:24
2018.02.23 11:24:28 5: myHomemode: Events from monitored device SZ_Raumklima: temperature: 18.4 --- dewpoint: 13.1 --- state: T: 18.4 H: 71 D: 13.1
2018.02.23 11:24:31 5: myHomemode: Events from monitored device EF_Garderobenlicht: power: 0.00 W
2018.02.23 11:24:44 5: myHomemode: Events from monitored device BAD_Raumklima: temperature: 20 --- dewpoint: 13 --- state: T: 20 H: 64 D: 13
2018.02.23 11:24:44 5: myHomemode: Events from monitored device HandyMircoBT: state: absent
2018.02.23 11:24:47 5: myHomemode: Events from monitored device JZ_Raumklima: temperature: 18.7 --- dewpoint: 12 --- state: T: 18.7 H: 65 D: 12
bzw
2018.02.23 11:34:00 5: myHomemode: Events from monitored device JZ_Raumklima: temperature: 18.8 --- dewpoint: 12.1 --- state: T: 18.8 H: 65 D: 12.1
2018.02.23 11:34:12 5: myHomemode: Events from monitored device HandyMircoBT: state: present
2018.02.23 11:34:13 5: myHomemode: Events from monitored device JZ_Raumklima: temperature: 18.7 --- dewpoint: 12 --- state: T: 18.7 H: 65 D: 12
2018.02.23 11:34:17 5: myHomemode: Events from monitored device JZ_Raumklima: temperature: 18.8 --- dewpoint: 12.1 --- state: T: 18.8 H: 65 D: 12.1
2018.02.23 11:34:31 5: myHomemode: Events from monitored device EF_Garderobenlicht: power: 0.00 W
2018.02.23 11:34:38 5: myHomemode: Events from monitored device KU_KuehlschrankKlima: temperature: 3.2 --- dewpoint: -1 --- state: T: 3.2 H: 74 D: -1
Muss ich also das "rr_presenceDevices" in den residents doch wieder setzen?
Zitat von: trinitywhm am 23 Februar 2018, 11:35:37
OK, ich habe das Attribut "rr_presenceDevices" in meinen beiden Residents gelöscht. Verstehe ich das richtig, das HOMEMODE quasi die Funktionalität dieses Attributes übernimmt? Wenn dem so ist, klappt das leider nicht.
Richtig, "rr_presenceDevices" ist für die Verwendung ohne HOMEMODE.
Wie das in HOMEMODE funktioniert steht im Wiki (https://wiki.fhem.de/wiki/Modul_HOMEMODE#Konfiguration_Presence_Devices_.28automatische_anwesend.2Fabwesend_Umschaltung_von_ROOMMATE.2FGUEST.29).
Ich sehe hier:
Zitat2018.02.23 11:24:44 5: myHomemode: Events from monitored device HandyMircoBT: state: absent
und
Zitat2018.02.23 11:34:12 5: myHomemode: Events from monitored device HandyMircoBT: state: present
HOMEMODE erwartet aber sowas:
Zitat2018.02.23 11:24:44 5: myHomemode: Events from monitored device HandyMircoBT: presence: absent
und
Zitat2018.02.23 11:34:12 5: myHomemode: Events from monitored device HandyMircoBT: presence: present
Kommt da bei Dir wirklich nur "state" an?
Zitat von: trinitywhm am 23 Februar 2018, 11:35:37
Muss ich also das "rr_presenceDevices" in den residents doch wieder setzen?
Nein, siehe oben.
Gruß
Dan
Hi Dan,
sorry für die verspätete Antwort. Ich musste erst ein wenig rumprobieren und dann hat mich auch noch eine Erkältung erwischt...
Also ich habe nochmals kontrolliert dass bei den PRESENCE-Devices "event-on-change-reading" auf .* steht. Zunächst hatte ich das Attribut ganz weg gelassen, aber dann gab es ja ständig reading-Aktualisierungen in HOMEMODE. Das muss ja nicht unbedingt so sein, oder?
OK, im Log erscheint dann so was
2018.02.28 15:01:01 5: myHomemode: Events from monitored device HandyMircoBT: state: present --- presence: present
Ist das korrekt und erwünscht?
Das Attribut "HomeCMDpresence-present-resident" funktioniert schon immer korrekt. Aber das gegenteilige Attribut "HomeCMDpresence-absent-resident" wird nicht ausgelöst. Obwohl folgendes im Log steht
2018.02.28 07:22:54 5: myHomemode: Events from monitored device HandyVeraBT: state: absent --- presence: absent
Was kann ich noch machen?
Hab das jetzt auch nochmal mit einem völlig neuen ROOMMATE ausprobiert, um sicherzustellen dass ich keine Attribute komisch gesetzt habe. Als PRESENCE-Device dient hier ein Dummy. Aber leider funktionieren hier auch nur die CMD's für present und nicht für absent. Woran kann dass denn noch liegen.
Ein Log mit verbose 5 sieht doch eigentlich korrekt aus:
2018.03.05 20:01:35 5: myHomemode: Events from monitored device HandyNewBuddyPresence: presence: present
2018.03.05 20:01:35 2: ROOMMATE set rr_newBuddy home
2018.03.05 20:01:35 5: myHomemode: Events from monitored device rgr_Residents: residentsTotalRoommatesPresent: 2 --- residentsTotalRoommatesPresentDevs: rr_Vera,rr_newBuddy --- residentsTotalRoommatesPresentNames: Vera, newBuddy --- residentsTotalRoommatesAbsent: 1 --- residentsTotalRoommatesAbsentDevs: rr_Mirco --- residentsTotalRoommatesAbsentNames: Mirco --- residentsTotalPresent: 2 --- residentsTotalPresentDevs: rr_Vera,rr_newBuddy --- residentsTotalPresentNames: Vera, newBuddy --- residentsTotalAbsent: 2 --- residentsTotalAbsentDevs: rr_Mirco,rg_Aline --- residentsTotalAbsentNames: Mirco, Aline --- residentsHome: 2 --- residentsHomeDevs: rr_Vera,rr_newBuddy --- residentsHomeNames: Vera, newBuddy --- residentsAbsent: 2 --- residentsAbsentDevs: rr_Mirco --- residentsAbsentNames: Mirco --- durTimerPresence: 02:32:09 --- lastActivity: zuhause --- lastActivityBy: newBuddy --- lastActivityByDev: rr_newBuddy
2018.03.05 20:01:35 5: myHomemode: Events from monitored device rr_newBuddy: lastState: abwesend --- state: home --- mood: calm --- presence: present --- location: zuhause --- lastArrival: 2018-03-05 20:01:35 --- lastDurAbsence: 00:03:25 --- lastDurAbsence_cr: 3 --- durTimerAbsence_cr: 0 --- durTimerAbsence: 00:00:00
2018.03.05 20:01:35 5: myHomemode: HOMEMODE_RESIDENTS mode: home
...
2018.03.05 20:04:00 5: myHomemode: Events from monitored device HandyNewBuddyPresence: presence: absent
2018.03.05 20:04:00 2: ROOMMATE set rr_newBuddy absent
2018.03.05 20:04:00 5: myHomemode: Events from monitored device rgr_Residents: residentsTotalRoommatesPresent: 1 --- residentsTotalRoommatesPresentDevs: rr_Vera --- residentsTotalRoommatesPresentNames: Vera --- residentsTotalRoommatesAbsent: 2 --- residentsTotalRoommatesAbsentDevs: rr_Mirco,rr_newBuddy --- residentsTotalRoommatesAbsentNames: Mirco, newBuddy --- residentsTotalPresent: 1 --- residentsTotalPresentDevs: rr_Vera --- residentsTotalPresentNames: Vera --- residentsTotalAbsent: 3 --- residentsTotalAbsentDevs: rr_Mirco,rr_newBuddy,rg_Aline --- residentsTotalAbsentNames: Mirco, newBuddy, Aline --- residentsHome: 1 --- residentsHomeDevs: rr_Vera --- residentsHomeNames: Vera --- residentsAbsent: 3 --- residentsAbsentDevs: rr_Mirco,rr_newBuddy --- residentsAbsentNames: Mirco, newBuddy --- durTimerPresence_cr: 155 --- durTimerPresence: 02:34:34 --- lastActivity: abwesend --- lastActivityBy: newBuddy --- lastActivityByDev: rr_newBuddy
2018.03.05 20:04:00 5: myHomemode: Events from monitored device rr_newBuddy: lastState: zuhause --- state: absent --- lastMood: calm --- mood: - --- presence: abwesend --- lastLocation: arrival --- location: underway --- lastDeparture: 2018-03-05 20:04:00 --- lastDurPresence: 00:02:25 --- lastDurPresence_cr: 2 --- durTimerPresence_cr: 0 --- durTimerPresence: 00:00:00
2018.03.05 20:04:00 5: myHomemode: HOMEMODE_RESIDENTS mode: absent
Ich habe immer noch keine Ahnung woran das liegen könnte.
Um der Sache auf die Schliche zu kommen habe ich ein paar mehr Log Ausgaben eingebaut.
Bitte teste die angehängte Version mit "verbose 5" und poste die Ausgaben vom presence-Wechsel des entsprechenden Presence Device.
Gruß
Dan
EDIT: Dateianhang entfernt.
Dummy presence auf absent gestellt:
2018.03.07 08:41:18 5: myHomemode: Events from monitored device HandyNewBuddyPresence: presence: absent
2018.03.07 08:41:18 2: ROOMMATE set rr_newBuddy absent
2018.03.07 08:41:18 5: myHomemode: Events from monitored device rgr_Residents: residentsTotalRoommatesPresent: 1 --- residentsTotalRoommatesPresentDevs: rr_Vera --- residentsTotalRoommatesPresentNames: Vera --- residentsTotalRoommatesAbsent: 2 --- residentsTotalRoommatesAbsentDevs: rr_Mirco,rr_newBuddy --- residentsTotalRoommatesAbsentNames: Mirco, newBuddy --- residentsTotalPresent: 1 --- residentsTotalPresentDevs: rr_Vera --- residentsTotalPresentNames: Vera --- residentsTotalAbsent: 2 --- residentsTotalAbsentDevs: rr_Mirco,rr_newBuddy --- residentsTotalAbsentNames: Mirco, newBuddy --- residentsHome: 1 --- residentsHomeDevs: rr_Vera --- residentsHomeNames: Vera --- residentsAbsent: 2 --- residentsAbsentDevs: rr_Mirco,rr_newBuddy --- residentsAbsentNames: Mirco, newBuddy --- durTimerPresence_cr: 33 --- durTimerPresence: 00:32:31 --- lastActivity: abwesend --- lastActivityBy: newBuddy --- lastActivityByDev: rr_newBuddy
2018.03.07 08:41:18 5: myHomemode: HOMEMODE_RESIDENTS dev: rgr_Residents type: RESIDENTS
2018.03.07 08:41:18 5: myHomemode: Events from monitored device rr_newBuddy: lastState: zuhause --- state: absent --- lastMood: calm --- mood: - --- presence: abwesend --- lastLocation: arrival --- location: underway --- lastDeparture: 2018-03-07 08:41:18 --- lastDurPresence: 00:01:20 --- lastDurPresence_cr: 1 --- durTimerPresence_cr: 0 --- durTimerPresence: 00:00:00
2018.03.07 08:41:18 5: myHomemode: HOMEMODE_RESIDENTS dev: rr_newBuddy type: ROOMMATE
2018.03.07 08:41:18 5: myHomemode: HOMEMODE_RESIDENTS mode: absent
Dummy presence wieder auf present:
2018.03.07 08:42:40 5: myHomemode: Events from monitored device HandyNewBuddyPresence: presence: present
2018.03.07 08:42:40 2: ROOMMATE set rr_newBuddy home
2018.03.07 08:42:40 5: myHomemode: Events from monitored device rgr_Residents: residentsTotalRoommatesPresent: 2 --- residentsTotalRoommatesPresentDevs: rr_Vera,rr_newBuddy --- residentsTotalRoommatesPresentNames: Vera, newBuddy --- residentsTotalRoommatesAbsent: 1 --- residentsTotalRoommatesAbsentDevs: rr_Mirco --- residentsTotalRoommatesAbsentNames: Mirco --- residentsTotalPresent: 2 --- residentsTotalPresentDevs: rr_Vera,rr_newBuddy --- residentsTotalPresentNames: Vera, newBuddy --- residentsTotalAbsent: 1 --- residentsTotalAbsentDevs: rr_Mirco --- residentsTotalAbsentNames: Mirco --- residentsHome: 2 --- residentsHomeDevs: rr_Vera,rr_newBuddy --- residentsHomeNames: Vera, newBuddy --- residentsAbsent: 1 --- residentsAbsentDevs: rr_Mirco --- residentsAbsentNames: Mirco --- durTimerPresence: 00:33:53 --- lastActivity: zuhause --- lastActivityBy: newBuddy --- lastActivityByDev: rr_newBuddy
2018.03.07 08:42:40 5: myHomemode: HOMEMODE_RESIDENTS dev: rgr_Residents type: RESIDENTS
2018.03.07 08:42:40 5: myHomemode: Events from monitored device rr_newBuddy: lastState: abwesend --- state: home --- mood: calm --- presence: present --- location: zuhause --- lastArrival: 2018-03-07 08:42:40 --- lastDurAbsence: 00:01:22 --- lastDurAbsence_cr: 1 --- durTimerAbsence_cr: 0 --- durTimerAbsence: 00:00:00
2018.03.07 08:42:40 5: myHomemode: HOMEMODE_RESIDENTS dev: rr_newBuddy type: ROOMMATE
2018.03.07 08:42:40 5: myHomemode: HOMEMODE_RESIDENTS mode: home
2018.03.07 08:42:40 5: myHomemode: HOMEMODE_RESIDENTS dev: rr_newBuddy - presence: present
2018.03.07 08:42:40 5: myHomemode: Events from monitored device global: DELETED atTmp_location_home_rr_newBuddy_myHomemode
2018.03.07 08:42:41 5: myHomemode: Events from monitored device global: DEFINED atTmp_location_home_rr_newBuddy_myHomemode
2018.03.07 08:42:41 2: ROOMMATE set rr_newBuddy location arrival
2018.03.07 08:42:41 5: myHomemode: Events from monitored device rr_newBuddy: lastLocation: zuhause --- location: arrival
2018.03.07 08:42:41 5: myHomemode: HOMEMODE_RESIDENTS dev: rr_newBuddy type: ROOMMATE
Und dann noch von einer anderen Person (PRESENCE-Device, kein dummy), erst absent
2018.03.07 08:48:41 5: myHomemode: Events from monitored device HandyVeraBT: state: absent --- presence: absent
2018.03.07 08:48:41 2: ROOMMATE set rr_Vera absent
2018.03.07 08:48:41 2: ROOMMATE set rr_newBuddy absent
2018.03.07 08:48:41 5: myHomemode: Events from monitored device rgr_Residents: residentsTotalRoommatesPresent: 0 --- residentsTotalRoommatesPresentDevs: - --- residentsTotalRoommatesPresentNames: - --- residentsTotalRoommatesAbsent: 3 --- residentsTotalRoommatesAbsentDevs: rr_Mirco,rr_Vera,rr_newBuddy --- residentsTotalRoommatesAbsentNames: Mirco, Vera, newBuddy --- residentsTotalPresent: 0 --- residentsTotalPresentDevs: - --- residentsTotalPresentNames: - --- residentsTotalAbsent: 3 --- residentsTotalAbsentDevs: rr_Mirco,rr_Vera,rr_newBuddy --- residentsTotalAbsentNames: Mirco, Vera, newBuddy --- residentsHome: 0 --- residentsHomeDevs: - --- residentsHomeNames: - --- residentsAbsent: 3 --- residentsAbsentDevs: rr_Mirco,rr_Vera,rr_newBuddy --- residentsAbsentNames: Mirco, Vera, newBuddy --- lastState: zuhause --- state: absent --- presence: abwesend --- lastDeparture: 2018-03-07 08:48:41 --- lastDurPresence: 00:39:54 --- lastDurPresence_cr: 40 --- durTimerPresence_cr: 0 --- durTimerPresence: 00:00:00 --- lastActivity: abwesend --- lastActivityBy: newBuddy --- lastActivityByDev: rr_newBuddy
2018.03.07 08:48:41 5: myHomemode: HOMEMODE_RESIDENTS dev: rgr_Residents type: RESIDENTS
2018.03.07 08:48:41 5: myHomemode: HOMEMODE_RESIDENTS mode: absent
2018.03.07 08:48:42 5: myHomemode: Events from monitored device global: DEFINED atTmp_absent_belated_myHomemode
2018.03.07 08:48:42 5: myHomemode: cmdnew: { if ("%PREVAMODE%" eq "disarm") { my $msg; $msg .= "Die Alarmanlage ist nun scharf geschaltet!"; my $is = "%ALARMHR%" =~ /und/ ? "sind" : "ist"; $msg .= " " if ($msg); $msg .= "ACHTUNG: %ALARMHR% $is noch offen!!!" if (%ALARMCT%); fhem "msg text \@%RESIDENT% $msg" if ($msg); } }
2018.03.07 08:48:42 3: msg rr_Vera: ID=1520408922.73132.1 TYPE=push ROUTE=teleBot RECIPIENT=@364555228 STATUS=OK PRIORITY=0 TITLE='' MSG='Die Alarmanlage ist nun scharf geschaltet!'
2018.03.07 08:48:43 5: myHomemode: Events from monitored device rr_Vera: lastState: zuhause --- state: absent --- mood: - --- presence: abwesend --- lastLocation: zuhause --- location: underway --- lastDeparture: 2018-03-07 08:48:41 --- lastDurPresence: 00:39:54 --- lastDurPresence_cr: 40 --- fhemMsgPushGw: teleBot:@364555228:OK
2018.03.07 08:48:43 5: myHomemode: HOMEMODE_RESIDENTS dev: rr_Vera type: ROOMMATE
2018.03.07 08:48:43 5: myHomemode: HOMEMODE_RESIDENTS mode: absent
2018.03.07 08:48:43 4: executed CMDs: { if ("disarm" eq "disarm") { my $msg;; $msg .= "Die Alarmanlage ist nun scharf geschaltet!";; my $is = "" =~ /und/ ? "sind" : "ist";; $msg .= " " if ($msg);; $msg .= "ACHTUNG: $is noch offen!!!" if (0);; fhem "msg text \@rr_Vera $msg" if ($msg);; } }
2018.03.07 08:48:43 5: myHomemode: Events from monitored device rr_newBuddy: lastState: zuhause --- state: absent --- lastMood: calm --- mood: - --- presence: abwesend --- lastLocation: arrival --- location: underway --- lastDeparture: 2018-03-07 08:48:41 --- lastDurPresence: 00:06:01 --- lastDurPresence_cr: 6 --- durTimerPresence_cr: 0 --- durTimerPresence: 00:00:00
2018.03.07 08:48:43 5: myHomemode: HOMEMODE_RESIDENTS dev: rr_newBuddy type: ROOMMATE
2018.03.07 08:48:43 5: myHomemode: HOMEMODE_RESIDENTS mode: absent
2018.03.07 08:48:43 5: myHomemode: Events from monitored device rr_Vera: durTimerPresence_cr: 0 --- durTimerPresence: 00:00:00 --- durTimerAbsence: 00:00:02
2018.03.07 08:48:43 5: myHomemode: HOMEMODE_RESIDENTS dev: rr_Vera type: ROOMMATE
...dann present:
2018.03.07 08:51:40 5: myHomemode: Events from monitored device HandyVeraBT: state: present --- presence: present
2018.03.07 08:51:40 2: ROOMMATE set rr_Vera home
2018.03.07 08:51:40 2: ROOMMATE set rr_newBuddy home
2018.03.07 08:51:41 5: myHomemode: Events from monitored device rgr_Residents: residentsTotalRoommatesPresent: 2 --- residentsTotalRoommatesPresentDevs: rr_Vera,rr_newBuddy --- residentsTotalRoommatesPresentNames: Vera, newBuddy --- residentsTotalRoommatesAbsent: 1 --- residentsTotalRoommatesAbsentDevs: rr_Mirco --- residentsTotalRoommatesAbsentNames: Mirco --- residentsTotalPresent: 2 --- residentsTotalPresentDevs: rr_Vera,rr_newBuddy --- residentsTotalPresentNames: Vera, newBuddy --- residentsTotalAbsent: 1 --- residentsTotalAbsentDevs: rr_Mirco --- residentsTotalAbsentNames: Mirco --- residentsHome: 2 --- residentsHomeDevs: rr_Vera,rr_newBuddy --- residentsHomeNames: Vera, newBuddy --- residentsAbsent: 1 --- residentsAbsentDevs: rr_Mirco --- residentsAbsentNames: Mirco --- lastState: abwesend --- state: home --- presence: present --- lastArrival: 2018-03-07 08:51:40 --- lastDurAbsence: 00:02:59 --- lastDurAbsence_cr: 3 --- durTimerAbsence_cr: 0 --- durTimerAbsence: 00:00:00 --- lastActivity: zuhause --- lastActivityBy: newBuddy --- lastActivityByDev: rr_newBuddy
2018.03.07 08:51:41 5: myHomemode: HOMEMODE_RESIDENTS dev: rgr_Residents type: RESIDENTS
2018.03.07 08:51:41 5: myHomemode: HOMEMODE_RESIDENTS mode: home
2018.03.07 08:51:42 5: myHomemode: Events from monitored device global: DEFINED atTmp_set_home_myHomemode
2018.03.07 08:51:42 5: myHomemode: Events from monitored device rr_newBuddy: lastState: abwesend --- state: home --- mood: calm --- presence: present --- location: zuhause --- lastArrival: 2018-03-07 08:51:40 --- lastDurAbsence: 00:02:59 --- lastDurAbsence_cr: 3 --- durTimerAbsence_cr: 0 --- durTimerAbsence: 00:00:00
2018.03.07 08:51:42 5: myHomemode: HOMEMODE_RESIDENTS dev: rr_newBuddy type: ROOMMATE
2018.03.07 08:51:42 5: myHomemode: HOMEMODE_RESIDENTS mode: home
2018.03.07 08:51:42 5: myHomemode: HOMEMODE_RESIDENTS dev: rr_newBuddy - presence: present
2018.03.07 08:51:42 5: myHomemode: Events from monitored device global: DELETED atTmp_location_home_rr_newBuddy_myHomemode
2018.03.07 08:51:43 5: myHomemode: Events from monitored device global: DEFINED atTmp_location_home_rr_newBuddy_myHomemode
2018.03.07 08:51:43 5: myHomemode: cmdnew: { my $durationAbsence = ReadingsVal("%RESIDENT%","lastDurAbsence",""); fhem ("msg audio %ALIAS% kommt gerade und war $durationAbsence weg!") if ("%LOCATION%" ne "arrival"); fhem ("set EF_Lichtszenen scene Begruessung"); fhem ("set Nexus10 screen on"); }
2018.03.07 08:51:44 5: myHomemode: Events from monitored device rgr_Residents: durTimerPresence: 00:00:04 --- lastActivity: zuhause --- lastActivityBy: Vera --- lastActivityByDev: rr_Vera
2018.03.07 08:51:44 5: myHomemode: HOMEMODE_RESIDENTS dev: rgr_Residents type: RESIDENTS
2018.03.07 08:51:44 5: myHomemode: Events from monitored device rr_Vera: lastState: abwesend --- state: home --- mood: calm --- presence: present --- location: zuhause --- lastArrival: 2018-03-07 08:51:40 --- lastDurAbsence: 00:02:59 --- lastDurAbsence_cr: 3 --- durTimerPresence: 00:00:03 --- durTimerAbsence_cr: 0 --- durTimerAbsence: 00:00:00
2018.03.07 08:51:44 5: myHomemode: HOMEMODE_RESIDENTS dev: rr_Vera type: ROOMMATE
2018.03.07 08:51:44 5: myHomemode: HOMEMODE_RESIDENTS mode: home
2018.03.07 08:51:44 5: myHomemode: HOMEMODE_RESIDENTS dev: rr_Vera - presence: present
2018.03.07 08:51:45 5: myHomemode: Events from monitored device global: DEFINED atTmp_location_home_rr_Vera_myHomemode
2018.03.07 08:51:45 5: myHomemode: cmdnew: { my $durationAbsence = ReadingsVal("%RESIDENT%","lastDurAbsence",""); fhem ("msg audio %ALIAS% kommt gerade und war $durationAbsence weg!") if ("%LOCATION%" ne "arrival"); fhem ("set EF_Lichtszenen scene Begruessung"); fhem ("set Nexus10 screen on"); }
2018.03.07 08:51:45 2: ROOMMATE set rr_newBuddy location arrival
2018.03.07 08:51:45 5: myHomemode: Events from monitored device rr_newBuddy: lastLocation: zuhause --- location: arrival
2018.03.07 08:51:45 5: myHomemode: HOMEMODE_RESIDENTS dev: rr_newBuddy type: ROOMMATE
2018.03.07 08:51:46 3: FBDECT set EF_Garderobenlicht on
2018.03.07 08:51:46 5: myHomemode: Events from monitored device EF_Garderobenlicht: state: set_on
2018.03.07 08:51:46 4: executed CMDs: { my $durationAbsence = ReadingsVal("rr_newBuddy","lastDurAbsence","");; fhem ("msg audio Testperson kommt gerade und war $durationAbsence weg!") if ("arrival" ne "arrival");; fhem ("set EF_Lichtszenen scene Begruessung");; fhem ("set Nexus10 screen on");; }
2018.03.07 08:51:46 2: ROOMMATE set rr_Vera location arrival
2018.03.07 08:51:46 5: myHomemode: Events from monitored device rr_Vera: location: arrival
2018.03.07 08:51:46 5: myHomemode: HOMEMODE_RESIDENTS dev: rr_Vera type: ROOMMATE
2018.03.07 08:51:46 5: myHomemode: Events from monitored device EF_Garderobenlicht: state: on
Brauchst du noch mehr?
Danke, das hat mich weiter gebracht.
Es sieht ganz stark danach aus als wenn dort "eventMap" "reingrätscht". Oder hast Du statt "eventMap" zu vergeben Dein RESIDENTS Device auf "DE" gestellt und damit den ROOMMATE erstellt?
Bei erwartetem Event "presence: absent" kommt bei Dir "presence: abwesend". Das kennt HOMEMODE natürlich nicht.
Lustigerweise kommt beim Gegenteil das Richtige Event "presence: present".
Jetzt bin ich aber gespannt auf Deine Antwort. ;)
Gruß
Dan
Ja, mein RESIDENTS-Device ist auf DE gestellt und danach habe ich ROOMMATEs erstellt. Um ggf solche Einstellungen auszuschließen hatte ich ja diese Testperson erstellt und an dieser weiter nichts geändert. Aber ja, meine beiden "echten" ROOMMATEs und auch die Testperson haben folgende eventMap-Einträge:
home:zuhause absent:abwesend gone:verreist gotosleep:bettfertig asleep:schläft awoken:aufgestanden
Jetzt hast du mich neugierig gemacht. Ich habe bei eben dieser Testperson das Attribut eventMap komplett rausgenommen. Und tatsächlich jetzt funktioniert es. Prima!!!
Ist die Lösung nun ohne eventMap zu leben oder wird HOMEMODE damit in Zukunft klar kommen?
Scheinbar ist das ja in der o.g. Konstellation (Language auf DE und dann erst ROOMMATEs erstellen) eine Standardeinstellung vom RESIDENTS-Modul, auf die ich erstmal keinen Einfluss habe und ja auch erstmal nicht drauf kam, dass es daran liegen könnte.
Schön dass wir nun den Auslöser gefunden haben.
Ziel ist natürlich dass HOMEMODE das "handeln" kann, sonst würde ich mich nicht damit befassen. ;)
Nun weiß ich zumindest erst einmal woran es liegt. Eine "quick & dirty" Lösung hätte ich schon parat, aber sinnvoller wäre es auf die evtl. vorhandenen individuellen "eventMap"s zu reagieren.
Ich schaue mir das mal näher an, wird aber sicherlich ein paar "Monde" dauern. :P
Gruß
Dan
Ich denke ich habe eine gute Lösung gefunden.
Werde noch etwas testen und die Version hier heute Abend zur Verfügung stellen.
Gruß
Dan
Bitte teste die angehängte Version 1.4.3 ob damit Deine Probleme behoben sind.
In meinem Testsystem läuft nun alles rund, egal ob bei RESIDENTS/ROOMMATE/GUEST "eventMap" gesetzt ist oder nicht.
EDIT: Es ist irgendwie noch verzwickter! Muss doch noch weiter testen.
Irgendwas ist komisch. "state" scheint von "eventMap" nicht betroffen zu sein.
Nebenbei habe ich noch ein kleines Problem gefixt, welches auftrat wenn man nur ein einzelnes Device als "HomeSensorsPowerEnergy" hinzufügt.
Gruß
Dan
Ich hatte zudem auch das Attribut widgetOverride gesetzt:
state:zuhause,bettfertig,schläft,aufgestanden,abwesend,verreist mood:ruhig,schläfrig
Ist das von Belangen?
Derzeit habe ich eventMap und widgetOverride bei meinen ROOMMATEs entfernt und es funktioniert.
Hmm, es ist eigenartig.
Alle Events außer "state" sind von "eventMap" betroffen.
Ich muss mal ergründen ob das generell so ist, oder nur eine Eigenart von RESIDENTS/ROOMMATE/GUEST.
Wie auch immer es sich verhält, ich habe das nun noch tiefer ergründet und einen "Workaround" eingebaut.
Bitte teste mal die angehängte Version 1.4.3.
Bitte achte auf die "presence" Wechsel und prüfe auch ob alle anderen "state" (bettfertig, schläft, ...) weiterhin von HOMEMODE erkannt werden.
Gruß
Dan
EDIT: Dateianhang entfernt.
Bisher sieht es gut aus. Ich habe mit meiner Testperson mehrfach presence-Wechsel getestet und auch die anderen states werden weiterhin erkannt von Homemode.
Vielen Dank für deine Mühe und die Behebung dieses Problems. Finde das Modul echt klasse und finde es super dass es nun auch an der Stelle wie gewünscht funktioniert.
Danke und Gruß
Vera
Freut mich dass Dir das Modul gefällt und es Dank Deine Mithilfe wieder ein klein Wenig besser geworden ist.
Soeben habe ich die Version 1.4.3 in SVN eingecheckt.
Ich denke damit ist dieses Thema hier beendet und Du kannst es auf "[gelöst]" setzen.
Danke für das Aufdecken des Problems.
Gruß
Dan
Hallo Dan,
sorry dass ich das Thema nochmal aufgreife. Ich habe in HOMEMODE das Attribut HomeAutoArrival gesetzt (Wert 10). Seit der letzten Änderung funktioniert nun der CMD für HomeCMDcontactDoormainClosed nicht mehr korrekt. Ich habe da deinen Beispielcode aus dem Wiki genommen und ein wenig abgewandelt. Aber dort wird auf ARRIVERS geprüft und das scheint nicht zu funktionieren. Im Roommate wird nämlich auch tatsächlich die location nicht auf arrival gesetzt beim ankommen einer Person.
Jetzt hatte ich mich an das letzte Problem erinnert und eventMap und widgetOverride entfernt. Und siehe da, es funktioniert wieder. Grundsätzlich hat das vor deiner letzten Änderung korrekt funktioniert, also scheint mit der letzten Anpassung was reingekommen zu sein, damit das mit dem automatischen arrival nicht mehr funktioniert.
HomeCMDcontactDoormainClosed
{
# Wenn es Ankommende gibt
if ("%ARRIVERS%")
{
# Zusammenstellen der Begrüßung
my $msg = "Gute";
# "n" anhängen wenn Tageszeit nicht Nacht ist
$msg .= "n" if ("%DAYTIME%" ne "Nacht");
# Leerzeichen einfügen
$msg .= " ";
# den Feiertag der Tageszeit voranstellen wenn ein Feiertag im Kalender BW ist
$msg .= "%bw%-" if ("%bw%");
# Tageszeit einfügen
$msg .= "%DAYTIME% " if ("%DAYTIME%" eq "Morgen");
$msg .= "Tag " if ("%DAYTIME%" eq "Vormittag" || "%DAYTIME%" eq "Mittagsruhe" || "%DAYTIME%" eq "Nachmittag");
$msg .= "Abend " if ("%DAYTIME%" =~ /bend/);
# bei ROOMMATE "zu Hause" in Begrüßung einfügen
$msg .= "zu Hause " if ("%RESIDENT%" =~ /^rr_/);
# Ankommende einfügen
$msg .= "%ARRIVERS%";
# Begrüßung am Sonos im Essbereich ausgeben bei Abwesenheit über 20 min
fhem ("msg audio $msg!") if (%DURABSENCELAST% > 20);
fhem ("msg audio Wir haben heute " . "%de_social%") if ("%de_social%");
}
}
Brauchst du noch was anderes zum nachvollziehen???
Schaue ich mir die Tage an und stelle Dir dann hier wieder eine Version zum Testen bereit.
Gruß
Dan
Sorry, es hat krankheitsbedingt leider etwas länger gedauert.
Bitte teste die angehängte Version 1.4.5.
Habe heute damit reichlich getestet und keine Probleme mehr feststellen können.
Gruß
Dan
EDIT: Dateianhang entfernt.
Hallo Dan,
hab mit der 1.4.5 auch keine Probleme festgestellt.
VG Sebastian
Zitat von: DeeSPe am 17 April 2018, 18:47:39
Sorry, es hat krankheitsbedingt leider etwas länger gedauert.
Bitte teste die angehängte Version 1.4.5.
Habe heute damit reichlich getestet und keine Probleme mehr feststellen können.
Gruß
Dan
Hi Dan,
sorry konnte auch nicht sofort testen. Aber jep, ich kann bestätigen es funktioniert wieder mit der angehängten Version. Hab bei den residents wieder eventMap und widgetOverrride reingeschrieben (wie vorher) und die CMD in Homemode funktionieren trotzdem noch.
Danke
Danke für Eure positiven Rückmeldungen.
Habe die v1.4.5 soeben in SVN eingecheckt.
Gruß
Dan