Radio-Steuerung über Popp-Schalter

Wie bereits besprochen, muss mein Radio (bzw. Multi-Room-System) auch in FHEM eingebunden werden. Im ersten Schritt ging es um den WAF. Radio an und aus mit einem Schalter.

Ich habe aktuell in der Küche folgendes Setup:

Raspberry Pi mit snapcast Client sowie aktiv-Boxen die an einem Fibaro Wallplug hängen. 

Nun war meine Aufgabe für heute: Das Radio mit einem Schalter steuerbar zu machen. Dazu habe ich bei Amazon einen Popp Funkwandschalter bestellt (Link) und diese in mein Setup als „KU.Schalter1“ eingebunden. Der Schalter ist wie folgt belegt:

Schalter

Über einen Dummy („RadioOn“) habe ich mit zwei notifys („RadioOnNotify“ und „RadioOffNotify“) eine Funktion hinterlegt, die die Musik startet und die Steckdose aktiviert oder deaktiviert.

Entsprechend habe ich also mit einem notify den Schalter angebunden: Bildschirmfoto 2016-06-03 um 17.41.53

Das „KU.RadioNot“ ist der On/Off Schalter, dazu hat er folgende Definition:

KU.Schalter1:cSceneSet..1 IF ([RadioOn] eq „off“) (set RadioOn on) ELSE (set RadioOn off)

Die Volume-notifys sind ganz normal umgesetzt:

KU.Schalter1:cSceneDim..2 set myMPD volumeUp

KU.Schalter1:cSceneDim..4 set myMPD volumeDown

Interessant ist aber das „ChangeSender“. Irgendwie muss man ja mal den Sender wechseln können. Aber wie? Ich habe mir mit einer kleinen Clustom Funktion beholfen, die den aktuellen Sender prüft und einen anderen auswählt.


sub ChangeSender()
{
my @rsender = (
"http://player.ffn.de/ffnstream.mp3",
"http://188.94.97.91/radio21.mp3",
"http://stream.radiosaw.de/"
);
my $i = 0;

foreach my $sender ( @rsender ) {
if (ReadingsVal("myMPD", "file", "none") eq $sender)
{

}else{
if ($i eq 0){
fhem("set myMPD playfile ".$sender);
$i++;
}
}
} # foreach
}

Diese Funktion wird einfach über den Schalter aufgerufen und fertig ist die 4-Tasten-Radio-Steuerung.