Sonos Modul

Im Repository: tkugelberg/SymconSonos · GitHub

Dank Thorsten (Kugelberg) kann das Sonos Modul mittlerweile ein ganze Menge mehr!

paresy

PS: Ich habe das Modul aus dem SymconMisc Repo entfernt, da Kugelberg die Wartung des Moduls offiziell übernommen hat.

Super.

Hab mir gestern erst ein Install Skript für Sonos nach meinen wünschen erstellt, aber das kann ich ja auf ein „Modul“ umstellen.:smiley:

ips_install_sonos.zip (18.9 KB)

Hier mit den ersten Erweiterungen

sonos_modul.zip (18.1 KB)

Kannst Du kurz scheiben um welche Funktionen es sich handelt?
Peter

Bass
Höhen
Titelanzeige
Radiostationstasten
Mute
Loudness
Skriptabfrage Status von den Dingen (noch per Timer)

Das mit den neuen Modulen ist absolut g…:smiley:

Habe mir in das Modul noch mein senden von Titelanzeige an LCN Display eingebaut, und alles einstellbar im Modul.:D:loveips:

Wenn es da noch Doku zu gibt, wird das richtig gut.:slight_smile:

Hallo,

wie funktioniert das mit den Modulen:confused:
kann mir jemand Starthilfe geben :o

@tomgr

Hab mir gestern erst ein Install Skript für Sonos nach meinen wünschen erstellt

dein install Script Funktioniert Super :smiley:

Gruß

Hi,

willkommen in der Welt der Übereifrigen, die mit Ihren Gedanken, glücklicherweise umgesetzten Ideen, neuen Visionen und Zielen, schon wieder neue Ideen haben …(dabei leider für Otto Normal die Doku für ein paar Tage aussen vor lassen), … und somit bei IPSymcon (aber deshalb lieben wir Sie).

Ich persönlich hab das auch nur mitbekommen weil mein quasi Nachbar Joachim HIER danach fragte.

Seitdem die Umstellung von Delphi auf C++ läuft und somit das alte Entwicklerwerkzeug nur noch unter der Windoofs Version funktioniert ist mittlerweile eine Alternative gefragt welche nicht nur SEHR WENIGE Programmierer beherrschen.

Normalerweise findest Du die verfügbaren Module unter:

Hauptschirm --> Über --> Module

Ein Click darauf befördert i.d.R. nur die Build-in der Symcon GmbH zutage.

In der Windowszeit konnte man Moduldateien an bestimmten Stellen hinterlegen und hatte nach einem Neustart von IPS dann so tolle Sachen wie die von Toni1024 oder Tommi und konnte diese dann als Instanz mit einbinden.

Jetzt erfolgt der Schweng hin zu JSON und allgemein offenen Modulen für eine hoffentlich grössere Entwicklergemeinde unter der Nutzung von Github.

Wie lüppt das unter IPS ?? (momentan nur Linux, RasPi und vermutlich OSX ??, hab ich aber nicht):

Installier die Instanz: Module Control
Rechtsclick --> Instanz hinzufügen --> Kern Instanzen --> Module Control

Unter Configuration auf Hinzufügen und bei Auswahl wird momentan der Standardpfad zum:

https://github.com/paresy/SymconMisc

vorgegeben.

In diesem Repro stehen Dir momentan 3 Instanzen (Geofency, Sonos und Unwetterzentrale) zur Verfügung.

Joachim SEINES hab ich noch nicht getestet, erstmal muss die seit 2 Jahren eingemottete AZBox HD+ auf das aktuelle Enigna2 Image gebracht werden.

In der Hoffnung dass demnächst viele folgen werden und wir eine Schwemme an funktionierenden Modulen erleben welche die Arbeit der IPS Stammmannschaft erleichtert und die Jungens sich den wichtigen Themen widmen können…wäre das schön!

mfg

BerndJ

PS: Eine neue Rubrik im Forum sollte folgen für die vielen Gits, HIER isse.

Moin,

Als erstes Mal: cool!!!

Checkst Du die Änderungen dann auch immer ins GIT ein?
@Parsey: ich setze mal voraus, dass das von Dir gewünscht ist.

Ich würde da gerne noch Gruppenhangling im Modul sehen. Vielleicht baue ich das mal ein…
Oder ist da schon jemand dran?

Gruß,
Thorsten

Hallo Bernd,

Deine Darstellung hat bei mir für Erheiterung gesorgt…:smiley:

Schön geschrieben! So ist es wenn man sich im „Beta-Bereich“ bewegt, hier geht es ja genau darum, die neuen Funktionen und Möglichkeiten mal auf „Herz und Nieren“ zu prüfen, Fehler möglichst hier zu finden und nicht erst wenn sie in der „Allgemeinen“ Version verfügbar sind…:wink:

Gleichwohl: Den Receiver lass lieber noch mal im Schrank, im Moment läuft da noch nichts…:wink:

…melde mich aber wenn es dann soweit ist…

Die Möglichkeiten sind auf jeden Fall riesig, insbesondere die Weitergabe von Projekten sollte sich damit revolutionär vereinfachen lassen: Zum Download steht immer die aktuelle Version, man muss als Nutzer nicht etliche Anpassung machen oder durch 34 Seiten eines Threads klicken, bis man das gefunden hat woran auch schon andere gescheitert sind…:stuck_out_tongue:

Noch stehe ich da - wie andere eben auch - ganz am Anfang, bin aber jetzt schon ein großer Fan geworden! (von IPS selbst sowieso, jetzt aber insbesondere diese Funktionalität)

Joachim

Gerne. Du kannst mein Repo ja forken und wenn du was umbaust, schick mir gerne einen PullRequest :slight_smile:

paresy

Hallo Thorsten,
im Moment sitze ich an den Radiostationen und mache die konfigurierbar im Modul.
LCN Display rennt schon, und ist auch im Modul einstellbar.

Git, da muss ich mal ran, bis jetzt habe ich nur abgeholt… Tue mich da schwer.

ps Gruppen habe ich noch nicht angefangen…

Hallo,

Das Modul ist vorhanden.

Wenn ich die „Module Control“ Instanz hinzufüge, habe ich nur sowas:

Was mache ich Falsch?

Gruß

Du benötigst die Konsole der 3.4 Beta :slight_smile:

paresy

Vielen Dank für die schnelle Hilfe :smiley: Funktioniert Super :loveips:

Gruß

@IPS-Team: Wollt ihr nicht langsam mal einen Download auf eure Webseite machen mit der aktuellen IPS-Console? Würde ungefähr 10 Probleme die Woche vermeiden :wink: :slight_smile:

Grüße,
Chris

Hallo Thomas,

ich habe Dein erweitertes SONOS-Modul installiert, funktioniert sehr gut (z.Z. mit 7 Geräten).

Ich freue mich schon auf weitere Möglichkeiten, vielleicht Playlisten oder Cover-Anzeige.

Herzliche Grüße
Dieter
:loveips:

Mir würden Gruppen und Playlisten / Facoriten auch sehr gut gefallen :smiley:

Mir würden Gruppen und Playlisten / Facoriten auch sehr gut gefallen

Habe ich noch nicht angefasst, stelle aber gerne den Rest hier rein.
Bin aber gerade bei mir am rumschrauben, nächste Woche kommt ein VDSL Anschluss, muss da einiges umbauen…:smiley:

Hallo zusammen,

zum einen fand ich den Ansatz für die Radiosender von Tom echt nett, zum anderen hat mit etwas gefehlt.
Daher habe ich mal etwas rumgespielt:

Ich habe mit eine Konfiguration von Radiosendern angelegt (radio_stations.php).
Hiermit kann man sich zum einen ein Array von Verfügbaren Radiosendern zurückliefern lassen, zum anderen zu einem Sendernamen die aPassende URL:


<?
function get_available_stations(){
  $RadioStations =  Array(
            Array( ('name') => "SWR3",           ('url') => "x-rincon-mp3radio://swr-mp3-m-swr3.akacast.akamaistream.net/7/720/137136/v1/gnl.akacast.akamaistream.net/swr-mp3-m-swr3" ),
            Array( ('name') => "FFN",            ('url') => "x-rincon-mp3radio://player.ffn.de/ffn.mp3" ),
            Array( ('name') => "FFH",            ('url') => "x-sonosapi-stream:s17490?sid=254&flags=32" ),
            Array( ('name') => "Antenne Bayern", ('url') => "x-sonosapi-stream:s15030?sid=254&flags=32" )
                         );
  return  $RadioStations ;
}

function get_station_url($name, $RadioStations = null){

  if ( $RadioStations === null ){ $RadioStations = get_available_stations(); };

  foreach ( $RadioStations as $key => $val ) {
      if ($val['name'] === $name) {
          return $RadioStations[$key]['url'];
      }
  }
   throw new Exception("Radio station " . $name . " is unknown" );
}

?>

Im modules.php habe ich dann enifach folgendes gemacht:



                public function ApplyChanges()
                {
...
                        $this->RegisterProfileIntegerEx("Radio.SONOS", "Speaker", "", "", Array(
                                Array(0, "SWR3", "", -1),
                                Array(1, "FFN", "", -1),
                                Array(2, "FFH", "", -1),
                                Array(3, "Antenne Bayern", "", -1)
                        ));

                        $this->RegisterVariableInteger("Radio", "Radio", "Radio.SONOS");
                        $this->EnableAction("Radio");
...
                }

                public function SetRadio($radio)
                {

                       include(__DIR__ . "/sonos.php");
                       include(__DIR__ . "/radio_stations.php");
                       (new PHPSonos($this->ReadPropertyString("IPAddress")))->SetRadio( get_station_url($radio));

                }

                public function RequestAction($Ident, $Value)
                {

                        switch($Ident) {
...
                                case "Radio":
                                        $this->SetRadio(IPS_GetVariableProfile("Radio.SONOS")['Associations'][$Value]['Name']);
                                        SetValue($this->GetIDForIdent($Ident), $Value);
                                        break;
...
                        }


damit geht z.B. auch so etwas:

SNS_SetRadio( 54110  /*[Sonos Gäste]*/, "SWR3");

Aber das erstellen des Profils passt mir noch nicht…
Eigentlich würde ich das auch gerne mit allen verfügbaren Radisendern automatisch machen. Dann könnte diese Liste aber sehr lang werden. Und da dies im WebFront nur ald knöpfe angezeigt wird…

Hat da jemand eine Idee?
Ich wüde das gerne als DropDown Selection box mit einem Go Knopf machen. Geht das?

Gruß,
Thorsten