Hallo zusammen,
ich nutze einen CC2531 am Fhem-Pi.
Leider kann ich damit bei Hue Lampen kein on-for-timer nutzen (ich bekomme das so nicht hin :().
Daher dachte ich, dass es vielleicht klüger ist, in einem "at" zu sagen, dass wenn sich ein Reading des Bewegungsmelders auf einen bestimmten Wert updated (es muss kein changeReading sein) ich eine Lampe nach xx Minuten wieder ausschalte.
Aktuell probiere ich es so (funktionieren tut es so nicht):
{SonoffRF:RfReceived_Data == "E1C5AE"} define kuechenlampeAus at +*00:00:10 set Kuechenlampe off
Am Device, was das ReadingUpdate enthält, gibt es ein event-on-update-reading (auf alle Readings mit .*), durch welches das at funktionieren sollte.
Freue mich auf Hilfe von Euch, bei der Hitze ist mein Hirn etwas im Hintertreffen :)
VIele Grüße und besten Dank
Tardar
Was soll der gepostete Code denn tun?
Wieso sollte er auf irgendwas reagieren?
Ist das Teil eines Notify!?
Poste doch mal alles!
Wenn das was du gepostet hast schon alles ist, kann das nicht gehen...
define nOff notify Device:Reading defmod atOff at +*00:00:10 set Lampe off
Mal als "Pseudo-Code"...
Ein list vom Device mit dem "gewünschten" Reading wäre auch gut...
Ansonsten: Eventmonitor öffnen, auf passenden Event warten, markieren und Notify anlegen lassen und dann mit "at" anpassen...
Gruß, Joachim
Ich nutze Sonoff Bewegungsmelder, welche als Reading ein "RfReceived_Data" via MQTT liefern.
Dies möchte ich prüfen. Das Reading ändert sich bspw. auf "12345" und wenn das geschehen ist, möchte ich nach x Minuten eine Lampe ausschalten. Diese wird mit einem notify nach Erkennung des Bewegungsmelders eingeschaltet.
Das notify:
(SonoffRF:RfReceived_Data.*)
IF ([SonoffRF:RfReceived_Data] eq "12345")
(set Kuechenlampe on)
Das Device Kuechenlampe soll dann nach bspw. 10 Minuten wieder ausgeschaltet werden.
Das event aus dem event-Monitor ist nach Auslösen des Bewegungsmelders folgendes:
2019-06-28 22:57:52 MQTT_DEVICE SonoffRF RfReceived_Sync: 12470
2019-06-28 22:57:52 MQTT_DEVICE SonoffRF RfReceived_RfKey: None
2019-06-28 22:57:52 MQTT_DEVICE SonoffRF RfReceived_Data: 12345
2019-06-28 22:57:52 MQTT_DEVICE SonoffRF RfReceived_Low: 420
2019-06-28 22:57:52 MQTT_DEVICE SonoffRF RfReceived_High: 1220
Das list des Devices mit dem Reading:
Internals:
FUUID 5c43e21d-f33f-510d-f1a1-f9b57d93dae8d7a4
IODev Mosquitto
NAME SonoffRF
NR 70
STATE incoming publish received
TYPE MQTT_DEVICE
Helper:
DBLOG:
RfReceived_Data:
DBLogging:
TIME 1561755472.18226
VALUE 12345
RfReceived_RfKey:
DBLogging:
TIME 1561755472.18226
VALUE None
Sensor:
DBLogging:
TIME 1561755472.10438
VALUE {"RfReceived":{"Sync":12470,"Low":420,"High":1220,"Data":"12345","RfKey":"None"}}
READINGS:
2019-06-28 22:57:52 RfReceived_Data 12345
2019-06-28 22:57:52 RfReceived_High 1220
2019-06-28 22:57:52 RfReceived_Low 420
2019-06-28 22:57:52 RfReceived_RfKey None
2019-06-28 22:57:52 RfReceived_Sync 12470
2019-06-28 22:57:52 Sensor {"RfReceived":{"Sync":12470,"Low":420,"High":1220,"Data":"12345","RfKey":"None"}}
2019-06-28 22:57:52 transmission-state incoming publish received
message_ids:
sets:
subscribe:
/SmartHome/Interface/Sonoff_Bridge/tele/RESULT
subscribeExpr:
^\/SmartHome\/Interface\/Sonoff_Bridge\/tele\/RESULT$
subscribeQos:
/SmartHome/Interface/Sonoff_Bridge/tele/RESULT 0
subscribeReadings:
/SmartHome/Interface/Sonoff_Bridge/tele/RESULT:
cmd
name Sensor
Attributes:
DbLogExclude .*
DbLogInclude RfReceived_Data,RfReceived_RfKey,Sensor
IODev Mosquitto
alias Sonoff RF Bridge
event-on-update-reading .*
group RF Bridge
mqttName SonoffBridge
mqttRoom Wohnzimmer
room 92_Zentrale
stateFormat transmission-state
subscribeReading_Sensor /SmartHome/Interface/Sonoff_Bridge/tele/RESULT
Du kannst auch ganz einfach an das vorhandene set Lampe on ein sleep anhängen und dann set Lampe off
set Kuechenlampe on,sleep 600,set Kuechenlampe off
Ich bin allerdings nicht sicher wie die korrekte Schreibweise beim fhem-IF ist.
Also ob "Strichpunkt", "Doppel-Strichpunkt" oder gar "Komma" zum Trennen weiterer Befehle...
EDIT: Komma statt meiner Strichpunkte sollte laut commandref funktionieren (Code angepasst)
Gruß, Joachim
Mir war nicht bewusst, dass ich aus dem eventMonitor Devices anlegen kann *indieeckestellundschäm*
So funktioniert es nun:
SonoffRF:RfReceived_Data:.12345 defmod atOff at +*00:00:10 set Kuechenlampe off
Device aus dem eventMonitor erstellt und dann nach deinem Muster angepasst.
So machts das ganzue ja echt easy, die Readings korrekt anzugeben.
Vielen lieben Dank für den kurzen Hinweis :)
Ein schönes Wochenende gewünscht ;)
Kein Thema...
Mit dem sleep bei deinem "Einschalt-Notify" (was es ja schon gibt!?) sparst du das "at"...
Und wenn du das Notify aus dem Eventmonitor statt des jetzigen für's Einschalten nimmst (das für das "at") kannst du im bestehenden die IF-Abfrage sparen... ;)
Anmerkung: je genauer die RegEx (bei Notify, DOIF, ...) "gefasst" ist, desto weniger musst du im Notify etc. prüfen und v.a. das Notify wird erst gar nicht so oft angestossen!
(Vergleiche mal das RegEx [.* -> "höre auf alles] deines set-Notify mit der des für den "at" aus dem Eventmonitor)
Gruß und ebenso schönes WE, Joachim