Hi,
den ersten Baustein habe ich mal in den Download geladen.
Dieser Baustein liest die ersten 5 Playlisten und 5 Meine Radiosender aus und gibt den Namen und uri auf den Ausgängen aus.
Die uri kann in ein KO übernommen werden. Somit lassen sich die Radiosender oder Playlisten am SONOS Baustein ansteuern.
Für jede Verbesserung bin wäre ich dankbar.
###[DEF]###
[name =SONOS Playlisten / Meine Radiosender (v1.1) ]
[e#1 =Trigger/Starten #init=1]
[e#2 =ipAddr #init=192.168.0.12 ]
[e#3 =Trace-Log #init=0]
[a#1 = 1. Playliste ]
[a#2 = 1. uri ]
[a#3 = 2. Playliste ]
[a#4 = 2. uri ]
[a#5 = 3. Playliste ]
[a#6 = 3. uri ]
[a#7 = 4. Playliste ]
[a#8 = 4. uri ]
[a#9 = 5. Playliste ]
[a#10 = 5. uri ]
[a#11 = 1. Radio ]
[a#12 = 1. uri ]
[a#13 = 2. Radio ]
[a#14 = 2. uri ]
[a#15 = 3. Radio ]
[a#16 = 3. uri ]
[a#17 = 4. Radio ]
[a#18 = 4. uri ]
[a#19 = 5. Radio ]
[a#20 = 5. uri ]
[a#21 = Debug ]
[v#1 = 0 ]
###[/DEF]###
###[HELP]###
Die Datei sonosAccess.php wird benötigt. Datei ist im Download dabei.
Diese muss im Ordner /usr/local/edomi/main/include/php liegen.
Die Classen stammen von https://github.com/tkugelberg/SymconSonos. Aber bitte nicht genau diese Verwenden
von der Webseite. Hab Sie ein wenig angepasst!
Dieser Baustein liest von einem SONOS Gerät die gespeicherten Sonos-Playlisten und Meine Radiosender aus (Name und uri).
Der uri kann an ein anderes Ko übergeben werden (KO: Wert eines anderen KO setzen) und so den SONOS Baustein übergeben werden.
An E9 Radio uri und an E10 Playlist uri vom SONOS Baustein.
E1:= !=0 Triggert den Baustein
E2:= IP Adresse Sonos Gerät
A1 - A10:= Namen und uri für die gespeicherten Sonos-Playlisten
A11 - A20:= Name und uri für die gespeichten Radiosender in Meine Radiosender
A21:= Debug ob SONOS erreichbar oder nicht
###[/HELP]###
Sonos1.png
Sonos2.png
X
-
Moin timberland,Zitat von timberland Beitrag anzeigenFreiwillige an die Front....
Wer mag testen bevor ich den Einstelle.
[ATTACH=CONFIG]n915981[/ATTACH]
da ich gerade dabei bin mich in edomi zurechtzufinden und die ersten Baustellen bereits meistern konnte - und somit noch in Probierlaune bin, würde ich mich als Tester anbieten. Zwei Play1 wären zum Testen da
Gruß
friese
Einen Kommentar schreiben:
-
Guten Abend. Habe mir jetzt auch Sonos-Boxen angeschafft. Würde diese auch gerne mit Edomi ansteuern. Habe im download aber nichts gefunden. Hab ich es überlesen oder gibt es da noch nichts? Muss ich das anders integrieren?
Leider bin ich selbst nicht mit Programmierkenntnissen gesegnet und bin froh wenn ich einen LBS richtig integrieren kann.
Danke für eure Hilfe und eure Ideen. Schöne Ostern
Einen Kommentar schreiben:
-
.@LynnBayer
....und zur Strafe wird jetzt mal 500 mal
EDOMI EDOMI EDOMI EDOMI.....
geschrieben.....wobei sich Eiomi auch nicht schlecht anhört
EDOMI: "domi" ist lateinisch für "Zuhause" - und das "e" steht für garnix (Die Begründung vom Namensgeber......dem GROSSEN Meister aus Übersee!!!!!)
Einen Kommentar schreiben:
-
Habe mir heute mal alle Videos zu Eiomi angeschaut. Sieht sehr gut aus und jetzt sehe ich das Sonos darüber auch laufen wird
Sehr cool. Dann muss ich jetzt mal Eiomi installieren dann kann ich mit testen
Einen Kommentar schreiben:
-
Klar - ich teste gern mit. PM ist unterwegs...Zitat von timberland Beitrag anzeigenwenn du ihn schon testen möchtest, kannst dich bei mir melden.
Danke.
Einen Kommentar schreiben:
-
Haett ich gewusst, dass Du ne Playlist hast die "Schlager" heisst, haett ich nicht geholfenZitat von timberland Beitrag anzeigenDanke nochmals!
Ne, gern geschehen...
Einen Kommentar schreiben:
-
Mein Meister






192_168_0_51_data_log_TRACELOG_htm_20160305061401.png
Jetzt kann ich die Radio Favoriten und Favoriten Playliste vom Sonos auslesen und in ein KO übergeben.
Danke, Danke, Danke nochmals!
Einen Kommentar schreiben:
-
Das ist dieselbe Problematik:Zitat von timberland Beitrag anzeigenWo ich aber immer noch ein Problem habe ist bei "xpath".
ist syntaktisch falsch, denn [xyz] kann man nur als Array Index verwenden, was Du da aber hast ist erstmal ein Funktionsaufruf, da darf man das nicht einfach hinterdranhaengen...PHP-Code:$container->xpath('dc:title')[0]
Also auch hier:
PHP-Code:$b=$container->xpath('dc:title');
$Associations[] = Array($Value++, (string)$b[0], (string)$container->res, -1);
Einen Kommentar schreiben:
-
@KNXFan1970
wenn du ihn schon testen möchtest, kannst dich bei mir melden.
Muss noch ein wenig Feintunen
Einen Kommentar schreiben:
-
Hallo Michael,
diese Problem habe ich so ähnlich gelöst.
Wo ich aber immer noch ein Problem habe ist bei "xpath". Sobald das drinnen ist, kann ich das Projekt nicht übertragen. Es kommt eine Fehlermeldung.
$Associations[] = Array($Value++, (string)$container->xpath('dc:title')[0], (string)$container->res, -1);
wobei wenn ich xpath rausnehme, dann geht es.
$Associations[] = Array($Value++,(string)$container->res, -1);
aber dann fehlt mir halt der string
Zuletzt geändert von timberland; 05.03.2016, 16:04.
Einen Kommentar schreiben:
-
Ich kenn die Sonos-Klasse nicht, aber das ist ein simpler Syntaxfehler. So aehnlich waere es vermutlich richtiger:Zitat von timberland Beitrag anzeigenkannst du mir bitte sagen warum ich hier das Projekt nicht übertragen kann sobald ["Result"] in der Zeile steht.
PHP-Code:$a=$sonos->BrowseContentDirectory('SQ:');
$radio=$a['Result'];
Einen Kommentar schreiben:
-
-
Christian
kannst du mir bitte sagen warum ich hier das Projekt nicht übertragen kann sobald ["Result"] in der Zeile steht.
$radio=$sonos->BrowseContentDirectory('SQ:')['Result'];
Einen Kommentar schreiben:
-
Hi,
gibt es dafür einen Grund, dass diese Funktion im Logikbaustein nicht funktionieren? Auf der Webseite funktioniert das problemlos.
PHP-Code:public function UpdatePlaylists()
{
$Associations=Array();
$Value=1;
foreach ((new SimpleXMLElement($this->BrowseContentDirectory('SQ:')['Result']))->container as $container) {
$Associations[] = Array($Value++, (string)$container->xpath('dc:title')[0], (string)$container->res, -1);
// associations only support up to 32 variables
if( $Value === 33 ) break;
}
usort($Associations, function($a,$b){return strnatcmp($a[1], $b[1]);});
$Value = 1;
foreach($Associations as $Association) {
$Associations[$Value-1][0] = $Value++ ;
}
return $Associations;
}
Einen Kommentar schreiben:


Einen Kommentar schreiben: