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

Otto123

Wozu braucht es event-on-update-reading?

Ich selbst arbeite bei presence generell mit event-on-change-reading. Ok hier in dem Fall wo der presencegeber nochmal überwacht wird (was ich nie so richtig verstanden habe) wäre das kontraproduktiv.
Also ohne event-on-change-reading würde das presence Geräte bei jedem update auch einen event triggern. Das wäre doch hier völlig ok!?

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

Das hat er beschrieben: sein Handy meldet "present" auf einem Dummy per Tasker. Und er will, dass wenn das Handy nix mehr meldet, das Dummy automatisch auf "absent" springt.
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

Zitat von: amenomade am 15 August 2017, 17:20:09
Das hat er beschrieben: sein Handy meldet "present" auf einem Dummy per Tasker. Und er will, dass wenn das Handy nix mehr meldet, das Dummy automatisch auf "absent" springt.
Ist das die Antwort auf meine Frage?
Zitat von: Otto123 am 15 August 2017, 15:13:15
Wozu braucht es event-on-update-reading?

Ich habe folgendes verstanden und nachgebaut defmod check_chris_status DOIF ([chris_status] eq "present")(set chris_status absent)
attr check_chris_status do resetwait
attr check_chris_status room Test
attr check_chris_status wait 30
defmod chris_status dummy
attr chris_status room Test
set chris_status present
mache ich nicht innerhalb von 30 wieder ein set chris_status present dann geht chris_status auf absent. So soll es doch sein? Keine weiteren attr kein Müll im Log.

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

Zitatmache ich nicht innerhalb von 30 wieder ein set chris_status present dann geht chris_status auf absent.
Ja, aber machst Du doch innerhalb von 30 wieder ein set chris_status present, dann geht chris_status trotzdem auf absent, oder?
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

nein warum sollte es? Der wait timer wird zurück gesetzt, kann man im DOIF gut beobachten.
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

Otto123

natürlich erzeugt set chris_status present einen event. Warum sollte er nicht? Ich habe kein event-on-change-reading gesetzt.
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

Ah ja ok, sorry. "Wenn nicht gesetzt, erzeugt jede Veränderung eines "readings" ein Ereignis".
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

Oha also hier mal ein list:
Internals:
   CFGFN      ./FHEM/anwesenheit.cfg
   CHANGED
   NAME       chris_status
   NR         180
   STATE      present
   TYPE       dummy
   READINGS:
     2017-08-15 20:40:15   state           present
Attributes:
   event-on-change-reading .*
   room       Anwesenheit
   userattr   Handys Handys_map structexclude


das event-on-change-reading .*  habe ich da Tasker im Handy alle 30 Minuten den nochmal das aktuelle wifi  checkt und immer wieder sonst alle 30 min ein "present" schreibt.
Ich will mein Dummy log aber aufgeräumt haben also nur absent und present  ;)

Also bisher scheint es zu klappen in meinem Test.
Raspberry PI3 mit allem möglichen.

Otto123

Sorry aber das funktioniert nicht. Keine Hände keine Kekse - oder kein Event kein resetwait. Damit funktioniert das DOIF nicht.
Damit funktioniert aber gar nix. Dann musst Du eben noch einen Zwischenschritt ein legen, z.B. ein separates reading zum loggen, oder ein separates reading fürs DOIF. Egal wie rum.

Aber wenn Du anderer Meinung bist dann gut, sag später nicht ich hätte es Dir nicht gesagt   ;D

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

hmm ich beobachte es mal bei meinem Test hat es geklappt.
Sonst schmeiß ich das event-on-change-reading . halt raus .. so oft guck ich auch nicht in das Log
Raspberry PI3 mit allem möglichen.

topa_LE

Brauchte dies auch mal für ein Szenario bei meiner Alarmanlage, da die Bewegungsmelder keinen Zustand "auf/zu" oder "an/aus" haben. Dieser löst nur das Alarmevent aus und generiert über eine Action-URL ein Event nach Fhem.

Da nun die Alarmmeldung beim Dummy nicht auf in den normalen Zustand per Action-URL (Lupus XT1plus) zurücksetzen kann, habe ich das mit dieser DOIF Definition gelöst. Klappt perfekt.  :) Nur eine kleine Anmerkung zum wait: Die hier genannten 30 Minuten wären dann mit 1800 zu setzen. Die wait-Angabe sind Sekunden nicht Minuten.

Da mein Bewegungsmelder nach Alarmauslösung 3 Minuten in den Ruhezustand wechselt, setze ich die das Event nach 180.

Hier noch meine Define: (falls es einer mal braucht)

defmod Reset_Zustand_d_Hauseingang_Bewegungsmelder DOIF ([d_Hauseingang_Bewegungsmelder] eq "aus")(set d_Hauseingang_Bewegungsmelder ein)
attr Reset_Zustand_d_Hauseingang_Bewegungsmelder DbLogExclude .*
attr Reset_Zustand_d_Hauseingang_Bewegungsmelder alias Bewegungsmelder Haustür zurücksetzen - No Alarm
attr Reset_Zustand_d_Hauseingang_Bewegungsmelder devStateIcon cmd_1:10px-kreis-gruen cmd_2:10px-kreis-red
attr Reset_Zustand_d_Hauseingang_Bewegungsmelder do resetwait
attr Reset_Zustand_d_Hauseingang_Bewegungsmelder room 95-Alarmanlage
attr Reset_Zustand_d_Hauseingang_Bewegungsmelder wait 180