HOMEMODE: cmd bei resident absent wird nicht ausgeführt

Begonnen von trinitywhm, 15 Februar 2018, 08:23:12

Vorheriges Thema - Nächstes Thema

trinitywhm

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

DeeSPe

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
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

trinitywhm

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

DeeSPe

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
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

trinitywhm

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?

DeeSPe

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
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

trinitywhm

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?

DeeSPe

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.

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
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

trinitywhm

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?

trinitywhm

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

DeeSPe

#10
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.
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

trinitywhm

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?

DeeSPe

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
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

trinitywhm

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.

DeeSPe

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
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe