Sonos Modul

Hi,

Das erklärt es zumindest.

Ich habe den Verdacht, dass das mit Spotify nicht funktioniert.
Das habe ich aber nicht (mehr).
Da müsste man mal auslesen, ob man irgendwie rausbekommt, ob das auch möglich wäre.

Ich schicke Dir mal eine PM mit Script dessen Ausgabe ich gerne hätte :wink:

Gruß,
Thorsten

Hallo Gemeinde,

lange hats gedauert, aber nun habe ich auch SONOS :slight_smile:
Vielen Dank für dieses tolle Modul !

Ich scheitere nur gerade an einer Kleinigkeit.
Ich hätte gerne die Variable „Details“ abgesetzt von der Instanz angezeigt, aber innerhalb der Instanz eben nicht mehr.

Ich habe einen Link auf die Variable „Details“ gesetzt und die original ausgeblendet.
Leider wird die immer wieder auf „sichtbar“ geschaltet.

Hier mal ein Screenshot, links der link auf die Variable „Details“ und rechts die Originale, die ich gerne verbergen würde.

Vielen lieben Dank für eure Hilfe

EDIT:

Ich habe mir gerade so weitergeholfen, dass ich in dem Script „UpdateStatus“ einfach eine eigene Variable eintrage :slight_smile:
Nun läuft alles super :slight_smile:
Ich hoffe nur, das überlebt auch zukünftige Updates ?

// Get all needed Variable IDs
$vidInstance      = IPS_GetParent($_IPS["SELF"]);
$vidVolume        = @IPS_GetObjectIDByName("Volume",        $vidInstance);
$vidMute          = @IPS_GetObjectIDByName("Mute",          $vidInstance);
$vidLoudness      = @IPS_GetObjectIDByName("Loudness",      $vidInstance);
$vidBass          = @IPS_GetObjectIDByName("Bass",          $vidInstance);
$vidTreble        = @IPS_GetObjectIDByName("Treble",        $vidInstance);
$vidBalance       = @IPS_GetObjectIDByName("Balance",       $vidInstance);
$vidMemberOfGroup = @IPS_GetObjectIDByName("MemberOfGroup", $vidInstance);
$vidStatus        = @IPS_GetObjectIDByName("Status",        $vidInstance);
$vidRadio         = @IPS_GetObjectIDByName("Radio",         $vidInstance);
$vidSleeptimer    = @IPS_GetObjectIDByName("Sleeptimer",    $vidInstance);
$vidNowPlaying    = @IPS_GetObjectIDByName("nowPlaying",    $vidInstance);
$vidGroupMembers  = @IPS_GetObjectIDByName("GroupMembers",  $vidInstance);
$vidDetails       = 59351;//@IPS_GetObjectIDByName("Details",       $vidInstance);
$vidCoverURL      = @IPS_GetObjectIDByName("CoverURL",      $vidInstance);
$vidStationID     = @IPS_GetObjectIDByName("StationID",     $vidInstance);
$vidContentStream = @IPS_GetObjectIDByName("ContentStream", $vidInstance);
$vidArtist        = @IPS_GetObjectIDByName("Artist",        $vidInstance);
$vidTitle         = @IPS_GetObjectIDByName("Title",         $vidInstance);
$vidAlbum         = @IPS_GetObjectIDByName("Album",         $vidInstance);
$vidTrackDuration = @IPS_GetObjectIDByName("TrackDuration", $vidInstance);
$vidPosition      = @IPS_GetObjectIDByName("Position",      $vidInstance);
$vidCrossfade     = @IPS_GetObjectIDByName("Crossfade",     $vidInstance);
$vidPlaymode      = @IPS_GetObjectIDByName("PlayMode",      $vidInstance);

Hallo,

Mit Sicherheit nicht.

Aber ich schaue mal, ob ich da etwas machen kann.

Der Grund warum ich es immer wieder einblende ist, dass es keinen Sinn macht diese Variable anzuzeigen, wenn es sich nicht um den Koordinator handelt.
Daher wird es versteckt, wenn die Instanz in einer Gruppe ist.
Und um sicherzugehen, dass es nicht vergessen wird sichtbar zu machen, setze ich es jedes Mal wieder auf Sichtbar…

Gruß,
Thorsten

Sichtbarkeit von Objekten dürfen von ein Modul nicht verändert werden!
Die Hoheit des Users ist zu waren :slight_smile:
Michael

Ja, aber das Modul von Kugelberg ist ja „uralt“ und aus Skripten gewachsen.:slight_smile:
Es müsste mal komplett überarbeitet werden, aber das will ich nicht verlangen.
Heute würde bestimmt vieles anders gemacht werden können.

Also alles noch gut hier, und DANKE an Kugelberg, ich nutze es immer noch so.

Wird Zeit, dass SONOS mal eine Offline API herausbringt.

Da warte ich auch drauf.

Ich persönlich glaube da könnt ihr lange warten, die wird es wahrscheinlich nie geben.

Hallo,

Und Ausnahmen bestätigen die Regel.
Ich verstecke einige Variablen, die unter bestimmten Umsänden nicht verwendbar sind. Das ist eher ein Schutz für den Endanwender. :smiley:

Wo Du es gerade sagst…
Wer mal im Store nach Sonos sucht, findet eine Beta Version von Sonos 2.0 :cool:
Paresy und Dr. Niels hätten da aber gerne noch ein paar Änderungen. Die werde ich die nächsten Tage einbauen. Dann werde ich es einreichen.

Unter Sonos/README.md findet ihr eine Anleitung, wie das alte Modul zu ersetzen ist.
Bitte das Beta beachten. Wenn jemand etwas komisch oder gar Fehler findet, gerne PN an mich und nicht dieses Forum zumüllen.

Warum? Ist doch da. Gut, nicht so richtig gut dokumentiert, aber dafür schön stabil!

Gruß,
Thorsten

Ja Thorsten,
da läuft auch schon was auf meinem IPS. Aber da bin ich nicht drin, macht mein Sohn.
Aber ich liebe noch die lokalen Dinge.:confused:

So lange man den Weg nutzten kann, ist mir das mehr als recht, vor allem weil damit mehr möglich ist als über die Cloud API. Was ich meinte ist das Sonos wohl nicht offiziell eine lokale API anbieten wird, es wird wohl bei der Cloud API bleiben. Und wenn man als Hersteller damit werben will, dass man Sonos offiziell unterstützt, wird man dann auch gezwungen die Cloud API zu nutzten.
Warum Hersteller immer mehr auf Cloud APIs setzten, die dann am Schluss einen eingeschränkten Funktionsumfang aufweisen im Vergleich zur lokalen Steuerung, bleibt mir persönlich immer noch ein Rätsel.

Ich würde mal sagen, das Sammeln von Daten ist da ein sehr großer Grund für, oder meinst du nicht?

Grüße,
Kai

Das ist sicherlich das eine und das andere das der Hersteller wegen dem vorgeschobenen Argument Sicherheit gerne wüste wer auf welche Weise die Geräte steuert. Das kann dem Hersteller nur gelinde gesagt vollkommen egal sein, so lange die Steuerung in meinem eigenen Netzwerk erfolgt, aber heutzutage muss man ja nach dem Willen der Hersteller Daten in die USA oder China schicken nur um eine Steckdose einschalten zu können oder ein Lied zum abspielen zu starten.

Hallo,
ich habe das neue Sonos php Modul installiert.
Wenn ich die Sonos Discovery Instanz aufrufe erscheinen da keine Lautsprecher die ich erstellen kann.
Kann man die von Hand erstellen?
Bei der „Glocke“ erscheinen alle HomeMatic Geräte nur keine Sonos Lautsprecher, auch kein DenonAV Receiver wenn ich das Denon Modul installiere.
Wo liegt der Fehler?

Gruß Rüdiger.

Finde ich super das auch auch weiterhin eine lokale Ansteuerungsmöglichkeit geben wird und auch als Modul für den Modul Store. Die Cloud API ist zwar nett aber auch nicht jedermanns Sache.

Beim ersten Versuch das mal näher anzuschauen kam bei mir folgende Fehlermeldung
sonos2_debug1.png

Welches Sonos Modul hast Du denn installiert? Eine Discovery Instanz gibt es für die Cloud API, da sollte das auch funktionieren, dafür ist das Modul aber an anderer Stele noch nicht vollständig Sonos Cloud.

Das Sonos Modul im Modul Store ist noch Beta, wenn Du eine stabile Version nutzten willst, würde ich da an deiner Stelle noch abwarten bis die erste Stable erschienen ist.

Insofern Du SymconSonos nutzt, kannst Du das von Hand installieren.

Was für einen Denon AVR besitzt Du denn? Wenn dieser nicht durch die Discovery Instanz gefunden wird, kannst Du diesen auch einfach von Hand anlegen.

Nachdem ich das „alte“ Modul die ganze Zeit benutzt habe, wollte ich mal das neue aus dem Store probieren, da ich gerade ein bisschen Ordnung mache. Das klappt alles soweit gut, ich habe aber eine Frage und ein Problem:

  1. Gibt es bei dem neuen Modul (noch?) keine Variable für die CoverURL?
  2. Ich habe, sobald ein Lautsprecher läuft Fehlermeldungen im System im:

09.12.2019, 00:06:06 | TimerPool | SNS_AZ (Sonos Update Status): <br />

<b>Fatal error</b>:  Uncaught Error: Call to undefined method SonosPlayer::ReadProperty() in /var/lib/symcon/modules/.store/de.kugelberg.sonos/SonosPlayer/module.php:1252
Stack trace:
#0 /var/lib/symcon/scripts/__generated.inc.php(247): SonosPlayer->updateStatus()
#1 /-(1): SNS_updateStatus(39483)
#2 {main}
  thrown in <b>/var/lib/symcon/modules/.store/de.kugelberg.sonos/SonosPlayer/module.php</b> on line <b>1252</b><br />

Die Lautsprecher habe ich zweimal neu eingebunden… Ist das bekannt? Hoffe, ich habe die entsprechenden Posts hier im Thread nicht übersehen… :-/

Hallo,

soso, so sieht das also aus, wenn man darum bittet, zum Thema „Beta“ mich per PN zu kontaktieren, da es hier eigentlich nicht hingehört…

Kann es sein, dass Du Dein Symcon mit Docker verwendest?
Falls ja, ist das das Problem. Dur musst bei Docker dann die SSDP antworten auch an Symcon weiterleiten.
Z.B. indem Du port 1900 udp auch an den Container schickst. Aber Bei Synology geht das z.B. nicht (da schon verwendet).
Ich habe es so gemacht, dass ich Symcon „Dasselbe Netzwerk wie Dockerhost verwenden“ aktiviert habe. So geht es.
–> Werde ich mal in die Doku aufnehmen.

Kannst Du mir die Fehlermeldung bitte so zukommen lassen, dass ich sehe in welcher Datei in welcher Zeile es passiert?
Bei dem Screenshot kann ich nichts erkennen.

Schon, aber ich habe es (warum auch immer) mit „Titel URL“ übersetzt.
Werde ich noch anpassen.

Da hatte ich doch tatsächlich ein „String“ vergessen. ist korrigiert. Checke ich aber erst später ein.

Gruß,
Thorsten

Sorry, sorry, sorry!!! Habe ich übersehen :frowning:

Keine Sorge, ich hab den Post jetzt ausgedruckt und verbrannt…

leider habe ich das Forum auch auf dem Tablet und dem Handy.

Also habe ich es auf allen 3 Geräten ausgedruckt und verbrannt :slight_smile:

LG
Ein Aufmerksamer Leser :slight_smile: