Befehl wenn letztes Dummy state mehr als 30 min zurückliegt.

Begonnen von ChrisW, 13 August 2017, 21:21:53

Vorheriges Thema - Nächstes Thema

ChrisW

Hallo,
habe ein Dummy der bekommt per Tasker einen Status dieser wird alle 30 min gesetzt absend oder present.
Im Dummy habe ich event update auf .* für das log !

Ich möchte nun ( per Watchdog ?? ) den Dummy überwachen. Wenn der letzte state des Dummys länger als 40 minuten zurückliegt soll ein Befehlt ausgefügt werden. ( set alarmon on )

Wie kann ich das realisieren ?
Hintergrund. Ich will verhindern wenn das Handy aus geht ( akku leer ) das das gerät im present Status bleibt.
Raspberry PI3 mit allem möglichen.

Otto123

Hi,

schau mal nach ReadingsAge
ZitatReadingsAge(<devicename>,<reading>,<defaultvalue>)
gibt das Alter des Readings in Sekunden zurück.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

amenomade

Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

ChrisW

hm doif finde ich noch zu kompliziert ;) Das ReadingsAge ist schon nicht schlecht kann ich das mit einem watchdog verbinden? Oder wie stelle ich das an das er erst etwas macht wenn es 40 Minuten zurückliegt ?
Raspberry PI3 mit allem möglichen.

amenomade

DOIF ist in dem Fall viiieeeel einfacher. Und über den Link, den ich gegeben habe, ist schon der richtige 3-Zeiler. Musst nur das Device, den Befehl und die Dauer anpassen. Einfacher gibt es nicht.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

Otto123

Hi,

ich finde den Vorschlag mit DOIF auch kurz und knackig.
watchdog reagiert auf events, das könnte man dann ohne readingsage ähnlich machen, wenn der state für 40 min nicht gesetzt wurde:
define w watchdog device 00:40:00 SAME <mache was>
Schau Dir aber die Doku zu watchdog gut an.

Insofern war meine Überlegung mit readingsage vielleicht zu knapp gedacht.

Gruß Otto
Viele Grüße aus Leipzig  ⇉  nächster Stammtisch an der Lindennaundorfer Mühle
RaspberryPi B B+ B2 B3 B3+ ZeroW,HMLAN,HMUART,Homematic,Fritz!Box 7590,WRT3200ACS-OpenWrt,Sonos,VU+,Arduino nano,ESP8266,MQTT,Zigbee,deconz

ChrisW

#6

define check_chris-status DOIF ([chris_status])(set chris_status absent)
attr check_chris-status wait 2400
attr check_chris-status do resetwait

Das komplizierte ist nun noch das ich ja den Status von present in absent ändern will. Also bei absent wenn sich nichts ändert soll nichts passieren. Nur wiederhohlt sich das ganze ja wieder? Kan das Probleme  machen?

chris status:
present nach 40 minuten nicht geändert = chris_status absent

Wenn das Handy dann wieder gestartet wurde wird ja der richtige Status gesetzt :)

Raspberry PI3 mit allem möglichen.

amenomade

define check_chris-status DOIF ([chris_status] eq "present"])(set chris_status "absent")
attr check_chris-status wait 2400
attr check_chris-status do resetwait
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

ChrisW

#8
Danke aber nu gekomme ich sowas nach dem Speichern :
check_chris_status DOIF: right bracket without left bracket: ]

Hab es mal so gemacht und es klappt wohl :
define check_chris_status DOIF ([chris_status] eq "present")(set chris_status absent)
attr check_chris_status do resetwait
attr check_chris_status room Anwesenheit
attr check_chris_status wait 30
Raspberry PI3 mit allem möglichen.

amenomade

Mein Schuld
define check_chris-status DOIF ([chris_status] eq "present") (set chris_status "absent")
und die attr


Damit es funktioniert, muss sich aber den STATE von chris_status regelmässig aktualisieren und entspr. ein Event generieren (gilt auch für Watchdog)
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

ChrisW

Danke hatte es schon hinbekomen.
Ja das Handy macht alle 30 Minuten einen WLAN check und setzt den Status neu. Taucht nur im log nicht auf wegen change_update .*.
Wenn ich nun alle 40 min Prüfe kann ich abfangen wenn das  Handy mal leer ist und kein Status mehr schickt.
Raspberry PI3 mit allem möglichen.

amenomade

Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

ChrisW

Raspberry PI3 mit allem möglichen.

nils_

Zitat von: ChrisW am 14 August 2017, 23:07:26
Taucht nur im log nicht auf wegen change_update .*.

Zitat von: amenomade am 14 August 2017, 23:27:42
Du meinst event-on-update-reading?

Zitat von: ChrisW am 15 August 2017, 07:42:38
ja genau sonst ist das Log zugemüllt :)

oder doch eher event-on-change  ::)
viele Wege in FHEM es gibt!

amenomade

Eigentlich wird die Log mehr gemüllt mit event-on-update-reading als mit event-on-change-reading...  Das event-on-update-reading brauchst aber hier doch.

Kann man ein "list chris_status" sehen?
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus