Ich habe seit langer Zeit einen Homematic-Gong HM-OU-CFM-Pl. Nun habe ich in den letzten 2 Jahren sukzessive alle meine HM-Geräte auf den Betrieb mit RaspberryMatic und HMCCU umgestellt. Dabei ging leider die Möglichkeit verloren, außer der primitiven Gongfunktion die weiteren Features des HM-OU-CFM-Pl zu nutzen, nämlich das Blinken in verschiedenen Farben und das Abspielen von MP3-Dateien auf einer SD-Karte.
Das Device heißt WZ.Gong, die Gongfunktion kann über direkte Verknüpfung von anderen HM-Devices ausgelöst werden. 1 ist der optische Kanal, 2 ist der akustische Kanal.
Mit dem FHEM-Befehl
set WZ.Gong datapoint 1.STATE truekann das Blinken eingeschaltet werden - und zwar langsam rot blinkend. Warum? Weil das Teil seinen internen Parameter 2.LONG_ACT_TYPE auf den Wert 2 hat, entspricht RED_LONG. Das sieht man, wenn man
get WZ.Gong paramSetDesc aufruft, u.a.an der Zeile.
ZitatChannel LEQ1003578 1
Paramset LINK
...
LONG_ACT_TYPE: ENUM [R,W] [Visible,Sticky] RANGE=0...6 DFLT=2 VALUES=NO_MSG,RED_SHORT,RED_LONG,GREEN_SHORT,GREEN_LONG,ORANGE_SHORT,ORANGE_LONG
...
set WZ.Gong datapoint 1.STATE false schaltet das Blinken (vorzeitig) wieder aus.
Ebenso:
Mit dem FHEM-Befehl
set WZ.Gong datapoint 2.STATE truekann das Abspielen der ersten MP3-Datei auf der SD-Karte gestartet werden, deren Dateiname mit 000 beginnt. Das sieht man, wenn man
get WZ.Gong paramSetDesc aufruft, u.a.an der Zeile.
ZitatChannel LEQ1003578 2
Paramset LINK
...
LONG_ACT_TYPE: INTEGER [R,W] [Visible,Sticky] RANGE=0...255 DFLT=0
...
Wenn man die entsprechenden ccuflags im Device setzt, werden die ganzen Parameter auch als Readings angezeigt, z.B. als
ZitatL-2.LONG_ACT_TYPE 0
So, und jetzt kommt die entscheidende Frage: Wie kann ich diese Parameter auf andere Werte setzen? Sagen wir mal, die MP3-Datei auf Nr. 15 setzen. Ich habe schon allerlei Kombinationen ausprobiert:
set WZ.Gong datapoint 2.LONG_ACT_TYPE 15 => Fehler invalid datapoint
set WZ.Gong datapoint L-2.LONG_ACT_TYPE 15 => Fehler invalid datapoint
set WZ.Gong config 2.LONG_ACT_TYPE 15 => Fehler No parameter specified
set WZ.Gong config L-2.LONG_ACT_TYPE 15 => Fehler No parameter specified
set WZ.Gong config 2 LONG_ACT_TYPE 15 => Fehler No parameter specified
Bisher ohne jeden Erfolg. Hat jemand eine Idee, wie das gehen kann?
LG
pah
Gibt man bei "set ... config" den Wert nicht mit einem '=' zwischen Parametername und Wert an?
Habe ich schon probiert
set WZ.Gong config 2.LONG_ACT_TYPE=4 => Fehler invalid parameter specified
set WZ.Gong config 2 LONG_ACT_TYPE=4 => Fehler invalid parameter specified
set WZ.Gong config 2.LONG_ACT_TYPE:4 => Fehler no parameter specified
set WZ.Gong config 2 LONG_ACT_TYPE:4 => Fehler no parameter specified
Kein Effekt.
In der CommandRef zu HMCCUDEV steht es mal als <Kanal>.<Parameter>, mal ohne ".", und mal mit "=" und mal mit ":"
LG
pah
Ich habe auch probiert set WZ.Gong datapoint 1.SUBMIT type:4. Wir geschluckt, macht aber nichts.
So, einen Schritt weiter - aber nachdem ich vorher nahe dem Abgrund stand, ist dieser Schritt ziemlich unerwünscht.
Hat angeblich damit zu tun, dass auf dem Gong die betreffenden Parameter in so genannten LINK-ParamSets stehen und angeblich nicht ohne existierende HM-Peer-Verknüpfung zu einem anderen HM-Device gesetzt werden können (Wobei sich mir die Frage stellt, warum das dann mit dem alten VCCU-Interface funktionierte???)
Anscheinend ist dann eine mögliche Lösung, auf der RaspberryMatic das CUxD-Addon zu installieren, darin einen virtuellen Taster zu definieren und mit dem auf die Verlinkung zwischen Gong und anderem Gerät zuzugreifen. Das ist aber, vorsichtig gesagt, unwartbar.
LG
pah
Das erinnert mich daran, dass man erst dann brauchbare events von HMIP Tasten bekommt, wenn auf der zugehörigen debmatic ein pseudo-Programm definiert wurde, in dem dann die Taste zumindest in einer "Wenn"-Bedingung auftaucht. Eine Aktion muss dabei gar nicht definiert werden. Vermutlich ein ähnliches Prinzip.
So, Problem gelöst.
Nach ewigem recherchieren und probieren: Es gibt keine Möglichkeit, mit den Bordmitteln der RaspberryMatic die Link-Parameter der beiden Gong-Kanäle zu ändern.
Es gibt im FHEM-Device aber die beiden datapoints 1.SUBMIT und 2.SUBMIT, und so genannte Kanalaktionen. Nachdem ich in der RaspberryMatic herausgefunden habe, wie die anzusteuern sind, geht es prima.
Signalleuchte: 1.SUBMIT muss eine Liste bekommen aus <Aktiv>,<Anzahl Wiederholungen>,<Dauer>,[bis zu zehn Farbcodes]. Standard-Dauer des Effektes sind 108000, die Farbcodes sind z.B. 33 für "Grün kurz" = greenS. Also erzeugt z.B. ein
Zitatset WZ.Gong datapoint 1.SUBMIT 1,1,108000,33,33,33
drei kurze grüne Impulse.
MP3-Spieler: 2.SUBMIT muss eine Liste bekommen aus <Lautstärke>,<Anzahl Wiederholungen>,<Dauer>,[bis zu zehn Werte 0..255]. Standard-Dauer des Effektes sind 108000. Als spielt
Zitatset WZ.Gong datapoint 2.SUBMIT 0.8,1,108000,25,26
nacheinander die MP3-Dateien 025xxx.mp3 und 026xxx.mp3 mit der Lautstärke 80% ab.
Ich werde bei Gelegenheit das Wiki entsprechend ergänzen, nachstehend meine drei "Zusatzdevices" und zwei Perl-Handler für den Gong WZ.Gong
defmod WZ.Gong.LED dummy
attr WZ.Gong.LED readingList sequence
attr WZ.Gong.LED setList sequence
defmod WZ.Gong.MP3 dummy
attr WZ.Gong.MP3 readingList sequence
attr WZ.Gong.MP3 setList sequence
defmod WZ.Gong.N DOIF ([WZ.Gong.LED:"sequence"])
({gong_led("WZ.Gong","$EVENT")})
DOELSEIF
([WZ.Gong.MP3:"sequence"])
({gong_mp3("WZ.Gong","$EVENT")})
attr WZ.Gong.N do always
sub gong_led($$){
my ($dev,$evt) = @_;
my $seq = $evt;
$seq =~ s/sequence\:\s+//;
my %colors=(
"orangeS" => 49,
"orangeL" => 50,
"redS" => 17,
"redL" => 18,
"greenS" => 33,
"greenL" => 34
);
my $rep=AttrVal($dev.".LED","repeat",1);
foreach my $key (keys %colors) {
my $color = $colors{$key};
$seq =~ s/$key/$color/g;
}
#--
if( $seq !~ /[0-9,]/){
Log 1,"[gong_led] illegal sequence";
}
my $str="1,$rep,108000,$seq";
fhem("set $dev datapoint 1.SUBMIT $str");
}
sub gong_mp3($$){
my ($dev,$evt) = @_;
my $seq = $evt;
$seq =~ s/sequence\:\s+//;
my $vol=AttrVal($dev.".MP3","volume",1);
my $rep=AttrVal($dev.".MP3","repeat",1);
#--
if( $seq !~ /[0-9,]/){
Log 1,"[gong_m3] illegal sequence";
}
my $str="$vol,$rep,108000,$seq";
fhem("set $dev datapoint 2.SUBMIT $str");
}
LG
pah
Wiki ist aktualisiert https://wiki.fhem.de/wiki/HM-OU-CFM-Pl_MP3_Funk-Gong_mit_Signalleuchte#Hinweise_zum_Betrieb_mit_FHEM
LG
pah