Hi,
ich möchte u.a. eine Nachricht absetzen, wenn eine HUE-Steckdose vier Stunden lang ON ist. Der Code sieht so:
defmod PumpeAN4Std watchdog HUEDevice37:on.* 04:00:00 HUEDevice37:on.* set Sonos_Wohnzimmer Speak 30 de......
Das funktioniert leider nicht - die Meldung wird einmalig 4 Std nach der Aktivierung abgesetzt, egal, ob das HUEDevice on oder off ist.
Sieht jemand den Fehler?
Hier die Copy:
[code]define PumpeAN4Std watchdog HUEDevice37:on.* 04:00:00 HUEDevice37:on.* set Sonos_Wohnzimmer Speak 30 de |TempleBell| Die Gartenpumpe läuft ....
attr PumpeAN4Std room Bewässerung,Geräte
# CFGFN
# CMD set Sonos_Wohnzimmer Speak 30 de |TempleBell| Die Gartenpumpe läuft .....
# DEF HUEDevice37:on.* 04:00:00 HUEDevice37:on.* set Sonos_Wohnzimmer Speak 30 de |TempleBell| Die Gartenpumpe läuft schon seit vier Stunden und wird jetzt abgeschaltet; set ECHO_G090LF1072270A6S speak Die Gartenpumpe läuft seit vier Stunden und wird jetzt abgeschaltet; set teleBot message Die Gartenpumpe läuft schon seit vier Stunden und wird jetzt abgeschaltet
# FUUID 66433807-f33f-a79d-095f-ada76a4d60ac13e5
# NAME PumpeAN4Std
# NOTIFYDEV HUEDevice37,PumpeAN4Std
# NR 657
# NTFY_ORDER 50-PumpeAN4Std
# RE1 HUEDevice37:on.*
# RE2 HUEDevice37:on.*
# STATE triggered
# TO 14400
# TYPE watchdog
# eventCount 5
# READINGS:
# 2024-05-14 12:20:47 Activated activated
# 2024-05-14 16:20:47 Triggered triggered
# 2024-05-14 12:13:54 state defined
# 2024-05-14 12:20:47 triggeredByDev HUEDevice37
# 2024-05-14 12:20:47 triggeredByEvent onoff: 0
# hmccu:
#
setstate PumpeAN4Std triggered
setstate PumpeAN4Std 2024-05-14 12:20:47 Activated activated
setstate PumpeAN4Std 2024-05-14 16:20:47 Triggered triggered
setstate PumpeAN4Std 2024-05-14 12:13:54 state defined
setstate PumpeAN4Std 2024-05-14 12:20:47 triggeredByDev HUEDevice37
setstate PumpeAN4Std 2024-05-14 12:20:47 triggeredByEvent onoff: 0
[/code]
triggeredByEvent onoff: 0
Das Ding wird offenbar ausgelöst, wenn on oder off kommt - zumindest passt die regex Deines watchdog auf beide Fälle.
Hm, danke!
Hast Du eine Idee, wie man die Reaktion auf das ON beschränken kann?
LG
Ich probiere es jetzt einmal so:
defmod PumpeAN4Std watchdog HUEDevice37:on.* 04:00:00 HUEDevice37:off.* set Sonos_Wohnzimmer Speak 30 ....
Dies ähnelt jedenfalls dem Beispiel im Wiki mehr ;-)
Es kommt doch darauf an, welche events Dein HUEdevice überhaupt liefert.
Es liefert ON und OFF.
STATE steht zwar auf unreachable, aber das Device ist sehr wohl erreichbar, über App und über FHEM.
Hier das Listing:
[code]define HUEDevice37 HUEDevice 37 IODev=Hue
attr HUEDevice37 userattr Group Group_map room_map structexclude
attr HUEDevice37 IODev Hue
attr HUEDevice37 alias Gartenpumpe
attr HUEDevice37 color-icons 2
attr HUEDevice37 devStateIcon {(HUEDevice_devStateIcon($name),"toggle")}
attr HUEDevice37 event-on-change-reading .*
attr HUEDevice37 group HUEDevice
attr HUEDevice37 model Plug 01
attr HUEDevice37 room Bewässerung,HUEDevice
attr HUEDevice37 subType switch
attr HUEDevice37 webCmd toggle:on:off
# DEF 37 IODev=Hue
# FUUID 64a53b3d-f33f-8a5f-3c38-3d01da3f28ea8a8b
# FVERSION 31_HUEDevice.pm:0.282220/2023-11-28
# ID 37
# INTERVAL
# IODev Hue
# NAME HUEDevice37
# NR 509
# STATE unreachable
# TYPE HUEDevice
# desired 0
# eventCount 22
# has_events 1
# manufacturername OSRAM
# modelid Plug 01
# name Gartenpumpe
# productname On/Off plug
# swversion V1.04.12
# type On/Off plug-in unit
# uniqueid 84:18:26:00:00:10:37:af-03
# v2_id a1ebe8af-5b94-4a8d-a0b7-19e6944d2451
# READINGS:
# 2024-05-11 08:03:37 IODev Hue
# 2024-05-11 08:03:40 alert select
# 2024-05-14 18:58:16 onoff 0
# 2024-05-14 18:58:16 pct 0
# 2024-05-11 08:03:40 reachable 0
# 2024-03-27 14:34:55 state unreachable
# helper:
# alert select
# battery -1
# bri -1
# colormode
# ct -1
# devtype
# dynamics_status
# effect
# hue -1
# lastseen
# mode
# on 0
# pct 0
# reachable 0
# rgb
# sat -1
# update_timeout 1
# v2effect
# xy
# capabilities:
# control:
# streaming:
# json:
# manufacturername OSRAM
# modelid Plug 01
# name Gartenpumpe
# productname On/Off plug
# swversion V1.04.12
# type On/Off plug-in unit
# uniqueid 84:18:26:00:00:10:37:af-03
# capabilities:
# control:
# streaming:
# config:
# archetype ceilingtube
# direction omnidirectional
# function functional
# state:
# alert select
# mode homeautomation
# swupdate:
# lastinstall 2023-07-03T10:20:14
# state notupdatable
#
setstate HUEDevice37 unreachable
setstate HUEDevice37 2024-05-11 08:03:37 IODev Hue
setstate HUEDevice37 2024-05-11 08:03:40 alert select
setstate HUEDevice37 2024-05-14 18:58:16 onoff 0
setstate HUEDevice37 2024-05-14 18:58:16 pct 0
setstate HUEDevice37 2024-05-11 08:03:40 reachable 0
setstate HUEDevice37 2024-03-27 14:34:55 state unreachable
[/code]
Es funktioniert jetzt übrigens. Vielen Dank für den Tipp!
Hi,
Das Reading heißt onoff. Und hat wohl den Wert 0 oder 1?
Nein, das verantwortliche reading heißt "state" und wird deshalb im watchdog nicht als reading angegeben. Es taucht nämlich im event nicht auf.
Zitat von: betateilchen am 14 Mai 2024, 19:38:58Nein, das verantwortliche reading heißt "state" und wird deshalb im watchdog nicht als reading angegeben. Es taucht nämlich im event nicht auf.
Ahh. Okay. Das heißt kurzzeitig stand im state mal "onoff: 0".
Wegen dem triggeredby...?
nein.
das triggerdby entstand deshalb, weil im watchdog als regex angegeben war:
HUEDevice37:on.*
und das reagiert sowohl auf state mit jedem Wert, der mit 'on' beginnt, als auch auf jeden beliebigen Wert eines readings,
dessen Namen mit 'on' beginnt.
also triggerten beispielsweise folgende reading/value Kombinationen:
- state = on
- onoff = 0
- onoff = 1
- onoff = 3498
- onoff = günther
Ahh.
Danke für die Erklärung.