Wie kann man den Zeitstempel adressieren?

Begonnen von NeuFehm, 10 Dezember 2016, 12:30:48

Vorheriges Thema - Nächstes Thema

NeuFehm

Ich möchte gern für einen Befehl die jetzige Zeit mit dem Zeitstempel eines Events vergleichen.
Wie kann man das Event adressieren?

$DEVICE.$EVENTNAME.$TIME? also bsp:
für das Device "myDummy" und das Event "on"
so was in die Richtigung wie myDummy.on.time?

Also ich möchte das dann späte in einer Bedingung einbauen.... if(myDummy.on.time < bla bla bal...)
Raspberry Pi B+
RS 485 Schnittstellen: DIGITUS DA-70157, LINKSPTITE RS485/GPIO Shield for Raspberry Pi
RS485 Geräte: Ultraschallsensor für Zisternenfüllstand (Eigenbau), 4x8 Relais-M-Mastermodule (Eigenbau), 6 T-Module (Schalter und 3 analoge Eingänge) (Eigenbau)
sonstige Hardware: 2 Relay Modul

viegener

Nicht wirklich der Zeitstempel eines Events, aber zumindest relativ nah dran, ist der Zeitstempel eines Readings, diesen bekommt man durch Aufruf von ReadingsTimestamp( "device", "reading", default )

Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

NeuFehm

ja, das meinte ich auch ;)
also in meinem Fall das Device:"PIR1" und das reading ist "pir1"
also könnte das ungefähr so aussehen?

define Lampeaus at +*00:02:00 { if (TimeNow() > (ReadingsTimestamp( PIR1,pir1, default) + 120) { fhem("set myLICHT off") } }

Erklärung: Fhem schaut alle 2 Minuten nach, ob das Reading "pir1" des Devices PIR1 älter als 2 Minuten ist, wenn dem so ist, dann schaltet FHEM die Lampe "myLicht" aus
Raspberry Pi B+
RS 485 Schnittstellen: DIGITUS DA-70157, LINKSPTITE RS485/GPIO Shield for Raspberry Pi
RS485 Geräte: Ultraschallsensor für Zisternenfüllstand (Eigenbau), 4x8 Relais-M-Mastermodule (Eigenbau), 6 T-Module (Schalter und 3 analoge Eingänge) (Eigenbau)
sonstige Hardware: 2 Relay Modul

viegener

Vermutlich ist für Deinen Zweck "ReadingsAge" noch besser geeignet, denn das gibt bereits das Alter des Readings wieder.

Aber für beide gilt, dass die Namen für Device/Reading in "" gehören --> das sind ja perl-Aufrufe!

Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

viegener

Eigentlich ist Dein Szenario aber genau ein watchdog -> Also reagier auf ein Ereignis und auf das Ausbleiben eines weiteren Ereignisses innerhalb einer gewissen Zeit. Hierbei ist das zweite Event eben dasselbe wie das erste

Siehe in der Commandref zu watchdog
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

NeuFehm

define mywatchdog DOIF ([PIR1:pir1:sec] < 10) (set 40Relais2 on) DOELSE (set 40Relais2 off)
der watchdog schaut nicht nach 10 Sekunden nach, ob ein Event gekommen ist... also das funktioniert auch nicht :(
Theoretisch müsste er ja Befehl 1 ausführen und nach 10 Sekunden Befehl 2, falls nicht in der Zwischenzeit
der Status von Device PIR1 und das Reading pir1 aktualisiert wurde.... :(
Raspberry Pi B+
RS 485 Schnittstellen: DIGITUS DA-70157, LINKSPTITE RS485/GPIO Shield for Raspberry Pi
RS485 Geräte: Ultraschallsensor für Zisternenfüllstand (Eigenbau), 4x8 Relais-M-Mastermodule (Eigenbau), 6 T-Module (Schalter und 3 analoge Eingänge) (Eigenbau)
sonstige Hardware: 2 Relay Modul

FranzB94

Hi NeuFehm!
Zitat von: NeuFehm am 10 Dezember 2016, 14:40:59
define mywatchdog [b]DOIF[/b] ([PIR1:pir1:sec] < 10) (set 40Relais2 on) DOELSE (set 40Relais2 off)
der watchdog...
Wieso sollte watchdog etwas tun, wenn du ein DOIF anlegst?
Lt. commandref wird ein watchdog doch so angelegt:
Zitat
define <name> watchdog <regexp1> <timespec> <regexp2> <command>

NeuFehm

Wow, das scheint ein guter Hinweis.
Ich Depp habe einfach nach "watchdog" mit STR-F gesucht und mein erstes Ergebnis war mit DOIF überschrieben....
Aber ja, watchdog gibt es wirklich... ;)
Ich probiere gleich mal....
Raspberry Pi B+
RS 485 Schnittstellen: DIGITUS DA-70157, LINKSPTITE RS485/GPIO Shield for Raspberry Pi
RS485 Geräte: Ultraschallsensor für Zisternenfüllstand (Eigenbau), 4x8 Relais-M-Mastermodule (Eigenbau), 6 T-Module (Schalter und 3 analoge Eingänge) (Eigenbau)
sonstige Hardware: 2 Relay Modul

NeuFehm

#8
define keineBewegung watchdog PIR1 00:00:01 SAME set 40Relais1 off

funktioniert nicht.... mh
Ziel war: Wenn Device PIR1 über eine Minute nix mehr "sagt" dann schalte ein Relais aus.

Update, gelesen, dass watchdog sich selber trggern muss...:
define keineBewegung watchdog PIR1 00:00:01 SAME set 40Relais1 off;; trigger keineBewegung .

arbeitet falsch herum. Also sobald PIR1 einen Status aktualisiert schaltet 40Relais1 off.....
Wo ist der Fehler?

Ha!!! GEIL
define keineBewegung watchdog PIR1 00:00:15 SAME set 40Relais1 off;; trigger keineBewegung .

00:00:01 sind 1 Sekunde ;) bei 00:00:15 klappt es genau wie es soll!!!!!
Super!

Hier die Beiden Befehle für meinen Bewegungsmelder.... wenn der (PIR1) nix mehr meldet, warte noch 15 Sekunden und schalte dann die Lampe (40Relais1) aus...

define Bewegung notify PIR1 set 40Relais1 on
define keineBewegung watchdog PIR1 00:00:15 SAME set 40Relais1 off;; trigger keineBewegung .


Danke an Alle
Raspberry Pi B+
RS 485 Schnittstellen: DIGITUS DA-70157, LINKSPTITE RS485/GPIO Shield for Raspberry Pi
RS485 Geräte: Ultraschallsensor für Zisternenfüllstand (Eigenbau), 4x8 Relais-M-Mastermodule (Eigenbau), 6 T-Module (Schalter und 3 analoge Eingänge) (Eigenbau)
sonstige Hardware: 2 Relay Modul

viegener

Ich mag diese Protokolle eines erfolgreichen Erkenntnisprozesses - Schön, dass wir den Anstoss liefern konnten  ;)
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

FranzB94

Hi!
Zitat von: NeuFehm am 10 Dezember 2016, 16:26:26
Ha!!! GEIL

00:00:01 sind 1 Sekunde
Super!

Ja stimmt. Diese Zitate lassen Erinnerungen an die Grundschulzeit in Einem hochkommen. Mit PISA kommen die diese Erkentnisse nun leider erst später. Es wird Einem so weihnachtlich um's Herz.  :'(

NeuFehm

Ihr wisst gar nicht, wie schwer eine Sekunde ist  ;D
Raspberry Pi B+
RS 485 Schnittstellen: DIGITUS DA-70157, LINKSPTITE RS485/GPIO Shield for Raspberry Pi
RS485 Geräte: Ultraschallsensor für Zisternenfüllstand (Eigenbau), 4x8 Relais-M-Mastermodule (Eigenbau), 6 T-Module (Schalter und 3 analoge Eingänge) (Eigenbau)
sonstige Hardware: 2 Relay Modul