Nachdem es leider bis heute keine set-Methode zum Restart des SONOS SubProcess gibt, habe ich mir im SONOS-Modul mal angeschaut, was da beim deaktivieren/re-aktivieren mittels disable Attribut gemacht wird und mir das in eine (bzw. zwei) eigene Funktion(en) in meiner 99_myUtils.pm extrahiert.
Letztendlich auch nur deswegen, weil mich stört, dass nach restart mittels disable-Attribut, die FHEM-Konfiguration als geändert markiert wird (rotes Fragezeichen).
Wenn man den untern stehenden Code in seine 99_myUtils.pm übernommen hat, kann man den SONOS-SupProcess beispielsweise ganz einfach durch Eingabe von
{mySONOS_RestartSubProcess}
in der FHEM-Kommanndoziele neu starten.
Besser ist natürlich der Aufruf aus einer, wie auch immer gearteten Übewachung!
Vorab noch ein Hinweis:Es ist keine gute Praxis, einfach so irgendwelche modulinternen Mehtoden aufzurufen. Die können sich jederzeit im Namen oder der Signatur ändern. Es kann also jederzeit zu unerwünschten Nebenwirkungen kommen; bis hin zum Komplettabsturz des FHEM-Prozesses!
Die Verwendung der folgenden Funktion(en) erfolgt grundsätzlich
auf eigenes Risiko !Ich leiste auch keinen weiteren Support dazu!
(Stand heute funktioniert das bei mir und fertig!)
[code]
sub mySONOS_RestartSubProcess
{
#This was grabbed from SONOS disable-Attribute handling and is relying on the internal
#naming of methods in the SONOS module. -> Use at your own risk!
#get hash of the SONOS main device
my $hash = SONOS_getSonosPlayerByName();
#Initiating Stop-Process if not already disabled...
InternalTimer(gettimeofday() + 1, 'SONOS_StopSubProcess', $hash, 0) if($hash->{STATE} ne 'disabled');
#Wait before trying to start the process again
InternalTimer(gettimeofday() + 10, 'mySonos_StartSubProcess', 'noArg', 0);
}
sub mySonos_StartSubProcess
{
#This was grabbed from SONOS disable-Attribute handling and is relying on the internal
#naming of methods in the SONOS module. -> Use at your own risk!
#get hash of the ...