Hallo,
ich möchte gern Geofancy mit Residents und Presence zusammen benutzen. Ich scheitere aber schon daran Geofancy über DOIF mit Residents zu verbinden. Es wird immer nur auf "Zuhause" getriggert. Warum nur ?
VG
Psy
DEF:
([geofancy:currLoc_iPhone-B] eq "Zuhause")
(set rr_B home)
DOELSEIF ([geofancy:?currLoc_iPhone-B] eq "underway")
(set rr_B absent)
list:
Internals:
DEF ([geofancy:currLoc_iPhone-B] eq "Zuhause")
(set rr_B home)
DOELSEIF ([geofancy:?currLoc_iPhone-B] eq "underway")
(set rr_B absent)
NAME di_gf_B
NR 127
NTFY_ORDER 50-di_gf_B
STATE cmd_1
TYPE DOIF
Readings:
2016-12-25 21:40:57 Device geofancy
2016-12-25 21:40:57 cmd 1
2016-12-25 21:40:57 cmd_event geofancy
2016-12-25 21:40:57 cmd_nr 1
2016-12-25 21:40:57 e_geofancy_currLoc_iPhone-B Zuhause
2016-12-25 21:40:57 e_geofancy_events currLoc_iPhone-B:underway
2016-12-25 21:40:57 state cmd_1
Condition:
0 ReadingValDoIf($hash,'geofancy','currLoc_iPhone-B') eq "Zuhause"
1 EventDoIf('geofancy',$hash,'currLoc_iPhone-B',1) eq "underway"
Devices:
0 geofancy
1 geofancy
all geofancy
Do:
0:
0 set rr_B home
1:
0 set rr_B absent
Helper:
globalinit 1
last_timer 0
sleeptimer -1
Itimer:
Readings:
0 geofancy:currLoc_iPhone-B
all geofancy:currLoc_iPhone-B
Regexp:
All:
State:
Trigger:
all geofancy
Attributes:
do always
Zitat von: PsychoD am 25 Dezember 2016, 22:06:57
Hallo,
ich möchte gern Geofancy mit Residents und Presence zusammen benutzen. Ich scheitere aber schon daran Geofancy über DOIF mit Residents zu verbinden. Es wird immer nur auf "Zuhause" getriggert. Warum nur ?
VG
Psy
DEF:
([geofancy:currLoc_iPhone-B] eq "Zuhause")
(set rr_B home)
DOELSEIF ([geofancy:?currLoc_iPhone-B] eq "underway")
(set rr_B absent)
list:
Internals:
DEF ([geofancy:currLoc_iPhone-B] eq "Zuhause")
(set rr_B home)
DOELSEIF ([geofancy:?currLoc_iPhone-B] eq "underway")
(set rr_B absent)
NAME di_gf_B
NR 127
NTFY_ORDER 50-di_gf_B
STATE cmd_1
TYPE DOIF
Readings:
2016-12-25 21:40:57 Device geofancy
2016-12-25 21:40:57 cmd 1
2016-12-25 21:40:57 cmd_event geofancy
2016-12-25 21:40:57 cmd_nr 1
2016-12-25 21:40:57 e_geofancy_currLoc_iPhone-B Zuhause
2016-12-25 21:40:57 e_geofancy_events currLoc_iPhone-B:underway
2016-12-25 21:40:57 state cmd_1
Condition:
0 ReadingValDoIf($hash,'geofancy','currLoc_iPhone-B') eq "Zuhause"
1 EventDoIf('geofancy',$hash,'currLoc_iPhone-B',1) eq "underway"
Devices:
0 geofancy
1 geofancy
all geofancy
Do:
0:
0 set rr_B home
1:
0 set rr_B absent
Helper:
globalinit 1
last_timer 0
sleeptimer -1
Itimer:
Readings:
0 geofancy:currLoc_iPhone-B
all geofancy:currLoc_iPhone-B
Regexp:
All:
State:
Trigger:
all geofancy
Attributes:
do always
Was willst du mit [geofancy:?currLoc_iPhone-B] bezwecken?
entweder [geofancy:currLoc_iPhone-B] oder [?geofancy:currLoc_iPhone-B] (Reading ohne Trigger) angeben.
Hallo,
Danke für die schnelle Antwort!
Das ? ist war ein versehen, ich hab einfach alles Probiert. Es siegt eigentlich so aus:
(["geofancy:currLoc_iPhone-B"] eq "Zuhause")
(set rr_B home)
DOELSEIF (["geofancy:currLoc_iPhone-B"] eq "underway")
(set rr_B absent)
Zitat von: PsychoD am 25 Dezember 2016, 22:21:15
Hallo,
Danke für die schnelle Antwort!
Das ? ist war ein versehen, ich hab einfach alles Probiert. Es siegt eigentlich so aus:
(["geofancy:currLoc_iPhone-B"] eq "Zuhause")
(set rr_B home)
DOELSEIF (["geofancy:currLoc_iPhone-B"] eq "underway")
(set rr_B absent)
Es sollen doch Readings sein. Warum dann Anführungszeichen?
Leider funktioniert es so auch nicht:
DEF
([geofancy:currLoc_iPhone-B] eq "Zuhause")
(set rr_B home)
DOELSEIF ([geofancy:currLoc_iPhone-B] eq "underway")
(set rr_B absent)
Beide trigger führen das erste cmd aus :(
Zitat von: PsychoD am 25 Dezember 2016, 22:26:36
Leider funktioniert es so auch nicht:
DEF
([geofancy:currLoc_iPhone-B] eq "Zuhause")
(set rr_B home)
DOELSEIF ([geofancy:currLoc_iPhone-B] eq "underway")
(set rr_B absent)
Beide trigger führen das erste cmd aus :(
Das liegt daran, dass es sich hier um das gleiche Device handelt und es kommt in beiden Bedingungen vor.
Es sollte mit dem Attribut checkReadingEvent funktionierten: http://fhem.de/commandref_DE.html#DOIF_checkReadingEvent
Edit: Ich sehe gerade, dass es auch das gleiche Reading ist - da stimmt was nicht. Poste list von deinem "fehlerhaften" Verhalten.
Kein Problem:
Internals:
DEF ([geofancy:currLoc_iPhone-B] eq "Zuhause")
(set rr_B home)
DOELSEIF ([geofancy:currLoc_iPhone-B] eq "underway")
(set rr_B absent)
NAME di_gf_B
NR 127
NTFY_ORDER 50-di_gf_B
STATE cmd_1
TYPE DOIF
Readings:
2016-12-25 22:39:19 Device geofancy
2016-12-25 22:39:19 cmd 1
2016-12-25 22:39:19 cmd_event geofancy
2016-12-25 22:39:19 cmd_nr 1
2016-12-25 22:39:19 e_geofancy_currLoc_iPhone-B Zuhause
2016-12-25 22:39:19 state cmd_1
Condition:
0 ReadingValDoIf($hash,'geofancy','currLoc_iPhone-B') eq "Zuhause"
1 ReadingValDoIf($hash,'geofancy','currLoc_iPhone-B') eq "underway"
Devices:
0 geofancy
1 geofancy
all geofancy
Do:
0:
0 set rr_B home
1:
0 set rr_B absent
Helper:
event currLoc_iPhone-B:Zuhause
globalinit 1
last_timer 0
sleeptimer -1
timerdev geofancy
timerevent currLoc_iPhone-B:Zuhause
triggerDev geofancy
timerevents:
currLoc_iPhone-B:Zuhause
timereventsState:
currLoc_iPhone-B:Zuhause
triggerEvents:
currLoc_iPhone-B:Zuhause
triggerEventsState:
currLoc_iPhone-B:Zuhause
Internals:
Itimer:
Readings:
0 geofancy:currLoc_iPhone-B
1 geofancy:currLoc_iPhone-B
all geofancy:currLoc_iPhone-B
Regexp:
0:
All:
State:
Trigger:
Attributes:
do always
2016-12-25 22:39:19 e_geofancy_currLoc_iPhone-B Zuhause
ich kann keinen "underway"-Trigger erkennen
Sorry, wollte beide posten. Hier das "underway":
Internals:
DEF ([geofancy:currLoc_iPhone-B] eq "Zuhause")
(set rr_B home)
DOELSEIF ([geofancy:currLoc_iPhone-B] eq "underway")
(set rr_B absent)
NAME di_gf_B
NR 127
NTFY_ORDER 50-di_gf_B
STATE cmd_1
TYPE DOIF
Readings:
2016-12-25 22:43:44 Device geofancy
2016-12-25 22:43:44 cmd 1
2016-12-25 22:43:44 cmd_event geofancy
2016-12-25 22:43:44 cmd_nr 1
2016-12-25 22:43:44 e_geofancy_currLoc_iPhone-B Zuhause
2016-12-25 22:43:44 state cmd_1
Condition:
0 ReadingValDoIf($hash,'geofancy','currLoc_iPhone-B') eq "Zuhause"
1 ReadingValDoIf($hash,'geofancy','currLoc_iPhone-B') eq "underway"
Devices:
0 geofancy
1 geofancy
all geofancy
Do:
0:
0 set rr_B home
1:
0 set rr_B absent
Helper:
event currLoc_iPhone-B:underway
globalinit 1
last_timer 0
sleeptimer -1
timerdev geofancy
timerevent currLoc_iPhone-B:underway
triggerDev geofancy
timerevents:
currLoc_iPhone-B:underway
timereventsState:
currLoc_iPhone-B:underway
triggerEvents:
currLoc_iPhone-B:underway
triggerEventsState:
currLoc_iPhone-B:underway
Internals:
Itimer:
Readings:
0 geofancy:currLoc_iPhone-B
1 geofancy:currLoc_iPhone-B
all geofancy:currLoc_iPhone-B
Regexp:
0:
All:
State:
Trigger:
Attributes:
do always
Oder mache ich mit dem Trigger was falsch?
trigger geofancy currLoc_iPhone-B:underway
Du musst zwischen Triggern und Readings unterscheiden. Mit dem Trigger weckst du zwar das Modul auf, aber das abgefragte Reading steht ja immer noch auf "Zuhause".
Wenn du Reading-Abfragen testen willst dann, musst du auch Readings setzen, z. B. mit setreading ...
Oh, ok. Das war mir neu. Danke für den Tipp! Mit Setreading klappt's! :)