Huhu,
ich habe mal eine Frage: Wieso triggert dieses doif nicht? Sonst habe ich keine Probleme, aber das Roommate Device rr_Kai triggert folgendes doif nicht, obwohl sich die Readings zu locationPresence und location ändern
([rr_Kai:location] eq "work" and [rr_Kai:locationPresence] eq "absent")
(msg @rr_Kai Arbeit verlassen)
welchen Knoten habe ich im Kopf?
Dann werden wohl beide Bedingungen zur selben Zeit nicht erfüllt sein.
Sehe gerade das ich gar kein Reading locationPresence habe.
Zitat von: CoolTux am 30 Mai 2017, 15:04:26
Dann werden wohl beide Bedingungen zur selben Zeit nicht erfüllt sein.
Doch, location steht auf work, locationPresence steht auf absent
setstate rr_Kai 2017-05-30 14:44:09 locationPresence absent
setstate rr_Kai 2017-05-30 14:44:09 location work
Zitat von: CoolTux am 30 Mai 2017, 15:04:26
Sehe gerade das ich gar kein Reading locationPresence habe.
Ich nutze das Modul GEOFANCY- da kann man in ROOMMATE das Attribut rr_geofenceUUIDs mit dem Device füllen, welches die Geofancy triggert - das funktioniert auch soweit.
Evtl nutzt du das nicht, deswegen kein locationPresence Reading?
Und es werden auch Events erzeugt? Kannst Du mal den Eventmonitor auf machen und schauen.
setstate (https://fhem.de/commandref_DE.html#setstate)erzeugt doch keine events...
ist das evtl. das Problem?
Zitat von: nils_ am 30 Mai 2017, 15:20:24
setstate (https://fhem.de/commandref_DE.html#setstate)erzeugt doch keine events...
ist das evtl. das Problem?
Sorry, hatte das aus den Raw Definitions kopiert, deswegen steht da setstate - ich selber setze manuell mit setstate keine States
Der Eventmonitor spukt das hier aus beim betreten/verlassen der location (Geokoordinaten habe ich anonymisiert)
Events (Filter: rr_Kai.*) FHEM log ResetCreate/Modify Device
2017-05-30 15:20:43 GEOFANCY geofancy id:1259ECDB-1D04-4055-B446-AFE39859D503 trig:1 date:1496150441 lat:51.xxxxxxxxxxx long:7.xxxxxxxxxxx dev:xxxxxxxx-2B0E-41FB-A058-F08678D4BD1E devAlias=rr_Kai
2017-05-30 15:20:43 GEOFANCY geofancy lastDevice: rr_Kai
2017-05-30 15:20:48 GEOFANCY geofancy id:1259ECDB-1D04-4055-B446-AFE39859D503 trig:0 date:1496150448 lat:51.xxxxxxxxxxx long:7.xxxxxxxxxxx dev:xxxxxxxx-2B0E-41FB-A058-F08678D4BD1E devAlias=rr_Kai
2017-05-30 15:20:48 GEOFANCY geofancy lastDevice: rr_Kai
Hmm, hat denn niemand eine Idee?
evtl. hilft ein list vom DOIF
Du meinst die Raw Definition?
So, "Fehler" gefunden bzw Fehler war vor dem Bildschirm - typical layer 8 error ;-)
im ROOMMATE device hatte ich event-on-change-reading und update zwar gesetzt, aber falsch. geht jetzt ;-)
Ich weiß der Beitrag ist schon älter aber ich hoffe es sieht ihn noch wer.
Folgendes Problem:
Ich habe ein DOIF für meine Anwesenheitserkennung:
([myUnifi:Michaels-iPhone_last_seen:sec] > 180) (set rr_Michi absent) DOELSE (set rr_Michi home)
zusätzlich habe ich noch do always gesetzt
Nun habe ich das Problem wenn last seen <180 ist wird rr_Michi nicht auf absent gesetzt. sondern bleibt auf cmd_2 stehen wenn ich ein set checkall ausführe wird sofort getriggert. Umgekehr wenn ich nach hause komme springt der wert sofort um
Kann mir wer sagen wo mein gedankenfehler liegt?
Zitat von: leachim200 am 22 August 2018, 08:29:10Kann mir wer sagen wo mein gedankenfehler liegt?
:sec ergibt keinen Trigger. Ist nur sinnvoll als Abfrage. Wenn der Trigger kommt, ist :sec IMMER 0.
Ok
und was müsste ich ändern damit er das antriggert?
Triggern tut nicht das DOIF, das wird getriggert (von dem, was du halt eingibst). Du musst also beim Eintreffen des Triggers was tun (zum Beispiel einen Wait-Timer setzen) und wenn dieser abgelaufen ist, umschalten.
Einfaches Beispiel:
([myUnifi:irgendwas] == "gesuchter Wert") (set rr_Michi absent) DOELSE (set rr_Michi home)
attr wait 180:0
Was passiert: beim Umschalten deiner MyUnify auf einen passenden Wert startet der Wait-Timer. Wenn er nach 180 Sekunden immer noch läuft (weil der Wert nicht umgeschaltet hat), wird rr_Michi auf absent gesetzt, ansonsten bleibt es auf home.