NEWS
[Vorlage] Script für Sonos-Adapter
-
@ Hallo BBtown,
Ich habe meine Favoriten in der Sonos App. nur ich sehe sie nicht.
hat ein Foto hinzugefügt, wie es jetzt aussieht.
Ich hoffe du kannst mir weiter helfen.@michmein danke für deine erklärung. Das wusste ich nicht.
Viele Grüße und ein gesundes 2021

@chris-nij said in [Vorlage] Script für Sonos-Adapter:
@ Hallo BBtown,
Ich habe meine Favoriten in der Sonos App. nur ich sehe sie nicht.
hat ein Foto hinzugefügt, wie es jetzt aussieht.
Ich hoffe du kannst mir weiter helfen.@michmein danke für deine erklärung. Das wusste ich nicht.
Viele Grüße und ein gesundes 2021


-
@chris-nij said in [Vorlage] Script für Sonos-Adapter:
@ Hallo BBtown,
Ich habe meine Favoriten in der Sonos App. nur ich sehe sie nicht.
hat ein Foto hinzugefügt, wie es jetzt aussieht.
Ich hoffe du kannst mir weiter helfen.@michmein danke für deine erklärung. Das wusste ich nicht.
Viele Grüße und ein gesundes 2021


@chris-nij In deinem Screenshot kann ich sowohl in der "Favorites List" als auch im "Favorites Array" Einträge sehen. Also sind deine Favoriten vorhanden

-
@chris-nij In deinem Screenshot kann ich sowohl in der "Favorites List" als auch im "Favorites Array" Einträge sehen. Also sind deine Favoriten vorhanden

-
@Mic
Hi,kaum macht man es richtig, geht es auch.
Ja, das mit dem Stift ist nicht so wirklich intuitiv, der ist mir gar nicht aufgefallen und hatte ich auch nirgends gelesen. Kaum drauf geklickt, und schon waren sie da. 
Nun teste ich aber dennoch die neue Version, man will ja up to date bleiben. Dickes Danke!Gruss, Jürgen
EDIT: Läuft. Datenpunkte gelöscht, Skript aktualisiert und neu gestartet und alles da, wie ich es ursprünglich dachte. TOP

@Wildbill sagte in [Vorlage] Script für Sonos-Adapter:
EDIT: Läuft. Datenpunkte gelöscht
Wo kann ich die Datenpunkte finden/löschen?
-
@Wildbill sagte in [Vorlage] Script für Sonos-Adapter:
EDIT: Läuft. Datenpunkte gelöscht
Wo kann ich die Datenpunkte finden/löschen?
@BlackTigga sagte in [Vorlage] Script für Sonos-Adapter:
Wo kann ich die Datenpunkte finden/löschen?
@Mic @Wildbill
Hat sich erledigt, steht ja im Kopf des Skriptes.
Habt ihr eine Idee, warum bei mir nur ein Datenpunkt erzeugt wird?
-
@BlackTigga sagte in [Vorlage] Script für Sonos-Adapter:
Wo kann ich die Datenpunkte finden/löschen?
@Mic @Wildbill
Hat sich erledigt, steht ja im Kopf des Skriptes.
Habt ihr eine Idee, warum bei mir nur ein Datenpunkt erzeugt wird?
@BlackTigga Bei mir das gleiche Bild
Hast du schon eine Lösung gefunden? -
@BlackTigga Bei mir das gleiche Bild
Hast du schon eine Lösung gefunden?@leuchtturm Leider nein.
Aber interessant ist, dass es grundsätzlich funktioniert außer die Funktionalitäten mit der Favoritenliste. Das sieht bei mir so aus:

Und da weiß ich jetzt halt nicht, ob das mit den fehlenden Datenpunkten zusammenhängt?
-
@leuchtturm Leider nein.
Aber interessant ist, dass es grundsätzlich funktioniert außer die Funktionalitäten mit der Favoritenliste. Das sieht bei mir so aus:

Und da weiß ich jetzt halt nicht, ob das mit den fehlenden Datenpunkten zusammenhängt?
@BlackTigga
Auch hier das gleiche Bild bei mir.
Da die VIew auf die Datenpunkte verlinkt,
Hast du sicherlich Recht. -
@BlackTigga
Auch hier das gleiche Bild bei mir.
Da die VIew auf die Datenpunkte verlinkt,
Hast du sicherlich Recht.@Mic
habe dein sonos-vis-Projekt heruntergeladen und möchte es installieren.
Das Javascript habe ich als Sonos_FAv_auslesen unter common angelegt und gestartet.
Da bekomme ich eine FM(24099) Error file " /opt/iobroker/iobroker-data/common/Sonos_Fav_auslesen.js" Error: ENOENT: no such file or directory, open ' /opt/iobroker/iobroker-data/common/Sonos_Fav_auslesen.js' Auch deine Anzeige bekomme ich nicht hin.(Icons unter Vis.0/sonos abgelegt.) Gruß Alero -
@Mic
habe dein sonos-vis-Projekt heruntergeladen und möchte es installieren.
Das Javascript habe ich als Sonos_FAv_auslesen unter common angelegt und gestartet.
Da bekomme ich eine FM(24099) Error file " /opt/iobroker/iobroker-data/common/Sonos_Fav_auslesen.js" Error: ENOENT: no such file or directory, open ' /opt/iobroker/iobroker-data/common/Sonos_Fav_auslesen.js' Auch deine Anzeige bekomme ich nicht hin.(Icons unter Vis.0/sonos abgelegt.) Gruß Alero@Mic
Problem gelöst.
auch ich muss sagen das Projekt was du da auf die Beine gestellt hast verdient Anerkennung.Ich hätte da auch noch eine Anfrage:
- wäre es möglich die Sonosplaylist in ein Dropdown zu packen.
- Erweiterung um Shares vom Nas ansprechen zu können. Also Musik vom Nas auswählen zu können
Gruß
Alero -
@Mic
Problem gelöst.
auch ich muss sagen das Projekt was du da auf die Beine gestellt hast verdient Anerkennung.Ich hätte da auch noch eine Anfrage:
- wäre es möglich die Sonosplaylist in ein Dropdown zu packen.
- Erweiterung um Shares vom Nas ansprechen zu können. Also Musik vom Nas auswählen zu können
Gruß
Alero@alero said in [Vorlage] Script für Sonos-Adapter:
Problem gelöst.
Hi Alero, bedeutet, dass bei dir sämtliche Datenpunkte angelegt worden sind und die Fav-Liste funktioniert?
https://forum.iobroker.net/topic/24743/vorlage-script-für-sonos-adapter/83?loggedin=true
https://forum.iobroker.net/topic/24743/vorlage-script-für-sonos-adapter/85?loggedin=true
-
@alero said in [Vorlage] Script für Sonos-Adapter:
Problem gelöst.
Hi Alero, bedeutet, dass bei dir sämtliche Datenpunkte angelegt worden sind und die Fav-Liste funktioniert?
https://forum.iobroker.net/topic/24743/vorlage-script-für-sonos-adapter/83?loggedin=true
https://forum.iobroker.net/topic/24743/vorlage-script-für-sonos-adapter/85?loggedin=true
@blacktigga
Hi,
Mit Problem gelöst meine ich das ich jetzt alles sehe was ich importiert habe und kann es auch benutzen.
die Datenpunkte habe ich mir noch nicht angeschaut. Ich habe auf jeden fall meine Seinder in dem linken Feld. Wenn sie in meinen Fav sind sind sie gelb.
Ansonsten grau. Wenn ich drauf drücke spielt er ab.Gruß
Alero -
@blacktigga
Hi,
Mit Problem gelöst meine ich das ich jetzt alles sehe was ich importiert habe und kann es auch benutzen.
die Datenpunkte habe ich mir noch nicht angeschaut. Ich habe auf jeden fall meine Seinder in dem linken Feld. Wenn sie in meinen Fav sind sind sie gelb.
Ansonsten grau. Wenn ich drauf drücke spielt er ab.Gruß
Alero@BlackTigga
muss mich korrigieren.
Auf der linken Seite sehe ich alle meine Favs.
Sind alle grau, wenn ich drauf drücke werden sie gelb und werden wenn ich Wiedergabe drücke abgespielt.
Gruß
Alero -
Hi,
diese Vorlage bietet diverse Zusatzfunktionen zur Steuerung der Sonos-Geräte. Voraussetzung ist natürlich der Sonos-Adapter.
Auszug aus den Funktionen:
-
Favoriten in VIS: In VIS können die Sonos-Favoriten, also die in der App unter "Mein Sonos" gelistet sind, als Liste dargestellt werden. Klickt man auf einen dieser Favoriten, so wird der abgespielt und entsprechend im VIS auch markiert. Ein Menü bietet auch eine Auswahl, welche Favoriten zur Auswahl stehen sollen. Hier ein gif-Video, welches das zeigt.

-
State 'allStop': Setzt ALLE Sonos-Geräte des Adapters auf "stop".
-
State 'customFavoritesPlay': Startet das Abspielen der Favoriten. Dabei wird der aktuell im Adapter gesetzte Favorit genommen, falls dieser nicht gesetzt ist, dann wird der 1. Favorit genommen. Es wird dabei auch eine Standard-Lautstärke gesetzt, die im Script unter
PRESET_VOLUMEdefiniert wird. -
State 'customFavoritesPlayG': Wie 'customFavoritesPlay', nur dass die Standard-Lautstärke der Sonos-Gruppe gesetzt wird, und nicht des einzelnen Gerätes.
-
State 'customFavoritesPlayByNumber': Spielt einen Favoriten ab, in dem die entsprechende Nummer dem State übergeben wird.
-
State 'customFavoritesPlayNext': Springt zum nächsten Favoriten-Eintrag in der Favoriten-Liste. Spielt den ersten Favoriten ab, falls aktuell der letzte Favorit gewählt ist.
-
State 'customFavoritesPlayPrevious': Springt zum vorangegangenen Favoriten-Eintrag in der Favoriten-Liste. Spielt den letzten Favoriten ab, falls aktuell der erste Favorit gewählt ist.
-
State 'volumeUp': Erhöht die Lautstärke. Voreingestellt ist die Erhöhung um 3 %, kann über
VOL_VALUEin den Script-Einstellungen angepasst werden. -
State 'volumeDown': Verringert die Lautstärke. Voreingestellt ist die Verringerung um 3 %, kann über
VOL_VALUEin den Script-Einstellungen angepasst werden. -
State 'volumeGroupUp': Wie 'volumeUp', nur dass hier die Gruppen-Lautstärke angepasst wird.
-
State 'volumeGroupDown': Wie 'volumeDown', nur dass hier die Gruppen-Lautstärke angepasst wird.
-
Geräte als Gruppe hinzufügen: Mittels
GROUP_ON_PLAY/GROUP_ON_PLAY_DEVICESkann man in den Script-Einstellungen definieren, dass beim Abspielen eines Sonos-Gerätes automatisch weitere Geräte zur Gruppe hinzugefügt werden.
Zur Einrichtung:
-
Das Script in den JavaScript-Adapter als neues JS einfügen. Dort dann entsprechend die Einstellungen vornehmen. Das Script legt pro Sonos-Gerät entsprechende Datenpunkte (States) an, also wie im Sonos-Adapter:

-
Für VIS habe ich ein Projekt
sonos-vis-project.ziperstellt, dieses ist hier zum Herunterladen verfügbar. Die Dateivis-views.jsonöffnet ihr am besten in einem Text-Editor, und macht dort Suchen/Ersetzen (STRG+h): suchen nach10_10_10_10, ersetzen durch den Channel eures Sonos-Gerätes zur Anzeige in VIS. Channel ist der Teil des States in eurem Sonos-Adapter. Also beisonos.0.root.192_168_0_100ist das dann192_168_0_100.
Dann importiert ihr das Projekt in VIS. -
Wichtig: Wenn ihr die Größe des Widgets zur Darstellung der Favoriten ändert, müsst ihr auch die CSS-Datei anpassen, damit die Darstellung nicht "unsauber" wird.
Und nun?
Das war es auch schon
Nun sollte alles laufen.
Zur Formatierung im VIS passt ihr entsprechend das CSS im VIS an, also z.B. die Farbe des aktuell ausgewählten Favoriten.Ich freue mich auf eure Rückmeldung.
-
-
@mic Mir erschließt sich die Sinnhaftigkeit des Ansatzes nicht.
Warum nutzt man nicht die entsprechenden Apps und programmiert die ganze Oberfläche mühsam selber.@marty56
Welche entsprechenden Apps mit diesen Funktionalitäten sind hier gemeint? -
@BlackTigga
muss mich korrigieren.
Auf der linken Seite sehe ich alle meine Favs.
Sind alle grau, wenn ich drauf drücke werden sie gelb und werden wenn ich Wiedergabe drücke abgespielt.
Gruß
Alero@alero said in [Vorlage] Script für Sonos-Adapter:
@BlackTigga
muss mich korrigieren.
Auf der linken Seite sehe ich alle meine Favs.
Sind alle grau, wenn ich drauf drücke werden sie gelb und werden wenn ich Wiedergabe drücke abgespielt.
Gruß
AleroGenauso sollte das alles funktionieren.
Bei mir und auch bei @leuchtturm funktioniert alles außer die Funktionalität der Fav-Liste.Kannst Du mal bei Dir schauen, wie das bei dir unter javascript.0/Sonos aussieht und posten?

-
@alero said in [Vorlage] Script für Sonos-Adapter:
@BlackTigga
muss mich korrigieren.
Auf der linken Seite sehe ich alle meine Favs.
Sind alle grau, wenn ich drauf drücke werden sie gelb und werden wenn ich Wiedergabe drücke abgespielt.
Gruß
AleroGenauso sollte das alles funktionieren.
Bei mir und auch bei @leuchtturm funktioniert alles außer die Funktionalität der Fav-Liste.Kannst Du mal bei Dir schauen, wie das bei dir unter javascript.0/Sonos aussieht und posten?

@blacktigga
So ich habe mal das Script ein wenig debugged.
Das Problem was wir haben ist das die Funktion getAllSonoChannels ein leeres Array zurückgibt:function getAllSonosChannels(instance) {
let resultArray = []; let mSelector = $('[id=^sonos.' + instance + '.root.*.pause]'); mSelector.each(function(id, i) { // Nun haben wir mit "id" die State-ID, z.B. sonos.0.root.xx_xx_xx_xx.pause // Wir trennen dieses String nun in ein Array auf. let lpArr = id.split("."); // Element Nr. 3 enthält xx_xx_xx_xx let loopChannel = lpArr[3]; // Ins Array setzen resultArray.push(loopChannel); });if (LOG_INFO) log('resultArray: ' + resultArray);
return resultArray;Ich schaue mal weiter
-
@blacktigga
So ich habe mal das Script ein wenig debugged.
Das Problem was wir haben ist das die Funktion getAllSonoChannels ein leeres Array zurückgibt:function getAllSonosChannels(instance) {
let resultArray = []; let mSelector = $('[id=^sonos.' + instance + '.root.*.pause]'); mSelector.each(function(id, i) { // Nun haben wir mit "id" die State-ID, z.B. sonos.0.root.xx_xx_xx_xx.pause // Wir trennen dieses String nun in ein Array auf. let lpArr = id.split("."); // Element Nr. 3 enthält xx_xx_xx_xx let loopChannel = lpArr[3]; // Ins Array setzen resultArray.push(loopChannel); });if (LOG_INFO) log('resultArray: ' + resultArray);
return resultArray;Ich schaue mal weiter
-
@blacktigga
So ich habe mal das Script ein wenig debugged.
Das Problem was wir haben ist das die Funktion getAllSonoChannels ein leeres Array zurückgibt:function getAllSonosChannels(instance) {
let resultArray = []; let mSelector = $('[id=^sonos.' + instance + '.root.*.pause]'); mSelector.each(function(id, i) { // Nun haben wir mit "id" die State-ID, z.B. sonos.0.root.xx_xx_xx_xx.pause // Wir trennen dieses String nun in ein Array auf. let lpArr = id.split("."); // Element Nr. 3 enthält xx_xx_xx_xx let loopChannel = lpArr[3]; // Ins Array setzen resultArray.push(loopChannel); });if (LOG_INFO) log('resultArray: ' + resultArray);
return resultArray;Ich schaue mal weiter
@leuchtturm said in [Vorlage] Script für Sonos-Adapter:
Ich schaue mal weiter
Hoffe auf Dich

Kann mangels Kenntnisse nicht gut unterstützen
-
hi, ich habe ein anderes Script. Kann ich gerade nicht über mein tab kopieren. Bin gleich am Rechner. Dann poste ich es mal hier
Gruß
AleroOk, bin gespannt.