FHEM Forum

FHEM - Hausautomations-Systeme => Homematic => Thema gestartet von: marc2 am 22 Juni 2014, 14:42:03

Titel: Dual/Reverse Peering Problem mit virtuellem Aktor
Beitrag von: marc2 am 22 Juni 2014, 14:42:03
Hi !

Um meine Rauchmelder per Fernbedienung (HM-RC-Key3-B) steuern zu können (Alarm on/off + TeamCall),
habe ich mir einen virtuellen Aktor mit zwei Channels angelegt.

Internals:
   CFGFN     
   DEF        234567
   HMLAN1_MSGCNT 7
   HMLAN1_RAWMSG E234567,0000,063098C3,FF,FFBB,2380022345671D3BBF01010000
   HMLAN1_RSSI -69
   HMLAN1_TIME 2014-06-22 14:11:35
   IODev      HMUSB1
   LASTInputDev HMLAN1
   MSGCNT     7
   NAME       VA_Rauchmelder
   NR         3412
   STATE      CMDs_done
   TYPE       CUL_HM
   channel_01 Rauchmelder_Aktor_OnOff
   channel_02 Rauchmelder_Aktor_TeamCall
   lastMsg    No:23 - t:02 s:234567 d:1D3BBF 01010000
   protLastRcv 2014-06-22 14:11:35
   protSnd    7 last_at:2014-06-22 14:11:35
   protState  CMDs_done
   rssi_at_HMLAN1 avg:-69 min:-70 max:-68 lst:-69 cnt:7
   CHANGETIME:
   Helper:
     Dblog:
       State:
         Mydblog:
           TIME       1403439095.27783
           VALUE      CMDs_done
   Readings:
     2014-06-22 14:11:35   state           CMDs_done
   Helper:
     Io:
       newChn     +234567,00,01,00
       nextSend   1403439049.61109
       rxt        0
       p:
         234567
         00
         01
         00
     Mrssi:
       mNo        23
       Io:
         HMLAN1     -69
     Prt:
       bErr       0
       sProc      0
       Rspwait:
     Q:
       qReqConf   
       qReqStat   
     Role:
       dev        1
     Rssi:
       At_hmlan1:
         avg        -69
         cnt        7
         lst        -69
         max        -68
         min        -70
     Shadowreg:
Attributes:
   IODev      HMUSB1
   autoReadReg 4_reqStatus
   expert     2_full
   model      virtual_2
   subType    virtual


Die ersten beiden Tasten der FB will ich im Modus Reverse mit dem ersten Channel des virtuellen Aktors peeren. Dies schlägt allerdings fehl:

set FB_Rauchmelder peerChan 1 Rauchmelder_Aktor_OnOff reverse set
Unknown argument peerChan, choose one of clear:readings,register,rssi,msgEvents getConfig getRegRaw pair raw regBulk regSet reset unpair


Erst einmal funktionieren tut folgendes:
set FB_Rauchmelder_Btn_01  peerChan 0 Rauchmelder_Aktor_OnOff reverse set

Allerdings zieht das "reverse" an dieser Stelle nicht, sondern scheint implizit durch eine single ersetzt zu werden, sprich
Btn_01 ist im Toggle-Modus, Btn02 ist ungenutzt.

Hat jemand eine Idee, was an dem ersten Kommando falsch ist ? Ich bin mir recht sicher, dass das vor ca. einem Jahr mit  zwei anderen
FB, über die ich meine Markisen und die Bewässerung steuere, funktioniert hat  :-[

Gruß, Marc
Titel: Antw:Dual/Reverse Peering Problem
Beitrag von: marc2 am 22 Juni 2014, 22:26:45
Hi !

Ich habe die zweite peerID von Hand in den VA eingetragen (das Peering der FB-Channels sah korrekt aus, nur das Peering des VA nicht).
Jetzt werden zwar bei Tasten der FB ausgewertet , aber beide Tasten stehen führen zum Toggeln des VA.  ???

Internals:
   CFGFN     
   DEF        1D3BBF01
   NAME       FB_Rauchmelder_Btn_01
   NR         3647
   STATE      Short (to VA_Rauchmelder)
   TYPE       CUL_HM
   chanNo     01
   device     FB_Rauchmelder
   peerList   VA_Rauchmelder_Alarm,
   CHANGETIME:
   Helper:
     Dblog:
       R-rauchmelder_aktor_onoff-expectaes:
         Mydblog:
           TIME       1403466548.88173
           VALUE      off
       R-rauchmelder_aktor_onoff-peerneedsburst:
         Mydblog:
           TIME       1403466548.88173
           VALUE      off
       R-va_rauchmelder_alarm-expectaes:
         Mydblog:
           TIME       1403467694.18099
           VALUE      off
       R-va_rauchmelder_alarm-peerneedsburst:
         Mydblog:
           TIME       1403467694.18099
           VALUE      off
       R-sign:
         Mydblog:
           TIME       1403439834.11062
           VALUE      off
       State:
         Mydblog:
           TIME       1403468350.29187
           VALUE      Short (to VA_Rauchmelder)
       Trigger:
         Mydblog:
           TIME       1403468350.29187
           VALUE      Short_43
   Readings:
     2014-06-22 22:08:14   R-VA_Rauchmelder_Alarm-expectAES off
     2014-06-22 22:08:14   R-VA_Rauchmelder_Alarm-peerNeedsBurst off
     2014-06-22 14:23:54   R-dblPress      0 s
     2014-06-22 14:23:54   R-longPress     0.4 s
     2014-06-22 14:23:54   R-sign          off
     2014-06-22 22:23:26   RegL_01:          04:10 08:00 09:00 00:00
     2014-06-22 22:23:29   RegL_04:VA_Rauchmelder_Alarm   01:00 00:00
     2014-06-22 22:23:26   peerList        VA_Rauchmelder_Alarm,
     2014-06-22 22:19:10   state           Short (to VA_Rauchmelder)
     2014-06-22 22:19:10   trigger         Short_43
   Helper:
     peerIDsRaw ,23456701,00000000
     Role:
       chn        1
     Shadowreg:
Attributes:
   model      HM-RC-KEY3-B
   peerIDs    00000000,23456701,
   room       Fernbedienungen
   subType    remote


Internals:
   CFGFN     
   DEF        1D3BBF02
   NAME       FB_Rauchmelder_Btn_02
   NR         3648
   STATE      Short (to VA_Rauchmelder)
   TYPE       CUL_HM
   chanNo     02
   device     FB_Rauchmelder
   peerList   VA_Rauchmelder_Alarm,
   CHANGETIME:
   Helper:
     Dblog:
       R-rauchmelder_aktor_onoff-expectaes:
         Mydblog:
           TIME       1403458749.71176
           VALUE      off
       R-rauchmelder_aktor_onoff-peerneedsburst:
         Mydblog:
           TIME       1403458749.71176
           VALUE      off
       R-sign:
         Mydblog:
           TIME       1403439835.14951
           VALUE      off
       State:
         Mydblog:
           TIME       1403468364.28414
           VALUE      Short (to VA_Rauchmelder)
       Trigger:
         Mydblog:
           TIME       1403468364.28414
           VALUE      Short_29
   Readings:
     2014-06-22 19:39:09   R-VA_Rauchmelder_Alarm-expectAES off
     2014-06-22 19:39:09   R-VA_Rauchmelder_Alarm-peerNeedsBurst off
     2014-06-22 14:23:55   R-dblPress      0 s
     2014-06-22 14:23:55   R-longPress     0.4 s
     2014-06-22 14:23:55   R-sign          off
     2014-06-22 22:23:27   RegL_01:          04:10 08:00 09:00 00:00
     2014-06-22 22:23:29   RegL_04:VA_Rauchmelder_Alarm   01:00 00:00
     2014-06-22 22:23:27   peerList        VA_Rauchmelder_Alarm,
     2014-06-22 22:19:24   state           Short (to VA_Rauchmelder)
     2014-06-22 22:19:24   trigger         Short_29
   Helper:
     peerIDsRaw ,23456701,00000000
     Role:
       chn        1
     Shadowreg:
Attributes:
   model      HM-RC-KEY3-B
   peerIDs    00000000,23456701,
   room       Fernbedienungen
   subType    remote


Internals:
   CFGFN     
   DEF        23456701
   NAME       VA_Rauchmelder_Alarm
   NR         3413
   STATE      OFF
   TYPE       CUL_HM
   chanNo     01
   device     VA_Rauchmelder
   peerList   FB_Rauchmelder_Btn_01,FB_Rauchmelder_Btn_02,
   CHANGETIME:
   Helper:
     Dblog:
       State:
         Mydblog:
           TIME       1403468364.45616
           VALUE      OFF
       Triglast:
         Mydblog:
           TIME       1403468350.5309
           VALUE      FB_Rauchmelder_Btn_01 :short
       Trig_fb_rauchmelder_alarmoff:
         Mydblog:
           TIME       1403439095.33188
           VALUE      short
       Trig_fb_rauchmelder_alarmon:
         Mydblog:
           TIME       1403439112.1125
           VALUE      short
       Trig_fb_rauchmelder_btn_01:
         Mydblog:
           TIME       1403468350.5309
           VALUE      short
       Trig_fb_rauchmelder_btn_02:
         Mydblog:
           TIME       1403467404.38809
           VALUE      short
       Virtactstate:
         Mydblog:
           TIME       1403468364.45616
           VALUE      OFF
       Virtacttrigno:
         Mydblog:
           TIME       1403468364.45616
           VALUE      29
       Virtacttrigrpt:
         Mydblog:
           TIME       1403468364.45616
           VALUE      1
       Virtacttrigtype:
         Mydblog:
           TIME       1403468364.45616
           VALUE      short_Release
       Virtacttrigger:
         Mydblog:
           TIME       1403468364.45616
           VALUE      FB_Rauchmelder_Btn_02
   Readings:
     2014-06-22 22:19:24   CommandAccepted yes
     2014-06-22 22:19:24   recentStateType ack
     2014-06-22 22:19:24   state           OFF
     2014-06-22 22:19:10   trigLast        FB_Rauchmelder_Btn_01 :short
     2014-06-22 22:19:10   trig_FB_Rauchmelder_Btn_01 short
     2014-06-22 22:19:24   virtActState    OFF
     2014-06-22 22:19:24   virtActTrigNo   29
     2014-06-22 22:19:24   virtActTrigRpt  1
     2014-06-22 22:19:24   virtActTrigType short_Release
     2014-06-22 22:19:24   virtActTrigger  FB_Rauchmelder_Btn_02
   Helper:
     trgLgRpt   0
     Role:
       chn        1
       vrt        1
     Shadowreg:
Attributes:
   model      virtual_2
   peerIDs    1D3BBF01,1D3BBF02
   webCmd     press short:press long



Gruß, Marc
Titel: Antw:Dual/Reverse Peering Problem mit virtuellem Aktor
Beitrag von: martinp876 am 23 Juni 2014, 07:12:44
ein SD kann nur mit einem Channel gepeert werden. Den 2. verweigert er.
Warum brauchst du 2? Du kannst von einem Channel beide Kommandos auslösen
Titel: Antw:Dual/Reverse Peering Problem mit virtuellem Aktor
Beitrag von: marc2 am 23 Juni 2014, 09:11:59
Hallo Martin,

der SD ist derzeit komplett aussen vor. Ich peere eine Fernbedienung mit einem virtuellen Aktor (VA). Die ersten
beiden Buttens der FB sollen den ersten Channel des VA ein- bzw. ausschalten. Das klappt leider nicht. Das Peering der
FB Buttons ist korrekt, auf der VA Seite musste ich den zweiten Button aber manuell hinzufügen (peerIDs), da nur der erste eingetragen wurde. Leider reagiert der Channel des VA auf beide Buttons mit Toggeln. D.h. der VA hat das "reverse" beim Peering ignoriert bzw. scheint implizit eine "single" daraus gemacht zu haben.

Gruß, Marc
Titel: Antw:Dual/Reverse Peering Problem mit virtuellem Aktor
Beitrag von: martinp876 am 23 Juni 2014, 11:03:12
Zitatder SD ist derzeit komplett aussen vorIch peere eine Fernbedienung mit einem virtuellen Aktor (VA)
ok
ZitatDie ersten beiden Buttens der FB sollen den ersten Channel des VA ein- bzw. ausschalten.
ein VA ist in erster Linie ein Empfänger - ohne wirkliches eigenleben. Im Gegensatz zu realen Aktoren hat er keine statemachine und implementiert kein Programm. Damit klappt das ein/ausschalten auch nicht, wie du es willst.
Ich wollte hier keinen komplexen Aktor einbauen - der eigentliche sinn ist, überhaupt einen Empfänger für eine remote erzeugen zu können.
Zitatauf der VA Seite musste ich den zweiten Button aber manuell hinzufügen (peerIDs),
hm - ja, werde ich einmal verbessern.
ZitatLeider reagiert der Channel des VA auf beide Buttons mit Toggeln. D.h. der VA hat das "reverse" beim Peering ignoriert bzw. scheint implizit eine "single" daraus gemacht zu haben.
das hat einige interne und historische Gründe - auch wie oben beschrieben.

Was soll der VA den eigentlich leisten? Dann kann ich einmal prüfen, ob man ihn aufbohren sollte. Wenn du auf den VA nur ein notify setzen willst, kannst du das schon jetzt. Wo liegt also die Herausvorderung?

Schliesslich ist der VA nie "on" oder "off", er zeigt nur einen Zustand an. Und eine Implementierung, die einem realen switch auch nur nahe kommt habe ich nicht in der Planung.
Titel: Antw:Dual/Reverse Peering Problem mit virtuellem Aktor
Beitrag von: marc2 am 23 Juni 2014, 12:01:52
Hallo Martin !

Zitatein VA ist in erster Linie ein Empfänger - ohne wirkliches eigenleben. Im Gegensatz zu realen Aktoren hat er keine statemachine und implementiert kein Programm. Damit klappt das ein/ausschalten auch nicht, wie du es willst.

Hatte ich mir fast gedacht. Ist aber kein Problem. Ich werde einfach einen weiteren Channel definieren und das Notify
anpassen.

Ziel ist letztendlich über ein Notify für den VA den SD Teamlead zu steuern (alarm on/off + teamCall), oder wäre ein direktes
Peeren der FB mit dem SD Teamlead möglich um die gewünschte Funktionalität zu erreichen ? Ich hatte hier erst einmal
keine andere Möglickeit gesehen, als der Umweg über VA und Notify.

Gruß, Marc
Titel: Antw:Dual/Reverse Peering Problem mit virtuellem Aktor
Beitrag von: martinp876 am 23 Juni 2014, 20:28:21
direktes peering ist nicht möglich - das ist zu speziell. Weder beim realen noch virtuellen Aktor.
Mache es doch gleich am Button fest.

define nfTcall notify fb_Btn1:.*short set sdTeam teamCall
define nfAlmOn notify fb_Btn2:.*short set sdTeam alarmOn
define nfAlmOff notify fb_Btn3:.*short set sdTeam alarmOff


untested - tipfehler möglich!
Titel: Antw:Dual/Reverse Peering Problem mit virtuellem Aktor
Beitrag von: marc2 am 23 Juni 2014, 22:53:51
Hmm, würde funktionieren. Aber ohne einen echten Peer auf der Gegenseite würde die FB nie ein ACK beim
Drücken einer Taste bekommen und die LED zeigt Gelb statt grün. Daher doch lieber der VA  :)

Gruß, Marc
Titel: Antw:Dual/Reverse Peering Problem mit virtuellem Aktor
Beitrag von: martinp876 am 24 Juni 2014, 07:28:41
du kannst doch immer noch peeren - das ändert nichts am Notify