[G E L Ö S T] HM Tasterschnittstelle soll HM Lampe schalten - tut sie aber nicht

Begonnen von kblc, 01 November 2017, 14:55:02

Vorheriges Thema - Nächstes Thema

kblc

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
SPS, Arduino, Controllino, Sensortechnik, Elektronik

marvin78

Was sagt denn das Log? Schaltet die Lampe ohne das notify? Hast du das Event geprüft (Event-Monitor)?

kblc

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
SPS, Arduino, Controllino, Sensortechnik, Elektronik

marvin78

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.

kblc

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
SPS, Arduino, Controllino, Sensortechnik, Elektronik

Pfriemler

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?
"Änd're nie in fhem.cfg, denn das tut hier allen weh!" *** Wheezy@Raspi(3), HMWLAN+HMUART, CUL868(SlowRF) für FHT+KS+FS20, miniCUL433, Rademacher DuoFern *** "... kaum macht man es richtig, funktioniert es ..."

kblc

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
SPS, Arduino, Controllino, Sensortechnik, Elektronik

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
SPS, Arduino, Controllino, Sensortechnik, Elektronik