Guten Morgen,
ich habe einen HM-LC-Sw1PBU-FM Aktor für meine Aussenbeleuchtung.
Mit einem notify bekomme ich eine Meldung geschickt wenn die Beleuchtung ausgeschaltet wird und mit einem anderen wenn er eingeschaltet wird
Das funktioniert auch, jetzt kommt diese Meldung auch wenn die Lampen aus sind und sie nochmal ausgeschaltet werden oder wenn sie eingeschaltet ist und nochmal eingeschaltet wird.
Ich habe es jetzt beim Aktor ein event-on-change-reading state eingerichtet.
Damit sollten die notify doch nur ausgeführt werden wenn sich der state ändert oder habe ich einen Denkfehler?
Vielen Dank
Markus
Das kommt stark darauf an, wie du dein notify definiert hast und ob es noch andere Events gibt (event-on-update-reading). Bitte IMMER ein list von den beteiligten Devices beifügen. Angepinnte Beiträge lesen!
Ok hier list von dem Schalter:
Internals:
DEF 1BD7BA
HMLAN1_MSGCNT 40
HMLAN1_RAWMSG R87C52092,0001,6978B2A2,FF,FFAE,2780021BD7BA272E87010100004D
HMLAN1_RSSI -82
HMLAN1_TIME 2017-01-10 10:46:00
IODev HMLAN1
LASTInputDev HMLAN1
MSGCNT 40
NAME AK_Haustuerbeleuchtung
NOTIFYDEV global
NR 87
NTFY_ORDER 50-AK_Haustuerbeleuchtung
STATE off
TYPE CUL_HM
lastMsg No:27 - t:02 s:1BD7BA d:272E87 010100004D
peerList self01,self02,
protLastRcv 2017-01-10 10:46:00
protResnd 1 last_at:2017-01-09 22:02:02
protSnd 39 last_at:2017-01-10 10:45:59
protState CMDs_done
rssi_HMLAN1 avg:-76.53 min:-79 max:-75 lst:-77 cnt:39
rssi_at_HMLAN1 avg:-81.42 min:-83 max:-80 lst:-82 cnt:40
Readings:
2017-01-10 10:46:00 CommandAccepted yes
2015-08-18 22:46:58 D-firmware 2.1
2015-08-18 22:46:58 D-serialNr JExxxxxx
2016-08-16 06:48:21 PairedTo 0x272E87
2015-08-18 22:47:09 R-pairCentral 0x272E87
2015-08-18 22:47:11 R-self01-lgActionType jmpToTarget
2015-08-18 22:47:11 R-self01-shActionType jmpToTarget
2015-08-18 22:47:12 R-self02-lgActionType jmpToTarget
2015-08-18 22:47:12 R-self02-shActionType jmpToTarget
2015-08-18 22:47:09 R-sign off
2016-08-16 06:48:21 RegL_00. 02:81 0A:27 0B:2E 0C:87 15:FF 00:00
2016-08-16 06:48:21 RegL_01. 00:00
2016-08-16 06:48:23 RegL_03.self01 02:00 03:00 04:32 05:64 06:00 07:FF 08:00 09:FF 0A:01 0B:64 0C:66 82:00 83:00 84:32 85:64 86:00 87:FF 88:00 89:FF 8A:21 8B:64 8C:66 00:00
2016-08-16 06:48:24 RegL_03.self02 02:00 03:00 04:32 05:64 06:00 07:FF 08:00 09:FF 0A:01 0B:13 0C:33 82:00 83:00 84:32 85:64 86:00 87:FF 88:00 89:FF 8A:21 8B:13 8C:33 00:00
2017-01-10 10:46:00 deviceMsg off (to virtualCCU)
2017-01-10 10:46:00 level 0
2017-01-10 10:46:00 pct 0
2017-01-05 10:30:32 peerList self01,self02,
2016-08-16 06:48:16 powerOn 2016-08-16 06:48:16
2017-01-10 10:46:00 recentStateType ack
2017-01-10 10:46:00 state off
2017-01-10 10:46:00 timedOn off
Helper:
HM_CMDNR 39
cSnd 11272E871BD7BA0201000000,11272E871BD7BA0201000000
dlvlCmd ++A011272E871BD7BA0201000000
mId 0069
rxType 1
Expert:
def 1
det 0
raw 1
tpl 0
Io:
newChn +1BD7BA,00,00,00
nextSend 1484041560.12405
prefIO
rxt 0
vccu
p:
1BD7BA
00
00
00
Mrssi:
mNo 27
Io:
HMLAN1 -80
Prt:
bErr 0
sProc 0
Rspwait:
Q:
qReqConf
qReqStat
Role:
chn 1
dev 1
prs 1
Rssi:
Hmlan1:
avg -76.5384615384615
cnt 39
lst -77
max -75
min -79
At_hmlan1:
avg -81.425
cnt 40
lst -82
max -80
min -83
Attributes:
IODev HMLAN1
alias Haustürbeleuchtung
autoReadReg 4_reqStatus
devStateIcon on:light_outdoor@orange:off off:light_outdoor@black:on
event-on-change-reading state
expert 2_full
firmware 2.1
fp_EG 504,407,0,
group Schalter
icon light_outdoor
model HM-LC-Sw1PBU-FM
peerIDs 00000000,1BD7BA01,1BD7BA02,
room Flur
serialNr JExxxxxxx
subType switch
userattr lightSceneParamsToSave lightSceneRestoreOnlyIfChanged:1,0 room_map structexclude
webCmd on:off
Und ein notify ( das für ein ist genauso) :
Internals:
CFGFN
DEF AK_Haustuerbeleuchtung:off set Telegram message @xxxxxxxx Beleuchtung Aus
NAME Bel_Aus
NOTIFYDEV AK_Haustuerbeleuchtung
NR 5049
NTFY_ORDER 50-Bel_Aus
REGEXP AK_Haustuerbeleuchtung:off
STATE 2017-01-10 10:46:00
TYPE notify
Readings:
2017-01-10 07:58:04 state active
Attributes:
room Flur
Ich hoffe das man das so erkennen kann.
Hast du mal in den Event-Monitor geschaut, was für Events kommen, wenn du den Schalter schaltest (in allen Fällen - Aus->An, An->An, Aus->Aus,An->Aus)?
Event Monitor:
2017-01-10 12:51:38 CUL_HM AK_Haustuerbeleuchtung set_off
2017-01-10 12:51:38 TelegramBot Telegram message @xxxxxx Beleuchtung Aus
2017-01-10 12:51:38 CUL_HM AK_Haustuerbeleuchtung off
und die Nachrichten kommen auch an, bei zweimal off hintereinander kommen zwei Nachrichten ( bei ein genauso ).
2017-01-10 15:34:32 CUL_HM AK_Haustuerbeleuchtung set_off
2017-01-10 15:34:32 TelegramBot Telegram message @xxxxxxx Beleuchtung Aus
2017-01-10 15:34:32 CUL_HM AK_Haustuerbeleuchtung off
2017-01-10 15:34:32 TelegramBot Telegram sentMsgResult: SUCCESS
2017-01-10 15:34:32 TelegramBot Telegram sentMsgId: 43
2017-01-10 15:34:32 TelegramBot Telegram sentMsgPeerId: xxxxxxx
2017-01-10 15:34:38 CUL_HM AK_Haustuerbeleuchtung set_off
2017-01-10 15:34:38 TelegramBot Telegram message @xxxxxx Beleuchtung Aus
2017-01-10 15:34:38 CUL_HM AK_Haustuerbeleuchtung off
2017-01-10 15:34:38 TelegramBot Telegram sentMsgResult: SUCCESS
2017-01-10 15:34:38 TelegramBot Telegram sentMsgId: 44
2017-01-10 15:34:38 TelegramBot Telegram sentMsgPeerId: xxxxxx
2017-01-10 15:37:25 CUL_HM AK_Haustuerbeleuchtung set_off
2017-01-10 15:37:25 TelegramBot Telegram message @xxxxxxxx Beleuchtung Aus
2017-01-10 15:37:25 CUL_HM AK_Haustuerbeleuchtung off
2017-01-10 15:37:25 TelegramBot Telegram sentMsgResult: SUCCESS
2017-01-10 15:37:25 TelegramBot Telegram sentMsgId: 45
2017-01-10 15:37:25 TelegramBot Telegram sentMsgPeerId: xxxxxxx
Nochmal dreimal hintereinander aus geschaltet und immer den gleichen Eintrag im Event Monitor.
Die drei Nachrichten sind auf dem Handy angekommen.
Wenn ich mit dem notify erst einen Dummy ein bzw aus schalte und dann auf den Dummy reagiere, dann kommt die Meldung erst beim ändern des reading state.
Kann es sein das bei einem Aktor immer state geändert wird egal ob event-on-change-reading state eingetragen wurde?
Also über den Umweg mit dem Dummy funktioniert es und damit kann ich leben, die zweite Frage ist nur zum verständnis für mich .
Danke
Es wird wohl daran liegen, dass im HM-Device immer zwischenzeitlich set_on,set_off gesetzt wird und das auch ein "change" des Readings auslöst auslöst. Ich nutze in allen Aktoren ein userReading "status" welches nur auf on oder off gesetzt wird und entsprechend dann mit event-on-change-reading auch nur ein Event auslöst.
Edit: event-min-interval könnte auch eine Lösung für das Problem sein.
Das event-on-change-reading macht genau was es soll. Einen Event auslösen bei Veränderung. Dein state Reading verändert sich ja schließlich. Von set_off auf off.
Vielleicht ein anderes Reading zum triggern wählen. pct oder so.
Edit: Marvin war schneller
wenn man die regex verbessert, kann man das set_off ja raus bekommen.
aber es ging ja darum, dass bei erneutem Schalten auch wieder ein Event kommt. Das bekommt man dann mit event-on-change-reading nicht weg... und mit anderer Regex auch nicht...
DOIF wäre eine Lösung...
define Bel_MSG DOIF
([AK_Haustuerbeleuchtung:"^on$"]) (set Telegram message @xxxxxxxx Beleuchtung An)
DOELSEIF
([AK_Haustuerbeleuchtung:"^off$"]) (set Telegram message @xxxxxxxx Beleuchtung Aus)
das ganze ohne 'do always'!
triggert nicht auf 'set_on' 'set_off' und das ganze auch nur jeweils ein mal...
Wie immer,gibt es viele Lösuingen. Wie oben gesagt, benötigt man dafür aber kein DOIF.
Vielen Dank für die Hilfe, mit den vorschlägen kann ich jetzt ein bisschen spielen. :D
Zitat von: marvin78 am 11 Januar 2017, 11:50:26
Wie immer,gibt es viele Lösuingen. Wie oben gesagt, benötigt man dafür aber kein DOIF.
na klar gibt es viele Lösungen. Und wenn es nur darum geht das beim einschalten 2 Meldungen kommen, wegen set_on und on, dann geht das ganz klar auch ohne DOIF.
Zitatjetzt kommt diese Meldung auch wenn die Lampen aus sind und sie nochmal ausgeschaltet werden oder wenn sie eingeschaltet ist und nochmal eingeschaltet wird
das hatte ich als das eigentliche Problem verstanden, das bekommt man bestimmt auch ohne DOIF in den griff - aber bestimmt nicht so easy wie mit DOIF... 8)
Wobei ich auch nicht verstehe, warum man eine Lampe die aus ist, nochmal aus schaltet... ???
Noch einen Schalter aus versehen falsch gedrückt?
Die Lampe wird per at um 22:00 Uhr ausgeschaltet und zusätzlich habe ich einen Zentralausschalter den ich drücke wenn ich ins Bett gehe. Dieser Zentralaus schaltet die Lampe auch aus, deswegen wird ausgeschaltet und nochmal ausgeschaltet.
Zitat von: automatisierer am 11 Januar 2017, 11:49:06
wenn man die regex verbessert, kann man das set_off ja raus bekommen.
da hab ich übrigens mal schwachsinn geschrieben, das notify triggert ja eh nur auf die genaue regex. also bei 'device:on' auch wirklich nur auf 'on' und nicht auf 'set_on'
wenn duu bei notify bleiben willst, dann musst du ein anderes event raussuchen, wie es CoolTux schon schrieb. eines bei dem nur on > off oder off > off kommt und nicht on > set_off > off oder on > set_on > on