Sonos steuern

Begonnen von Will, 05 Januar 2013, 15:51:12

Vorheriges Thema - Nächstes Thema

Reinerlein

Hi Claudiu,

ich hatte die Größe so gewählt, dass der Text daneben Vertikal gleich groß ist.
Ein Attribut dafür geht natürlich, ist aber dann mit einem Rattenschwanz gesegnet. Dann muss man eigentlich auch Größe und Design der Titel-Informationen anpassbar machen, und dass ist dann doch ein größeres Fass, als ich mit der Idee eigentlich verfolgen wollte :)

Ich wollte eine sauber funktionierende Grundlage schaffen, mit der man notfalls auch gut leben kann. Natürlich kann man sich die ReadingsGroup anpassen, und die Idee ist ja auch, dass man sich die beiden Prozeduren herauskopiert und in die eigene 99_myUtils packt (umbenennen nicht vergessen). Dort kann man dann nach Belieben anpassen, in welchem Format das dargestellt werden soll.
Dann braucht man in den ReadingsGroups nur noch den Perl-Code in den Klammern auf den/die neu vergebenen Prozedurnamen anpassen, und schon hat man sein gewünschtes Design :D

Bitte versteh mich da nicht falsch, du kennst mich, ich bin eher der Typ der alles konfigurierbar gestaltet, aber ich denke hier ist der bessere Weg, über eigenen Code zu gehen :-\

Grüße
Reinerlein

P.S.: @der-Lolo: löschen heißt ja nicht immer wirklich löschen. Es reicht ja auch ausmarkieren. Die meisten haben das ja in eine eigene Config-Datei ausgelagert, da ist es besonders einfach...

rapster

#1216
Hi Reinerlein,

ah alles klar, verstanden, werde das mal die Tage testen was sich daraus schönes bauen lässt ;)
... hört sich zumindest schonmal gut an!

Und ja, an den Text nebendran habe ich garnicht gedacht  ;D


Gruß Claudiu

der-Lolo

Tausend Dank Reinerlein,
Du bist mein Held!
Das funktioniert ausgezeichnet... Auch im Dashboard.

Ist Dir bei dem gebastelt vielleicht noch eine Idee gekommen wie man auf Favoriten und oder Playlisten zugreifen könnte?

Und vielleicht wäre es noch toll die Gruppierungsverhältnisse anzuzeigen...

der-Lolo

Leider zu früh gefreut - Anfangs war alles schick, sah toll aus -
Wenn man den Dashboard Room verlässt und wieder hineingeht knallt es.


rapster

Hi Reinerlein,

ZitatDa manche Anwender aber vielleicht über einen Proxy in ihr lokales Netz auf den Fhem-Server zugreifen, und bestimmt nicht die Zoneplayer nach aussen hin zugreifbar machen wollen, habe ich im Modul noch einen kleinen Proxy implementiert.
Dieser wird durch das Attribut "generateProxyAlbumArtURLs" aktiviert. Gleichzeitig werden dabei auch, wie der Name schon sagt, die URL-Readings so gebaut, dass sie über diesen Proxy zugreifen...
Ein normaler

Mit dem "attr generateProxyAlbumArtURLs 1" funktioniert es bei mir leider nicht....
Not Found

The requested URL /fhem/sonos/proxy/https://d3rt1990lpmkn.cloudfront.net/original/d2c237fe42863ec3c4d8aeed31c2537222dcffb2 was not found on this server.


Mit dem Attribut auf 0 funktioniert es zumindest im LAN.

Hast du eine Idee?

Gruß Claudiu

Reinerlein

Hallo der-Lolo,

das ist echt komisch. Der HTML-Code ist in sich geschlossen. da ist ja auch nichts besonderes drin. Ein paar '<br />' für die Umbrüche, ein paar '<b>' für den Fettdruck der aktuellen Informationen und eine zweispaltige Tabelle für die Anzeige der nächsten Wiedergabe.
Das aktuelle Cover links ist nur ein '<IMG />'.

Nix, was einen besonderen Aufwand für einen Browser darstellen würde...
Wie ist denn der Mechanismus für das Auf- und Zuklappen gebaut?

Zu dem anderen:
Die Playlisten haben sowieso keine Cover, sodass der bisherige Mechanismus nicht erweitert werden braucht/kann. Du kannst also einfach ein "get sonos_Wohnzimmer Playlists" machen, und erhältst eine kommaseparierte Liste von Strings in doppelten Anführungszeichen, die du in Perl einfach weiterverarbeiten kannst...
Was ich noch bauen wollte, ist einen zusätzlichen Getter für Sonos- und Radio-Favoriten, der die Liste der Namen der Elemente und die entsprechenden Links zu den Covern enthält.

Auch der Gruppierungszustand ist ja schon da:
einfach ein "get sonos Groups" und du erhältst eine kommaseparierte Liste von []-Listen, die die einzelnen Gruppen repräsentieren, wobei das jeweils erste Element der Gruppenmaster ist, von dem die Steuerung und Lieferung der Musik ausgeht.
Das kann man auch einfach Perl zerlegen und in eine schöne Darstellung umwandeln...

Grüße
Reinerlein

Reinerlein

Hi Claudiu,

hast du vielleicht deinen Pfad umkonfiguriert?
Der Mechanismus geht momentan von '/fhem' aus...

Grüße
Reinerlein

rapster

Hi Reinerlein,

nein Pfad usw. ist standard alles. (z.B. https://fhem.domain.tld/fhem?room=Multimedia )

Auf der FHEM-Kiste läuft allerdings noch ein apache Reverse-Proxy, siehe => http://forum.fhem.de/index.php/topic,29909.0.html
Der sollte das allerdings nicht weiter beeinflussen (mit dem attr auf 0 funktioniert es ja auch...)

Gruß Claudiu

Reinerlein

Hi Claudiu,

genau der Apache beeinflusst es wohl:D

Kannst du bitte mal prüfen, was im Reading "currentAlbumArtURL" (oder von next, falls das Problem dort auftritt) steht?
Eigentlich sollte der Teil für das "echte" Cover URL-Encoded sein... das war in deiner Fehlermeldung nicht so...

Nicht das der Apache da etwas umändert, weil er schlau sein möchte... Ich habe leider keinen Proxy hier, um das mal eben zu testen...

Danke schon mal...

Grüße
Reinerlein

rapster

Hi Reinerlein,

das Problem tritt sowohl beim aktuellen als auch beim nextAlbumArt auf.


currentAlbumArtURL   /fhem/sonos/proxy/https%3A%2F%2Fd3rt1990lpmkn.cloudfront.net%2Foriginal%2Fd2c237fe42863ec3c4d8aeed31c2537222dcffb2
nextAlbumArtURL  /fhem/sonos/proxy/https%3A%2F%2Fd3rt1990lpmkn.cloudfront.net%2Foriginal%2F41a8eccc1946e40981bf41715d06c6444e473ab3

Im Firefox:
The requested URL /fhem/sonos/proxy/https://d3rt1990lpmkn.cloudfront.net/original/d2c237fe42863ec3c4d8aeed31c2537222dcffb2 was not found on this server.
The requested URL /fhem/sonos/proxy/https://d3rt1990lpmkn.cloudfront.net/original/41a8eccc1946e40981bf41715d06c6444e473ab3 was not found on this server.


Danke und Gruß Claudiu

Reinerlein

Hi Claudiu,

ich frage mich gerade, wer für die Fehlermeldung verantwortlich ist.
Welches Element in deiner Kette produziert diese Meldung, und warum ist der Part hinter "/sonos/" bereits dekodiert?
Das sollte kodiert beim Sonos-Modul-Proxy ankommen. Nur so bleibt es eine gültige URL und kann auch vom Modul erkannt werden...
Das Reading selbst ist ja korrekt kodiert.

Was genau macht denn dein Apache dazwischen?
Geht es, wenn du mal direkt an dein Fhem gehst, ohne den Apache dazwischen?

Grüße
Reinerlein

rapster

Hallo Reinerlein,

der Apache macht 0815 ReverseProxy, in dem Thread ist die Config => http://forum.fhem.de/index.php/topic,29909.0.html

Ja direkt geht es:
http://192.168.1.12:8083/fhem/sonos/proxy/https%3A%2F%2Fd3rt1990lpmkn.cloudfront.net%2Foriginal%2Fd2c237fe42863ec3c4d8aeed31c2537222dcffb2

An einer Fehlkonfiguration des Apaches kann es auf jedenfall nicht liegen,
weil mein normaler Zugriff aus dem WAN läuft sogar über 2 ReverseProxys.
1x der lokal installierte Apache auf der FHEM-Kiste,
sowie 1x über die WebserverProtection meiner Sophos UTM (Firewall).

Ich habe jetzt den Traffic mal nur über die Sophos UTM laufen lassen, ohne irgendwelche Firewall-Profile und selbst da tritt das Problem auf.
Bei der UTM konnte ich diese Problem noch bei keiner Applikation sei es Sharepoint, OWA, Traveler, iNotes usw. beobachten, deswegen gehe ich mal davon aus dass es weder an dem Apache-Proxy, noch an der UTM liegt (Habe es ja soweit auch jeweils separat getestet).

Gruß Claudiu

Reinerlein

Hi Claudiu,

hmmm... wir müssten mal feststellen, was beim Sonos-Modul-Proxy eigentlich für eine URL ankommt, wenn überhaupt. Ich denke nämlich, dass es gar nicht soweit kommt. Irgendeine Komponente vorher meint vielleicht das nicht durchreichen zu müssen, weil irgendein regulärer Ausdruck vielleicht nicht ganz genau passt...

Ich habe noch mal was angepasst, um die Proxy-URL etwas "landläufiger" zu machen. Vielleicht gelingt es den Zwischenstationen dabei besser...

Testest du bitte nochmal?

Grüße
Reinerlein

rapster

Hi Reinerlein,

jetzt klappt es! ;D
Sowohl aus dem LAN (nur apache RevProxy), als auch aus dem WAN (apache + UTM RevProxy).

Danke dir!
Gruß Claudiu

P.S. auch longpool funktioniert einwandfrei!

yetiman

Hallo Reinerlein,

hatte folgenden Fehler:
Can't locate object method "tid" via package "threads" at ./FHEM/21_SONOSPLAYER.pm line 707, <$fh> line 219.

Nach dem heutigen Update habe ich folgenden Fehler:
Undefined subroutine &main::SONOS_getDeviceDefHash called at ./FHEM/21_SONOSPLAYER.pm line 357.

Bei beiden Fehlern stürzt komplett FHEM ab.

P.S. Hattest du mal eine neue Release Version hochgeladen die letzten tage?

Ingo