Sonos Modul

Hi Thorsten,

schaue mir die neue Version später an, stecke gerade noch an einem anderen Problem.( nicht IPS)
Meldung kommt morgen, sorry…

Super Thorsten,

doch noch Zeit gefunden, es geht.
Auch die Gruppen, perfekt ! (habe jetzt noch ein Play1 zum testen…)

Jetzt noch Loudness, Bass und Höhen rein ! (da die alten iPad’s nicht mehr den SONOS Controller mögen…)
Danach kommt dann Musik vom Nas (Beispiel Alarm) oder Playlisten ( gehe ich mal viel später an…)

Hi Thorsten,

bei „Mute“ hast du noch einen Fehler drin, oder ?

Hi Thorsten,

habe deine „sonos_20150707.zip“ um Bass,Treble und Loudness erweitert.
Ist im Modul „versteckbar“.
Dann noch alle Var’s im Objektbaum einsortiert, nach meinen Wünschen.

sonos_ts.zip (10.9 KB)

Hi,

dann haben wir ja etwas vergelichbares gemacht :confused :

sonos_20150708.zip (11.2 KB)

Das mit dem iPad hat mich überzeugt…

Allerdings habe ich jede Setting einzeln „schaltbar“ gemacht.
So wird zwar das Config UI recht voll, aber das soll ja eh überarbeiet werden, gell? (IP-Symcon Community Forum)

Das mit dem Mute habe ich auch nachgezogen. Wenn man nicht jede kleine Änderung nachtestet:rolleyes:

Wenn das so OK ist, ertstelle ich den pull request.

Gruß,
Thorsten

Ich kenne nicht die Konfig von dem Modul, aber ich glaube nicht dass das Gird dafür die Lösung ist.
Mir ging es um Listen wo z.b. eine ganze Reihe von Objektids hinterlegt werden können.
Aber vielleicht gibt es bald noch mehr Steuerelemente :slight_smile:
Michael

Naja, aber mit einer älteren Controller-Version geht das ja noch wunderbar.

egal, ich schaue mir deine Version an,
Habe wieder viel dazu gelernt, mit den Modulen umzugehen.

Moin,

Mit der neuen IPS Version scheint sich noch etwas geändert zu haben:
Mein „_updateGrouping“ script ist beim schalten der Gruppe dann immer mit dem Fehler „Cannot redeclare class PHPSonos in /usr/share/symcon/modules/SymconMisc/Sonos/sonos.php on line 7“ ausgestiegen.

Daher habe ich mal alle „include“ auf „include_once“ umgestellt und es geht wieder…

Gruß,
Thorsten

Hi paresy,

Bekommst Du eigentlich mit, wenn ich einen neuen Pull Request erstelle?
Habe ich nämlich. :smiley:

Gruß,
Thorsten

Ja. Ich bin die Tage nur unterwegs und kann es ohne Sonos hier so schlecht austesten :slight_smile:

Hier ein paar kleinere Sachen vorab:
a) Generell ist cool, wenn du pro „Feature“ einen Pull Request erstellst. Das macht es einfacher die Änderungen für mich zu durchschauen. Zur Zeit ist ja ne ganze Menge drin und ich muss mir zusammensuchen, was wie dazu gehört. Mach dir aber nicht den Aufwand das alles jetzt wieder auseinander zu fummeln. Das bekomme ich schon hin :wink:
b) Die LCN Sache muss leider raus. Das Sonos Modul soll unabhängig von einem LCD Display sein. Wenn jemand will, kann er auf die Änderung der StatusVariable triggern und mit einem weiteren Skript das Display beschreiben. Im Sonos Modus würde ich es aber gerne weglassen.
c) Du hast die Radio Stations als Select eingebaut. Cool :smiley: Ist im Commit gar nicht erwähnt :smiley:
d) Ziemlich cool :cool::slight_smile:

paresy

Hi paresy,

LCN-Display war meine Idee, und es rennt gut. Thorsten hatte es aus meinen Dingen übernommen (wir beide kommen vom LCN.)
Kann aber gut verstehen, dass es wieder an der Stelle raus soll.
Ok, da baue ich ein Skript für die LCN User.

Hi,

Sehe ich ein, wird nicht wieder vorkommen :rolleyes:
Ich war nur gerade so gut drin…
Ich hatte die Hoffnung dass meine Kommentare helfen.

Stimme ich Dir voll und ganz zu. Ich habe nichtmal ein Display im Haus…
Aber ich hatte den Eindruch Thomas was es wichtig.

Ein Script könnte dann so aussehen:


<?

$lcnDisplayID   = 4711; // ID of module with Display (e.g. GT10D)
$lcnDisplayLine = 2,    // Line in which the text should be displayed
$sourceID       = 1234; // ID of variable NowPlaying of relevant Sonos Module
$nowPlaying     = GetValueString($sourceID);

LCN_SendCommand($DisplayId, "GT", "DT" . $DisplayZeile . "1" . utf8_decode(substr($nowPlaying,  0, 12)));
LCN_SendCommand($DisplayId, "GT", "DT" . $DisplayZeile . "2" . utf8_decode(substr($nowPlaying, 12, 12)));
LCN_SendCommand($DisplayId, "GT", "DT" . $DisplayZeile . "3" . utf8_decode(substr($nowPlaying, 24, 12)));
LCN_SendCommand($DisplayId, "GT", "DT" . $DisplayZeile . "4" . utf8_decode(substr($nowPlaying, 36, 12)));
LCN_SendCommand($DisplayId, "GT", "DT" . $DisplayZeile . "5" . utf8_decode(substr($nowPlaying, 48, 12)));

?>

Sollte eine Überraschung sein :smiley:

Das ist schön zu hören. Ich werde meine alten Scripte dann auch mal umstellen, wenn es „offiziell“ mit drin ist.

Derzeit werkelt es auf einer DEV IPS Instanz. Aber auch von da ist das mit dem „Force Grouping“ echt praktisch.
Wenn ich jetzt eine Box im Schlafzimmer abziehe und auf der Terrasse anstecke, kommt spätestens nach 5 Minuten die Musik. Echt praktisch,
Was ich dann noch machen werde: Wenn der Fernseher angeht, wird das Wohnzimmer aus der Gruppe genommen.
Darauf freu ich mich.

Änderungen sind gemacht (+ verstecken der GroupMembers Variablen) und commitet.

Bis denne,
Thorsten

Sorry, dass es hier so lange dauert! Ich habe mit letztens deine Änderungen angesehen und für gut befunden, konnte Sie aber leider nicht mergen, da ich bereits Änderungen am Modul gemacht hatte (bzgl. neuem Constructor). Magst du deinen Pull-Request noch einmal aktualisieren?

paresy

Hi,

hatte mir für heute vorgenommen Dich zu kontaktieren, wie man das auf den Weg bringen könnte.

Habe im Prinzip nur

  • public function __construct($InstanceID)
  • public function Create()

und

  •    parent::__construct($InstanceID);
    
  •    parent::Create();
    

gemacht.

Jetzt sollte es gehen.

Danke,
Thorsten

Hi,

habe bei mir noch einen Fehlerabfang in der _upateStatus eingebaut:



$ip = IPS_GetProperty(IPS_GetParent($_IPS["SELF"]), "IPAddress");
$con=@fsockopen($ip,1400,$errno,$errstr );
// echo "ERROR: $errno 
";
if($errno==0) {
// echo "ERROR: $errno 
";
 $test = true;
 fclose($con); // Close the socket handle
 }
else {$test = false;
//echo "ERROR: $errno 
";
}


und Sys_Ping ersetzt:


//if (Sys_Ping($ip, 1000) == true) {
if($test==true) {

Guten morgen zusammen
Ich wollte heute mal das Sonos Modul Installieren. Leider wird es mir nicht angeboten.
Mache ich da was falsch.
Mfg Stefan
Unbenannt.PNG

Eigentlich schaut das gut aus. Hast du mal ggf. IP-Symcon neu gestartet? (Wobei es eigentlich nicht notwendig ist)

paresy

Hallo Paresy
Dienst hatte ich neu gestartet und jetzt auch mal den Rechner.
Leider ohne erfolg.
Mfg Stefan

Hi,

evtl. vergessen unter Module das einzutragen:

paresy/SymconMisc · GitHub

mfg

BerndJ