br_sonos

[QUOTE=bengie;129452
Versuche mal …


require ("functions.inc.php");
br_sonos_read_all();

(Alle Zonen aktualisieren)
Oder:


require ("functions.inc.php");
br_sonos_read(46344);

(Zone deren IP in der IPS Variable mit der ID steht aktualisieren; ID der SONOS_IP halt)

[/QUOTE]

hi bengie,

kurze Rückmeldung: require/br_sonos_read funktionierte nicht, bekam immer Fehlermeldung „can not redeclare PHPFunctions.php“ (aus dem Gedächtnis zitiert). Habs nun so gelöst das ich am Ende das Volume-Fade den finalen Volume-Wert in die Variable schreibe - was wiederum ein Refresh auslöst. Klappt auch prima :wink:

Achtung: der häufige Abruf ohne und / oder evtl. auch mit Serial führt anscheinend zur Blockierung durch den Anbieter!!! :eek: Jedenfalls erhalte ich im offiziellen Controller keine Auswahl der Stationen mehr.
Das Problem lässt sich durch den Wechsel der ggf. dynamischen IP beheben. Ich denke ich verschiebe die Abfrage aus der getposinfo in br_sonos_read um bei Radiotime bedarfsorientierter (seltener) nachzufragen.
Test also auf eigenes Risiko!!!

Hallo,

ich habe in der PHPSonos und in der br_sonos einiges verändert um das korrekte Radio Logo von Radiotime anzuzeigen (da könnte man ggf. noch einige Infos mehr abholen). Danke an Immergut!

Ich teste gerade mit dem aktuellen Bundle - wer mag, kann es ja auch mal ausprobieren. :smiley:

Grüße, Benjamin

[b]Edit:

  • Probleme mit fehlendem „Title“ scheinen auch behoben zu sein
  • Leider gibt es in 329 (br_sonos.inc.php) noch Div by Zero, da dies abgefangen wird hab ich wirklich mal ein @ davorgehauen[/b]

br_sonos.zip (50.3 KB)

ja prima, das sieht doch gut aus!
ich hab die aktuellen Files einfach mal übergebügelt, funktioniert auch auf Anhieb. 2 Schönheitsfehler hab ich gesehen:

  1. einige Cover werden horizontal gestaucht dargestellt (NDR2, NRJ Hamburg)
  2. im Meldungsfenster tauchen ab und zu solche Fehlermeldungen auf:

Could not read File: media\Cover_Stack_21591.png

good Job! :cool:

Nachtrag: und die Sonossi in der Küch heißt nun auch „Küche“ und nicht mehr „K?“:smiley:

:wink: Ich muss mir die Grafikroutinen nochmal ansehen, damit die kleinen Logos ggf. nicht so pixelig aufgepustet werden und doof aussehen, das hatte ich schon auf der Liste.

Das „could not read file“ ist wohl eine Race Condition, ich muss mal schauen wie man das mit IPS Mittlen am Besten in den Griff bekommt. Die Meldung habe ich auch ab und zu.

Vielen Dank für Dein Feedback! :slight_smile:

Achtung: der häufige Abruf ohne und / oder evtl. auch mit Serial führt anscheinend zur Blockierung durch den Anbieter!!! :eek: Jedenfalls erhalte ich im offiziellen Controller keine Auswahl der Stationen mehr.
Das Problem lässt sich durch den Wechsel der ggf. dynamischen IP beheben. Ich denke ich verschiebe die Abfrage aus der getposinfo in br_sonos_read um bei Radiotime bedarfsorientierter (seltener) nachzufragen.
Test also auf eigenes Risiko!!!

Hallo Benjamin,
das sieht ja gut aus. Kann es leider nicht testen, da meine Frau das Sonos nur mit Controller bedient und wir hauptsächlich Radio hören. Wenn jetzt auf dem Controller keine Radioauswahl mehr da wäre, würde es den WAF doch enorm nach unten drücken!!:confused:
Also muss ich leider noch warten, bis du das gefixt hast.:wink:

Grüße und nochmal dickes Lob an dich,
Jürgen

sehr interessant! ich hab mich heute morgen auch gewundert warum ich weder die gespeicherten Radiostationen sehe noch irgendwelche neuen eingeben kann. Und nu?

Hallo Raketenschnecke,
nach ein einem Wechsel der IP ist das Problem erstmal behoben. Ich denke Du solltest auch erstmal auf die alte br_sonos / PHPSonos zurückgehen.

Ich muss das noch genauer Testen und wie in der aktualisierten Warnmeldung beschrieben ggf. aus der Klasse in br_sonos verschieben um dann weniger häufig und nur bei Bedarf Radiotime zu bemühen. :mad:

Hast Du in der PHPSonos in der Function getpositioninfo diese Zeile „if (($station!=“")and $station[0]==„s“){" ? Die war in dem ersten Zip so nicht drin, ich hatte nach ein paar Minuten schnell ein neues Zip hochgeladen (für das erste gab es nur einen Download).

Grüße, Benjamin

auf die Schnelle Feedback: ich bin bei KDG, das ist quasi ne feste IP :frowning:

:frowning: Ich geh von einer zeitlich befristten Blockierung aus, sorry.
Falls Du die o.g. Zeile nicht genauso in der PHPSonos musst Du auf Jedenfall eine andere br_sonos nutzen, denn sonst fragt das Ding noch öfter und auch falsch bei radiotime an. Bei Deiner KDG Siuation würd ich allerdings wohl in Jedem Fall die alte br_sonos vorerst nutzen - sicher ist sicher.

hi bengie,

bin grad nach Hause gekommen und hab nun etwas mehr Zeit qualifiziert zu antworten: durch meine Anwesenheitserkennung konnte ich nicht verhindern das sich mein gesamtes Audio-System (bestehend aus 5 Sonossis und 1 DENON) beim Betreten der Wohnung aktiviert. Habe nun die br_sonos_inc gegen die vom 04.08. ausgetauscht (PS: wäre vielleicht nicht schlecht wenn Du das .zip-File versionierst oder mit Datum versiehst), Radio funktioniert wieder wie vorher: die gespeicherten Radiosender sind wieder da und auswählbar (per Script gestarteten Radiosender abspielen ging aber vorher auch noch).

nee, hatte ich scheinbar nicht drin - werd ich gleich mal aktualisieren.

ich will ja nicht nörgeln :rolleyes: aber dieser fehler nervt mich zusehends und verdirbt mir den Spaß am Testen:


IPS-Err-PHP  2011-08-29 19:57:00.363  Warning: Division by zero
   Error in Script C:\IP-Symcon\scripts\br_sonos.inc.php on Line 329


:wink:

Will auch nicht Nörgeln, aber :cool: ich habe die Grafikroutinen und die Radiotime Sachen heute 30 Mal umgebaut nur um hinterher zu sagen - alles misst :mad: und bin dann auf meinen Stand vom 28.08. zurückgegangen. Die Probleme mit der Blockierung gibt es damit natürlich (habe ich just 2 Mal erlebt und meine Verbindung neu aufgebaut).

Das @ vor die 329 wirst Du ja ehrstmal auch selbst setzten können. :wink:

[TEST]

Hallo zusammen,
es gibt nun einen eigenen Tunein API Key für die PHP Sonos Klasse! :slight_smile:

Im Anhang findet Ihr meinen aktuellen br_sonos Code, der zum Teil von dieser Möglichkeit gebrauch macht (Anzeige der Radiosender Logos).

Eigentlich sollten damit keine Sperrungen mehr ausgelöst werden… aber dies ist ja ein Test!
Außerdem habe ich über die Dokumentation und Hilfe von Tunein einige Radioanzeigen verbessern können.

Da an vielen Stellen jeweils ein Wenig geändert wurde, könnte ggf. auch nichts mehr bei Euch funktionieren oder ein Bug ist ganz plötzlich weg!! :smiley:

Grüße, Benjamin

br_sonos_110915.zip (219 KB)

ganz großes Kino, danke dir für dein Engagement!

ich hab die Dateien eben auf die Schnelle in die Verzeichnisse kopiert, die Radiologogs werden (auch nicht mehr verzerrt) angezeigt - super! Allerdings hab ich im Meldungsfenster ein paar rote Zeilen (schau mir das heute Abend genauer an)

Diese roten Zeilen gab es ja schon seit einiger Zeit (wobei das die Funktion wenig störte)… :mad: Martin (habe die Routinen zum Abruf der Cover ja von ihm übernommen) hatte bei seinem Abruf der Cover die ursprüngliche Datei vorher gelöscht, da dies lt. meinen Tests nicht mehr notwendig ist, habe ich das in meiner Kopie des Codes mal entfernt (und teste noch weiter) - das Updaten der Bilder klappt damit unter IPS 2.4 bisher wesentlich schneller und ohne diesen Fehler. :slight_smile:

Hallo Benjamin,
habe Deine neuen Dateien jetzt über meine alten kopiert. Wenn ich jetzt per Controller einen Radiosender auswähle, wird er gestartet und das passende Cover angezeigt. Starte ich jedoch einen neuen Radiosender aus dem WF, so wird der Sender gestartet und es kommt eine Fehlermeldung im WF. Radio läuft, Cover wird jedoch nicht aktualisiert.

Grüße, Jürgen

Hallo Jürgen,
danke für das Feedback! :slight_smile:

Die Radiologos werden nur über tunein abgerufen, wenn Du keine URL von tunein.com verwendest, klappt das nicht. Vermutlich nutzt Du per IPS den direkten Aufruf der StreamURL. Bisher kriege ich von keinem Sonos dafür ein Logo und auch keine Indiz zu den möglicherweise extrahierten Logos - das geht also vermutlich nicht bei für PHPSonos eingefügte URLs?
Mit den URLs wie Sonos sie selbst verwendet, welche zu tunein (kann man auch auf der WEbsite raussuchen) zeigen, sollte das Logo korrekt angezeigt werden.

Naja, den gezeigten Fehler sollte es trotzdem nicht geben. Bist Du sicher das dieser nicht mit deiner Konfiguration des IPSLoggers zusammenhängt (diese Meldung sollte ja sonst nicht unnötigerwise kommen -da als trace klasssifiziert-)?

Viele Grüße, Benjamin

[TEST]
Da an vielen Stellen geändert wurde, könnte ggf. auch nichts mehr bei Euch funktionieren oder ein Bug ist ganz plötzlich weg!!

Hallo,
ich habe noch einige Kleinigkeiten geändert, die bei mir auch die Anzeigeprobleme bei nicht intune Radio URLs beheben und allgemein dazu beitragen das richtige CoverArt zu sehen.
Des Weiteren enthält die beigefügte PHPSonos Klasse auch zwei Neuerungen, die man mal vorab testen kann. :slight_smile:


[b]PHPSonos Changes:[/b]
- 110915 - br added PhpSonos API key/ partnerid for Intune (usable for ANYONE who uses
the PHPSonos class noncommercial or commercial) - thanks to Ben@tunein for advocation
and great support!
Drop me a note if you are a PHPSonos developer and need access to
documentation of tunein APIs.
- 110916 - br added GetCurrentTransportActions() which returns the currently valid actions
(nearly always returns all actions "Play, Stop, Pause, Seek, Next, Previous" for me)...
- 110916 - br added Get and SetInvisible to make it possible to change visibilty for party
mode or other things (kids should not see their player in the night *g)
- 110916 - br improved phpdoc tags

Grüße und Viel Spaß :loveips:, Benjamin

P.S.:

  1. Ich habe jetzt Brownsons neuesten Logger bei mir laufen und damit auch einige Fehler (Stack Trace!) bei der Debugausgabe nicht mehr.
    Wer einen Stack Trace hat, sollte also mal updaten. :rolleyes:
  2. den Fehler bezüglich der Umlaute hab ich auf dem Schirm - ohne Ö3? - das geht ja garnicht! :eek:

br_sonos20110926.zip (142 KB)

:):)Hallo Also ist ja ne sssuuppperrr Sache mit br_sonos… :slight_smile: Ganz grosses Kino und zuerst mal bereits vielen Dank!!!

Habe nach Anleitung so installiert… Mensch klappt alles und sofort… von Anfang an. Inklusive der Profilerstellung tutto bene.

NAtürlich schreib ich hier auch weil ich eine kleine Frage hätte. Die lautet ob es mit den bestehenden Routinen, Klassen so möglich ist ein Stereopaar einzubinden oder ist hier Handarbeit angesagt? (L und R haben ja eigene IP’s also vermutlich zwei mal entsprechende Zonen erstellen und dann irgendwie verknüpfen…?) Oder falls nicht vielleicht ein paar Tips/Code Schnippselchen wie sich das gut realisieren lässt und um soviel wie möglich von den bestehenden Klassen verweden zu können.

wenn dein Stereo-Paar statisch ist (d.h. beide Sonos bleiben in der Regel verheiratet) brauchst du keine explizite Script-Untestützung. Die beiden Boxen werden einmal manuell verheiratet - das wars. Vom script werden sie wie eine Box behandelt: du gibts die IP einer der beiden Boxen an - ready for ;)Sound