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
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
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
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
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
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
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.
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,
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ß
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.
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.
super. vielen Dank.
Das reicht zunächst einmal als Lösung ;)