Zeitstempel des Bewegungsmelders an pushbullet senden

Begonnen von aisberg, 18 Januar 2016, 21:55:58

Vorheriges Thema - Nächstes Thema

aisberg

Ich bekomme es bisher nur hin, mit pushbullet statische Nachrichten zu verschicken. Wie könnte ich auch einen Zeitstempel, den ich aus dem Bewegungsmelder rauslese, verschicken?

Zeitstempel aus Bewegungsmelder auslesen
erstes Problem: ich weiß nicht, wie ich die Zeit der letzten Bewegung ausgelesen bekomme. Es ist ein
http://www.fhemwiki.de/wiki/HM-Sen-MDIR-O_Funk-IR-Bewegungsmelder_au%C3%9Fen
"Möchte man den Zeitpunkt der letzten erfassten Bewegung in der GUI sehen, so muss hierzu folgendes Attribut gesetzt werden":
attr Sensor showtime 1
In der GUI sehe ich auch diesen letzten Zeitpunkt, aber ein Reading dafür gibt es nicht. Daher meine Idee mit "state", aber ob das überhaupt den Zeitpunkt liefert? Könnte das funktionieren?
ReadingsTimestamp(BewegungV,"state","")


Pushbullet:
Ich möchte das notify so verändern, das in der Message dynamischer Text steht, was so wie hier unten natürlich nicht funktioniert, denn das wird nicht als Code interpretiert:
BewegungV:motion set pushb message Bewegung Vorne ReadingsTimestamp($Device,"state","") | FHEM

Wie könnte man es denn richtig machen?

marvin78

commandref zu set und notify lesen und dann:

BewegungV:motion set pushb message Bewegung Vorne {(ReadingsTimestamp($NAME,"state",""))}


aisberg

Danke! Ich tue mich noch ein wenig schwer mit den Klammern und ihren Auswirkungen :-)

Gesendet von meinem ASUS_Z00AD mit Tapatalk


marvin78

Das funktioniert so aber nur in einer einigermaßen aktuellen Version von FHEM (5.7). Andernfalls musst du mehr Perl bemühen.

Eigentlich ist die Klammerung in der commandref zu set für so einen Fall hier genau beschrieben und mit einem Beispiel versehen.

aisberg

ich habe zwar das aktuellste FHEM, aber es funktioniert nicht.
Es kommt:
Bewegung Vorne Bareword "BewegungV" not allowed while "strict subs" in use at (eval 16428) line 1.

Ich verstehe das mit den ganzen Klammern und ' und " noch nicht alles, auch mit Lesen in comandref. Dann scheint es auch noch Unterschiede zu geben, je nachdem, ob man an bestimmten Stellen Leerzeichen verwendet oder nicht. Es nicht alles so trivial und ich bin schon froh, dass ich so weit bin, wie ich bin :-)


aisberg

Daraus entnehme ich folgende Idee - fhem Befehl zusammensetzen in der der Form:
BewegungT:motion {fhem("set pushb message Bewegung Terrasse " HierEineZeitOderWasAuchImmerAuslesen " | Message Titel")}

so was geht nicht
BewegungT:motion {fhem("set pushb message Bewegung Terrasse " list BewegungT battery " | Message Titel")}
geht nicht. Vielleicht so
BewegungT:motion {fhem("set pushb message Bewegung Terrasse " ReadingsVal(BewegungtT, battery, 0) " | Message Titel")}
geht auch nicht.
oder so
BewegungT:motion {fhem("set pushb message Bewegung Terrasse " {ReadingsVal(BewegungtT, battery, 0)} " | Message Titel")
geht auch nicht, und verschiedene andere Varianten  mit verschiedenen Kombinationen aus verschiedenen Klammern und Anführungszeichen habe ich schon probiert.
Welche Syntax wäre denn grundsätzlich nötig?

Angenommen, es sollte mir gelingen, irgend etwas aus dem Bewegungssensor auszulesen und in der Nachricht zu verwenden. Dann weiß ich allerdings immer noch nicht, wie ich das Datum der letzten Bewegung bekomme. In den Readings gibt es das Datum nicht, es wird allerdings in der GUI angezeigt.

wenn ich
list BewegungT
ausführe, dann gibt es unter den "Internals"
protSnd 8 last_at:2016-01-20 01:15:36
Das ist die Zeit, die ich brauche. Ich müsste also irgendwie an dieses protSnd kommen.