PEERCHANNEL Befehl fkt. nicht mehr

Begonnen von mcfly71, 30 August 2020, 09:56:19

Vorheriges Thema - Nächstes Thema

mcfly71

Hallo Gemeinde,

ich wollte nur darauf hinweisen, das zB der Befehl
set HM_111101_Btn_01 peerChan 0 HM_111101_Sw_01 dual set

nicht mehr angenommen wird. Nach Einsicht in die 10_CUL_HM waren die Variablen irgendwie falsch zugewiesen,
sodass fhem immer mit einer Fehlermeldung hochkommt, auch wenn man zB

set HM_111101_Btn_01 peerChan 0 HM_111101_Sw_01 dual set both

schreibt. Hofft man auf die Default-Wert Zuweisung mit

set HM_111101_Btn_01 peerChan 0 HM_111101_Sw_01

tut es das auch nicht. Irgendwo ist in der 10_CUL_HM.pm ein Fehler bei der Variablenzuweisung

Bei

    my ($bNo,$peerN,$single,$set,$target) = ($a[2],$a[3],($a[4]?$a[4]:"dual"),
                                                         ($a[5]?$a[5]:"set"),
                                                         ($a[6]?$a[6]:"both"));


steht immer in $single der Wert "single" drin

VG
mcfly
- HMLAN / Raspberry auf hmmode
- Homematic

martinp876

habe einmal trocken getestet.
1)
Zitatnicht mehr angenommen wird.
- da sollte es dann eine Systemantowrt geben. Welche?

2) 
ZitatHofft man auf die Default-Wert Zuweisung
klappt bei mir

3)
Zitatsteht immer in $single der Wert "single" drin
kann ich nicht nachvollziehen.

attr hm verbCULHM allSet
schaltet das Logging aller Kommandos ein. Im Log sollte dann zu sehen sein, welches Kommando nach dem Parsen eingefügt wird.
Das Kommando ist Model-spezifisch, da nicht bei allen Models ein "dual" möglich ist.

get HM_111101_Btn_01 cmdList
get HM_111101_Btn_01 deviceInfo

würde mir infos liefern





mcfly71

#2
Servus Martin,

also, vielleicht ist der entscheidende Hinweis, dass es sich um den Alternativ Firmware Schalter handelt. die cmdList des Buttons lautet (ist jetzt alles bereits umbenannt zu LICHT_BAD.* ).
Ich hoffe das reicht für dich. Würde ungern (ich habe es jetzt per Änderung in der 10_CUL_HM.pm für einmal es hinbekommen) den Schalter wieder mit dem Single-Befehl zumüllen. Wenn es allerdings nicht reicht, dann mache ich es selbstverständlich noch.

Ich sehe allerdings, dass die KommandoSyntax für den PeerChan nur single vorsieht, aber laut Wiki, muss man dort den Befehl
dual absetzen..... -> https://wiki.fhem.de/wiki/HM-LC-Sw1PBU-FM_Alternative_Firmware



command syntax:
[optional]         : optional = the parameter is optional
(valX|valY)        : list     = one value valX or valY must be given
[(valX|{valY})]    : default  = one value valX or valY CAN be given. If non is given it defaults to valY
-peer-             : other    = the name of a peer needs to be given
[(-peer-|{self01})]: default  = a peername can be given. If emty the command will use 'self01'

Gets ------
cmdList [({short}|long)]
deviceInfo [({short}|long)]
param -param-
reg -addr- -list- [-peerChn-]
regList
regTable
regVal -addr- -list- [-peerChn-]
saveConfig [-filename-]
tplInfo

Sets ------
clear:[(readings|trigger|register|oldRegs|rssi|msgEvents|{msgErrors}|attack|all)]
getConfig:noArg
getRegRaw:(List0|List1|List2|List3|List4|List5|List6) [-peerChn-]
peerBulk:-peer1,peer2,...- [({set}|unset)]
peerChan:0 -actChn- [({single})] [({set}|unset)] [actor|remote|both]
peerSmart:-peerOpt-
regBulk:-list-.-peerChn- -addr1:data1- -addr2:data2-...
regSet:[(prep|{exec})] -regName- -value- [-peerChn-]
sign:[(on|{off})]
tplDel:-tplDel-
tplSet_0:-tplChan-
tplSet_self03:-tplPeer-
trgEventL:-peer- -condition-
trgEventS:-peer- -condition-
trgPressL:[(-peer-|{all})]
trgPressS:[(-peer-|{all})]
Options:
-condition- : 0              , 1              , 255            , slider         ,
-peer- : self03         ,
-peerOpt- : BACHLAUF       , BELEUCHTUNG_AUSSEN_VORNE, BELEUCHTUNG_GARAGE_GROSS, BELEUCHTUNG_GARAGE_KLEIN, BEWAESSERUNG_GARTEN,
          BUEGELSTECKDOSEN_WASCHKUECHE, CCU            , FREI           , GARTENSTRAHLER , GONG_LED       ,
          GONG_SOUND     , HAUPTPUMPE     , HZG_NACHTSCHALTUNG, KOLLEKTORPUMPE1, KOLLEKTORPUMPE2,
          LICHT_BAD_RELAIS, LICHT_BAD_STROM, LICHT_BAR      , LICHT_DIELE_HINTEN_RELAIS, LICHT_DIELE_HINTEN_STROM,
          LICHT_DIELE_RELAIS, LICHT_DIELE_STROM, LICHT_KUECHE_RELAIS, LICHT_KUECHE_STROM, OEFFNER_GARAGE_GROSS,
          OEFFNER_GARAGE_KLEIN, RAUCHMELDER_TEAM_1, ROLLO1_ARBEITSZIMMER2_, ROLLO1_ARBEITSZIMMER_, ROLLO1_SCHLAFZIMMER_,
          ROLLO1_WOHNZIMMER_, ROLLO2_WOHNZIMMER_, ROLLO3_WOHNZIMMER_, ROLLO4_WOHNZIMMER_, SAUNAKABINE    ,
          SONNENSCHUTZ   , WASSERHAHN_GARAGE_GROSS, WASSERHAHN_GARAGE_KLEIN, WASSERHAHN_GARTEN, WASSERZUFUHR   ,
         
-tplChan- :
-tplDel- :
-tplPeer- :




und deviceInfo ergibt:


Device name:LICHT_BAD
   org ID    :F0A9  Model=HM-LC-Sw1PBU-FM-CustomFW
   alias ID :F0A9  Model=HM-LC-Sw1PBU-FM-CustomFW
   mode    :normal
   protState : CMDs_done pending: none

   LICHT_BAD_BTN_01 state:???
   LICHT_BAD_BTN_02 state:Short 1_13 (to CCU)
   LICHT_BAD_RELAIS state:off
   LICHT_BAD_STROM state:off
configuration check: ok



VG
mcfly
- HMLAN / Raspberry auf hmmode
- Homematic

nobody0472

Hallo an alle,

wie wurde denn das Problem gelöst? Ich stehe aktuelle genau vor dem gleichen Problem.
Ebenfalls alternative Firmware für den HomeMatic Unterputz Schaltaktor.

Was muss ich in der 10_CUL_HM ändern, damit es wieder mit DUAL geht?

Vielen Dank,
mit bestem Gruß,
Olaf

frank

ist dein fhem aktuell?

was genau willst du peeren?
was funktioniert nicht?
fehlermeldung?


du kannst als workaround sicher auch anders peeren.
peerSmart, peerChan/single, peerBulk
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

nobody0472

Hi,
ich würde gern an den HM-LC-Sw1PBU-FM mit der CustomFW seine beiden BTN-Channels an einen Actuator (evtl. sogar nur den internen) pairen.

Wie eben beschrieben, funktioniert DUAL nicht, mit der Meldung DUAL benötigt both|actor ... aber both oder actor sind angegeben.
Der Fehler ist der gleiche, wie ihn mcfly71 beschrieben hat.

Wie kann man denn DUAL Pairing mit single ersetzen? Es wird per single ja immer nur EIN Channel gepeered.

Die einmalige Lösung in CUL_HM etwas zu modifizieren, dass es zur Konfiguration läuft, würde mir reichen.

Und ja, mein FHEM ist absolut aktuell ....

LG

frank

peeren ist technisch gesehen, immer eine "verbindung" zwischen 2 channels. egal mit welchem peer-cmd.

somit ist der spezialfall peerchan/dual ein gleichzeitiges peeren von 2 verbindungen in nur einem cmd.
also: 1x dual peeren = 2x single peeren.

es gibt allerdings einen unterschied beim initialisieren der parametersets (register) im aktor channel.
hier muss in der regel noch angepasst werden, je nach gewünschtem verhalten.

das lässt sich aber besonders einfach mit zuweisen von templates ändern.
noch einfacher mit hm.js, siehe link in meiner sig.


und mit peerSmart ist (single) peeren besonders einfach, eben "smart". einfach den gewünschten peer partner aus der liste anklicken.

also im jeweiligen btn channel den gewünschten aktor channel bei peerSmart auswählen.
oder das peeren 2x im aktor channel durchführen.

soweit ich mcfly71 verstanden habe, hat er nichts geändert, sondern auch nur 2x single gepeert.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

frank

1. wenn ich die "neue" cmd-bereitstellung für die entities richtig durchschaue, fehlt dem aktor im hauptdevice der peerchan cmd mit dual option.

die button chn zeigen bei "get cmdList":
peerChan:0 -actChn- [({single})] [({set}|unset)] [actor|remote|both]
also richtigerweise nur single peeren als default möglich.

für das hauptdevice müsste wohl dann ausschliesslich peerChan/dual freigeschaltet werden:
peerChan:0 -actChn- [({dual})] [({set}|unset)] [actor|remote|both]


2. ausserdem fehlt dem peerSmart cmd in den btn channels die remove option für gepeerte self channels.
hier funktioniert eventuell die "übersetzung" von selfxx zu den realen peernamen nicht.

Sets ------
clear:[(readings|trigger|register|oldRegs|rssi|msgEvents|{msgErrors}|attack|all)]
getConfig:noArg
getRegRaw:(List0|List1|List2|List3|List4|List5|List6) [-peerChn-]
peerBulk:-peer1,peer2,...- [({set}|unset)]
peerChan:0 -actChn- [({single})] [({set}|unset)] [actor|remote|both]
peerSmart:-peerOpt-
regBulk:-list-.-peerChn- -addr1:data1- -addr2:data2-...
regSet:[(prep|{exec})] -regName- -value- [-peerChn-]
sign:[(on|{off})]
tplDel:-tplDel-
tplSet_0:-tplChan-
tplSet_self03:-tplPeer-
tplSet_virtAktorAlarmOff_Btn1:-tplPeer-
trgEventL:-peer- -condition-
trgEventS:-peer- -condition-
trgPressL:[(-peer-|{all})]
trgPressS:[(-peer-|{all})]
Options:
-condition- : 0              , 1              , 255            , slider         ,
-peer- : self03         , virtAktorAlarmOff_Btn1,
-peerOpt- : DimPBU01_Sw1_V01, DimPBU01_Sw1_V02, DimPBU01_chn01 , DimUP01        , SDTeam_Btn1    ,
          SwitchES01_Sw  , SwitchPBU01_Sw_01, SwitchPBU01_Sw_02, SwitchPBU02_Sw_01, SwitchPBU02_Sw_02,
          SwitchPBU03    , SwitchPBU05    , SwitchPBU06    , SwitchUP01     , SwitchUP02     ,
          VentilControler.AZ.Nord_Btn1, VentilControler.AZ.West_Btn1, VentilControler.Bad_Btn1, VentilControler.Kueche_Btn1, VentilControler.SZ_Btn1,
          VentilControler.WZ_Btn1, ccu_Btn1       , ccu_Btn2       , ccu_Btn3       , ccu_Btn4       ,
          ccu_Btn5       , remove_virtAktorAlarmOff_Btn1, rssi_hmuart_Btn1,
-tplChan- :
-tplDel- :
-tplPeer- : single-chn-sensor-peer,



3. auch in den aktor channels fehlt dem peerSmart cmd die remove option für selfxx channels:
Sets ------
clear:[(readings|trigger|register|oldRegs|rssi|msgEvents|{msgErrors}|attack|all)]
eventL:-peer- -cond-
eventS:-peer- -cond-
getConfig:noArg
getRegRaw:(List0|List1|List2|List3|List4|List5|List6) [-peerChn-]
inhibit:[(on|{off})]
off:noArg
on:noArg
on-for-timer:-ontime-
on-till:-time-
peerBulk:-peer1,peer2,...- [({set}|unset)]
peerIODev:[IO] -btn- [({set}|unset)] 'not for future use'
peerSmart:-peerOpt-
press:[(long|{short})] [(-peer-|{self03})] [(-repCount-|{0})] [(-repDelay-|{0.25})]
pressL:[(-peer-|{self03})]
pressS:[(-peer-|{self03})]
regBulk:-list-.-peerChn- -addr1:data1- -addr2:data2-...
regSet:[(prep|{exec})] -regName- -value- [-peerChn-]
sign:[(on|{off})]
statusRequest:noArg
toggle:noArg
tplDel:-tplDel-
tplPara000_self02_short_toggleOn-for-timerOff_switch_onTime:-value-
tplSet_0:-tplChan-
tplSet_self02:-tplPeer-
Options:
-condition- : 0              , 1              , 255            , slider         ,
-peer- : self02         ,
-peerOpt- : Fenster.Bad    , SDTeam_Btn1    , SwitchES01_SenF, SwitchES01_SenI, SwitchES01_SenPwr,
          SwitchES01_SenU, SwitchPBU01_Btn_01, SwitchPBU01_Btn_02, SwitchPBU02_Btn_01, SwitchPBU02_Btn_02,
          Tuer.SZ        , Tuer.WZ.Terrasse, VentilControler.AZ.Nord_Btn1, VentilControler.AZ.West_Btn1, VentilControler.Bad_Btn1,
          VentilControler.Kueche_Btn1, VentilControler.SZ_Btn1, VentilControler.WZ_Btn1, ccu_Btn1       , ccu_Btn2       ,
          ccu_Btn3       , ccu_Btn4       , ccu_Btn5       , rssi_hmuart_Btn1, virtAktorAlarmOff_Btn1,
         
-tplChan- :
-tplDel- : self02:short>toggleOn-for-timerOff_switch,
-tplPeer- : SwCondAbove_long, SwCondAbove_short, SwCondBelow_long, SwCondBelow_short, SwOff_long     ,
          SwOff_short    , SwOnCond_long  , SwOnCond_short , SwOn_long      , SwOn_short     ,
          SwToggleIgnore , SwToggle_long  , SwToggle_short , autoOff_long   , autoOff_short  ,
          ignore_long    , ignore_short   , motionOnSw_long, motionOnSw_short, toggleOn-for-timerOff_switch_long,
          toggleOn-for-timerOff_switch_short,
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

nobody0472

Hallo Frank,
vielen Dank für die Analyse.

Was muss denn daraus folgen ? Muss ich den Modul-Code für das Device anpassen?

Templates und hm.js sind spannende Themen, aber fürchterlich groß. Am Ende gehts ja nur um die folgenden 4 Register pro Peer:
    R-self01-shSwJtDlyOff
    R-self01-shSwJtDlyOn
    R-self01-shSwJtOff
    R-self01-shSwJtOn

Das muss ich dann entweder bei peer single per Hand einstellen, oder vielleicht doch peer DUAL hinkriegen, wenn Du mir sagst, wie.

Vielen Dank,
mit bestem Gruß

frank

meine "analyse" war für @martinp876 gedacht, falls er hier noch mal reinschaut. ich wüsste im moment nicht, wo man änderungen vornehmen müsste.

ich würde mir die peerings mit peerSmart zusammenklicken.

mit hm.js kann man auch nur register zusammenklicken (expertmode).
ist eigentlich selbsterklärend.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

frank

ich habe jetzt doch mal gesucht und vielleicht eine lösung.

probiere mal folgendes: in HM-LC-Sw1PBU-FM-CustomFW.pm eine zeile auskommentieren und eine einfügen:

#$HMConfig::culHmChanSets{"HM-LC-Sw1PBU-FM-CustomFW00"}{fwUpdate} ="<filename>";
$HMConfig::culHmChanSets{"HM-LC-Sw1PBU-FM-CustomFW00"}{peerChan} = "0 -actChn- [({dual}|reverse)] [({set}|unset)] [(actor|remote|{both})]";


zumindestens ist im hauptdevice bei mir jetzt zusätzlich peerChan vorhanden, ausprobieren musst du.  :)
hier sollte aber nur dual und reverse funktionieren.
fwUpdate war überflüssig und unvollständig, da es mittlerweile jedes device kennt.
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

nobody0472

super. vielen Dank.
Das reicht zunächst einmal als Lösung ;)