[Gelöst] Presence Zeitstempel letzes mal online

Begonnen von newby, 05 Januar 2016, 12:41:12

Vorheriges Thema - Nächstes Thema

newby

Hi,

hab mal wieder einen Knoten im Hirn.
Ich versuche ein Userreadings im Presence Modul zu erstellen das mir die Zeit anzeigt wann das Mobilphone das letzte mal den Status "present" gesendet hat.
Aktuell habe ich folgendes
lastpresent {if (Value("Phone") eq "present") {ReadingsTimestamp("Phone", "state", "false")}}

Leider wird damit bei jeder Statusabfrage der Timestamp "lastpresent "neu gesetzt, auch wenn der Status "absent" ist.

Ist für euch bestimmt ganz einfach. ;)


Gruß
Sven

l2r

schau dir mal ROOMATE an ...

da gibts unter anderem ein Reading lastDeparture. Das sollte so ziemlich das sein, was du suchst.

Ansonsten könntest du auch mit einem DOIF auf present abfragen und sobald dein Phone nicht mehr present ist, das Reading setzen.

Gruß Michael
Wissen ist Macht.
Ich weiß nix.
Macht nix.

newby

sollte das nicht auch über die if-Abfrage gehen?
Warum wird das Userreading upgedated obwohl der Status absent ist?

Habe ich da noch nen Fehler im Code?

Gruß
Sven

l2r

ich hab das grade mal versucht nachzuvollziehen.

das Userreading wird jedes Mal getriggert, wenn das sich am Device was ändert. Aber nur wenn das Device present ist wird auch ein Wert gesetzt, ansonsten wird ein leeres Reading gesetzt.

lastpresent {if (Value("Phone") eq "present") {ReadingsTimestamp("Phone", "state", "false")} else {ReadingsVal("Phone","lastpresent","")}}

so sollte es passen.

Wenn Phone present ist, wird das UserReading lastpresent mit dem ReadingsTimestamp aktualisiert, in allen anderen Fällen mit dem Wert des Readings überschrieben.

Gruß Michael
Wissen ist Macht.
Ich weiß nix.
Macht nix.

newby

Hi,

werde es gleich mal testen.
Feedback folgt.
Vielen Dank.

Gruß
SVen

newby

Hi,

erst einmal Danke an Michael.
mit dem else auf lastpresent funktioniert das ganze.
Ich hatte mich irgendwie darauf verbissen das wenn ich nur den present status abfrage das er auch nur dann den wert setzt und ihn bei absent nicht triggert.

Gruß
Sven