Ist das schlimm, wenn ich schon wieder etwas frage?
Ich möchte meine HM-PBI-4-FM Funk-Tasterschnittstelle 4fach dazu verwenden, ein Licht zu schalten. Leider bekomme ich das nicht hin.
List der Lampe:
Internals:
DEF 1B3694
IODev myHmUART
LASTInputDev myHmUART
MSGCNT 1
NAME HM_1B3694
NOTIFYDEV global
NR 699
STATE off
TYPE CUL_HM
lastMsg No:70 - t:10 s:1B3694 d:576576 060100003C
myHmUART_MSGCNT 1
myHmUART_RAWMSG 0501003470A4101B3694576576060100003C
myHmUART_RSSI -52
myHmUART_TIME 2017-11-01 14:48:05
protLastRcv 2017-11-01 14:48:05
protSnd 2 last_at:2017-11-01 14:48:05
protState CMDs_done
rssi_at_myHmUART max:-52 cnt:1 avg:-52 min:-52 lst:-52
rssi_myHmUART avg:-60 min:-60 lst:-60 cnt:1 max:-60
READINGS:
2017-11-01 14:27:43 CommandAccepted yes
2017-11-01 14:04:05 D-firmware 1.9
2017-11-01 14:04:05 D-serialNr JEQ0147350
2017-11-01 14:04:08 PairedTo 0x576576
2017-11-01 14:03:40 R-pairCentral 0x576576
2017-11-01 14:03:41 R-sign off
2017-11-01 14:04:08 RegL_00. 02:01 03:00 04:00 05:00 06:00 07:00 08:00 09:00 0A:57 0B:65 0C:76 00:00
2017-11-01 14:04:09 RegL_01. 08:00 00:00
2017-11-01 14:48:05 deviceMsg off (to VCCU)
2017-11-01 14:48:05 level 0
2017-11-01 14:48:05 pct 0
2017-11-01 14:03:13 powerOn 2017-11-01 14:03:13
2017-11-01 14:48:05 recentStateType info
2017-11-01 14:48:05 state off
2017-11-01 14:48:05 timedOn off
helper:
HM_CMDNR 112
cSnd ,015765761B3694010E
mId 0004
rxType 1
supp_Pair_Rep 0
expert:
def 1
det 0
raw 1
tpl 0
io:
newChn +1B3694,00,00,00
nextSend 1509544085.96619
rxt 0
vccu VCCU
p:
1B3694
00
00
00
prefIO:
myHmUART
mRssi:
mNo 70
io:
myHmUART -50
prt:
bErr 0
sProc 0
rspWait:
q:
qReqConf
qReqStat
role:
chn 1
dev 1
prs 1
rpt:
IO myHmUART
flg A
ts 1509544085.67188
ack:
HASH(0x49d4368)
7080025765761B369400
rssi:
at_myHmUART:
avg -52
cnt 1
lst -52
max -52
min -52
myHmUART:
avg -60
cnt 1
lst -60
max -60
min -60
tmpl:
Attributes:
IODev myHmUART
IOgrp VCCU:myHmUART
alias Wohnzimmereinbaulampe
autoReadReg 4_reqStatus
expert 2_raw
firmware 1.9
model HM-LC-SW1-FM
peerIDs 00000000,
room CUL_HM,Homematic
serialNr JEQ0147350
subType switch
webCmd statusRequest:toggle:on:off
List des Tasters:
Internals:
DEF 1CDA3D01
NAME HM_1CDA3D_Btn_01
NOTIFYDEV global
NR 660
STATE Short 1_13 (to HM_1B3694)
TYPE CUL_HM
chanNo 01
device HM_1CDA3D
READINGS:
2017-11-01 14:48:19 state Short 1_13 (to HM_1B3694)
2017-11-01 14:48:19 trigger Short_13
2017-11-01 12:49:48 triggerTo_1B3694 Short_7
2017-11-01 14:48:19 triggerTo_HM_1B3694 Short_13
2017-11-01 14:48:19 trigger_cnt 13
helper:
BNO 13
BNOCNT 1
expert:
def 1
det 0
raw 1
tpl 0
role:
chn 1
tmpl:
Attributes:
alias Taster_Wohnzimmerschraege
model HM-PBI-4-FM
peerIDs
room Homematic
Folgenden Code habe ich schon mal, doch da tut sich nix:
define WohnzimmereinbauNotify notify HM_1CDA3D_Btn_01.* { if ( "HM_1B3694" eq "off") {fhem("set HM_1B3694 on")} else ("set HM_1B3694 off")}
Kann mir bitte jemand da noch weiterhelfen, nach den Feiertagen werde ich auch ruhiger und werde nicht mehr so viel an meinem FHEM basteln :)
Dankeschön
KBLc
Was sagt denn das Log? Schaltet die Lampe ohne das notify? Hast du das Event geprüft (Event-Monitor)?
Das Log sagt:
2017.11.01 14:48:19 1: ERROR evaluating my $NAME='HM_1CDA3D_Btn_01';my $TYPE='CUL_HM';my $EVTPART1='1_13';my $EVTPART0='Short';my $EVENT='Short 1_13 (to HM_1B3694)';my $EVTPART2='(to';my $SELF='WohnzimmereinbauNotify';my $EVTPART3='HM_1B3694)';{ if ( "HM_1B3694" eq "off") {fhem("set HM_1B3694 on")} else ("set HM_1B3694 off")}: syntax error at (eval 22354) line 1, near "else ("
2017.11.01 14:48:19 3: WohnzimmereinbauNotify return value: syntax error at (eval 22354) line 1, near "else ("
2017.11.01 14:48:19 1: ERROR evaluating my $EVENT='trigger: Short_13';my $TYPE='CUL_HM';my $NAME='HM_1CDA3D_Btn_01';my $SELF='WohnzimmereinbauNotify';my $EVTPART1='Short_13';my $EVTPART0='trigger:';{ if ( "HM_1B3694" eq "off") {fhem("set HM_1B3694 on")} else ("set HM_1B3694 off")}: syntax error at (eval 22355) line 1, near "else ("
2017.11.01 14:48:19 3: WohnzimmereinbauNotify return value: syntax error at (eval 22355) line 1, near "else ("
2017.11.01 14:48:19 1: ERROR evaluating my $EVTPART1='Short_13';my $EVTPART0='triggerTo_HM_1B3694:';my $SELF='WohnzimmereinbauNotify';my $EVENT='triggerTo_HM_1B3694: Short_13';my $NAME='HM_1CDA3D_Btn_01';my $TYPE='CUL_HM';{ if ( "HM_1B3694" eq "off") {fhem("set HM_1B3694 on")} else ("set HM_1B3694 off")}: syntax error at (eval 22356) line 1, near "else ("
2017.11.01 14:48:19 3: WohnzimmereinbauNotify return value: syntax error at (eval 22356) line 1, near "else ("
2017.11.01 14:48:19 1: ERROR evaluating my $EVTPART1='13';my $SELF='WohnzimmereinbauNotify';my $EVTPART0='trigger_cnt:';my $TYPE='CUL_HM';my $NAME='HM_1CDA3D_Btn_01';my $EVENT='trigger_cnt: 13';{ if ( "HM_1B3694" eq "off") {fhem("set HM_1B3694 on")} else ("set HM_1B3694 off")}: syntax error at (eval 22357) line 1, near "else ("
2017.11.01 14:48:19 3: WohnzimmereinbauNotify return value: syntax error at (eval 22357) line 1, near "else ("
Ja die Lampe schaltet ohne Notify.
Ja ich habe das Event im Event-Monitor verfolgen wollen, aber da war nichts, nur
2017-11-01 15:07:03 CUL_HM HM_1CDA3D battery: low
2017-11-01 15:07:03 CUL_HM HM_1CDA3D HM_1CDA3D_Btn_01 Short
2017-11-01 15:07:03 CUL_HM HM_1CDA3D_Btn_01 Short 1_14 (to HM_1B3694)
2017-11-01 15:07:03 CUL_HM HM_1CDA3D_Btn_01 trigger: Short_14
2017-11-01 15:07:03 CUL_HM HM_1CDA3D_Btn_01 triggerTo_HM_1B3694: Short_14
2017-11-01 15:07:03 CUL_HM HM_1CDA3D_Btn_01 trigger_cnt: 14
Danke für die schnelle Antwort.
KBLc
Aha. Also. Im Log steht doch dein Fehler:
ZitatWohnzimmereinbauNotify return value: syntax error at (eval 22354) line 1, near "else ("
Ein wenig Perl lernen also.
Du hast aber noch ein anderen Problem. Dein notify triggert auf jedes der gelisteten Events. Du solltest schon auf eines einschränken (bspw. trigger).
HM_1CDA3D_Btn_01.*trigger.* set HM_1B3694:FILTER=STATE!=on on;set HM_1B3694:FILTER=STATE!=off off
Code ist für's DEF.
attr ... event-on-change-reading trigger
wäre sicher in dem Fall auch noch hilfreich.
OK, danke.
Ja ich stehe noch am Anfang. Daher auch viel Unwissenheit. Aber ich will es auch lernen. Danke für die Hilfe.
Ic habe mir den Code angesehen und mich auch etwas mit dem CommandRef eingelesen. Leider funktioniert irgendwas nicht. Denn wenn ich den Taster drücke, geht das Licht an gleich drauf wieder aus, dann wieder an und wieder aus.
Hier mal ein Auszug aus dem EventMonitor:
2017-11-01 23:30:32 CUL_HM HM_1CDA3D battery: low
2017-11-01 23:30:32 CUL_HM HM_1CDA3D HM_1CDA3D_Btn_01 Short
2017-11-01 23:30:32 CUL_HM HM_1B3694 set_on
2017-11-01 23:30:32 CUL_HM HM_1B3694 set_off
2017-11-01 23:30:32 CUL_HM HM_1CDA3D_Btn_01 trigger: Short_35
2017-11-01 23:30:32 CUL_HM HM_1B3694 deviceMsg: on (to VCCU)
2017-11-01 23:30:32 CUL_HM HM_1B3694 level: 100
2017-11-01 23:30:32 CUL_HM HM_1B3694 pct: 100
2017-11-01 23:30:32 CUL_HM HM_1B3694 on
2017-11-01 23:30:32 CUL_HM HM_1B3694 timedOn: off
2017-11-01 23:30:32 at Time_Update Next: 23:30:42
2017-11-01 23:30:32 CUL_HM HM_1B3694 deviceMsg: off (to VCCU)
2017-11-01 23:30:32 CUL_HM HM_1B3694 level: 0
2017-11-01 23:30:32 CUL_HM HM_1B3694 pct: 0
2017-11-01 23:30:32 CUL_HM HM_1B3694 off
2017-11-01 23:30:32 CUL_HM HM_1B3694 timedOn: off
2017-11-01 23:30:33 CUL_HM HM_1B3694 deviceMsg: off (to VCCU)
2017-11-01 23:30:33 CUL_HM HM_1B3694 level: 0
2017-11-01 23:30:33 CUL_HM HM_1B3694 pct: 0
2017-11-01 23:30:33 CUL_HM HM_1B3694 off
2017-11-01 23:30:33 CUL_HM HM_1B3694 timedOn: off
Was mache ich falsch? Sind die Sendebefehle zu viele? Oder was kann der Fehler sein und wie kann ich diesen umgehen.
Danke
KBLc
Ne. Die Einschränkung auf "trigger" lässt noch drei Events durch, die den Aktor toggeln. Wenn, dann auf "Short" triggern. Ob nun zwei Sets abgesetzt werden, deren Ausführung vom Zustand des Aktors abhängt, oder der Zustand abgefragt wird und davon abhängig geschaltet, ist dann Jacke.
Aber wieso den Zustand des Aktors abfragen? HM kann toggle.
HM_1CDA3D_Btn_01.Short.* set HM_1B3694 toggle
Oder warum nicht gleich die Taste mit dem Aktor direktverknüpfen und an FHEM vorbei schalten lassen?
Zitat von: Pfriemler am 02 November 2017, 13:06:42
Oder warum nicht gleich die Taste mit dem Aktor direktverknüpfen und an FHEM vorbei schalten lassen?
Ja, ich habe mich da jetzt eingelesen. Ich habe das peeren nun auch verstanden. Vielen Dank. Das habe ich nun auch umgesetzt. Aber ich werde mir dennoch den Code genauer anschauen, denn ich will ja nicht nur mein Projekt umsetzen, sondern auch das ganze verstehen und verinnerlichen. Daher,
Vielen Dank.
KBLc
Also:
Vielen Dank nochmal, es hat alles so funktioniert, wie ich wollte. Das ist manchmal so einfach, aber man versteht es nicht auf anhieb. Danke für den Anstoß.
Liebe Grüße
KBLc