[gelöst:] Homemode / Falsche Auswertung HomePresenceDeviceAbsentCount ?

Begonnen von RockThisParty, 02 Juli 2022, 22:44:13

Vorheriges Thema - Nächstes Thema

RockThisParty

Hi!
Ich habe immer mal wieder den Fehler, dass Mitglieder des Haushalts fälschlich als anwesend oder abwesend geführt werden, obwohl imo die Parameter in Homemode richtig gesetzt sind.
Gerade habe ich den Fall mal wieder.
A wird anwesesend gelistet.
A hat zwei zugeordnete Presence-Devices, 1x Fritz, 1x gTag.
HomePresenceDeviceAbsentCount-rr_A = 1
HomePresenceDevicePresenceCount-rr_A = 2

Fritz hat den Status absent.
gTag hat den Status present (Schlüsselbund hängt zuhause, Mensch mit Smartphone ist unterwegs)

Status von A ist present, sollte nach meiner Vorstellung bei obigen Einstellungen absent sein.

Wo ist mein Denkfehler? Ich kaue da schon ziemlich lange drauf rum. Habt Ihr einen Rat für mich?

Internals:
   DEF        Residents
   FUUID      6066b6e4-f33f-d7f8-d134-9fb8db416b123960
   NAME       Home
   NOTIFYDEV  Residents,fritzPresencePersonA,fritzPresencePersonD,gTagPersonB,gTagPersonA,gTagPersonC,gTagPersonD,geoPersonBPresence,geoPersonCPresence,geoPersonDPresence,global,rr_PersonB,rr_PersonA,rr_PersonC,rr_PersonD
   NR         193
   NTFY_ORDER 51-Home
   RESIDENTS  rr_PersonB,rr_PersonA,rr_PersonC,rr_PersonD
   STATE      evening
   TYPE       HOMEMODE
   VERSION    1.5.5
   READINGS:
     2022-05-29 09   HomeInfo        <html>Gefunden wurden 2 übereinstimmende(s) Anwesenheits Gerät(e) vom Devspec "TYPE=PRESENCE" für Bewohner "rr_PersonB"! Übereinstimmende Geräte: "gTagPersonB,geoPersonBPresence"<br>Gefunden wurden 2 übereinstimmende(s) Anwesenheits Gerät(e) vom Devspec "TYPE=PRESENCE" für Bewohner "rr_PersonA"! Übereinstimmende Geräte: "fritzPresencePersonA,gTagPersonA"<br>Gefunden wurden 2 übereinstimmende(s) Anwesenheits Gerät(e) vom Devspec "TYPE=PRESENCE" für Bewohner "rr_PersonC"! Übereinstimmende Geräte: "gTagPersonC,geoPersonCPresence"<br>Gefunden wurden 3 übereinstimmende(s) Anwesenheits Gerät(e) vom Devspec "TYPE=PRESENCE" für Bewohner "rr_PersonD"! Übereinstimmende Geräte: "fritzPresencePersonD,gTagPersonD,geoPersonDPresence"<br><br>Falls ein oder mehr Anweseheits Geräte falsch zugeordnet wurden, so benenne diese bitte so um dass die Bewohner Namen (PersonB,PersonA,PersonC,PersonD) nicht Bestandteil des Namen sind.<br>Nach dem Umbenennen führe einfach "set Home updateInternalsForce" aus um diese Überprüfung zu wiederholen.</html>
     2022-07-01 20   alarmState      disarm
     2021-04-02 15   anyoneElseAtHome off
     2022-07-02 18   daytime         evening
     2022-05-07 11   devicesDisabled
     2021-04-02 08   dnd             off
     2022-07-02 21   lastAbsentByPresenceDevice gTagPersonD
     2022-07-02 22   lastActivityByPresenceDevice gTagPersonB
     2022-07-02 21   lastActivityByResident rr_PersonB
     2022-04-10 10   lastAwokenByResident rr_PersonC
     2021-06-07 10   lastCMDerror    error: >Unknown argument off, choose one of active addRegexpPart inactive removeRegexpPart< in CMD: set .*Heizung_HMIP control 17.0; set MC_.* off; set HUEGroup.* off; {Log3 "HomeCMDpresence-absent", 3, "Alle weg - ich mache alles aus"}; set pushmsg msg Alle weg von zuhause! title='Alle weg!' device='iphone'
     2022-06-29 00   lastGoneByResident rr_PersonD
     2022-04-10 10   lastGotosleepByResident rr_PersonB
     2022-07-02 22   lastPresentByPresenceDevice gTagPersonB
     2022-07-01 20   location        home
     2022-07-02 18   mode            evening
     2022-07-01 20   modeAlarm       disarm
     2021-04-02 08   panic           off
     2022-07-01 20   presence        present
     2022-07-02 21   prevActivityByResident rr_PersonD
     2022-07-01 20   prevLocation    underway
     2022-07-02 18   prevMode        afternoon
     2022-07-01 20   prevModeAlarm   armaway
     2022-06-01 00   season          summer
     2022-07-02 18   state           evening
   helper:
     enabledDevices Residents,fritzPresencePersonA,fritzPresencePersonD,gTagPersonB,gTagPersonA,gTagPersonC,gTagPersonD,geoPersonBPresence,geoPersonCPresence,geoPersonDPresence,global,rr_PersonB,rr_PersonA,rr_PersonC,rr_PersonD
     lar        rr_PersonB
     lastChangedAttr userattr
     lastChangedAttrValue HomeCMDdaytime-afternoon HomeCMDdaytime-day HomeCMDdaytime-evening HomeCMDdaytime-morning HomeCMDdaytime-night HomeCMDmode-absent-rr_PersonB HomeCMDmode-absent-rr_PersonA HomeCMDmode-absent-rr_PersonC HomeCMDmode-absent-rr_PersonD HomeCMDmode-afternoon HomeCMDmode-asleep-rr_PersonB HomeCMDmode-asleep-rr_PersonA HomeCMDmode-asleep-rr_PersonC HomeCMDmode-asleep-rr_PersonD HomeCMDmode-awoken-rr_PersonB HomeCMDmode-awoken-rr_PersonA HomeCMDmode-awoken-rr_PersonC HomeCMDmode-awoken-rr_PersonD HomeCMDmode-day HomeCMDmode-evening HomeCMDmode-gone-rr_PersonB HomeCMDmode-gone-rr_PersonA HomeCMDmode-gone-rr_PersonC HomeCMDmode-gone-rr_PersonD HomeCMDmode-gotosleep-rr_PersonB HomeCMDmode-gotosleep-rr_PersonA HomeCMDmode-gotosleep-rr_PersonC HomeCMDmode-gotosleep-rr_PersonD HomeCMDmode-home-rr_PersonB HomeCMDmode-home-rr_PersonA HomeCMDmode-home-rr_PersonC HomeCMDmode-home-rr_PersonD HomeCMDmode-morning HomeCMDmode-night HomeCMDpresence-absent-rr_PersonB-device HomeCMDpresence-absent-rr_PersonB-gTagPersonB HomeCMDpresence-absent-rr_PersonB-geoPersonBPresence HomeCMDpresence-absent-rr_PersonB HomeCMDpresence-absent-rr_PersonA-device HomeCMDpresence-absent-rr_PersonA-fritzPresencePersonA HomeCMDpresence-absent-rr_PersonA-gTagPersonA HomeCMDpresence-absent-rr_PersonA HomeCMDpresence-absent-rr_PersonC-device HomeCMDpresence-absent-rr_PersonC-gTagPersonC HomeCMDpresence-absent-rr_PersonC-geoPersonCPresence HomeCMDpresence-absent-rr_PersonC HomeCMDpresence-absent-rr_PersonD-device HomeCMDpresence-absent-rr_PersonD-fritzPresencePersonD HomeCMDpresence-absent-rr_PersonD-gTagPersonD HomeCMDpresence-absent-rr_PersonD-geoPersonDPresence HomeCMDpresence-absent-rr_PersonD HomeCMDpresence-present-rr_PersonB-device HomeCMDpresence-present-rr_PersonB-gTagPersonB HomeCMDpresence-present-rr_PersonB-geoPersonBPresence HomeCMDpresence-present-rr_PersonB HomeCMDpresence-present-rr_PersonA-device HomeCMDpresence-present-rr_PersonA-fritzPresencePersonA HomeCMDpresence-present-rr_PersonA-gTagPersonA HomeCMDpresence-present-rr_PersonA HomeCMDpresence-present-rr_PersonC-device HomeCMDpresence-present-rr_PersonC-gTagPersonC HomeCMDpresence-present-rr_PersonC-geoPersonCPresence HomeCMDpresence-present-rr_PersonC HomeCMDpresence-present-rr_PersonD-device HomeCMDpresence-present-rr_PersonD-fritzPresencePersonD HomeCMDpresence-present-rr_PersonD-gTagPersonD HomeCMDpresence-present-rr_PersonD-geoPersonDPresence HomeCMDpresence-present-rr_PersonD HomeCMDseason-autumn HomeCMDseason-spring HomeCMDseason-summer HomeCMDseason-winter HomePresenceDeviceAbsentCount-rr_PersonB HomePresenceDeviceAbsentCount-rr_PersonA HomePresenceDeviceAbsentCount-rr_PersonC HomePresenceDeviceAbsentCount-rr_PersonD HomePresenceDevicePresentCount-rr_PersonB HomePresenceDevicePresentCount-rr_PersonA HomePresenceDevicePresentCount-rr_PersonC HomePresenceDevicePresentCount-rr_PersonD
     presdevs:
       rr_PersonB:
         gTagPersonB
         geoPersonBPresence
       rr_PersonA:
         fritzPresencePersonA
         gTagPersonA
       rr_PersonC:
         gTagPersonC
         geoPersonCPresence
       rr_PersonD:
         fritzPresencePersonD
         gTagPersonD
         geoPersonDPresence
   hmccu:
Attributes:
   HomeAdvancedUserAttr 1
   HomeAutoPresence 1
   HomeCMDpresence-absent {
fhem "set .*Heizung_HMIP control 17.0";
fhem "set .*HueGroup off";
fhem "set arbeitsplatz_PersonC_Hue off";
fhem "set schreibtischlicht_Hue off";
fhem "set 3d_drucker_licht_Hue off";
fhem "set Sonos_Kueche Stop";
fhem "set Sonos_Arbeitszimmer Stop";
fhem "set Sonos_Wohnzimmer Stop";
Log3 "HomeCMDpresence-absent", 3, "Alle weg - ich mache alles aus";
fhem "set pushmsg msg Alle weg von zuhause! title='Alle weg!' device='PersonD'";
}
   HomeCMDpresence-present {
fhem "set bad_Heizung_HMIP Auto";
fhem "set kueche_Heizung_HMIP control Auto";
Log3 "HomeCMDpresence-present", 3, "Jemand zuhause  - ich mache Bad und Küche warm! ";
fhem "set pushmsg msg Jemand wieder zuhause title='HomeCMD zuhause!' device='PersonD'";
}
   HomePresenceDeviceAbsentCount-rr_PersonB 1
   HomePresenceDeviceAbsentCount-rr_PersonA 1
   HomePresenceDeviceAbsentCount-rr_PersonC 1
   HomePresenceDeviceAbsentCount-rr_PersonD 2
   HomePresenceDevicePresentCount-rr_PersonB 2
   HomePresenceDevicePresentCount-rr_PersonA 2
   HomePresenceDevicePresentCount-rr_PersonC 2
   HomePresenceDevicePresentCount-rr_PersonD 2
   devStateIcon absent
gone
dnd
gotosleep
asleep
awoken
home
morning
day
afternoon
evening
night
   icon       floor
   room       Residents,Start,Zentral->Zentral
   userattr   HomeCMDdaytime-afternoon HomeCMDdaytime-day HomeCMDdaytime-evening HomeCMDdaytime-morning HomeCMDdaytime-night HomeCMDmode-absent-rr_PersonB HomeCMDmode-absent-rr_PersonA HomeCMDmode-absent-rr_PersonC HomeCMDmode-absent-rr_PersonD HomeCMDmode-afternoon HomeCMDmode-asleep-rr_PersonB HomeCMDmode-asleep-rr_PersonA HomeCMDmode-asleep-rr_PersonC HomeCMDmode-asleep-rr_PersonD HomeCMDmode-awoken-rr_PersonB HomeCMDmode-awoken-rr_PersonA HomeCMDmode-awoken-rr_PersonC HomeCMDmode-awoken-rr_PersonD HomeCMDmode-day HomeCMDmode-evening HomeCMDmode-gone-rr_PersonB HomeCMDmode-gone-rr_PersonA HomeCMDmode-gone-rr_PersonC HomeCMDmode-gone-rr_PersonD HomeCMDmode-gotosleep-rr_PersonB HomeCMDmode-gotosleep-rr_PersonA HomeCMDmode-gotosleep-rr_PersonC HomeCMDmode-gotosleep-rr_PersonD HomeCMDmode-home-rr_PersonB HomeCMDmode-home-rr_PersonA HomeCMDmode-home-rr_PersonC HomeCMDmode-home-rr_PersonD HomeCMDmode-morning HomeCMDmode-night HomeCMDpresence-absent-rr_PersonB-device HomeCMDpresence-absent-rr_PersonB-gTagPersonB HomeCMDpresence-absent-rr_PersonB-geoPersonBPresence HomeCMDpresence-absent-rr_PersonB HomeCMDpresence-absent-rr_PersonA-device HomeCMDpresence-absent-rr_PersonA-fritzPresencePersonA HomeCMDpresence-absent-rr_PersonA-gTagPersonA HomeCMDpresence-absent-rr_PersonA HomeCMDpresence-absent-rr_PersonC-device HomeCMDpresence-absent-rr_PersonC-gTagPersonC HomeCMDpresence-absent-rr_PersonC-geoPersonCPresence HomeCMDpresence-absent-rr_PersonC HomeCMDpresence-absent-rr_PersonD-device HomeCMDpresence-absent-rr_PersonD-fritzPresencePersonD HomeCMDpresence-absent-rr_PersonD-gTagPersonD HomeCMDpresence-absent-rr_PersonD-geoPersonDPresence HomeCMDpresence-absent-rr_PersonD HomeCMDpresence-present-rr_PersonB-device HomeCMDpresence-present-rr_PersonB-gTagPersonB HomeCMDpresence-present-rr_PersonB-geoPersonBPresence HomeCMDpresence-present-rr_PersonB HomeCMDpresence-present-rr_PersonA-device HomeCMDpresence-present-rr_PersonA-fritzPresencePersonA HomeCMDpresence-present-rr_PersonA-gTagPersonA HomeCMDpresence-present-rr_PersonA HomeCMDpresence-present-rr_PersonC-device HomeCMDpresence-present-rr_PersonC-gTagPersonC HomeCMDpresence-present-rr_PersonC-geoPersonCPresence HomeCMDpresence-present-rr_PersonC HomeCMDpresence-present-rr_PersonD-device HomeCMDpresence-present-rr_PersonD-fritzPresencePersonD HomeCMDpresence-present-rr_PersonD-gTagPersonD HomeCMDpresence-present-rr_PersonD-geoPersonDPresence HomeCMDpresence-present-rr_PersonD HomeCMDseason-autumn HomeCMDseason-spring HomeCMDseason-summer HomeCMDseason-winter HomePresenceDeviceAbsentCount-rr_PersonB HomePresenceDeviceAbsentCount-rr_PersonA HomePresenceDeviceAbsentCount-rr_PersonC HomePresenceDeviceAbsentCount-rr_PersonD HomePresenceDevicePresentCount-rr_PersonB HomePresenceDevicePresentCount-rr_PersonA HomePresenceDevicePresentCount-rr_PersonC HomePresenceDevicePresentCount-rr_PersonD
   webCmd     modeAlarm

RockThisParty

Moin! Bevor ich mich in den nächsten Tagen hinsetze und an Homemode vorbei den Status programmiere, versuche ich die Frage noch mal zu ,,pushen".
Hat wirklich niemand eine Idee?

Meine Alternative ist dann tendenziell ein DOIF zu bauen und in Homemode nur genau dieses auswerten zu lassen. Fände ich eigentlich schade, denn grundsätzlich scheint ja alles drin zu sein, was ich gern hätte  :'(

DeeSPe

Hi,

danke fürs "pushen".
Hatte Deinen ursprünglichen Beitrag nicht gesehen.
Ich schau mir das mal an ob ich irgendwas finde im Code.
Mangels Testumgebung kann ich gerade nichts probieren. Evtl. baue ich mal noch ein paar Log Ausgaben ein und dann könntest Du nochmal testen. Wir werden schon finden woran es liegt.
Ich melde mich bald wieder.

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

RockThisParty

Super, danke!
Ich hatte es auch schon mal mit drei Devices probiert, der Effekt war derselbe.
Ich habe ein aktuelles Log mit Verbose 5. Hilft das?

DeeSPe

Zitat von: RockThisParty am 29 Oktober 2022, 09:04:33
Ich habe ein aktuelles Log mit Verbose 5. Hilft das?

Leider nein!
An der entsprechenden Stelle im Code gibt es keine Log-Ausgaben.

In der angehängten Version habe ich ein paar Log-Ausgaben für "verbose 5" mit eingebaut.
Es wäre schön wenn Du mit dieser Version mal ein Log zur Verfügung stellen könntest. Und zwar von dem Moment wo das erste Presence Device auf "absent" geht und evtl. auch wenn das zweite Device auf "absent" geht. Dann auch gern wenn beide Devices wieder "present" kommen.

Danke.

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

RockThisParty

Vielen Dank.

Da ich meine halbe Familie damit vorstelle, schicke ich Dir Log und List per PN!, hoffe, das ist ok.

RockThisParty

Und für alle Mitleser aber zumindest hier der Begleittext:

ZitatTestperson ist rr_Stefan mit drei Presence-Devices:
geofency App iOS
Fritz!WLAN-Erkennung
gTag per lepressenced

Erwartungshaltung mit
HomePresenceDevicePresentCount-rr_Stefan 2
und
HomePresenceDeviceAbsentCount-rr_Stefan 2

ist, dass ich abwesend bin, sobald mindestens 2 Devices absent werden, Anwesenheit genauso.

Das Problem tritt ebenfalls bei rr_Jonathan auf, wenn nur sein Fritz-Device absent wird und der gTag present bleibt. Dort steht der Absent-Count auf 1, der Present-Count auf 2.

RockThisParty

Vielen Dank an Dan! Das Problem ist gelöst.

Sein Hinweis:
ZitatOkay, ich glaube das Problem liegt nicht wirklich an HOMEMODE, sondern an den Presence Devices.
Kannst Du bei allen Presence Devices mal bitte das Attribut "event-on-change-reading" setzen auf ".*".
Also:

attr TYPE=PRESENCE event-on-change-reading .*

Ich denke dann sollte Dein Problem gelöst sein.

Gruß
Dan

DeeSPe

Danke für die positive Rückmeldung und den Kaffee.
Freut mich sehr zu hören dass das Problem damit gelöst ist.

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