Hallo liebe Gemeinde.
Ich stehe vor einem Problem mit der Anwesenheitserkennung.
Es sind 3 Handys vorhanden ( 1)Mann 2)Mann_Arbeit 3)Frau )
Nun will ich damit die Anwesenheitssteuerung per Wlan Ping realisieren.
habe bisher folgendes:
define Mann PRESENCE lan-ping 192.168.1.2 30
define Mann_Arbeit PRESENCE lan-ping 192.168.1.3 30
define Frau PRESENCE lan-ping 192.168.1.4 30
das funktioniert auch.
was ich nun benötige ist das Handy Mann und Mann_Arbeit als ein Gerät für Fhem gelten müssen, da ich nie beide Handys dabei habe. Also wenn Handy Mann weg dann muss auch Handy Mann_Arbeit absent sein, sonst wäre ja immer einer daheim, was ja nicht der Wahrheit entspricht.
Habe versucht mit Structure zu arbeiten, damit habe ich es nicht hinbekommen.
Dann habe ich von Residents/Roommate gelesen, was ja scheinbar die bessere Lösung ist, nur weiß ich da nicht wie man die 2 Handys als 1 verkauft.
Hier mal ein wenig Codeschnipsel:
# Residents
define rgr_Residents RESIDENTS
attr rgr_Residents alias Residents
attr rgr_Residents devStateIcon .*home:status_available:absent .*absent:status_away_1:home .*gone:status_standby:home .*none:control_building_empty .*gotosleep:status_night:asleep .*asleep:status_night:awoken .*awoken:status_available:home .*:user_unknown:home
attr rgr_Residents group Handys
attr rgr_Residents icon control_building_filled
attr rgr_Residents room Anwesenheit
attr rgr_Residents webCmd state
#Mann
define rr_Mann ROOMMATE rgr_Residents
attr rr_Mann alias Mann
attr rr_Mann devStateIcon .*home:user_available:absent .*absent:user_away:home .*gone:user_ext_away:home .*gotosleep:scene_toilet:asleep .*asleep:scene_sleeping:awoken .*awoken:scene_sleeping_alternat:home .*:user_unknown:home
attr rr_Mann group Mann
attr rr_Mann icon people_sensor
attr rr_Mann room Anwesenheit
attr rr_Mann rr_realname group
attr rr_Mann sortby 1
attr rr_Mann webCmd state
#Mann_Arbeit
define rr_Mann_Arbeit ROOMMATE rgr_Residents
attr rr_Mann_Arbeit alias Mann_Arbeit
attr rr_Mann_Arbeit devStateIcon .*home:user_available:absent .*absent:user_away:home .*gone:user_ext_away:home .*gotosleep:scene_toilet:asleep .*asleep:scene_sleeping:awoken .*awoken:scene_sleeping_alternat:home .*:user_unknown:home
attr rr_Mann_Arbeit group Mann
attr rr_Mann_Arbeit icon people_sensor
attr rr_Mann_Arbeit room Anwesenheit
attr rr_Mann_Arbeit rr_realname group
attr rr_Mann_Arbeit sortby 1
attr rr_Mann_Arbeit webCmd state
Könnt ihr einem Anfänger da helfen?
Hallo,
Du musst bei structure noch ein paar Attribute setzen
Vielleicht hilft das (http://heinz-otto.blogspot.de/2016/01/anwesenheitserkennung.html)
Gruß Otto
Hm.. also Residents/Roommate nicht nutzen? Dann versuch ich es erneut mit Structur :)
So weit bisher:
define Mann PRESENCE lan-ping 192.168.1.2 30
attr Mann userattr Handys_structure Handys_structure_map structexclude
attr Mann Handys_structure Handys_gesamt
attr Mann event-on-change-reading state
attr Mann icon people_sensor
attr Mann room Anwesenheit
define Mann_Arbeit PRESENCE lan-ping 192.168.1.3 30
attr Mann_Arbeit userattr Handys_structure Handys_structure_map structexclude
attr Mann_Arbeit Handys_structure Handys_gesamt
attr Mann_Arbeit event-on-change-reading state
attr Mann_Arbeit icon people_sensor
attr Mann_Arbeit room Anwesenheit
define Handys_gesamt structure Handys_structure Mann Mann_Arbeit
attr Handys_gesamt clientstate_behavior relative
attr Handys_gesamt clientstate_priority present absent
attr Handys_gesamt event-on-change-reading state
attr Handys_gesamt room Anwesenheit
jetzt muss ich dann noch einen Dummy erstellen wenn ich deinen Link richtig verstehe...
bloß wie genau?
sry versteh das noch nicht so richtig...
Zitat von: rizo am 04 Februar 2016, 20:11:20
Hm.. also Residents/Roommate nicht nutzen? Dann versuch ich es erneut mit Structur :)
Das habe ich nicht gesagt. Aber zunächst würde ich die Geräte pro Person mal zusammenfassen. Funktioniert denn die structure?
Wenn eines der beiden Geräte online ist sollte die structure present sein.
Was genau fehlt Dir jetzt für den dummy? Der dummy ist nur die Repräsentanz, das DOIF schaltet dann den dummy.
Der Beispielcode ist voll funktional, hast Du den mal durchgespielt?
Gruß Otto
Zitat von: Otto123 am 04 Februar 2016, 22:37:34
Wenn eines der beiden Geräte online ist sollte die structure present sein.
Wenn ich den ersten Beitrag richtig verstanden habe, ist genau das sein Problem.
ZitatAlso wenn Handy Mann weg dann muss auch Handy Mann_Arbeit absent sein, sonst wäre ja immer einer daheim
Erst wenn beide Geräte present sind ist Mann anwesend.
Wäre das über eine Kombination von notify lösbar?
define MannEvt notify Mann { if ((Value("Mann") eq "present") && (Value("Mann_Arbeit") eq "present") ) { fhem ("set rr_Mann state home")} elsif ....
Hallo,
sry komme momentan beruflich nicht eher dazu zu antworten.
Also meine Structure funktioniert soweit. Nur ist halt so ein Handy, also Mann oder Mann_Arbeit immer zuhause ist,da ich das privat Handy nicht mit zur Arbeit nehme und umgekehrt genauso.
Daher zeigt die Structure immer present an.
Das mit dem Notify klingt schon sehr nach was passendem. Probiere ich mal aus.
Was ist eigentlich wenn z.B. im Urlaub das Arbeitshandy aus ist und nur das Privathandy genutzt wird? Dann wären ja nie beide present... Oder versteh ich da was falsch?
Sorry, aber so wie Du das schreibst, sind Deine Handy nicht für Anwesenheit geeignet. Klar kannst Du die structure auch so machen, dass sie nur present ist wenn beide Handys zu Hause sind.
Das Problem hast Du aber selbst beschrieben - wenn dann eines aus ist.
Ohne eine Zeile Programmcode musst Du dir erstmal klar werden, welche Anwesenheit Deiner Geräte deiner Anwesenheit entspricht 8)
Gruß Otto