FHEM Forum

FHEM - Anwendungen => Multimedia => Thema gestartet von: Will am 05 Januar 2013, 15:51:12

Titel: Sonos steuern
Beitrag von: Will am 05 Januar 2013, 15:51:12
Hallo,

betreibe seit einigen Tagen FHEM auf einer Fritzbox (Schaltsteckdosen, Temperaturmessung) und frage mich nun, ob es moeglich ist mein Sonos System ueber FHEM zu steuern. Wollte das erst mal ganz simpel machen --> Pause / Play auf Knopfdruck oder per notify bei Event, spaeter vielleicht abspielen einer speziellen Playlist bei Knopfdruck (Stichwort WAF).
Muss dazu sagen, dass ich keinerlei Erfahrung mit Perl oder PHP habe.

Bei recherchieren bin ich unter anderem auf diese Projekte gestossen:

http://www.purple.org/sonos/ (http://www.purple.org/sonos/)  (wohl in Perl programmiert)

http://www.ip-symcon.de/wiki/PHPSonos (http://www.ip-symcon.de/wiki/PHPSonos)   (PHP Modul fuer IP symcon)

Da es fertige Loesungen fuer andere Plattformen gehe ich davin aus, dass das prinzipiell funktionieren kann. Sniffen der BEfehle mit Wireshark bringt mich nicht weiter, da ich nicht weiss, wie und was ich dann davon in FHEM bringen muss.

Hat sich irgendjemand schon damit beschaeftigt bzw. koennt ihr mir sagen, ob ein fertiges Modul mit wenig Aufwand fuer FHEM einsetzbar waere?

Vielen Dank schon mal.

W
Titel: Aw: Sonos steuern
Beitrag von: Will am 05 Januar 2013, 15:58:51
weiteres Beispiel (Loxone):

http://blog.loxone.com/de/2011/11/04/sonos-der-miniserver-home-automation-meets-multiroom-audio/ (http://blog.loxone.com/de/2011/11/04/sonos-der-miniserver-home-automation-meets-multiroom-audio/)
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 05 Januar 2013, 21:37:56
Hi,

ich bin seit einer Woche dabei ein Sonos-Modul für FHEM zu schreiben.
Bis jetzt habe ich die Konsumentenseite fertig. Ich kann also auf Ereignisse meines Player reagieren (Songwechsel, Abspielzustandsänderungen wie Play und Pause, an und abschalten des Players) und weiteres.

Jetzt kommt die Steuerung dran, sodass ich den Player z.B. starten kann.

Allgemein gilt: Da die Grundlage der Kommunikation mit den Zoneplayern UPnP ist, wird dieses Modul auch nur mit installiertem UPnP-Perl-Modul funktionieren.
Das wird zum einen nicht auf jeder Hardware laufen, zum anderen muss man sich mal Gedanken über die Auslieferung dieser Library machen. Man könnte sie theoretisch auch mit FHEM ausliefern...

Ich denke, dass ich in ein paar Tagen hier was einigermaßen stabiles Veröffentlichen kann.

Grüße Reinerlein
Titel: Aw: Sonos steuern
Beitrag von: Will am 06 Januar 2013, 02:46:12
Hi reinerlein,

Das klingt ja super - habe mich ehrlich gesagt gewundert, dass da noch nichts verfügbar ist. Integration des sonos macht meiner Ansicht nach voll Sinn.
Wenn du sagst "läuft nicht auf jeder Hardware" klingt das erst mal so als wuerde eine fritzbox nicht ausreichen? Raspberry Pi?

Warte dann mal gespannt auf dein Ergebnis.

Danke!

W
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 06 Januar 2013, 11:26:13
Hi,

das mit der Hardware ist znächst mal eine Vermutung, da hier im Forum immer wieder erwähnt wird, das man auf der FritzBox manchmal Probleme mit extra Modulen hat. Auf einem Raspberry wird es auf jeden Fall laufen, da es dort bei mir eingesetzt werden soll :-) Fritzbox werde ich nicht testen können. Da müsste dann jemand testen, der sowas laufen hat...
Momentan entwickeln tue ich auf einem Windows 2003, dort läuft es also auch schon mal...

Für die Ausführung werden auch Threads eingesetzt, da man ständig lauschen muss, und aus dem UPnP Aufruf nicht mehr zurückkommt - damit wäre FHEM dann aktiv blockiert :-) Das könnte also auch noch ein Engpass für Hardware werden...

Also, wie gesagt, es kann/wird noch ein paar Tage dauern, da das leider nicht ganz so trivial ist, wie es auf den ersten Blick scheint. Bin aber dran :-)

Grüße Reinerlein
Titel: Aw: Sonos steuern
Beitrag von: det. am 06 Januar 2013, 11:27:10
Hallo Reinerlein,

Das klingt ja vielversprechend! Ich nutze FHEM seit ca. 1 Jahr, der SONOS Zoneplayer hängt mit dem Rest der Musikanlage an einer FS20 Schaltsteckdose. Wenn ich die mittels iPad über FHEM einschalte, startet auch der SONOS. Danach muss ich jetzt in die SONOS App. wechseln. Die Playlistenauswahl und der Zugriff auf die Ordner auf dem Heimserver über die App. finde ich sehr gelungen , das fehlt mir nicht in FHEM. Was ich als absolutes Highlight einer Integration in FHEM finden würde: nach SONOS Start über einen Button meine Lieblingsradiostation Radio Paradise starten und die Lautstärke steuern. Das wäre für mich der richtige Schritt in Richtung Hausautomatisierung in dem Zusammenhang.
Programmieren kann ich es leider nicht, aber mit testen gern, sowohl auf FB7390 als auch auf RasPi.
Titel: Aw: Sonos steuern
Beitrag von: Will am 06 Januar 2013, 13:39:45
Ich sehe das ähnlich. Wäre erst auch nicht an einer sonos Oberfläche in fhem interessiert (hat abet was)  
Ich würde steuern wollen:
Auf Knopfdruck / notify play/pause/mute/leiser/lauter
Auf Knopfdruck vordefinierte playlist abspielen (Max 3)


In anderen Foren machen die Jungs durchsagen über Events gesteuert :-) , nicht mein Plan.

W
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 11 Januar 2013, 02:21:59
Hi zusammen,

seit meiner letzten Mitteilung sind nun ein paar Tage vergangen, und ich wollte mal ein kurzes Update einwerfen:
Das Modul nimmt Form an. Ich habe jetzt einen Stand, der bereits eine ganze Menge kann.
Aus diesem Grunde werde ich mal ein kurzes Feature-Freeze einwerfen, und die Doku nachziehen.

In der Doku werden die Mittlerweile doch recht umfangreichen Möglichkeiten und auch zu berücksichtigende Dinge beschrieben. Desweiteren werde ich gleich ein paar Beispiele reinpacken.
Parallel dazu teste ich das ganze natürlich in meiner Umgebung. Leider habe ich nur einen ZonePlayer, so dass bei euch mit mehreren Playern durchaus noch etwas auftreten kann was gefixt werden muss.

Ein Abriss, was bei mir zum Testen bereits läuft:
- Alle Player werden automatisch erkannt und in FHEM mit den wichtigsten Attributen angelegt. Desweiteren wird das Icon des Players heruntergeladen und als Attribut zugewiesen
- An/Aus des Players. Das wird einfach über einen Ping-Check realisiert, da ich dazu keine Mitteilungen bekomme. Natürlich werden dazu dann FHEM-Events generiert, auf die reagiert werden kann
- Anzeige aller Titel, Interpreten und Album-Informationen, sofern verfügbar. Das erfolgt Event-gesteuert. Also in dem Augenblick, wo eine Information am Sonos wechselt. Dazu werden dann auch FHEM-Events generiert, auf die wieder reagiert werden kann. z.B. Interpret == Psy, dann die Steckdose schnell wieder ausmachen :-)
- Das aktuelle Cover wird auf den FHEM-Rechner heruntergeladen, und kann per Weblink o.ä. angezeigt werden
- Nahezu vollständige Steuerung des Players (z.B. Play, Stop, Pause, Next, Previous, Leiser, Lauter, Lautstärke einstellen, Mute, Playlists laden/speichern/leeren)
- Informationstexte können frei (per XML-ähnlicher Notation) zusammengestellt werden (bis zu vier verschiedene Definitionen). Damit kann man z.B. LCD-Anzeigen mit fertigen Textzeilen beliefern (natürlich Event-getriggert)
- Leider sind Radiostationen nicht trivial in der Einbindung, da Sonos die Favoriten nicht im System ablegt, sondern vom Controller selbst aus dem Internet geholt werden. Da muss ich mir noch was einfallen lassen, um die URL eines bestimmten Senders herauszufinden/zu speichern. Desweiteren kann man momentan auch nur Playlisten laden. Nicht direkt selber Titel angeben. Kommt aber noch... mal schauen... Nach dem First Release :-)

Ich habe hier auch mal zwei einfache Notify-Zeilen im Zusammenspiel mit dem FB_Callmonitor geschrieben, welche bei einem Anruf die Lautstärke um 20 Einheiten runter dreht, und bei Beendigung des Anrufs wieder zurück auf die vorhergehende Stellung geht. Das berücksichtigt keine Sonderfälle oder so, sondern ist einfach ein Cooles Beispiel :-)

Also, ich stürze mich jetzt auf die Doku und den Test, und komme bald wieder durch...

Grüße Reinerlein

P.S.: Im Anhang mal ein Screenshot meiner Übersichtsanzeige in FHEM. So sieht das aus, wenn es automatisch erzeugt wurde, inkl. Weblink, Gruppe und dem Original-Bezeichner des ZonePlayers. Lediglich der FileLog ist Handarbeit...
Titel: Aw: Sonos steuern
Beitrag von: Will am 11 Januar 2013, 13:24:00
Hi reinerlein,

Klingt sehr vielversprechend. Kanns kaum erwarten das bei mir zu testen. Sag bescheid wenn du versuchskan inchen brauchst. :-)

W
Titel: Aw: Sonos steuern
Beitrag von: Christoph am 11 Januar 2013, 18:41:09
Zitat von: Reinerlein schrieb am Fr, 11 Januar 2013 02:21

- Leider sind Radiostationen nicht trivial in der Einbindung, da Sonos die Favoriten nicht im System ablegt, sondern vom Controller selbst aus dem Internet geholt werden. Da muss ich mir noch was einfallen lassen, um die URL eines bestimmten Senders herauszufinden/zu speichern. Desweiteren kann man momentan auch nur Playlisten laden. Nicht direkt selber Titel angeben. Kommt aber noch... mal schauen... Nach dem First Release :-)


Oder die Favoriten in Fhem anlegen und über die URL aufrufen
Zwar keine schöne Lösung aber es funktioniert. ;-)


$sonos->SetRadio("x-rincon-mp3radio://mp3-live.swr3.de/swr3_m.m3u", "SWR3");
$sonos->Play();


Stelle mich auch gerne zum testen zur Verfügung, hab nen Play3 + Connect +Bridge.

Gruß Christoph
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 13 Januar 2013, 11:10:05
Hi Christoph,

ich habe die Radiostationen (Favoriten) doch noch im Player gefunden. Die waren etwas versteckt: normalerweise ist der komplette Inhalt selbstbeschreibend hierarchisch, nur hier muss man zwischendurch nochmal eine kleine Root-ID beim Browse angeben, und erhält dann die Definition der Radioabteilung.

Also, das ist auch schon drin.
Außerdem gibt es immer noch Probleme, wenn der Player verschwindet und wieder auftaucht. Es gibt ungünstige Zeitpunkte für sowas, da muss ich mal schauen, ob man sowas ähnliches wie ein "Exception Handling" in Perl gebaut bekommt. Die Fehler treten nämlich in der von mir benutzten Klasse für den UPnP Zugriff auf (der versucht gerade irgendwas vom Player zu laden).
Allerdings ist das Auftauchen eines Players (ich denke das wichtigere) im großen und ganzen stabil. In meinem Szenario wird dann per FHEM-Event beim Auftauchen des Players einer Playlist geladen, die Lautstärke gesetzt, ein bestimmter Titel in der Liste angesprungen und dann das Abspielen gestartet.
Das ist doch schon mal was...

Die Doku geht auch voran. Dann kann es ans Testen bei euch gehen.

Grüße Reinerlein
Titel: Aw: Sonos steuern
Beitrag von: det. am 13 Januar 2013, 11:38:53
Hallo Reinerlein,

Das klingt ja sehr erfreulich! Mein Wochenende Lieblingsfrühstücksradio mit einem Klick aus FHEM starten - bisher erst Strom an über FHEM, dann SONOS App. starten, warten bis die verbunden ist, 5x klicken bis Radiosender läuft... Das wird eine wesentliche Erleichterung mit hohem WAF!
Ich freue mich schon auf's Testen.
Titel: Aw: Sonos steuern
Beitrag von: Will am 13 Januar 2013, 13:18:48
Super.

W
Titel: Sonos steuern
Beitrag von: Reinerlein am 16 Januar 2013, 16:40:14
Hallo zusammen,

nun ist es also soweit. Ich habe meinen internen Umzug auf meinen produktiven Raspberry Pi erfolgreich durchgeführt. Dabei sind noch ein paar Bugs behoben worden :-)

Also:
Unter http://www.fhemwiki.de/wiki/Sonos_Anwendungsbeispiel (http://www.fhemwiki.de/wiki/Sonos_Anwendungsbeispiel) habe ich einen Wiki-Eintrag erzeugt, der sowohl die Installation als auch die Einrichtung und Beispiele bringt.

Die Dateien habe ich hier an den Forumseintrag gehangen. Solange das Modul noch nicht offiziell ist, werden wir das hierüber abwickeln...

Zum Start braucht man nur in die Eingabezeile oben ein
define Sonos SONOS
einzugeben. Der Rest sollte dann bereits automatisch erkannt und eingerichtet werden. Dann braucht man sich noch nichts in die Konfiguration schreiben...

Dann erstmal viel Spaß, und hoffentlich sind nicht mehr soviele Bugs drin...

Grüße Reinerlein
Titel: Aw: Sonos steuern
Beitrag von: det. am 16 Januar 2013, 20:17:16
Hallo Reinerlein,

hab es sofort mal getestet, bin leider nicht der Linuxcrack - nach dem setzen der File Rechte entsprechend der anderen Modulen tat sich auf meinem RasbPi was:

reload 00_SONOS.pm ->

Can't locate UPnP/ControlPoint.pm in @INC (@INC contains: /usr/share/fhem/FHEM/lib/UPnP/lib /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl . /usr/share/fhem/FHEM) at /usr/share/fhem/FHEM/00_SONOS.pm line 64.
BEGIN failed--compilation aborted at /usr/share/fhem/FHEM/00_SONOS.pm line 64.


Sorry
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 16 Januar 2013, 20:51:08
Hi Detlev,

Keine Panik :-)

da fehlt nur die UPnP-Library. Diese muss in das Verzeichnis entpackt werden, wie es in der Installationsanweisung im Wiki steht.
http://www.fhemwiki.de/wiki/Sonos_Anwendungsbeispiel#Installation (http://www.fhemwiki.de/wiki/Sonos_Anwendungsbeispiel#Installation)

Das ist ein Open-Source Fremdprodukt, und muss während dieser Testphase noch selbst hinkopiert werden...

Grüße Reinerlein
Titel: Aw: Sonos steuern
Beitrag von: det. am 16 Januar 2013, 21:06:34
Hallo Reinerlein,

hab das prima WIKI schon gelesen und die Dateien dort alle reingepackt und die Rechte auf fhem / root gesetzt.
Es liegt das Problem wo anders, mglw. sitzt es auch vor meinem Bildschirm... das kann ich leider nicht ausschliessen.
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 16 Januar 2013, 21:16:18
Hi Detlev,

ok, kein problem, wollte das nur sicherstellen :-) ... kannst du mal bitte ein
find /usr/share/fhem/FHEM/lib/UPnP
ausführen?

Nur um zu sehen, ob das nicht eine Ebene zu "tief" liegt.
Titel: Aw: Sonos steuern
Beitrag von: det. am 16 Januar 2013, 21:30:54
pi@raspberrypi ~ $ sudo find /usr/share/fhem/FHEM/lib/UPnP
/usr/share/fhem/FHEM/lib/UPnP
/usr/share/fhem/FHEM/lib/UPnP/README
/usr/share/fhem/FHEM/lib/UPnP/Makefile.PL
/usr/share/fhem/FHEM/lib/UPnP/MANIFEST
/usr/share/fhem/FHEM/lib/UPnP/lib
/usr/share/fhem/FHEM/lib/UPnP/lib/UPnP
/usr/share/fhem/FHEM/lib/UPnP/lib/UPnP/DeviceManager.pm
/usr/share/fhem/FHEM/lib/UPnP/lib/UPnP/Common.pm
/usr/share/fhem/FHEM/lib/UPnP/lib/UPnP/ControlPoint.pm
/usr/share/fhem/FHEM/lib/UPnP/t
/usr/share/fhem/FHEM/lib/UPnP/t/description1.xml
/usr/share/fhem/FHEM/lib/UPnP/t/01-ControlPoint-Module.t
/usr/share/fhem/FHEM/lib/UPnP/t/03-DeviceManager-Module.t
/usr/share/fhem/FHEM/lib/UPnP/t/04-DeviceManager-Protocol.t
/usr/share/fhem/FHEM/lib/UPnP/t/description2.xml
/usr/share/fhem/FHEM/lib/UPnP/t/02-ControlPoint-Protocol.t
/usr/share/fhem/FHEM/lib/UPnP/t/RendererControl.xml
pi@raspberrypi ~ $
ohne sudo kommt Permission denied
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 16 Januar 2013, 21:44:35
Hi Detlev,

die Pfade stimmen also schon mal. Das mit dem Permission denied ist noch etwas hinderlich...

Für mal folgende Anweisung im Verzeichnis "FHEM/lib" aus
sudo chown -R pi.pi .
Natürlich muss pi.pi durch deine Benutzername.Gruppenname Kombination ersetzt werden, wie es bei dir passt.

Grüße Reinerlein
Titel: Aw: Sonos steuern
Beitrag von: det. am 16 Januar 2013, 21:58:01
Hallo Reinerlein,

ich bin offenbar keine große Hilfe

pi@raspberrypi /usr/share/fhem/FHEM/lib $ sudo chown -R fhem.root .
pi@raspberrypi /usr/share/fhem/FHEM/lib $


geändert hat es nichts an der Meldung.


Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 16 Januar 2013, 22:03:26
Hi Detlev,

eine Ausgabe gibt es dabei auch nicht. Diese Zeile hat die Rechte an den Dateien in diesem Verzeichnis (und Rekursiv in den darunter liegenden auch) umgesetzt. Jetzt sollte beim oben geschriebenen "Find" eigentlich kein "Permission denied" mehr kommen.

Wenn das so ist, dann solltest du dein FHEM einfach mal neustarten, und es sollte gehen :-)

Grüße Reinerlein
Titel: Aw: Sonos steuern
Beitrag von: det. am 16 Januar 2013, 22:11:18
sorry - ich gebe auf und warte ab... Neugestartet hatte ich mehrmals...Permission denied
kommt immer noch - lass es von jemanden Testen, der fitter in Linux ist.
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 16 Januar 2013, 23:01:08
Hi Detlev,

das sollte doch hinzukriegen sein :-)

Also, wenn du, wie du sagst, FHEM mit dem User "fhem" laufen läßt, und du mit dem Benutzernamen "pi" angemeldet bist, dann "siehst" du die Dateien auch anders als FHEM das tut.

Prüf mal bitte mit der Ausgabe von
ps aux | grep fhem.pl
In welchem Benutzerkontext dein FHEM läuft. Das ist die erste Angabe ganz vorne in der Zeile, in der nicht deine grep-Anweisung steht. Die wird natürlich auch gefunden... du suchst ja gerade :-)

Damit weisst du schon mal das sicher.

Dann kannst du mit der Anweisung
sudo su fhem
bzw. dem herausgefundenen Benutzernamen in den Kontext dieses Benutzers wechseln. Du "siehst" das Filesystem nun auf die gleiche Art wie FHEM.
Nun kannst du nochmal versuchen dir die Dateien anzuzeigen. Wenn das nicht gelingt, dann hat FHEM auch keine Chance.

Wenn du die Dateien siehst, aber FHEM damit immer noch nicht arbeiten will, dann können wir immer noch verzweifeln :-)

Wenn du die Dateien nicht siehst, dann müssen wir eben noch ein bißchen an den Dateirechten rumschrauben...

Poste mal deine Erfahrungen dazu...

Grüße Reinerlein
Titel: Aw: Sonos steuern
Beitrag von: Martin Fischer am 17 Januar 2013, 08:54:33
> da fehlt nur die UPnP-Library. Diese muss in das Verzeichnis entpackt werden,
> wie es in der Installationsanweisung im Wiki steht.

ohne es näher geprüft zu haben:
da in dem cpan-paket für upnp ein makefile enthalten ist, gehe ich davon aus, dass dieses nicht nativ auf den verschiedenen architekturen (mips, arm, ix86, etc.) laufen wird. das perlmodul upnp wäre demnach für jede architektur zu compilen.

das wäre dann auch ein grund, warum das fhem modul höchstens im contrib und nicht im trunk von fhem landen würde, da upnp nicht zu den standard perlmodulen gehört und das fhem modul somit nicht "out of the box" auf allen systemen läuft.

hier heisst es nur:
entweder die benötigten upnp routinen in dem fhem modul "nachbauen", eine andere alternative nutzen oder damit leben, das es im contrib landet. dann sollte der anwender darauf hingewiesen werden, was er zu tun hat z.b. modul über cpan installieren, etc. wobei letzteres auch nicht auf jeder architektur geht. denn es muss dann zwingend ein compiler vorhanden sein, was ich schon mal für die fritzbox images und synonolgie's ausschliesse.

gruss martin
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 17 Januar 2013, 09:40:17
Hi Martin,

also ich habe da zumindest nichts nach dem runterladen kompilieren müssen. Ich habe bei mir auch schon die UPnP Library auf die beiden von mir benutzten Perlmodule verkleinert. Dazu ist diese Phase ja jetzt schließlich da.
Das sieht bei mir also schon so aus, wie bei Boris' 1wire Modulen, die ja auch ein OWNet.pm im "lib"-Verzeichnis benötigen.

Diese UPnP-Library sollte wohl mal an CPAN gehen, hat das aber nie geschafft, und kann deswegen auch gar nicht per CPAN installiert werden. Die bei CPAN bereitgestellte UPnP-Library verfolgt einen anderen Ansatz, und ist meiner Meinung nach längst nicht komplett. Es fehlen Subscriptions, die UPnP ja gerade so interessant machen...

Das Makefile der von mir benutzten Library beschreibt nur die Vorraussetzungen die das Modul hat:
SOAP::Lite
LWP::UserAgent
HTTP::Daemon

Das sollte eigentlich Standard bei Perl sein... Diese verwende ich bei mir im Modul zum Teil dann auch wieder...

Also, alles gut... wir müssen nur herausfinden, was bei Detlev hängt...

Grüße Reinerlein
Titel: Aw: Sonos steuern
Beitrag von: Martin Fischer am 17 Januar 2013, 10:13:34
> Also, alles gut... wir müssen nur herausfinden, was bei Detlev hängt...

wie ich schon schrieb: es war von mir ungeprüft.

es sollte nur als tip zur fehlereingrenzung dienen, bevor ihr euch irgendwo "verzettelt". wenn dem so ist, dann kann das sicherlich ausgeschlossen werden und der fehler ist woanders zu suchen.

gruss martin
Titel: Aw: Sonos steuern
Beitrag von: Christoph am 17 Januar 2013, 11:45:08
Vielleicht postet noch jemand ne Anleitung für Dummies ;-)

Brauchen die module irgendwelche besonderen Rechte bzw der Ordner ?


Gruß Christoph
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 17 Januar 2013, 12:02:27
Hi Christoph,

eigentlich dachte ich, die Anleitung im Wiki wäre geeignet... Was vermisst du denn? Dann pflege ich das noch nach...

Also, Rechte müssen nur so gesetzt sein, dass FHEM diese Dateien auch lesen kann (bzw. bei den Ordnern, diese auch "betreten" kann, das ist das x-Recht).
Es sind ja normale Perlmodule, die vom Interpreter gelesen werden können müssen.

Wenn man die neuen OW-Module von Boris laufen hat, dann kann man sich an den Rechten für den Ordner "lib" und die Datei OWNet.pm darin orientieren.

Grüße Reinerlein
Titel: Aw: Sonos steuern
Beitrag von: Christoph am 17 Januar 2013, 13:13:52
Hi Reiner,

An deiner Anleitung im Wiki liegt es sicher nicht, die ist super :-)

Hab es gestern mal kurz installiert und auch die selben oder ähnlichen Probleme wie Detlev.

Vielleicht kann jemand die Ordnerrechte posten?
Hab bisher noch keinen lib Ordner gehabt und auch kein OW am laufen.



Gruß Christoph
Titel: Aw: Sonos steuern
Beitrag von: Will am 17 Januar 2013, 13:21:31
Ich habs auf meiner fritzbox installiert. Ähnliches verhalten. Liegt es an rechten oder soll ich gleich aufgeben wegen Hardware?

W
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 17 Januar 2013, 14:09:21
Hi zusammen,

hmmm...  Das finde ich jetzt ja schade. Es sollte eigentlich einfach funktionieren, aber wie das immer so ist :-)

Hier also mal meine Rechte im "FHEM/lib"-Ordner:
pi@raspberrypi /etc/fhem/fhem/FHEM/lib $ find . -ls
134858 4 drwxr-xr-x 3 pi pi 4096 Jan 15 12:29 .
134859 24 -rw-r--r-- 1 pi pi 21370 Dec 30 16:15 ./OWNet.pm
134860 4 drwxr-xr-x 3 pi pi 4096 Jan 17 00:04 ./UPnP
134861 4 drwxr-xr-x 3 pi pi 4096 Jan 15 12:29 ./UPnP/lib
134866 4 drwxr-xr-x 2 pi pi 4096 Jan 17 13:57 ./UPnP/lib/UPnP
134874 20 -rw-r--r-- 1 pi pi 18062 Jan 25 2008 ./UPnP/lib/UPnP/Common.pm
134875 44 -rw-r--r-- 1 pi pi 41376 Jan 25 2008 ./UPnP/lib/UPnP/ControlPoint.pm


Ich bin gerade dabei diese Library zusammenzustauchen. Im Prinzip werden nur die beiden Dateien benötigt, die ich noch übrig gelassen habe. Ich habe auf meiner Testmaschine auch schon die Ordner vereinfacht (da ist ja im Prinzip ein überflüssiges "/lib/UPnP/" drin), aber noch nicht den Code zum veröffentlichen fertig...

Das sollten eigentlich normale Rechte sein. Es kann halt sein, dass in dem ZIP-File die Rechte völlig quer sind. Man muss das auf jeden Fall kontrollieren und an die eigenen Benutzernamen anpassen.

Kommt denn bei euch allen die Fehlermeldung im Log, dass die Library nicht gefunden werden konnte?
Unter Umständen benötigt man zum Betrieb dann weitergehende Rechte, es wird ja ein Serverport aufgemacht, um auf die Player zu lauschen. Das passiert aber alles etwas später...

Grüße Reiner
Titel: Aw: Sonos steuern
Beitrag von: Will am 17 Januar 2013, 14:42:38
Hallo Reinerlein,

mein Eintrag im Logfile sieht so aus:

2013.01.17 07:40:04 1: reload: Error:Modul 00_SONOS deactivated:
 Can't locate LWP/Simple.pm in @INC (@INC contains: /var/media/ftp/Sony-StorageMedia-00/fhem/lib/perl /var/media/ftp/Sony-StorageMedia-00/fhem/lib/perl/arch /home/rudi/fbperl/lib/perl/arch /home/rudi/fbperl/lib/perl . ./FHEM) at ./FHEM/00_SONOS.pm line 54.
BEGIN failed--compilation aborted at ./FHEM/00_SONOS.pm line 54.

2013.01.17 07:40:04 0: Can't locate LWP/Simple.pm in @INC (@INC contains: /var/media/ftp/Sony-StorageMedia-00/fhem/lib/perl /var/media/ftp/Sony-StorageMedia-00/fhem/lib/perl/arch /home/rudi/fbperl/lib/perl/arch /home/rudi/fbperl/lib/perl . ./FHEM) at ./FHEM/00_SONOS.pm line 54.
BEGIN failed--compilation aborted at ./FHEM/00_SONOS.pm line 54.
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 17 Januar 2013, 15:13:17
Hi Will,

ok, das ist eine Stufe weiter, und etwas was ich offensichtlich noch ins Wiki schreiben muss.

Bei mir war/ist LWP::Simple bereits installiert, weil ich in meiner 99_myUtils.pm das bereits brauche...

OK, zur Lösung:
Kannst du auf der Maschine Dinge per CPAN installieren?

Die Anweisung dazu wäre
sudo cpan LWP::Simple

Das sollte das ganze installieren. Wenn es installiert ist, wie bei mir, ergibt dann ein erneuter Aufruf der Zeile folgende Ausgabe:
pi@raspberrypi ~ $ sudo cpan LWP::Simple
Reading '/root/.cpan/Metadata'
Database was generated on Thu, 17 Jan 2013 11:06:59 GMT
LWP::Simple is up to date (6.00).


Grüße Reinerlein
Titel: Aw: Sonos steuern
Beitrag von: Will am 17 Januar 2013, 15:35:08
Als Linux Dau wirds jetzt spannend fuer mich :-)

Sitze wie gesagt an ner fritzbox.....tippe das halt mal ab...

W
Titel: Aw: Sonos steuern
Beitrag von: Will am 17 Januar 2013, 15:43:07
offensichtlich nicht, ich bin per telnet auf meiner fritzbox.


# sudo cpan LWP::Simple
-sh: sudo: not found

W
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 17 Januar 2013, 15:55:03
Hi Will,

ups.. kein sudo?

Da bin ich jetzt überfragt, was auf der FritzBox getan werden muss, um "sudo" verwenden zu dürfen. Kann das jemand beantworten, der sowas auf einer FritzBox macht?

Vielleicht geht es einfach ohne?
cpan LWP::Simple

Schwacher Versuch, ich weiss. Aber da weiss ich jetzt nicht weiter...

Grüße Reiner
Titel: Aw: Sonos steuern
Beitrag von: Will am 17 Januar 2013, 15:59:31
# cpan LWP::Simple
-sh: cpan: not found

Da brauche ich nochmal Unterstuetzung wie ich hier jetzt weitermachen soll...
Funktioniert das ueberhaupt mit telnet, sitze an einem windoof rechner und gehe mitbordmitteln auf die fritzbox


W
Titel: Aw: Sonos steuern
Beitrag von: Will am 17 Januar 2013, 16:08:42
Reinerlein,

wo kommt eigentlich dieser Pfad her:
/home/rudi/fbperl/lib/perl/arch /home/rudi/fbperl/lib/perl

Sollte es doch bei mir gar nicht geben...

W
Titel: Aw: Sonos steuern
Beitrag von: Martin Fischer am 17 Januar 2013, 16:17:46
wie ich schon versucht habe in meinem anderem beitrag darauf hinzuweisen:

auf systemen wie fritzbox oder synologys wird man tools wie cpan oder sudo vergeblich suchen. besonders die fritzbox ist da stark eingeschränkt.

gruss martin
Titel: Aw: Sonos steuern
Beitrag von: Will am 17 Januar 2013, 16:21:10
also keine chance?
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 17 Januar 2013, 16:21:49
Hi Will,

diese Pfadliste sind Perl-Suchpfade. Dort wird überall nach der gewünschten Library gesucht. Diese Suchpfade kann man selber im Skript erweitern.

So mache ich das ja bei mir auch im Skript:
use lib "$attr{global}{modpath}/FHEM/lib";

Da wird also in irgendeinem Modul noch was altes (absolutes) von Rudi drinhängen :-)
Meine Pfadangabe ist ja eine Relative zur definierten Variable "ModPath"

Das bedeutet also nicht, dass es den Pfad bei dir gibt, sondern nur, dass er in durchsuchen möchte, wenn er ihn finden würde...

Zu deiner Code-Ausgabe. Da scheint ein Suchpfad in deiner Shell nicht gesetzt zu sein. Der findet keine Binaries.
Kannst du mal
bash
oder
/bin/bash
ausführen?
Manchmal werden dann mit dem Starten der Bash (ein Kommandozeileninterpreter) Einstellungen geladen...

Wenn das geht, dann einfach nochmal mit dem "sudo" bzw. "cpan" versuchen... Dann aber "innerhalb" der bash...

Grüße Reiner
Titel: Aw: Sonos steuern
Beitrag von: det. am 17 Januar 2013, 16:22:55
Hallo Reinerlein,

etwas Zeit zwischen Arbeit und Abend Verpflichtungen freigeschaufelt und weiter getestet. Da die Berechtigungen setzen über telnet von Windows auf RasbPi offenbar nichts gebracht haben - Maus+Tastatur+Monitor dran - alles in FHEM/lib rw und user fhem group root gemacht - und es kommt eine neue Fehlermeldung - immerhin -
Can't locate SOAP/Lite.pm in @INC (@INC contains: /usr/share/fhem/FHEM/lib/UPnP/lib /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl . /usr/share/fhem/FHEM) at /usr/share/fhem/FHEM/lib/UPnP/lib/UPnP/Common.pm line 85.
BEGIN failed--compilation aborted at /usr/share/fhem/FHEM/lib/UPnP/lib/UPnP/Common.pm line 85.
Compilation failed in require at /usr/share/fhem/FHEM/lib/UPnP/lib/UPnP/ControlPoint.pm line 14.
BEGIN failed--compilation aborted at /usr/share/fhem/FHEM/lib/UPnP/lib/UPnP/ControlPoint.pm line 14.
Compilation failed in require at /usr/share/fhem/FHEM/00_SONOS.pm line 64.
BEGIN failed--compilation aborted at /usr/share/fhem/FHEM/00_SONOS.pm line 64.

Kann das sein, dass Du auf Deinem RaspbPi noch andere PERL Module drauf hast, die für FHEM + OWFS + FHEM Info nicht notwendig sind und daher z.B. bei mir nicht drauf sind?
Die Sache mit "Permission denied" ist jedenfalls erst mal weg - und an fehlendem shutdown restart liegt es auch nicht
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 17 Januar 2013, 16:29:53
Hi Detlev,

ja das kann sein. Ich verwende FHEM jetzt bestimmt schon über ein Jahr... Da installiert man einiges, ohne dass man es genauer merkt :-)

Zu Sache: Ja, auch SOAP::Lite ist notwendig.

Installation über
sudo cpan SOAP::Lite

Ich trage es gleich im Wiki nach...

Grüße Reiner
Titel: Aw: Sonos steuern
Beitrag von: det. am 17 Januar 2013, 17:16:34
Hallo Reiner,

Stunden und mehrere Kaffee später... CPAN auf dem RaspbPi erfordert wenn man das zum ersten mal aufruft unendlich Zeit und einen Neustart zwischendurch, vorher jede Menge "Make" Fehler - das solltest Du für Linux Deppen wie mich unbedingt mit ins Wiki schreiben. Nach dem Neustart und alles noch mal von vorn dauert es dann immer noch ewig und installiert Sachen was weiß ich was - und bringt div. Make Fehler. Zwischendurch die Liste:

Feature                       Prerequisites                Install?
----------------------------- ---------------------------- --------
Core Package                  [*] Scalar::Util             always
                              [*] URI
                              [*] constant
                              [*] Test::More
                              [*] MIME::Base64
                              [*] Class::Inspector
                              [*] XML::Parser (v2.23)
                              [*] Task::Weaken
Client HTTP support           [*] LWP::UserAgent           always
Client HTTPS support          [ ] Crypt::SSLeay            [ no ]
Client SMTP/sendmail support  [ ] MIME::Lite               [ no ]
Client FTP support            [ ] SOAP::Transport::FTP (v0.711) [ no ]
Client TCP support            [ ] SOAP::Transport::TCP (v0.714) [ no ]
Standalone HTTP server        [*] HTTP::Daemon             [ yes ]
Apache/mod_perl server        [ ] Apache                   [ no ]
FastCGI server                [ ] FCGI                     [ no ]
POP3 server                   [ ] MIME::Parser             [ no ]
                              [*] Net::POP3
IO server                     [*] IO::File                 [ yes ]
MQ transport support          [ ] SOAP::Transport::MQ (v0.712) [ no ]
JABBER transport support      [ ] SOAP::Transport::JABBER (v0.712) [ no ]
MIME messages                 [ ] MIME::Parser             [ no ]
DIME messages                 [ ] IO::Scalar (v2.105)      [ no ]
                              [ ] DIME::Tools (v0.03)
                              [ ] Data::UUID (v0.11)
SSL Support for TCP Transport [*] IO::Socket::SSL          [ yes ]
Compression support for HTTP  [*] Compress::Zlib           [ yes ]
MIME interoperability w/ Axis [ ] MIME::Parser (v6.106)    [ no ]
--- An asterix '[*]' indicates if the module is currently installed.

Do you want to proceed with this configuration? [yes]


wenn man das vor - angekreuzte installiert, geht es hinterher jedenfalls immer noch nicht wirklich weiter:

Can't locate SOAP/Lite.pm in @INC (@INC contains: /usr/share/fhem/FHEM/lib/UPnP/lib /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl . /usr/share/fhem/FHEM) at /usr/share/fhem/FHEM/lib/UPnP/lib/UPnP/Common.pm line 85.
BEGIN failed--compilation aborted at /usr/share/fhem/FHEM/lib/UPnP/lib/UPnP/Common.pm line 85.
Compilation failed in require at /usr/share/fhem/FHEM/lib/UPnP/lib/UPnP/ControlPoint.pm line 14.
BEGIN failed--compilation aborted at /usr/share/fhem/FHEM/lib/UPnP/lib/UPnP/ControlPoint.pm line 14.
Compilation failed in require at /usr/share/fhem/FHEM/00_SONOS.pm line 64.
BEGIN failed--compilation aborted at /usr/share/fhem/FHEM/00_SONOS.pm line 64.
Titel: Aw: Sonos steuern
Beitrag von: det. am 17 Januar 2013, 17:21:42
Hallo Will,

wenn Du meine bisher vergeblichen Mühen oben liest, die erforderlichen Bibliotheken auf dem RaspbPi nachzuinstallieren vergeht Dir hoffentlich die Lust, das alles auf die FB zu bekommen. Bei mir läuft FHEM auch auf der FB7390, aber so einen kleinen Linux PC kann man da gut daneben stellen und einen Teil der Last mit tragen lassen - find ich.
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 17 Januar 2013, 19:23:14
Hallo zusammen,

das klingt ja alles irgendwie doof.

Ich habe unter Wiki-Installation-SOAP-Lite (http://www.fhemwiki.de/w/index.php?title=Sonos_Anwendungsbeispiel&action=submit#Installation_SOAP::Lite) eine kurze Beschreibung geschrieben, wie man das Modul manuell installiert bekommt.

Es ist anscheinend ein steiniger Weg zur Nutzung von Sonos, und wir sind noch nicht mal bei meinem Code angekommen...

Grüße Reinerlein
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 17 Januar 2013, 19:25:03
Der Link ist falsch, das ist der auf die Editieren-Seite.

Hier der richtige: http://www.fhemwiki.de/wiki/Sonos_Anwendungsbeispiel#Installation_SOAP::Lite (http://www.fhemwiki.de/wiki/Sonos_Anwendungsbeispiel#Installation_SOAP::Lite)

Sorry, Reinerlein
Titel: Aw: Sonos steuern
Beitrag von: det. am 17 Januar 2013, 22:06:47
Hallo Reiner,

Danke für die prima Anleitung, die SOAP:Lite Geschichte ist drauf, SONOS zeigt sich in FHEM und jetzt ist es sicher nur noch ein lösbares Problem der Rechte unter Linux. Da ich einen RaspbPi und einen Zoneplayer sowie die Motivation zu helfen habe, aber ein Linux DAU bin, brauche ich da noch etwas Unterstützung.

pi@raspberrypi ~ $ icmp ping requires root privilege at /usr/share/fhem/FHEM/00_SONOS.pm line 832
Perl exited with active threads:
        1 running and unjoined
        0 finished and unjoined
        0 running and detached
Titel: Aw: Sonos steuern
Beitrag von: det. am 17 Januar 2013, 22:19:27
für alle die sich vielleicht aufraffen könnten, das mitzutesten mal ein screenshot, aufgenommen kurz vor dem Absturz:


(siehe Anhang / see attachement)


Ich finde da hat Reiner eine coole Sache entwickelt, das sieht schon mal sehr gut aus! Danke!!!
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 17 Januar 2013, 22:36:38
Hi Detlev,

danke für das Kompliment. Und schön, dass es trotz Frustration noch geklappt hat :-)
Fehlt denn jetzt noch was für Nachahmer im Wiki, oder hat die manuelle Installationsbeschreibung geholfen?

Dein Absturz ist tatsächlich eine erklärbare Sache.

Kurze Erklärung:
Um einen Zoneplayer als lebend zu führen, habe ich einen regelmäßigen Ping eingebaut. Ich bekomme nämlich eine super Benachrichtigung, wenn der Player wieder da ist, aber verabschieden tut sich da keiner offiziell. Das bedeutet, dass ich das auf anderem Wege herausfinden muss.
In diesem Fall hatte ich mich für die ICMP-Ping Variante entschieden, da sie sehr Ressourcenschonend ist.

Leider braucht man dafür anscheinend mehr Rechte...

Zum kurzfristigen Umgehen kannst du bei der Definition von Sonos das Intervall mit angeben. Stell einen hohen Wert ein, an dem du dein FHEM töten lassen willst :-)

Ich recherchiere mal, was man da tun kann. Wenn noch jemand anderes eine spontane Idee hat... immer her damit...

Grüße Reiner
Titel: Aw: Sonos steuern
Beitrag von: det. am 17 Januar 2013, 22:51:08
Hallo Reiner,

die manuelle Installationsanweisung im WIKI ist umfassend und ausreichend. Wer das damit nicht hin bekommt, sollte so einen RaspbPi besser nicht anschaffen. Da mein Produktivsystem zum Glück auf der FB läuft, ist es nicht von Belang, wenn im Büro auf meinem Schreibtisch mal über Nacht nicht 3 x Temperatur 1 x Luftfeuchte und ein Switch ohne Funktion Werte loggen.
Ich warte also gern bis Du eine Lösung gefunden hast und teste dann gern weiter. Wie schon mal gepostet, meine Motivation ist Radio Paradise mit einem Klick aus FHEM einschalten und die Lautstärke regeln. Wäre schön, wenn sich die Oberfläche anpassbar soweit reduzieren lässt. Dann kauf ich noch einen Play:3 fürs Bad, denn mit iPAD zum Steuern mag ich da bisher lieber nicht reingehen.
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 17 Januar 2013, 23:35:12
Hi Detlev und andere Mitstreiter,

ich habe ein paar Sachen geändert:
- Die Library ist nun auf die beiden nötigen Dateien eingestampft. Überflüssige Verzeichnisebenen wurden entfernt
- Es gibt jetzt ein Attribut pingType am Device SONOS. Damit kann man nun die Art des Pings einstellen. Am Besten mal 'syn' testen.
- Die Doku ist entsprechend angepasst

Also beachten:
Die Verzeichnisse der UPnP-Library müssen angepasst werden, sonst findet er die Library nicht mehr (sorry Detlev, dass du da schon wieder was ändern musst, aber so ist es übersichtlicher)!

Im Anhang nochmal alle aktuellen Dateien...

Grüße Reinerlein
Titel: Aw: Sonos steuern
Beitrag von: Will am 17 Januar 2013, 23:56:39
Hi,

Dann werde ich wohl am Wochenende mal eine Linux Installation aufsetzen.
Habt ihr einen Tipp für eine schlanke Distribution die ich auf einem USB Stick aufsetzen kann?

W
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 18 Januar 2013, 00:15:49
Hi Will,

hmmm... schlank... vielleicht kannst du was mit den zum Raspberry Pi veröffentlichten Distributionen was werden:
http://www.raspberrypi.org/downloads (http://www.raspberrypi.org/downloads)

Die sind ca. 2GB groß und natürlich für eine SD-Card gedacht, gehen aber ja vielleicht auch auf einem USB-Stick...

Ansonsten finde ich Ubuntu immer ganz nett :-)

Grüße Reinerlein
Titel: Aw: Sonos steuern
Beitrag von: Christoph am 18 Januar 2013, 01:03:39
Öhmmmm das passt wohl so nicht oder ? *gg*

root@raspberrypi:/home/pi# cpan LWP::Simple
Going to read '/root/.cpan/Metadata'
  Database was generated on Thu, 17 Jan 2013 00:53:02 GMT
Running install for module 'LWP::Simple'
Running make for G/GA/GAAS/libwww-perl-6.04.tar.gz
Checksum for /root/.cpan/sources/authors/id/G/GA/GAAS/libwww-perl-6.04.tar.gz ok
Uncompressed /root/.cpan/sources/authors/id/G/GA/GAAS/libwww-perl-6.04.tar.gz successfully
Using Tar:/bin/tar xf "libwww-perl-6.04.tar":
Couldn't untar libwww-perl-6.04.tar
Package seems to come without Makefile.PL.
  (The test -f "/root/.cpan/build/GAAS-fABNlW/Makefile.PL" returned false.)
  Writing one on our own (setting NAME to LWPSimple)
  Had problems unarchiving. Please build manually
Running make test
  Make had some problems, won't test
Running make install
  Make had some problems, won't install
Titel: Aw: Sonos steuern
Beitrag von: det. am 18 Januar 2013, 07:59:11
Hallo Reiner,

sorry, noch immer Totalabsturz kurz nach automatischem Anlegen des Device:

icmp ping requires root privilege at /usr/share/fhem/FHEM/00_SONOS.pm line 832
Perl exited with active threads:
        1 running and unjoined
        0 finished and unjoined
        0 running and detached
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 18 Januar 2013, 09:01:23
Hallo zusammen,

@Christoph: Da steht in dem Wiki was unter der Rubrik Installation zum Thema SOAP::Lite. Leider hat das Modul LWP::Simple bei dir anscheinend diesselben Schwierigkeiten bei der automatischen Installation.

Ich werde das nachher entsprechend erweitern. Vielleicht hilft dir bis dahin die Beschreibung von SOAP::Lite, das sollte eigentlich Analog dazu sein:
http://www.fhemwiki.de/wiki/Sonos_Anwendungsbeispiel#Installation_SOAP::Lite (http://www.fhemwiki.de/wiki/Sonos_Anwendungsbeispiel#Installation_SOAP::Lite)

Irgendwie scheinen die Module "gunzip" nicht richtig aufrufen zu können. Der Fehler ist nämlich, das nach der Zeile mit dem "uncompressed" in dem Verzeichnis immer noch die .gz-Datei liegt, und tar dementsprechend nix findet...

@Detlev: Hast du das Attribut "pingType" am Sonos-Device gesetzt? Das sieht so aus, als würde er bei dir immer noch ICMP verwenden (das ist immer noch der Standard). Wenn die Tests bei euch allen erfolgreich waren, kann ich den Standard ja auch noch umstellen.
Als erste Variante würde ich dir "syn" empfehlen. Das erscheint mir ähnlich Ressourcensparsam wie "icmp".

Hattest du bei der Installation von LWP::Simple auch die Probleme wie bei Christoph?

Grüße Reinerlein
Titel: Aw: Sonos steuern
Beitrag von: det. am 18 Januar 2013, 11:33:29
Hallo Reiner,

bin jetzt nicht in der Nähe meiner Geräte, kann aber nachdem ich heute früh schnell getestet hatte wenigstens Deine Fragen beantworten.

> Hast du das Attribut "pingType" am Sonos-Device gesetzt? < ja mit: attr Sonos pingType syn
das hat nach Neustart FHEM nichts gebracht oder verändert; ich habe den Verdacht, dass Du die Datei SONOS.pm nicht ausgetauscht hast (stand immer noch Version 1.0)?
> Hattest du bei der Installation von LWP::Simple auch die Probleme< nein, aber nach der vorgestrigen Installationsorgie kann ich auch nicht sagen, wann und auf welchem Weg das drauf gekommen ist. Die händische Installation nach Anleitung wie bei SOAP::Lite halte ich für sehr anschaulich und einfach. Damit ersparst Du sicher vielen DAU's wie mir eine Menge Frust. Wer in Linux richtig firm ist, kann es dann ja einfach anders machen.

Der root Zugriff für ICMP ist wohl nicht so einfach zu realisieren?
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 18 Januar 2013, 11:58:40
Hi Detlev,

ahhh, viel banaler.. ich habe das Attribut an dem falschen Device ausgelesen (am Player, nicht am Zentralen Sonos). Manche Sachen sollte man nicht mehr Nachts machen...
Dabei habe ich auch gleich mal die Versionsnummer hochgesetzt :-)

Um Installierfreudige nicht zu verwirren, hänge ich wieder alle Dateien ran, obwohl sich jetzt nur die 00_SONOS geändert hat...

Grüße Reiner
Titel: Aw: Sonos steuern
Beitrag von: det. am 18 Januar 2013, 12:12:05
Hallo Reiner,

bitte poste doch noch mal um die Verwirrung zu beenden die Zeilen in der fhem.cfg, die die Geschichte zum Ziel führen sollen,

ist es so richtig?

define Sonos SONOS
attr Sonos pingType syn

Ich will da jetzt keinesfalls was kritisieren, aber das steht im WIKI schon sehr verstreut und kaum jemand liest sich heute noch alles durch, bevor er was probiert.
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 18 Januar 2013, 13:18:59
Hi Detlev,

das sollte so richtig sein.
Das steht im Wiki natürlich an der Stelle der Attributbeschreibung für die Sonos-Komponente... Aber das Wiki ist mittlerweile ja auch etwas größer geworden, da gebe ich dir Recht :-)

Wenn das bei euch auch erfolgreich läuft, werde ich "syn" als Standard deklarieren, dann gibt es vermutlich weniger Probleme, als so wie es jetzt ist...
Ab Loglevel 4 gibt der IsAlive-Check auch eine Logausgabe, welche Variante er versucht, und wie das Ergebnis lautet.
Aber Vorsicht, da kommt dann noch eine ganze Menge mehr an Logausgaben...

Zu deiner Frage bzgl. Ping-Root-Rechten:
Wie man die Rechte nur für den Ping bekommt habe ich nicht herausgefunden. Bei mir ist der Raspberry nur für die Haussteuerung da, und läuft dementsprechend einfach als root.... dann geht das natürlich auch...
Vielleicht weiß da aber auch jemand andes bereits Rat...

Grüße Reinerlein
Titel: Aw: Sonos steuern
Beitrag von: det. am 18 Januar 2013, 15:55:22
Hallo Reiner,

WOW !!! Es spielt Radio und FHEM stürzt nicht mehr ab - kurz es funktioniert!
Schreib bitte, was ich testen soll.

Die komischen Ausgaben im fhem.log poste ich mal hier, Du kannst damit sicher was anfangen:

2013.01.18 15:43:38 3: SONOS2: -Event: received service urn:upnp-org:serviceId:AVTransport
2013.01.18 15:43:38 1: SONOS2: -Event receive error: UDN does not start with 'RINCON_', but was 'a31f0afe-6145-4a02-a236-e1bc12420c84::urn:schemas-upnp-org:service:ContentDirectory:1'!
2013.01.18 15:43:39 3: SONOS2: -Event: received service urn:upnp-org:serviceId:AVTransport
2013.01.18 15:43:39 1: SONOS2: -Event receive error: UDN does not start with 'RINCON_', but was 'a31f0afe-6145-4a02-a236-e1bc12420c84::urn:schemas-upnp-org:service:ContentDirectory:1'!
2013.01.18 15:43:58 3: SONOS2: -Event: received service urn:upnp-org:serviceId:AVTransport
2013.01.18 15:43:58 1: SONOS2: -Event receive error: UDN does not start with 'RINCON_', but was 'a31f0afe-6145-4a02-a236-e1bc12420c84::urn:schemas-upnp-org:service:ContentDirectory:1'!
2013.01.18 15:46:02 3: SONOS2: -Event: received service urn:upnp-org:serviceId:AVTransport
2013.01.18 15:46:02 1: SONOS2: -Event receive error: UDN does not start with 'RINCON_', but was 'a31f0afe-6145-4a02-a236-e1bc12420c84::urn:schemas-upnp-org:service:ContentDirectory:1'!


Man merkt übrigens keine Verlangsamung der Reaktionszeit des RaspbPi im webinterface wenn Sonos läuft.
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 18 Januar 2013, 16:34:14
Hi Detlev,

da du auch nur einen Zoneplayer hast, ist der Test von deiner Seite aus abgeschlossen :-)
Du hast dafür gesorgt, dass die Dokumentation besser wird, was bei diesem Thema ziemlich wichtig ist...

Warst du derjenige der eine Bridge in Betrieb hat? Dann könnte ich das schon auf die Gedankliche "Funktioniert"-Liste setzen...

Ich würde sagen, hab Spaß damit und überleg dir, was für Möglichkeiten noch einzubauen wären. Dann schauen wir, wie wir das umgesetzt bekommen. Im Wiki habe ich dafür einen Bereich gemacht, damit ihr sehen könnt, was ich noch machen möchte...

Zu den Log-Ausgaben:
Du solltest den Loglevel allgemein auf 1 stellen, sonst wirst du mit Meldungen ja zugeworfen :-)

Aber da gab es ja auch Ausgaben mit Level 1:
Die habe ich auch, und bei mir hilft da ein Neustart von FHEM.

Kurz zur Beschreibung des Phänomens:
Ich subscribe mich am Zoneplayer für Aktualisierungen des Players. Das bedeutet, dass ich Mitteilungen haben will, die den Abspiezustand u.ä. betreffen. Das funktioniert auch gut (weiter oben müsste im Log dazu auch eine entsprechende Meldung stehen).
Nun habe ich meine Callback-Methode, die aufgerufen wird, wenn ein Event gemeldet wird. Ab und zu kommt an dieser Stelle bei mir ein Paket von meiner Fritzbox an (Du könntest die geloggte UDN mit der deiner Fritzbox vergleichen, um rauszufinden, ob das bei dir auch so ist). Dieses Paket kann ich natürlich nicht verarbeiten.
Ich bin noch dabei rauszufinden, ob ich mit der Mitteilung trotzdem noch was sinnvolles anfangen kann, bin mir dabei aber nicht sicher.

Also: Zoneplayer wird aufgefordert mir was zu sagen -> Sagen tut mir dann aber die Fritzbox was... very strange

Wenn das Auftritt, tritt es bei mir entweder immer oder nie auf (bezogen auf einen Neustartzyklus).

Grüße Reiner
Titel: Aw: Sonos steuern
Beitrag von: Christoph am 18 Januar 2013, 21:11:19
Ich bin der mit der Bridge *g*


Aber bei mir läuft es immer noch nicht....
2013.01.18 20:05:39 1: reload: Error:Modul 00_SONOS deactivated:
 Attempt to reload LWP/Simple.pm aborted.
Compilation failed in require at /usr/share/fhem/FHEM/00_SONOS.pm line 54.
BEGIN failed--compilation aborted at /usr/share/fhem/FHEM/00_SONOS.pm line 54.

2013.01.18 20:05:39 0: Attempt to reload LWP/Simple.pm aborted.
Compilation failed in require at /usr/share/fhem/FHEM/00_SONOS.pm line 54.
BEGIN failed--compilation aborted at /usr/share/fhem/FHEM/00_SONOS.pm line 54.



sudo cpan LWP::Simplepi@raspberrypi ~ $ sudo cpan LWP::Simple
Going to read '/root/.cpan/Metadata'
  Database was generated on Thu, 17 Jan 2013 00:53:02 GMT
LWP::Simple is up to date (6.00).
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 18 Januar 2013, 21:45:54
Hi Christoph,

sorry, das mit der Bridge habe ich dann verwechselt :-)

Zu deinem Problem:
Hmmm... Ich frage mich, was das mit dem Reload soll... das hatte ich hier nicht, ich habe auch kein Perl-Modul-Reload eingebaut, ich benutze die nur... ich habe auch diesselbe Version von LWP::Simple...

Wie startest du das Modul?
Erst FHEM, und dann in der Eingabezeile "define Sonos SONOS"?
Oder ist es in einer fhem.cfg definiert? Es sollte zwar eigentlich alles gehen (zumindest in meinen Tests ging das alles), aber vielleicht sieht man da was...
Kannst du mal umliegende Logs (natürliche nur sinnvolle) inspizieren und hier posten?

Grüße Reiner
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 18 Januar 2013, 21:52:14
@Christoph,

was mir noch einfällt:
Manchmal steht auf der Konsolenausgabe noch was anderes dazu.
Etwas was es nicht mehr in das Log schafft :-)

Vielleicht ist dort noch was?

Grüße Reinerlein
Titel: Aw: Sonos steuern
Beitrag von: Christoph am 18 Januar 2013, 22:15:50
Zitat von: Reinerlein schrieb am Fr, 18 Januar 2013 21:45


Wie startest du das Modul?
Erst FHEM, und dann in der Eingabezeile "define Sonos SONOS"?
Oder ist es in einer fhem.cfg definiert?


Hi Reiner

Hab beides ausprobiert:

Wenn ich es über die Eingabezeile versuche oder in der fhem.cfg definier kommt nach

define Sonos SONOS

Cannot load module SONOS

und im Log steht folgendes:

2013.01.18 21:13:29 5: Cmd: >define Sonos SONOS<
2013.01.18 21:13:29 5: Loading /usr/share/fhem/FHEM/00_SONOS.pm
2013.01.18 21:13:29 1: reload: Error:Modul 00_SONOS deactivated:
 Attempt to reload LWP/Simple.pm aborted.
Compilation failed in require at /usr/share/fhem/FHEM/00_SONOS.pm line 54, <$fh> line 35.
BEGIN failed--compilation aborted at /usr/share/fhem/FHEM/00_SONOS.pm line 54, <$fh> line 35.

2013.01.18 21:13:29 0: Attempt to reload LWP/Simple.pm aborted.
Compilation failed in require at /usr/share/fhem/FHEM/00_SONOS.pm line 54, <$fh> line 35.
BEGIN failed--compilation aborted at /usr/share/fhem/FHEM/00_SONOS.pm line 54, <$fh> line 35.



Gruß Christoph

Titel: Aw: Sonos steuern
Beitrag von: det. am 18 Januar 2013, 22:18:10
Hallo Reiner,

was mir inzwischen aufgefallen ist, wenn der Zoneplayer aus ist (vom Netz) und man über FHEM sinnlos PLAY oder sonst was am SONOS_Player drückt, verabschiedet sich FHEM sofort ins Nirwana.
Kannst Du das irgendwann versuchen abzufangen?
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 18 Januar 2013, 22:22:34
Hi Detlev,

ok, hab ich mir verzeichnet.
Da werden Referenzen auf Proxy-Objekte beim disapearen des Players nicht aufgeräumt. Jaja.. manche Dinge stellen nur die anderen fest :-)

Grüße Reinerlein
Titel: Aw: Sonos steuern
Beitrag von: det. am 18 Januar 2013, 22:30:33
Hallo Reiner,

klar doch, Du gehst mit Deinem Baby pfleglich um, hast es ja selbst zur Welt gebracht. Quälen tun es die Anderen, die es selber nie zustande gebracht hätten. Das ist genau wie im realen Leben...
Titel: Aw: Sonos steuern
Beitrag von: Christoph am 18 Januar 2013, 22:30:57
Mir ist gerade auch noch was eingefallen, FHEM läuft bei mir auf dem angepassten Busware Raspian.
Kanns damit was zutun haben?
Titel: Aw: Sonos steuern
Beitrag von: det. am 18 Januar 2013, 23:02:24
Hallo Christoph,

eher nicht. Das habe ich wegen dem COC auch drauf. Allerdings habe ich wegen OWFS, Samba für den Zugriff über Windows, FHEM Info und Debian Mail schon öfter mal wild was nachinstalliert und div. Tipps hier aus dem Forum angewendet um das Ding stabil laufen zu lassen. Da ergibt sich dann eine nicht mehr vergleichbare Ausgangslage. Aus dem Grund lief das Modul bei Reiner auch schon, als es z.B. bei mir noch regelmäßig FHEM schlafen geschickt hat. Nicht verzagen, weiter probieren!
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 20 Januar 2013, 00:03:32
Hi zusammen,

kurzes Update für zwischendurch:
- Proxy-Referenzen werden nun korrekt aufgeräumt
- Die verwirrenden Datenpakete kann ich nun zuordnen. Das war eine fehlerhafte Ermittlung meinerseits. In dem Paket steht regulär gar nicht drin, von welchem Player das kommt. Das muss man suchen...
- Man kann nun einstellen, ob die Set-Kommandos 'Success' bzw. neue Werte zurückgeben, oder einfach undef. Das hat den Vorteil, dass in der Übersicht die Darstellung bestehenbleibt. Momentan gibt es da noch die Unschönheit, das z.B. nach der Ausführung von VolumeU im State dann 'VolumeU' steht, und nicht mehr der Titel... Das wird aber gerade in einem anderen Thread besprochen...

@Christoph: Zu dem Reload-Thema. Hast du vorher irgendwelche Module geladen, die LWP::Simple bereits verwenden? Kannst du mal eine temporäre Minimalkonfiguration erzeugen, und nur Sonos laden?
Damit könntest du ausschließen, ob es am Rechner oder was anderem liegt...

Ich werde den Code dann Morgen nochmal hier veröffentlichen. Vielleicht kommt ja noch was dazu :-)

Grüße Reiner
Titel: Aw: Sonos steuern
Beitrag von: Christoph am 20 Januar 2013, 11:34:20
Hi Reiner,

Raspberry hab ich heute komplett neu aufgesetzt:

Busware Raspbian
Samba installiert
LWP::Simple installiert
SOAP::Lite installiert

Per Autocreate wurde noch CUL_EM und _WS erkannt und angelegt.
Mehr ist noch nicht drauf

Sonos per "Define Sonos SONOS" in die fhem.cfg eingefügt und gespeichert

Und jetzt hab ich folgendes im log:



2013.01.20 10:21:38 5: Cmd: >define Sonos SONOS<
2013.01.20 10:21:38 5: Loading /usr/share/fhem/FHEM/00_SONOS.pm
2013.01.20 10:21:38 1: reload: Error:Modul 00_SONOS deactivated:
 Can't locate HTTP/Status.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl .) at /usr/local/share/perl/5.14.2/LWP/Simple.pm line 14, <$fh> line 67.
BEGIN failed--compilation aborted at /usr/local/share/perl/5.14.2/LWP/Simple.pm line 14, <$fh> line 67.
Compilation failed in require at /usr/share/fhem/FHEM/00_SONOS.pm line 54, <$fh> line 67.
BEGIN failed--compilation aborted at /usr/share/fhem/FHEM/00_SONOS.pm line 54, <$fh> line 67.



Gruß Christoph
Titel: Aw: Sonos steuern
Beitrag von: Christoph am 20 Januar 2013, 11:56:06
Hatte bei der LWP::Simple Installation einige Warnungen oder kann man die ignorieren ?


root@raspberrypi:/home/pi/lwpsimple/libwww-perl-6.04# perl Makefile.PL
Warning: prerequisite Encode::Locale 0 not found.
Warning: prerequisite File::Listing 6 not found.
Warning: prerequisite HTML::Entities 0 not found.
Warning: prerequisite HTML::HeadParser 0 not found.
Warning: prerequisite HTTP::Cookies 6 not found.
Warning: prerequisite HTTP::Daemon 6 not found.
Warning: prerequisite HTTP::Date 6 not found.
Warning: prerequisite HTTP::Negotiate 6 not found.
Warning: prerequisite HTTP::Request 6 not found.
Warning: prerequisite HTTP::Request::Common 6 not found.
Warning: prerequisite HTTP::Response 6 not found.
Warning: prerequisite HTTP::Status 6 not found.
Warning: prerequisite LWP::MediaTypes 6 not found.
Warning: prerequisite Net::HTTP 6 not found.
Warning: prerequisite URI 1.10 not found.
Warning: prerequisite URI::Escape 0 not found.
Warning: prerequisite WWW::RobotRules 6 not found.
Writing Makefile for LWP
Writing MYMETA.yml
Titel: Aw: Sonos steuern
Beitrag von: det. am 20 Januar 2013, 12:19:30
Hallo Chistoph,

Hab auch nur gefährliches Halbwissen, aber ignorieren kannst Du die Fehler nicht. Mach Dir vorsichtshalber eine Kopie der SD Card auf einen anderen PC, dann kannst Du den Stand vor " total vermurkst" jederzeit wieder zurückspielen, lies das inzwischen sehr lange Posting noch mal durch, da stehen verstreut alle Infos zu den erforderlichen Linux Modulen drin. Wenn Du was noch mal installierst, was schon richtig drauf ist, merkt das das System. Mir hat auch ein reboot nach Installation jeweils der einzelnen Module geholfen.
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 20 Januar 2013, 12:31:25
Hi Christoph,

da ist LWP::Simple bei der Installation darauf gestossen. dass ihm noch etwas fehlt :-)
Hast du das per CPAN installiert? So wie es aussieht ja nicht...

Wenn nicht, dann muss ich das Wiki wohl noch erweiterrn, dass LWP::Simple anscheinend noch Vorraussetzungen hat, die man auch nachziehen muss, da sie offenbar nicht bereits vorhanden sind...

Das mit der Neuinstallation war zwar eine große Keule, hilft uns aber gerade das Wiki zu vervollständigen :-)
Wenn ich auf der CPAN-Seite bei den Vorraussetzungen nachschaue, kommt einiges zusammen:

        'Digest::MD5'
        'Encode'
        'Encode::Locale'
        'File::Listing'
        'HTML::Entities'
        'HTML::HeadParser'
        'HTTP::Cookies'
        'HTTP::Daemon'
        'HTTP::Date'
        'HTTP::Negotiate'
        'HTTP::Request'
        'HTTP::Request::Common'
        'HTTP::Response'
        'HTTP::Status'
        'IO::Select'
        'IO::Socket'
        'LWP::MediaTypes'
        'MIME::Base64'
        'Net::FTP'
        'Net::HTTP'
        'URI'
        'URI::Escape''
        'WWW::RobotRules'


Davon wird einiges bereits im Standard von Perl mitgeliefert sein. Es ist jetzt halt interessant, was da jetzt noch wirklich fehlt. Ich denke, da hilft deine Fehler/Warnungsausgabe aus dem letzten Post.

Grüße Reinerlein
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 20 Januar 2013, 12:44:07
Hi Christoph,

ich habe nochmal Google bemüht, und folgendes herausgefunden:
Es gibt die meisten Perl-Module für Debian (und deren Abkömmlinge) als Paket mittels apt-get.

Siehe dazu auch http://www.perlmonks.org/?node_id=753416 (http://www.perlmonks.org/?node_id=753416).

Das bedeutet für LibWWW:
sudo apt-get install libwww-perl

Vielleicht kannst du das ja noch darüber nachziehen lassen?

Wenn das funktioniert, werde ich das im Wiki als Hinweis für die Debian-System mit aufnehmen...

Grüße Reinerlein
Titel: Aw: Sonos steuern
Beitrag von: Will am 20 Januar 2013, 14:06:06
Hallo,

so jetzt werfe ich meine probleme auch mal in die runde:

ich habe heute komplett neu aufgesetzt eine Linux Mint 14 installation.

SOAP::Lite
LWP::Lite
sollten installiert sein (sagt mir der Paketmanager)

FHEM habe ich via dem Deb Paket nicht installiert bekommen - einfach dei tar.gz dateien genommen - FHEM laeuft

Im log kommt dann folgendes:
2013.01.20 12:30:45 1: reload: Error:Modul 00_SONOS deactivated:
 Can't locate UPnP/ControlPoint.pm in @INC (@INC contains: ./FHEM/lib /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl . ./FHEM) at ./FHEM/00_SONOS.pm line 64.
BEGIN failed--compilation aborted at ./FHEM/00_SONOS.pm line 64.

2013.01.20 12:30:45 0: Can't locate UPnP/ControlPoint.pm in @INC (@INC contains: ./FHEM/lib /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl . ./FHEM) at ./FHEM/00_SONOS.pm line 64.
BEGIN failed--compilation aborted at ./FHEM/00_SONOS.pm line 64.

Und das MOdul wird natuerlich nicht geladen.

Ich habe im FHEM ordner jedem lese und schreibrechte gegeben...

Hat jemand einen Tipp?

Danke,

W
Titel: Aw: Sonos steuern
Beitrag von: det. am 20 Januar 2013, 14:15:38
sieht so aus, als ob Du die Dateien
FHEM/lib
FHEM/lib/UPnP
FHEM/lib/UPnP/Common.pm
FHEM/lib/UPnP/ControlPoint.pm

siehe WIKI  http://www.fhemwiki.de/wiki/Sonos_Anwendungsbeispiel (http://www.fhemwiki.de/wiki/Sonos_Anwendungsbeispiel) nicht an die richtige Stelle kopiert hast?
Titel: Aw: Sonos steuern
Beitrag von: Will am 20 Januar 2013, 14:17:53
mint@mint /usr/share/fhem $ find /usr/share/fhem/lib/UPnP
/usr/share/fhem/lib/UPnP
/usr/share/fhem/lib/UPnP/Common.pm
/usr/share/fhem/lib/UPnP/ControlPoint.pm


Correct?

W
Titel: Aw: Sonos steuern
Beitrag von: det. am 20 Januar 2013, 14:24:18
Bei meinem RasbPi ist das so:

/usr/share/fhem/FHEM/lib/UPnP
Titel: Aw: Sonos steuern
Beitrag von: Christoph am 20 Januar 2013, 14:47:00
Stimmen Owner / Group ?

cd /usr/share/fhem/lib/UPnP
ls -l
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 20 Januar 2013, 14:52:27
Hi Will,

kannst du mal ein
find /usr/share/fhem/lib -ls
also eine Ebene höher, ausführen?

Da müsste dann auch die Datei OWNet.pm zu sehen sein... Und wir sehen hier mal die Rechte :-)

Und ich glaube, da fehlt eine Ebene. Der originale FHEM-Ordner (also der mit den FHEM-eigenen Libraries) wird großgeschrieben...

Grüße Reinerlein
Titel: Aw: Sonos steuern
Beitrag von: Will am 20 Januar 2013, 14:56:41
mint@mint /usr/share/fhem/FHEM/lib/UPnP $ ls -1
Common.pm
ControlPoint.pm
Titel: Aw: Sonos steuern
Beitrag von: Will am 20 Januar 2013, 15:02:30
ich habe den lib ordner jetzt im FHEM (nicht fhem) ordner verschoben

mint@mint /usr/share/fhem/FHEM/lib/UPnP $ find /usr/share/fhem/FHEM
/usr/share/fhem/FHEM
/usr/share/fhem/FHEM/00_CM11.pm
/usr/share/fhem/FHEM/00_CUL.pm
/usr/share/fhem/FHEM/00_FHZ.pm
/usr/share/fhem/FHEM/00_HMLAN.pm
/usr/share/fhem/FHEM/00_KM271.pm
/usr/share/fhem/FHEM/00_LIRC.pm
/usr/share/fhem/FHEM/00_OWX.pm
/usr/share/fhem/FHEM/00_TCM.pm
/usr/share/fhem/FHEM/00_TUL.pm
/usr/share/fhem/FHEM/00_ZWDongle.pm
/usr/share/fhem/FHEM/01_FHEMWEB.pm
/usr/share/fhem/FHEM/02_HTTPSRV.pm
/usr/share/fhem/FHEM/02_RSS.pm
/usr/share/fhem/FHEM/09_BS.pm
/usr/share/fhem/FHEM/09_CUL_FHTTK.pm
/usr/share/fhem/FHEM/09_USF1000.pm
/usr/share/fhem/FHEM/10_CUL_HM.pm
/usr/share/fhem/FHEM/10_CUL_IR.pm
/usr/share/fhem/FHEM/10_EIB.pm
/usr/share/fhem/FHEM/10_EnOcean.pm
/usr/share/fhem/FHEM/10_FS20.pm
/usr/share/fhem/FHEM/10_IT.pm
/usr/share/fhem/FHEM/10_ZWave.pm
/usr/share/fhem/FHEM/11_FHT.pm
/usr/share/fhem/FHEM/11_FHT8V.pm
/usr/share/fhem/FHEM/12_HMS.pm
/usr/share/fhem/FHEM/13_KS300.pm
/usr/share/fhem/FHEM/14_CUL_TX.pm
/usr/share/fhem/FHEM/14_CUL_WS.pm
/usr/share/fhem/FHEM/15_CUL_EM.pm
/usr/share/fhem/FHEM/16_CUL_RFR.pm
/usr/share/fhem/FHEM/17_SIS_PMS.pm
/usr/share/fhem/FHEM/18_CUL_HOERMANN.pm
/usr/share/fhem/FHEM/20_OWFS.pm
/usr/share/fhem/FHEM/20_X10.pm
/usr/share/fhem/FHEM/21_OWAD.pm
/usr/share/fhem/FHEM/21_OWCOUNT.pm
/usr/share/fhem/FHEM/21_OWID.pm
/usr/share/fhem/FHEM/21_OWLCD.pm
/usr/share/fhem/FHEM/21_OWMULTI.pm
/usr/share/fhem/FHEM/21_OWSWITCH.pm
/usr/share/fhem/FHEM/21_OWTEMP.pm
/usr/share/fhem/FHEM/21_OWTHERM.pm
/usr/share/fhem/FHEM/22_ALL3076.pm
/usr/share/fhem/FHEM/23_ALL4027.pm
/usr/share/fhem/FHEM/23_WEBIO.pm
/usr/share/fhem/FHEM/23_WEBIO_12DIGITAL.pm
/usr/share/fhem/FHEM/23_WEBTHERM.pm
/usr/share/fhem/FHEM/24_NetIO230B.pm
/usr/share/fhem/FHEM/40_RFXCOM.pm
/usr/share/fhem/FHEM/41_OREGON.pm
/usr/share/fhem/FHEM/42_RFXMETER.pm
/usr/share/fhem/FHEM/43_RFXX10REC.pm
/usr/share/fhem/FHEM/45_TRX.pm
/usr/share/fhem/FHEM/46_TRX_ELSE.pm
/usr/share/fhem/FHEM/46_TRX_LIGHT.pm
/usr/share/fhem/FHEM/46_TRX_SECURITY.pm
/usr/share/fhem/FHEM/46_TRX_WEATHER.pm
/usr/share/fhem/FHEM/49_IPCAM.pm
/usr/share/fhem/FHEM/50_WS300.pm
/usr/share/fhem/FHEM/56_POKEYS.pm
/usr/share/fhem/FHEM/57_Calendar.pm
/usr/share/fhem/FHEM/59_Twilight.pm
/usr/share/fhem/FHEM/59_Weather.pm
/usr/share/fhem/FHEM/60_EM.pm
/usr/share/fhem/FHEM/61_EMWZ.pm
/usr/share/fhem/FHEM/62_EMEM.pm
/usr/share/fhem/FHEM/63_EMGZ.pm
/usr/share/fhem/FHEM/64_ESA2000.pm
/usr/share/fhem/FHEM/66_ECMD.pm
/usr/share/fhem/FHEM/67_ECMDDevice.pm
/usr/share/fhem/FHEM/70_SCIVT.pm
/usr/share/fhem/FHEM/70_SISPM.pm
/usr/share/fhem/FHEM/70_SML.pm
/usr/share/fhem/FHEM/70_STV.pm
/usr/share/fhem/FHEM/70_TellStick.pm
/usr/share/fhem/FHEM/70_USBWX.pm
/usr/share/fhem/FHEM/70_WS3600.pm
/usr/share/fhem/FHEM/75_MSG.pm
/usr/share/fhem/FHEM/76_MSGFile.pm
/usr/share/fhem/FHEM/76_MSGMail.pm
/usr/share/fhem/FHEM/80_M232.pm
/usr/share/fhem/FHEM/80_xxLG7000.pm
/usr/share/fhem/FHEM/81_M232Counter.pm
/usr/share/fhem/FHEM/82_LGTV.pm
/usr/share/fhem/FHEM/82_M232Voltage.pm
/usr/share/fhem/FHEM/87_WS2000.pm
/usr/share/fhem/FHEM/88_ALL4000T.pm
/usr/share/fhem/FHEM/88_IPWE.pm
/usr/share/fhem/FHEM/88_Itach_Relay.pm
/usr/share/fhem/FHEM/88_VantagePro2.pm
/usr/share/fhem/FHEM/88_WEBCOUNT.pm
/usr/share/fhem/FHEM/90_at.pm
/usr/share/fhem/FHEM/91_notify.pm
/usr/share/fhem/FHEM/91_sequence.pm
/usr/share/fhem/FHEM/91_watchdog.pm
/usr/share/fhem/FHEM/92_FileLog.pm
/usr/share/fhem/FHEM/93_FHEM2FHEM.pm
/usr/share/fhem/FHEM/95_FLOORPLAN.pm
/usr/share/fhem/FHEM/95_holiday.pm
/usr/share/fhem/FHEM/95_PachLog.pm
/usr/share/fhem/FHEM/98_autocreate.pm
/usr/share/fhem/FHEM/98_average.pm
/usr/share/fhem/FHEM/98_dewpoint.pm
/usr/share/fhem/FHEM/98_dummy.pm
/usr/share/fhem/FHEM/98_PID.pm
/usr/share/fhem/FHEM/98_structure.pm
/usr/share/fhem/FHEM/98_SVG.pm
/usr/share/fhem/FHEM/98_telnet.pm
/usr/share/fhem/FHEM/98_weblink.pm
/usr/share/fhem/FHEM/98_WOL.pm
/usr/share/fhem/FHEM/99_backup.pm
/usr/share/fhem/FHEM/99_CULflash.pm
/usr/share/fhem/FHEM/99_JsonList.pm
/usr/share/fhem/FHEM/99_SUNRISE_EL.pm
/usr/share/fhem/FHEM/99_update.pm
/usr/share/fhem/FHEM/99_Utils.pm
/usr/share/fhem/FHEM/99_XmlList.pm
/usr/share/fhem/FHEM/DevIo.pm
/usr/share/fhem/FHEM/FhemUtils
/usr/share/fhem/FHEM/FhemUtils/release.pm
/usr/share/fhem/FHEM/FritzBoxUtils.pm
/usr/share/fhem/FHEM/HttpUtils.pm
/usr/share/fhem/FHEM/TcpServerUtils.pm
/usr/share/fhem/FHEM/00_SONOS.pm
/usr/share/fhem/FHEM/21_SONOSPLAYER.pm
/usr/share/fhem/FHEM/lib
/usr/share/fhem/FHEM/lib/UPnP
/usr/share/fhem/FHEM/lib/UPnP/Common.pm
/usr/share/fhem/FHEM/lib/UPnP/ControlPoint.pm
Titel: Aw: Sonos steuern
Beitrag von: Will am 20 Januar 2013, 15:05:59
hmmm, so wie ich das sehe habe ich jetzt ein anderes problem:

logfile gibt aus:

2013.01.20 13:53:24 1: telnetPort: Can't open server port at 7072: Address already in use. Exiting.

danach werden die weiteren Befehle der cfg nicht weiter ausgefuehrt...

Danke fuer die Hinweise.

W
Titel: Aw: Sonos steuern
Beitrag von: Will am 20 Januar 2013, 15:28:24
Aslo neuer Versuch, alles nochmal gebootet, jetzt steht im logfile:

2013.01.21 06:22:00 1: Including fhem.cfg
2013.01.21 06:22:01 3: telnetPort: port 7072 opened
2013.01.21 06:22:01 3: WEB: port 8083 opened
2013.01.21 06:22:01 3: WEBphone: port 8084 opened
2013.01.21 06:22:01 3: WEBtablet: port 8085 opened
2013.01.21 06:22:01 1: configfile: Unknown module SONOS, choose one of ALL3076 ALL4000T ALL4027 BS CM11 CUL CUL_EM CUL_FHTTK CUL_HM CUL_HOERMANN CUL_IR CUL_RFR CUL_TX CUL_WS Calendar ECMD ECMDDevice EIB EM EMEM EMGZ EMWZ ESA2000 EnOcean FHEM2FHEM FHEMWEB FHT FHT8V FHZ FLOORPLAN FS20 FileLog HMLAN HMS HTTPSRV IPCAM IPWE IT Itach_Relay KM271 KS300 LGTV LIRC M232 M232Counter M232Voltage MSG MSGFile MSGMail NetIO230B OREGON OWAD OWCOUNT OWFS OWID OWLCD OWMULTI OWSWITCH OWTEMP OWTHERM OWX PID POKEYS PachLog RFXCOM RFXMETER RFXX10REC RSS SCIVT SISPM SIS_PMS SML STV SVG TCM TRX TRX_ELSE TRX_LIGHT TRX_SECURITY TRX_WEATHER TUL TellStick Twilight USBWX USF1000 VantagePro2 WEBCOUNT WEBIO WEBIO_12DIGITAL WEBTHERM WOL WS2000 WS300 WS3600 Weather X10 ZWDongle ZWave at autocreate average dewpoint dummy holiday notify sequence structure telnet watchdog weblink xxLG7000
2013.01.21 06:22:01 1: Including ./log/fhem.save
2013.01.21 06:22:01 1: usb create starting
2013.01.21 06:22:01 1: usb create end
2013.01.21 06:22:01 2: SecurityCheck:  WEB,WEBphone,WEBtablet has no basicAuth attribute. telnetPort has no password/globalpassword attribute.  Restart fhem for a new check if the problem is fixed, or set the global attribute motd to none to supress this message.
2013.01.21 06:22:01 0: Server started (version Fhem 5.3 (DEVELOPMENT), $Id: fhem.pl 1996 2012-10-20



Er laedt das Modul wohl nicht, korrekt? Woran koennte das liegen?

W
Titel: Aw: Sonos steuern
Beitrag von: Will am 20 Januar 2013, 15:36:55
Rechte der 2 relevanten Dateien:

224515   72 -rwxrwxrwx   1 root     root        65538 Jan 20 20:28 ./00_SONOS.pm
224516   24 -rw-rw-rw-   1 root     root        22591 Jan 20 20:28 ./21_SONOSPLAYER.pm
Titel: Aw: Sonos steuern
Beitrag von: Will am 20 Januar 2013, 15:56:50
bei reload 00_SONOS
kommt
Can't read ./FHEM/00_SONOS.pm: No such file or directory

Ich gebs jetzt erst mal auf.

Dank an all die Geduldigen, die sich diese Logfiles hier durchlesen und auch Antworten!
Meine Linuxkenntnisse sind jetzt bei "ein bisschen" kommend von "gar nix".

Gute Nacht.

W
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 20 Januar 2013, 16:03:32
Hi Wll

nicht verzweifeln.. wir haben das noch bei jedem hinbekommen.

In deiner Fileliste steht zwar jetzt wunderbar unter FHEM/lib der UPnP Kram. Allerdings fehlen im Ordner FHEM (großgeschrieben) jetzt wohl die beiden Dateien 00_SONOS.pm und 21_SONOSPLAYER.pm.

Die sind wohl bei deinen Verschiebeaktionen verloren gegangen...

Grüße Reinerlein
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 20 Januar 2013, 16:04:38
ahh zurück.. die waren nur an einer anderen Stelle sortiert in deiner Ausgabe.. hmm... ich gehe nochmal in mich...
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 20 Januar 2013, 17:55:49
Hi Will,

welche FHEM-Version betreibst du denn?

Es könnte durchaus sein, dass es bei älteren Versionen zu Problemen kommen kann. Ich entwickle ja auf dem aktuellsten Entwicklungsstand von FHEM.

Normalerweise sollte nämlich auch eine Datei OWNet.pm (das Modul wird von OWServer benötigt) im Ordner "lib/" vorhanden sein. Dies passiert aber erst ab einer Version von irgendwann Ende Dezember...

Vielleicht solltest du mal updaten (mittels "update" über die FHEM-Oberfläche), und dann nochmal probieren...

Grüße Reinerlei
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 22 Januar 2013, 11:07:38
Hi zusammen,

ich wollte mal ein kurzes Update bringen.

Ich habe einen Punkt entdeckt, der dafür sorgen dürfte, dass mehrere Player in einem Netz nicht funktionieren. Da bin ich gerade dabei, dies zu beheben. Desweiteren sind kleinere Bugs von mir bereits entdeckt und auch behoben worden.

Ich werde also die nächste Veröffentlichung bis zur Behebung dieses Punkts verzögern... Wird aber nicht mehr lange dauern...

Grüße Reinerlein
Titel: Aw: Sonos steuern
Beitrag von: det. am 22 Januar 2013, 11:53:54
Hallo Reiner,

das klingt ja sehr erfreulich! Der PLAY:3 fürs Bad ist schon unterwegs, kann also spätestens ab Donnerstag mit 2 Geräten testen. Habe übrigens eine sehr günstige Quelle für die Dinger, wenn jemand noch welche braucht - pm - an mich.
Titel: Aw: Sonos steuern
Beitrag von: Will am 22 Januar 2013, 13:19:34
Ich betreibe fhem 5.3

W
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 22 Januar 2013, 16:06:08
Hi Will,

OK, dann wäre noch interessant. ob du jemals mal "update" ausgeführt hast. Erst dann wird auf die aktuellste Developer-Version aktualisiert.
Da ist einiges seit dem 5.3er Release passiert. Allerdings muss man bei manchen Sachen auch was anpassen. Wenn das nur eine Parallel-Installation ist, dann sollte das kein Problem sein. Im anderen Fall solltest du das erstmal versuchsweise machen...

Grüße Reinerlein
Titel: Aw: Sonos steuern
Beitrag von: det. am 23 Januar 2013, 10:46:35
Hallo Reiner,

kurze Zwischeninfo: der soeben angekommene PLAY:3 wird vom FHEM System mit absoluter Nichtachtung gestraft (bisher).
Titel: Aw: Sonos steuern
Beitrag von: Christoph am 23 Januar 2013, 14:51:36
Gut dann liegt es nicht an mir *gg* Bei mir funktioniert es mit dem Play3 auch nicht...

Connect funktioniert ohne Probleme
Wenn ich Play und oder Bridge dazunehme und wird nichts mehr erkannt.

Gruß Christoph
Titel: Aw: Sonos steuern
Beitrag von: det. am 23 Januar 2013, 15:02:00
na, dann brauch ich nicht weiter zu probieren. Habe den ZP90 aus der config rausgelöscht - sobald der PLAY:3 am Netz ist geht nach shutdown restart der RaspbPi schlafen - und Neustart funktioniert erst wieder, wenn der PLAY:3 definitiv aus ist.
Titel: Aw: Sonos steuern
Beitrag von: Christoph am 23 Januar 2013, 17:56:12
Auf die Idee den Play3 auszustecken bin ich net gekommen...
Hab gedacht es liegt an fhem bzw dem Sonos Modul, hab dann auf der Konsole händisch das "define Sonos SONOS" aus der fhem.cfg rausgenommen. Und nach reboot des Raspberry ging fhem irgendwann wieder :-)

Gruß Christoph
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 23 Januar 2013, 20:27:45
Hi zusammen,

hmmm, ok, jetzt wird es also interessant mit zwei Geräten im Netz. Das ist bei mir bislang ja nur im Kopf gelaufen... und da kann ja auch immer einiges schief gehen :-)

Zur Einschränkung des Problems:
Funktioniert es denn, wenn nur der Play:3 am Netz hängt, und der andere aus ist?

Ich möchte herausfinden, ob die mehreren Player das Problem sind, oder der Play:3...

Grüße Reinerlein
Titel: Aw: Sonos steuern
Beitrag von: Christoph am 23 Januar 2013, 20:35:06
Zitat von: Reinerlein schrieb am Mi, 23 Januar 2013 20:27

Zur Einschränkung des Problems:
Funktioniert es denn, wenn nur der Play:3 am Netz hängt, und der andere aus ist?


Also bei mir hat es nicht funktioniert.
Titel: Aw: Sonos steuern
Beitrag von: det. am 23 Januar 2013, 20:52:28
Hallo Reiner,

Der PLAY:3 wird völlig ignoriert. Ich hab den RaspbPi heute bestimmt 10 x neu gestartet mit Stecker raus....
1. Fall ZP90 in FHEM eingetragen und läuft  - PLAY:3 dazu FHEM stirbt
2. Fall dto., nur ZP90 ist aus und PLAY:3 hängt mit Netzwerkkabel am Netz, nach shutdown restart .....s.o.
3. Fall ZP90 Einstellungen aus der config genommen, PLAY:3 wird nicht erkannt ...s.o.
ich würde Dir viel lieber was aufmunterndes schreiben, aber da gibt es noch eine große Baustelle.
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 23 Januar 2013, 21:37:56
Hi Detlev,

das kriegen wir schon hin. Es wird nur ein bißchen Informationsübertragung nötig, da ich hier ja nur einen ZP90 habe...

Was mir helfen würde:
-Loglevel auf 4 stellen
-Log bzgl. der Sonos-Ausgaben (fangen alle mit SONOS_ an, wobei der Unterstrich immer eine Zahl ist)
-Konsolenausgabe des Perl-Prozesses. Ich vermute, dass der Thread stirbt, und auf der Konsole eine Ausgabe dazu steht

Im Log taucht dann auch eine sehr lange Ausgabe auf: Eine XML-Datei des Zoneplayers. Die hilft mir dann beim Analysieren des Problems...

Grüße Reinerlein
Titel: Aw: Sonos steuern
Beitrag von: det. am 23 Januar 2013, 23:01:35
Doch noch Save gelöscht, alles rausgeworfen und Kaltstart:
2013.01.23 22:17:17 1: Including /etc/fhem.cfg
2013.01.23 22:17:20 4: FHEMWEB directories:
2013.01.23 22:17:20 4:   web server root: /usr/share/fhem/www
2013.01.23 22:17:20 4:   icon directory: /usr/share/fhem/www/images
2013.01.23 22:17:20 4:     Notice: if style-specific subdirectories /usr/share/fhem/www/images/default etc. exist, icons are only read from there and not from /usr/share/fhem/www/images!
2013.01.23 22:17:20 4:   doc directory: /usr/share/fhem/docs
2013.01.23 22:17:20 4:   css directory: /usr/share/fhem/www/pgm2
2013.01.23 22:17:20 4:   gplot directory: /usr/share/fhem/www/gplot
2013.01.23 22:17:20 4:   javascript directory: /usr/share/fhem/www/pgm2
2013.01.23 22:17:20 3: WEB: port 8083 opened
2013.01.23 22:17:20 3: telnetPort: port 7072 opened
2013.01.23 22:17:20 4: FHEMWEB directories:
2013.01.23 22:17:20 4:   web server root: /usr/share/fhem/www
2013.01.23 22:17:20 4:   icon directory: /usr/share/fhem/www/images
2013.01.23 22:17:20 4:     Notice: if style-specific subdirectories /usr/share/fhem/www/images/default etc. exist, icons are only read from there and not from /usr/share/fhem/www/images!
2013.01.23 22:17:21 4:   doc directory: /usr/share/fhem/docs
2013.01.23 22:17:21 4:   css directory: /usr/share/fhem/www/pgm2
2013.01.23 22:17:21 4:   gplot directory: /usr/share/fhem/www/gplot
2013.01.23 22:17:21 4:   javascript directory: /usr/share/fhem/www/pgm2
2013.01.23 22:17:21 3: WEBtablet: port 8085 opened
2013.01.23 22:17:21 3: Opening CUL_RASPI device /dev/ttyAMA0
2013.01.23 22:17:22 3: Setting CUL_RASPI baudrate to 38400
2013.01.23 22:17:22 3: CUL_RASPI device opened
2013.01.23 22:17:22 3: CUL_RASPI: Possible commands: mCFiAZOGMRTVWXefltux
2013.01.23 22:52:40 1: usb create starting
2013.01.23 22:52:41 4: ### ttyAMA0: checking if it is a CUL
2013.01.23 22:52:41 4: already used by the CUL_RASPI fhem device
2013.01.23 22:52:41 1: usb create end
2013.01.23 22:52:41 0: Server started (version Fhem 5.3 (DEVELOPMENT), $Id: fhem.pl 2553 2013-01-22 19:16:46Z rudolfkoenig $, pid 1824)
2013.01.23 22:52:41 3: SONOS0: UPnP-Thread is now dead or has not exists!
2013.01.23 22:52:43 4: SONOS1: <?xml version="1.0" encoding="utf-8" ?>
<root xmlns="urn:schemas-upnp-org:device-1-0">
  <specVersion>
    <major>1</major>
    <minor>0</minor>
  </specVersion>
  <device>
    <deviceType>urn:schemas-upnp-org:device:ZonePlayer:1</deviceType>
    <friendlyName>192.168.2.36 - Sonos PLAY:3</friendlyName>
    <manufacturer>Sonos, Inc.</manufacturer>
    <manufacturerURL>http://www.sonos.com</manufacturerURL>
    <modelNumber>S3</modelNumber>
    <modelDescription>Sonos PLAY:3</modelDescription>
    <modelName>Sonos PLAY:3</modelName>
    <modelURL>http://www.sonos.com/products/zoneplayers/S3</modelURL>
    <softwareVersion>19.4-60120</softwareVersion>
    <hardwareVersion>1.8.1.2-2</hardwareVersion>
    <serialNum>00-0E-58-7D-9F-C4:7</serialNum>
    <UDN>uuid:RINCON_000E587D9FC401400</UDN>
    <iconList>
      <icon>
        <id>0</id>
        <mimetype>image/png</mimetype>
        <width>48</width>
        <height>48</height>
        <depth>24</depth>
        <url>/img/icon-S3.png</url>
      </icon>
    </iconList>
    <minCompatibleVersion>19.4-00000</minCompatibleVersion>
    <displayVersion>3.8.4</displayVersion>
    <extraVersion>OTP: </extraVersion>
    <roomName>Mobil</roomName>
    <displayName>PLAY:3</displayName>
    <zoneType>7</zoneType>
    <feature1>0x00000000</feature1>
    <feature2>0x00006332</feature2>
    <feature3>0x0000002a</feature3>
    <internalSpeakerSize>4</internalSpeakerSize>
    <serviceList>
      <service>
        <serviceType>urn:schemas-upnp-org:service:AlarmClock:1</serviceType>
        <serviceId>urn:upnp-org:serviceId:AlarmClock</serviceId>
        <controlURL>/AlarmClock/Control</controlURL>
        <eventSubURL>/AlarmClock/Event</eventSubURL>
        <SCPDURL>/xml/AlarmClock1.xml</SCPDURL>
      </service>    
      <service>
        <serviceType>urn:schemas-upnp-org:service:MusicServices:1</serviceType>
        <serviceId>urn:upnp-org:serviceId:MusicServices</serviceId>
        <controlURL>/MusicServices/Control</controlURL>
        <eventSubURL>/MusicServices/Event</eventSubURL>
        <SCPDURL>/xml/MusicServices1.xml</SCPDURL>
      </service>    
      <service>
        <serviceType>urn:schemas-upnp-org:service:DeviceProperties:1</serviceType>
        <serviceId>urn:upnp-org:serviceId:DeviceProperties</serviceId>
        <controlURL>/DeviceProperties/Control</controlURL>
        <eventSubURL>/DeviceProperties/Event</eventSubURL>
        <SCPDURL>/xml/DeviceProperties1.xml</SCPDURL>
      </service>    
      <service>
        <serviceType>urn:schemas-upnp-org:service:SystemProperties:1</serviceType>
        <serviceId>urn:upnp-org:serviceId:SystemProperties</serviceId>
        <controlURL>/SystemProperties/Control</controlURL>
        <eventSubURL>/SystemProperties/Event</eventSubURL>
        <SCPDURL>/xml/SystemProperties1.xml</SCPDURL>
      </service>    
      <service>
        <serviceType>urn:schemas-upnp-org:service:ZoneGroupTopology:1</serviceType>
        <serviceId>urn:upnp-org:serviceId:ZoneGroupTopology</serviceId>
        <controlURL>/ZoneGroupTopology/Control</controlURL>
        <eventSubURL>/ZoneGroupTopology/Event</eventSubURL>
        <SCPDURL>/xml/ZoneGroupTopology1.xml</SCPDURL>
      </service>    
      <service>
        <serviceType>urn:schemas-upnp-org:service:GroupManagement:1</serviceType>
        <serviceId>urn:upnp-org:serviceId:GroupManagement</serviceId>
        <controlURL>/GroupManagement/Control</controlURL>
        <eventSubURL>/GroupManagement/Event</eventSubURL>
        <SCPDURL>/xml/GroupManagement1.xml</SCPDURL>
      </service>
    </serviceList>
    <deviceList>
      <device>
  <deviceType>urn:schemas-upnp-org:device:MediaServer:1</deviceType>
  <friendlyName>192.168.2.36 - Sonos PLAY:3 Media Server</friendlyName>
  <manufacturer>Sonos, Inc.</manufacturer>
  <manufacturerURL>http://www.sonos.com</manufacturerURL>
  <modelNumber>S3</modelNumber>
  <modelDescription>Sonos PLAY:3 Media Server</modelDescription>
  <modelName>Sonos PLAY:3</modelName>
  <modelURL>http://www.sonos.com/products/zoneplayers/S3</modelURL>
  <UDN>uuid:RINCON_000E587D9FC401400_MS</UDN>
  <serviceList>
    <service>
      <serviceType>urn:schemas-upnp-org:service:ContentDirectory:1</serviceType>
      <serviceId>urn:upnp-org:serviceId:ContentDirectory</serviceId>
      <controlURL>/MediaServer/ContentDirectory/Control</controlURL>
      <eventSubURL>/MediaServer/ContentDirectory/Event</eventSubURL>
      <SCPDURL>/xml/ContentDirectory1.xml</SCPDURL>
    </service>
    <service>
      <serviceType>urn:schemas-upnp-org:service:ConnectionManager:1</serviceType>
   <serviceId>urn:upnp-org:serviceId:ConnectionManager</serviceId>
   <controlURL>/MediaServer/ConnectionManager/Control</controlURL>
   <eventSubURL>/MediaServer/ConnectionManager/Event</eventSubURL>
   <SCPDURL>/xml/ConnectionManager1.xml</SCPDURL>
 </service>
</serviceList>
      </device>
      <device>
<deviceType>urn:schemas-upnp-org:device:MediaRenderer:1</deviceType>
  <friendlyName>Mobil - Sonos PLAY:3 Media Renderer</friendlyName>
  <manufacturer>Sonos, Inc.</manufacturer>
  <manufacturerURL>http://www.sonos.com</manufacturerURL>
  <modelNumber>S3</modelNumber>
  <modelDescription>Sonos PLAY:3 Media Renderer</modelDescription>
  <modelName>Sonos PLAY:3</modelName>
  <modelURL>http://www.sonos.com/products/zoneplayers/S3</modelURL>
<UDN>uuid:RINCON_000E587D9FC401400_MR</UDN>
<serviceList>
 <service>
   <serviceType>urn:schemas-upnp-org:service:RenderingControl:1</serviceType>
   <serviceId>urn:upnp-org:serviceId:RenderingControl</serviceId>
   <controlURL>/MediaRenderer/RenderingControl/Control</controlURL>
   <eventSubURL>/MediaRenderer/RenderingControl/Event</eventSubURL>
   <SCPDURL>/xml/RenderingControl1.xml</SCPDURL>
 </service>
 <service>
   <serviceType>urn:schemas-upnp-org:service:ConnectionManager:1</serviceType>
   <serviceId>urn:upnp-org:serviceId:ConnectionManager</serviceId>
   <controlURL>/MediaRenderer/ConnectionManager/Control</controlURL>
   <eventSubURL>/MediaRenderer/ConnectionManager/Event</eventSubURL>
   <SCPDURL>/xml/ConnectionManager1.xml</SCPDURL>
 </service>
 <service>
   <serviceType>urn:schemas-upnp-org:service:AVTransport:1</serviceType>
   <serviceId>urn:upnp-org:serviceId:AVTransport</serviceId>
   <controlURL>/MediaRenderer/AVTransport/Control</controlURL>
   <eventSubURL>/MediaRenderer/AVTransport/Event</eventSubURL>
   <SCPDURL>/xml/AVTransport1.xml</SCPDURL>
 </service>
</serviceList>
        <X_Rhapsody-Extension xmlns="http://www.real.com/rhapsody/xmlns/upnp-1-0">
          <deviceID>urn:rhapsody-real-com:device-id-1-0:sonos_1:RINCON_000E587D9FC401400</deviceID>
            <deviceCapabilities>
              <interactionPattern type="real-rhapsody-upnp-1-0"/>
            </deviceCapabilities>
        </X_Rhapsody-Extension>
        <iconList>
          <icon>
            <mimetype>image/png</mimetype>
            <width>48</width>
            <height>48</height>
            <depth>24</depth>
            <url>/img/icon-S3.png</url>
          </icon>
        </iconList>
      </device>
    </deviceList>
  </device>
</root>

2013.01.23 22:54:26 4: Connection accepted from FHEMWEB:192.168.2.142:55140
2013.01.23 22:54:27 4: HTTP FHEMWEB:192.168.2.142:55140 GET /fhem
2013.01.23 22:54:28 4: /fhem / RL: 824 / text/html; charset=UTF-8 / Content-Encoding: gzip
 /
2013.01.23 22:54:28 4: HTTP FHEMWEB:192.168.2.142:55140 GET /fhem/css/style.css
2013.01.23 22:54:28 4: HTTP FHEMWEB:192.168.2.142:55140 GET /fhem/js/svg.js
2013.01.23 22:54:28 4: HTTP FHEMWEB:192.168.2.142:55140 GET /fhem/js/fhemweb.js
2013.01.23 22:54:28 4: Connection closed for FHEMWEB:192.168.2.142:55140
2013.01.23 22:54:28 4: Connection accepted from FHEMWEB:192.168.2.142:55141
2013.01.23 22:54:28 4: HTTP FHEMWEB:192.168.2.142:55141 GET /fhem/icons/icoEverything
2013.01.23 22:54:28 4: HTTP FHEMWEB:192.168.2.142:55141 GET /fhem/icons/fhemicon.png
2013.01.23 22:54:28 4: Connection accepted from FHEMWEB:192.168.2.142:55142
2013.01.23 22:54:28 4: HTTP FHEMWEB:192.168.2.142:55142 GET /fhem/icons/fhemicon
2013.01.23 22:54:35 4: HTTP FHEMWEB:192.168.2.142:55141 GET /fhem?room=Unsorted
2013.01.23 22:54:35 4: /fhem?room=Unsorted / RL: 1331 / text/html; charset=UTF-8 / Content-Encoding: gzip
 /
2013.01.23 22:54:35 4: HTTP FHEMWEB:192.168.2.142:55141 GET /fhem/css/style.css
2013.01.23 22:54:44 4: HTTP FHEMWEB:192.168.2.142:55141 GET /fhem?cmd=logwrapper%20Logfile%20text%20fhem-2013-01.log
2013.01.23 22:54:44 4: Connection closed for FHEMWEB:192.168.2.142:55141
2013.01.23 22:54:45 4: Connection accepted from FHEMWEB:192.168.2.142:55143
2013.01.23 22:54:45 4: HTTP FHEMWEB:192.168.2.142:55143 GET /fhem/css/style.css
2013.01.23 22:55:19 4: Connection closed for FHEMWEB:192.168.2.142:55142
2013.01.23 22:55:19 4: Connection closed for FHEMWEB:192.168.2.142:55143
2013.01.23 22:56:35 4: HMS device f4e9 not defined, using the wildcard device 1001
2013.01.23 22:56:35 3: Unknown HMS device 1001/f4e9, please define it
2013.01.23 22:56:35 2: autocreate: define HMS100T_f4e9 HMS f4e9
2013.01.23 22:56:36 2: autocreate: define FileLog_HMS100T_f4e9 FileLog /var/log/fhem/HMS100T_f4e9-%Y.log HMS100T_f4e9:T:.*
2013.01.23 22:56:36 2: autocreate: define weblink_HMS100T_f4e9 weblink fileplot FileLog_HMS100T_f4e9:temp4hum6:CURRENT
2013.01.23 22:58:20 4: Connection accepted from FHEMWEB:192.168.2.142:55196
2013.01.23 22:58:20 4: HTTP FHEMWEB:192.168.2.142:55196 GET /fhem
2013.01.23 22:58:20 4: /fhem / RL: 848 / text/html; charset=UTF-8 / Content-Encoding: gzip
 /
2013.01.23 22:58:20 4: HTTP FHEMWEB:192.168.2.142:55196 GET /fhem/css/style.css
2013.01.23 22:58:20 4: HTTP FHEMWEB:192.168.2.142:55196 GET /fhem/js/svg.js
2013.01.23 22:58:20 4: HTTP FHEMWEB:192.168.2.142:55196 GET /fhem/js/fhemweb.js
2013.01.23 22:58:20 4: HTTP FHEMWEB:192.168.2.142:55196 GET /fhem/icons/icoEverything
2013.01.23 22:58:20 4: HTTP FHEMWEB:192.168.2.142:55196 GET /fhem/icons/fhemicon.png
2013.01.23 22:58:20 4: Connection accepted from FHEMWEB:192.168.2.142:55197
2013.01.23 22:58:20 4: HTTP FHEMWEB:192.168.2.142:55197 GET /fhem/icons/fhemicon
2013.01.23 22:58:30 4: HTTP FHEMWEB:192.168.2.142:55196 GET /fhem?cmd=logwrapper%20Logfile%20text%20fhem-2013-01.log
2013.01.23 22:58:30 4: Connection accepted from FHEMWEB:192.168.2.142:55199
2013.01.23 22:58:30 4: HTTP FHEMWEB:192.168.2.142:55199 GET /fhem/css/style.css
2013.01.23 22:58:50 4: Connection closed for FHEMWEB:192.168.2.142:55196
2013.01.23 22:59:20 4: Connection closed for FHEMWEB:192.168.2.142:55199
2013.01.23 22:59:20 4: Connection closed for FHEMWEB:192.168.2.142:55197
Titel: Aw: Sonos steuern
Beitrag von: Christoph am 24 Januar 2013, 16:21:30
Zitat von: Reinerlein schrieb am Mi, 23 Januar 2013 21:37

-Konsolenausgabe des Perl-Prozesses. Ich vermute, dass der Thread stirbt, und auf der Konsole eine Ausgabe dazu steht


Und wie kann ich mir das auf meinem Raspberry Pi anzeigen lassen ? Oder wird das im fhem Log ausgegeben ?
Sorry hab dich schonmal gefragt es aber nicht hinbekommen bzw gefunden.

Falls du noch irgendeinen Log gebrauchen kannst, meld dich. Kann ja mal mehrere Konstelationen mit Play3 + Connect + Bridge loggen...

Gruß Christoph
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 24 Januar 2013, 17:14:56
Hi,

 die Konsolenausgabe ist das, was Perl direkt auf Standard-Out und Standard-Error ausgibt.

Wenn man den Prozess z.B. direkt in einem SSH-Fenster mit dem Befehl
perl fhem.pl fhem.cfg
im Hauptverzeichnis von FHEM startet (also dort, wo die Datei fhem.pl auch liegt), dann ist die Konsolenausgabe das, was dann in dem Fenster so angezeigt wird.
In diesem oben beschriebenen Zustand darf man auch das SSH-Fenster nicht schließen, da sonst der Perl-Prozess (mit FHEM) auch beendet wird.

Wenn FHEM über ein Startskript gestartet wird, damit es auch im Hintergrund laufen kann, wird meistens mit dem Umleit-Operator '>' die Ausgabe in eine Datei geleitet.
Bei mir sieht der Bereich zum Starten von FHEM z.B. so aus (hier nur der Schnipsel für den Start):
.
.
start)
echo "Start $0"
/etc/fhem/fhem/fhem.pl /etc/fhem/config/fhem.cfg > /var/log/fhem 2> /var/log/fhem &
;;
.
.


In diesem Beispiel wird die Ausgabe von Standard-Out per '>' in die Datei '/var/og/fhem' geleitet. Desweiteren wird Standard-Error mittels '2>' in die gleiche Datei umgeleitet.
Das bedeutet, dass ich sowohl Normale Meldungen als auch Fehlermeldungen des Perl-Prozesses in der Datei '/var/log/fhem' ansehen kann.

Das '&' am Ende der Zeile sorgt dafür, dass der Prozess im Hintergrund gestartet wird, und die Konsole (auch das Startskript läuft ja in einer Konsole, ob man diese nun sieht oder nicht) wird wieder freigegeben.

Diese Ausgaben in der Datei kann ich mir z.B. im laufenden Betrieb mittels
tail -f /var/log/fhem
anzeigen lassen. Damit sieht man die Datei, wie sie gerade beschrieben wird, life im SSH-Fenster.

Das war jetzt mal ein kleiner Exkurs in Linux- bzw. Unix-Basics.

Im Gegensatz dazu ist die Log-Ausgabe von FHEM einfach eine Textdatei, die von FHEM-Code befüllt wird. Wenn der Code aber z.B. bei einem Absturz, keine Möglichkeit mehr hat, kann da auch nix dazu drinstehen :-) Das steht dann alles in der oben beschriebenen Konsolenausgabe...

Ich hoffe damit ein bißchen Klarheit in die Begriffe gebracht zu haben. Sollte noch was unklar sein, einfach schreiben...

Grüße Reinerlein
Titel: Aw: Sonos steuern
Beitrag von: Christoph am 24 Januar 2013, 18:16:28
Hi Reiner,

danke für die kleine Exkursion :-)

Hab mal meinen Play3 nochmal angeschlossen und eingebunden

Das einzige was der Prozess ausgab ist das hier:

Thread 1 terminated abnormally: Can't call method "controlProxy" on an undefined value at ./FHEM/00_SONOS.pm line 685.


Gruß Christoph
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 24 Januar 2013, 20:15:38
Hi Christoph,

das ist genau die Fehlermeldung, die ich brauchte...

*Vor-die-Stirn-Klatsch* - Das Problem ist gelöst... Der Play:3 hat keinen Audio-Eingang. An dieser Stelle im Code hatte ich einfach versucht einen Steuerungsproxy für den Audioeingang anzufordern.
Das geht auf diesem Player natürlich schief. Ich habe meine Anforderungen nun abgesichert, und es sollte nun über diese Stelle hinaus gehen...

Sorry für diese Unannehmlichkeiten.

Hier im Anhang also die aktuelle Version 1.2 mit diversen Behebungen... wie immer komplett...

Grüße Reiner
Titel: Aw: Sonos steuern
Beitrag von: Christoph am 24 Januar 2013, 21:42:02
Hi Reiner,

Der Play3 wird jetzt auch erkannt, Dankeschön :-)

Nach bissl probieren, hab ich dann mal den Connect und Play3 angeschlossen.
Hatte dann nach dem save der fhem.cfg nen absturz mit folgendem Fehler:


(in cleanup) Can't call method "stopHandling" on an undefined value at ./FHEM/00_SONOS.pm line 593 during global destruction.




Gruß Christoph
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 24 Januar 2013, 22:13:35
Hi Christoph,

ok, jetzt kommen wir zu den Dingen, die bei mehreren Playern auftauchen.

Ich habe da mal eine Überprüfung eingebaut. Mal schauen, was sonst noch kommt.

Das ist erstmal eine Zwischenversion, deshalb jetzt nur einzeln...

Grüße Reinerlein
Titel: Aw: Sonos steuern
Beitrag von: snoop am 25 Januar 2013, 22:15:36
Hallo zusammen,

ich hätte eine kleine Anmerkung und eine Bitte.
Ja, ich weiß das Modul ist schon in der Entwicklung und ich habe auch interesse daran - "und" ist nach dem was ich gelesen habe schon sehr weit fortgeschritten.

Derezit betreibe ich PLAY:5 und PLAY:3 über eien Bridge - FHEM läuft auf einer FritzBox 7390.

Könnte bitte jemand verifizieren/sagen, ob die Sonos kompponente jemals auf einer FritzBox betrieben werden kann?
Alternativ müsste (zumindest) ich auf die Synology ausweichen (Wegen mehr Resourcen - hatte bisher nicht vor dies zu tun) - sofern das geht.

Ferner würde ich jemanden bitten (für weitere User) vielleicht am Anfang im WIKI die bisher unterstützen Sytsteme (Systeme auf den das derzeit lauffähig ist und die Entwicklung durchgeführt wird) aufzuführen - das wird jedem unheimlich weiterhelfen.
Vielen Vielen Dank und weiterhin viel Erfolg und Motivation bei der Weiterentwicklung.

Grüße
Arthur
Titel: Aw: Sonos steuern
Beitrag von: snoop am 25 Januar 2013, 23:39:47
Hallo zusammen,

bitte um Entschuldigung - ich habe es wohl übersehen:

WIKWI Auszug:
+++++++++++++++++++++++++++++++++++++++++++
 Hardwarevoraussetzungen

Diese Liste sollte im Laufe der Zeit fortgeführt werden. Es soll die Hardware-/Softwarevoraussetzungen festhalten, um Probleme im Vorfeld erkennen zu können.

Funktionierende Kombinationen:

    Windows, ActivePerl
    Raspberry Pi
+++++++++++++++++++++++++++++++++++++++++++

Viele Grüße
Arthur
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 26 Januar 2013, 00:03:17
Hallo zusammen,

soo, mal wieder auf diesem allgemeinen Kanal. Ich konnte das Problem mit dem stummen FHEM bei mir nachstellen und beheben. Nun sollte die Kuh für einen Player endlich vom Eis sein *auf Holz klopf*.
Das war wieder so ein versteckter Dead-Lock, den man umständlich suchen musste. Dank tatkräftiger und motivierter Unterstützung hier, gut geschafft...

Jetzt also mal wieder ein kompletter Upload. Nur damit neue sich das nicht zusammensuchen müssen...

@Arthur:
Leider haben wir noch keine Tests auf der Fritzbox. Ich habe hier auch keine in Betrieb... Im Wiki gibt es eine, mittlerweile mit den Erfahrungen der Installationen aufgefüllte, Beschreibung, was alles installiert werden muss. Vielleicht hilft dir das schon mal weiter?

Desweiteren stehen wir jetzt gerade an der Schwelle, mehrere Player zu testen. Ich persönlich habe nur einen hier stehen, und kann das dementsprechend nicht selber testen. Gehe aber davon aus, dass das nur eine Frage der Zeit ist.

Lass uns hier an deinen Erfahrungen bei der Installation auf der Fritzbox auf jeden Fall teilhaben. Ich werde das umgehend ins Wiki einpflegen, damit das auch andere wiederfinden...

Soweit erstmal, Danke für die weitere Unterstützung durch testen...

Grüße Reinerlein
Titel: Aw: Sonos steuern
Beitrag von: Will am 26 Januar 2013, 06:28:50
Hallo Linuxexperten,

versuche nun alles noch einmal aufzusetzen....beim installieren von FHEM (Debian) mit Package installer kommt nun:

Selecting previously unselected package fhem.
(Reading database ... 137726 files and directories currently installed.)
Unpacking fhem (from .../mint/Downloads/fhem-5.3.deb) ...
Setting up fhem (5.3) ...
initctl: Job is already running: fhem
dpkg: error processing fhem (--install):
 subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
 fhem


eine aehnlich Fehlermeldung bekomme ich beim installieren der Module LWP und SOAP, wollte deshalb komplett neu beginnen...muss ich da einen FHEM prozess killen oder so?

Danke.

W
Titel: Aw: Sonos steuern
Beitrag von: Will am 26 Januar 2013, 07:39:34
Also FHEM nach beenden aller Prozesse und loeschen aller User wieder installiert.

    LWP::Simple
    SOAP::Lite
installiert nach Wiki Debian (Danke Reinerlein)
Neueste files nach /opt/fhem/FHEM bzw. /opt/fhem/FHEM/lib kopiert
<update> in FHEM gemacht
Berechtigungen der Sonos files auf lesen und schreiben fuer alle gesetzt

Erfolg: die Befehle SONOS und SONOSPLAYER werden eingelesen und tauchen bei "Definition" auch auf.

define sonos SONOS eingegeben bzw. in fhem.cfg eingetragen

Ergebnis:
Fhem stuerzt ab, in der Konsole wird folgendes angezeigt:

mint fhem # Undefined subroutine &main::readingsSingleUpdate called at ./FHEM/00_SONOS.pm line 178.

Im Log-file steht nichts.

Kann jemand damit was anfangen?


   
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 26 Januar 2013, 10:05:46
Hi Will,

bist du sicher, dass das mit dem 'update' geklappt hat.
Ich bin mir da nicht so ganz sicher, meine aber, dass dieses readingsSingleUpdate erst mit einer Update-Version in Perl gelandet ist.

Wenn du Update gemacht hast, musst du auf jeden Fall ein Shutdown Restart durchführen, da die neuen Module sonst nicht geladen wurden.

Allgemein sieht das doch aber schon recht gut aus... Das kann jetzt nur noch eine Kleingkeit sein...

Grüße Reinerlein
Titel: Aw: Sonos steuern
Beitrag von: Will am 26 Januar 2013, 10:42:01
Also das update lief sauber durch. Ich habe mehrere Male shutdown restart gemacht.

Kan es sein dass ich ein Problem mit Perl habe?

Will
Titel: Aw: Sonos steuern
Beitrag von: Christoph am 26 Januar 2013, 11:05:17
Hab mal die neuste version installiert.

Sonos Room wurde angelegt mit dem Play3 aber der Connect fehlte... Dann gabs irgendwann nen absturz

Unbalanced string table refcount: (3257) for "??,?Rip" during global destruction.


Gruß Christoph
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 26 Januar 2013, 11:14:48
Hi Will,

hmm... eher nicht... diese Funktion ist eine Kernfunktion in der Datei "fhem.pl". Wenn die nicht aufrufbar für mein Modul ist, dann ist was grundlegenderes schief...

Ich habe auch gerade mal ein Update durchgeführt, um diesselbe, aktuellste FHEM-Version drauf zu haben. Bei mir läuft das Sonos-Modul immer noch.

kannst du uns hier mal den Befehl
find -lsim Verzeichnis FHEM (großgeschrieben) ausführen?

Dann können wir hier zumindest Probleme an der Ordnerstruktur und den Rechten prüfen und ausschließen...

Grüße Reinerlein
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 26 Januar 2013, 11:17:20
Hi Christoph,

hmm, diese Meldung hatte ich noch nie. Klingt aber irgendwie lustig :-)

Kannst du mal den FHEM-Log dazu posten. Vielleicht erkennt man ja, was er gerade tun wollte...

Danke schon mal

Reinerlein
Titel: Aw: Sonos steuern
Beitrag von: Christoph am 26 Januar 2013, 11:51:21
Hi Reiner,

ich hab das selbe jetzt nochmal wiederholt und jetzt wurde kein perl fehler ins log geschrieben... komisch

Anbei der fhem log

Gruß Christoph
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 26 Januar 2013, 12:00:35
Hi Christoph,

ok, das ist dasselbe Problem, was ich vorher auch schon für einen Player hatte. Das hatte ich befürchtet... da muss ich mir tatsächlich nochmal Gedanken bzgl. mehrerer Player machen...

Nur zur Sicherheit: Wenn du nur einen Player dranhast, geht es?

Das Problem ist, dass ich den Erkennungsthread unterbrechen muss, wenn ich einen Player erkannt habe, da ich die Informationen sonst nicht sauber in FHEM reintransportiert bekomme. Leider steht da bereits der zweite Player in der Pipeline, sodass sich mein Thread nicht so einfach verabschieden läßt (Stichwort: "Ich bin noch nicht tot!", für die Freunde von Monty Python :-). Da muss ich mir also noch was einfallen lassen...

Grüße Reinerlein

P.S.: Da war aber auch eine COC-Fehlermeldung in dem Log, vielleicht solltest du dir diese auch mal anschauen :-)
Titel: Aw: Sonos steuern
Beitrag von: det. am 26 Januar 2013, 12:04:48
Hallo Reiner,

Erfolgsmeldung - Dank Deiner unermüdlichen Entwicklungsarbeit geht jetzt sowohl ZP90 allein, als auch erstmals PLAY:3 allein!
Beweisfoto:

(siehe Anhang / see attachement)

Das Zusammenspiel von mehreren SONOS device bekommst Du auch noch hin, da bin ich sehr zuversichtlich, auch wenn ich Dir leider nur beim Testen helfen kann.
Titel: Aw: Sonos steuern
Beitrag von: Christoph am 26 Januar 2013, 12:30:38

Hi Reiner,

Mit nur einem Player funktioniert das ganze einwandfrei...
Würde es was bringen das ganze Konfiguration der 2 einzelnen Player in die fhem.cfg einzutragen?

Ja danke nach dem COC Fehler werd ich mal schauen wenn ich fhem wieder in meiner normalen Konfiguration benutze :-)

Gruß Christoph
Titel: Aw: Sonos steuern
Beitrag von: det. am 26 Januar 2013, 12:51:04
@ all

ja, das funktioniert. Nach Neustart laufen beide Player, die Lautstärke lässt sich individuell verändern, nur Coveranzeige etc. auf dem PLAY:3 wird nicht aktualisiert - es läuft auf beiden aktuell eigentlich das Gleiche - (Vollenweider)

(siehe Anhang / see attachement)

Titel: Aw: Sonos steuern
Beitrag von: Will am 26 Januar 2013, 13:01:30
Also das ist mein FHEM VErzeichnis:

mint@mint /opt/fhem/FHEM $ find -ls
 14506    4 drwxr-xr-x   4 fhem     root         4096 Jan 26 14:11 .
 94197    4 -rw-r--r--   1 fhem     root         3533 Jan 26 14:07 ./00_LIRC.pm
 14507    4 drwxr-xr-x   2 fhem     root         4096 Jan 26 13:49 ./FhemUtils
 94195    4 -rw-r--r--   1 fhem     root          511 Jan 26 14:09 ./FhemUtils/release.pm
 94198    8 -rw-r--r--   1 fhem     root         4198 Jan 26 14:08 ./88_WEBCOUNT.pm
 94199   24 -rw-r--r--   1 fhem     root        21150 Jan 26 14:09 ./98_SVG.pm
 94200  232 -rw-r--r--   1 fhem     root       229872 Jan 26 14:07 ./10_CUL_HM.pm
 94201   32 -rw-r--r--   1 fhem     root        31260 Jan 26 14:07 ./11_FHT.pm
 94202   16 -rw-r--r--   1 fhem     root        12845 Jan 26 14:08 ./88_VantagePro2.pm
 94203    8 -rw-r--r--   1 fhem     root         6862 Jan 26 14:08 ./91_notify.pm
 94204    8 -rw-r--r--   1 fhem     root         4971 Jan 26 14:07 ./14_CUL_TX.pm
 94205   40 -rw-r--r--   1 fhem     root        37057 Jan 26 14:08 ./57_Calendar.pm
 94206   20 -rw-r--r--   1 fhem     root        18547 Jan 26 14:08 ./50_WS300.pm
 94207    8 -rw-r--r--   1 fhem     root         4823 Jan 26 14:07 ./09_BS.pm
 94208    4 -rw-r--r--   1 fhem     root         3558 Jan 26 14:08 ./91_sequence.pm
 94209   40 -rw-r--r--   1 fhem     root        38563 Jan 26 14:06 ./00_CUL.pm
 94210    8 -rw-r--r--   1 fhem     root         4345 Jan 26 14:08 ./88_ALL4000T.pm
 94211    8 -rw-r--r--   1 fhem     root         6433 Jan 26 14:07 ./23_ALL4027.pm
 94212    8 -rw-r--r--   1 fhem     root         7046 Jan 26 14:08 ./76_MSGFile.pm
 94213   24 -rw-r--r--   1 fhem     root        22557 Jan 26 14:07 ./10_ZWave.pm
 94214   12 -rw-r--r--   1 fhem     root        10941 Jan 26 14:08 ./64_ESA2000.pm
 94215   20 -rw-r--r--   1 fhem     root        17470 Jan 26 14:06 ./00_HMLAN.pm
 94216   20 -rw-r--r--   1 fhem     root        20019 Jan 26 14:08 ./70_SISPM.pm
 94217   12 -rw-r--r--   1 fhem     root        11928 Jan 26 14:08 ./70_SML.pm
 94218   28 -rw-r--r--   1 fhem     root        25881 Jan 26 14:08 ./66_ECMD.pm
 94219   16 -rw-r--r--   1 fhem     root        13729 Jan 26 14:08 ./40_RFXCOM.pm
 94220   32 -rw-r--r--   1 fhem     root        32472 Jan 26 14:08 ./46_TRX_WEATHER.pm
 94221   36 -rw-r--r--   1 fhem     root        33139 Jan 26 14:07 ./21_OWMULTI.pm
 94223    8 -rw-r--r--   1 fhem     root         4826 Jan 26 14:07 ./02_HTTPSRV.pm
 94224   16 -rw-r--r--   1 fhem     root        16333 Jan 26 14:07 ./10_IT.pm
 94225   20 -rw-r--r--   1 fhem     root        17091 Jan 26 14:08 ./56_POKEYS.pm
 94226    8 -rw-r--r--   1 fhem     root         4157 Jan 26 14:09 ./99_Utils.pm
 94227   12 -rw-r--r--   1 fhem     root         9862 Jan 26 14:07 ./17_SIS_PMS.pm
 94228    8 -rw-r--r--   1 fhem     root         6225 Jan 26 14:08 ./91_watchdog.pm
 94229   20 -rw-r--r--   1 fhem     root        18615 Jan 26 14:07 ./02_RSS.pm
 94230    8 -rw-r--r--   1 fhem     root         7999 Jan 26 14:08 ./42_RFXMETER.pm
 94231   28 -rw-r--r--   1 fhem     root        28403 Jan 26 14:07 ./00_TUL.pm
 94232   36 -rw-r--r--   1 fhem     root        33871 Jan 26 14:07 ./21_OWTHERM.pm
 94233   40 -rw-r--r--   1 fhem     root        40316 Jan 26 14:07 ./21_OWSWITCH.pm
 94234   12 -rw-r--r--   1 fhem     root         8293 Jan 26 14:08 ./75_MSG.pm
 94235   56 -rw-r--r--   1 fhem     root        50314 Jan 26 14:07 ./21_OWAD.pm
 94236    4 -rw-r--r--   1 fhem     root         3937 Jan 26 14:08 ./88_Itach_Relay.pm
 94237   12 -rw-r--r--   1 fhem     root        11884 Jan 26 14:07 ./14_CUL_WS.pm
 94238    8 -rw-r--r--   1 fhem     root         4382 Jan 26 14:08 ./62_EMEM.pm
 94239   40 -rw-r--r--   1 fhem     root        40182 Jan 26 14:07 ./00_KM271.pm
 94240    8 -rw-r--r--   1 fhem     root         7617 Jan 26 14:08 ./70_SCIVT.pm
 94241   12 -rw-r--r--   1 fhem     root        12270 Jan 26 14:09 ./95_PachLog.pm
 94242    4 -rw-r--r--   1 fhem     root         3100 Jan 26 14:09 ./FritzBoxUtils.pm
 94243   44 -rw-r--r--   1 fhem     root        44506 Jan 26 14:09 ./95_FLOORPLAN.pm
 94244   12 -rw-r--r--   1 fhem     root        12195 Jan 26 14:08 ./70_STV.pm
 94245   28 -rw-r--r--   1 fhem     root        26362 Jan 26 14:06 ./00_FHZ.pm
 94246   12 -rw-r--r--   1 fhem     root        10538 Jan 26 14:08 ./24_NetIO230B.pm
 94247   12 -rw-r--r--   1 fhem     root         8730 Jan 26 14:08 ./76_MSGMail.pm
 94248    8 -rw-r--r--   1 fhem     root         4865 Jan 26 14:07 ./22_ALL3076.pm
 94249    8 -rw-r--r--   1 fhem     root         6781 Jan 26 14:07 ./09_USF1000.pm
 94250   28 -rw-r--r--   1 fhem     root        27283 Jan 26 14:07 ./10_EnOcean.pm
 94251    8 -rw-r--r--   1 fhem     root         4801 Jan 26 14:07 ./11_FHT8V.pm
 94252   12 -rw-r--r--   1 fhem     root         9968 Jan 26 14:08 ./80_xxLG7000.pm
 94253   16 -rw-r--r--   1 fhem     root        15717 Jan 26 14:07 ./10_EIB.pm
 94254   16 -rw-r--r--   1 fhem     root        12828 Jan 26 14:09 ./99_SUNRISE_EL.pm
 94255   12 -rw-r--r--   1 fhem     root        10835 Jan 26 14:08 ./60_EM.pm
 94256   12 -rw-r--r--   1 fhem     root        10132 Jan 26 14:09 ./93_FHEM2FHEM.pm
 94257   16 -rw-r--r--   1 fhem     root        14438 Jan 26 14:08 ./67_ECMDDevice.pm
 94258   12 -rw-r--r--   1 fhem     root        11598 Jan 26 14:08 ./70_TellStick.pm
 94259   12 -rw-r--r--   1 fhem     root         8533 Jan 26 14:08 ./81_M232Counter.pm
 94260    8 -rw-r--r--   1 fhem     root         5522 Jan 26 14:09 ./98_weblink.pm
 94261    8 -rw-r--r--   1 fhem     root         5069 Jan 26 14:07 ./23_WEBIO.pm
 94262   20 -rw-r--r--   1 fhem     root        19262 Jan 26 14:08 ./43_RFXX10REC.pm
 94263   12 -rw-r--r--   1 fhem     root         8442 Jan 26 14:07 ./12_HMS.pm
 94264   12 -rw-r--r--   1 fhem     root        10889 Jan 26 14:07 ./09_CUL_FHTTK.pm
 94265   32 -rw-r--r--   1 fhem     root        29224 Jan 26 14:08 ./46_TRX_LIGHT.pm
 94266    8 -rw-r--r--   1 fhem     root         7563 Jan 26 14:07 ./21_OWID.pm
 94267   20 -rw-r--r--   1 fhem     root        18369 Jan 26 14:08 ./46_TRX_SECURITY.pm
 94268   24 -rw-r--r--   1 fhem     root        20789 Jan 26 14:08 ./92_FileLog.pm
 94269    8 -rw-r--r--   1 fhem     root         6228 Jan 26 14:07 ./16_CUL_RFR.pm
 94271    8 -rw-r--r--   1 fhem     root         4525 Jan 26 14:09 ./98_WOL.pm
 94272   24 -rw-r--r--   1 fhem     root        21760 Jan 26 14:08 ./59_Weather.pm
 94273    8 -rw-r--r--   1 fhem     root         6281 Jan 26 14:08 ./61_EMWZ.pm
 94274   12 -rw-r--r--   1 fhem     root        11703 Jan 26 14:09 ./98_telnet.pm
 94275   20 -rw-r--r--   1 fhem     root        19677 Jan 26 14:07 ./20_X10.pm
 94276    8 -rw-r--r--   1 fhem     root         4667 Jan 26 14:08 ./46_TRX_ELSE.pm
 94277   32 -rw-r--r--   1 fhem     root        32367 Jan 26 14:08 ./41_OREGON.pm
 94278   24 -rw-r--r--   1 fhem     root        22320 Jan 26 14:07 ./10_FS20.pm
 94279   20 -rw-r--r--   1 fhem     root        18066 Jan 26 14:08 ./70_USBWX.pm
 94280    8 -rw-r--r--   1 fhem     root         5626 Jan 26 14:08 ./23_WEBIO_12DIGITAL.pm
 94281    8 -rw-r--r--   1 fhem     root         5836 Jan 26 14:08 ./88_IPWE.pm
 94282    4 -rw-r--r--   1 fhem     root         2014 Jan 26 14:09 ./98_dummy.pm
 94283    4 -rw-r--r--   1 fhem     root         2371 Jan 26 14:07 ./18_CUL_HOERMANN.pm
 94284    4 -rw-r--r--   1 fhem     root         3692 Jan 26 14:09 ./HttpUtils.pm
 94285   12 -rw-r--r--   1 fhem     root        10539 Jan 26 14:08 ./90_at.pm
 94286   24 -rw-r--r--   1 fhem     root        21946 Jan 26 14:06 ./00_CM11.pm
 94288    4 -rw-r--r--   1 fhem     root         3271 Jan 26 14:08 ./23_WEBTHERM.pm
 94289   20 -rw-r--r--   1 fhem     root        16513 Jan 26 14:07 ./21_OWTEMP.pm
 94290   80 -rw-r--r--   1 fhem     root        76161 Jan 26 14:07 ./00_OWX.pm
 94291   12 -rw-r--r--   1 fhem     root         9940 Jan 26 14:07 ./15_CUL_EM.pm
 94292   24 -rw-r--r--   1 fhem     root        22018 Jan 26 14:09 ./98_dewpoint.pm
 94293    8 -rw-r--r--   1 fhem     root         7731 Jan 26 14:09 ./98_PID.pm
 94294    8 -rw-r--r--   1 fhem     root         6981 Jan 26 14:09 ./DevIo.pm
 94295   16 -rw-r--r--   1 fhem     root        12645 Jan 26 14:07 ./13_KS300.pm
 94296   12 -rw-r--r--   1 fhem     root        10887 Jan 26 14:09 ./95_holiday.pm
 94297   16 -rw-r--r--   1 fhem     root        15551 Jan 26 14:07 ./10_CUL_IR.pm
 94298   16 -rw-r--r--   1 fhem     root        13652 Jan 26 14:08 ./59_Twilight.pm
 94299    4 -rw-r--r--   1 fhem     root         3586 Jan 26 14:09 ./TcpServerUtils.pm
 94300   24 -rw-r--r--   1 fhem     root        20718 Jan 26 14:07 ./00_TCM.pm
 94301    8 -rw-r--r--   1 fhem     root         8068 Jan 26 14:08 ./82_LGTV.pm
 94302   44 -rw-r--r--   1 fhem     root        41613 Jan 26 14:07 ./21_OWCOUNT.pm
 94303   20 -rw-r--r--   1 fhem     root        16610 Jan 26 14:08 ./49_IPCAM.pm
 94304   20 -rw-r--r--   1 fhem     root        17571 Jan 26 14:08 ./87_WS2000.pm
 94305   12 -rw-r--r--   1 fhem     root        10373 Jan 26 14:07 ./20_OWFS.pm
 94306    8 -rw-r--r--   1 fhem     root         7263 Jan 26 14:09 ./98_average.pm
 94307   36 -rw-r--r--   1 fhem     root        35430 Jan 26 14:07 ./21_OWLCD.pm
 94309   24 -rw-r--r--   1 fhem     root        21027 Jan 26 14:09 ./98_structure.pm
 94310    8 -rw-r--r--   1 fhem     root         5173 Jan 26 14:08 ./63_EMGZ.pm
 94311    4 -rw-r--r--   1 fhem     root         2795 Dec 11 02:12 ./99_XmlList.pm
 94312   16 -rw-r--r--   1 fhem     root        14269 Jan 26 14:08 ./45_TRX.pm
 94313    4 -rw-r--r--   1 fhem     root         3739 Jan 26 14:08 ./82_M232Voltage.pm
 94314   20 -rw-r--r--   1 fhem     root        18684 Jan 26 14:07 ./00_ZWDongle.pm
 94315   92 -rw-r--r--   1 fhem     root        89663 Jan 26 14:07 ./01_FHEMWEB.pm
 94316   20 -rw-r--r--   1 fhem     root        18406 Jan 26 14:08 ./70_WS3600.pm
 94317   20 -rw-r--r--   1 fhem     root        19547 Jan 26 14:09 ./98_autocreate.pm
 94189   76 -rw-rw-rw-   1 root     root        72690 Jan 26 13:53 ./00_SONOS.pm
 94512   24 -rw-rw-rw-   1 root     root        24248 Jan 26 13:53 ./21_SONOSPLAYER.pm
 94521   28 -rw-r--r--   1 fhem     dialout     27940 Jan 26 14:07 ./00_MAXLAN.pm
 46153    4 drwxr-xr-x   3 root     root         4096 Jan 26 13:54 ./lib
 46715    4 drwxr-xr-x   2 root     root         4096 Jan 26 13:54 ./lib/UPnP
 94517   20 -rw-rw-rw-   1 root     root        18062 Jan 25  2008 ./lib/UPnP/Common.pm
 94518   44 -rw-rw-rw-   1 root     root        41376 Jan 25  2008 ./lib/UPnP/ControlPoint.pm
 94522   40 -rw-r--r--   1 fhem     dialout     38011 Jan 26 14:07 ./10_MAX.pm
 94523   20 -rw-r--r--   1 fhem     dialout     17848 Jan 26 14:07 ./10_OWServer.pm
 94524   32 -rw-r--r--   1 fhem     dialout     31825 Jan 26 14:07 ./11_OWDevice.pm
 94525   16 -rw-r--r--   1 fhem     dialout     14136 Jan 26 14:07 ./14_CUL_MAX.pm
 94526   16 -rw-r--r--   1 fhem     dialout     13802 Jan 26 14:07 ./23_LUXTRONIK2.pm
 94527   36 -rw-r--r--   1 fhem     dialout     33176 Jan 26 14:08 ./59_HCS.pm
 94528   36 -rw-r--r--   1 fhem     dialout     35320 Jan 26 14:08 ./71_YAMAHA_AVR.pm
 94529   28 -rw-r--r--   1 fhem     dialout     27653 Jan 26 14:08 ./72_FB_CALLMONITOR.pm
 94530   36 -rw-r--r--   1 fhem     dialout     35898 Jan 26 14:08 ./93_DbLog.pm
 94531    4 -rw-r--r--   1 fhem     dialout      3646 Jan 26 14:09 ./98_CULflash.pm
 94532   16 -rw-r--r--   1 fhem     dialout     16111 Jan 26 14:09 ./98_JsonList.pm
 94533    4 -rw-r--r--   1 fhem     dialout      3703 Jan 26 14:09 ./98_XmlList.pm
 94534    8 -rw-r--r--   1 fhem     dialout      5652 Jan 26 14:09 ./98_backup.pm
 94535   20 -rw-r--r--   1 fhem     dialout     18772 Jan 26 14:09 ./98_fheminfo.pm
 94536   28 -rw-r--r--   1 fhem     dialout     28572 Jan 26 14:09 ./98_update.pm
 94537    4 -rw-r--r--   1 fhem     dialout      1543 Jan 26 14:09 ./Blocking.pm
 94538   36 -rw-r--r--   1 fhem     dialout     33755 Jan 26 14:09 ./CUL_V2.hex
 94539   32 -rw-r--r--   1 fhem     dialout     30953 Jan 26 14:09 ./CUL_V2_HM.hex
 94540   32 -rw-r--r--   1 fhem     dialout     32025 Jan 26 14:09 ./CUL_V2_MAX.hex
 94541   56 -rw-r--r--   1 fhem     dialout     50397 Jan 26 14:09 ./CUL_V3.hex
 94542   56 -rw-r--r--   1 fhem     dialout     50213 Jan 26 14:09 ./CUL_V4.hex
 94557   20 -rw-r--r--   1 fhem     dialout     16769 Jan 26 14:11 ./controls_fhem.txt
 94196   12 -rw-r--r--   1 fhem     root         9678 Jan 26 14:08 ./80_M232.pm


Was noch anzumerken ist den lib folder habe ich mit der hand angelegt (den gibts schon auf meiner Fritzbox) - kein anderes Modul benutzt das.

W
Titel: Aw: Sonos steuern
Beitrag von: Will am 26 Januar 2013, 13:07:50
Hi Reinerlein,

also auch von mir eine Erfolgsmeldung:


Nach komplettem reboot - laeuft das Ding. Klasse! Da hat sich die Muehe gelohnt.

W
Titel: Aw: Sonos steuern
Beitrag von: Christoph am 26 Januar 2013, 13:28:16
So bei mir funktionieren jetzt auch beide nach dem manuellen Eintrag in die fhem :-)

Coveranzeige funktioniert bei mir auch noch nicht richtig aber das ist ja nicht so wichtig...
Titel: Aw: Sonos steuern
Beitrag von: det. am 26 Januar 2013, 14:16:33
@ all,

ein Device wieder vom Netz nehmen führt aktuell leider noch zum Absturz von fhemweb und RPI
Titel: Aw: Sonos steuern
Beitrag von: Christoph am 26 Januar 2013, 15:20:00
Das hab ich auch mit nur einem Player, sobald der Sonos Player wieder aus der fhem.cfg gelöscht wird gibts nen Absturz.
Oder wie ist hier die richtige Vorgehensweise ?

Oder hast du bei deinem Player einfach nur den Strom abgestellt ?
Titel: Aw: Sonos steuern
Beitrag von: det. am 26 Januar 2013, 15:57:52
@ Christoph,

Ich habe einfach den 220V  Stecker vom PLAY:3 gezogen. Jetzt nach Neustart FHEM sind beide Player ohne Strom ( was ja der Normalzustand ist, wenn man nicht Dauerbeschallung braucht) die Payer werden in fhemweb angezeigt und deren state ist initialized. Also genau wie es sein soll.
Wenn ich einen wieder einschalte und play Sonos_Wohnzimmer Radio%20%Paradise in der Kommandozeile eingebe, stürzt fhemweb allerdings leider ab.
Titel: Aw: Sonos steuern
Beitrag von: Will am 27 Januar 2013, 14:04:13
Hallo sonos genossen,

Habe den Sonntag für ein bisschen spielen genutzt.
Eine fs20 touchschalter tc8 ist jetzt nur für mein sonos zuständig:
Play, Pause
2 direkt anwaehlbare planlosen (kindermusik und abendberieselung)
Vor und zurück
Lauter leiser

Funktioniert prima, sehr unauffällig, hoher waf, da sehr einfach zu bedienen (deckt 70% der Situationen ab). Für alles andere kann ich immer noch mit handy oder iPad arbeiten.

Zudem die lautstaerkeanpassung bei Anruf auf der fritzbox (noch nicht getestet) implementiert.


ein paar fragen bleiben noch:
Was ist der Unterschied zwischen Pause und Stopp? In der sonos App. Gibt es zum Beispiel kein Stopp.....
Wie füge ich ein einzelnes file in die Queue, spiele es ab und lösche es dann wieder (Durchsage)?

Alles in allem super - muss jetzt zwar einen extra dafür aufgesetzten linuxrechner rennen lassen (verbindet sich mit fhem2fhem auf meine fritzboxinstallation) ist jetzt ein Grund mir einen raspberry Pi zuzulegen, der fhem Komplett standhalten macht.

Schoenes restwochenende!!

Will
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 27 Januar 2013, 15:00:19
Hallo zusammen,

leider bin ich dieses Wochenende wegen privater Verpflichtungen nicht zum weiterbasteln gekommen.
Aber ich wollte mich trotzdem noch kurz zu Wort melden.

Schön, das es bei manchen schon prinzipiell läuft. Ein paar Fragen kann ich hier aber schon beantworten:
- Unterschied Stop / Pause: Stop gibt es auf dem Original-Controller nur bei Streams (z.B. Radio). Bei Stop wird alles zurückgesetzt. Bei einer normalen Abspielliste wird der erste Titel aktiv gesetzt. Bei Pause bleibt die aktuelle Position erhalten, und wird bei Play fortgesetzt.

- Das mit den einzelnen Stücken ist noch nicht implementiert. Wird aber kommen, wenn mehrere Player funktionieren, und hier Stabilität eingekehrt ist.

- Zu den mehreren Playern: Ich muss mir Gedanken über die Nebenläufigkeiten machen. Das Problem ist, dass der zweite Player beim Discovern (und nur dort tritt das Problem auf, wie hier ja schon festgestellt wurde) bereits in der Pipeline liegt, und sich der Thread deswegen nicht so einfach beseitigen läßt...

- Wenn ein Player verschwindet und wieder auftaucht, kann es immer noch zu einzelnen Problemen kommen. Leider ist FHEM nicht Objektorientiert aufgebaut, sodass ich die Referenzen auf die Steuerungs-Proxy Zentral halten muss, und dort auch auflösen muss. Desweiteren gibt es kein vernünftiges Exception-Handling, weswegen solche fehlerhafte Anfragen nicht sauber abgefangen werden können. Diese müssen sozusagen verhindert werden, was nicht immer so einfach ist...

- Was noch mal gut zu testen wäre, wäre wie sich zwei (bereits konfigurierte) Player in FHEM verhalten, wenn mal keine Sonderbedingungen wie Ausfall o.ä. auftreten. Werden z.B. die Cover und Titelinformationen sauber zugeordnet (dabei ist zu beachten, dass für das aktuelle Cover vom Browser aus min. ein Reload notwendig ist, sonst wird nur das alte Cover angezeigt)? Klappen die Aktualisierungen sauber? Gibt es dort große Verzögerungen? Das kann man per "longpoll" auch per Ajax aktualisiert bekommen.

Ansonsten wird es im Laufe der Woche wohl weiteres geben..

Bis dahin, Grüße
Reinerlein
Titel: Aw: Sonos steuern
Beitrag von: det. am 27 Januar 2013, 16:57:45
Hallo Reiner,

es funktioniert schon sehr gut, wenn man es nicht quält!

- 2 Player spielen einzeln und gemeinsam
- Lautstärke lässt sich einstellen etc.
- Cover etc. stimmt nur auf dem zuerst gestarteten Player (die Cover Anzeige finde ich in FHEM eh eher störend, also kein Problem)

Melde Dich, wenn es weiter was zum Testen gibt, aber mach Dir keinen Stress. SONOS ging bisher auch ohne FHEM, schön wenn es irgendwann geht, aber nicht so wichtig wie die Heizung im Winter.
Titel: Aw: Sonos steuern
Beitrag von: Christoph am 27 Januar 2013, 21:15:34
Kann auch noch eine kurze Rückmeldung geben:

Habe meinen Play3 über die Bridge angebunden, funktioniert ohne Probleme :-)


Gruß Christoph
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 28 Januar 2013, 21:14:40
Hallo zusammen,

ich habe mal einige Kleinigkeiten geändert. Vielleicht haben wir damit bereits die Discovery-Problematik erledigt...

Bitte nochmal testen. Danke schon mal..

Grüße Reinerlein
Titel: Aw: Sonos steuern
Beitrag von: Christoph am 29 Januar 2013, 10:17:11
Hi Reiner,

habs mal kurz ausprobiert und alles alte gelöscht und wieder per define sonos ... eingebunden.
Nach dem save der fhem.cfg gibts nen Absturz.
Perl-log ist leer, Fhem Log hab ich angehängt.


Gruß Christoph
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 29 Januar 2013, 12:23:43
Hi Christoph,

danke schon mal.. hmm.. im Prinzip sieht das alles schon gar nicht schlecht aus. Ich sehe noch nicht, warum er an dieser Stelle dann hängenbleibt.

Ich habe an dieser Stelle nochmal kurz was angepasst. Wenn du das nochmal in den Test werfen könntest? Danke schon mal...

Grüße Reiner
Titel: Aw: Sonos steuern
Beitrag von: det. am 29 Januar 2013, 21:34:30
Hallo Reiner,

Hatte keinen Absturz mehr, ging alles wie gewünscht! Nach Ausschalten SONOS an der Funksteckdose blieb der Radiosender im Webinterface auf PLAY,
wenn man dann z.B. sTOP drückt kommt:
Exception ERROR: 500 Can't connect to 192.168.2.33:1400 (No route to host) at /usr/share/fhem/FHEM/lib/UPnP/ControlPoint.pm line 785 thread 1
aber FHEM läuft weiter. Denke mal, dass ist ein echter Fortschritt.
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 29 Januar 2013, 22:07:10
Hi Detlev,

das klingt doch schon mal gut. Diese Ausgabe stammt auch von mir, das bedeutet, mein Exception Handling klappt wohl in diesem Bereich...
Jetzt räume ich da noch ein bißchen die Referenzen auf, dann sollte das an der Stelle OK sein.

Warum das Problem an sich noch auftritt, schaue ich mir aber auch nochmal an...

Bin auch parallel dazu dabei ein paar neue Features einzubauen. Bin gerade an der Zwischendurchsage :-)

Grüße Reiner
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 30 Januar 2013, 22:47:22
Hallo zusammen,

ich habe mal ein wenig gebastelt, und die fehlenden Abspielmöglichkeiten hinzugefügt.

Man kann jetzt also Durchsagen über den Player machen, und danach wird wieder der vorhergehende Abspielzustand wieder hergestellt.
Dazu habe ich das Wiki auch angepasst: http://www.fhemwiki.de/wiki/Sonos_Anwendungsbeispiel#Set-Befehle_an_den_SONOSPLAYER (http://www.fhemwiki.de/wiki/Sonos_Anwendungsbeispiel#Set-Befehle_an_den_SONOSPLAYER).

Bitte testen, und auch nochmal ein kurzes Feedback zu der Funktionalität bei mehreren Playern geben.
Wie immer komplett, obwohl sich immer nur die beiden Perl-Dateien von mir ändern...

Danke schon mal.

Grüße Reinerlein
Titel: Aw: Sonos steuern
Beitrag von: Will am 31 Januar 2013, 01:25:42
Cool, hier lohnt sich jeden Tag das rein schauen!!!

Werde das heute abend testen und berichten :-)

W
Titel: Aw: Sonos steuern
Beitrag von: det. am 31 Januar 2013, 20:54:19
Hallo Reiner,

Danke, perfekt!
Titel: Aw: Sonos steuern
Beitrag von: Christoph am 02 Februar 2013, 11:37:14
Hallo Reiner,

wollte fhem jetzt mal wieder mit mehr als nur dem Sonos Modul beschäftigen *g*
Sobald ich irgendwas in die fhem.cfg hinzufüge gabs beim speichern einen Crash...

Hab dann sie Sonos Sachen auf der fhem.cfg gelöscht, und danach gab es wenn etwas hinzugefügt habe keinen Crash mehr.

Habe jetzt nur den Play3 angeschlossen und wieder in die fhem.cfg eingebunden -> fhem stürzt ab

Gruß Christoph
Titel: Aw: Sonos steuern
Beitrag von: Will am 02 Februar 2013, 13:33:12
Hallo Leute,

ich musste mein Linux System komplett neu aufsetzen, da mein USB Stick das zeitliche gesegnet hat....jetzt sauber aufgesetzt.

Habe alle Schritte befolgt - FHEM laeuft. Sobald define sonos SONOS gemacht wird bringt er
/opt/fhem $ Undefined subroutine &main::readingsSingleUpdate called at ./FHEM/00_SONOS.pm line 185.


Was kann das sein?

Danke.

W
Titel: Aw: Sonos steuern
Beitrag von: Zorin am 02 Februar 2013, 14:15:09
Hallo allerseits,

habe (wie Christoph) die Dateien genommen und nach dem "define Sonos SONOS"
leider keine Reaktion mehr von FHEM (Absturz).

Log:
2013.02.02 14:03:33 3: SONOS0: UPnP-Thread is now dead or has not exists!
2013.02.02 14:03:33 3: SONOS0: New UPnP-Thread started. Thread-ID: 1
2013.02.02 14:03:33 3: SONOS1: I am the new UPnP-Thread. Nice to meet you...
2013.02.02 14:03:36 2: SONOS1: Discover SonosPlayer 'Küche' (S3) Software Revision 3.8.4 with ID 'RINCON_000E5870572801400_MR'
2013.02.02 14:03:37 3: SONOS1: ReRead-Command: fhem('set ANDRODisplay rereadicons');
2013.02.02 14:03:37 3: SONOS1: ReRead-Command: fhem('set WEB rereadicons');
2013.02.02 14:03:37 3: SONOS1: ReRead-Command: fhem('set WEBphone rereadicons');
2013.02.02 14:03:37 3: SONOS1: ReRead-Command: fhem('set WEBtablet rereadicons');
2013.02.02 14:03:37 1: SONOS1: Successfully autocreated SonosPlayer 'K_che' (S3) Software Revision 3.8.4 with ID 'RINCON_000E5870572801400_MR'
2013.02.02 14:03:37 1: SONOS1: Killing and Restarting Discovery Thread due to SONOS device creation!
2013.02.02 14:03:38 3: SONOS0: UPnP-Thread exists... Trying to kill Thread 1...
2013.02.02 14:03:38 3: SONOS1: Trying to Stop Handling...
2013.02.02 14:03:38 3: SONOS1: Trying to Stop Searching...
2013.02.02 14:03:38 3: SONOS1: Trying to Undef Reference...
2013.02.02 14:03:38 3: SONOS1: All is done successfully in StopControlPoint!
2013.02.02 14:03:38 3: SONOS1: Thread has stopped all ControlPoint-Actions.


Evtl. ein Umlautproblem (Küche/K_che) ?
Oder etwas ähnliches wie bei Christoph ?

Danke schonmal für die Hilfe, und toll das es solche ein Modul gibt...

Grüße,

Zorin
Titel: Aw: Sonos steuern
Beitrag von: det. am 02 Februar 2013, 14:21:58
Hallo Christoph, hallo Will,

kann ich bei mir nicht bestätigen - habe FHEM auf RPI mit COC, COC im MAX Mode (so empfängt es keine FS20 etc. Sachen, die in Massen an der FB hängen und rumfunken), OWServer mit 4 Thermometern und 1 Switch am 1wire vom COC angebunden und die RpiValues. Läuft alles prima zusammen und stürzt auch nicht bei Veränderungen an der Config oder nach Ausschalten des SONOS ZP90 und Aufruf desselben danach über das webinterface ab.
Habt Ihr die letzte Version von SONOS installiert(sicherlich, aber der Fehler sitzt oft vor der Tastatur und schaut auf den Bildschirm...)? Sonst fehlt mglw. noch einer der vielen nachzuinstallierenden Perl Bibliotheken. Reiner konnte am Anfang auch nicht wirklich sagen, was alles dazu genau gebraucht wird. Im Laufe der Nachinstallation kam da so manches drauf, was alles , wozu und warum - keine Ahnung. Da kann im WIKI evtl. auch noch was fehlen - einfach die Schritte dort noch mal abarbeiten? Bei meiner Installation gab es da mehrfach Fehler, irgendwann war dann alles Erforderliche richtig drauf und lief.
Titel: Aw: Sonos steuern
Beitrag von: Will am 02 Februar 2013, 14:27:27
In meinem Fall sitzt definitiv der Fehler vor der Tastatur......

Gibt ne Möglichkeit einfach ALLES perl installieren kann?

W
Titel: Aw: Sonos steuern
Beitrag von: det. am 02 Februar 2013, 14:48:42
Hallo Will,

"Alles" Perl installieren ist mMn wie ein Cabrio im Sommer mit Schneeketten. Was mir aber einfällt, was ich definitiv nachinstalliert habe, sind Perl Module um fheminfo ausführen zu können. Probier mal, ob fheminfo bei Dir geht - wenn nicht - Forumsuche nach LWP::UserAgent - HTTP::Request - irgendwo steht, wie was dazu installiert sein muß.
Titel: Aw: Sonos steuern
Beitrag von: Will am 02 Februar 2013, 16:17:55
Hi

Beide installiert - jetzt funktioniert fhem inkl. Sonos.  Scheinen also Bedingung zu sein.

Danke für die schnelle Hilfe.

W
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 02 Februar 2013, 18:41:05
Hi zusammen,

ich habe mal im Paket von libwww-perl nachgeschaut. Eigentlich sollten dort bereits die beiden Pakete 'LWP::UserAgent' und 'HTTP::Request' enthalten sein.
Hast du denn nicht die Debian-Installationsvariante gewählt?

Übrigens enthält das Wiki bereits die Dokumentation zu dem nächsten Feature, welches sich bei mir gerade im Praxistest befindet:
- Text-To-Speech: Man gibt eine Textzeile an das Modul per Set-Befehl, es wird über die Google-Engine in ein MP3 umgewandelt und anschließend temporär abgespielt
-Korrekturen an dem temporären Abspielmechanismus: Es kann nun nicht mehr parallel ein zweiter Abspielversuch gestartet werden.

Wenn der Praxistest bei mir durch ist (Die Kinder haben sehr viel Spaß mit der Sprachausgabe :-), kommt das Modul hier wieder hin. Leider werden dafür wieder ein paar Libraries und Nebenprogramme benötigt. Das braucht man aber natürlich nur, wenn man das Feature auch nutzen möchte..

Grüße Reinerlein
Titel: Aw: Sonos steuern
Beitrag von: Will am 03 Februar 2013, 02:15:25
Hi sonoskollegen,

Zur info: fheminfo funktioniert bei meinem Linux fhem (http::request) bei meiner fritzbox geht das nicht....ob man das da drauf bekommt weiss ich nicht, wenn das jemand hin bekommt wäre ich neugierig, aber jetzt auch ein Grund dafür von der fritznbox wegzugehen.

Habe mir das wiki mit speak durch gelesen - bin gerne bereit hier mit zu testen (spielen) klingt super. Bis die module hier sind probierte ich die zwischen durchsagen via mp3.

W
Titel: Aw: Sonos steuern
Beitrag von: Will am 03 Februar 2013, 03:28:27
Hallo Reinerlein,

also das abspielen von MP3s funktioniert bei mir ueber den befel
set sonos_Living_Room PlayURITemp \\192.168.1.10\public\zzfunc\bing.mp3 30

MP3 file liegt auf einem oeffentlichen Bereich meines NAS

Wenn ich den Befehl absetze, kommt der Sound, Sonos spielt weiter wie gewuenscht, leider stuerzt danach FHEM ab....folgendes laeuft dabei im Terminal:


2013.02.03 10:19:03 3: SONOS1: Event: received service urn:upnp-org:serviceId:AVTransport
2013.02.03 10:19:03 3: SONOS1: Event: All correct with this service-call till now. UDN='uuid:RINCON_000E582DCFC001400_MR'
2013.02.03 10:19:03 3: SONOS1: Event: Normal erkannt!
2013.02.03 10:19:03 3: SONOS1: Event: End of service-event urn:upnp-org:serviceId:AVTransport
2013.02.03 10:20:14 3: SONOS1: ProxyObject exists: UPnP::ControlPoint::ControlProxy=HASH(0xb6693b48)
2013.02.03 10:20:15 3: SONOS1: ProxyObject exists: UPnP::ControlPoint::ControlProxy=HASH(0xb66859a0)
2013.02.03 10:20:15 3: SONOS1: Event: received service urn:upnp-org:serviceId:AVTransport
2013.02.03 10:20:15 3: SONOS1: Event: All correct with this service-call till now. UDN='uuid:RINCON_000E582DCFC001400_MR'
2013.02.03 10:20:15 3: SONOS1: Event: Normal erkannt!
2013.02.03 10:20:15 3: SONOS1: Event: End of service-event urn:upnp-org:serviceId:AVTransport
2013.02.03 10:20:15 3: SONOS1: Event: received service urn:upnp-org:serviceId:AVTransport
2013.02.03 10:20:15 3: SONOS1: Event: All correct with this service-call till now. UDN='uuid:RINCON_000E582DCFC001400_MR'
2013.02.03 10:20:15 3: SONOS1: Event: Normal erkannt!
2013.02.03 10:20:15 3: SONOS1: Event: End of service-event urn:upnp-org:serviceId:AVTransport
2013.02.03 10:20:25 3: SONOS1: Event: received service urn:upnp-org:serviceId:AVTransport
2013.02.03 10:20:25 3: SONOS1: Event: All correct with this service-call till now. UDN='uuid:RINCON_000E582DCFC001400_MR'
2013.02.03 10:20:25 3: SONOS1: Event: Normal erkannt!
2013.02.03 10:20:25 3: SONOS1: Event: End of service-event urn:upnp-org:serviceId:AVTransport
2013.02.03 10:20:26 3: SONOS1: Event: received service urn:upnp-org:serviceId:AVTransport
2013.02.03 10:20:26 3: SONOS1: Event: All correct with this service-call till now. UDN='uuid:RINCON_000E582DCFC001400_MR'
2013.02.03 10:20:26 3: SONOS1: ReRead-Command: fhem('set WEB rereadicons');
2013.02.03 10:20:26 3: SONOS1: ReRead-Command: fhem('set WEBphone rereadicons');
2013.02.03 10:20:26 3: SONOS1: ReRead-Command: fhem('set WEBtablet rereadicons');
2013.02.03 10:20:26 3: SONOS1: Event: Normal erkannt!
2013.02.03 10:20:26 3: SONOS1: Event: End of service-event urn:upnp-org:serviceId:AVTransport
2013.02.03 10:20:26 3: SONOS1: Event: received service urn:upnp-org:serviceId:AVTransport
2013.02.03 10:20:26 3: SONOS1: Event: All correct with this service-call till now. UDN='uuid:RINCON_000E582DCFC001400_MR'
2013.02.03 10:20:26 3: SONOS1: ReRead-Command: fhem('set WEB rereadicons');
2013.02.03 10:20:26 3: SONOS1: ReRead-Command: fhem('set WEBphone rereadicons');
2013.02.03 10:20:26 3: SONOS1: ReRead-Command: fhem('set WEBtablet rereadicons');
2013.02.03 10:20:26 3: SONOS1: Event: Normal erkannt!
2013.02.03 10:20:26 3: SONOS1: Event: End of service-event urn:upnp-org:serviceId:AVTransport



Hast Du ne Idee?

W
Titel: Aw: Sonos steuern
Beitrag von: Will am 03 Februar 2013, 07:41:56
Ich kann nochc berichten, dass PlayURI ohne Probleme geht, kein Absturz.

W
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 03 Februar 2013, 09:01:53
Hi Will,

das klingt nach dem Problem, welches ich noch nebenbei behoben habe. Ich werde heute (spätestens Morgen) noch die neue Version hier veröffentlichen.

Ich hatte das Problem, das unter Windows (mein Entwicklungssystem) alles geklappt hat, nur auf meinem Raspberry Pi gab es ab und an Probleme...

Grüße Reinerlein
Titel: Aw: Sonos steuern
Beitrag von: Christoph am 04 Februar 2013, 15:55:13
Zitat von: det. schrieb am Sa, 02 Februar 2013 14:21
Hallo Christoph, hallo Will,

kann ich bei mir nicht bestätigen - habe FHEM auf RPI mit COC, COC im MAX Mode (so empfängt es keine FS20 etc. Sachen, die in Massen an der FB hängen und rumfunken), OWServer mit 4 Thermometern und 1 Switch am 1wire vom COC angebunden und die RpiValues. Läuft alles prima zusammen und stürzt auch nicht bei Veränderungen an der Config oder nach Ausschalten des SONOS ZP90 und Aufruf desselben danach über das webinterface ab.
Habt Ihr die letzte Version von SONOS installiert(sicherlich, aber der Fehler sitzt oft vor der Tastatur und schaut auf den Bildschirm...)? Sonst fehlt mglw. noch einer der vielen nachzuinstallierenden Perl Bibliotheken. Reiner konnte am Anfang auch nicht wirklich sagen, was alles dazu genau gebraucht wird. Im Laufe der Nachinstallation kam da so manches drauf, was alles , wozu und warum - keine Ahnung. Da kann im WIKI evtl. auch noch was fehlen - einfach die Schritte dort noch mal abarbeiten? Bei meiner Installation gab es da mehrfach Fehler, irgendwann war dann alles Erforderliche richtig drauf und lief.


Bei mir hatte das ganze ja schonmal funktioniert. Hab eigentlich nichts grundlegendes verändert.
Zurzeit läuft auch nichts anderes als Sonos drauf...
Werden mit der jetztigen Version eigentlich 2 Player erkannt oder sollte das noch händisch gemacht werden ?

Muss glaub nochmal in Ruhe alles neumachen oder mir nen zweiten Raspberry zum spielen zulegen ;-)


Gruß Christoph
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 04 Februar 2013, 21:17:33
Hi zusammen,

hier jetzt mal die neue Version. Wie bereits geschrieben, steht im Wiki mehr zu den Installationsvoraussetzungen für die neue Speak-Funktion.

Ob nun mehrere Player funktionieren, würde ich auch gerne noch mal bestätigt oder verneint bekommen. Da bin ich gerade nicht ganz auf dem Stand der Tatsachen...

Leider ist die Thread-Umsetzung auf Linux nicht korrekt, sodass ich da etwas tricksen musste. Unter Windows läuft das alles prima... Naja, warum sollte es nicht mal andersrum sein :-)

@Christoph:
Du kannst auch ein zweites Fhem auf demselben Pi laufen lassen. Du musst nur dafür sorgen, dass die Ports (TelnetPort, WebPort, usw.) alle anders sind...

Viel Spaß beim Testen...

Grüße Reinerlein
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 05 Februar 2013, 01:00:23
Hi Christoph,

nochmal auf deine Nachricht bzgl. des Umlauts bei 'Küche':
das war Absicht, damit eben keine FHEM-ungültigen Devicenamen erzeugt werden.

Ich habe das aber mal soweit korrigiert, das ab Version 1.7 (die nächste), diese Zeichen dann in die entsprechend passenden umgewandelt werden. Also 'ü' wird zu 'ue' und so weiter. Das betrifft aber ja sowieso nur den automatischen Erkennungsprozess. Wenn es angelegt ist, kannst du das ganze ja nennen, wie du willst.

Grüße Reinerlein
Titel: Aw: Sonos steuern
Beitrag von: Will am 05 Februar 2013, 01:35:59
Hallo reinerlein,

Schneller test vor dem Frühstück zeigt, dass jetzt playuritemp zu funktionieren scheint :-)

Habe zum Thema speak noch ein paar Verständnis fragen:

Zitat aus wiki
targetSpeakDir: Das Verzeichnis, in dem dieses Modul die Sprachdateien von Speak (siehe Set-Befehle an den SONOSPLAYER) ablegen soll. Es wird empfohlen, dass dieses Verzeichnis nicht von Sonos indiziert ist.
z.B. Pfade unter *Nix: /home/www/Sonos oder unter Windows: C:\InetPub\Sonos
--> ist es egal wo dieses Verzeichnis liegt? Würde ich auf meinem ordentlichen Bereich des nas legen, 192.168.1.10/public/sonos oder so. Ist das ein problem

targetSpeakURL: Die URL, unter der von außen auf die abgelegte Sprachdatei zugegriffen werden kann.
z.B. http://192.168.178.45/Sonos (http://192.168.178.45/Sonos)
-->wie ist "von aussen" zu verstehen? Mein Verständnis ist dass dein Modul (?) hier files rein schreibt, und sonos nachher darauf zugreift. Auch hier wurde ich dann 192.168.1.10/public/sonos vorsehen (du gibst diesen folder mit samba frei, korrekt?)

Zu aller letzt:
Kann es sein, dass die attribs für sonos nur manuell in fhem.cfg gesetzt werden können? Der sonosplayer gibt mir diese Attribute nicht als pulldown....

Bin im Moment nicht zu Hause und kann so nicht einfach ausprobieren....


Danke

W
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 05 Februar 2013, 09:40:37
Hi Will,

die Wiki-Dokumentation habe ich absichtlich auf einem einfachen Level der Erklärung gehalten, damit es mit dieser Beschreibung sicher funktioniert :-)

Der Unterschied zwischen diesen beiden Parameten ist, das targetSpeakDir zum Schreiben durch das FHEM-Sonos-Modul verwendet wird, und targetSpeakURL dem ZonePlayer zum Abspielen übergeben wird. Es wird nur noch der erzeugte Dateiname mit vorangestellten Slash angehangen.

Es kann also durchaus die gleiche Angabe sein, wenn es auf einem externen NAS liegt, und dort Schreibrechte existieren.

Ich persönlich wollte meine FHEM-Steuerung autark gegenüber meinen anderen Netzkomponenten laufen lassen, sodass, wenn ein NAS mal weg ist, die Sachen immer noch eigenständig laufen. Desweiteren ist der Pfad nach "aussen" (also ausserhalb meines Raspberry Pi über die Samba-Freigabe) bei mir nicht beschreibbar.
Um das zu ermöglichen muss diese Unterscheidung existieren. Bedenke weiterhin, das keine Benutzerinformationen für eine Anmeldung definiert werden können. Das ganze ist dann (Hausintern) also ziemlich offen...

Zu den Attributen:
Bei mir tauchen die normal in der Liste auf (siehe angehangenen Screenshot). Beachte aber, dass die hier beschriebenen Attribute am Sonos-Device (also einmal zentral) hängen. Vielleicht hattest du beim SonosPlayer-Device geschaut?

Grüße Reinerlein
Titel: Aw: Sonos steuern
Beitrag von: Christoph am 05 Februar 2013, 22:56:01
Vielleicht kann mir jemand helfen *g*
Bei mir werden die Player nicht automatisch erkannt wenn ich es so in der fhem.cfg einbinde:

define Sonos SONOS
attr Sonos pingType syn

Nach Save gibts nen Absturz.
Habe testweise nur einen Player angeschlossen also entweder Play3 oder Connect

Händisch funktioniert das ganze...

define Sonos SONOS
attr Sonos pingType syn

define Sonos_PLAY3 SONOSPLAYER RINCON_000E5879362A01400_MR
attr Sonos_PLAY3 generateInfoSummarize1 <NormalAudio><Artist prefix="(" suffix=")"/><Title prefix=" '" suffix="'" ifempty="[Keine Musikdatei]"/><Album prefix=" vom Album '" suffix="'"/></NormalAudio> <StreamAudio><Sender suffix=":"/><SenderCurrent prefix=" '" suffix="' -"/><SenderInfo prefix=" "/></StreamAudio>
attr Sonos_PLAY3 generateInfoSummarize2 <NormalAudio><TransportState/><InfoSummarize1 prefix=" => "/></NormalAudio> <StreamAudio><TransportState/><InfoSummarize1 prefix=" => "/></StreamAudio>
attr Sonos_PLAY3 group PLAY3
attr Sonos_PLAY3 icon icoSONOSPLAYER_icon-S3.png
attr Sonos_PLAY3 model Sonos_S3
attr Sonos_PLAY3 room Sonos
attr Sonos_PLAY3 stateVariable InfoSummarize2
attr Sonos_PLAY3 webCmd Play:Pause:Previous:Next:VolumeD:VolumeU:MuteT
define AlbumArt_PLAY3 weblink image /fhem/icons/SONOSPLAYER/Sonos_PLAY3_AlbumArt
attr AlbumArt_PLAY3 group PLAY3
attr AlbumArt_PLAY3 htmlattr width='200' height='200'
attr AlbumArt_PLAY3 room Sonos


Raum wird angelegt und ich kann meinen Play3 steuern.


Das Problem mit den Umlauten hat (hatte ?) Zorin
Mein Play3 heisst PLAY3 ;-)


Gruß Christoph
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 05 Februar 2013, 23:23:46
Hi Christoph,

sorry für die Verwechslung... Dann ist der Name bei dir zumindest kein Problem :-)

Kannst du vielleicht deinen LogLevel auf 3 oder 4 stellen, und mal den Log-Auszug hier hochladen?
Ich kämpfe immer noch mit ein paar Unterschieden zwischen Windows und Linux :-)

Außerdem habe ich auf meinem Pi gerade das Problem, dass die Registrierung für Titelaktualisierungen aus irgendeinem Grund abläuft; Auf meinem parallel dazu laufenden Windows-System (die beiden FHEM-Instanzen werden immer kurz nacheinander neugestartet :-) ist das immer noch OK. Normalerweise sollte diese Registrierung automatisch verlängert werden (was sie unter Windows ja auch immer tut).
Die Steuerung funktioniert dann immer noch, es werden lediglich keine Aktualisierungen mehr in FHEM durchgeführt. Damit ist da wohl auch nix im FHEM abgestürzt. Die Registrierung wird standardmäßig vom Player irgendwann aufgeräumt, wenn sie nicht verlängert wird. Das scheint aus irgendeinem Grund auszubleiben...
Da bin ich also gerade dran...

Grüße Reinerlein
Titel: Aw: Sonos steuern
Beitrag von: Will am 06 Februar 2013, 15:11:01
Hallo Reinerlein,

versuche im Moment die Speak Funktion zum Laufen zu bringen.

Ich bekomme es so hin, dass beim Absetzen eines set Speak ein MP3 File im lokalen Folder (/mnt/SonosSpeak) abgelegt wird. Da kein File im "oeffentlichen" Bereich landet (NAS //192.168.1.10/public/zzfunc) wird auch nichts abgespielt.

Log:
2013-02-06 22:03:44 SONOSPLAYER sonos_Living_Room transportState: PLAYING
2013-02-06 22:03:44 SONOSPLAYER sonos_Living_Room infoSummarize2: PLAYING => (Annie Lennox) 'Sing' vom Album 'Songs Of Mass Destruction'
2013-02-06 22:03:44 SONOSPLAYER sonos_Living_Room PLAYING => (Annie Lennox) 'Sing' vom Album 'Songs Of Mass Destruction'
2013-02-06 22:03:58 SONOSPLAYER sonos_Living_Room lastSetActionName: Pause
2013-02-06 22:03:58 SONOSPLAYER sonos_Living_Room lastSetActionResult: Success!
2013-02-06 22:03:58 SONOSPLAYER sonos_Living_Room transportState: PAUSED_PLAYBACK
2013-02-06 22:03:58 SONOSPLAYER sonos_Living_Room infoSummarize2: PAUSED_PLAYBACK => (Annie Lennox) 'Sing' vom Album 'Songs Of Mass Destruction'
2013-02-06 22:03:58 SONOSPLAYER sonos_Living_Room PAUSED_PLAYBACK => (Annie Lennox) 'Sing' vom Album 'Songs Of Mass Destruction'
2013-02-06 22:04:05 SONOSPLAYER sonos_Living_Room lastSetActionName: Speak
2013-02-06 22:04:05 SONOSPLAYER sonos_Living_Room lastSetActionResult: TempPlaying is currently running: Speak


Meine Eintraeg in der fhem.cfg

define sonos SONOS
attr sonos room sonos
attr sonos targetSpeakDir /mnt/SonosSpeak
attr sonos targetSpeakURL //192.168.1.10/public/zzfunc

Gibt es eine bestimmte Syntax des targetSpeakURL? Ich habe alles schon durchprobiert smb://, http://, //, "nix".
Habe den lokalen Ordner /mnt/SonosSpeak acuh schon per samba freigegeben (Freigabe funktioniert) und als targetSpeakURL angegeben, auch ohne Erfolg.

Kannst Du mir was Idiotensicheres empfehlen?

Im Wiki benutzt Du zB http://192.168.178.45/Sonos (http://192.168.178.45/Sonos) - kann das ueber http funktionieren?

Vielen Dank fuer kurze Klaerung.

W
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 06 Februar 2013, 15:24:48
Hi Will,

sorry, da ist mir im Wiki ein Tippfehler unterlaufen, den ich auch gerade korrigiert habe.
Es muss natürlich ein UNC-Pfad sein.

Versuch es bitte mal mit \\192.168.1.10\public\zzfunc Natürlich musst du das so anpassen, dass unter dieser Adresse auch die generierten Dateien erreichbar sind (zum Testen einfach in einem Windows-Dateiexplorer diese Adresse eingeben, und schauen, was du so siehst).

In deinem Log habe ich aber noch einen Fehler bei meiner Umsetzung gefunden. Ich blockiere parallele Abspielversuche, da ich am Ende sonst nicht mehr weiß, was ich wiederherstellen sollte. Das wird wohl im Fehlerfall (wie bei dir gerade) nicht vernünftig zurückgesetzt.
Dazu steht im Log bei dir:lastSetActionResult: TempPlaying is currently running: Speak

Ich werde das für die nächste Version beheben. Du müsstest halt auf jeden Fall einen FHEM-Neustart durchführen, dann wird das auch zurückgesetzt.

Grüße Reinerlein
Titel: Aw: Sonos steuern
Beitrag von: Christoph am 06 Februar 2013, 18:01:52
Hi Reiner,

anbei der fhem-Log von mir, im Perl Log landet nichts


Gruß Christoph
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 06 Februar 2013, 20:08:22
Hi Christoph,

ok, danke für das Log... ich versuche das mal bei mir nachzustellen...

Grüße Reinerlein
Titel: Aw: Sonos steuern
Beitrag von: krikan am 06 Februar 2013, 20:10:59
Hallo Reinerlein,

anscheinend habe ich das gleiche Problem wie Christoph und hänge mich einmal an den Beitrag.

Als FHEM-Fritzbox-User habe ich zu Testzwecken ein jungfräuliches FHEM mit Deinem Sonos-Modul unter Windows mit Activstate Perl aufgesetzt. FHEM stürzt anscheinend nach Defintion von Sonos immer ab. Um Probleme mit Windows auszuschließen, habe ich in Virtualbox ein Debian mit FHEM und dem Sonos-Modul aufgesetzt. Auch hier endet dies nach Definition von Sonos in einem Absturz von FHEM. In der WEB-Oberfläche von FHEM taucht der ZP90 nie auf. Mir gehen leider die Ideen aus, was ich falsch mache. Die FHEM-Logs von Windows und Unix sind angehängt und sehen für mich ziemlich gleich aus.

Dabei hatte ich zu Testzwecken den PLAY:5 und das Dock noch nicht einmal eingeschaltet...

Hast Du noch Ideen? Kann ich noch irgendwelche Infos zur Hilfe liefern.

Danke, Christian
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 06 Februar 2013, 20:18:09
Hallo Christian,

danke für die Rückmeldung. Da scheint es mal wieder ein Thread-Beendigungsproblem (in diesem Fall mal wieder zu früh) zu geben.

In meinen beiden Umgebungen ist mein Player ja nun schon bekannt und in der Config eingetragen, sodass der Discovery-Prozess nicht zum Tragen kommt. Das werde ich mal kurz zurücksetzen und testen, da es dort ja anscheinend mal wieder hakt...

Grüße Reinerlein
Titel: Aw: Sonos steuern
Beitrag von: krikan am 07 Februar 2013, 20:23:13
Hallo Reinerlein!

Danke für die Info. Werde es mal händisch anlegen.

Keine Ahnung, ob es für Dich wichtig ist, aber folgende Meldung tritt bei dn Abstürzen regelmäßig auf:

Perl exited with active threads:
1 running and unjoined
0 finished and unjoined
0 running and detached
Use of implicit split to @_ is deprecated at ./FHEM/21_SONOSPLAYER.pm line 232.


Gruß, Christian

Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 07 Februar 2013, 22:46:17
Hi Christian,

also die Ausgabe zu den Threads ist normal. FHEM ruft die Funktion zum Abbauen der Devices (UndefFn, dort würde der Thread abgebaut werden) beim Beenden von Fhem nicht mehr auf. Da wird wohl davon ausgegangen, dass ja sowieso alles gleich vorbei ist :-)

Aber die andere Meldung ist komisch. Die hatte ich noch nicht. Welche Perl-Version hast du denn?
Bei mir läuft folgendes: pi@raspberrypi ~ $ perl -V
Summary of my perl5 (revision 5 version 14 subversion 2)

Vielleicht ist meine Version zu alt? :-)

Grüße Reinerlein

P.S.: Die Threads unter Linux nerven gerade total. Die Implementierung da ist einfach buggy... Entweder es werden anstatt Threads gleich der Hauptprozess gekillt, oder es werden Dateihandles beim Starten von Threads gelöscht, die im Hauptprozess immer noch benötigt werden (wie mein CUL z.B. :-) Oh Mann... das kann sich noch einen Augenblick hinziehen...
Titel: Aw: Sonos steuern
Beitrag von: krikan am 08 Februar 2013, 06:17:53
Hallo Reinerlein,

meine Linux-Perl, das zur besagten Fehlermeldung führt, scheint älter zu sein:

test@debian:~$ perl -V
Summary of my perl5 (revision 5 version 10 subversion 1)


Also wohl mein Fehler. Ich werde es mal updaten und berichten. Verstehe aber nicht, warum ein neues Debian ein altes Perl mitbringt...

Unter Windows läuft bei mir was aktuelles:

Summary of my perl5 (revision 5 version 16 subversion 2)

Leider klappt es dort auch nicht. Perl verabschiedet sich dort entweder ohne Meldung oder mit der Theards-Angabe.

Lass Dir ruhig Zeit; trotzdem würde es mich riesig freuen, wenn Du es gelöst bekommst.

Danke und Gruß, Christian
Titel: Aw: Sonos steuern
Beitrag von: Will am 09 Februar 2013, 16:04:21
Hi reinerlein,

Nochmal zur speak Funktion:

Ich habe jetzt folgendes setup
targetSpeakDir /mnt/SonosSpeak
targetSpeakURL //192.168.1.103/SonosSpeak

Ist also das gleiche Verzeichnis. Wenn ich den set Befehl Abs Ende wird die mp3 Datei generiert (kann oich ja über prüfen), aber es gibt keine Durchsage - es gibt aber keine berechtigungsthematik, sonos darf hier zugreifen.

Logfile meldet beim ersten mal immer succes, beim zweiten Versuch sagt er
Tempplay is already running (nach Neustart weg)

Hast du eine Idee?

Danke.

W
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 09 Februar 2013, 20:49:36
Hi Will,

wenn dein Zitat direkt kopiert wurde, dann sind die beiden Schrägstriche am Anfang falsch. Also mal folgendes probieren:
targetSpeakURL \\192.168.1.103\SonosSpeak

Grüße Reinerlein
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 09 Februar 2013, 22:58:58
Hallo zusammen,

ich habe mal eine Menge im Thread-Verhalten umgestellt.

Nun hoffe ich, dass da etwas einigermaßen stabiles herausgekommen ist.
Meine Tests waren alle Varationen (Nicht konfigurierte Devices, vollständig konfigurierte Devices) unter Windows, und Linux (Raspberry Pi).

Das ganze läuft bei mir stabil. Aber wie das in der Wildnis (also bei euch:-) aussieht... mal schauen...

Was immer noch so ist, und was auch nicht von mir gelöst werden konnte:
Beim Beenden wird immer noch ausgegeben, dass da einige Threads zwar beendet, aber nicht weggeräumt sind. Das sind die Reste der Zwischendurchsagen. Da müssen wir mal beobachten, wie das mit dem Speicherverbrauch aussieht. Sonst muss ich das irgendwie auf eine externe Triggerung umbauen... aber erst mal gucken...

Im Anhang wieder alle Dateien. Es wurden aber ausdrücklich nur die beiden FHEM-Moduldateien verändert (das gilt eigentlich immer)...

Grüße Reinerlein
Titel: Aw: Sonos steuern
Beitrag von: Will am 10 Februar 2013, 00:56:59
Supi....

Mit dem neuen update läuft!


W
Titel: Aw: Sonos steuern
Beitrag von: krikan am 10 Februar 2013, 09:09:13
Klasse Reinerlein!

Bei mir läuft es unter Windows jetzt. ZP90 und 2x S5 werden problemlos erkannt, angelegt und lassen sich steuern. Was mir auf die Schnelle noch aufgefallen ist:

Im Fhem.log erscheint beim Start für jedes Gerät die nachfolgende DoTrigger-Fehlermeldung; Auswirkung kenne ich nicht:

Zitat
2013.02.10 08:57:26 2: SONOS1: Discover SonosPlayer 'Schlafzimmer' (S5) Software Revision 3.8 with ID 'RINCON_000E58530F0401400_MR'
2013.02.10 08:57:26 3: SONOS1: ReRead-Command: fhem('set WEB rereadicons');
2013.02.10 08:57:26 3: SONOS1: ReRead-Command: fhem('set WEBphone rereadicons');
2013.02.10 08:57:26 3: SONOS1: ReRead-Command: fhem('set WEBtablet rereadicons');
2013.02.10 08:57:26 3: SONOS0: ReRead-Command: fhem('set WEB rereadicons');
2013.02.10 08:57:26 3: SONOS0: ReRead-Command: fhem('set WEBphone rereadicons');
2013.02.10 08:57:26 3: SONOS0: ReRead-Command: fhem('set WEBtablet rereadicons');
2013.02.10 08:57:26 1: SONOS1: Successfully autocreated SonosPlayer 'Schlafzimmer' (S5) Software Revision 3.8 with ID 'RINCON_000E58530F0401400_MR'
2013.02.10 08:57:26 2: SONOS1: Service-subscribing successful with SID="uuid:RINCON_000E58530F0401400_sub0000000018" and Timeout="86400s"
2013.02.10 08:57:26 3: SONOS1: Discover: End of discover-event
2013.02.10 08:57:26 2: SONOS0: RetrieveProxyObjects for 'Sonos_Schlafzimmer' (Room 'Schlafzimmer')
2013.02.10 08:57:26 2: SONOS0: Error during DoTrigger: Error creating search socket: Normalerweise darf jede Socketadresse (Protokoll, Netzwerkadresse oder Anschluss) nur jeweils einmal verwendet werden.
 at ./FHEM/00_SONOS.pm line 1356.


Mein Sonos-Dock führt leider beim Anschalten dazu, dass Perl abstürzt. Aber das Dock ist ja eh leider aus dem Programm von Sonos....

Danke und Gruß, Christian
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 10 Februar 2013, 10:15:03
Hi Christian,

das klingt doch gut. Das mit der Fehlermeldung passiert, wenn mehrere Player erkannt werden sollen... das passe ich also noch an...

Kannst du mal den LogLevel auf 5 stellen (Achtung, das wird lang) und deinen Dock erkennen lassen (möglichst ohne alle anderen Komponenten). Da wird es irgendwas geben, was ich anspreche, was es bei dem Dock halt nicht gibt...

Grüße Reinerlein
Titel: Aw: Sonos steuern
Beitrag von: Christoph am 10 Februar 2013, 10:23:32
Hallo Reiner,

Bei läufts auch Play3 + Connect (angebunden über Bridge)wurden erkannt und angelegt ohne irgendwelche Abstürze. :-)

Danke


Gruß Christoph
Titel: Aw: Sonos steuern
Beitrag von: det. am 10 Februar 2013, 11:31:14
Hallo Reiner,

Der Ruf aus der Wildnis: Du hast sehr gute Arbeit geleistet. Vielen Dank!
Titel: Aw: Sonos steuern
Beitrag von: krikan am 10 Februar 2013, 18:57:59
Hallo Reinerlein,

habe den Connect(ZP90) und das Dock mal laufen lassen. Beim Absturz von FHEM steht in der Kommandozeile folgende Fehlermeldung:

Thread 1 terminated abnormally: Can't use an undefined value as a HASH reference
 at ./FHEM/00_SONOS.pm line 1259.


Das FHEM-Log habe ich Dir angehängt.

Das Dock wird im Webinterface nicht angezeigt/angelegt.

Wenn Du mehr Infos brauchst, melde Dich bitte.

Grüße, Christian
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 10 Februar 2013, 22:59:22
Hi Christian,

aus deinem Log ersehe ich, dass dein Dock nicht vollständig erkannt und erzeugt wird. Die Fehlermeldung kann eigentlich nicht ganz dazu passen, die wird vermutlich zu einem anderen Zeitpunkt (vermutlich dicht dran:-) aufgetreten sein.

Die Sache mit der Fehlermeldung fange ich nun ab. Das scheint eine Netzkomponente bei dir im Haus gewesen zu sein, die sich (im regulären Sinne) verabschiedet hat.
Das ist nämlich einer der Nachteile an UPnP. Es meldet sich Gott und die Welt (sofern man diese zuhause hat :-). In diesem Fall hat sich eine Komponente abgemeldet, die sich vorher noch nicht mal angemeldet hatte oder überhaupt gesucht war (ist ja auch mal nett :-)

Aber leider konnte ich aus dem Log nicht herauslesen, warum die Erzeugung deines Dock-Devices nicht durchgeführt wurde. Das Event ist gekommen, die notwendigen Informationen konnten ausgelesen werden. Nur ist dann einfach nichts weiter passiert... hmmm...
Was kannst du denn in deinem normalen Controller damit alles machen? Kann das Ding gesteuert Musik abspielen? Kann es als "Audio-Eingang" fungieren?

Hast du zufällig den Intel Device Spy bei dir installiert?
Damit kann man schön die Möglichkeiten eines Devices herausfinden. Damit könnte man herausfinden, was ich alles finden könnte/müsste...

Grüße Reiner
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 10 Februar 2013, 23:14:34
Hi Christian,

ich habe nochmal das Log durchwühlt...

Das Dock hat keine Subdevices wie die anderen ZonePlayer. Dafür hat es den AVTransport-Service am Oberdevice.
Das wird umständlich... was möchtest du denn am liebsten damit steuern?

Dann schaue ich mal, wie ich das in das bestehende Konzept hinein bekomme...

Grüße Reiner
Titel: Aw: Sonos steuern
Beitrag von: Zorin am 10 Februar 2013, 23:36:17
Super, jetzt klappt es, auch mit K_che...

Danke !
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 10 Februar 2013, 23:51:12
Hi Zorin,

schön, das es klappt... aber eigentlich sollte es beim Erkennen jetzt "Kueche" heißen...

Ist das bei dir nicht so?

Grüße Reinerlein
Titel: Aw: Sonos steuern
Beitrag von: Zorin am 11 Februar 2013, 00:29:48
Stimmt, Korrekt. Die Umlaute sind korrigiert.
Ich bin begeistert...

Jetzt steht meinem "Radio An" Schalter in der Küche nichts mehr im Weg...
Titel: Aw: Sonos steuern
Beitrag von: krikan am 11 Februar 2013, 08:03:27
Hallo Reiner,

leider hatte ich nicht geahnt, dass das Dock so kompliziert ist. Für mich würde es reichen, wenn Du verhindern könntest, dass das Dock zum Absturz führt (hoffe das ist einfach). Ich brauche das eigentlich nicht zwingend in Fhem; selbst ein Anlegen in Fhem ist nicht notwendig. Oder habe ich Dich falsch verstanden und der Absturz wird immer durch ein externes UPnP-Device verursacht?

Das Dock ist letztlich nur eine Ladestation für ipod/iphone und man kann Musik von den gedockten i´s in das Sonos Netz streamen. Vom Controller kann ich Musik im gedockten i´s auswählen und abspielen. Autoplay beim Einstecken eines i´s gibt es auch.

Soll ich den Intel Device Spy installieren oder ist das unnötig?

Abschließend ein großes Danke für Deine bisherige Arbeit

Grüße, Christian

PS: Umlaute in Liedtexten werden nicht vernünftig angezeigt. Hast Du eine Ahnung, ob das an meinen Browser-Einstellungen liegt?
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 11 Februar 2013, 09:04:26
Hi Christian,

die Umlaute sollten nur im State fehlerhaft dargestellt sein. In den passenden Readings dazu sollten diese stimmen (insbesondere die State-Reading-Standard-Vorlage "infoSummarize2"), und auch auf der Weboberfläche korrekt dargestellt werden.

Ich habe die Übertragung in das State-Reading (was in Folge dann im "echten" State landet) mit einer Zeichenumkodierung versehen müssen, weil bei meinen Versuchen FHEM abgestürzt war, wenn im State Umlaute standen.
Ich kann das aber nochmal testen, vielleicht war das ja nur ein Entwicklungszwischenstand, der für den Fehler gesorgt hatte... FHEM ist ja in ständiger Bewegung :-)

Ansonsten würde ich dazu erstmal die weiteren Entwicklungen im Bereich einer etwaigen neuen/angepassten Oberfläche zu FHEM abwarten. Ich meine, da sind mittlerweile einige Mitbastler dran :-)

Bzgl. des Docks schaue ich mal, ob ich mein Konzept etwas anpassen kann, damit dieser auch behandelbar wird. Dazu reichen mir aber momentan die Informationen, die in deiner Log-Ausgabe standen, und deine Angaben, was man damit machen kann.

Der Absturz wird durch das beschriebene Entfernen eines Devices (bzw. die Meldung dazu) verursacht. Das hat primär nichts mit dem Dock zu tun (es sei denn er ist der Schuldige, und verrät es nur nicht). Das fange ich auf jeden Fall noch ab.

Stand jetzt wird der Dock einfach nicht angelegt werden, da ich nach einem bestimmten Subdevice suche, was dieser Dock im Gegensatz zu allen anderen Zoneplayern nicht hat.
Wenn dieses Subdevice nicht gefunden wird, springt er einfach überhaupt nicht in den Bereich zum Anlegen eines Devices...

Grüße Reinerlein
Titel: Aw: Sonos steuern
Beitrag von: Will am 11 Februar 2013, 10:32:53
Hi reinerlein,

Am Anfang wurde mein zp90 als icon dargestellt - mittlerweile fehlt das icon (vermutlich weil ich fhem zwischendurch upgedated habe).
Wie bekomme ich das icon da wieder hin? Manuell? Oder gibt da was besseres?

Credits nochmal an dieser stelle - mein topmodul!!!

Will
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 11 Februar 2013, 10:56:02
Hi Will,

das Icon lade ich bislang nur beim Erkennen und automatischen Anlegen herunter...

Ich verschiebe das mal, dann wird jedesmal beim Erkennen des Players das Icon heruntergeladen.
Ist also in der nächsten Version drin...

Bis dahin kannst du einfach kurz die Konfiguration ausmarkieren, und ihn automatisch erkennen und (temporär) anlegen lassen. Danach kannst du die vorherige Konfiguration wiederherstellen. Das Icon bleibt ja eigentlich liegen (es sei denn, es verschwindet bei einem Update :-).

Grüße Reinerlein
Titel: Aw: Sonos steuern
Beitrag von: Will am 11 Februar 2013, 15:03:53
Hallo Reinerlein,

alles klar. Danke.

Zu der Speak Funktion noch: Kann ich auch variablen "aussprechen" lassen, also keinen Text sondern z.B. den Anrufernamen aus der FB Callmonitor anwendung? Oder zB "Die Temperatur betraegt 21 Grad (Wert aus Sensor).

Danke.

W
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 11 Februar 2013, 15:21:03
Hi Will,

das musst du über etwas Perl-Code im Notify erledigen.

Also z.B.:
define test notify event { fhem("set Sonos_Wohnzimmer Speak 35 de Vor dem Haus sind es jetzt ".Value("TemperaturFuehlerDeviceName")." Grad Celsius") }
Natürlich musst du die Namen entsprechend anpassen...

Grüße Reinerlein
Titel: Aw: Sonos steuern
Beitrag von: Christoph am 11 Februar 2013, 19:47:14
Hallo Reiner,

wenn ich das Sonos Modul neu in die cfg einbinde werden die Player ja erkannt und im Room angezeigt.
Die einzelnen Sonos definitionen usw werden erst nach nem "save" in fhem.cfg übernommen.
Ist das normal ?
Wenn Sonos eingebunden ist bekomme ich sobald ich irgendwas der fhem.cfg hinzufüge nen Absturz.

edit:
Gibt eigentliche ne Möglichkeit einen Radiosender aus den Favoriten direkt abzuspielen?
Mit LoadRadio muss ja noch ein Play hinterher geschickt werden.


Gruß Christoph
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 11 Februar 2013, 20:57:00
Hi Christoph,

automatisch erstellte Konfigurationen werden bei FHEM immer erstmal nur im Speicher gehalten, und können mittels "save" in einer Config-Datei festgeschrieben werden.

Das mit den Problemen beim Speichern der fhem.cfg (und dem automatischen Neustart dabei) ist leider normal. Die Threads sind nicht wirklich gut umgesetzt, sodass es dabei zu problemen kommen kann.

Allgemein gibt es wohl einige Module, wo es zu komischen Verhaltensweisen kommen kann, wenn man nur ein "rereadcfg" macht (das ist das was gemacht wird, wenn man direkt die fhem.cfg editiert und speichert).
Leider gehört Sonos mit seinen Threads auch dazu :-(

Zu dem Abspielen:
Ich könnte einen zusätzlichen Befehl einbauen, der beides in einem Schritt durchführt, wenn es dafür eine Mehrheit gibt. Ich persönlich benötige das nicht, da man ja immer mehrere Befehle hintereinander programmieren kann:
define test notify Taster:on set Sonos_Wohnzimmer LoadRadio MeinSender ; set Sonos_Wohnzimmer Play

Grüße Reinerlein
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 12 Februar 2013, 08:55:02
Hallo zusamen,

kurze Zwischennachricht, damit es hier nicht so ruhig wird :-)

Ich habe ein neues Feature (neben den bekannten Bugfixes) eingebaut, und gerade im Produktivtest bei mir laufen.
Dieses ist auch schon im Wiki beschrieben.

Man kann jetzt eine untere und/oder obere Grenze für die mögliche Lautstärke eines Players definieren. Dabei wird ein weiterer Listener aktiviert, der Änderungen an der Lautstärke mitbekommt, und bei über- oder unterschreiten der jeweiligen Schwelle die Lautstärke auf den gültigen Wert zurücksetzt.
Endlich kann man seinem Sohn/seiner Tochter eine maximale Lautstärke für den eigenen Player festlegen, und muss sich nicht mehr aufregen :-)

Desweiteren habe ich die Erkennungsstruktur umgebaut. Im Prinzip sollte der Dock also nun auch ordentlich erkannt werden. Das muss aber natürlich erst getestet werden, da ich ja keinen hier habe...
So wie ich das herausgelesen habe, kann man am Dock aber keine Lautstärke einstellen. Dort funktionieren dann diese Grenzen natürlich nicht...

Wenn alles gut geht, heute Abend oder Morgen dann das Update...

Grüße Reinerlein
Titel: Aw: Sonos steuern
Beitrag von: eburkon am 12 Februar 2013, 09:09:55
Servus miteinander,

ich habe bei mir das Modul jetzt auch soweit auch am Laufen. Danke erst mal.
Meine beiden Sonos ( Connect + Play3 ) werden korrekt angezeigt und zeigen
auch den jeweils gespielten Titel an incl. AlbumArt an.

Was noch nicht klappt ist das steuern. Also z.B. "Mute" produziert im Webfrontend
immer die Anzeige "Error" passieren tut nichts.

Muss ich da noch etwas konfigurieren?

Danke & Gruss
   Ekkehard

Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 12 Februar 2013, 09:26:30
Hallo Ekkehard,

eigentlich muss da nix weiter konfiguriert werden...

Edit:
War "Mute" ein Tippfehler, oder nur nicht vollständig wiedergegeben? Es gibt
MuteTohne Parameter: Wechselt den Mute-Zustand

und
Mute on
Mute off
mit dem jeweiligen Parameter: Schaltet auf den angegebenen Zustand.

Wenn das nicht das Problem war:
Kannst du mal deinen globalen Loglevel auf 5 hochstellen (Achtung: wird lang), und mir diesen hier zukommen lassen?
Mir reicht im ersten Schritt der Bereich, wo du dann auf Mute gedrückt hast...

Grüße Reinerlein
Titel: Aw: Sonos steuern
Beitrag von: krikan am 12 Februar 2013, 10:19:53
Hallo Reiner,

das hört sich (mal wieder) gut an. Du bist aber so schnell, dass ich mit dem Testen nicht nachkomme ;-).

Das Dock hat einen Lautstärkeregler zur Steuerung der beschickten Zone. Sorry, dass ich das nicht erwähnt hatte. Zur Entschuldigung: Habe den Regler noch nie genutzt.

Gruß, Christian
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 13 Februar 2013, 18:09:23
Hallo zusammen,

ich habe den aktuellen Code bei mir jetzt zwei Tage durchlaufen lassen, und keinen Fehler mehr festgestellt.
Im Anhang also wieder alles.

Enthalten (V1.8):
- MinVolume und MaxVolume
- Dock sollte jetzt erkannt werden
- Abmeldende Devices, die gar nicht gemeldet oder kein Sonos sind, führen zu keinem Absturz mehr
- PlayerIcon wird nun bei jedem Erkennungsvorgang (also auch beim Neustart von FHEM z.B.) heruntergeladen. Seit Sonos V4.0 sehen die übrigens anders aus :-)

Im Wiki ist wieder eine detaillierte Beschreibung der neuen Möglichkeiten enthalten.

Die nächsten Schritte von meiner Seite sind jetzt erstmal das Einbringen in das offizielle FHEM. Mal schauen, auf welche Weise das erfolgen wird...

Grüße Reinerlein
Titel: Aw: Sonos steuern
Beitrag von: krikan am 13 Februar 2013, 18:37:11
Hallo Reiner,

danke für die neue Version.

Leider führt das Dock unter Windows (Linux nicht getestet) reproduzierbar zum Absturz.

In der Kommandozeile erhalte ich folgende Fehlermeldung:

Thread 1 terminated abnormally: Can't call method "GetVolume" on an undefined va
lue at ./FHEM/00_SONOS.pm line 1179.


Das tritt immer dann auf, wenn das Dock erkannt wird. Im FHEM-Log steht dann:

2013.02.13 18:29:12 2: SONOS1: Discover SonosPlayer 'Wireless Dock' (WD100) Software Revision 4.0 with ID 'RINCON_000E5860524201400_MR'

Brauchst Du noch mehr Infos?

Gruß, Christian
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 13 Februar 2013, 19:02:56
Hi Christian,

*Vor die Stirn klatsch*
Klar, das hilft, das habe ich gesucht gehabt und immer wieder übersehen... ich habe alles mögliche umgestellt und abgesichert, aber diese eine Stelle natürlich nicht :-)

Also im Anhang diesmal nur die eine Datei, um das zu Testen...

Grüße Reiner
Titel: Aw: Sonos steuern
Beitrag von: krikan am 13 Februar 2013, 20:11:18
Hallo Reiner,

jetzt wird das Dock automatisch erkannt und angelegt.

Jedoch habe ich immer wieder nach einiger Zeit folgende Meldung in der Kommandozeile verbunden mit einem Absturz von FHEM:

Thread 1 terminated abnormally: Can't use an undefined value as a symbol referen
ce at ./FHEM/00_SONOS.pm line 2035.


Im Fhem-Log sehe ich leider derzeit keine Regelmäßigkeit.

Gruß, Christian

PS: Es laufen jetzt 2xS5, Connect, Dock
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 13 Februar 2013, 20:27:50
Hi Christian,

hmmm.. das ist aber komisch, weil da eigentlich eine Meldung im Log stehen müsste. Entweder irgendwas von einem "unitialized Value in concatenaton" oder "can't connect to...".

Die Stelle ist beim Aufruf des Hauptthreads per Telnet. In diesem Fall beim syswrite. Das ist noch nie so vorgekommen...

Ich habe mal noch eine Prüfung eingebaut, aber ob die da was verhindert... Ansonsten müsstest du doch mal bitte das Log hochstellen, und hier posten. Vielleicht ist da eine kleine Meldung zwischen, die darauf hindeutet, was hier das Problem ist...

Grüße Reiner
Titel: Aw: Sonos steuern
Beitrag von: krikan am 13 Februar 2013, 20:37:39
Ja Reiner,

hast recht, das taucht im Log vorher auf, war mir nur in der Masse bei Loglevel 5 nicht aufgefallen:

2013.02.13 20:28:47 1: SONOS0: Can't connect to localhost:7072
2013.02.13 20:28:47 2: SONOS0: Error during DoTrigger: Can't use an undefined value as a symbol reference at ./FHEM/00_SONOS.pm line 2035.


Brauchst Du das ganze Log?

Ich installiere mal Deine neue Version.

Gruß, Christian
Titel: Aw: Sonos steuern
Beitrag von: krikan am 13 Februar 2013, 21:07:03
Hallo Reiner,

leider mit der neuesten Version gleiches Problembild bei mir. Vielleicht ein Spezialfall bei mir!?

Hänge Dir trotzdem mal das FHEM-Log an. Vielleicht bringt es Dir mehr Infos.

Werde auch noch mal unter Linux/Debian testen, ob ich dort das Gleiche Problem habe.

Gruß, Christian
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 13 Februar 2013, 22:48:44
Hallo Christian,

komische Sache... ich habe zwar die Ursache des Problems selbst gefunden, aber nicht, warum das überhaupt versucht wird.
Das Problem ist, das er versucht aus dem Hauptthread heraus eine Telnet-Verbindung zu sich selbst zu öffnen. Das klappt nicht, da er sich damit selbst blockiert..

Ich habe jetzt erstmal eine Symptombehandlung gemacht, und ihm gesagt, dass wenn er das versuchen sollte, er die Anweisung direkt ausführen soll. Damit versucht er also nicht mehr sich selbst anzurufen...

Bitte teste mal, ob das jetzt bei dir durchläuft, und ob jetzt an irgendeiner anderen Stelle etwas anderes nicht funktioniert...

Danke schon mal.

Grüße Reiner
Titel: Aw: Sonos steuern
Beitrag von: eburkon am 13 Februar 2013, 23:31:23
Hallo Reinerlein,

es war von mir nicht richtig angegeben ich meinte MuteT wobei ich da auch noch einen Fehler drin hatte.
Wenn ich Webfrontend auf den MuteT link klicke wird "off" angezeigt. Das stimmt auch wenn ich das richtig verstehe,
da zu diesem Zeitpunkt eine Wiedergabe lief. Allerdings passiert am Sonos nichts.

Wenn ich auf den Linke "Pause" klicke wird "Error!" angezeigt passieren tut ebenfalls nichts.
Das log mit Start des Servers den zwei Aktionen und dem Stop habe ich angefügt.

Ich habe die aktuellsten Versionen der Module für diesen Test verwendet.

Danke & Gruss
     Ekkehard
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 14 Februar 2013, 01:05:47
Hi Eckkehard,

das ist schon ein komisches Verhalten, da deine MuteT-Rückgabe eigentlich "on" hätte liefern sollen (Mute == "on" => Stille). Das wird über eine abschließende Abfrage direkt vom Player geholt und als Ergebnis zurückgegeben. Das bedeutet: Das Setzen ist fehlgeschlagen, das nachgelagerte Abfragen war erfolgreich.

Ich habe jetzt noch ein paar Ausgaben bzgl. Lautstärkeermittlung eingebaut.
Ist das zufällig eine Zone mit zwei Playern im Rechts/Links-Verbund? Vielleicht kannst du auf deine Konstellation noch kurz näher eingehen.

Bei dir wird bei der Abfrage der "Master"-Lautstärke ein leerer String zurückgeliefert. Das sollte eigentlich nicht sein, und kann ich mir auch gerade nicht erklären...

Desweiteren hast du eine lustige Titelanzeige. Dort stehen eine Menge XML-Tags drin... Ich schaue mir das mal an, und versuche die Kerninformatione da rauszuschnippeln. Mal schauen, wie gut das klappt. Was ist das für ein Sender? Die Tags heißen z.B. "mus_art_1"...
Vielleicht kann ich das bei mir nachstellen.
Desweiteren kann er deswegen irgendwie das CoverArt dazu nicht ermitteln, da in der URL die Tags wieder vorkommen... Das scheint eine echte Sonderlocke zu sein... Leider gilt das für viele Dinge, die Sonos so tut...

Also im Anhang mal eine Version, die eine Log-Zeile enthält, die ich gebrauchen könnte. Diese fängt z.B. mit "SONOS1: Retrieve Current Volumelevels. Master:" an.

Ansonsten wäre es vielleicht hilfreich das Feature mit der Minimalen oder Maximalen Lautstärke zu aktivieren. Dort wird dann bei Level 5 eine Log-Ausgabe mit dem Anfang "Rendering-Event: LastChange:" ausgegeben. Dort stehen einige Informationen über den aktuellen Lautstärke- und Ausgabezustand drin. Das verrät vielleicht auch noch einiges...

Tut mir leid, dass es jetzt soviel ist, aber irgendwie müssen wir das ja rausfinden können :-)

Grüße Reiner
Titel: Aw: Sonos steuern
Beitrag von: eburkon am 14 Februar 2013, 08:36:36
Servus Reinerlein,

ich kann leider noch nicht testen aber zuerst ein paar Erklärungen zu meinem Setup.

Ich habe ein Connect (Diele) dass mit dem LAN verbunden ist und ein Play3 dass per Wifi angebunden
ist. Kein Stereo-Verbund nichts spezielles.

Zum Zeitpunkt des Tests lief auf dem Play3 ein italienischer Radiosender (RTL.it), der immer so
seltsame Tags mitliefert. Das wird z.B. auch im Controller falsch angezeigt.

Die Tests habe ich eigentlich mit dem Connect gemacht. Dort lief zu dem Zeitpunkt eine ganz simple
Playlist mit Titeln von meinem NAS.

Test folgt heute Abend.

Danke für die Mühe.
    Ekkehard
Titel: Aw: Sonos steuern
Beitrag von: krikan am 14 Februar 2013, 19:42:41
Hallo Reiner,

habe jetzt ca. 2 Stunden Dein Sonos-Modul unter Windows getestet (eher gequält) -> sieht super aus; es läuft und es gab keinen Absturz

Einzige Merkwüdigkeit, die ich hatte:

Play:5 vom Netz genommen und dann auf Play im Webfrontend gedrückt. Ergebnis:

2013.02.14 18:44:42 5: Cmd: >set Sonos_Kueche Play<
2013.02.14 18:44:42 5: Triggering Sonos_Kueche (1 changes)
2013.02.14 18:44:42 5: Notify loop for Sonos_Kueche lastSetActionName: Play
2013.02.14 18:44:43 3: SONOS1: ProxyObject exists: UPnP::ControlPoint::ControlProxy=HASH(0x6f09450)
2013.02.14 18:45:04 2: SONOS1: DeleteProxyObjects for 'K?che'
2013.02.14 18:45:04 5: Triggering Sonos_Kueche (1 changes)
2013.02.14 18:45:04 5: Notify loop for Sonos_Kueche lastSetActionResult: Exception ERROR: 500 Can't connect to 192.168.178.27:1400 (10060) at FHEM/lib/UPnP/ControlPoint.pm line 785 thread 1.
2013.02.14 18:45:04 4: /fhem?cmd.Sonos_Kueche=set%20Sonos_Kueche%20Play&room=Sonos / RL: 2077 / text/html; charset=UTF-8 /  /


Bei nächsten Aufruf einer Funktion im Webfrontend kam das Übliche:
ERROR: SonosPlayer disappeared
Danach lief es problemlos weiter.

Werde mal weiter testen; komme nur leider wahrscheinlich in den nächsten Tagen nicht viel dazu.

Danke und Gruß, Christian
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 14 Februar 2013, 20:27:02
Hi Christian,

das sieht doch super aus.

Die Fehlermeldungen sind genau die richtigen. In dem Augenblick, wo du auf den Knopf drückst, und festgestellt wird, das der Player verschwunden ist, werden die alten Verbindungsinformationen gelöscht (DeleteProxyObjects) und eine Fehlermeldung an den Aufrufer zurückgegeben, die dann im Log landet (deswegen danach erst der Exception Log bei lastSetActionResult).

Beim nächsten Mal sind die ProxyObjects dann eben genau nicht mehr da, und es wird gar nicht mehr versucht eine Verbindung aufzubauen...

Schön.. dann brauchen wir im Augenblick erstmal nur das Problem von Ekkehard lösen...

Grüße Reiner
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 14 Februar 2013, 20:46:20
Hi Christian,

was beim Verschwinden von Playern aber sein sollte, ist das dieses Löschen auch automatisch nach dem eingestellten IsAlive-Interval (also Standardmäßig 10 Sekunden) erfolgen sollte. Danach sollte sowieso nur noch die "disappeared"-Meldung kommen...

Grüße Reiner
Titel: Aw: Sonos steuern
Beitrag von: eburkon am 15 Februar 2013, 22:12:30
Servus Reiner,

ich hab jetzt mit der von Dir zur Verfügung gestellten Version nochmal den Test gemacht.
Log im Anhang.
Hoffe das hilft weiter.

Gruss
   Ekkehard
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 15 Februar 2013, 23:25:14
Hi Ekkehard,

hmm.. leider ist nix im Log drin, was darauf hindeuten würde, was da wirklich passiert.

Kannst du mal das Feature mit der minimalen (oder auch maximalen) Lautstärke aktivieren?
Einfach das Attribut maxVolume auf 100 an dem entsprechenden PlayerDevice setzen. Damit hast du keine Einschränkung, aber die Infos werden geliefert (sollte zumindest so sein)...
Dann liefert uns der Player wenigstens Information zu seiner Lautstärke und den anderen Abspielwerten (wenn das Feature aktivierbar ist)...

Grüße Reiner
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 16 Februar 2013, 01:26:11
Hallo zusammen,

ich habe mal ein paar Fehlerausgabemöglichkeiten eingebaut. Leider kann ich das Problem von Ekkehard bei mir nicht nachstellen, weswegen ich dort ein wenig stochern muss...

In der neuen Version sind Hauptsächlich Debug-Fehler-Ausgaben hinzugekommen.

Aber zwei Kleinigkeiten sind auch drin:
- Wenn ein Musikstück kein Cover hat, dann wird nun das FHEM-Logo verwendet :-)
- Wenn man RTL.it hört, dann werden die Informationen nun korrekt zurechtgeschnippelt

Wie immer als Komplettpaket, obwohl wie immer nur die beiden FHEM-Perl-Module angefasst wurden...

Grüße Reiner
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 17 Februar 2013, 13:16:56
Hallo zusammen,

solange keine Reaktion... da muss entweder was fehlerhaft sein, oder alles funktionieren...
Und siehe da, ich habe noch einen Tippfehler mit großer Wirkung entdeckt. Nach dem Abspielen einer Sprachdurchsage wird der Wert von "CurrentTempPlaying" nicht zurückgesetzt.
Das hat zur Folge, dass man nur eine Durchsage machen kann, und alle folgenden (bis zum nächsten Neustart von FHEM) mit einer Fehlermeldung verweigert werden...

Im Anhang nun eine um diesen Fehler korrigierte Version.

Desweiteren habe ich den Wert von state umgeschrieben. Dort werden jetzt nur noch Anführungsstriche ersetzt, da die für die Probleme bei der Anzeige verantwortlich waren. Also werden jetzt alle Umlaute und sonstige Sonderzeichen im STATE ordnungsgemäß abgelegt.

Grüße Reiner
Titel: Aw: Sonos steuern
Beitrag von: krikan am 17 Februar 2013, 18:09:36
Hallo Reiner,

Folgendes ist bei mir unter Windows aufgefallen:

Sporadisch stürzt FHEM mit folgender Fehlermeldung ab:

Use of uninitialized value in concatenation (.) or string at ./FHEM/00_SONOS.pm line 988.
Select error -1 (10038)


Leider kann ich noch nichts genaueres liefern, da ich derzeit wenig Zeit habe. Ich bin mir auch nicht sicher, ob obige 1. Zeile immer im Zusammenhang mit der 2. Zeile auftaucht. Sorry.


Gruß, Christian
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 17 Februar 2013, 20:27:33
Hi Christian,

ok, das kommt von meiner Zusatz-Fehler-Ausgabe-Ecke. Das müsste als Reaktion auf eine Play/Pause usw. Anforderung gekommen sein...
Eigentlich müsstest du als Ergebnis dieser Aktion eine Meldung mit dem Anfang "Error! UPnP-Fault-Fields:" gehabt haben. Eines der Felder dieser Fehlerausgabe war halt nicht gefüllt. Interessant wäre aber, ob die anderen was enthielten, sprich wie die Meldung komplett aussah...

Kannst du mir diese Info noch zukommen lassen?
Danke schon mal dafür...

Grüße Reiner
Titel: Aw: Sonos steuern
Beitrag von: krikan am 17 Februar 2013, 21:09:20
Hallo Reiner,

klar kannst Du die FHEM-Logs haben ;-). Es betrifft reproduzierbar das Dock (fhem.zip), in dem kein ipod steckt. Einmal hatte ich das auch bei einem S5. Das FHEM-Log (S5.zip) habe ich Dir auch mal beigefügt, obwohl ich es nicht reproduzieren kann.

Einen Zusammenhang mit der select-Fehlermeldung scheint es aber nicht zu geben. Absturz von fhem nur bei select-Fehler; der Fehler "Error! UPnP-Fault-Fields:" tritt häufiger auf und es läuft anscheind weiter.

Hoffe es hilft Dir ein wenig. Ansonsten melde Dich bitte.

Danke und Gruß, Christian
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 17 Februar 2013, 22:10:04
Hi Christian,

hmmm... das mit den Select-Fehlern kann ich nicht wirklich nachvollziehen. Könnte aber ein Problem mit Windows und den Threads sein... Ich werde da nochmal was umstricken, da ich glaube, dass ich da noch eine Beendigung drin habe (die sorgen ja immer für die Probleme). An der Stelle, wenn ein SonosPlayer verschwindet, beende ich noch den Thread und lasse ihn neustarten...

Aber das mit den anderen Meldungen erscheint mir eher normal:
Wenn in dem Dock kein Gerät steckt, kann man auch nix steuern, das Gerät ist aber natürlich trotzdem da, und muss bei Bedarf sofort steuerbar sein... das erscheint mir erstmal normal... oder wie siehst du das? Wie läuft das denn bei dem Original-Sonos-Controller?
Da werden vermutlich die Buttons ausgeblendet sein. Das könnte ich auch abfragen, würde aber ja nix ändern, da das ja nur Kosmetik auf der Oberfläche wäre, und FHEM als Haussteuerung eher ohne Oberfläche im Hintergrund läuft...
Ich denke mit der jetzigen Art und Weise (natürlich mit ausgebauten "use of unitialized value"-Meldungen) läuft das einigermaßen gut...

Ich baue da mal an den Threads rum, und melde mich dann wieder...

Grüße Reiner
Titel: Aw: Sonos steuern
Beitrag von: krikan am 19 Februar 2013, 12:28:29
Hallo Reiner,

das mit den select-Abstürzen ist leider ein wenig nervig. Das Poblem existiert bei mir auch erst bei den neueren Versionen der Module. Es wäre prima, wenn Du auch dafür wie immer eine Lösung hättest.

Zum Dock: Für mich -bin anscheinend der einzige Dock-Besitzer- reicht der derzeitige Zustand vollkommen. Hauptsache die Abstürze, die es in den ersten Versionen durch das Dock noch gab, sind wie aktuell weg. Im Controller taucht das bestückte Dock übrigens bei den Musikquellen und nicht bei den Räumen auf.

Nochmals ein großes Dankeschön für Deine Sonos-Module.

Gruß, Christian
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 19 Februar 2013, 14:19:07
Hi Christian,

treten denn diese Fälle überhaupt beim ab- bzw. anschalten von Playern auf?
Ich habe die Thread-Beendigung in diesen Fällen jetzt raus, und teste das gerade bei mir...

Desweiteren habe ich noch eine Steuerungs- und Abfragemöglichkeit eingebaut: Balance.
Man kann dort jetzt einen Wert zwischen -100 (ganz links) bis 100 (ganz rechts) angeben und auch abfragen. Desweiteren wird dieser Wert automatisch aktualisiert, wenn man die Lautstärkegrenzen aktiviert hat...

Außerdem habe ich noch etwas an der allgemeinen Perfomance gearbeitet, da ich ja sowieso ein bißchen was umbauen musste, um die Thread-Beendigung herauszubekommen.
Desweiteren habe ich noch Unstimmigkeiten beim Wiedererkennen von Playern gefunden, bzw. des Events (presence=appeared) dazu. Diese habe ich vom Konzept her etwas umgebaut, damit das besser und ohne Blockaden funktioniert...
Auch das Verschwinden eines Players wird nun sauber mittels eines Events (presence=disappeared) gemeldet, und alles ordentlich aufgeräumt...

Viel passiert also, und es sieht soweit erstmal gut aus, und ist wie beschrieben in meiner Umgebung im Test. Wahscheinlich heute Abend oder Morgen gibt es das dann wieder hier...

Grüße Reinerlein

P.S.: Sorry, wenn da immer noch soviel rumgebaut wird, aber ich habe das Gefühl, dass der Code mittlerweile sauberer konzeptioniert ist und immer stabiler läuft (von Ausnahmen mal abgesehen :-).
Titel: Aw: Sonos steuern
Beitrag von: krikan am 19 Februar 2013, 18:21:56
Hallo Reiner,

das Select-Problem tritt vollkommen unregelmäßig auf; scheint nicht vom An- und ausschalten abhängig zu sein. Da Du ja schon wieder sehr fleißig warst, würde ich Deine neue Version (nach Veröffentlichung) einfach mal testen. Dann brauchst Du Dich nicht noch mit altem Kram beschäftigen.

Es ist vollkommen OK, dass Du so viel umbaust. Keine Entschuldigung notwendig. Ist super, das Du Sonos einbindest!

Immer her mit neuen Versionen....

Gruß, Christian
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 22 Februar 2013, 12:53:48
Hallo zusammen,

das ganze hat doch leider etwas länger gedauert... Rattenschwänze... wo man hinschaut :-)

Im Anhang also wieder eine neue Version mit folgenden Umbauten/Erweiterungen:
- Discover-Thread wird nicht mehr beendet. Damit bleiben die Threads immer am Leben, und sollten damit deutlich weniger Probleme verursachen
- Perfomance-Optimierungen, da keine (bzw. weniger :-) überflüssige Dinge mehr abgefragt werden
- minVolume und maxVolume hinzugefügt. Damit kann pro Player eine minimale und/oder maximale Lautstärke festgelegt werden. Wenn dieses Feature aktiviert ist, gibt es die Lautstärkeänderungen ab sofort frei Haus geliefert
- minVolumeHeadphone und maxVolumeHeadphone hinzugefügt. Das gleiche wie bei minVolume, nur wirken diese Enstellungen ausschließlich, wenn ein Kopfhörer eingesteckt ist.
- Wenn man diese Lautstärke-Features aktiviert hat, erhält man folgende Werte per Event mitgeteilt (also stets aktuell):
-- Volume
-- HeadphoneConnected
-- Mute-Zustand
-- Balance-Wert
- InfoSmmarize um die neu hinzugekommenen Readings erweitert

Soo, das ist einiges. Vielleicht kann ein Besitzer eines S5 mal die Sache mit dem Kopfhöreranschluss testen. Den habe ich nämlich nicht :-)

Die Version ist bei mir jetzt einen Tag ohne Ausfall im Test gelaufen, und sollte damit einigermaßen stabil sein...

Grüße Reiner
Titel: Aw: Sonos steuern
Beitrag von: krikan am 24 Februar 2013, 11:54:15
Hallo Reiner,

bin zwar noch nicht viel zum Testen gekommen, aber kann positiv berichten, dass ich seit 2 Tagen keinen Absturz/Probleme meines Sonos-/Fhem-Testsystems hatte.
Vermutlich gehen die Abstürze zuvor aber gar nicht auf Dein Konto ;-). Nach Hinweisen hier im Forum zu Problemen mit Perl 64-bit bin ich auf Activestate Perl 32-bit umgestiegen.

Gruß, Christian

PS: Dock liefert noch Error! UPnP-Fault-Fields: Code: "s:Client", String: "UPnPError", Actor: "-", Detail: "HASH(0x483c2b4)"
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 24 Februar 2013, 12:32:22
Hi Christian,

das klingt doch super.
Das mit der Fehlermeldung ist das normale und erwünschte Verhalten. Immerhin hast du ja versucht, dem Dock eine Anweisung zu geben, die nicht ausgeführt werden konnte :-)

Ich werde allerdings die Meldung noch weiter aufdröseln, da steht ja noch eine Hash-Referenz, die ich für die Anzeige noch in einen String umwandeln werde... Ich bin ja gespannt, was da eigentlich drin steht :-)

Danke für die Rückmeldung...

Grüße Reiner

Titel: Aw: Sonos steuern
Beitrag von: pinz am 24 Februar 2013, 16:16:50
Hallo,

ersmal Danke für die Sonos Module! Ich habe vor einigen Tagen begonnen mit FHEM etwas rumzuspielen insbesondere um ein paar Dinge mit Sonos zu realisieren. Mir sind also einige (Anfänger)Dinge rund um FHEM noch nicht 100% klar...

Soweit habe ich es schon geschafft meinen Play:5 und meinen Connect zum Laufen zu bekommen (aktuellste Sonos Modul Version). Als letztes habe ich jetzt Versucht etwas zur fhem.cfg hinzuzufügen (nichts Sonos spezifisches). Bekomme jetzt aber beim Speichern der Fehlermeldung folgenden Error:

Unknown command rke:, try help Cannot open aktiv" ifempty=" ~ Kein Kopfhö: No such file or directory Unknown command rer", try help

In der Shell sehe ich folgenden Error:

Bareword found where operator expected at (eval 245) line 1, near ""<Volume prefix="Lautst"
        (Missing operator before Lautst?)
Bareword found where operator expected at (eval 177) line 1, near ""<Volume prefix="Lautst"


Vielleicht passt hier bei den neuen Kopfhörer Funktionen irgendwas nicht?

Gruß,
Andreas
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 24 Februar 2013, 16:38:34
Hi Andreas,

herzlich Willkommen bei FHEM (und diesem Modul :-)

Da scheint ein Zeilenumbruch in die Attribut-Definition gerutscht zu sein. Das ist im Wiki leider etwas unübersichtlich geraten, da die Zeilenbreite dort ja auch begrenzt ist :-)

Schau mal, ob in deiner Konfigurationsdatei jede Attributdefinition genau eine Zeile lang ist, bzw. an jedem Zeilenende ein Backslash (\) ohne ein weiteres Zeichen dahinter steht.
Am Besten vielleicht einfach im Eingabefeld (wenn du es über die Web-Oberfläche machst) alles markieren und kopieren, und anschließend in einem guten Editor deiner Wahl pasten, um das zu überprüfen.

Vielleicht hat er aber auch Probleme mit dem "ä" von "Lautstärke" (und natürlich auch mit den anderen Umlauten). Das lasse ich als HTML-Entity anlegen, also mit "&auml;". Das wird dann vom Web-Editor natürlich in ein "echtes" ä umgewandelt, und beim Speichern dann auch so übertragen. Da gibt es also durchaus noch potential für Probleme :-)

Genauer gesagt, sieht es so aus, als würde er bei genau diesen Umlauten einen Zeilenumbruch interpretieren. Das zu verhindern, ist hier jetzt das Ziel :-)

Ich habe diese Probleme bei mir nicht beobachten können. Ich verwende FHEM auf dem Raspberry Pi und mein iPad als Browser. Das scheint, in dieser Hinsicht zumindest, eine funktionierende Kombination zu sein...

Grüße Reiner
Titel: Aw: Sonos steuern
Beitrag von: pinz am 25 Februar 2013, 11:59:45
Hallo Reiner,

es dürft tatsächlich etwas mit den Umlauten zu tun haben. Ich lasse meine beiden Player mittels autoconf anlegen. Wenn ich dann die Config im Browser speichern möchte scheint da immer etwas durcheinander zu geraten. Mein Setup ist FHEM auf dem Raspberry Pi und als Browser verwende ich Firefox/IE unter Windows.

Ich hab mich gestern Abend noch einige Stunden mit MSGMail und notify gespielt (Ich besitze keinerlei CUL/FS20 HW und muss deswegen solche Features benutzen um FHEM zu ergründen;) ) und bin dann nicht mehr dazu gekommen zu testen ob sich der Fehler reproduzieren lässt. Ich werde auch mit dem IPAD testen und poste dann meine Ergebnissen.

Gruß,
Andreas

Titel: Aw: Sonos steuern
Beitrag von: Will am 25 Februar 2013, 15:16:27
Hallo Reinerlein,

also nach ein paar Tagen weg von zu Hause habe ich mir jetzt zu meinem Play connect ein Play 3 und einen rasperry pi gegoennt. Bin jetzt also komplett vonn der fritzbox weg, system laeuft jetzt seit einigen stunden ohne absturz :-)

ging dieses mal auch alles wesentlich schneller ;-) hab was gelernt dank Eurer Hilfe!!

Eine Sache, die noch interessant sein koennte ist das Gruppieren aller Player.....also wenn man eine Durchsage macht, kann man den spezifischen Player definieren oder sagen Speak XYZ auf allen Playern gleichzeitig....fuer mich im moment jedoch unktritisch.

Ganz tolle arbeit von allen Beteiligten und grosses Lob an die Community und vor allem an Reiner (natuerlich).

W
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 25 Februar 2013, 16:01:18
Hallo Will,

das mit der Zonentopologie habe ich mir auch schon mal gedacht. Nur brauche ich dafür zwingend mehrere Player, um das auch sehen und testen zu können.

Das dauert also noch etwas, ich werde es aber schon mal als Idee ins Wiki übertragen...

Grüße Reiner
Titel: Aw: Sonos steuern
Beitrag von: geraldS am 27 Februar 2013, 20:16:10
Hallo,

Danke erstmal für die Zeit & Energie die bisher für die Entwicklung der Sonos-Module aufgewendet wurde.
Ich bekomme das Modul allerdings nicht rund zu laufen:
Meine Umgebung: raspberry / Bridge / 2x Play:3
Das Discovery läuft zäh - wenn nach einigen Restarts alle Komponenten discovered sind - ist die Information relativ statisch (kein Update: Cover - Play / Stopped / initialized - etc).
Schickt man einen SET Befehl an den Player - stürzt fhem ab.

Einziger Anhaltspunkt ist folgender Fehler In der Konsole:
Thread 1 terminated abnormally: Can't call method "subscribe" on an undefined value at ./FHEM/00_SONOS.pm line 1331.

Hat jemand eine Idee?

Dank' Euch
Gerald
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 28 Februar 2013, 00:45:42
Hi Gerald,

schön dich hier zu lesen :-) Herzlich willkommen bei FHEM.

Zu deinem Problem:
Ohne Log kann man allgemein sehr wenig aussagen. Aber was mir an deiner Fehlermeldung auffällt, ist, das die Ausgabe nicht zur aktuellen Version passt. An der von die geposteten Stelle 1331 steht im aktuellen Codestand keine Subscribe-Anweisung.

Bist du sicher, dass du den aktuellsten Code aus dem Posting 65521 (http://forum.fhem.de/index.php?topic=10033.msg65521#msg65521) verwendest?

Desweiteren stelle deine Log-Ausgabe in einem ersten Schritt auf 3 und poste hier das Log bezogen auf die Discovery-Prozedur. Damit kann man dann schon einiges sehen. Sollten wir dem Problem dann immer noch nicht auf der Spur sein, können wir da noch auf 5 gehen. Das wird dann aber eine ganze Menge :-)

Danke schon mal...

Grüße Reiner
Titel: Aw: Sonos steuern
Beitrag von: geraldS am 28 Februar 2013, 13:54:05
Hi Reiner,

...gut beobachtet - die Version war nicht die aktuellste, da ich in der Historie zurückgegangen bin um zu schauen ob sich am Verhalten etwas ändert.
Jetzt ist wieder die aktuelle drauf, aber mit demselben Verhalten / "subscribe"-Error.
Aus den Logs werde ich nicht schlau - für mich schaut´s so aus, als wenn der Thread während dem Discovery "verstirbt".

Danke & Grüße
Gerald
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 28 Februar 2013, 15:26:28
Hi Gerald,

ok, das Problem ist tatsächlich die Bridge, bei der man kein Subscribing für Transport-Events machen kann.
Ist ja eigentlich auch logisch. Ich dachte nur, dass hier zwei Personen bereits eine Bridge in Betrieb hatten...

Also im Anhang mal ein Code, der dieses Subscribing nur durchführt, wenn es auch geht :-)
Bitte damit nochmal testen...

Grüße Reiner
Titel: Aw: Sonos steuern
Beitrag von: geraldS am 28 Februar 2013, 15:43:49
Hi Reiner,

wow - das ging aber fix....
Und das schaut schon sehr gut aus - beide Player haben in der View den aktuellen Status und können auch bedient werden.
Ob auch wirklich Töne rauskommen kann ich von remote nicht sagen (aber ich nehm´s mal an...)

Vielen Dank!
Gerald
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 28 Februar 2013, 15:54:28
Hi Gerald,

das ging bei dir aber auch fix... ein Hoch auf die VPNs :-)
Ich kann so etwas nur sehr eingeschränkt machen, da bei mir zuhause meistens jemand da ist, der sich an wundersamerweise startender Musik eher stören würde :-)

Schön, dann haben wir ja wieder jemanden in der erfolgreichen Benutzung dieses Moduls...

Grüße Reiner
Titel: Aw: Sonos steuern
Beitrag von: geraldS am 01 März 2013, 13:40:26
Hi Reiner,

Ja, das funktioniert jetzt schon wirklich toll..

Ein kleines Problemchen: Der presence-state wird nicht gepollt / upgedated
Der Status presence state ist statisch "appeared" auch wenn <LastSetActionResult = ERROR: SonosPlayer disappeared> ist.
Hab das Problem nur ich??

Beste Grüße
Gerald
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 01 März 2013, 23:57:10
Hi Gerald,

kannst du mal bitte das Attribut "pingType" am SONOS-Device auf icmp einstellen.
Ich habe bei mir festgestellt, dass ich mit syn nicht immer sicher das Verschwinden eines Player entdecken konnte. Da hat die Umstellung auf icmp geholfen...
Das geht aber natürlich nur, wenn du von FHEM aus pingen "darfst" :-)

Grüße Reiner
Titel: Aw: Sonos steuern
Beitrag von: pinz am 04 März 2013, 22:02:53
Hallo,

ich habe zwar immer noch die Fehlermeldung mit den Umlauten aber ich kann im Moment nicht erkennen wie sich das auswirkt. Soll ich irgendwelche Logs liefern um das zu analysieren? Ich nutze einen Raspberry Pi editiere fhem.cfg aber im Moment direkt im vi und habe die Player neu von autoconf anlegen lassen. Somit fällt eine Zusammenhang mit editieren im IE wohl flach oder?

Ansonsten bin ich dabei etwas herumzuspielen. Unter anderem versuche ich mittels PlayURITemp  eine mp3 als Türklingel zu nutzen. Klappt soweit ganz gut wenn ich einen Radiosender spiele oder der Player auf Pause ist. Allerdings wird die mp3 wenn der Player "gemuted" ist nicht abgespielt (abgespielt schon aber halt "ohne" Lautstärke). Ich könnte natürlich versuchen den Mute Status abzufragen und dann auf on zu setzen aber dann wird kurz der Radiosender wiedergegeben und anschließend das mp3 File. Bestünde die Möglichkeit PlayURITemp um ein Flag zu erweitern um nicht nur Volume zu setzen sondern wenn Flag "true" auch Mute off zu deaktivieren?

Besteht eigentlich noch Bedarf die neuen Kopfhörer Features zu testen? Ich habe meinen Player jetzt schon von der Küche ins Büro gesiedelt da könnte ich jetzt ohne große Mühe Kopfhörer anstecken;)

Gruß,
Andreas
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 05 März 2013, 00:42:50
Hi Andreas,

das mit PlayURITemp korrigiere ich. Ich denke, wenn man eine Lautstärke ungleich 0 angibt, dann möchte man auch was hören, und es wäre somit logisch, dass Mute für diesen Vorgang der "Durchsage" deaktiviert wird. Danach sollte es natürlich wieder auf den Vorzustand gesetzt werden...
-> Baue ich für die nächste Version ein.

Bzgl. der Kopfhörer würde mich interessieren, ob das Flag korrekt ankommt, und ob bei der Sache mit der minimalen oder maximalen Lautstärke auch die entsprechende für aktivierte Kopfhörer verwendet wird. Die kann man ja unterschiedlich definieren...
Bei mir habe ich z.B. Longpoll und eine minimale Lautstärke aktiviert. Dann sehe ich direkt auf der FHEM-Oberfläche ohne neuladen den geänderten Zustand bei Lautstärke und hoffentlich auch dem Einsteckvorgang des Kopfhörers :-)
Das Reading InfoSummarize3 enthält dann laufend sichtbar den aktuellen Hörzustand...

Zu deiner Umlautproblematik: du hast natürlich recht, dass bei deiner Vorgehensweise der Browser natürlich keine Rolle spielt. War ja auch nur eine Idee.
Wie wird denn im VI dieser Umlaut dargestellt? Es müsste dort ja z.B. direkt "&auml;" zu sehen sein. Auch nach einem Speichern und anschließendem wiederöffnen der Datei im VI.
Und das Problem tritt erst nach dem Bearbeiten der Datei im VI auf? Direkt nach dem Anlegen, Drücken von "save" und einem Neustart von FHEM tritt es nicht auf?
hmmm...
Da habe ich allerdings auch keine weitere zielführende Idee mehr. Hat denn noch jemand dieses Problem?

Grüße Reiner
Titel: Aw: Sonos steuern
Beitrag von: Will am 10 März 2013, 05:19:57
Hallo Sonoskollegen,

wollte nur eine kurze Info geben (falls es jemand interessiert) was ich jetzt mit Reiner's Modul bei mir realisiert habe:

- Kann aus FHEM raus 2 Sonos Komponent steuern (ohne Abstuerze)
- Bei mir neben dem Bett liegt eine FS20 Fernbedienung mit der ich Play, Pause, Lauter, Leiser machen kann. Auf Knopfdruck (ueber Speak) wird mir aktuelle Aussentemperatur und Lage (Weather) vorgelesen plus Vorhersage fuer den Tag - gleicher Knopf aber langer Knopfdruck liest mir die aktuelle Reading der Zimmertemperatur vor (1Wire) - lasse ich mir manchmal morgens nach dem Aufwachen vorlesen, bevor ich aus dem Fenster schaue. Zudem gibts es hier auch den "All Off" Knopf der all Lichter ausmacht und alle Player auf "Paused" setzen (vor Schlafengehen)
- Im Wohnzimmer habe ich einen Wandtaste (TC8) installiert mit dem ich Play, Pause, Leiser, Lauter, Previous, Next und direkten Zugriff auf zwei vordefinierte SonosPlaylists habe (spielt er dann mit Zufallswiedergabe ab)
- Wenn das Telefon klingelt sagt die Dame "Telefon - Anruf von Anrufername" (der Name wird aus dem FB Telefonbuch ueber den FB Callmonitor generiert

Was ich in Kuerze noch machen werde:
- an der Haustuer einen weiteren "All Off" Button realisieren, o dass beim rausgehen alle Player ausgemacht werden.
- Schalten des Verstaerkers per Watchdog (alt ueber IR Befehle des CUNO) nach 5 min ohne Sonos (aehnlich wie bei Reiner im Wiki beschrieben) - Vorteile von Watchdog??

Alles in allem eine sehr schicke Sache wie ich finde. Die Sonos App ist sehr schick, aber fuer die Einbindung in FHEM oder sehr einfache Befehle finde ich einen Wandschalter alt. FB besser, weil immer Griffbereit. Die Speak Funktion gibt einem noch unendlich mehr Moeglichkeiten und sorgt jedes Mal fuer Staunen....:-)

Vielen Dank nochmal an alle, die hier mitgestaltet haben, fuer mich das coolste Modul in FHEM.

W

Titel: Aw: Sonos steuern
Beitrag von: Will am 10 März 2013, 05:43:36
Hi Reiner,

im wiki gibt es folgendes Beispiel:

define Sonos_Wohnzimmer_Appeared_Notify notify Sonos_Wohnzimmer:presence:.appeared { \
         fhem "set Sonos_Wohnzimmer LoadPlaylist R.%%20Spielliste" ;; \
         fhem "set Sonos_Wohnzimmer Volume 15" ;; \
         fhem "set Sonos_Wohnzimmer Track ".(273 + int(rand(60)-30)) ;; \
         fhem "set Sonos_Wohnzimmer Play" \

Gibt es die Moeglichkeit den Wert fuer "Wiedergabeart"(oder so)zu setzen, also beim set Befehl zu definieren ob Shuffle oderr nicht? In der Sonos App kann ich das ja beeinflussen, muesste also moeglichn sein - im Wiki finde ich nichts...



Danke.

W
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 10 März 2013, 11:36:46
Hi Will,

das ist momentan noch nicht drin, da ich ja erstmal die grundsätzliche Funktion gewährleisten wollte.
Ich werde das nachher mal einbauen... Ob das heute schon veröffentlicht werden kann, muss ich mal schauen... ist aber gut möglich...

Folgende Features werden in dem Paket dann also drin sein:
- Shuffle Mode
- Repeat Mode
- Crossfade Mode
Jeweils setzen und abfragen natürlich.

Grüße Reiner
Titel: Aw: Sonos steuern
Beitrag von: Will am 10 März 2013, 15:48:51
Hi Reiner,

ist ja wie beim Weihnachtsmann hier :-)

Bei mir gibts jetzt nachdem ich ein paar Sachen geaendert habe (unter anderem ein Update) Probleme m it dem Speak. Irgendwas  scheint sich aufzuhaengen, und FHEM glaubt, dass noch ein TempPLay laeuft -> somit geht kein Speak bis man FHEM neu startet

anbei Inhalt des Logfiles:

2013.03.10 22:41:14 3: SONOS1: ProxyObject exists: UPnP::ControlPoint::ControlProxy=HASH(0x306b1c0)
2013.03.10 22:41:14 3: SONOS1: Event: End of Service-Event urn:upnp-org:serviceId:AVTransport
2013.03.10 22:41:15 3: SONOS1: Event: Received Service-Event urn:upnp-org:serviceId:AVTransport
2013.03.10 22:41:15 3: SONOS1: Event: All correct with this service-call till now. UDN='uuid:RINCON_000E587FC86201400_MR'
2013.03.10 22:41:15 2: SONOS0: Error during DoTrigger: Unrecognized character \xC3; marked by <-- HERE after ix="Lautst<-- HERE near column 118 at (eval 602) line 1.

2013.03.10 22:41:15 3: SONOS1: Event: Normal erkannt!
2013.03.10 22:41:15 2: SONOS1: Error during PeekTrigger: Unrecognized character \xC3; marked by <-- HERE after ix="Lautst<-- HERE near column 118 at (eval 869) line 1.

2013.03.10 22:41:15 3: SONOS1: Event: End of Service-Event urn:upnp-org:serviceId:AVTransport
2013.03.10 22:41:16 2: SONOS0: Error during DoTrigger: Unrecognized character \xC3; marked by <-- HERE after ix="Lautst<-- HERE near column 118 at (eval 632) line 1.

2013.03.10 22:41:35 3: SONOS0: Error! TempPlaying is currently running: Speak
2013.03.10 22:41:35 3: SONOS0: Error! TempPlaying is currently running: Speak
2013.03.10 22:42:38 3: SONOS0: Error! TempPlaying is currently running: Speak


Ideen??

W
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 10 März 2013, 16:12:47
Hi Will,

das ist das gleiche Problem mit den Umlauten, wie bei Andreas.

Ändere doch sonst mal die Umlaute bei den Attributen (zu generateInfoSummarize3) auf "ungefährliche" Buchstaben. Ich habe das Problem bei meiner Konstellation bislang noch nicht... Ich habe aber auch seit einer Woche kein Update mehr gemacht... Das hole ich mal nach...
Vielleicht sollte ich das, was Standardmäßig angelegt wird auf Englisch formulieren. Ist wahrscheinlich problemfreier...

Grüße Reiner

P.S.: Das andere ist bereits fertig, und wird von mir gerade getestet... Soviel zum Thema Weihnachten :-)
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 10 März 2013, 16:23:20
Hi Will,

ich wollte nur noch kurz meine Variante für meine Verstärkerschaltung mitteilen.
Das Beispiel aus dem Wiki ist direkt von meiner Konfiguration.

Ich verwende für die Funk -> IR Umsetzung folgendes Element:
http://www.elv.de/fs20-infrarot-fernbedienung-fs20-irf-komplettbausatz-mit-bedrucktem-und-bearbeitetem-gehaeuse.html (http://www.elv.de/fs20-infrarot-fernbedienung-fs20-irf-komplettbausatz-mit-bedrucktem-und-bearbeitetem-gehaeuse.html)
Als Bausatz für 18€ nicht wirklich teuer...

Ich habe dabei noch nie einen Ausfall zu verzeichnen gehabt, habe den Sender aber auch wirklich Lichtgünstig mit in den Schrank verfrachtet, dort ist es dunkel und kuschelig...

Edit (schön das das jetzt geht:-):
Eine der drei LEDs in der Komponente habe ich über ein 3m Kabel aus dem Gehäuse herausgeführt und bei meinem Fernseher hinter die transparente Abdeckung beim dortigen IR-Empfänger geklebt. Damit kann ich dann auch meinen Fernseher an- und ausschalten (der hat noch keinen Netzwerkanschluß).
Das Ding ist von Vorne nicht zu sehen, und schaltet meinen Fernseher sicher an und aus...

Grüße Reiner
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 10 März 2013, 20:09:22
Hallo zusammen,

nach der Anregung von Will, hier also eine neue Version. Diese ist bei mir nun eine Weile fehlerfrei durchgelaufen.

Folgendes ist enthalten:
- "generateInfoSummarize3" wird nun ohne Umlaute angelegt. Stattdessen werden "ae" und "oe" verwendet. Nicht wirklich schön, allerdings ist das ganze ja eh' mehr als Vorlage zu verstehen...
- Wenn bei einer Zwischendurchsage vorher Mute aktiviert war, wird dies für die Dauer der Durchsage deaktiviert, und danach wieder aktiviert. Man hört also auf jeden Fall die Durchsage in der geforderten Lautstärke
- Shuffle, Repeat und CrossfadeMode können gesetzt und abgefragt werden. Desweiteren werden diese Infos automatisch (zusammen mit den Titelinformationen) aktualisiert und erzeugen demnach auch Events bei Änderungen am Player.

Der Wiki-Eintrag ist auch bereits angepasst.

Wie immer das komplette Paket zum Download, wobei Änderungen wie immer nur in den beiden PM-Dateien erfolgt sind.

Grüße Reiner
Titel: Aw: Sonos steuern
Beitrag von: Will am 11 März 2013, 15:42:29
Hi Reiner,

Top, keine Abstuerze mehr, beliebig viele Speaks, und ich kann Shuffle setzen.
Danke!

W
Titel: Aw: Sonos steuern
Beitrag von: pinz am 12 März 2013, 18:46:57
Bei mir ist die Fehlermeldung mit den Umlauten auch nicht mehr aufgetreten! Und PlaytmpURI funktioniert jetzt auch wenn der Player "gemuted" ist! Ich komme schön langsam in die Situation tatsächlich alle von mir erträumten Features abbilden zu können (scheitert halt noch an FHEM Wissen aber das will nicht so recht besser werden mit 5 Monate altem Nachwuchs;))

Jetzt wären nur noch die Zonenfeatures ein Wahnsinn. Wenn genug Leute Bedarf an diesen Features hätten sollten wir wohl Reiner einen Play3 spendieren! Bei genug Leuten wären das vielleich 20 oder gar nur 10 Euro pro Nase. Kennt wer einen Sonos Händler über welchen man sowas abwickeln könnte? Ich wäre auf alle Fälle mit einem 20er dabei. Schnapsidee oder guter Vorschlag?

Gruß,
Andreas
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 12 März 2013, 20:01:01
Hi Andreas,

auch wenn ich gerne einen zweiten Player hier hätte, wäre das ja eine Bezahlung, die etwas übertrieben wäre :-)
Das Modul sollte schon kostenlos bleiben...

Leider habe ich in meinem Bekanntenkreis auch keinen weiteren Player zur Verfügung, den ich mir mal ausleihen könnte... Die sind alle zwar willig, aber bei den Kosten eher zurückhaltend :-)

Aber schön, das die bestehenden Features mittlerweile bei den meisten wohl sauber funktionieren...

Grüße Reiner
Titel: Aw: Sonos steuern
Beitrag von: eburkon am 15 März 2013, 09:07:16
Servus,

wollte mich nur mal kurz wieder melden. War leider verhindert.
Habe jetzt die aktuellen Dateien eingespielt und jetzt funktioniert bei mir
auch das Steuern des Sonos einwandfrei.

Vielen Dank!
    Ekkehard
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 15 März 2013, 21:38:38
Hallo Ekkehard,

das ist ja super, das es bei dir funktioniert.

Dann bleibt ja im großen und ganzen nur noch der Test mit dem Kopfhöreranschluß offen, dann ist der jetzige Codestand als stabil und sauber umgesetzt zu betrachten... Schön.

Grüße Reiner
Titel: Aw: Sonos steuern
Beitrag von: Will am 18 März 2013, 14:55:38
Hallo Reiner,

bei mir funktioniert das Speak wieder nicht, kommt immer die meldung ein TempPlsying wuerde schon laufen - was nicht der Fall ist. Hab schon Update + Shutdown restart durch...

Ideen?


Danke
W


2013.03.18 21:47:37 1: OWX: 1-Wire devices found on bus OW1 (sensor2)
2013.03.18 21:47:42 2: SONOS1: SonosPlayer 'Living_Room' (ZP90) Software Revision 4.0 with ID 'RINCON_000E582DCFC001400_MR' is already defined and will only be updated
2013.03.18 21:47:42 2: SONOS1: SonosPlayer 'Living_Room' is now updated
2013.03.18 21:47:42 2: SONOS1: Service-subscribing successful with SID="uuid:RINCON_000E582DCFC001400_sub0000004792" and Timeout="86400s"
2013.03.18 21:47:42 3: SONOS1: Discover: End of discover-event
2013.03.18 21:47:43 2: SONOS1: Discover SonosPlayer 'Portable' (S3) Software Revision 4.0 with ID 'RINCON_000E587FC86201400_MR'
2013.03.18 21:47:47 2: SONOS1: SonosPlayer 'Portable' (S3) Software Revision 4.0 with ID 'RINCON_000E587FC86201400_MR' is already defined and will only be updated
2013.03.18 21:47:47 2: SONOS1: SonosPlayer 'Portable' is now updated
2013.03.18 21:47:47 2: SONOS1: Service-subscribing successful with SID="uuid:RINCON_000E587FC86201400_sub0000004103" and Timeout="86400s"
2013.03.18 21:47:47 3: SONOS1: Discover: End of discover-event
2013.03.18 21:47:47 3: SONOS1: Event: Received Service-Event urn:upnp-org:serviceId:AVTransport
2013.03.18 21:47:47 3: SONOS1: Event: All correct with this service-call till now. UDN='uuid:RINCON_000E582DCFC001400_MR'
2013.03.18 21:47:47 3: SONOS1: Event: Normal erkannt!
2013.03.18 21:47:47 3: SONOS1: Event: End of Service-Event urn:upnp-org:serviceId:AVTransport
2013.03.18 21:47:47 3: SONOS1: Event: Received Service-Event urn:upnp-org:serviceId:AVTransport
2013.03.18 21:47:47 3: SONOS1: Event: All correct with this service-call till now. UDN='uuid:RINCON_000E587FC86201400_MR'
2013.03.18 21:47:48 3: SONOS1: Event: Normal erkannt!
2013.03.18 21:47:48 3: SONOS1: Event: End of Service-Event urn:upnp-org:serviceId:AVTransport
2013.03.18 21:47:52 3: SONOS1: Event: Received Service-Event urn:upnp-org:serviceId:AVTransport
2013.03.18 21:47:52 3: SONOS1: Event: All correct with this service-call till now. UDN='uuid:RINCON_000E582DCFC001400_MR'
2013.03.18 21:47:52 3: SONOS1: Event: Normal erkannt!
2013.03.18 21:47:52 3: SONOS1: Event: End of Service-Event urn:upnp-org:serviceId:AVTransport
2013.03.18 21:47:55 3: SONOS1: Load MP3 from "http://translate.google.com/translate_tts?tl=en&q=%20current%20temperature%20is%2016%20degrees%20and%20clear%2C%20Forecast%20for%20Tue%20is%2021%20degrees%20and%20scattered%20thunderstorms" to "/home/shares/fhem/Portable_Speak.mp3"
2013.03.18 21:47:55 2: SONOS1: MP3 Download-Error: 404 Not Found
2013.03.18 21:48:01 3: SONOS0: Error! TempPlaying is currently running: Speak
2013.03.18 21:48:14 3: SONOS1: ProxyObject exists: UPnP::ControlPoint::ControlProxy=HASH(0x3d03360)
2013.03.18 21:48:14 3: SONOS1: Event: Received Service-Event urn:upnp-org:serviceId:AVTransport
2013.03.18 21:48:14 3: SONOS1: Event: All correct with this service-call till now. UDN='uuid:RINCON_000E587FC86201400_MR'
2013.03.18 21:48:15 3: SONOS1: Event: Normal erkannt!
2013.03.18 21:48:15 3: SONOS1: Event: End of Service-Event urn:upnp-org:serviceId:AVTransport
2013.03.18 21:48:16 3: SONOS1: ProxyObject exists: UPnP::ControlPoint::ControlProxy=HASH(0x3d03360)
2013.03.18 21:48:16 3: SONOS1: Event: Received Service-Event urn:upnp-org:serviceId:AVTransport
2013.03.18 21:48:16 3: SONOS1: Event: All correct with this service-call till now. UDN='uuid:RINCON_000E587FC86201400_MR'
2013.03.18 21:48:16 3: SONOS1: Event: Normal erkannt!
2013.03.18 21:48:16 3: SONOS1: Event: End of Service-Event urn:upnp-org:serviceId:AVTransport
2013.03.18 21:48:21 3: SONOS1: ProxyObject exists: UPnP::ControlPoint::ControlProxy=HASH(0x3d0d750)
2013.03.18 21:48:26 3: SONOS1: ProxyObject exists: UPnP::ControlPoint::ControlProxy=HASH(0x3d0d750)
2013.03.18 21:48:29 3: SONOS0: Error! TempPlaying is currently running: Speak
2013.03.18 21:48:44 3: SONOS1: ProxyObject exists: UPnP::ControlPoint::ControlProxy=HASH(0x3d03360)
2013.03.18 21:48:46 3: SONOS0: Error! TempPlaying is currently running: Speak
2013.03.18 21:48:50 3: SONOS0: Error! TempPlaying is currently running: Speak
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 18 März 2013, 15:28:31
Hi Will,

das scheint ein Rest des vorhergehenden Fehlers zu sein, der nicht sauber aufgeräumt wird.
Im Log steht, dass das Text-MP3 nicht heruntergeladen werden konnte (Zeitstempel: 21:47:55). Wenn dieser Fehler auftritt, wird die Info TempPlaying bislang noch nicht sauber aufgeräumt. Das baue ich gleich ein.
In Folge dazu, kann ein weiterer Aufruf natürlich nicht mehr zum Zuge kommen.

Diese Download-Fehlermeldungen hatte ich bei meinen Tests, wenn Google der Text zu lang war. Dann hat er einfach einen 404er geliefert, und mein MP3 nicht erzeugt. Kannst du das zum Testen einfach etwas kürzen?
Leider ließ sich das in meinen Tests nicht auf eine bestimmte Zeichenzahl einschränken...

Vielleicht kennt auch jemand noch einen anderen Webdienst, den man für diese Zwecke einbauen könnte? Vielleicht könnte man dort mehr Zeichen unterbringen :-)

Grüße Reiner
Titel: Aw: Sonos steuern
Beitrag von: bapou am 22 März 2013, 10:51:39
Hallo Will und Reiner,

ich bin gerade neu in FHEM eingestiegen (zuvor IPSYMCON) und habe nun meine Fritzbox7390 mit CUL und
FS20 zum laufen bekommen.
Nun wuerde ich gerne mein SONOS (zwei Zoneplayer + Play:3) wieder anbinden; Dazu zwei Fragen bevor ich Zeit verschwende und versuche SONOS auf der Fritzbox zu installieren;

1.) Im Wiki/SONOS Anwendungsbeispiel steht, dass die Fritzbox "Perl ohne Thread-Möglichkeit" nicht funktioniert;  Bei Will schien es doch
zu funktionieren oder was waren die Probleme, die du, Will, wegen der Fritzbox hattest?

2.) Da ich mehrere Funktionen vor dem wecken starte und mich ueber SONOS wecken lasse wuerde ich in Zukunft gerne von SONOS die Weckzeit auslesen. Dieses hatte
ich in IP-Symcon geschafft. Reiner, siehst du eine Chance, dass dies ueber dein SONOS Modul irgendwann moeglich ist?

Herzlichen Dank,

Thom
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 22 März 2013, 11:17:20
Hi Thom,

erstmal herzlich Willkommen bei Fhem :-)

Bzgl. Sonos und Fritzbox kann ich dir tatsächlich nicht viel sagen. Meine Infos stammen aus der Historie dieses Threads und sind in den Wiki Artikel eingeflossen.

Aber zu deinen Weckzeiten:
Das sollte kein Problem sein. Ich schaue mir das nachher mal an, und melde mich dazu nochmal...
Momentan läuft das hier eher in Richtung Wunscherfüllung. Ich benötige erstmal nicht mehr von dem Modul, und habe dementsprechend auch nicht die Menge an Ideen.
Sobald also jemand mit einer Idee kommt (so wie du jetzt) sehe ich zu, dass das schnell umgesetzt wird.

Grüße Reiner
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 22 März 2013, 12:16:32
Hi Thom,

soo, ich habe mir das mit dem Alarm mal angesehen.
Ausgeben der Alarmliste, bzw. der Details eines Alarms ist kein Problem.

Aber:
Möchtest du auch einen Alarm setzen können? Das werden dann nämlich eine ganze Menge Parameter. Ist für mich erstmal kein Problem, nur könnte ich mir vorstellen, dass das Setzen eines Alarms über die Sonos-App einfach bequemer ist.
Oder geht es dir nur darum, einen bestimmten Alarm zu (de-)aktivieren?
Leider haben die Alarme keine Namen, sodass man doof aus den Details erkennen muss (als Mensch jetzt), ob das jetzt der gesuchte Alarm ist. Intern haben die natürlich IDs, die ich auch als Erkennungsmerkmal für den Anwender verwenden würde.

Was ich in dem Atemzug auf jeden Fall mit einbauen werde, ist der Sleeptimer. Wobei das Prinzipiell ja auch über einen Fhem-at-Befehl gelöst werden könnte...

Schreib doch mal deinen Anwendungsfall, damit wir in dieser Umsetzungsfrage etwas weiter kommen...

Grüße Reiner
Titel: Aw: Sonos steuern
Beitrag von: bapou am 22 März 2013, 13:26:35
Hallo Reiner,

herzlichen Dank fuer die schnelle Recherche und Antwort.
Fuer meinen Anwendungsfall muss ich nur die Alarmzeit auslesen und wissen ob dieser
aktiviert ist. Alle anderen Parameter (welcher Raum, welche Musik... etc.) sind fuer meinen Fall unwichtig.
Setzen will ich auch nichts. Es reicht auch wenn immer der erste Alarm gelesen wird, da ich nur einen verwende.

Praktisch stelle ich immer per Iphone/Ipod abends den SONOS Alarm;
FHEM soll dies wissen um Heizung etc. am Morgen zu schalten.


Gruesse,
Thom

Titel: Aw: Sonos steuern
Beitrag von: Will am 22 März 2013, 15:02:14
Hi,

Zum Thema fritzbox:
Habe das am Anfang probiert aber sher schnell aufgegeben, da mein Verständnis ist, dass das Linux auf der fritzbox nicht alle Pakete bereitstellt, die zum betrieb diese Moduls benötigt werden. Ich habe da.


als Anlass gesehen, mir einen raspberry pi zubesorgen auf dem dann alles flott und rreibungslos lief.

Ist zwar ein gerät mehr, dafür auch ein Spielzeug mehr :-)

Wecker:
Benutze ich im sonos nicht - habe aber gleich mal einen Wecker für morgen gesetzt :-) bei zwei quaelgeistern ist der Wecker nicht so wichtig - man ist eh zu früh wach.

Interessant wäre wie reiner sagt der sleeptimer - wurde ich per Fernbedienung am Bett schalten - aber eben auch per at Befehl möglich.



Spannend was unterschiedliche leute so realisieren....

Wuensche euch ein schones wochenende  

Gruss

W
Titel: Aw: Sonos steuern
Beitrag von: bapou am 22 März 2013, 15:33:02
Hallo Will,

wie weit kamst du mit SONOS auf der Fritzbox bevor du auf rasperry pi umgestiegen bist;

Im Dez. 2012 hattest du auf jeden Fall geschrieben "Mit dem neuen update läuft!" und so hoffte ich, dass die Basisfunktionen laufen...
zumindest Abfrage des Weckers, und vielleicht ein Stop ueber FS20 Schalter, da der SONOS Schalter ja nur mute schaltet.

Der SONOS Wecker ist zu empfehlen; da er auf den lokalen Sonos Geraeten laueft, ist er sehr zuverlaessig, auch wenn das Internet ausfaellt oder ein Stromausfall
war; dann gibt es eben nur Gepiepe statt Musik.

Gruss,
THom


Titel: Aw: Sonos steuern
Beitrag von: Will am 22 März 2013, 22:35:25
Hi thom,

Ich habe das nicht zum laufen gebracht - das sonos Modul wurde nicht geladen.
Habe mir damals einen linux Rechner aufgesetzt, um zu testen bis der raspberry pi da war.
Erst mal lief meine existierende fhem Installation zusammen mit der testinstallation auf einem PC (fhem2fhem), mit dem pi ist alles auf einer Maschine und ich habe keine Einschränkungen.

W
Titel: Aw: Sonos steuern
Beitrag von: snoop am 28 März 2013, 20:56:22
Hallo Reinerlein,

alles was ich zum Sonos Modul gelesen habe gefällt mir bisher sehr gut = würde ich gerne nutzen.

Ich habe nur ein Problem - gut kleine Herausforderung:

- bisher nutze ich die FritzBox 7390 für FHEM -> damit scheint es nicht zu funktionieren (zumindest noch nicht)
- alternativ könnte ich meine Synology DS212+ nutzen -> hier auch die kleine (eher große) Herausforderung - per Cross-compiling Perl für die Nas zu erzeugen. Dies hat für FHEM Martin Fischer schon was gemacht - er hat auch schon geschrieben, dass dies sehr aufwändig sei.

Nun mein Anliegen - wie können wie es schaffen, dass Martin eine aktuelle Perl Version inkl. der notwendigen Module für Synology kompiliert.
Oder anders, Martin meinst du du könntest solch eine Version kompilieren? Ich denke viele würde sich darüber freuen.

Vielen Dank und Grüße
Arthur
Titel: Aw: Sonos steuern
Beitrag von: det. am 28 März 2013, 22:34:24
Hallo Arthur,
Reiner wird sich schon gewundert haben, dass von mir in Sachen Sonos Test lange nichts zu hören war. Ich hatte auch Fhem auf der FB 7390 und war damit zufrieden, bis das VDSL mehrere Tage offline  war und es so aussah, als wäre die FB defekt. Lange Rede kurzer Sinn - Fhem auf den RPI umgezogen, den ich bis dahin für Fhem mit Sonos genutzt hatte.
Jetzt läuft FHEM auf FB  nur noch mit PRESENCE iPhone - FHEM2FHEM, auf RPI der ganze Rest der Haussteuerung und wenn er nach Ostern endlich von RS geliefert ist, ein weiterer RPI mit dem SONOS Modul. Ein NAS werkelt bei mir auch noch.
Warum ich das alles schreibe? - das eine tun und das andere nicht lassen! Die Universalmaschine für FHEM halte ich für suboptimal, verteilt auf mehrere kleine und energiesparende Rechner ist die Gefahr des Totalausfalls wesentlich geringer und die Beschränkung wegen fehlender Perl Module ist auch nicht da.
Titel: Aw: Sonos steuern
Beitrag von: snoop am 28 März 2013, 23:03:45
Hallo det.,

danke für deine Antwort - ja absolut, das stimmt schon. Ich kämpfe noch mit mir, mir noch ein RPI zuzulegen.
Auf der anderen Seite möchte ich die NAS und die Fritzbox nicht dafür missbrauchen (Ich befürchte, dass die Fritzbox das nicht mehr lange mitmachen wird - je mehr Funktionen ich einbaue).
Ich bin froh das auf der NAS/Fritzbox(FHEM hat bisher keinen Stress gemacht) nicht viel drauf ist und ich neue Herstellerupdates einfach so einspielen kann (habe früher viel mit Freetz gemacht).

Verteilte Infra. -> mehr Sicherheit heißt aber auch zugleich mehr Devices.... hmmm ja muss jeder für sich ausmachen.
Weiterhin sehe ich doch den Aufwand nun alles auf RPI umzuziehen - macht ja auch Spaß.... aber die Zeit die wieder draufgeht...

Ich merke schon ich muss mir da noch ein paar Gedanken machen.
Danke und Viele Grüße
Arthur
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 29 März 2013, 00:22:16
Hi Arthur,

von mir auch noch aus dem Oster-Kurzurlaub eine Reaktion dazu:
Ich persönlich würde entweder eine eigene Maschine oder mindestens eine ausreichend dimensionierte Maschine verwenden.

Ich habe Fhem auf einem eigenen RPi laufen, der nur das eine tut. Der Administrationsaufwand hält sich in Grenzen. Man muß schließlich bei einem funktionierenden System auch nicht ständig Updates durchführen (ausser die von Fhem natürlich :-). Das bedeutet, dass mein System vielleicht mal alle 4-6 Monate mit Systemupdates versorgt wird. Das reicht mir (persönliche Meinung), da das Ding nicht aus dem Internet erreichbar ist (nur per VPN, welches von einer anderen Maschine verwaltet wird).

Desweiteren sollte man im Auge behalten, dass das Sonos-Modul Systembedingt schnell antworten können sollte, da der ZonePlayer beim Raussenden von Nachrichten den Empfang der vorhergehenden Nachrichten abwartet. Wenn man hier also einen Flaschenhals anlegt, merkt man das vielleicht in einer zögerlichen Reaktionsgeschwindigkeit des Sonos-Systems. Und das will ja wohl keiner :-)
Ich konnte das zwar noch nicht beobachten, aber befürchten :-)

Ausserdem ist ab mehreren Playern auch irgendwann eine Menge in dem Modul los, was da so verarbeitet werden muss. Wenn man z.B. das Feature für die Lautstärkekontrolle aktiviert, wird man über jede(!) Änderung der Lautstärke an dem Player informiert. Da kommt beim Sliden über den Sonos-Controller schon eine Menge zusammen. Wenn man dann noch, wie ich, die Fhem-Events dazu aktiviert hat (also per longpoll direkt auf der Oberfläche jede Änderung sehen kann, und darauf auch per Notify reagieren könnte), hängt da ein kleiner Rattenschwanz an jedem Schritt der Lautstärkeänderung dran. Das Ändern der Laustärke am Controller erzeugt bei mir so im Schnitt 3-5 Meldungen über die Zwischenschritte. Das mag jetzt an mir liegen, allerdings muss ich eine Lautstärkeänderung auch "fühlen".
Gut, das kann man alles abschalten, aber man möchte ja auch was von den Möglichkeiten haben :-)

Zusammengefasst:
Das soll dir nur ein paar weitere Punkte in deiner Überlegungsliste liefern. Möglichkeiten des Fhem-System-Aufbaus gibt es ja nun einige; Arbeit und Spaß hat man aber mit allen :-)

Grüße von der langsam verschneiten Nordseeinsel Wangerooge
Reiner
Titel: Aw: Sonos steuern
Beitrag von: snoop am 29 März 2013, 10:05:25
Hallo Reiner,

wow, danke für deine sehr umfangreiche Ausführung (Überzeugungsarbeit) ;o).
Ich sehe schon, da werde ich wohl um eine RPi nicht herum kommen - ihr/du arbeitet/arbeitest nicht zufällig bei RPi im Vertrieb ;o).
Nein im Ernst, vollkommen richtig - wenn erst mal alles läuft ist es nicht viel Aufwand das System zu pflegen, an er Fritzbox mache ich ja auch nicht viel.

Ich werde mir mal so ein System bestellen und parallel aufbauen. Meine Befürchtungen sind, dass einige Dinge nicht mehr funktionieren werden, siehe FritzDECT,FritzRUL etc. der Rest der bei mir läuft ist zu 95% native FHEM.

So nun möchte ich dich nicht in deinen Oster-Kurzurlaub stören.
Viele Grüße und noch eine schöne Oster(Winter)zeit.
Arthur


Titel: Aw: Sonos steuern
Beitrag von: det. am 29 März 2013, 10:42:37
Hallo Arthur,
Zu Deinen Befürchtungen: wegen der FB spezifischen Sachen schadet es der FB nicht, ein FHEM nur dafür dort weiter laufen zu lassen und über FHEM2FHEM an den RPI anzukoppeln. Der Umzug geht erstaunlich einfach und schnell. Hat bei ca. 1000 Programmzeilen ca. 1h gedauert - Pfadangaben für  Filelog anpassen, Mail von FB auf DebianMail umstellen, Funk- und 1-wire Device umstecken und wundern dass es auf Anhieb funktioniert.
Ohne den Anstoß der angeblich defekten FB (an der es letztlich nicht gelegen hat, sondern an der T-COM) hätte ich den Schritt auch wohl nie gewagt, der RPI lief bei mir schon ein halbes Jahr nebenher.
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 02 April 2013, 10:47:58
Hallo zusammen,

ich wollte mal kurz eine aus-dem-Urlaub-zurück-Meldung geben.

Das Thema mit den Weckern werde ich die nächsten Tage angehen. Allerdings bin ich mir noch nicht ganz über das erwartete Verhalten bei gruppierten Zonen sicher. Es kann sein, dass ich dazu auf die Möglichkeit eines zweiten Players warten muss, um zu sehen, was da so für Informationen geliefert werden...

Also frohes schaffen nach den verschneiten Ostertagen :-)

Grüße Reiner
Titel: Aw: Sonos steuern
Beitrag von: bapou am 21 April 2013, 20:25:15
Hallo Reiner,

inzwischen habe ich auch einen Raspberry Pi und damit dein SONOS Modul zum laufen bekommen. Herzlichen Dank.
Da ich das SONOS Modul vor allem wegen der Verbindung des SONOS Weckers mit dem Rest installiert habe, wuerde ich
mich natuerlich freuen wenn du bei dem auslesen der Weckzeit weiter kommst.

Herzlicher Gruss,
Thom
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 21 April 2013, 22:47:37
Hi Thom,

das ist ja schon mal super... leider muss ich mich echt für meine Langsamkeit entschuldigen.
Ich habe wegen des Gartensaisonstarts und den vorhergehenden Sturmzeiten leider von meiner Frau eine komplette Terrassensichtschutzwanderneuerung auf den Tisch gelegt bekommen.
Das muss ich jetzt erstmal Ansatzweise wieder loswerden.

Ich werde (und habe auch schon) zwischendurch an dem Sonos-Modul weiter arbeiten. Leider wird es sich noch etwas verzögern.

Grüße Reiner
Titel: Aw: Sonos steuern
Beitrag von: det. am 22 April 2013, 21:48:07
Hallo Reiner,

immer schön den WAF hochhalten, das ist wichtig, spätestens im Investitionsprozess für die nächsten Anschaffungen zur Hausautomatisierung. Mein SONOS Modul läuft inzwischen prima - DANKE! - auf einem neuen RPI, nur wenn ich über die Woche arbeiten bin und dabei natürlich daheim keine Musik höre beschwert sich FHEM bei Anrufen. Callmonitor läuft auf der FB und schaltet normalerweise erfolgreich über FHEM2FHEM mit dem RPI die Musik in der Stube bei Anruf ab. Hast Du dazu eine Idee?define CALL notify .*CM.* {fhem "set Sonos_Wohnzimmer Mute on"}
2013.04.22 18:44:41 3: set Sonos_Wohnzimmer Mute on : ERROR: SonosPlayer disappeared
2013.04.22 18:44:41 3: CALL return value: ERROR: SonosPlayer disappeared
2013.04.22 18:44:45 3: SONOS1: ProxyObject does not exists
und so geht das weiter bis der Anrufende merkt, dass niemand daheim ist.
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 22 April 2013, 23:33:54
Hi Detlev,

die Fehlermeldung ist im Prinzip korrekt, da du ja versuchst einen Befehl abzusenden, und dieser nur nicht ausgeführt werden kann.

Du müsstest also eher folgendes schreiben:
define CALL notify .*CM.* { if (ReadingsVal("Sonos_Wohnzimmer", "presence", "disappeared") eq "appeared") { fhem "set Sonos_Wohnzimmer Mute on" } }Damit wird das nur ausgeführt, wenn der Player präsent ist.

Grüße Reiner
Titel: Aw: Sonos steuern
Beitrag von: det. am 23 April 2013, 08:01:31
Hallo Reiner,

vielen Dank, habe es eingeändert und schaue heute Abend, ob es funktioniert hat. Entschuldige meine Faulheit, aber bei der Wahl zwischen try and error oder Reiner fragen konnte ich nicht widerstehen, Letzteres zu wählen.
Habe da leider noch einen Patienten:define Radio_Paradise dummy
attr Radio_Paradise room Sonos
attr Radio_Paradise setList on off
attr Radio_Paradise sortby 1
define Radio_AN notify Radio_Paradise {fhem "set Sonos_Wohnzimmer LoadRadio Radio%%20Paradise";;\
fhem "set Sonos_Wohnzimmer Volume 15";;\
fhem "set Sonos_Wohnzimmer Play"}
Da der Sonos direkt am Netzkabel hängt (ohne Bridge) und über FS20 Schaltsteckdose am Wochenende früh eingeschaltet wird braucht er recht lange zum Start. Wenn ich den Radiosende s.o. zu früh "einschalte" stürzt FHEM auf dem RPI ab. Hast Du eine Idee, wie ich das verhindern kann?
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 23 April 2013, 09:17:20
Hi Detlev,

kein Problem, solange ich noch Ideen habe :-)

Zu deinem anderen Patienten:
Ich fürchte das wird etwas komplizierter.

Du müsstest einen Notify wie aus dem Wiki mit deinem Dummy und dem Notify für deine Steckdose kombinieren:
define Radio dummy
attr Radio setList on off

define Sonos_Wohnzimmer_Appeared_Notify notify Sonos_Wohnzimmer:presence:.appeared { \
if (Value("Radio") eq "on") { \
fhem "set Sonos_Wohnzimmer LoadRadio Radio%%20Paradise" ;; \
fhem "set Sonos_Wohnzimmer Volume 15" ;; \
fhem "set Sonos_Wohnzimmer Play" \
} \
}
Das sorgt erstmal dafür, daß beim Melden des Players der Radiosender geladen wird, wenn der Dummy "on" ist.

Jetzt noch dein Schalter-Notify:define fernbedienungsschalter FS20 ....

define fernbedienungsschalter_on notify fernbedienungsschalter:on set Radio,Steckdose on
define fernbedienungsschalter_off notify fernbedienungsschalter:off set Radio,Steckdose off
Damit schaltest du mittels einer FS20 Fernbedienung (hier alles nur exemplarisch und Auszugsweise) die Steckdose an, und den Wunsch, danach Radio hören zu wollen (was dann ja beim Appearen des Players abgefragt wird).

Du musst da u.U. noch ein paar Seiteneffekte beseitigen, z.B. dafür sorgen. dass der Radio-Dummy irgendwann auch sicher auf off geschaltet wird, sonst hörst du beim Einschalten des Zoneplayers immer deinen Radiosender :-)
Desweiteren kannst du das natürlich beliebig erweitern, indem du weitere Radio-Dummies definierst, und beim Appeared-Notify entsprechend darauf reagierst.

Also, viel Potential zum Spielen :-)

Grüße Reiner
Titel: Aw: Sonos steuern
Beitrag von: det. am 24 April 2013, 07:49:12
Hallo Reiner,
funktionierte so noch nicht, da der Player nach dem FHEM Neustart ( update ) noch nicht an war. Dabei hat er nur folgenden state:
(siehe Anhang / see attachement)
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 24 April 2013, 08:37:14
Hi Detlev,

der Zustand ist normal, solange sich der Player noch nicht gemeldet hat.
Was passiert denn, wenn in diesem Zustand der Player angeschaltet wird? Bleibt das dann so? Eigentlich sollten sich dann alle Werte aktualisieren, und im Presence-Reading dann auch was von "appeared" stehen...

Wenn sich da nix aktualisiert, kannst du mir die Logs dazu senden?

Grüße Reiner
Titel: Aw: Sonos steuern
Beitrag von: det. am 24 April 2013, 09:55:10
Hallo Reiner,

Danke für Deine schnellen Bemühungen. Ich bekomme da offenbar mindestens 2 ungünstige state Zustände (1 und 3), auf die es im Falle eines Telefonanrufes unterschiedlich zu reagieren gilt.
1* SONOS ohne 220V und noch nicht gestartet nach dem letzten shutdown restart: initialized
2* SONOS nur 220V eingeschaltet, sonst nichts angewählt oder abgespielt: appeared
3* SONOS nach 2* - 220V einfach wieder ausgeschaltet - state ändert sich da leider nicht: appeared
und dann noch die bekannten state, beim Musik abspielen etc, da funktioniert ja alles.
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 24 April 2013, 10:27:47
Hi Detlev,

für deine Telefon-Mute-Schaltung solltest du nicht auf den State abfragen. Im Endeffekt ist für eine Steuerung des Players seitens Fhem nur wichtig, ob der Player da ist, und Befehle empfangen kann. Deshalb dafür immer das Reading "presence" abfragen (was du aber vermutlich schon tust).

In meinem Beispiel prüfe ich explizit, ob dieses Reading "appeared" ist, was nur der Fall sein sollte, wenn der Player noch/schon erreichbar ist.

Wenn dieses Reading nicht sauber auf "disappeared" gesetzt wird, dann versuch doch bitte mal den pingType zu setzen (an der Sonos-Zentralkomponente). Standardmäßig wird dort "syn" verwendet.
Bei mir funktioniert das leider nur manchmal sicher (ich vermute da als Übeltäter meinen Managed-Switch, der die ARP-Adresse zu lange puffert, und deshalb ein Syn-Paket einfach an den zuletzt bekannten Port weiterleitet, egal ob dort der Zoneplayer noch lebt, oder nicht).
Ich habe das bei mir auf "icmp" umgestellt. Dafür braucht der Prozess aber mehr Rechte (root).

Grüße Reiner
Titel: Aw: Sonos steuern
Beitrag von: mullischlumpf am 01 Mai 2013, 13:26:00
Hallo zusammen,

bin nun ebenfalls stolzer Anwender von FHEM ;-)

Zu meinem aktuellen Glück fehlt mir nur noch die erfolgreiche Einrichtung meiner Sonos-Player.

Ich habe mich an den Wiki Eintrage gehalten und alle CPAN Module installiert, sowie die Files entsprechend abgelegt. Wenn ich nun ein define Sonos SONOS in die fhem.cfg schreibe bekomme ich im Log leider folgende Fehlermeldung mit der ich nichts anfangen kann:

2013.05.01 13:18:35 1: reload: Error:Modul 00_SONOS deactivated:
 Attempt to reload threads.pm aborted.
Compilation failed in require at /usr/local/FHEM/share/fhem/FHEM/00_SONOS.pm line 60, <$fh> line 59.
BEGIN failed--compilation aborted at /usr/local/FHEM/share/fhem/FHEM/00_SONOS.pm line 60, <$fh> line 59.

2013.05.01 13:18:35 0: Attempt to reload threads.pm aborted.
Compilation failed in require at /usr/local/FHEM/share/fhem/FHEM/00_SONOS.pm line 60, <$fh> line 59.
BEGIN failed--compilation aborted at /usr/local/FHEM/share/fhem/FHEM/00_SONOS.pm line 60, <$fh> line 59.


Hat mir hier jemand einen Hinweis woran es liegen könnte?

Danke euch :-)
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 01 Mai 2013, 22:46:18
Hi Thorsten,

schön dich hier zu haben :-)

Zu deiner Fehlermeldung:
Kann es sein, dass du nicht ganz die aktuellste Version des Sonos-Moduls laufen hast?
Zeile 60 ist in der aktuellen Version eine Kommentarzeile bzgl. Releasenotes :-)

Das momentan aktuellste wurde von mir in diesem Post hochgeladen:
Link (http://forum.fhem.de/index.php?topic=10033.msg68056#msg68056)

Ansonsten wäre die Frage, auf welcher Hardware du das laufen hast? Threads-Probleme kenne ich bislang nur von der Fritzbox. Da wärst du aber schon weiter gekommen, als so mancher anderer hier. Normalerweise läuft es auf der Fritzbox einfach nicht :-)

Grüße Reiner

Titel: Aw: Sonos steuern
Beitrag von: mullischlumpf am 01 Mai 2013, 23:07:18
Hallo Reiner,

danke für den Hinweis. Jetzt habe ich mir die aktuellen Files abgelegt. Dadurch hat sich die Meldung leider nur um ein paar Zeilen verschoben ;-)

Ich versuche das Ganze auf einer Synology NAS laufen zu lassen. Hoffe mal da besteht die Chance es ans laufen zu bringen. Ansonsten habe ich das aktuellste FHEM 5.4.

2013.05.01 23:01:39 1: reload: Error:Modul 00_SONOS deactivated:
 Attempt to reload threads.pm aborted.
Compilation failed in require at /usr/local/FHEM/share/fhem/FHEM/00_SONOS.pm line 117, <$fh> line 59.
BEGIN failed--compilation aborted at /usr/local/FHEM/share/fhem/FHEM/00_SONOS.pm line 117, <$fh> line 59.

2013.05.01 23:01:39 0: Attempt to reload threads.pm aborted.
Compilation failed in require at /usr/local/FHEM/share/fhem/FHEM/00_SONOS.pm line 117, <$fh> line 59.
BEGIN failed--compilation aborted at /usr/local/FHEM/share/fhem/FHEM/00_SONOS.pm line 117, <$fh> line 59.

Gruß
Titel: Aw: Sonos steuern
Beitrag von: justme1968 am 02 Mai 2013, 00:05:16
es kommt drauf an welche diskstation du hast und welche perl version.

das perl aus  optware ist ohne thread support kompiliert. beim perl von marin fischer weiss ich es nicht.

falls du eine der intel basierten diskstations hast kannst du es mal mit aktive perl versuchen. die linux version lässt sich ganz normal installieren.

ob es daran liegt kannst du rausfinden wenn du die jeweilige perl version mit -V aufrufst. in der liste sollte ein 'useithreads=define' auftauchen wenn der thread support da ist. ansonsten ein 'useithreads=undef'.

gruss
  andre
Titel: Aw: Sonos steuern
Beitrag von: mullischlumpf am 02 Mai 2013, 00:20:23
Ja mist du hast recht. Hier die Ausgabe:

/usr/local/perl/bin/perl -V | grep useithreads
    useithreads=undef, usemultiplicity=undef


------------

/usr/local/perl/bin/perl -V
Summary of my perl5 (revision 5 version 16 subversion 0) configuration:
   
  Platform:
    osname=linux, osvers=2.6.32.12, archname=armv5tel-linux
    uname='linux diskstation 2.6.32.12 #2233 wed jun 6 04:25:24 cst 2012 armv5tel gnulinux '
    config_args='-des -Dcc=gcc -Dprefix=/usr/local/perl -Dcf_by=Martin Fischer -


Die von Martin Fischer ist wohl auch ohne thread support kompiliert :-(

Hm besteht da noch eine Chance für mich auf eine Perl Version die das unterstützt für meine NAS (DS212J)?
Titel: Aw: Sonos steuern
Beitrag von: bapou am 04 Mai 2013, 14:34:32
Hallo,

ich bin nicht sicher ob es mit dem SONOS Modul zusammen haengt, aber es ungefaehr seit der
SONOS Installation (und gleichzeitigem Umstieg auf raspberry pi) habe ich folgendes Problem.

Wenn ich rereadcfg ausfuehre, oder fhem.cfg im Webinterface editiere und dann Save fhem.cfg klicke,
stuerzt fhem ab.
Der Grund dafuer; er will Ports oeffnen die schon offen sind. In der log Datei ist dies ersichtlich:

telnetPort: Can't open server port at 7072: Address already in use. Exiting.

Habt Ihr das gleiche Problem? Ich will gerne nur ausschliessen, dass es an dem SONOS Modul haengt.

Herzlicher Gruss,
Thom
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 06 Mai 2013, 09:13:57
Hi Thom,

sorry für die späte Rückmeldung, bin gerade etwas im Stress...

Also, ich habe das gerade mal geprüft. Ich habe das Phänomen auch; wenn ich Sonos wieder rausnehme läuft es normal.
Es liegt also (mindestens) an dem Modul.

Ich muss mir das nochmal anschauen, ob ich eine Möglichkeit habe, das irgendwie zu verhindern. Bis vor kurzem ging das, meiner Meinung nach, nämlich noch. Es kann also auch ein Seiteneffekt im Zusammenhang mit einem anderen Modul sein. Threads sind in dieser Hinsicht in Perl leider nicht gut umgesetzt.

Ich weiss, das hilft jetzt nicht wirklich weiter.
Bei mir habe ich diese "rereadcfg"-Problematik allgemein umgangen, indem ich in der Hauptdatei nur noch include-Anweisungen stehen habe, die ich sehr selten ändern muss. Wenn ich diese dann mal ändern muss, dann tue ich das auf der Konsole der Maschine, und Restarte Fhem dann (ich habe einen Menüpunkt dazu auf der Fhem-Oberfläche angelegt).
Eine Änderung in einer der includierten Dateien ist dann auch über das Webinterface Problemfrei, da kein automatischer Rereadcfg ausgeführt wird.

Grüße Reiner
Titel: Aw: Sonos steuern
Beitrag von: bapou am 08 Mai 2013, 09:08:25
Hallo Reiner,

danke fuer die schnelle Rückmeldung. Ich kann mit dem Problem leben.  
Wo hängt es bezüglich der Idee die Weckzeit auszulesen? An deiner Zeit oder an einem speziellen technischen Problem?
Aber auch hier; mache Dir keinen Stress, es ist toll, dass Sonos schon so gut funktioniert.

Gruss,
Thom
Titel: Aw: Sonos steuern
Beitrag von: mullischlumpf am 12 Mai 2013, 15:38:06
Ich habe es leider bislang über FHEM noch nicht geschafft mit meiner Synology NAS den Sonos direkt zu steuern.

Da ich mir aber selbst eine kleine Website zum Steuern meiner Geräte gebaut habe, bin ich auf eine Möglichkeit gestoßen, wie man seine Sonos-Lautsprecher entweder über ein Webinterface oder aber über die Commandline steuern kann.
Ich wollte euch hier mal das Projekt zeigen, das unter anderem ein Beispiel für ein Webinterface und eine Commandline Steuerung programmiert hat.

https://github.com/rahims/SoCo (http://github.com/rahims/SoCo)

Das Webinterface will bei mir leider auch nicht laufen aber ich habe jetzt zumindest die Commandline Steuerung zum Laufen bekommen. Dadurch kann ich nun per Skript  meine Sonosgeräte ansprechen und die entsprechenden Kommandos ausführen (play, pause, next ...). Das Skript wiederum rufe ich durch Klicks auf meiner Website auf.   Etwas umständlicher aber es funktioniert :-)

Gruß
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 12 Mai 2013, 16:22:26
Hi,

der Nachteil dieser Lösung liegt ja darin, dass keine Events bei Änderungen am Player erzeugt werden (Titelaktualisierungen usw...).

Das Steuern über die bekannte IP des Players geht auch viel direkter.
Man kann sich selber ein SOAP-Paket zusammenschrauben, und an die bekannte(!) IP versenden. Dann macht der Player das auch.
Das Problem ist immer der Discovery-Prozess und das Reagieren auf UPnP-Events. Dafür muss man sich verrenken und diverse Libraries und Threads verwenden...

Sehr schön ist dieses Thread-Notify-freie steuern im PHPSonos-Skript zu erkennen.
Ich habe dazu mal auch eine Erweiterung entwickelt, die auch auf Events reagieren kann: http://www.ip-symcon.de/forum/threads/7676-PHP-Sonos-(Klasse-zum-Ansteuern-einzelner-Player)/page23 (http://www.ip-symcon.de/forum/threads/7676-PHP-Sonos-(Klasse-zum-Ansteuern-einzelner-Player)/page23)
Dazu muss allerdings PHP lauffähig sein, und die PHP-Erweiterung GUPNP installiert sein. Aber vielleicht ist das für manche ausreichend, bzw. wegen vorhandener PHP-Server besser als die FHEM-Variante...

Wenn man mal sehen möchte, welche Informationen der Player so bereitstellt, kann man über die Web-Oberfläche des Players gehen.
Dazu z.B.: http://192.168.0.36:1400/status (http://192.168.0.36:1400/status) aufrufen (IP natürlich anpassen).
Damit kann man aber nix steuern, das ist nur für Informationen da.

Also, u.U. ist das eine Möglichkeit für die Personen, bei denen Perl nicht mit Threads läuft.
Ich hatte meine PHP-Version ursprünglich zum Steuern meines Verstärkers durch Fhem verwendet. Da hatte sich das PHP-Skript dann mit Fhem verbunden, und einen Trigger ausgelöst, wenn der Player auf PLAYING oder PAUSED_PLAYBACK oder STOPPED gegangen ist.

Wegen der fehlenden Titelinfos ihm Fhem und allgemeiner Unbequemlichkeit hatte ich ja damals das Sonos-Modul für Fhem begonnen :-)

Grüße Reiner
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 14 Mai 2013, 20:43:54
Hi Thom,

soo, ich bin schon ziemlich weit, und muss Hauptsächlich noch dokumentieren.

Was nun drin ist:
- Man kann einen Alarm-Listener anmelden, der für eine automatische Aktualisierung der Alarm- und DailyIndexRefreshTime-Readings sorgt.
- Man kann Alarme anlegen, verändern und löschen
- Man kann den Sleeptimer mit einer beliebigen Zeit starten und natürlich auch wieder deaktivieren

Durch die Menge der Informationen, die zum Anlegen eines Alarms notwendig sind, ist das im Normalfall ein nicht zu empfehlender Weg, wenngleich er natürlich möglich ist.
Viel besser ist es, einen Alarm im Controller anzulegen, und diesen immer wieder nur anzupassen (neuer Tag, einfach wieder aktivieren o.ä.), da dafür nur die zu ändernden Informationen angegeben werden müssen...

Kannst du mir bitte noch mal kurz deinen Use-Case schreiben, also was du am liebsten mit Fhem und Sonos da machen möchtest?
Dann kann ich das hier mal gegenprüfen, und u.U. die Beispiele dahingehend aufbauen...

Grüße Reiner
Titel: Aw: Sonos steuern
Beitrag von: snoop am 16 Mai 2013, 23:30:38
Hallo Reiner,
gibt es eine Möglichkeit zwei Player per Kommando zu gruppieren?
Ich habe bisher nichts dazu gelesen.
Danke.
Viele Grüße
Arthur
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 17 Mai 2013, 00:16:25
Hi Arthur,

das kannst du auch nicht :-) Es geht einfach noch nicht...

Der Grund liegt einfach daran, dass ich bislang nur einen Player habe, und deswegen das Verhalten von mehreren Playern aus Sicht der Programmierung nicht beurteilen kann...
Dieser Zustand wird aber nun sicher im Laufe des nächsten Monats geändert. Die Budget-/Notwendigkeitsverhandlungen mit meiner Frau sind durch :-)

Wenn du dich in diesem Punkt also noch etwas gedulden kannst... es kommt auf jeden Fall...

Grüße Reiner
Titel: Aw: Sonos steuern
Beitrag von: snoop am 17 Mai 2013, 00:23:55
Hallo Reiner,

klar, kein Problem.
Danke und bis demnächst.

Viele Grüße
Arthur
Titel: Aw: Sonos steuern
Beitrag von: bapou am 18 Mai 2013, 16:59:04
Hallo Reiner,

entschuldige die spaete Rueckmeldung.

Der Anwendungsfall ist einfach. Ich lasse mich wecken durch SONOS im Schlafzimmer; Nur ein Wecker
an einem Sonos Geraet. Eingestellt wird der Wecker ueber das Iphone SONOS Interface abends.

Nun soll FHEM die Weckzeit auslesen; entweder automatisch wenn diese veraendert wurde, oder falls technisch
zu kompliziert,  zu einer festen Zeit; z.B. 4 Uhr am Morgen.
Damit kann FHEM vor der SONOS Weckzeit entsprechend die Heizung, Kaffemaschine etc. anschalten.

Eventuell, falls das ganze zuverlaessig ist, soll FHEM auch nachts die SONOS Geraete ausschalten und am Morgen
rechtzeitig einschalten um Energie zu sparen. Nur hier bin ich noch nicht sicher ob ich mich auf FHEM + FS20 Schalter verlassen soll, auch wenn man natuerlich das FS20 Kommando ein paar Mal senden koennte.

D.h. nur die Weckzeit von einem Wecker (z.B. dem ersten) auslesen reicht fuer meine Anwendung

Herzlichen Dank,
Thom

Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 18 Mai 2013, 19:15:32
Hi Thom,

ok, das klingt einfach. Meine Implementierung erzeugt bei jeder Änderung eines Alarms für einen Player an diesem ein Event.
Das bedeutet, du kannst einfach mit einem Notify darauf reagieren.

Das Problem ist, das der Code für dein Notify etwas komplizierter werden dürfte. Ich musste ja schließlich auf die Begebenheiten von Sonos Rücksicht nehmen :-)
Soll heißen, dass du immer denselben Alarm verwenden solltest, denn du da einstellst. Dann bleibt die interne ID gleich, und du kannst schon mal in deinem Notify direkt auf den passenden Alarm zugreifen.

In Fhem sind die Alarme als Hashes von Hashes im Reading (also in einem Hash:-) abgelegt, also z.b. mit:SONOS_Stringify(ReadingsVal("Sonos_Wohnzimmer", "AlarmList", 0))
Kannst du dir folgenden Hash ermitteln:{27 => {Recurrence_Thursday => 1, IncludeLinkedZones => 0, Volume => 35, Shuffle => 0, Recurrence_Wednesday => 1, ProgramURI => x-rincon-buzzer:0, Repeat => 0, Recurrence_Once => 0, StartTime => 00:00:00, Duration => 00:15:00, Recurrence_Sunday => 0, Enabled => 0, Recurrence_Friday => 1, Recurrence_Saturday => 0, Recurrence_Tuesday => 1, RoomUUID => RINCON_000E5828D0F401400, ProgramMetaData => , Recurrence_Monday => 0}, 3 => {Recurrence_Thursday => 0, IncludeLinkedZones => 0, Volume => 25, Shuffle => 1, Recurrence_Wednesday => 0, ProgramURI => x-sonosapi-stream:s78371?sid=254&flags=32, Repeat => 0, Recurrence_Once => 1, StartTime => 14:58:00, Duration => 00:15:00, Recurrence_Sunday => 0, Enabled => 0, Recurrence_Friday => 0, Recurrence_Saturday => 0, Recurrence_Tuesday => 0, RoomUUID => RINCON_000E5828D0F401400, ProgramMetaData => <DIDL-Lite xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:upnp="urn:schemas-upnp-org:metadata-1-0/upnp/" xmlns:r="urn:schemas-rinconnetworks-com:metadata-1-0/" xmlns="urn:schemas-upnp-org:metadata-1-0/DIDL-Lite/"><item id="R:0/0/11" parentID="R:0/0" restricted="true"><dc:title>RADIO fresh80s</dc:title><upnp:class>object.item.audioItem.audioBroadcast</upnp:class><desc id="cdudn" nameSpace="urn:schemas-rinconnetworks-com:metadata-1-0/">SA_RINCON65031_</desc></item></DIDL-Lite>, Recurrence_Monday => 0}}Dabei ist SONOS_Stringify nur eine Hilfsmethode, um den Inhalt von Hashes auszugeben. Das benötigst du dann natürlich nicht in deinem Notify...

Wenn du da mal reinschaust, siehst du, dass die Hauptschlüssel die IDs der Alarme sind. Diese kannst du auch als Vereinfachung aus dem ReadingReadingsVal("Sonos_Wohnzimmer", "AlarmListIDs", 0) auslesen:3,27
Das sieht jetzt erstmal wüst aus, ist aber relativ simpel gestrickt. Es sind halt alle Informationen vorhanden...

Ich teste den Code noch ein bißchen bei mir in der Produktivumgebung, und veröffentliche ihn dann. Die Doku im Wiki ist schon mal angepasst...

Zu deiner Konstellation: Ich persönlich würde mich *nicht* auf FS20 verlassen. Da geht mir einfach zu viel verloren... Aber das solltest du mal Testen...

Grüße Reiner
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 23 Mai 2013, 12:09:11
Hallo zusammen,

sooo, das ganze ist bei mir auf dem Produktiv-System eine Weile ohne besondere Vorkommnisse gelaufen, sodass ich den Code hier nun veröffentliche.

Was ist drin:Die Dokumentation im Wiki ist angepasst und liefert auch Hinweise auf das Format des Alarm-Hashs.

Wie immer komplett, obwohl sich nur die beiden Fhem-Moduldateien geändert haben...
Viel Spaß mit den neuen Möglichkeiten, als nächstes werden wohl die Zonengruppierungen drankommen :-)

Grüße Reiner
Titel: Aw: Sonos steuern
Beitrag von: snoop am 24 Mai 2013, 23:04:11
Hallo Reiner,

beim Einspielen der neuen Version mit anschließendem Reload erscheint folgende Meldung:

Not enough arguments for main::SONOS_getDeviceDefHash at ./FHEM/00_SONOS.pm line 1024, near "()"
Not enough arguments for main::SONOS_getDeviceDefHash at ./FHEM/00_SONOS.pm line 1030, near "()"
Not enough arguments for main::SONOS_getDeviceDefHash at ./FHEM/00_SONOS.pm line 1031, near "()"
BEGIN not safe after errors--compilation aborted at ./FHEM/00_SONOS.pm line 1048.

Eine Idee was schief läuft?
Benötigst du Logs?

Viele Grüße
Arthur
Titel: Aw: Sonos steuern
Beitrag von: det. am 24 Mai 2013, 23:43:38
Hallo Reiner,
bin auch wieder auf die Version vorher zurück - FHEM lief zwar noch, aber der Zugriff auf web war nicht mehr da und das ging nur mit Neustart RPI zu beheben.
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 26 Mai 2013, 18:06:53
Hallo Arthur, hallo Detlev,

komische Sache. Leider ist die Fehlermeldung nicht ganz so aussagekräftig. Das, was da angemäkelt wird, gibt es an anderen Stellen auch noch, und das auch schon seit der ersten Version. Außerdem scheint Detlev diese Meldung ja nicht zu haben (ich auch nicht).
Ich werde das aber trotzdem mal umstellen, und dort immer einen Parameter übergeben. Damit ist diese Meldung weg, ich bezweifele aber, das es das eigentlich Problem beseitigt...
Die Ausstiegsmeldung ist übrigens eine Zeile, wo ein Eval-Block geöffnet wird. Das sollte eigentlich auch kein Problem sein :-)
Da bin ich also etwas überfragt... Wie sieht denn die Umgebung aus? Plattform? Perl-Version? Irgendwelche Besonderheiten?
Ich gehe mal davon aus, dass deine Ausgabe auf der Konsole (nicht im Fhem-Log) aufgetreten ist, oder? Gibt es denn überhaupt Enträge im Fhem-Log zu dem Start? Wenn ja, dann poste die doch mal bitte hier...

Detlev, kannst du mir einen Logauszug zukommen lassen, was er noch macht, und wo er dann aussteigt?
Ich habe z.B. seit einem der letzten Updates Probleme mit meinen Onewire Komponenten. Da wird blockierend auf etwas gewartet, was auch nicht mit einem einfachen Fhem-Neustart (auf der Debian-Konsole, da die Fhem-Oberfläche ja nicht mehr reagiert) behoben werden kann. Da muss ich auch einen RPi-Neustart machen... Ein Abschalten von Sonos hatte bei mir keine Verbesserung gebracht...

We sieht das denn bei den anderen aus? Gibt es dort ähnliche Probleme?
Bei mir läuft es wie gesagt seit eine Woche normal durch...

Danke schon mal,
Grüße Reiner
Titel: Aw: Sonos steuern
Beitrag von: det. am 26 Mai 2013, 23:34:46
Hallo Reiner,
sorry, es gibt beim Abschied keinerlei Log Einträge - also nicht sehr hilfreich. Zum zweiten Übel läuft auf meinem RPI nichts weiter als Dein SONOS Modul mit den paar Code Zeilen zum mute bei Telefongespräch (Callmonitor auf FB über FHEM2 FHEM ) und der Dummy Aufruf zum Radio start für SONOS. Die Betriebssystem Umgebung - mehrfach verwendet auf insg. 3 RPI habe ich immer geupdatet und wenn erforderlich was nachinstalliert - d.h. keine Ahnung welche Bibliotheken da inzwischen alle drauf sind.
Wie im letzten Post schon geschrieben, mit dem Vorletzten Stand Deiner Module funktioniert es prima, außer das das SONOS. absolut nicht erkennt, wenn der Player wegen Strom ausgeschaltet nicht mehr verfügbar ist. Aber das habe ich inzwischen akzeptiert und aufgegeben.... - Loglevel beim Call Aufruf angepasst - so kommen da keine Einträge mehr - weiter stört es nicht.
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 26 Mai 2013, 23:46:23
Hi Detlev,

OK, dann müsstest du auf der Maschine mal den Loglevel auf 5 stellen, und vor dem Start vielleicht das Log mal leermachen, damit es nicht zu viele Zeilen sind.
Irgendwas muss das Modul ja tun :-) Und dann sollte es eigentlich auch verraten, wo er gerade dran hängt...
Ich habe natürlich noch ein paar kleinere, interne Bugfixings betrieben, die durchaus zu Seiteneffekten führen können. Ich bin mit meiner Umgebung ja schließlich nicht der Maßstab :-)

Also danke schon mal für die Unterstützung, wenn du dir die Mühe machst, und das Log erzeugst und hier postest.

Zu deinem Zoneplayer-Aus-Erkennen: Hast du schon mal versucht, den pingType auf "icmp" umzustellen? Oder geht das bei dir wegen fehlender Root-Rechte für Fhem nicht?

Grüße Reiner
Titel: Aw: Sonos steuern
Beitrag von: det. am 27 Mai 2013, 20:37:11
Hallo Reiner,

das mit dem Loglevel mach ich gern - wird aber erst im Laufe der Woche - SONOS steht in der Stube (ist besetzt) und ich sitze im Büro.
Wenn Du mir verrätst, wie ich FHEM auf dem RPI mit root Rechten laufen lassen kann, versuche ich das mit pingType auf "icmp" gern. Bisher ist mir das mit meinem rudimentären Linux Verständnis leider nicht gelungen.
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 27 Mai 2013, 20:57:53
Hi Detlev,

mit dem Log lass dir ruhig Zeit, ich bin die nächsten Tage erstmal berufsmäßig ausser Haus...

Zu den Root-Rechten:
Manuell ist das ganz einfach. Dazu brauchst du das Skript nur mittels "sudo" zu starten.
Also, wenn du im Fhem-Verzeichnis bist, dannsudo perl fhem.pl fhem.cfgeingeben (natürlich musst du vermutlich den Pfad zu deiner Config-Datei anpassen).
Damit läuft Fhem dann unter dem Benutzerkontext root...

Wenn du das dauerhaft unter Root starten möchtest (also das Startskript anpassen möchtest) müsstest du dieses hier kurz posten, da es dort viele Varianten gibt, das Skript als Nicht-Root zu starten (im Normalfall startet ein solches Startskript den Dienst erstmal unter root, es sei denn man sorgt dafür, dass das nicht so ist...)
Bei mir steht im Startskript z.B. nur folgendes:#! /bin/sh
# Copyright (c) 2011 Wolfram Plettscher
# All rights reserved
#
# Author: Wolfram Plettscher, 2011
#
# /etc/init.d/fhem
#
### BEGIN INIT INFO
# Provides: fhem
# Required-Start: ssh
# Required-Stop: ssh
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: starts FHEM house automation server
# Description: during start it also reconfigures /dev/ttyACM0 to rwrwrw rights
# (this is hardcoded for busware CUL device)
# Last maintained for SuSE 11.4
#
# Installation:
# - copy this file to /etc/init.d
# - chmod 744 /etc/init.d/fhem
# - ln -s /etc/init.d/fhem /sbin/fhem
# - enable and edit in YAST system services
### END INIT INFO

case "$1" in
start)
echo "Start $0"
/etc/fhem/fhem/fhem.pl /etc/fhem/config/fhem.cfg > /var/log/fhem 2> /var/log/fhem &
;;
stop)
echo "Stop $0"
/etc/fhem/fhem/fhem.pl 7072 shutdown
;;
status)
cnt=`ps -ef | grep "fhem.pl" | grep -v grep | wc -l`
if [ "$cnt" -eq "0" ] ; then
echo "$0 is not running"
else
echo "$0 is running"
fi
;;
*)
echo "Usage: $0 {start|stop|status}"
exit 1
esac
exit 0
Die Grundlage stammt, glaube ich, aus dem Wiki. Nur mal so als Vorlage zum abschauen...

Grüße Reiner
Titel: Aw: Sonos steuern
Beitrag von: FHEM-Freak am 01 Juni 2013, 19:24:59
Hallo,

Bin gerade dabei den Sonos Play3 in mein FHEM einzubinden.
Mein Problem ist der Qnap, da Perl am Qnap keine Threads unterstützt.
Fehler "This Perl not built to support threads"
Mal schauen ob ich mir ein Perl am Qnap selbst kompilieren kann.
Werde mich melden falls ich weiterkomme.
Titel: Aw: Sonos steuern
Beitrag von: det. am 01 Juni 2013, 23:03:48
hallo,
kauf Dir einen RPI, nimm den nur für SONOS und häng den über FHEM2FHEM an das FHEM auf dem Qnap. Hast Du weniger Probleme und schnelleren Erfolg.
Titel: Aw: Sonos steuern
Beitrag von: FHEM-Freak am 02 Juni 2013, 09:15:30
Danke für den Tipp.
Das ist Variante 2, möchte aber vorerst beim Qnap bleiben.
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 23 Juni 2013, 22:34:49
Hallo zusammen,

ich wollte mal eine kurze Zwischenmeldung geben, da es hier doch etwas ruhiger wurde.

Also, ich habe nun meine Sonos Landschaft um 2 Player erweitert, und kann die Stillstände bei dem Sonos-Modul leider auch bestätigen. Leider habe ich aber noch keine Lösung, vermute aber ein Problem bei der massenhaften Verarbeitung der Titel und sonstiger Aktualisierungsinformationen. Das muss ja alles über die Telnet-Schnittstelle verarbeitet werden...
Ich werde da also in nächster Zeit (nach meinem Urlaub) tiefer in die Analyse einsteigen, und hoffentlich das Problem eingrenzen können.

Desweiteren steht ja auch die Einbindung der Zonenverwaltung auf dem Plan....

Also, soweit erstmal einen schönen Sommeranfang und bis demnächst.

Grüße Reiner
Titel: Aw: Sonos steuern
Beitrag von: snoop am 26 Juni 2013, 22:23:21
Hallo Reiner,
Weiß garnicht hmmm "Herzlichen Glückwunsch zum 2nd Sonos Player".... ;o)
Sag doch mal bitte was es den geworden ist? Hintergrund: Der Player 5 besitzt ja einen line Out den ich auch sehr oft benutze = TV dran und somit auch gesteigertes Interesse.
Ferner finde ich es Super, dass es zum Thema "Zonen" bald etwas möglich sei wird.
Aber mach doch erst mal Urlaub und bis demnächst.
Viele Grüße
Arthur
P.S: ...danke für den Zwischenstatus/Info.

Titel: Aw: Sonos steuern
Beitrag von: fhainz am 06 Juli 2013, 13:22:06
Hallo!

Ich hab gerade Versucht das Modul einzubinden.

In der fhem.cfg hab ich define Sonos SONOS reingeschrieben und gespeichert. Kurz darauf wurde mir auch schon mein Sonos S5 und der Raum Sonos angelegt. Im Web Frontent hab ich dann auf Save config geklickt. Als ich mir aber die fhem.cfg angesehen hab und nochmals auf speichern geklickt hatte kam im Safari die Fehlermeldung "Safari kann keine Verbindung zum Server herstellen". Anschließend kann ich fhem nicht mehr aufrufen. Da hilft nur mehr ein sudo reboot.
Dann muss ich alles was an sonos erinnert aus der .cfg löschen damit ich wieder normal speichern kann.
FHEM ist up-to-date

Kann mir jemand helfen?

Grüße
Titel: Aw: Sonos steuern
Beitrag von: det. am 06 Juli 2013, 16:18:11
Hallo,

Hatte auch solche Probleme, Reinerlein hat mir da geholfen:
define Sonos SONOS
attr Sonos pingType icmp

dabei sollte FHEM dringend unter User root laufen, erreichst Du durch Eingabe in putty:
sudo usermod -l fhemuser fhem
und dann solltest Du sehen, das Du die letzte Version von SONOS hier aus dem Forum erwischt hast.
Da das ganze recht fragil ist, ist es auch noch eine gute Idee, SONOS auf einem eigenen RPI laufen zu lassen und mit FHEM2FHEM an dein Produktivsystem zu koppeln
Titel: Aw: Sonos steuern
Beitrag von: fhainz am 06 Juli 2013, 16:56:19
Ok danke ich werde das mal versuchen.
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 07 Juli 2013, 09:31:36
Hi,

wollte mich kurz aus dem Urlaub auch dazu melden.

Das Modul hat ein Riesenproblem mit dem Befehl 'rereadcfg' von Fhem. Das aber wird implizit von save ausgeführt.
Das war wohl der Grund, warum Fhem nach dem Speichern nicht mehr erreichbar war...

ich habe mir schon einige Gedanken um eine Neustrukturierung gemacht. Wenn das dann alles so läuft, wie ich mir das vorstelle, dann sollten diese Probleme auch beseitigt sein :-)
Aber auf dem Weg dahin liegt natürlich noch die ganze Realität der Entwicklung :-)

Das Ganze dauert aber noch ein bißchen, ich geniesse gerade das Super-Sommer-Sonnenwetter in Südfrankreich...

Grüße Reiner
Titel: Aw: Sonos steuern
Beitrag von: PumpkinEater am 09 Juli 2013, 14:45:48
Hallo zusammen,
da ich seit einigen Tagen zwei Play:3 und eine Bridge habe, sollen diese nun schnell in fhem eingebunden werden. Sieht soweit auch schon ganz gut aus. Was mich stört, sind die folgender Fehlermeldungen, die nach dem Start (und bislang nur dann) auftreten:

Use of uninitialized value in string eq at /usr/local/fhem/fhem.pl line 2142.
Use of uninitialized value $d in hash element at /usr/local/fhem/fhem.pl line 2821.
Use of uninitialized value $dev in hash element at /usr/local/fhem/fhem.pl line 2318.

Auch wenn diese Fehler auf die eigentliche Funktion scheinbar keinen Einfluss haben, würde ich die Meldungen gerne abstellen. Die Meldungen kommen sowohl auf meinem Raspberry als auch auf einer normalen Ubuntu-Maschine (installiert sind jeweils fhem-5.4 und die neusten Sonos-Module). Habt Ihr eine Idee, was dort schieftläuft?

Gruß
Peter
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 09 Juli 2013, 18:48:10
Hi Peter,

ich habe mir die Zeilen mal angesehen. Das sieht eher unspezifisch aus. Bist du sicher, dass es nur zusammen mit dem Sonos-Modul zu dem Fehler kommt?

Sonst als allgemeine Vorgehensweise, erstmal mit 0 Modulen anfangen, und dann langsam steigern, bis der Fehler wieder auftritt :-)

Grüße Reiner
Titel: Aw: Sonos steuern
Beitrag von: PumpkinEater am 09 Juli 2013, 19:37:22
Hallo Reiner,
die Meldungen tauchen nur auf, wenn ich die Sonos-Konfiguration in der fhem.cfg aktiviert habe. Ich werde alternativ noch mal eine Mini-fhem.cfg erstellen, in der nur die Sonos-Anteile enthalten sind.

Ansonsten funktionieren die Sonos-Module schon ganz gut, ich werde sie hauptsächlich für Sprachmeldungen nutzen. Ich hatte schon viel Spaß, als mir die Google-Tante so allerlei Blödsinn vorlesen musste ;-). Aufgefallen ist mir, dass nach etlichen Sprachansagen plötzlich Schluss war. Fhem meldete zwar weiterhin "Success", es gab aber keine Sprachausgabe mehr. Hat Google neben der Begrenzung auf 100 Zeichen auch eine obere Grenze bzgl. der Requests pro Zeit?

Auf jeden Fall schon mal vielen Dank für Deine Arbeit - Hut ab :-)

Gruß
Peter
Titel: Aw: Sonos steuern
Beitrag von: PumpkinEater am 09 Juli 2013, 20:32:04
ich noch mal ...

Eine Mini-fhem.cfg nur mit dem SONOS-Dingen produziert auch die Fehlermeldung. Es reicht sogar nur die Zeile "define Sonos SONOS".

Ich habe mal versucht, die Meldung betreffend Zeile 2142 in fhem.pl zu debuggen:

In fhem.pl (Zeile 2142) habe ich ein "Log 1, .." eingefügt:

sub
RemoveInternalTimer($)
{
  my ($arg) = @_;
  foreach my $a (keys %intAt) {
Log 1, ">>>>".$a."<<<<   >>>>".$arg."<<<< >>>>>".$intAt{$a}{ARG}."<<<<<";
    delete($intAt{$a}) if($intAt{$a}{ARG} eq $arg);
  }
}

Dies liefert dann:

>>>>2<<<<   >>>>RINCON_000E5********1400_MR<<<< >>>>>RINCON_000E5********1400_MR<<<<<
>>>>4<<<<   >>>>RINCON_000E5********1400_MR<<<< >>>>>RINCON_000E5********1400_MR<<<<<
>>>>3<<<<   >>>>RINCON_000E5********1400_MR<<<< >>>>><<<<<
>>>>0<<<<   >>>>RINCON_000E5********1400_MR<<<< >>>>>0<<<<<
>>>>2<<<<   >>>>RINCON_000E5********1400_MR<<<< >>>>>RINCON_000E5********1400_MR<<<<<
>>>>5<<<<   >>>>RINCON_000E5********1400_MR<<<< >>>>>HASH(0x3c6**e0)<<<<<
>>>>6<<<<   >>>>RINCON_000E5********1400_MR<<<< >>>>>RINCON_000E5********1400_MR<<<<<


Der Ausdruck "$intAt{$a}{ARG}" ist also mnachmal leer, dann kommt die Fehlermeldung. Was beuetet das "{ARG}"?

Gruß
Peter
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 10 Juli 2013, 00:03:21
Hi Peter,

bzgl. der Fehlermeldung muss ich schauen, wenn ich wieder an einem Rechner sitze. Momentan kann ich das von hier aus nicht untersuchen...
Das scheint aber eine Anpassung im Konzept der internen Timer zu sein, die ich in meinem Modul entsprechend nachziehen muss. Kann ich aber noch nicht genau sagen...

Zu den Durchsagen:
Wenn Google nichts mehr liefert, dann sollte von dort eigentlich ein Fehlercode zurückkommen (sowas wie bei einer zulangen Nachricht, dort kommt dann ein 404er Fehler oder so). Du könntest mal checken, ob die Dateien immer noch sauber abgelegt werden..
Außerdem könnte ich mir wieder mal ein Problem bei den Threads vorstellen. Für jede dieser Durchsagen starte ich einen davon, der dann die Überwachung übernimmt, ob die Durchsage fertig ist, und den Ur-Zustand anschließend wiederherstellt. Das müsste man per Top beobachten können...

Ich denke da kommt erst Abhilfe mit meiner kompletten Umstrukturierung. Da versuche ich das anders zu trennen... mal schauen, ob das so klappt...

Grüße Reiner
Titel: Aw: Sonos steuern
Beitrag von: PumpkinEater am 10 Juli 2013, 06:40:30
Hallo Reiner,
die Soundfiles werden immer erzeugt - also keine Google-Begrenzung, sondern wie Du schon erwähnt hast, vermutlich ein Problem mit den Threads. Wenn keine Sprachausgaben mehr kommen, hilft meistens ein Restart von fhem. Ich werde mal auf Deine Umstrukturierung warten.

Gruß
Peter
Titel: Aw: Sonos steuern
Beitrag von: FHEM-Freak am 13 August 2013, 10:00:05
Zitat von: FHEM-Freak schrieb am Sa, 01 Juni 2013 19:24
Hallo,

Bin gerade dabei den Sonos Play3 in mein FHEM einzubinden.
Mein Problem ist der Qnap, da Perl am Qnap keine Threads unterstützt.
Fehler "This Perl not built to support threads"
Mal schauen ob ich mir ein Perl am Qnap selbst kompilieren kann.
Werde mich melden falls ich weiterkomme.

Zitat von: det. schrieb am Sa, 01 Juni 2013 23:03
hallo,
kauf Dir einen RPI, nimm den nur für SONOS und häng den über FHEM2FHEM an das FHEM auf dem Qnap. Hast Du weniger Probleme und schnelleren Erfolg.


Habe die Sache mit dem Qnap aufgegeben.
Bin komplett mit Fhem auf einen RPI umgezogen.

Sonos Play 3 läuft perfekt.
Tolle Arbeit des Entwicklers.
Danke dafür.

Einzige Problem ist das editieren der fhem.cfg wie hier beschrieben.
Link (http://forum.fhem.de/index.php?topic=10033.msg76231#msg76231)

Gibt es dafür schon eine Lösung ?
Titel: Aw: Sonos steuern
Beitrag von: m.zielinski am 13 August 2013, 10:41:07
Zitat von: Reinerlein schrieb am So, 23 Juni 2013 22:34

Also, ich habe nun meine Sonos Landschaft um 2 Player erweitert, und kann die Stillstände bei dem Sonos-Modul leider auch bestätigen. Leider habe ich aber noch keine Lösung, vermute aber ein Problem bei der massenhaften Verarbeitung der Titel und sonstiger Aktualisierungsinformationen. Das muss ja alles über die Telnet-Schnittstelle verarbeitet werden...
Ich werde da also in nächster Zeit (nach meinem Urlaub) tiefer in die Analyse einsteigen, und hoffentlich das Problem eingrenzen können.


Hallo Reiner,

Gibt es schon ein Update zu dem Thema?

Ich habe deswegen erstmal die Sonos unterstützung bei mir wieder ganz raus genommen, da mir mehrmals das ganze fhem eingefroren war.
Aber mir wäre es sehr wichtig zumindest eines der Sonos Geräte zu steuern (play, pause, Lautstärke und Song/Playlistauswahl) - die Benachrichtigungs-Funktionen sind mir erst mal zweitrangig dabei.

Ich möchte einen FHem-6fach Schalter als Steuerung für ein Sonos im Kinderzimmer nutzen - meine Tochter soll dafür aber kein Handy/Tablet o.ä. bekommen.. Und da baue ich auf dein Modul...

Gruß,
Michael
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 13 August 2013, 18:07:38
Hi Michael,

ich bin dabei, da das ganze aber eine doch erhebliche Konzept-Anpassung ist, bin ich da noch etwas beschäftigt.

Ich muss dich (und natürlich auch die anderen hier) also leider noch etwas vertrösten, aber immerhin ist der Sommer bald vorbei, sodass ich allg. mehr Zeit haben werde, an diesem Modul weiterzustricken :-)

Grüße Reiner
Titel: Aw: Sonos steuern
Beitrag von: Elektrolurch am 16 August 2013, 15:48:24
Hallo Rainer,

erst einmal: tolles Projekt.
Leider fahre ich seit ca. zwei Monaten fhem auf meiner FB7390 und bin kräftig beim entwickeln.
Leider scheint ja das sonos-Modul dort nicht zu laufen.
Ich hätte gerne etwas ganz einfaches: Ich möchte einen Sound auf einem der Sonos-Player im Haus abspielen, z.B. Sirene oder Hundegebell.
So etwas müsste doch auch ohne das Multithreading gehen?
Ich bin mit dem UPNP  Thema nicht so bewandert, dass ich das programmieren könnte. Die Sonos-Player haben bei mir im Netzwerk feste Adressen.
Kannst Du mir da ev. Mit einigen Tipps weiterhelfen?
Das wäre super. Leider habe ich dazu im Forum nichts gefunden. Das Thema UPNP wurde erst vor einigen Tagen hier im Forum wieder aufgenommen, da erschien es mir allerdings so, dass Dein Super-Sonos Projekt nicht bekannt war....
Also, schon mal Danke.

Elektrolurch


Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 16 August 2013, 17:23:24
Hallo Elektrolurch,

bevor ich das FHEM-Modul begonnen hatte, hatte ich ein bestehendes PHP-Modul etwas erweitert.

Finden kannst du das ganze unter http://www.ip-symcon.de/forum/threads/7676-PHP-Sonos-%28Klasse-zum-Ansteuern-einzelner-Player%29/page23 (http://www.ip-symcon.de/forum/threads/7676-PHP-Sonos-%28Klasse-zum-Ansteuern-einzelner-Player%29/page23) Artikel 221 und 222.
Das ist dann eine vereinfachte Nutzungsmöglichkeit für die dort sowieso veröffentlichte PHPSonos-Klasse. Dort kann man auch Titeländerungen mitbekommen (exemplarisch implementiert). Das hat mir damals mein FHEM getriggert, damit dieses meinen Verstärker zu dem Sonos-Player anschaltet.

Vielleicht reicht dir das ja erstmal.

Ansonsten kann ich dir nur zum Thema UPnP sagen, dass die Sonos Geräte sehr speziell in Bezug auf UPnP programmiert wurden. Mit einem normalen UPnP-Steuerprogramm wirst du die nicht vernünftig/einfach beeinflußen können, genauso wie andersherum mein Modul für andere, per UPnP steuerbare Geräte, nicht sinnvoll einsetzbar sein dürfte.

Desweiteren hat man bei UPnP immer das Thread-Problem. Nur kurz im Groben das Konzept dazu:
- Man registriert einen UPnP-Listener und fordert das Computer-Netz im Allgemeinen per Broadcast auf sich zu melden.
- Es melden sich die einzelnen Player, zu denen man dann jeweils eine Referenz erhält (und sich merkt).
- Mithilfe dieser Referenzen kann man die Player steuern, oder sich für weitere Events registrieren.
- Wenn man jetzt auf die Idee kommt, den Start-Listener zu beenden, hat man das Problem, dass die einzelnen Player-Referenz-Platzhalter nicht mehr funktionieren (bzw. ungültig werden).
- Wenn man jetzt also noch mit einer anderen Stelle der Software (z.B. FHEM o.ä.) was steuern möchte, bzw. die Ergebnisse auswerten möchte, dann kommt man um eben mind. einen weiteren Thread nicht drumherum.

Ich bin aber auf einem guten Wege, das Konzept jetzt sauber zu bekommen. Nur bin ich halt noch auf dem Weg :-)

Grüße Reiner
Titel: Aw: Sonos steuern
Beitrag von: crazystone am 19 August 2013, 20:58:03
Hallo Reinerlein,

ich hatte, wie von Elektrolurch erwähnt, kürzlich in der Wunschliste das Thema UPnP angesprochen, siehe

Link (http://forum.fhem.de/index.php?topic=14266.0)

da sich niemand erinnern konnte, dass schon mal jemand eine UPnP Steuerung angefangen hat. Jetzt lese ich hier hochgespannt, dass Du diese schon für einen SONOS umgesetzt hast? Oder habe ich da etwas falsch verstanden?

betateilchen hat sich der Sache angenommen und ich bin sicher, er kann einiges von Deinen Erfahrungen profitieren. Könntest Du Dich mit ihm in Verbindung setzen oder auch zu dem anderen Thread beitragen?

Vielen Dank!
Thorsten
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 19 August 2013, 23:14:49
Hallo Thorsten,

ich kann gerne bei Problemen hilfreich zur Seite stehen. Ich habe den von dir genannten Thread mal kurz durchflogen (ist ja zum Glück noch nicht soo lang :-).
Ich verwende die Perl-UPnP-Library http://perlupnp.sourceforge.net/ (http://perlupnp.sourceforge.net/). Die Entscheidung war gefallen, da die andere Library (http://search.cpan.org/~skonno/Net-UPnP-1.4.2/ (http://search.cpan.org/~skonno/Net-UPnP-1.4.2/)) in meinen Tests nicht so erfolgreich war.
Ich möchte hier aber bitte betonen, dass ich sehr speziell auf Sonos hin getestet und entwickelt habe, und es sicherlich andere gibt, die das auch anders hinbekommen können (wie immer, man kann einfach nicht alles, und hat bestimmte Vorlieben und Arbeitsverfahren :-). Besonders die Thematik Threads Ja oder Nein kann sehr kontrovers diskutiert werden. Ich finde sie gut, da sie das Leben im Normalfall einfacher machen :-)

Meine Erfahrung mit dem Sonos bestätigen die Aussagen, die allg. bzgl. UPnP gemacht wurden:
Es gibt einen Grundschatz an Fähigkeiten, und UPnP hilft da auch eine ganze Menge, da sich das System mittels dieses Standards selbst beschreiben kann, und somit keine weitere Schnittstellendokumentation notwendig wäre.
Das gilt aber nur für die Zugriffswege und Prozeduren (inkl. Parametern u.ä.); Allerdings nicht für die Inhalte der Parameter, die man den Aufrufen mitgeben muss (Die Prozedurnamen sind dagegen meist noch sehr sprechend). Dort wird es meiner Erfahrung nach bei den meisten Herstellern sehr speziell.

Ich bin mit meinem Sonos-Modul sehr weit fortgeschritten. Auch wenn ich gerade einen Konzeptwechsel durchführe, so gilt das eher der Thread-Problematik. Ich bekomme es einfach nicht sauber hin, Threads direkt aus FHEM heraus zu starten und auch wieder sauber einzufangen. Da scheint der große FHEM-Overhead, der beim Thread-Erzeugen ja immer mit kopiert wird, für Probleme zu sorgen.
Mein jetziges Konzept sieht eine Abkapselung der UPnP-Funktionalität in einen eigenen Prozess vor, wo dann auch wieder sauber mit Threads hantiert werden kann.
Das sieht schon ganz gut aus, ich muss aber noch einige Zeit investieren.
Mein Modul hat mittlerweile ca. 215kB Größe erreicht (ohne die notwendigen Zusatzmodule), und kann wirklich nicht mehr klein und harmlos genannt werden.

Aber zum Thema selbst nochmal:
Ich glaube, dass es schwierig werden wird, ein wirklich allgemeines Modul für "alle" UPnP-Clients/Server zu enwickeln. Es gibt für jedes Gerät einfach zu viele Besonderheiten, die extra berücksichtigt werden müssen.
Ich persönlich habe viele Stunden mit dem Intel Device Spy verbracht, und habe unzählige Aufrufe der Sonos-Prozeduren durchgeführt, bis ich endlich die korrekten Parameter in der korrekten Kodierung und der korrekten Reihenfolge raushatte. So manches habe ich mittels Wireshark in meinem Netz mitgeschnitten, wenn ich mit dem Original-Controller einen Aufruf durchgeführt habe.

Sicherlich, wenn man sich auf Play/Pause/Vorwärts/Rückwärts beschränkt, geht es meist. Aber schon bei der Lautstärke z.B. fährt Sonos seine eigene Locke; die per UPnP-AV vorgegebenen Prozeduren sind zwar da (müssen sie ja auch, um dem Standard zu entsprechen), haben aber keine Funktion. Das wird über andere Prozeduren durchgeführt, die eben nicht Bestandteil des -AV-Standards sind, sondern einfach zusätzlich definiert wurden.

Soweit erstmal. Bei Fragen einfach an mich :-)

Grüße Reiner
Titel: Aw: Sonos steuern
Beitrag von: crazystone am 20 August 2013, 07:04:28
Hallo Reiner,

Vielen Dank für Deine Bereitschaft zu helfen. Ich denke du bist schon genau auf dem Weg, den ich versucht habe anzuregen und ich fände es super, wenn du mit betateilchen in Kontakt treten würdest zu dem Stand den du schon hast. Leider kann man hier im Forum ja niemanden auf cc setzen :-)

Mir ging es genau darum, ein Modul zu haben, dass den UPnP Standard sauber implementiert und nur genau das abdeckt. Von der Erkennung der Geräte und Auflistung der Contents bis hin zu einfachen Control Point Funktionen ("spiele A auf B ab", Play, Pause, Stop). Wenn dann einige Geräte das nicht sauber implementieren, muss man schauen, ob man ggf. mit Zusatzmodulen speziell für diese Geräte diesem Zustand Rechnung tragen kann. Dafür wären dann sicher zusätzliche Customizing Funktionen hilfreich, mit denen Parameter oder Command Strings an das UPnP device gesendet werden können, eine Art Test und Entwicklungsumgebung für UPnP Integration.

Ich wäre dir schon sehr dankbar, wenn ich (und andere) die reine UPnP Standard Implementierung mal testen könnte, nicht mit der Erwartung, dass dann sofort alles funktioniert.

Kannst du mit deinem Modul schon sagen, welche Perl-Module erforderlich waren? Ich muss nämlich schauen, ob die auf der FB7390 alle drauf sind bzw. ggf. dann den Kampf mit dem AVM Support anfangen, dass die mal nachinstalliert werden, zumindest in einer Laborversion.

Viele Grüße
Thorsten
Titel: Aw: Sonos steuern
Beitrag von: betateilchen am 20 August 2013, 16:24:28
Zitat von: crazystone schrieb am Di, 20 August 2013 07:04
Kannst du mit deinem Modul schon sagen, welche Perl-Module erforderlich waren?


Das steht doch klipp und klar im Beitrag VOR Deinem. Ich verwende übrigens genau die andere Library, weil die SF-Lösung bei mir nicht funktioniert hat.

Und hör bitte auf, die Leute hier kreuzweise durch die Threads zu verkuppeln, das bringt nix.
Titel: Aw: Sonos steuern
Beitrag von: crazystone am 20 August 2013, 22:32:09
Hallo Reiner,

ich habe mir den Intel-Device Spy mal angeschaut bzw. die ganze Tool-Suite. Das ist ja schon ziemlich umfänglich, was es da alles an Test-Tools gibt. Das sollte genügen, um diverse Device Simulationen zu testen bzw. auch den einzelnen Geräten auf die Spur zu kommen. Danke für den Link. Ich werde also schon mal einen meiner UPnP Player (Philips NP2900) damit testen, ob die Grundfunktionen da UPnP Standard konform funktionieren. Mit dem mitglieferten Sniffer sollte man dann ja die Sequenzen sehen und nachimplentieren können, wenn das UPnP Modul in FHEM mal läuft, richtig?

Viele Grüße
Thorsten
Titel: Aw: Sonos steuern
Beitrag von: Elektrolurch am 20 August 2013, 22:40:41
Hallo Reiner(lein),

danke für die Info. Ich habe mal die Kette der benötigten SW-Bestandteile nachvollzogen. Leider habe ich vor 20 Jahren mit C++ aufgehört und muss mich erst einmal wieder da aktualisieren.
Frage eines Neuanfängers: Ich brauche also dafür php. Das ist ja wohl eine Web-Server Erweiterung, z.B. bei einem Apache - Server. Ich nutze jetzt derzeit für das fhem-Projekt eine AVM FB 7390. Da läuft ja auch ein Webserver. Leider konnte ich so adoc nicht herausfinden, ob da auch schon php aktiv ist. Fehlen mir ja leider mal die Kenntnisse. Einen Apache mit php zusätzlich zu installieren, ist ja wohl nicht so ein großes Problem, ev. aber auch nicht notwendig?
Ansonsten wäre ja Dein php-Ansatz genau das, was ich bräuchte, um einen Alarm auf den AVs im Haus abzuspielen.
Ach ja: Du schriebst - Ansonsten kann ich dir nur zum Thema UPnP sagen, dass die Sonos Geräte sehr speziell in Bezug auf UPnP programmiert wurden. Mit einem normalen UPnP-Steuerprogramm wirst du die nicht vernünftig/einfach beeinflußen können, genauso wie andersherum mein Modul für andere, per UPnP
Mein dummes Nokia Handy kann zumindest über die Funktion "Eigene Geräte" Quellen und Ziele über UPnP verheiraten und bei den Sonos-Playern auch die Lautstärke einstellen. (!!!! Du schriebst ja, dassdas nicht mehr Standard bei den Sonos sei)

Gruß Elektrolurch
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 20 August 2013, 22:46:32
Hi Thorsten,

also, meine Import-Liste ist mittlerweile etwas länger, daher weiss ich nicht mehr ganz genau, welches Modul für den Reibungslosen Betrieb von PerlUPnP notwendig waren.

Aus den dem PerlUPnP-Modul selbst werden folgende Pakete eingebunden:

Von mir kommt momentan noch dazu:

Selber liefere ich noch mit:


Wobei einige davon bereits im Standard-Perl enthalten sind, und einige auch gemeinsam in einem Installations-Paket enthalten sein dürften. Ich nehme da eher wenig Rücksicht, da ich mein Modul zum Laufen bringen möchte, und halt notfalls einfach Dinge nachinstalliere. Manchmal kann man sich ja einschränken, aber ansonsten vertrete ich die Meinung, nicht das Rad nochmal erfinden zu müssen.

Zu dem Letzten Post (der gerade beim Tippen reingerauscht kam :-):
Du kannst mit dem Device-Spy alle deine UPnP-Devices im Netz sehen, und die zur Verfügung gestellten Prozeduren (inkl. deren Parameter und Auswahlmöglichkeiten) sowie die zur Verfügung gestellten Typen sehen.
Desweiteren kannst du dich für die zur Verfügung gestellten Events registrieren, und die dabei übergebenen Werte ansehen.
Die Sequenzen, die du meinst, beziehen sich dann auf den eigentlichen Inhalt der Parameter eines solchen Aufrufs.

Spiel erstmal rum, was du mit dem Spy bereits alles erreichen kannst...

Grüße Reiner
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 20 August 2013, 23:01:39
Hallo Elektrolurch,

für den Betrieb der reinen PHP-Konsolenanwendung brauchst du natürlich keinen Apache. Da reicht die eigentliche PHP-Installation.
Etwas trickreich war da die Installation der UPnP-Erweiterung für PHP, das habe ich aber ein bißchen im Post beschrieben, das hat bei mir auch etwas gehakt. Da musst du vielleicht ein bißchen Googlen...

Ob PHP installiert und ausführbar ist, kannst du einfach auf der Konsole durch Eingabe von "php --version" herausfinden:
pi@raspberrypi ~ $ php --version
PHP 5.4.4-12 (cli) (built: Feb  1 2013 08:58:27)
Copyright (c) 1997-2012 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2012 Zend Technologies
Dies mal die Ausgabe auf meinem Raspberry Pi.

Mit php -r "phpinfo();"z.B. kannst du schauen, ob dein UPnP dann geladen wurde.
Die Ausgabe ist sehr lang, da alles interne von PHP ausgegeben wird. Am Besten per grep durchsuchen:pi@raspberrypi ~ $ php -r "phpinfo();" | grep upnp
gupnp
gupnp support => enabled


Zu deinem Nokia-Handy:
Es werden im Standard zwei Methoden für die Lautstärkenanpassung vorgeschrieben ("SetVolume" und "SetVolumeDB") und nur die SetVolume funktioniert bei meinem Sonos. Das bedeutet, dass dein Handy instinktiv (und so würde das ja auch jeder Mensch im Normalfall machen) das richtige gemacht hat. Meine UPnP Teststeuersoftware konnte das nicht.
Ich wollte auch hauptsächlich darauf hindeuten, dass man immer schauen muss, ob es funktioniert. Man kann sich leider nicht einfach drauf verlassen. Natürlich wird einiges intuitiv klappen, allerdings auch einiges nicht.
Hat denn bei den Sonos-Playern das Starten eines Titels (besser gesagt: das Ablegen eines Titels in der Abspielliste mit anschließendem Start der Wiedergabe) funktioniert? Das hatte bei mir nämlich auch nicht geklappt.
Aber egal... das sind nur Beispiele... es soll am Ende ja alles funktionieren :-)

Grüße Reiner
Titel: Aw: Sonos steuern
Beitrag von: crazystone am 21 August 2013, 22:34:46
Also ich habe mal ein bisschen mit dem Intel Device Spy und den anderen Tools herumgespielt. Ist wirklich ernüchternd...

Also auch wenn es nicht hierher gehört (weil ja kein Sonos sondern Philips Streamium und nicht FHEM, noch nicht ;-)) mein NP290 versteht, Play, Stop, Pause, Balance, laut/leise. Ich kann gezielt ein einzelnes Media File abspielen. Das wars dann auch. Ich habe etliche Male Fehlermeldungen bekommen ("Server nicht verfügbar"), beim Versuch mehrere Files hintereinander abzuspielen, Radio zu starten (Play und Stop im Radio Mode). Es gab natürlich etliche Funktionen (Mute, PresetList, SelectPreset, Seek) die ich mit den Standard Tools nicht testen konnte.

Eine Erfahrung war auch, was da sonst noch alles abläuft. Eine Fritz Powerline PL546 die da reinspuckt, eine FB die DSL und WAN Status herumposaunt, Kathrein Receiver, die sich nur als rootdevice melden, aber sonst nix anzeigt, und natürlich etliche PCs mit verschiedenen Services, Content Container etc.

Am meisten hat mich gewundert, dass ich bei einem Internet-Radio wie dem NP290 keinen aktuell abgespielte Radiostream gefunden habe. Bin gespannt, was das PresetList oder Seek dann mal liefert.

Es ist mir jetzt durchaus klar, dass das Abfangen des Urwalds eine ganz schöne Herausforderung wird. Ich habe es mit dem ControlPoint auch nicht wirklich geschafft, ein Abspielen zu starten. Das klappte dann wirklich nur mit der Beispielanwendung (Auswahl eines Files per FileBrowser). Da wäre ich auch nochmal dankbar für die Erläuterung der Einzelschritte. Gewundert hat mich auch, das der Status (STOPPED) immer angezeigt wurde, auch während des Abspielens. Ideen?

Viele Grüße

Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 21 August 2013, 22:56:32
Hi Thorsten,

willkommen in der wunderbaren Welt von UPnP :-)
Nee, mal Spaß beiseite, hauptsächlich will der nur spielen.

Für das von mir verwendete Modul sieht die ControlPoint-Definition so aus:$SONOS_Controlpoint = UPnP::ControlPoint->new(SearchPort => 8008, SubscriptionPort => 9009, SubscriptionURL => '/eventSub', MaxWait => 10);
$SONOS_Search = $SONOS_Controlpoint->searchByType('urn:schemas-upnp-org:device:ZonePlayer:1', \&SONOS_Discover_Callback);
$SONOS_Controlpoint->handle;
Wie man erkennen kann, kann man beim Controlpoint bereits die Suche einschränken.
Bei mir melden sich die Zoneplayer eben wie oben definiert.
Das sieht bei anderen UPnP-Modulen zwar anders aber im Kern doch ähnlich aus...

Im ersten Schritt solltest du also mal schauen, ob du durch eine vernünftige Einschränkung dort etwas erreichst.

Aber für ein allgemeingültiges Modul müsste das natürlich frei definierbar sein. Desweiteren müsste irgendwie in einem Attribut definiert werden, was beim Discovern (sprich beim Erkennungsvorgang der gefundenen, bzw. sich meldenden Geräte) passiert.
Wie gesagt, ich bezweifel, dass da wirklich viel geht, was dann am Ende noch als Vereinfachung gegenüber einer normalen Modulentwicklung durchgehen könnte...

Aber natürlich gilt trotzdem (zumindest für mich): Was man mit dem Spy nicht simulieren/steuern kann, wirst du auch nicht mit deinem eigenen Modul hinbekommen. Zumindest nicht über den Standard-UPnP-Aufruf.
Man sollte UPnP als das betrachten, was es ist: Eine Erweiterung zu einem Netzwerkprotokoll wie TCP/IP, mit der man den Zugriff auf Geräte Standardisieren kann. Das bedeutet leider noch längst nicht, dass man auch alles steuern kann.
Bei Sonos z.B. gibt es auch einige Aufrufe, deren Inhalte verschlüsselt sind. Das betrifft zwar hauptsächlich so Dinge wie Benutzerzugänge o.ä. aber ärgerlich ist natürlich, dass man das dann gar nicht mehr rausbekommt (zumindest nicht ohne SONOS-Quellcode :-).

Grüße Reiner
Titel: Aw: Sonos steuern
Beitrag von: betateilchen am 22 August 2013, 13:30:09
Zitat von: Reinerlein schrieb am Mi, 21 August 2013 22:56
Das sieht bei anderen UPnP-Modulen zwar anders aber im Kern doch ähnlich aus...
Im ersten Schritt solltest du also mal schauen, ob du durch eine vernünftige Einschränkung dort etwas erreichst.
Aber für ein allgemeingültiges Modul müsste das natürlich frei definierbar sein.


ja, und für ein "allgemeingültiges" Modul muss man im Vorfeld noch über völlig andere Dinge nachdenken. Zum Beispiel muss ich mindestens zwei Gerätetypen immer implementieren: ein Geräte das die Mediadaten liefert (z.B. Typ Mediaserver) und einen Gerätetypen, der die Mediadaten wiedergeben kann (z.B. Typ Mediarenderer)

Und dann gibt es noch Geräte, die beide Funktionen bereitstellen und dabei auch noch dummerweise die gleiche UUID verwenden...

usw. usw.

Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 22 August 2013, 13:38:59
Hi Betateilchen,

genau, soweit ich das aber überblicke, sind Geräte, die beides können, aufgetrennt in verschiedene Devices, die die jeweilige Arbeit Erledigen.
Bei Sonos z.B. gibt es zwei Sub-Devices: Eines, welches "Media Renderer" heißt, und eines das "Media Server" heißt.
Das bedeutet bei der Suche viel mehr Arbeit, da man ja auch alle Sub-Devices durchsuchen muss, die melden sich, zumindest bei Sonos, nicht einzeln, sondern nur über ihr Hauptdevice (also dem physikalischen Gerät entsprechend).

Allerdings unterscheiden sich bei Sonos wenigstens die UUIDs. Dort wird immer die des Hauptdevices verwendet und etwas angehangen:
_MR -> Für den Media Renderer
_MS -> Für den Media Server

Hast du Geräte, die beides können, aber das nicht durch virtuelle Trennungen deutlich machen?
Das wäre ja dann richtig blöd... Dann könnte man die noch nichtmal nach der Erkennung auseinanderhalten...

Grüße Reiner
Titel: Aw: Sonos steuern
Beitrag von: Reinerlein am 22 August 2013, 20:42:48
Hi zusammen,

zwischendurch auch mal wieder eine Statusaktualisierung zur eigentlichen Sache: Dem Sonos-Modul.

Ich habe nun mein neues Konzept eingebaut, und ich muss sagen, dass es deutlich stabiler als vorher läuft. Ich habe auch schon die Unterstützung für Gruppenbildungen und den daranhängenden Themen eingebaut:[Sonos_Kueche], [Sonos_Wohnzimmer, Sonos_Schlafzimmer]", wobei die Reihenfolge innerhalb einer Gruppe wichtig ist. Der erste Eintrag ist der sogenannte Gruppenkoordinator, beim Einstellen der Gruppe also der, wo die Musik herkommen wird.
  • Man kann am Player-Device selbst ein "AddMember <DevName>" oder "RemoveMember <DevName>" ausführen. Dann wird zu dem Player-Device das angegebene Device "Dazugruppiert", und die Wiedergabe dahin mit übergeben.
  • Man kann die Steuerbefehle (Play, Pause, Next usw.) an einem beliebigen Player einer Gruppe ausführen. Die Anweisungen werden automatisch an den Koordinator weitergeleitet und dort ausgeführt. Dadurch kann es einem persönlich eigentlich egal sein, wer der Koordinator ist (ausser das beim Einrichten der Gruppe die Playliste des Koordinators zählt)
  • Man kann Gruppenlautstärke und GruppenMute setzen. Das funktioniert dann wie am Original-Controller so, dass der relative Abstand der Lautstärken beibehalten wird, und die Gesamt-Gruppenlautstärke angepasst wird. Natürlich kann man immer noch die Lautstärke an einem Device selber einstellen; diese Änderung hat dann auch nur Auswirkungen auf den einzelnen Player.
  • "PlayURI" kann nun als Parameter einen Devicenamen erhalten, und spielt dann den AV-Eingang des über diesen Parameter definierten Players am gewählten Device ab. Das muss auch nicht der Player sein, an dem der Eingang physikalisch dran ist...[/list]Allerdings gibt es noch etwas zu basteln:
    Als Folge der Konzeptumstellung bleibt noch eine kleine Baustelle offen, die ich noch schließen muss. Dann geht es hier weiter...

    Für diejenigen, die es Interessiert (zum leichteren Überspringen als Zitat):
    Zitat
    Das Konzept sieht vor, dass für den ganzen UPnP-Kram aus dem Modul heraus ein eigener Prozess gestartet wird, der dann nicht mehr die "Altlast" FHEM mit sich rumträgt, und wieder sauber threaden kann.
    Für den Anwender ändert sich nur die Konfiguration des zentralen Sonos-Devices, da dort nun ein "Host:Port" mit angegeben werden muss, also z.B. "localhost:4712".
    An dieser Stelle wird ein laufender Host gesucht, und wenn dieser nicht gefunden wird, wird versucht lokal selber durch einen Neuprozess einen zu starten. Dieser Prozess lauscht dann auf dem Port auf eingehende Verbindungen von FHEM. Dazu wird das FHEM-Standardverfahren für Netzverbindungen verwendet.
    Wenn eine Verbindung zustande kam, werden die ganzen UPnP-Sachen gestartet und die entsprechenden Meldungen an FHEM weitergeleitet.

    Das hat zu Folge, dass FHEM bzgl. der Befehle "rereadcfg" und "shutdown" auch wieder normal benutzt werden kann, also man auch wieder die fhem.cfg Datei über die Oberfläche editieren und speichern kann.


    Viel passiert also, und bald wird es in die Runde gestreut, damit sich hoffentlich jeder dran erfreuen kann.

    Grüße Reiner
  • Titel: Aw: Sonos steuern
    Beitrag von: der-Lolo am 03 September 2013, 18:02:12
    Hallo Reinerlein,
    Sag mal ist eigentlich absehbar wann das "bald" ist? Kannst du sagen wann das Sonos Modul eingecheckt wird..?
    Ich überlege gerade ob ich als nächstes meine Sonos Komponenten integriere oder aber mich um optische Belange kümmer und einen Floorplan erstelle...
    Gibt es das Sonos Modul nach deiner Einschätzung noch im September - Oktober?
    Titel: Aw: Sonos steuern
    Beitrag von: Reinerlein am 03 September 2013, 18:55:45
    Hallo Der-Lolo,

    ich bin eigentlich soweit durch, und seit heute im Produktivtest auf meinem Raspberry Pi. Dort taucht aber Erfahrungsgemäß immer noch die eine oder andere Unstimmigkeit auf (ist bei mir ja ein Wechsel von Windows, als Entwicklungsumgebung, auf Linux), die es zu beheben gilt :-)
    Vor allem nach einer solchen Änderung...

    Ich habe auch schon den Thirdparty-Update Mechanismus/Server dafür eingerichtet, sodass die Installation auf eurer Seite mittels eines FHEM-Befehls erfolgen kann. Anschließend ist es natürlich genauso einfach eine neuere Version zu bekommen.

    Also, ich gehe davon aus, dass es Anfang der nächsten Woche soweit sein könnte, wenn nichts gravierendes mehr im Test auftaucht.

    Grüße Reinerlein
    Titel: Aw: Sonos steuern
    Beitrag von: Reinerlein am 11 September 2013, 15:23:44
    Hallo zusammen,

    ich muss hier noch ein bißchen verlängern. Ich habe beim Testen in meinem Produktivsystem noch ein paar kleine Phänomene entdeckt, die ich erst untersuchen muss.
    Es bringt ja nix, wenn ihr das auch mühsam ausprobiert...

    Es wird aber...

    Grüße Reiner
    Titel: Aw: Sonos steuern
    Beitrag von: Reinerlein am 15 September 2013, 15:07:51
    Hallo zusammen,

    es ist soweit. Ich habe das Produkt nun in meinem System einige Zeit stabil am Laufen. Ich würde sagen, es ist soweit, dass ihr mit an dem Stand teilhaben solltet.

    Ich habe den Wiki-Entrag dazu bereits angepasst.
    Hier nur in Kürze etwas dazu:
    update thirdparty http://fhem.lmsoft.de/sonos sonos eingeben. Damit wird alles aktualisiert und/oder installiert. Die Vorbedingungen bzgl. Perl-eigener Module müssen natürlich trotzdem erfüllt sein. Hier werden nur die Dateien geliefert, die in dem Fhem-Pfad abgelegt werden (und vorher von mir hier immer veröffentlicht wurden).
  • Grundlegende Änderungen:
    • Es sind einige Get-Kommandos rausgeflogen. Alle Kommandos, deren Werte auch geliefert werden (können) haben nun keinen Getter mehr, sondern können nur noch aus dem entsprechenden Reading ausgelesen werden.
    • Alle Get- und Set-Kommandos laufen jetzt asynchron. Das bedeutet, dass ein Aufruf sofort zurückkehrt, und das Ergebnis des Aufrufs nach der Beendigung dann in dem entsprechenden Result abgelesen werden kann.
    • Für die Kommandos gibt es eine Queue, damit die eigentlichen Aufrufe an den Player nicht kollidieren.
    • Die Alarminformationen sind nicht mehr als Hash im Reading abgelegt, sondern als String, der per "eval" wieder in einen "echten" Perl-Hash umgewandelt werden kann.
  • Neues:
    • Man kann nun Button-Events definieren. Damit kann man z.B. einen Play5 einigermaßen autark betreiben, ohne immer einen Controller zur Hand zu haben. Näheres dazu im Wiki
    • Man kann (wie bereits woanders mal geschrieben) Gruppen bilden, auflösen und den Gesamtzustand ermitteln und festlegen
    • Durch die neue Thread- und Prozessstruktur läuft das Speak auch wieder stabil
    • Dadurch, dass der UPnP-Teil in einem eigenen Prozess läuft, ist auch dessen Log-Ausgabe nicht mehr im Fhem-Kontext und kommt direkt auf dem Standard-Out raus. Im Normalfall hat man diesen Stdout in seinem Start-Skript auf eine Datei umgelenkt, sodass man auch zur Laufzeit dort reinschauen kann. Der Loglevel wird aus dem globalen Verbose-Tag mit übernommen
    [/list]
    Ich hoffe, dass der Stand soweit stabil ist, dass auch bei euch alles läuft.
    Also etwas Nachsicht, wenn noch das eine oder andere Auftritt. Bei mir (Fhem auf Windows, Fhem auf Rapsberry Pi, 2x Play5, 1x Connect, 1x Bridge) läuft es momentan stabil.

    Viel Spass beim Verwenden und Basteln...

    Grüße Reiner
  • Titel: Aw: Sonos steuern
    Beitrag von: der-Lolo am 15 September 2013, 18:37:42
    Danke Reinerlein,
    Ich bin gerade die Umgebung am vorbereiten - es scheitert leider bei der SOAP::Lite Installation...
    Mal schauen ob ich das hinbekomme...

    Bei der von dir beschriebenen Hand Installation bleibt er auch hängen beim make Test


    Test Summary Report
    -------------------
    t/SOAP/Transport/HTTP/CGI.t                (Wstat: 512 Tests: 2 Failed: 2)
      Failed tests:  1-2
      Non-zero exit status: 2
    Files=33, Tests=854, 56 wallclock secs ( 4.08 usr  0.33 sys + 44.79 cusr  1.90 csys = 51.10 CPU)
    Result: FAIL
    Failed 1/33 test programs. 2/854 subtests failed.
    make: *** [test_dynamic] Error 255
    root@raspberrypi:~/soaplite/SOAP-Lite-0.715#



    Wenn ich es richtig verstehe steckt der Fehler irgendwo bei einem Ü


    01-core.t .................................. ok
    t/010-serializer.t ........................... ok
    t/012-cloneable.t ............................ ok
    t/013-array-deserialization.t ................ ok
    t/014_UNIVERSAL_use.t ........................ ok
    t/015_UNIVERSAL_can.t ........................ ok
    t/02-payload.t ............................... ok
    t/03-server.t ................................ ok
    t/04-attach.t ................................ skipped: Could not find MIME::Parser - is MIME::Tools installed? Aborting.
    t/05-customxml.t ............................. ok
    t/06-modules.t ............................... ok
    t/07-xmlrpc_payload.t ........................ ok
    t/08-schema.t ................................ ok
    t/096_characters.t ........................... skipped: (no reason given)
    t/097_kwalitee.t ............................. skipped: (no reason given)
    t/098_pod.t .................................. skipped: (no reason given)
    t/099_pod_coverage.t ......................... skipped: (no reason given)
    t/SOAP/Data.t ................................ ok
    t/SOAP/Lite/Deserializer/XMLSchema1999.t ..... ok
    t/SOAP/Lite/Deserializer/XMLSchema2001.t ..... ok
    t/SOAP/Lite/Deserializer/XMLSchemaSOAP1_1.t .. ok
    t/SOAP/Lite/Deserializer/XMLSchemaSOAP1_2.t .. ok
    t/SOAP/Lite/Packager.t ....................... ok
    t/SOAP/Schema/WSDL.t ......................... ok
    t/SOAP/Serializer.t .......................... ok
    t/SOAP/Transport/HTTP.t ...................... ok
    t/SOAP/Transport/HTTP/CGI.t .................. 1/?
    #   Failed test 'return utf8 string'
    #   at t/SOAP/Transport/HTTP/CGI.t line 57.

    #   Failed test 'utf8 content: Ã�berall'
    #   at t/SOAP/Transport/HTTP/CGI.t line 59.
    #          got: 'Ã�berall'
    #     expected: 'Überall'
    # Looks like you failed 2 tests of 2.
    Titel: Aw: Sonos steuern
    Beitrag von: Reinerlein am 15 September 2013, 19:34:30
    Hi Der-Lolo,

    versuch doch mal die andere Installationsvariante mittelssudo apt-get install libsoap-lite-perlIch hatte da manchmal auch so meine Probleme, weswegen ich diese Variante auch beschrieben hatte...

    Grüße Reiner
    Titel: Aw: Sonos steuern
    Beitrag von: der-Lolo am 15 September 2013, 20:09:36
    Interessant, das apt-get wählt ein Paket

    libsoap-lite-perl (0.714-1)

    Weil ich nicht viel weiter wusste bin ich in das Soaplite 0.715 Verzeichnis und habe dort das make Test abgesetzt...

    Test Summary Report
    -------------------
    t/SOAP/Transport/HTTP/CGI.t                (Wstat: 1024 Tests: 0 Failed: 0)
      Non-zero exit status: 4
      Parse errors: No plan found in TAP output
    Files=33, Tests=868, 67 wallclock secs ( 4.13 usr  0.38 sys + 54.12 cusr  2.35 csys = 60.98 CPU)
    Result: FAIL
    Failed 1/33 test programs. 0/868 subtests failed.
    make: *** [test_dynamic] Error 255


    Es funktioniert zwar immer noch nicht, aber es sieht besser aus als vorher...
    Titel: Aw: Sonos steuern
    Beitrag von: det. am 15 September 2013, 20:19:03
    Sorry Reinerlein,

    bisher ging es (mit den Versionen bis heute)- jetzt nach dem Update kommt:ERROR:

    Cannot load module SONOS
    2013.09.15 20:14:18 0: Can't locate UPnP/ControlPoint.pm in @INC (@INC contains: /usr/bin/lib /usr/bin/FHEM/lib ./FHEM/lib ./lib ./FHEM ./ /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl . /usr/share/fhem/FHEM) at /usr/share/fhem/FHEM/00_SONOS.pm line 168, <$fh> line 63.
    BEGIN failed--compilation aborted at /usr/share/fhem/FHEM/00_SONOS.pm line 168, <$fh> line 63.
    Titel: Aw: Sonos steuern
    Beitrag von: FHEM-Freak am 15 September 2013, 20:32:27
    Danke Reinerlein,

    Update hat super geklappt.
    Danach noch "define Sonos SONOS localhost:4711 30" und es läuft.

    Was mir aufgefallen ist das es beim drücken von PLAY und STOP zu langen zeitverzögerungen kommt bis der Play3 das macht was man will, dauert bis zu einer Minute.
    Werd ich mir aber noch genauer anschauen.

    Sieht im log so aus.
    SONOSPLAYER0: Versuche jetzt set Sonos_Wohnzimmer->Play() auszuführen.
    SONOSPLAYER0: Immer noch ausstehenden Befehl erkannt. Verlagere die Ausführung von set Sonos_Wohnzimmer->Play() um eine weitere Sekunde.


    Zum abstürzen hab ich es nicht gebracht.
    Speichern von fhem.cfg mit Save fhem.cfg funktioniert auch wieder.
    Titel: Aw: Sonos steuern
    Beitrag von: m.zielinski am 15 September 2013, 21:00:04
    Bei mir kam es auch zu langen verzögerungen bei Steuerbefehlen - nach kurzer Zeit so 15-20 Sekunden.

    Ausserdem schien mir der Webserver dadurch auch deutlich langsamer zu reagieren bei z.b. Licht an/aus so dass ich Sonos erstmal wieder deaktiviert habe.

    Bei einem restart ("shutdown restart") hat sich auch komplett fhem weggehängt, als es versuchte den UPNP-Prozess zu stoppen. Nach 2 Minuten habe ich dann manuell den Raspberry-Pi rebooted.

    Titel: Aw: Sonos steuern
    Beitrag von: Reinerlein am 15 September 2013, 23:16:14
    Hallo zusammen,

    OK, das sieht viel aus :-)
    @Der-Lolo: Ich bin mir nicht sicher, ob ich jemals den Test des Moduls ausgeführt habe. Ich habe es nur installiert und dann verwendet. Meldet denn Perl noch dieses Modul als fehlend?

    @Det: Hmm. die Sache mit den Pfaden für die Libraries hat mich hier auch schon zur Verzweiflung gebracht. Dadurch dass ein Teil des Moduls "ausserhalb" von Fhem ausgeführt wird, kann ich nicht direkt auf die Konfigurationen von Fhem zurückgreifen. Da ich auch eigentlich nur die Pfadangabe benötige, habe ich das auf anderem Wege ermittelt. Das scheint nicht immer sauber zu gehen.
    Kannst du mir mal die Ausgabe der Konsole zusenden, wenn du folgendes im Fhem-Modulverzeichnis ausführst?
    perl 00_SONOS.pm 4712 4
    Damit kann man diesen UPnP-Lauscher auch selber starten. Mich würde interessieren, ob der auch die Module vermisst...

    @FHEM-Freak: Das mit der langen Zeitverzögerung ist nicht normal. Wenn man nicht gerade mehrere Befehle auf einmal absetzt, sollte die Anweisung direkt ausgeführt werden. Die Log-Ausgabe von dir deutet darauf hin, dass noch ein alter Befehl auf Beendigung wartet. Was hast du denn direkt davor ausgeführt? Es kann natürlich sein, dass es immer noch den einen oder anderen Befehl gibt, der keine saubere Rück-/Beendigungsmeldung liefert, und deshalb immer als nicht abgeschlossen gilt.
    Auch hier würde ich gerne die Konsolenausgabe des UPnP-Prozesses sehen (das was auf Stdout rauskommt, nicht das, was im Fhem-Log landet). Da wird mitgeschrieben, welche Anweisungen gerade ausgeführt werden sollen, und ob dabei irgendwo ein Fehler aufgetreten ist.

    @m.zielinski: Eigentlich sollte Fhem nicht mehr blockiert werden. Aus Sicht von Fhem ist das ganze ein normales Tcp-Device (wie z.B. der HMLAN-Adapter auch). Es wird auf eingehende Nachrichten reagiert, und ansonsten darf der UPnP-Prozess sich blockieren, wie er möchte, Fhem sollte davon unbeeindruckt bleiben.
    Kannst du mir bitte auch die Konsolenausgabe zukommen lassen?

    Allgemein gilt, dass das Modul am Anfang etwas Last verursacht, da viele Informationen geliefert und an Fhem übertragen werden müssen. Wenn sich die ganzen Komponenten dann aber fertig gemeldet haben, sollte dort Ruhe einkehren. Bei mir ist das so nach ca. 20-50 Sekunden nach dem Fhem-Start (auf dem Pi, auf meinem Windows-System, welches mehr Leistung hat, ist das natürlich schneller).
    Des Weiteren läuft Fhem bei mir als Root, da ich diverse Dinge (auch ausserhalb von Sonos) z.B. per Ping anspreche. Ich muss mal schauen, ob ich das als nicht-root mal getestet bekomme, und vielleicht einen Teil der Probleme nachgestellt bekomme.

    Sorry für diese Probleme, aber man kann halt Testen wie man will, es ist immer die eigene Umgebung, die dann funktioniert. Bei anderen findet man dann ganz andere Rahmenbedingungen vor...

    Grüße Reiner
    Titel: Aw: Sonos steuern
    Beitrag von: FHEM-Freak am 16 September 2013, 20:22:07
    Zitat von: Reinerlein schrieb am So, 15 September 2013 23:16

    Auch hier würde ich gerne die Konsolenausgabe des UPnP-Prozesses sehen (das was auf Stdout rauskommt, nicht das, was im Fhem-Log landet). Da wird mitgeschrieben, welche Anweisungen gerade ausgeführt werden sollen, und ob dabei irgendwo ein Fehler aufgetreten ist.

    Da musst mir bitte etwas weiterhelfen, habe bezüglich Stdout nichts gefunden.
    Titel: Aw: Sonos steuern
    Beitrag von: Reinerlein am 16 September 2013, 20:40:37
    Hallo Fhem-Freak,

    ich weiss jetzt nicht, wie du dein Fhem startest. Bei mir steht im Startskript hinter dem eigentlichen Perl-Aufruf ein "> /var/log/fhem" damit wird die normale Ausgabe (unter Textorientierten Systemen stdout, also Standard-Out, genannt) in eine Datei umgeleitet, damit man da  später noch rankommt.

    Hier mal der Schnipsel aus meinem Startskript:/etc/fhem/fhem/fhem.pl /etc/fhem/config/fhem.cfg > /var/log/fhem 2> /var/log/fhem &

    Du könntest Fhem aber auch zum Testen ohne dein Startskript, also direkt auf der Konsole starten.
    Dazu in das Verzeichnis wechseln, in dem die fhem.pl-Datei liegt, sicherstellen, das Fhem nicht gerade läuft, und folgendes eingeben:perl fhem.pl fhem.cfgDann ist das, was du auf der Konsole durchrauschen siehst, die Standardausgabe, und das was ich sehen möchte :-)
    Es sollte dort mit folgender Zeile losgehen, kann aber etwas dauern, weil Fhem erst bei der "define Sonos"-Zeile ankommen, und den Prozess erst starten muss:00_SONOS.pm is listening to Port 4711

    Kommst du damit weiter?

    Grüße Reiner
    Titel: Aw: Sonos steuern
    Beitrag von: FHEM-Freak am 17 September 2013, 09:04:40
    Hallo Reiner,

    Danke für die Info.
    Bei mir starten Fhem auch mit dem Startscript automatisch beim hochfahren.

    Bei abstürzen verwende ich Putty und den von dir genannten Aufruf.
    perl fhem.pl fhem.cfg

    Habe auch schon gesehen das dort Infos ausgegeben werden, nur wusste ich nicht das du die Angezeigten protokolle meinst.
    Ich werde sie Posten wenn ich zuhause bin.

    Gruss Kurt
    Titel: Aw: Sonos steuern
    Beitrag von: det. am 17 September 2013, 11:59:13
    Hallo Reiner,

    sorry, etwas wenig Zeit - hab die Zeile eingetippt - Ergebnispi@rpi3 /usr/share/fhem/FHEM $ perl 00_SONOS.pm 4712 4
    2013.09.17 11:56:55 1: SONOS0: 00_SONOS.pm is listening to Port 4712
    Titel: Aw: Sonos steuern
    Beitrag von: Reinerlein am 17 September 2013, 13:39:31
    Hi Detlev,

    das bedeutet, dass die UPnP-Library im Prinzip gefunden wird. Nur der Teil Fhem-Modul hat damit noch ein Problem...
    Das war bislang immer der problemfreie Teil, da ich dort direkt auf die Fhem-Konfiguration selbst zurückgreife.

    Hmm, hast du irgendwas besonderes an deiner Fhem-Installation?
    Wie sieht denn deine normale Fhem-Startzeile aus? Du verwendest ja vermutlich ein Startskript, kannst du mal die Zeile posten, die Fhem startet?

    Grüße, Reiner
    Titel: Aw: Sonos steuern
    Beitrag von: det. am 17 September 2013, 20:37:52
    Hallo Reiner,

    hab z.Z. real Life Sachen um die Ohren ( angenehme ), so dass ich nicht richtig zum Testen komme. Am Start script habe ich nichts gemacht, das ist das übliche aus dem Busware RPI image. Sonst habe ich nichts Spezielles auf dem RPI, wenn ich Zeit habe probiere ich es noch auf einem 2ten - am Wochenende. Auf beiden war bisher das SONOS Modul vor dem letzten update und ging prima.
    Titel: Aw: Sonos steuern
    Beitrag von: FHEM-Freak am 17 September 2013, 21:17:44
    Hallo Reiner

    Hoffe das ist der gewünschte Log
    2013.09.17 20:41:34 1: SONOS0: FHEM/00_SONOS.pm is li                                          stening to Port 4711
    2013.09.17 20:41:37 1: SONOS0: Connection accepted from localhost:57346
    2013.09.17 20:41:38 3: SONOS0: Received: 'SetData:Sonos:RINCON_000E58E3266201400                                          _MR,RINCON_000E58F0A13A01400_MR'
    2013.09.17 20:41:38 3: SONOS0: Received: 'StartThread'
    2013.09.17 20:41:39 3: SONOS1: I am the new UPnP-Thread. Nice to meet you...
    2013.09.17 20:41:41 1: SONOS2: IsAlive-Thread gestartet. Warte 120 Sekunden und                                           pruefe dann alle 30 Sekunden...
    2013.09.17 20:41:42 1: SONOS3: Restorethread gestartet. Warte auf Arbeit...
    2013.09.17 20:41:42 2: SONOS1: Discover SonosPlayer 'Wohnzimmer' (S3) Software R                                          evision 4.1 with ID 'RINCON_000E58F0A13A01400_MR'
    2013.09.17 20:41:49 2: SONOS1: SonosPlayer 'Wohnzimmer' (S3) Software Revision 4                                          .1 with ID 'RINCON_000E58F0A13A01400_MR' is already defined and will only be upd                                          ated
    2013.09.17 20:41:49 2: SONOS1: SonosPlayer 'Wohnzimmer' is now updated
    2013.09.17 20:41:49 2: SONOS1: Service-subscribing successful with SID="uuid:RIN                                          CON_000E58F0A13A01400_sub0000003006" and Timeout="86400s"
    2013.09.17 20:41:49 2: SONOS1: Rendering-Service-subscribing successful with SID                                          ="uuid:RINCON_000E58F0A13A01400_sub0000003007" and Timeout="86400s"
    2013.09.17 20:41:49 2: SONOS1: Alarm-Service-subscribing successful with SID="uu                                          id:RINCON_000E58F0A13A01400_sub0000003008" and Timeout="86400s"
    2013.09.17 20:41:49 2: SONOS1: ZoneGroupTopology-Service-subscribing successful                                           with SID="uuid:RINCON_000E58F0A13A01400_sub0000003009" and Timeout="86400s"
    2013.09.17 20:41:50 3: SONOS1: Discover: End of discover-event
    2013.09.17 20:41:50 2: SONOS1: Discover SonosPlayer 'Sonos-BRIDGE' (ZB100) Softw                                          are Revision 4.1 with ID 'RINCON_000E58E3266201400_MR'
    2013.09.17 20:41:50 2: SONOS1: SonosPlayer 'Sonos_BRIDGE' (ZB100) Software Revis                                          ion 4.1 with ID 'RINCON_000E58E3266201400_MR' is already defined and will only b                                          e updated
    2013.09.17 20:41:50 2: SONOS1: SonosPlayer 'Sonos_BRIDGE' is now updated
    2013.09.17 20:41:50 1: SONOS1: Service-subscribing not possible due to missing T                                          ransportService
    2013.09.17 20:41:50 2: SONOS1: ZoneGroupTopology-Service-subscribing successful                                           with SID="uuid:RINCON_000E58E3266201400_sub0000000022" and Timeout="86400s"
    2013.09.17 20:41:50 3: SONOS1: Discover: End of discover-event
    2013.09.17 20:41:50 3: SONOS1: Event: Received Transport-Event for Zone "Sonos_W                                          ohnzimmer".
    2013.09.17 20:41:51 3: SONOS1: Event: End of Transport-Event for Zone "Sonos_Woh                                          nzimmer".
    2013.09.17 20:41:51 3: SONOS1: Event: Received ZoneGroupTopology-Event for Zone                                           "Sonos_Sonos_BRIDGE".
    2013.09.17 20:41:52 3: SONOS1: Event: End of ZoneGroupTopology-Event for Zone "S                                          onos_Sonos_BRIDGE".
    2013.09.17 20:41:52 3: SONOS1: Event: Received Alarm-Event for Zone "Sonos_Wohnz                                          immer".
    2013.09.17 20:41:52 3: SONOS1: Event: End of Alarm-Event for Zone "Sonos_Wohnzim                                          mer".
    2013.09.17 20:41:52 3: SONOS1: Event: Received ZoneGroupTopology-Event for Zone                                           "Sonos_Wohnzimmer".
    2013.09.17 20:41:53 3: SONOS1: Event: End of ZoneGroupTopology-Event for Zone "S                                          onos_Wohnzimmer".
    2013.09.17 20:41:53 3: SONOS1: Event: Received Rendering-Event for Zone "Sonos_W                                          ohnzimmer".
    2013.09.17 20:41:54 3: SONOS1: Event: End of Rendering-Event for Zone "Sonos_Woh                                          nzimmer".
    Thread 2 terminated abnormally: icmp ping requires root privilege at FHEM/00_SON                                          OS.pm line 2625 thread 2
    Subroutine myUtils_Initialize redefined at ./FHEM/99_myUtils.pm line 7.
    Subroutine DebianMail redefined at ./FHEM/99_myUtils.pm line 13.
    Subroutine SetTempList_Heizung_Aus redefined at ./FHEM/99_myUtils.pm line 37.
    Subroutine SetTempList_Heizung_Ein redefined at ./FHEM/99_myUtils.pm line 50.
    2013.09.17 20:45:46 2: SONOS1: Discover SonosPlayer 'Wohnzimmer' (S3) Software R                                          evision 4.1 with ID 'RINCON_000E58F0A13A01400_MR'
    2013.09.17 20:45:51 2: SONOS1: SonosPlayer 'Wohnzimmer' (S3) Software Revision 4                                          .1 with ID 'RINCON_000E58F0A13A01400_MR' is already defined and will only be upd                                          ated
    2013.09.17 20:45:51 2: SONOS1: SonosPlayer 'Wohnzimmer' is now updated
    2013.09.17 20:45:51 2: SONOS1: Service-subscribing successful with SID="uuid:RIN                                          CON_000E58F0A13A01400_sub0000003013" and Timeout="86400s"
    2013.09.17 20:45:51 2: SONOS1: Rendering-Service-subscribing successful with SID                                          ="uuid:RINCON_000E58F0A13A01400_sub0000003014" and Timeout="86400s"
    2013.09.17 20:45:51 2: SONOS1: Alarm-Service-subscribing successful with SID="uu                                          id:RINCON_000E58F0A13A01400_sub0000003015" and Timeout="86400s"
    2013.09.17 20:45:51 2: SONOS1: ZoneGroupTopology-Service-subscribing successful                                           with SID="uuid:RINCON_000E58F0A13A01400_sub0000003016" and Timeout="86400s"
    2013.09.17 20:45:51 3: SONOS1: Discover: End of discover-event
    2013.09.17 20:45:51 3: SONOS1: Event: Received Transport-Event for Zone "Sonos_W                                          ohnzimmer".
    2013.09.17 20:45:51 3: SONOS1: Event: End of Transport-Event for Zone "Sonos_Woh                                          nzimmer".
    2013.09.17 20:45:52 3: SONOS1: Event: Received Alarm-Event for Zone "Sonos_Wohnz                                          immer".
    2013.09.17 20:45:52 3: SONOS1: Event: End of Alarm-Event for Zone "Sonos_Wohnzim                                          mer".
    2013.09.17 20:45:52 2: SONOS1: Discover SonosPlayer 'Wohnzimmer' (S3) Software R                                          evision 4.1 with ID 'RINCON_000E58F0A13A01400_MR'
    2013.09.17 20:45:58 2: SONOS1: SonosPlayer 'Wohnzimmer' (S3) Software Revision 4                                          .1 with ID 'RINCON_000E58F0A13A01400_MR' is already defined and will only be upd                                          ated
    2013.09.17 20:45:58 2: SONOS1: SonosPlayer 'Wohnzimmer' is now updated
    2013.09.17 20:45:58 2: SONOS1: Service-subscribing successful with SID="uuid:RIN                                          CON_000E58F0A13A01400_sub0000003017" and Timeout="86400s"
    2013.09.17 20:45:58 2: SONOS1: Rendering-Service-subscribing successful with SID                                          ="uuid:RINCON_000E58F0A13A01400_sub0000003018" and Timeout="86400s"
    2013.09.17 20:45:58 2: SONOS1: Alarm-Service-subscribing successful with SID="uu                                          id:RINCON_000E58F0A13A01400_sub0000003019" and Timeout="86400s"
    2013.09.17 20:45:59 2: SONOS1: ZoneGroupTopology-Service-subscribing successful                                           with SID="uuid:RINCON_000E58F0A13A01400_sub0000003020" and Timeout="86400s"
    2013.09.17 20:45:59 3: SONOS1: Discover: End of discover-event
    2013.09.17 20:45:59 3: SONOS1: Event: Received ZoneGroupTopology-Event for Zone                                           "Sonos_Wohnzimmer".
    2013.09.17 20:45:59 3: SONOS1: Event: End of ZoneGroupTopology-Event for Zone "S                                          onos_Wohnzimmer".
    2013.09.17 20:45:59 3: SONOS1: Event: Received Rendering-Event for Zone "Sonos_W                                          ohnzimmer".
    2013.09.17 20:45:59 3: SONOS1: Event: End of Rendering-Event for Zone "Sonos_Woh                                          nzimmer".
    2013.09.17 20:45:59 3: SONOS1: Event: Received Transport-Event for Zone "Sonos_W                                          ohnzimmer".
    2013.09.17 20:45:59 3: SONOS1: Event: End of Transport-Event for Zone "Sonos_Woh                                          nzimmer".
    2013.09.17 20:45:59 3: SONOS1: Event: Received Alarm-Event for Zone "Sonos_Wohnz                                          immer".
    2013.09.17 20:45:59 3: SONOS1: Event: End of Alarm-Event for Zone "Sonos_Wohnzim                                          mer".
    2013.09.17 20:45:59 3: SONOS1: Event: Received ZoneGroupTopology-Event for Zone                                           "Sonos_Wohnzimmer".
    2013.09.17 20:45:59 3: SONOS1: Event: End of ZoneGroupTopology-Event for Zone "S                                          onos_Wohnzimmer".
    2013.09.17 20:45:59 3: SONOS1: Event: Received Rendering-Event for Zone "Sonos_W                                          ohnzimmer".
    2013.09.17 20:45:59 3: SONOS1: Event: End of Rendering-Event for Zone "Sonos_Woh                                          nzimmer".


    Bin bis Freitag beruflich unterwegs also keine Eile.

    Gruss Kurt
    Titel: Aw: Sonos steuern
    Beitrag von: Reinerlein am 17 September 2013, 22:41:18
    Hallo zusammen,

    @Detlev: ich werde demnächst mal ein paar zusätzliche Log-Ausgaben bzgl. der Library-Pfade, die verwendet werden, machen. Dann sehen wir vielleicht auch mehr, woran es dort mangelt.

    @Kurt: Dein Problem scheint erstmal einfach zu lösen zu sein :-) In dem Wust gibt es eine Meldung, dass für das Ausführen von "ping" mittels "icmp" root Rechte erforderlich sind. Da gibt es jetzt zwei Möglichkeiten:
    1. Fhem unter dem Benutzer root laufen lassen (geht durch umbenennen/löschen des Benutzers "fhem")
    2. Dem Modul sagen, dass er eine andere Methode als "icmp" verwenden soll. Das geht durch Setzen des Attributs "pingType" am Sonos-Device. Mögliche Werte sind dort "tcp", "icmp", "syn" und "udp". Die verschiedenen Verfahren haben alle ihre Vor- und Nachteile, sodass man dort keine eindeutige Empfehlung aussprechen kann, ausser, dass bei mir "icmp" sehr stabil läuft, und mit "syn" ein Player immer noch als Lebend erkannt wird, wenn er schon längst weg ist. "tcp" ist, glaube ich, für die Sonos-Geräte eigentlich keine gute Wahl, da das etwas Last auf dem Ziel (also dem Player) verursacht.
    Probier das einfach mal aus.
    Ansonsten sieht es dort doch eigentlich ganz gut aus...

    Grüße Reiner
    Titel: Aw: Sonos steuern
    Beitrag von: det. am 18 September 2013, 19:18:37
    Hallo Reiner,
    auf einem 2ten RPI das identische Fehlerbild. Mach Dir aber bitte keinen Stress, das Modul ist nur nice to have
    Titel: Aw: Sonos steuern
    Beitrag von: der-Lolo am 21 September 2013, 17:33:14
    Hallo Reinerlein,
    Ich habe nun das Sonos Modul installiert und Sonos definiert...
    Sieht soweit ganz gut aus, es hat problemlos meinen Play3, das Dock und den zp90 erkannt...

    Mein Play3 läuft im Bad über eine Philips living Whites die auf Tastendruck 20min anschaltet...

    Ich würde nun gerne sobald der Play3 sich meldet schauen ob im Wohnzimmer der Zp90 eine Wiedergabe hat,
    Falls ja soll der play3 sich mit dem Wohnzimmer gruppieren - falls nicht soll er Star FM abspielen...

    Wie kann ich so etwas realisieren?
    Titel: Aw: Sonos steuern
    Beitrag von: FHEM-Freak am 22 September 2013, 13:06:32
    Zitat von: Reinerlein schrieb am Di, 17 September 2013 22:41

    1. Fhem unter dem Benutzer root laufen lassen (geht durch umbenennen/löschen des Benutzers "fhem")
    Ansonsten sieht es dort doch eigentlich ganz gut aus...

    Hallo Reiner,

    Komplettes Fhem System neu auf den Pi installiert mit root Rechte.
    Sonos läuft perfekt.
    Keine verzögerungen und keine abstürze mehr.
    Danke für deine Hilfe.

    Gruß Kurt
    Titel: Aw: Sonos steuern
    Beitrag von: CQuadrat am 22 September 2013, 19:08:30
    Hallo Reiner,

    also bei mir läuft das Ganze noch nicht so rund.

    Ich hatte vor dem aktuellen "Release" massive Probleme mit der Stabilität: z.B. hing sich das System auf, wenn ich die Konfigurationsdateien per <rereadcfg> neu einlesen wollte.

    Leider habe ich dieses Verhalten aktuell auch noch. So führt ein Stop von fhem per Konsole zu einem Hänger:

    2013.09.22 15:07:22 3: SONOS0: Received: 'disconnect'
    2013.09.22 15:07:22 3: SONOS0: Disconnecting client and/or shutdown server...
    2013.09.22 15:07:22 3: SONOS1: ControlPoint is successfully stopped!
    2013.09.22 15:07:22 3: SONOS1: Thread has stopped all ControlPoint-Actions.
    2013.09.22 15:07:22 1: SONOS3: PlayerRestore-Thread has ended.
    2013.09.22 15:07:23 3: SONOS1: UPnP Controlpoint gives up his endless loop...
    2013.09.22 15:07:23 1: SONOS0: Connection accepted from localhost:39547
    2013.09.22 15:07:23 1: SONOS0: Connection accepted from localhost:39548
    2013.09.22 15:07:23 3: SONOS0: Received: 'disconnect'
    2013.09.22 15:07:23 3: SONOS0: Disconnecting client and/or shutdown server...
    Can't call method "kill" on an undefined value at FHEM/00_SONOS.pm line 4225, <$client> line 1.


    Viele Grüße

    Christoph
    Titel: Aw: Sonos steuern
    Beitrag von: Reinerlein am 23 September 2013, 00:10:16
    Hallo Christoph,

    ich konnte das Problem bei mir nachstellen. Mein Test bzgl. 'rereadcfg' liegt wohl schon etwas zurück :-) Auf jeden Fall wurde an der Stelle eine, irgendwann dazugekommene, Sache unberücksichtigt gelassen.
    Das habe ich nun geradegezogen.

    Leider ist mir selber noch ein anderes Phänomen aufgefallen, weswegen ich noch nicht das Updatesystem aktualisiert habe:
    Wenn ein Befehl an einen Player gesendet werden soll, während gerade eine Aktualisierungsnachricht eines Players ankommt (und verarbeitet wird), dann bleibt der Thread hängen.
    Das beeinflusst Fhem an dieser Stelle noch nicht direkt, da aus Sicht von Fhem alles Ordnungsgemäß verschickt wurde, aber der Sonos-Teil läuft dann natürlich nicht mehr...
    Da bin ich aber gerade dran.

    Grüße Reiner
    Titel: Aw: Sonos steuern
    Beitrag von: Reinerlein am 23 September 2013, 00:27:50
    Hallo Der-Lolo,

    hier mal eine kurze Beschreibung, wie es gehen könnte:define Sonos_Bad_Appeared_Notify notify Sonos_Bad:presence:.appeared { \
      if (ReadingsVal('Sonos_Wohnzimmer', 'transportState', '') eq 'PLAYING') { \
        fhem 'set Sonos_Wohnzimmer AddMember Sonos_Bad' \
      } else { \
        fhem 'set Sonos_Bad LoadRadio Star%20FM' ;; \
        fhem 'set Sonos_Bad Play' \
      } \
    }
    Natürlich musst du u.U. die Namen anpassen.
    Desweiteren bin ich mir gerade, wegen des von mir im letzten Post erwähnten Fehler, nicht sicher, ob es wirklich funktionieren wird. Der Player sendet nach dem Laden des Radiosenders sofort eine Aktualisierung aus. Die dann direkt mal mit dem Play-Befehl konflikten könnte. Bei etwas ähnlichem ist es mir nämlich aufgefallen. Ich habe, angelehnt an mein Beispiel im Wiki, eine Tastensteuerung für meinen Play5 gebaut, die den Player startet, und dann einen Sleeptimer setzt. Dabei passiert mein beschriebenes Problem manchmal...
    Vielleicht geht was mit einem Sleep-Befehl, habe ich aber noch nicht getestet...

    Ich habe auf der Wiki-Seite zu dem Modul auch ein paar Beispiele abgelegt. Da kannst du ja auch mal nach Ideen stöbern...

    Grüße Reiner
    Titel: Aw: Sonos steuern
    Beitrag von: Reinerlein am 23 September 2013, 19:16:36
    Hallo zusammen,

    ich habe nun einige kleinere Bugfixings drin, und die Version aktualisiert.
    Installation, wie gehabt, über den Update-Mechanismus:update thirdparty http://fhem.lmsoft.de/sonos sonos
    Folgendes ist drin:
    - 'rereadcfg'-Problematik wurde korrigiert
    - Diverse Hängermöglichkeiten wurden beseitigt. Unter anderem das von mir entdeckte Problem bzgl. Verarbeitung von Playernachrichten, während ein Befehl gesendet werden soll.
    - Debug-Ausgabe der Grundpfade für die Fehlersuche bei Detlev

    Bitte ausgiebig testen.

    Danke, Reiner
    Titel: Aw: Sonos steuern
    Beitrag von: det. am 23 September 2013, 21:49:09
    Hallo Reiner,

    gleich angetestet und nicht weit gekommen - in putty - keinerlei Ausgaben, im LOG File mit verbose 5:
    2013.09.23 21:44:06 5: Loading /usr/share/fhem/FHEM/00_SONOS.pm
    2013.09.23 21:44:06 1: reload: Error:Modul 00_SONOS deactivated:
     Can't locate UPnP/ControlPoint.pm in @INC (@INC contains: /usr/bin/lib /usr/bin/FHEM/lib ./FHEM/lib ./lib ./FHEM ./ /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl . /usr/share/fhem/FHEM) at /usr/share/fhem/FHEM/00_SONOS.pm line 180, <$fh> line 79.
    BEGIN failed--compilation aborted at /usr/share/fhem/FHEM/00_SONOS.pm line 180, <$fh> line 79.

    2013.09.23 21:44:06 0: Can't locate UPnP/ControlPoint.pm in @INC (@INC contains: /usr/bin/lib /usr/bin/FHEM/lib ./FHEM/lib ./lib ./FHEM ./ /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl . /usr/share/fhem/FHEM) at /usr/share/fhem/FHEM/00_SONOS.pm line 180, <$fh> line 79.
    BEGIN failed--compilation aborted at /usr/share/fhem/FHEM/00_SONOS.pm line 180, <$fh> line 79.


    in putty eingegeben: perl 00_SONOS.pm 4712 4
    pi@rpi2 /usr/share/fhem/FHEM $ perl 00_SONOS.pm 4712 4
    Current: "00_SONOS.pm", gPath: ""
    2013.09.23 21:56:36 1: SONOS0: 00_SONOS.pm is listening to Port 4712
    Titel: Aw: Sonos steuern
    Beitrag von: snoop am 23 September 2013, 23:41:32
    Hallo Reiner,

    auch von mir kurzes Feedback zum rereadcfg.

    Bei mir erscheint die folgende Meldung:

    2013.09.23 23:33:49 3: SONOS0: Disconnecting client...
    2013.09.23 23:33:49 3: SONOS0: Trying to kill Sonos_Thread...
    Can't call method "kill" on an undefined value at FHEM/00_SONOS.pm line 4243, <$client> line 1.

    Sonos Version: aktuell

    Viele Grüße
    Arthur
    Titel: Aw: Sonos steuern
    Beitrag von: Reinerlein am 24 September 2013, 00:34:17
    Hallo zusammen,

    das ist aber auch verzwickt...

    @Detlev: Kannst du mir sagen, mit was dein globales Attribut 'modpath' gefüllt ist? Ich finde es komisch, dass die Standalone-Variante funktioniert, und das eigentliche Fhem-Modul nicht... Ausserdem muss auch beim Laden des Fhem-Moduls eine Ausgabe auf der Konsole rauskommen. Bei einem funktionierenden Modulstart erhält man dort immer zwei Zeilen. Bei mir z.B.:Current: "/etc/fhem/fhem/fhem.pl", gPath: "/etc/fhem/fhem/FHEM"
    Current: "/etc/fhem/fhem/FHEM/00_SONOS.pm", gPath: ""
    2013.09.24 00:29:38 1: SONOS0: /etc/fhem/fhem/FHEM/00_SONOS.pm is listening to Port 4711
    .
    .
    .
    Die erste Zeile beim Modulstart, und die zweite Zeile als eigener Prozess...

    @Arthur: Ich habe das Paket nochmal aktualisiert und habe noch eine weitere Überprüfung eingebaut. Obwohl es mich doch sehr wundert, das der Thread weg sein soll, und immer noch als vorhanden geführt wird... sehr Mysteriös... Das ist jetzt erstmal eine Symptombehebung. Vielleicht reicht das aber ja auch schon...

    Grüße Reiner
    Titel: Aw: Sonos steuern
    Beitrag von: det. am 24 September 2013, 07:27:57
    Hallo Reiner,
    frühe Antwort auf Deine Frage - das:attr global modpath /usr/share/fhem
    Titel: Aw: Sonos steuern
    Beitrag von: Reinerlein am 24 September 2013, 09:29:38
    Hi Detlev,

    das ist echt komisch. Kannst du mir mal dein komplettes Startskript zusenden?
    Die Applikation startet nicht unter dem Namen 'fhem.pl' und wird offiziell aus dem Pfad '/usr/bin' gestartet. Das aber wiederum deckt sich nicht mit der Angabe deines Attributs 'modpath'.

    Leider kenne ich dieses Image, welches du installiert hast, nicht. Deswegen müssen wir hier etwas stochern...

    Grüße Reiner
    Titel: Aw: Sonos steuern
    Beitrag von: snoop am 24 September 2013, 19:00:43
    Hallo Reiner,

    super - danke!!! Daumen hoch! Jetzt geht's - heißt der Test war erfolgreich.

    Bin schon auf den Test der Gruppierungsfunktion gespannt (habe das eine oder andere vor)...

    Viele Grüße
    Arthur
    Titel: Aw: Sonos steuern
    Beitrag von: CQuadrat am 25 September 2013, 08:07:33
    Hallo Reiner,

    dem Kompliment muss ich mich auch anschließen: Super Arbeit!


    Probleme habe ich derzeit nur noch damit, dass Fhem nicht mitbekommt, wenn sich ein Sonos-Gerät an- bzw. abmeldet (habe alle pingtypes ausprobiert). Das PRESENCE-Reading bleibt unverändert. Gibt es da einen Tip, wie man hier das Problem anhand von Logs einkreisen könnte?


    Viele Grüße

    Christoph
    Titel: Aw: Sonos steuern
    Beitrag von: Reinerlein am 25 September 2013, 11:56:11
    Hi Christoph,

    ab LogLevel 4 gibt der IsAlive-Checker aus, wie die Pingvorgänge ausgeführt werden. Ab LogLevel 3 sieht man, wenn der Checker einen Player als nicht mehr vorhanden erkennt. Und ab Level 5 zeigt er auch jedes mal an, welches Verfahren er verwendet.

    Um Fehlerkennungen zu vermeiden, gibt es einen sogenannten Grace-Mode, das bedeutet, dass ein Player nicht sofort als abwesend gemeldet wird, sondern er muss mehrmals hintereinander als solches erkannt werden. Ich hatte ab und zu mal das Problem, dass ein Ping mal verloren ging, und der Player plötzlich abwesend war. Da ein Anwesend aber nur über den Discover-Mechanismus erfolgt (und dieser ja nicht kommt. da der Player ja normal weiterlebt), blieb das Teil immer abwesend.
    Darum dieser Modus...

    Ich persönlich habe gute Erfahrungen mit 'icmp'. Das benötigt aber root-Rechte. Bei 'syn' habe ich das Problem, dass mein Switch die Informationen in seiner Tabelle zu lange speichert, und der Player noch ewig als 'an' erkannt wird.

    Leider ist das ein echt leidiges Thema. Der Player selbst meldet erst beim Wiedereinschalten, dass er weg ist, um kurz danach zu melden, dass er wieder da ist... Das ist natürlich nicht so praktisch, erkennt man aber auch sehr gut am Original-Controller. Dort wird der Player auch noch auf unbestimmte Zeit weitergeführt, und erst beim Einschalten kurz weggemacht und wieder erkannt...

    Vielleicht hilft dir die Untersuchung mittels der Logs... Du kannst sie bei unklarheiten auch gerne posten, dann schaue ich da mal rein...

    Grüße Reiner
    Titel: Aw: Sonos steuern
    Beitrag von: der-Lolo am 26 September 2013, 16:47:40
    Hallo Reinerlein,
    das von Dir vorgeschlagene

    define Sonos_Bad_Appeared_Notify notify Sonos_Bad:presence:.appeared {
      if (ReadingsVal('Sonos_Wohnzimmer', 'transportState', '') eq 'PLAYING') {
        fhem 'set Sonos_Wohnzimmer AddMember Sonos_Bad'
      } else {
        fhem 'set Sonos_Bad LoadRadio Star%20FM' ;;
        fhem 'set Sonos_Bad Play'
      }
    }

    ergibt folgende ausgabe wenn ich die Steckdose anschalte und etwa eine minute warte im Eventmonitor...


    2013-09-26 16:33:04 SONOS Sonos ZoneGroupState:
    2013-09-26 16:33:13 FHEMWEB FHEMWEB:192.168.178.5:49480 rereadicons
    2013-09-26 16:33:13 FHEMWEB FHEMWEB:192.168.178.5:49828 rereadicons
    2013-09-26 16:33:14 FHEMWEB WEB rereadicons
    2013-09-26 16:33:14 FHEMWEB WEBphone rereadicons
    2013-09-26 16:33:14 FHEMWEB WEBtablet rereadicons
    2013-09-26 16:33:15 SONOSPLAYER Sonos_Bad LastSubscriptionsRenew: 2013-09-26 16:33:12
    2013-09-26 16:33:15 SONOSPLAYER Sonos_Bad LastSubscriptionsResult: Just subscribed
    2013-09-26 16:33:15 SONOS Sonos ZoneGroupState:
    2013-09-26 16:33:15 SONOS Sonos ZoneGroupState:
    2013-09-26 16:33:16 FHEMWEB FHEMWEB:192.168.178.5:49480 rereadicons
    2013-09-26 16:33:16 FHEMWEB FHEMWEB:192.168.178.5:49828 rereadicons
    2013-09-26 16:33:17 FHEMWEB WEB rereadicons
    2013-09-26 16:33:17 FHEMWEB WEBphone rereadicons
    2013-09-26 16:33:17 FHEMWEB WEBtablet rereadicons
    2013-09-26 16:33:17 SONOSPLAYER Sonos_Bad LastSubscriptionsRenew: 2013-09-26 16:33:14
    2013-09-26 16:33:17 SONOSPLAYER Sonos_Bad LastSubscriptionsResult: Just subscribed
    2013-09-26 16:33:18 FHEMWEB FHEMWEB:192.168.178.5:49480 rereadicons
    2013-09-26 16:33:18 FHEMWEB FHEMWEB:192.168.178.5:49828 rereadicons
    2013-09-26 16:33:18 FHEMWEB WEB rereadicons
    2013-09-26 16:33:18 FHEMWEB WEBphone rereadicons
    2013-09-26 16:33:19 FHEMWEB WEBtablet rereadicons
    2013-09-26 16:33:19 SONOSPLAYER Sonos_Bad LastSubscriptionsRenew: 2013-09-26 16:33:16
    2013-09-26 16:33:19 SONOSPLAYER Sonos_Bad LastSubscriptionsResult: Just subscribed
    2013-09-26 16:33:19 SONOS Sonos ZoneGroupState:
    2013-09-26 16:33:19 SONOS Sonos ZoneGroupState:


    im Logfile ist gar nichts über Sonos zu sehen...
    Ich habe schon versucht das Sonos_Bad:presence:.appeared in ein
    Sonos_Bad LastSubscriptionsResult: Just subscribed zu ändern,
    aber auch das bringt leider nicht den gewünschten erfolg.

    Hast Du noch eine Idee?

    Insgesamt habe ich festgestellt das mein Netzwerk nicht mehr sooo stabil ist wie vor integration der Sonos Module.
    Ich habe allerdings noch nicht ganz verstanden wie ich die Methode, die teilnehmer zu erkennen, ändern kann.
    Kannst Du mir das vielleicht nochmal kurz erklären?

    Tausend Dank schonmal - tolle Arbeit die Du geleistet hast, ich verspreche mir viele kleine features von Sonos und Speak...

    btw. hat jemand ne ahnung wie ich ankommende anrufe der Fritzbox im FHEM welches auf einem Raspi läuft mit Aktionen belegen kann?
    Titel: Aw: Sonos steuern
    Beitrag von: Reinerlein am 26 September 2013, 17:59:46
    Hallo Der-Lolo,

    da scheint dein Playerzustand vorher nicht auf "disappeared" gewechselt zu haben. Dieses "Event" erfolgt nur, wenn das Reading vorher ein anderes (als "appeared") war. Leider ist es oft so, das man UPnP-Discover-Events erhält, obwohl der Player bereits erkannt ist. In diesem Fall würde dieses Event immer wieder erzeugt werden, was zu unerwünschten Ergebnissen führen würde, deshalb diese Einschränkung...
    Ich habe aber noch eine Anpassung gemacht, dass der Mechanismus beim Wiederanschalten auch ein Zurücksetzen des Presence-Zustands bewirkt. Das bedeutet, dass auch wenn der IsAlive-Checker das nicht mitbekommen hat, beim Wiederanschalten erst ein Event "disappeared" und kurz danach ein Event "appeared" kommen sollte.

    Das ganze ist im Normalfall das Pärchen "disappeared" und "appeared", wenn der IsAlive-Checker aus irgendeinem Grund (noch) nicht die Abwesenheit festgestellt hat, kann normalerweise auch keine (wieder-)anwesenheit festgestellt werden. Das habe ich ja nun etwas erweitert. Vielleicht hilft das ja...

    Wenn du auf "Just Subscribed" triggern willst, musst du beachten, das Fhem in Notify-Definitionen keine Leerzeichen haben will. Du musst dafür also z.B. "Just.subscribed" schreiben. Du könntest vermutlich auch das Leerzeichen maskieren, da bin ich mir aber nicht sicher...

    Und was meinst damit, dass dein Netzwerk nicht mehr soo stabil läuft?
    Welches Netzwerk meinst du?
    Prinzipiell kannst du (oder auch ich) an der Erkennungsmethode der Player nix ändern. Das ist Grundlage des UPnP-Standards. Die Library, die ich verwende, ist aber natürlich nicht perfekt, sodass dort vielleicht der eine oder andere Bug versteckt sein könnte... Die Frage ist, ob ich den finden würde, und auch ändern könnte...
    Oder meintest du etwas anderes mit "Teilnehmer erkennen"?

    Zu den Anrufen: Im Wiki habe ich dazu exemplarische Beispiele, die dir als Grundlage vielleicht einen Einstieg verschaffen können. Man kann dann auch Durchsagen mit dem Namen (sofern im Telefonbuch bekannt) machen. Dabei ist aber zu beachten, dass der Google-Aufruf eine Latenz reinbringt, und der Anruf später gemeldet wird. Das bewegt sich aber im Sekundenbereich...

    Der Update-Server ist bereits aktualisiert :-)

    Grüße Reiner
    Titel: Aw: Sonos steuern
    Beitrag von: der-Lolo am 26 September 2013, 18:38:40
    ich meine mein FHEM Netzwerk, fhem läuft auf einem Raspi, es gibt einen HM-Lan einen Max-Cube und die Phillips Bridge...

    Irgendwo beschreibst du das man das attribut pingtype anpassen könnte und experimentieren sollte um die beste performance zu erreichen.

    Erst hatte ich gerade ein bisschen Bange wegen dem updaten, es lief aber total problemlos, Danke Dir.

    Leider funktioniert das setzen des abspielens immer noch nicht..


    2013-09-26 18:29:41 SONOSPLAYER Sonos_Wohnzimmer currentSenderInfo: Stone Temple Pilots - Plush
    2013-09-26 18:29:41 SONOSPLAYER Sonos_Wohnzimmer infoSummarize1: Star FM Berlin: 'Rush Hour' - Stone Temple Pilots - Plush
    2013-09-26 18:29:41 SONOSPLAYER Sonos_Wohnzimmer infoSummarize2: PLAYING => Star FM Berlin: 'Rush Hour' - Stone Temple Pilots - Plush
    2013-09-26 18:29:41 SONOSPLAYER Sonos_Wohnzimmer PLAYING => Star FM Berlin: 'Rush Hour' - Stone Temple Pilots - Plush
    2013-09-26 18:30:02 HUEDevice HUEDevice9 bri: 254
    2013-09-26 18:30:02 HUEDevice HUEDevice9 onoff: 1
    2013-09-26 18:30:02 HUEDevice HUEDevice9 level: 100 %
    2013-09-26 18:30:02 HUEDevice HUEDevice9 pct: 100
    2013-09-26 18:30:02 HUEDevice HUEDevice9 on
    2013-09-26 18:30:02 HUEDevice HUEDevice9 RGB: 000000

    2013-09-26 18:30:42 SONOS Sonos ZoneGroupState:
    2013-09-26 18:30:46 PRESENCE Denon present
    2013-09-26 18:30:52 FHEMWEB FHEMWEB:192.168.178.4:52829 rereadicons
    2013-09-26 18:30:52 FHEMWEB FHEMWEB:192.168.178.4:52830 rereadicons
    2013-09-26 18:30:53 FHEMWEB FHEMWEB:192.168.178.4:52831 rereadicons
    2013-09-26 18:30:53 FHEMWEB FHEMWEB:192.168.178.4:52832 rereadicons
    2013-09-26 18:30:54 FHEMWEB FHEMWEB:192.168.178.4:52833 rereadicons
    2013-09-26 18:30:54 FHEMWEB FHEMWEB:192.168.178.4:52834 rereadicons
    2013-09-26 18:30:54 FHEMWEB FHEMWEB:192.168.178.5:50386 rereadicons
    2013-09-26 18:30:55 FHEMWEB FHEMWEB:192.168.178.5:50427 rereadicons
    2013-09-26 18:30:55 FHEMWEB WEB rereadicons
    2013-09-26 18:30:56 FHEMWEB WEBphone rereadicons
    2013-09-26 18:30:56 FHEMWEB WEBtablet rereadicons
    2013-09-26 18:30:57 SONOSPLAYER Sonos_Bad LastSubscriptionsRenew: 2013-09-26 18:30:51
    2013-09-26 18:30:57 SONOSPLAYER Sonos_Bad LastSubscriptionsResult: Just subscribed
    2013-09-26 18:30:57 SONOS Sonos ZoneGroupState:
    2013-09-26 18:30:57 SONOS Sonos ZoneGroupState:
    2013-09-26 18:30:57 FHEMWEB FHEMWEB:192.168.178.4:52829 rereadicons
    2013-09-26 18:30:57 FHEMWEB FHEMWEB:192.168.178.4:52830 rereadicons
    2013-09-26 18:30:58 FHEMWEB FHEMWEB:192.168.178.4:52831 rereadicons
    2013-09-26 18:30:58 FHEMWEB FHEMWEB:192.168.178.4:52832 rereadicons
    2013-09-26 18:30:58 FHEMWEB FHEMWEB:192.168.178.4:52833 rereadicons
    2013-09-26 18:30:58 FHEMWEB FHEMWEB:192.168.178.4:52834 rereadicons
    2013-09-26 18:30:58 FHEMWEB FHEMWEB:192.168.178.5:50386 rereadicons
    2013-09-26 18:30:59 FHEMWEB FHEMWEB:192.168.178.5:50427 rereadicons
    2013-09-26 18:30:59 FHEMWEB WEB rereadicons
    2013-09-26 18:30:59 FHEMWEB WEBphone rereadicons
    2013-09-26 18:30:59 FHEMWEB WEBtablet rereadicons
    2013-09-26 18:30:59 SONOSPLAYER Sonos_Bad LastSubscriptionsRenew: 2013-09-26 18:30:53
    2013-09-26 18:30:59 SONOSPLAYER Sonos_Bad LastSubscriptionsResult: Just subscribed
    2013-09-26 18:31:00 FHEMWEB FHEMWEB:192.168.178.4:52829 rereadicons
    2013-09-26 18:31:00 FHEMWEB FHEMWEB:192.168.178.4:52830 rereadicons
    2013-09-26 18:31:00 FHEMWEB FHEMWEB:192.168.178.4:52831 rereadicons
    2013-09-26 18:31:00 FHEMWEB FHEMWEB:192.168.178.4:52832 rereadicons
    2013-09-26 18:31:00 FHEMWEB FHEMWEB:192.168.178.4:52833 rereadicons
    2013-09-26 18:31:01 FHEMWEB FHEMWEB:192.168.178.4:52834 rereadicons
    2013-09-26 18:31:01 FHEMWEB FHEMWEB:192.168.178.5:50386 rereadicons
    2013-09-26 18:31:01 FHEMWEB FHEMWEB:192.168.178.5:50427 rereadicons
    2013-09-26 18:31:01 FHEMWEB WEB rereadicons
    2013-09-26 18:31:02 FHEMWEB WEBphone rereadicons
    2013-09-26 18:31:02 FHEMWEB WEBtablet rereadicons
    2013-09-26 18:31:02 SONOSPLAYER Sonos_Bad LastSubscriptionsRenew: 2013-09-26 18:30:55
    2013-09-26 18:31:02 SONOSPLAYER Sonos_Bad LastSubscriptionsResult: Just subscribed
    2013-09-26 18:31:02 SONOS Sonos ZoneGroupState:


    im logfile findet sich folgendes...

    2013.09.26 18:24:07 1: readingsUpdate(Sonos_Bad,presence,disappeared) missed to call readingsBeginUpdate first.
    2013.09.26 18:24:09 1: readingsUpdate(Sonos_Bad,presence,disappeared) missed to call readingsBeginUpdate first.
    2013.09.26 18:24:09 1: readingsUpdate(Sonos_Bad,presence,disappeared) missed to call readingsBeginUpdate first.
    2013.09.26 18:30:42 1: readingsUpdate(Sonos_Bad,presence,disappeared) missed to call readingsBeginUpdate first.
    2013.09.26 18:30:43 1: readingsUpdate(Sonos_Bad,presence,disappeared) missed to call readingsBeginUpdate first.
    2013.09.26 18:30:43 1: readingsUpdate(Sonos_Bad,presence,disappeared) missed to call readingsBeginUpdate first.
    2013.09.26 18:30:56 3: Sonos_Bad_Appeared_Notify return value: Unknown command LastSubscriptionsResult:, try help.
    2013.09.26 18:30:57 3: Sonos_Bad_Appeared_Notify return value: Unknown command LastSubscriptionsResult:, try help.
    2013.09.26 18:30:59 3: Sonos_Bad_Appeared_Notify return value: Unknown command LastSubscriptionsResult:, try help.
    2013.09.26 18:30:59 3: Sonos_Bad_Appeared_Notify return value: Unknown command LastSubscriptionsResult:, try help.
    2013.09.26 18:31:02 3: Sonos_Bad_Appeared_Notify return value: Unknown command LastSubscriptionsResult:, try help.
    2013.09.26 18:31:02 3: Sonos_Bad_Appeared_Notify return value: Unknown command LastSubscriptionsResult:, try help.

    das folgende kam dann als ich versuchte die Leerzeichen durch punkte zu ersetzen...

    zumindest spricht das Notify jetzt endlich an...

    Sonos_Bad_Appeared_Notify return value: syntax error at (eval 1079) line 1, near "\   if"
    syntax error at (eval 1079) line 1, near "'set Sonos_Bad Play' \"

    2013.09.26 18:45:15 3: Sonos_Bad_Appeared_Notify return value: syntax error at (eval 1087) line 1, near "\   if"
    syntax error at (eval 1087) line 1, near "'set Sonos_Bad Play' \"

    2013.09.26 18:45:16 3: Sonos_Bad_Appeared_Notify return value: syntax error at (eval 1095) line 1, near "\   if"
    syntax error at (eval 1095) line 1, near "'set Sonos_Bad Play' \"


    Ok, ich habe ein paar \ entfernt...

    2013.09.26 19:53:38 2: SONOS0: Error during MainTrigger: syntax error at (eval 329) line 1, near "understand you:"
     - Trying to execute 'Sorry. I don't understand you: 'A:RINCON_000E58F09A0E01400_MR:minVolume:0''
    2013.09.26 19:53:52 3: SONOSPLAYER0: Ausstehenden Befehl erkannt. Verlagere die Ausführung von set Sonos_Wohnzimmer->AddMember(Sonos_Bad) um 1s.
    2013.09.26 19:53:53 3: SONOSPLAYER0: Versuche jetzt set Sonos_Wohnzimmer->AddMember(Sonos_Bad) auszuführen.
    2013.09.26 19:53:53 3: SONOSPLAYER0: Immer noch ausstehenden Befehl erkannt. Verlagere die Ausführung von set Sonos_Wohnzimmer->AddMember(Sonos_Bad) um eine weitere Sekunde.
    2013.09.26 19:53:54 3: SONOSPLAYER0: Versuche jetzt set Sonos_Wohnzimmer->AddMember(Sonos_Bad) auszuführen.
    2013.09.26 19:53:54 3: SONOSPLAYER0: Immer noch ausstehenden Befehl erkannt. Verlagere die Ausführung von set Sonos_Wohnzimmer->AddMember(Sonos_Bad) um eine weitere Sekunde.
    2013.09.26 19:53:55 3: SONOSPLAYER0: Versuche jetzt set Sonos_Wohnzimmer->AddMember(Sonos_Bad) auszuführen.
    2013.09.26 19:53:55 3: SONOSPLAYER0: Immer noch ausstehenden Befehl erkannt. Verlagere die Ausführung von set Sonos_Wohnzimmer->AddMember(Sonos_Bad) um eine weitere Sekunde.
    2013.09.26 19:53:56 3: SONOSPLAYER0: Versuche jetzt set Sonos_Wohnzimmer->AddMember(Sonos_Bad) auszuführen.
    2013.09.26 19:53:56 3: SONOSPLAYER0: Immer noch ausstehenden Befehl erkannt. Verlagere die Ausführung von set Sonos_Wohnzimmer->AddMember(Sonos_Bad) um eine weitere Sekunde.
    2013.09.26 19:53:57 3: SONOSPLAYER0: Versuche jetzt set Sonos_Wohnzimmer->AddMember(Sonos_Bad) auszuführen.
    2013.09.26 19:53:57 3: SONOSPLAYER0: Immer noch ausstehenden Befehl erkannt. Verlagere die Ausführung von set Sonos_Wohnzimmer->AddMember(Sonos_Bad) um eine weitere Sekunde.
    2013.09.26 19:53:58 3: SONOSPLAYER0: Versuche jetzt set Sonos_Wohnzimmer->AddMember(Sonos_Bad) auszuführen.
    2013.09.26 19:53:58 3: SONOSPLAYER0: Immer noch ausstehenden Befehl erkannt. Verlagere die Ausführung von set Sonos_Wohnzimmer->AddMember(Sonos_Bad) um eine weitere Sekunde.
    2013.09.26 19:53:59 3: SONOSPLAYER0: Versuche jetzt set Sonos_Wohnzimmer->AddMember(Sonos_Bad) auszuführen.
    2013.09.26 19:54:00 3: SONOSPLAYER0: Immer noch ausstehenden Befehl erkannt. Verlagere die Ausführung von set Sonos_Wohnzimmer->AddMember(Sonos_Bad) um eine weitere Sekunde.
    2013.09.26 19:54:02 3: SONOSPLAYER0: Versuche jetzt set Sonos_Wohnzimmer->AddMember(Sonos_Bad) auszuführen.
    2013.09.26 19:54:02 3: SONOSPLAYER0: Immer noch ausstehenden Befehl erkannt. Verlagere die Ausführung von set Sonos_Wohnzimmer->AddMember(Sonos_Bad) um eine weitere Sekunde.
    2013.09.26 19:54:02 3: SONOSPLAYER0: Ausstehenden Befehl erkannt. Verlagere die Ausführung von set Sonos_Wohnzimmer->AddMember(Sonos_Bad) um 1s.
    2013.09.26 19:54:03 3: SONOSPLAYER0: Versuche jetzt set Sonos_Wohnzimmer->AddMember(Sonos_Bad) auszuführen.
    2013.09.26 19:54:03 3: SONOSPLAYER0: Immer noch ausstehenden Befehl erkannt. Verlagere die Ausführung von set Sonos_Wohnzimmer->AddMember(Sonos_Bad) um eine weitere Sekunde.
    2013.09.26 19:54:04 3: SONOSPLAYER0: Versuche jetzt set Sonos_Wohnzimmer->AddMember(Sonos_Bad) auszuführen.
    2013.09.26 19:54:04 3: SONOSPLAYER0: Immer noch ausstehenden Befehl erkannt. Verlagere die Ausführung von set Sonos_Wohnzimmer->AddMember(Sonos_Bad) um eine weitere Sekunde.
    2013.09.26 19:54:05 3: SONOSPLAYER0: Versuche jetzt set Sonos_Wohnzimmer->AddMember(Sonos_Bad) auszuführen.
    2013.09.26 19:54:05 3: SONOSPLAYER0: Immer noch ausstehenden Befehl erkannt. Verlagere die Ausführung von set Sonos_Wohnzimmer->AddMember(Sonos_Bad) um eine weitere Sekunde.
    2013.09.26 19:54:07 3: SONOSPLAYER0: Versuche jetzt set Sonos_Wohnzimmer->AddMember(Sonos_Bad) auszuführen.
    2013.09.26 19:54:07 3: SONOSPLAYER0: Immer noch ausstehenden Befehl erkannt. Verlagere die Ausführung von set Sonos_Wohnzimmer->AddMember(Sonos_Bad) um eine weitere Sekunde.
    2013.09.26 19:54:08 3: SONOSPLAYER0: Versuche jetzt set Sonos_Wohnzimmer->AddMember(Sonos_Bad) auszuführen.
    2013.09.26 19:54:08 3: SONOSPLAYER0: Immer noch ausstehenden Befehl erkannt. Verlagere die Ausführung von set Sonos_Wohnzimmer->AddMember(Sonos_Bad) um eine weitere Sekunde.
    2013.09.26 19:54:09 3: SONOSPLAYER0: Versuche jetzt set Sonos_Wohnzimmer->AddMember(Sonos_Bad) auszuführen.
    2013.09.26 19:54:09 3: SONOSPLAYER0: Immer noch ausstehenden Befehl erkannt. Verlagere die Ausführung von set Sonos_Wohnzimmer->AddMember(Sonos_Bad) um eine weitere Sekunde.

    Titel: Aw: Sonos steuern
    Beitrag von: Reinerlein am 26 September 2013, 20:54:55
    Hallo Der-Lolo,

    sorry, da ist mir ein Tippfehler unterlaufen, und mein Test hat den nicht bemerkt.
    Ich habe das nochmal korrigiert. Damit sollte die Fehlermeldung mit dem 'missed to call readingsBeginUpdate first' erledigt sein...

    Vielleicht sind das andere nur Folgefehler, da ich mir die nicht so richtig erklären kann.

    Zu den Backslashs: Die sind notwendig, wenn du in der Fhem-Komfiguration z.B. einen Notify über mehrere Zeilen gehen lassen möchtest. Dabei muss der Backslash den Zeilenvorschub maskieren, also das letzte Zeichen in der Zeile sein (auch kein Leerzeichen dahinter).

    Probiers doch bitte nochmal...

    Grüße Reiner
    Titel: Aw: Sonos steuern
    Beitrag von: der-Lolo am 26 September 2013, 21:51:23
    es läuft leider immer noch nicht...

    aktuell bekome ich im Log folgendes:

    2013.09.26 21:47:08 2: SONOS0: Error during MainTrigger: syntax error at (eval 614) line 1, near "understand you:"
     - Trying to execute 'Sorry. I don't understand you: 'A:RINCON_000E58F09A0E01400_MR:buttonEvents:''

    aber ich glaube es geht trotzdem vorwärts...



    2013-09-26 21:59:56 SONOSPLAYER Sonos_Wohnzimmer LastSetActionName: AddMember
    2013-09-26 21:59:56 SONOSPLAYER Sonos_Bad presence: appeared
    2013-09-26 21:59:56 SONOSPLAYER Sonos_Bad LastSubscriptionsRenew: 2013-09-26 21:59:53
    2013-09-26 21:59:56 SONOSPLAYER Sonos_Bad LastSubscriptionsResult: Just subscribed
    2013-09-26 21:59:57 HUEDevice HUEDevice14 RGB: ef2c34
    2013-09-26 21:59:57 HUEDevice HUEDevice4 RGB: a34f13
    2013-09-26 21:59:57 HUEDevice HUEDevice3 RGB: a34f13
    2013-09-26 21:59:57 HUEDevice HUEDevice2 RGB: a34f13
    2013-09-26 21:59:57 HUEDevice HUEDevice12 RGB: 816e11
    2013-09-26 21:59:58 HUEDevice HUEDevice13 RGB: 7c5a19
    2013-09-26 21:59:58 HUEDevice HUEDevice5 RGB: 7c74fc
    2013-09-26 21:59:58 HUEDevice HUEDevice6 RGB: ff700c
    2013-09-26 21:59:58 HUEDevice HUEDevice7 RGB: 000000
    2013-09-26 21:59:58 HUEDevice HUEDevice9 RGB: 000000
    2013-09-26 21:59:58 HUEDevice HUEDevice8 RGB: 000000
    2013-09-26 21:59:58 HUEDevice HUEDevice10 RGB: 000000
    2013-09-26 21:59:59 FHEMWEB FHEMWEB:192.168.178.4:53878 rereadicons
    2013-09-26 21:59:59 FHEMWEB FHEMWEB:192.168.178.5:51237 rereadicons
    2013-09-26 21:59:59 FHEMWEB WEB rereadicons
    2013-09-26 22:00:00 FHEMWEB WEBphone rereadicons
    2013-09-26 22:00:01 FHEMWEB WEBtablet rereadicons
    2013-09-26 22:00:01 SONOSPLAYER Sonos_Bad LastSubscriptionsRenew: 2013-09-26 21:59:53
    2013-09-26 22:00:01 SONOSPLAYER Sonos_Bad LastSubscriptionsResult: Just subscribed
    2013-09-26 22:00:01 FHEMWEB FHEMWEB:192.168.178.4:53878 rereadicons
    2013-09-26 22:00:02 FHEMWEB FHEMWEB:192.168.178.5:51237 rereadicons
    2013-09-26 22:00:02 FHEMWEB WEB rereadicons
    2013-09-26 22:00:03 FHEMWEB WEBphone rereadicons
    2013-09-26 22:00:03 FHEMWEB WEBtablet rereadicons
    2013-09-26 22:00:03 SONOSPLAYER Sonos_Bad LastSubscriptionsRenew: 2013-09-26 21:59:54
    2013-09-26 22:00:03 SONOSPLAYER Sonos_Bad LastSubscriptionsResult: Just subscribed
    2013-09-26 22:00:03 SONOS Sonos ZoneGroupState:
    2013-09-26 22:00:03 SONOSPLAYER Sonos_Bad SleepTimerVersion:
    2013-09-26 22:00:03 SONOSPLAYER Sonos_Bad currentTrackURI:
    2013-09-26 22:00:03 SONOSPLAYER Sonos_Bad infoSummarize1: (0) '0' vom Album '0'
    2013-09-26 22:00:03 SONOSPLAYER Sonos_Bad infoSummarize2: STOPPED => (0) '0' vom Album '0'
    2013-09-26 22:00:03 SONOSPLAYER Sonos_Bad infoSummarize4:
    2013-09-26 22:00:03 SONOSPLAYER Sonos_Bad STOPPED => (0) '0' vom Album '0'
    2013-09-26 22:00:03 SONOS Sonos ZoneGroupState:
    2013-09-26 22:00:04 FHEMWEB FHEMWEB:192.168.178.4:53878 rereadicons
    2013-09-26 22:00:04 FHEMWEB FHEMWEB:192.168.178.5:51237 rereadicons
    2013-09-26 22:00:04 FHEMWEB WEB rereadicons
    2013-09-26 22:00:04 FHEMWEB WEBphone rereadicons
    2013-09-26 22:00:05 FHEMWEB WEBtablet rereadicons
    2013-09-26 22:00:05 SONOSPLAYER Sonos_Bad LastSubscriptionsRenew: 2013-09-26 21:59:56
    2013-09-26 22:00:05 SONOSPLAYER Sonos_Bad LastSubscriptionsResult: Just subscribed
    2013-09-26 22:00:05 SONOS Sonos ZoneGroupState:
    2013-09-26 22:00:05 SONOS Sonos ZoneGroupState:
    2013-09-26 22:00:05 HUEDevice HUEDevice1 RGB: 000000
    2013-09-26 22:00:06 FHEMWEB FHEMWEB:192.168.178.4:53878 rereadicons
    2013-09-26 22:00:06 FHEMWEB FHEMWEB:192.168.178.5:51237 rereadicons
    2013-09-26 22:00:07 FHEMWEB WEB rereadicons
    2013-09-26 22:00:07 FHEMWEB WEBphone rereadicons
    2013-09-26 22:00:08 FHEMWEB WEBtablet rereadicons
    2013-09-26 22:00:08 SONOSPLAYER Sonos_Bad LastSubscriptionsRenew: 2013-09-26 21:59:58
    2013-09-26 22:00:08 SONOSPLAYER Sonos_Bad LastSubscriptionsResult: Just subscribed
    2013-09-26 22:00:08 FHEMWEB FHEMWEB:192.168.178.4:53878 rereadicons
    2013-09-26 22:00:09 FHEMWEB FHEMWEB:192.168.178.5:51237 rereadicons
    2013-09-26 22:00:09 FHEMWEB WEB rereadicons
    2013-09-26 22:00:09 FHEMWEB WEBphone rereadicons
    2013-09-26 22:00:10 FHEMWEB WEBtablet rereadicons
    2013-09-26 22:00:10 SONOSPLAYER Sonos_Bad LastSubscriptionsRenew: 2013-09-26 21:59:58
    2013-09-26 22:00:10 SONOSPLAYER Sonos_Bad LastSubscriptionsResult: Just subscribed
    2013-09-26 22:00:11 FHEMWEB FHEMWEB:192.168.178.4:53878 rereadicons
    2013-09-26 22:00:11 FHEMWEB FHEMWEB:192.168.178.5:51237 rereadicons
    2013-09-26 22:00:12 FHEMWEB WEB rereadicons
    2013-09-26 22:00:12 FHEMWEB WEBphone rereadicons
    2013-09-26 22:00:12 FHEMWEB WEBtablet rereadicons
    2013-09-26 22:00:12 SONOSPLAYER Sonos_Bad LastSubscriptionsRenew: 2013-09-26 22:00:01
    2013-09-26 22:00:12 SONOSPLAYER Sonos_Bad LastSubscriptionsResult: Just subscribed
    2013-09-26 22:00:13 SONOS Sonos ZoneGroupState:
    2013-09-26 22:00:13 SONOS Sonos ZoneGroupState:
    2013-09-26 22:00:13 SONOS Sonos ZoneGroupState:
    2013-09-26 22:00:16 FHEMWEB FHEMWEB:192.168.178.4:53878 rereadicons
    2013-09-26 22:00:17 FHEMWEB FHEMWEB:192.168.178.5:51237 rereadicons
    2013-09-26 22:00:17 FHEMWEB WEB rereadicons
    2013-09-26 22:00:18 FHEMWEB WEBphone rereadicons
    2013-09-26 22:00:18 FHEMWEB WEBtablet rereadicons
    2013-09-26 22:00:18 SONOSPLAYER Sonos_Bad LastSubscriptionsRenew: 2013-09-26 22:00:16
    2013-09-26 22:00:18 SONOSPLAYER Sonos_Bad LastSubscriptionsResult: Just subscribed
    2013-09-26 22:00:19 PRESENCE Denon present
    2013-09-26 22:00:25 FHEMWEB FHEMWEB:192.168.178.4:53878 rereadicons
    2013-09-26 22:00:25 FHEMWEB FHEMWEB:192.168.178.5:51237 rereadicons
    2013-09-26 22:00:25 FHEMWEB WEB rereadicons
    2013-09-26 22:00:26 FHEMWEB WEBphone rereadicons
    2013-09-26 22:00:26 FHEMWEB WEBtablet rereadicons
    2013-09-26 22:00:26 SONOSPLAYER Sonos_Bad LastSubscriptionsRenew: 2013-09-26 22:00:24
    2013-09-26 22:00:26 SONOSPLAYER Sonos_Bad LastSubscriptionsResult: Just subscribed


    2013.09.26 22:00:13 2: SONOS0: Error during MainTrigger: syntax error at (eval 873) line 1, near "understand you:"
     - Trying to execute 'Sorry. I don't understand you: 'R:RINCON_000E58F09A0E01400_MR:Mute:0''
    Titel: Aw: Sonos steuern
    Beitrag von: Will am 26 September 2013, 23:02:17
    can't use an undefined value as a HASH reference at ./FHEM/21_SONOSPLAYER.pm line 361


    Habe nun auch upgegraded. Sobald ich Sonos starte kommt die Fehlermeldung oben und Fhem verabschiedet sich.

    Passt das ins Bild?



    Wil
     
     
    Titel: Aw: Sonos steuern
    Beitrag von: Reinerlein am 26 September 2013, 23:16:14
    Hi Will,

    hmmm... Bist du sicher, dass auf den letzten Stand geupdatet hast? Kam da vielleicht eine Fehlermeldung, dass er irgendwas nicht aktualisieren konnte?
    An dieser Stelle (Zeile 361) wird keine Hash-Reference erwartet (und kann somit auch nicht undefined sein :-)
    Dort wird auf eine Thread-Queue zugegriffen, um zu erfahren, wieviele Anweisungen bereits auf Ausführung warten. Kam irgendwann vorher vielleicht eine Fehlermeldung, dass er irgendeine Library vermissen würde?

    Grüße Reiner
    Titel: Aw: Sonos steuern
    Beitrag von: Will am 27 September 2013, 07:11:07
    Hi reinerlein,

    Korrekt erkannt, beim ersten updateversuch hat er über Zugriffsrechte einiger dateien gemeckert.
    Habe diese Dateien über chown umgebogen, dann wieder update. --> nothing to do. Offensichtlich wird irgendwo vermerkt dass ein update gefahren wurde ohne dass alles abgeschlossen war.
    Dann habe ich gewartet bis du ein neues update gebracht hast, das lief dann durch und ich dachte das geht. Leider nicht.

    Habe ich die Möglichkeit sonos neu aufzusetzen, also 'druberzubugeln'?

    Wil
    Titel: Aw: Sonos steuern
    Beitrag von: Reinerlein am 27 September 2013, 10:27:27
    Hi Will,

    da war dann das Pech, dass ich nur die Datei "SONOS" verändert hatte, und er damit die Datei "SONOSPLAYER" nicht nochmal aktualisiert hat :-)

    Das kannst du mit dem Parameter "force" am Ende erreichen:update thirdparty http://fhem.lmsoft.de/sonos sonos force
    Probiers mal bitte aus...

    Grüße Reiner
    Titel: Aw: Sonos steuern
    Beitrag von: Will am 27 September 2013, 22:07:54
    Hi reinerlein,

    So alle relevanten files mit fhem zugriff versehen mit force installiert. Scheint zu gehen.
    Danke.

    W
    Titel: Aw: Sonos steuern
    Beitrag von: der-Lolo am 27 September 2013, 22:49:52
    Auch hier gibt's Erfolge...
    Zumindest die erste Bedingung funktioniert...
    Und wie durch zauberhaft geht die Musik im Bad an - danke dir Reinerlein
    Titel: Aw: Sonos steuern
    Beitrag von: Will am 28 September 2013, 08:02:22
    pi@raspberrypi /opt/fhem $ Undefined subroutine &main::SONOS_getAllSonosplayerDevices called at ./FH
    EM/21_SONOSPLAYER.pm line 674.


    Also die Installation hat geklappt weil ich sehe die neuen features - wenn ich über fhwm sonos bedienen will stürzt fhem ab.
    Fehlermeldung oben.

    W
    Titel: Aw: Sonos steuern
    Beitrag von: Reinerlein am 28 September 2013, 09:59:37
    Hi Will,

    das deutet darauf hin, dass das Sonos-Modul nicht geladen werden konnte. Gibt es weiter oben noch eine Fehlermeldung, die auf ein nicht geladenes Modul hindeutet?
    Du hattest ja ein Update durchgeführt. Hast du danach die Konfiguration des Sonos-Device angepasst, oder so belassen? Es sind Parameter hinzugekommen, die zwar optional sind, deren Optionalität von mir aber nicht wirklich geprüft wurde. Es kann also durchaus sein, dass dort ein Fehler auftritt. Dann wäre der erste Workaround eine komplette Definition z.B.:define Sonos SONOS localhost:4711 30
    Desweiteren sollte dieses Sonos-Device vor irgendwelchen SonosPlayer-Devices definiert werden...

    Auf jeden Fall wird hier das Modul SONOS vermisst (bzw. eine dort definierte Sub-Routine), da das Update geklappt hat, kann es ja keine alte Version mehr sein.

    Grüße Reiner
    Titel: Aw: Sonos steuern
    Beitrag von: der-Lolo am 01 Oktober 2013, 17:36:06
    Hallo Reinerlein,
    gestern abend habe ich noch ein update auf FHEM gemacht...
    Über nacht hat mir dann SONOS das Logfile mit

    Use of uninitialized value in string eq at ./FHEM/00_SONOS.pm line 3809.
    Use of uninitialized value in string eq at ./FHEM/00_SONOS.pm line 3805.
    Use of uninitialized value in string eq at ./FHEM/00_SONOS.pm line 3767.
    Use of uninitialized value in string eq at ./FHEM/00_SONOS.pm line 3790.
    Use of uninitialized value in string eq at ./FHEM/00_SONOS.pm line 3767.

    vollgeschrieben...
    Hast Du eine Erklärung?
    Was kann ich tun?
    Titel: Aw: Sonos steuern
    Beitrag von: Reinerlein am 01 Oktober 2013, 18:44:54
    Hallo Der-Lolo,

    das ist wirklich komisch. Da scheinst du Fhem-Devices zu haben, deren Typ undefiniert ist.
    Wie kann man das hinbekommen?

    An dieser Stelle suche ich alle Fhem Defines durch, und suche das SONOS- bzw. das gesuchte SONOSPLAYER-Device heraus. Dort (in den Zeilen 3805 und 3809 z.B.) wird eben der Typ des Defines mit einer Konstanten verglichen. Das sollte niemals einen solchen Fehler werfen...

    Ich bin da wirklich überfragt. Ich werde demnächst wieder eine neue Version herausbringen, die die Befehle an die Player schneller verarbeiten wird, aber an dieser Stelle wird der Code genauso aussehen...

    Kannst du vielleicht mal eine minimalistische Fhem-Konfiguration erzeugen, wo das Problem auftritt, und diese hier posten?

    Grüße Reiner
    Titel: Aw: Sonos steuern
    Beitrag von: der-Lolo am 01 Oktober 2013, 18:56:15
    Hm, vielleicht hab ich etwas früh alarm geschlagen - haben den Raspi gerade mal neugestartet, nun ist es weg...
    sorry falls ich für Kopfzerbrechen sorgte...

    Titel: Aw: Sonos steuern
    Beitrag von: der-Lolo am 03 Oktober 2013, 11:02:58
    jetzt muss ich doch nochmal fragen...
    Bis jetzt hatte ich im Wohnzimmer immer ne Wiedergabe, das gruppieren funktionierte ja auch meistens ;-)

    Aber nun ohne wiedergabe im Wohnzimmer startet der Play3 nicht das Radio

    2013-10-03 10:56:59 SONOSPLAYER Sonos_Bad presence: appeared
    2013-10-03 10:56:59 SONOSPLAYER Sonos_Bad LastSubscriptionsRenew: 2013-10-03 10:56:54
    2013-10-03 10:56:59 SONOSPLAYER Sonos_Bad LastSubscriptionsResult: Just subscribed
    2013-10-03 10:56:59 SONOSPLAYER Sonos_Bad LastSetActionName: LoadRadio
    2013-10-03 10:56:59 SONOS Sonos ZoneGroupState:
    2013-10-03 10:56:59 SONOS Sonos ZoneGroupState:
    2013-10-03 10:57:00 FHEMWEB FHEMWEB:192.168.178.5:50635 rereadicons
    2013-10-03 10:57:00 FHEMWEB FHEMWEB:192.168.178.5:50636 rereadicons
    2013-10-03 10:57:00 FHEMWEB FHEMWEB:192.168.178.5:50637 rereadicons
    2013-10-03 10:57:00 FHEMWEB FHEMWEB:192.168.178.5:50638 rereadicons
    2013-10-03 10:57:01 FHEMWEB FHEMWEB:192.168.178.5:50639 rereadicons
    2013-10-03 10:57:01 FHEMWEB FHEMWEB:192.168.178.5:50640 rereadicons
    2013-10-03 10:57:01 FHEMWEB WEB rereadicons
    2013-10-03 10:57:01 FHEMWEB WEBphone rereadicons
    2013-10-03 10:57:01 FHEMWEB WEBtablet rereadicons
    2013-10-03 10:57:02 SONOSPLAYER Sonos_Bad LastSubscriptionsRenew: 2013-10-03 10:56:56
    2013-10-03 10:57:02 SONOSPLAYER Sonos_Bad LastSubscriptionsResult: Just subscribed
    2013-10-03 10:57:02 FHEMWEB FHEMWEB:192.168.178.5:50635 rereadicons
    2013-10-03 10:57:02 FHEMWEB FHEMWEB:192.168.178.5:50636 rereadicons
    2013-10-03 10:57:02 FHEMWEB FHEMWEB:192.168.178.5:50637 rereadicons
    2013-10-03 10:57:03 FHEMWEB FHEMWEB:192.168.178.5:50638 rereadicons
    2013-10-03 10:57:03 FHEMWEB FHEMWEB:192.168.178.5:50639 rereadicons
    2013-10-03 10:57:03 FHEMWEB FHEMWEB:192.168.178.5:50640 rereadicons
    2013-10-03 10:57:03 FHEMWEB WEB rereadicons
    2013-10-03 10:57:03 FHEMWEB WEBphone rereadicons
    2013-10-03 10:57:03 FHEMWEB WEBtablet rereadicons
    2013-10-03 10:57:04 SONOSPLAYER Sonos_Bad LastSubscriptionsRenew: 2013-10-03 10:56:58
    2013-10-03 10:57:04 SONOSPLAYER Sonos_Bad LastSubscriptionsResult: Just subscribed
    2013-10-03 10:57:04 SONOSPLAYER Sonos_Bad LastSetActionResult: Radiofavourite "Starpresence:" not found. Choose one of: "Star FM Berlin"
    2013-10-03 10:57:04 SONOS Sonos ZoneGroupState:
    2013-10-03 10:57:04 SONOS Sonos ZoneGroupState:
    2013-10-03 10:57:05 SONOSPLAYER Sonos_Bad LastSetActionName: Play
    2013-10-03 10:57:05 SONOSPLAYER Sonos_Bad LastSetActionResult: Error! UPnP-Fault-Fields: Code: "s:Client", String: "UPnPError", Actor: "-", Detail: "{UPnPError => {errorCode => 701}}"

    Hast Du ne Idee was da nun schief läuft?
    Wie kommt das LastSetActionResult: Radiofavourite "Starpresence:" not found zustande..?
    und warum spielt UPnP nicht mir?
    Titel: Aw: Sonos steuern
    Beitrag von: Reinerlein am 03 Oktober 2013, 11:35:37
    Hallo Der-Lolo,

    du kannst nur Radiosender abspielen, die sich in deiner Radiosender-Favoritenliste befinden. Dort befindet sich bei dir aber nur der Sender "Star FM Berlin".
    Dort musst du einfach "Starpresence:" hinzufügen (mit deinem Sonos-Controller), dann sollte es gehen.

    Überprüfen kannst du die Liste mit dem Befehl "get Sonos_Bad Radios". Dann steht im Ergebnis die Liste der möglichen Radiosender (das ist die gleiche wie in der Fehlermeldung selbst).

    Der UPnP-Fehler kommt vom Player, da er den Sender nicht abspielen konnte...

    Grüße Reiner
    Titel: Aw: Sonos steuern
    Beitrag von: der-Lolo am 03 Oktober 2013, 14:26:48
    Ich glaube du hast mich nicht richtig verstanden, ich moechte ja star fm berlin hoeren, und frage mich wo dieses starpresence ueberhaupt her kommt... Im notify habe ich auch
    fhem 'set Sonos_Bad LoadRadio Star%20FM%20' ;; stehen
    Ich bin gerade nicht zuhause, mir aber sicher das es in den favoriten kein starpresence gibt...
    Titel: Aw: Sonos steuern
    Beitrag von: Reinerlein am 03 Oktober 2013, 15:33:25
    Hallo Der-Lolo,

    OK, das ging da nicht so deutlich draus hervor.

    Aber auch das ist einfach. Du hast das wohl am Event "presence" hängen, nicht wahr:-)

    Du musst in einem Fhem-Event die Prozentzeichen noch maskieren, also doppelt hinschreiben.
    Das bedeutet bei dir: "Star%%20FM%%20Berlin".

    Ein einfaches %-Zeichen wird von Fhem durch den entsprechenden Event-Namen ersetzt.

    Grüße Reiner
    Titel: Aw: Sonos steuern
    Beitrag von: der-Lolo am 03 Oktober 2013, 18:07:43
    Danke Reinerlein,
    ich glaube jetzt haben wir es hinbekommen - tausend Dank!!!

    Ich werde noch ein bisschen beobachten ob es auch zuverlässig läuft, ich bekam nämlich immer wieder dieses

    2013.10.03 17:51:59 3: SONOSPLAYER0: Ausstehenden Befehl erkannt. Verlagere die Ausführung von set Sonos_Bad->LoadRadio(Star%20FM%20Berlin) um 1s.
    2013.10.03 17:51:59 3: SONOSPLAYER0: Ausstehenden Befehl erkannt. Verlagere die Ausführung von set Sonos_Bad->Play() um 1s.
    2013.10.03 17:52:00 3: SONOSPLAYER0: Versuche jetzt set Sonos_Bad->LoadRadio(Star%20FM%20Berlin) auszuführen.
    2013.10.03 17:52:00 3: SONOSPLAYER0: Immer noch ausstehenden Befehl erkannt. Verlagere die Ausführung von set Sonos_Bad->LoadRadio(Star%20FM%20Berlin) um eine weitere Sekunde.

    Gibt es vielleicht eine möglichkeit ausstehende befehle zu löschen bevor mann neue Sendet?

    Titel: Aw: Sonos steuern
    Beitrag von: peter79 am 03 Oktober 2013, 20:29:01
    Hallo Reiner,

    spiele grade auch ein bischen mit dem Sonos Modul. Erst einmal vielen Dank für Deine Arbeit.
    Grundsätzlich scheint es nach ein paar Anlaufversuchen zu funktionieren - leider aber immer nur zimlich kurzzeitig :-(
    D.h. starte ich durch funktioniert erst einmal alles, inkl. automatischem Start nach Stromzufuhr. Wenn ich dann aber, ca. ein paar Minuten nichts tue, bekomme ich das gleiche Problem wie mein Vorredner:

    2013.10.03 19:55:45 5: SONOS0: Received from UPnP-Server: 'DoWorkAnswer:RINCON_000E58F2222801400_MR:LastSetActionResult:7'
    2013.10.03 19:55:45 4: SONOS0: DoWorkAnswer arrived for 'Sonos_Bad':LastSetActionResult:7
    2013.10.03 19:55:45 5: SONOS0: Received from UPnP-Server: 'ReadingsSingleUpdateIfChangedNoTrigger:RINCON_000E58F2222801400_MR:Balance:0'
    2013.10.03 19:55:45 5: SONOS0: Received from UPnP-Server: 'ReadingsSingleUpdateIfChangedNoTrigger:RINCON_000E58F2222801400_MR:Volume:7'
    2013.10.03 19:55:45 5: SONOS0: Received from UPnP-Server: 'GetReadingsToCurrentHash:RINCON_000E58F2222801400_MR:0'
    2013.10.03 19:55:45 5: SONOS0: Received from UPnP-Server: 'CurrentBulkUpdate:RINCON_000E58F2222801400_MR'
    2013.10.03 19:55:46 5: SW: DoWork:RINCON_000E58F2222801400_MR:setRelativeVolume:7

    2013.10.03 19:55:47 5: SONOS0: Received from UPnP-Server: 'DoWorkAnswer:RINCON_000E58F2222801400_MR:LastSetActionResult:14'
    2013.10.03 19:55:47 4: SONOS0: DoWorkAnswer arrived for 'Sonos_Bad':LastSetActionResult:14
    2013.10.03 19:55:47 5: SONOS0: Received from UPnP-Server: 'ReadingsSingleUpdateIfChangedNoTrigger:RINCON_000E58F2222801400_MR:Balance:0'
    2013.10.03 19:55:47 5: SONOS0: Received from UPnP-Server: 'ReadingsSingleUpdateIfChangedNoTrigger:RINCON_000E58F2222801400_MR:Volume:14'
    2013.10.03 19:55:47 5: SONOS0: Received from UPnP-Server: 'GetReadingsToCurrentHash:RINCON_000E58F2222801400_MR:0'
    2013.10.03 19:55:47 5: SONOS0: Received from UPnP-Server: 'CurrentBulkUpdate:RINCON_000E58F2222801400_MR'
    2013.10.03 19:55:54 5: SW: DoWork:RINCON_000E58F2222801400_MR:setRelativeVolume:7

    2013.10.03 19:55:55 5: SONOS0: Received from UPnP-Server: 'DoWorkAnswer:RINCON_000E58F2222801400_MR:LastSetActionResult:21'
    2013.10.03 19:55:55 4: SONOS0: DoWorkAnswer arrived for 'Sonos_Bad':LastSetActionResult:21
    2013.10.03 19:55:55 5: SONOS0: Received from UPnP-Server: 'ReadingsSingleUpdateIfChangedNoTrigger:RINCON_000E58F2222801400_MR:Balance:0'
    2013.10.03 19:55:55 5: SONOS0: Received from UPnP-Server: 'ReadingsSingleUpdateIfChangedNoTrigger:RINCON_000E58F2222801400_MR:Volume:21'
    2013.10.03 19:55:55 5: SONOS0: Received from UPnP-Server: 'GetReadingsToCurrentHash:RINCON_000E58F2222801400_MR:0'
    2013.10.03 19:55:55 5: SONOS0: Received from UPnP-Server: 'CurrentBulkUpdate:RINCON_000E58F2222801400_MR'
    2013.10.03 20:14:38 5: SW: DoWork:RINCON_000E58F2222801400_MR:setRelativeVolume:7

    2013.10.03 20:14:41 3: SONOSPLAYER0: Ausstehenden Befehl erkannt. Verlagere die Ausführung von set Sonos_Bad->VolumeU() um 1s.
    2013.10.03 20:14:42 3: SONOSPLAYER0: Versuche jetzt set Sonos_Bad->VolumeU() auszuführen.
    2013.10.03 20:14:42 3: SONOSPLAYER0: Immer noch ausstehenden Befehl erkannt. Verlagere die Ausführung von set Sonos_Bad->VolumeU() um eine weitere Sekunde.
    2013.10.03 20:14:43 3: SONOSPLAYER0: Versuche jetzt set Sonos_Bad->VolumeU() auszuführen.
    2013.10.03 20:14:43 3: SONOSPLAYER0: Immer noch ausstehenden Befehl erkannt. Verlagere die Ausführung von set Sonos_Bad->VolumeU() um eine weitere Sekunde.
    2013.10.03 20:14:44 3: SONOSPLAYER0: Versuche jetzt set Sonos_Bad->VolumeU() auszuführen.
    2013.10.03 20:14:44 3: SONOSPLAYER0: Immer noch ausstehenden Befehl erkannt. Verlagere die Ausführung von set Sonos_Bad->VolumeU() um eine weitere Sekunde.
    2013.10.03 20:14:45 3: SONOSPLAYER0: Versuche jetzt set Sonos_Bad->VolumeU() auszuführen.
    ...

    Weiterhin sehe ich trotz Verbose 5 nicht, dass die Box in irgendeiner Weise zyklisch abgefragt wird, bin mir aber auch nicht sicher, ob ich alles richtig konfiguriert habe - daher anbei einmal meine Konfig:

    define Sonos SONOS localhost:4711 30
    attr Sonos pingType icmp
    attr Sonos verbose 5
    define Sonos_BRIDGE SONOSPLAYER RINCON_000E58EFB30601400_MR
    attr Sonos_BRIDGE group BRIDGE
    attr Sonos_BRIDGE icon icoSONOSPLAYER_icon-ZB100.png
    attr Sonos_BRIDGE model Sonos_ZB100
    attr Sonos_BRIDGE room Sonos
    define Sonos_Bad SONOSPLAYER RINCON_000E58F2222801400_MR
    attr Sonos_Bad generateInfoSummarize1 <NormalAudio><Artist prefix="(" suffix=")"/><Title prefix=" '" suffix="'" ifempty="[Keine Musikdatei]"/><Album prefix=" vom Album '" suffix="'"/></NormalAudio> <StreamAudio><Sender suffix=":"/><SenderCurrent prefix=" '" suffix="' -"/><SenderInfo prefix=" "/></StreamAudio>
    attr Sonos_Bad generateInfoSummarize2 <TransportState/><InfoSummarize1 prefix=" => "/>
    attr Sonos_Bad generateInfoSummarize3 <Volume prefix="Lautstaerke: "/><Mute instead=" ~ Kein Ton" ifempty=" ~ Ton An" emptyval="0"/> ~ Balance: <Balance ifempty="Mitte" emptyval="0"/><HeadphoneConnected instead=" ~ Kopfhoerer aktiv" ifempty=" ~ Kein Kopfhoerer" emptyval="0"/>
    attr Sonos_Bad getAlarms 1
    attr Sonos_Bad group Bad
    attr Sonos_Bad icon icoSONOSPLAYER_icon-S3.png
    attr Sonos_Bad minVolume 0
    attr Sonos_Bad model Sonos_S3
    attr Sonos_Bad room Sonos
    attr Sonos_Bad stateVariable InfoSummarize2
    attr Sonos_Bad verbose 5
    attr Sonos_Bad webCmd Play:Pause:Previous:Next:VolumeD:VolumeU:MuteT
    define AlbumArt_Bad weblink image /fhem/icons/SONOSPLAYER/Sonos_Bad_AlbumArt
    attr AlbumArt_Bad group Bad
    attr AlbumArt_Bad htmlattr width='200'
    attr AlbumArt_Bad room Sonos

    define Sonos_Bad_Appeared_Notify notify Sonos_Bad:presence:.appeared { \
            fhem "set Sonos_Bad LoadRadio FFH%%20Digital%%20-%%20Alternative" ;; \
            fhem "set Sonos_Bad Volume 20" ;; \
            fhem "set Sonos_Bad Play" \
    }

    Viele Grüße
    Peter
    Titel: Aw: Sonos steuern
    Beitrag von: Reinerlein am 04 Oktober 2013, 00:27:28
    Hallo zusammen,

    das mit den ausstehenden Befehlen baue ich gerade wieder aus, da ich die Struktur noch etwas optimiert habe. Desweiteren baue ich noch an einer anderen Stelle eine Optimierung ein, damit da weniger Kommunikation zwischen den Schichten notwendig wird.
    Das muss ich aber erst noch sauber fertigstellen, bevor ich es veröffentlichen kann...

    Desweiteren habe ich schon den Fehler mit der Durchsage und dem Wiederanstarten der Line-In-Wiedergabe von Arthur behoben, kommt dann beim nächsten Update mit.

    Zu den Ping-Checks: Die starten erst nach 120Sekunden, damit erst mal alle Player sauber erkannt wurden. Die können ja nicht schon gleich wieder weg sein, oder? :-)
    Dazu müsste aber trotzdem eine Ausgabe auf der Konsole (nicht im Fhem-Log, das du gepostet hast) existieren, die darauf hindeutet, dass der Thread gestartet ist, etwas wartet, und dann die Überprüfung durchführt. Die Überprüfung selbst wird dort auch ausgegeben.
    In der nächsten Version kann man diese Prüfung auch deaktivieren, da manche die ja gar nicht benötigen. Dann ist das Verhalten wie beim Sonos-Controller: Beim Einschalten eines Players wird der kurz vorher als abwesend markiert, und dann gleich danach als anwesend. Für eine einfache "Player-ist-da"-Erkennung reicht das auch...
    @Peter: Es kann sein, dass auf der Konsole eine Ausgabe erfolgt, dass dein Prozess nicht mit root-Rechten läuft, und deshalb der pingType "icmp" nicht geht. Dann stürzt der Thread leider ab, und hängt das Modul mit auf. Das entspräche deiner Beobachtung, dass nach einer Weile (ca. 120s?) das ganze festhängt...

    Also, bzgl. der ausstehenden Befehle bitte noch etwas Geduld, da ich das komplett machen möchte.

    Grüße Reiner
    Titel: Aw: Sonos steuern
    Beitrag von: PumpkinEater am 04 Oktober 2013, 07:31:09
    Hallo Reiner,
    ich habe jetzt auch mal die neue Version installiert, komme aber leider nicht so recht weiter. Nach dem Start von fhem sehe ich im Logfile
    2013.10.04 07:12:32 5: SONOS0: Received from UPnP-Server: 'CommandAttr:AlbumArt_Wohnzimmer group Wohnzimmer'
    2013.10.04 07:12:32 5: SONOS0: Received from UPnP-Server: 'ReadingsBeginUpdate:RINCON_000ExxxxxxE001400_MR'
    2013.10.04 07:12:32 0: SONOS0: Fehlerhafter Aufruf von ReadingsBeginUpdate: RINCON_000ExxxxxxE001400_MR
    2013.10.04 07:12:32 5: SONOS0: Received from UPnP-Server: 'ReadingsBulkUpdateIfChanged:RINCON_000Exxxxxx001400_MR:presence:appeared'
    2013.10.04 07:12:32 0: SONOS0: Fehlerhafter Aufruf von ReadingsBulkUpdateIfChanged: RINCON_000E58F189E001400_MR:presence:appeared

    Wenn ich dann versuche, per
    /usr/local/fhem/fhem.pl localhost:7072 'set Sonos_Wohnzimmer Volume 15'
    die Lautstärke zu ändern, so klappt das dann (manchmal) auch einige Male, bis weitere Aufrufe dann nichts mehr bewirken, und im Logfile folgende Meldungen immer wieder erscheinen:
    2013.10.04 06:59:17 3: SONOSPLAYER0: Immer noch ausstehenden Befehl erkannt. Verlagere die Ausführung von set Sonos_Wohnzimmer->Volume(10) um eine weitere Sekunde.
    2013.10.04 06:59:18 3: SONOSPLAYER0: Versuche jetzt set Sonos_Wohnzimmer->Volume(10) auszuführen.
    20


    Scheinbar ist bei meiner Installation noch etwas im Argen.

    Gruß
    Peter

    Titel: Aw: Sonos steuern
    Beitrag von: der-Lolo am 04 Oktober 2013, 08:33:55
    Hallo Reiner,
    so ganz läuft das leider immer noch nicht rund - heute morgen zeigte sich im Event Monitor


    2013-10-04 08:28:13 SONOS Sonos ZoneGroupState:
    2013-10-04 08:28:13 SONOSPLAYER Sonos_Wohnzimmer ZonePlayerUUIDsInGroup: RINCON_000E5828236001400
    2013-10-04 08:28:13 SONOSPLAYER Sonos_Wohnzimmer ZoneGroupName: Wohnzimmer
    2013-10-04 08:28:13 SONOS Sonos ZoneGroupState:
    2013-10-04 08:28:13 SONOSPLAYER Sonos_Bad presence: disappeared
    2013-10-04 08:28:13 HUEDevice HUEDevice5 RGB: 8985fc
    2013-10-04 08:28:13 HUEDevice HUEDevice6 RGB: ff700c
    2013-10-04 08:28:13 HUEDevice HUEDevice7 RGB: 000000
    2013-10-04 08:28:14 HUEDevice HUEDevice9 RGB: 000000
    2013-10-04 08:28:14 HUEDevice HUEDevice8 RGB: 000000
    2013-10-04 08:28:14 HUEDevice HUEDevice10 RGB: 000000
    2013-10-04 08:28:21 FHEMWEB FHEMWEB:192.168.178.5:51893 rereadicons
    2013-10-04 08:28:22 FHEMWEB FHEMWEB:192.168.178.5:51894 rereadicons
    2013-10-04 08:28:22 FHEMWEB FHEMWEB:192.168.178.5:51895 rereadicons
    2013-10-04 08:28:22 FHEMWEB FHEMWEB:192.168.178.5:51896 rereadicons
    2013-10-04 08:28:23 FHEMWEB FHEMWEB:192.168.178.5:51897 rereadicons
    2013-10-04 08:28:23 FHEMWEB FHEMWEB:192.168.178.5:51898 rereadicons
    2013-10-04 08:28:24 FHEMWEB WEB rereadicons
    2013-10-04 08:28:24 FHEMWEB WEBphone rereadicons
    2013-10-04 08:28:25 FHEMWEB WEBtablet rereadicons
    2013-10-04 08:28:25 SONOSPLAYER Sonos_Wohnzimmer LastSetActionName: AddMember
    2013-10-04 08:28:25 SONOSPLAYER Sonos_Bad presence: appeared
    2013-10-04 08:28:25 SONOSPLAYER Sonos_Bad LastSubscriptionsRenew: 2013-10-04 08:28:21
    2013-10-04 08:28:25 SONOSPLAYER Sonos_Bad LastSubscriptionsResult: Just subscribed
    2013-10-04 08:28:25 SONOS Sonos ZoneGroupState:
    2013-10-04 08:28:25 SONOSPLAYER Sonos_Bad transportState: STOPPED
    2013-10-04 08:28:25 SONOSPLAYER Sonos_Bad numberOfTracks: 0
    2013-10-04 08:28:25 SONOSPLAYER Sonos_Bad currentTrack: 0
    2013-10-04 08:28:25 SONOSPLAYER Sonos_Bad currentTrackURI:
    2013-10-04 08:28:25 SONOSPLAYER Sonos_Bad currentTrackDuration: 0:00:00
    2013-10-04 08:28:25 SONOSPLAYER Sonos_Bad currentTitle:
    2013-10-04 08:28:25 SONOSPLAYER Sonos_Bad currentAlbumArtist: STOPPED
    2013-10-04 08:28:25 SONOSPLAYER Sonos_Bad infoSummarize1: [Keine Musikdatei]
    2013-10-04 08:28:25 SONOSPLAYER Sonos_Bad infoSummarize2: STOPPED => [Keine Musikdatei]
    2013-10-04 08:28:25 SONOSPLAYER Sonos_Bad STOPPED => [Keine Musikdatei]
    2013-10-04 08:28:26 FHEMWEB FHEMWEB:192.168.178.5:51893 rereadicons
    2013-10-04 08:28:26 FHEMWEB FHEMWEB:192.168.178.5:51894 rereadicons
    2013-10-04 08:28:26 FHEMWEB FHEMWEB:192.168.178.5:51895 rereadicons
    2013-10-04 08:28:26 FHEMWEB FHEMWEB:192.168.178.5:51896 rereadicons
    2013-10-04 08:28:26 FHEMWEB FHEMWEB:192.168.178.5:51897 rereadicons
    2013-10-04 08:28:27 FHEMWEB FHEMWEB:192.168.178.5:51898 rereadicons
    2013-10-04 08:28:27 FHEMWEB WEB rereadicons
    2013-10-04 08:28:27 FHEMWEB WEBphone rereadicons
    2013-10-04 08:28:27 FHEMWEB WEBtablet rereadicons
    2013-10-04 08:28:27 SONOSPLAYER Sonos_Bad LastSubscriptionsRenew: 2013-10-04 08:28:22
    2013-10-04 08:28:27 SONOSPLAYER Sonos_Bad LastSubscriptionsResult: Just subscribed
    2013-10-04 08:28:27 SONOSPLAYER Sonos_Bad ZonePlayerUUIDsInGroup: RINCON_000E58F09A0E01400
    2013-10-04 08:28:27 SONOSPLAYER Sonos_Bad ZoneGroupID: RINCON_000E58F09A0E01400:12
    2013-10-04 08:28:27 SONOS Sonos ZoneGroupState:
    2013-10-04 08:28:27 SONOS Sonos ZoneGroupState:
    2013-10-04 08:28:28 FHEMWEB FHEMWEB:192.168.178.5:51893 rereadicons
    2013-10-04 08:28:28 FHEMWEB FHEMWEB:192.168.178.5:51894 rereadicons
    2013-10-04 08:28:28 FHEMWEB FHEMWEB:192.168.178.5:51895 rereadicons
    2013-10-04 08:28:28 FHEMWEB FHEMWEB:192.168.178.5:51896 rereadicons
    2013-10-04 08:28:28 FHEMWEB FHEMWEB:192.168.178.5:51897 rereadicons
    2013-10-04 08:28:29 FHEMWEB FHEMWEB:192.168.178.5:51898 rereadicons
    2013-10-04 08:28:29 FHEMWEB WEB rereadicons
    2013-10-04 08:28:29 FHEMWEB WEBphone rereadicons
    2013-10-04 08:28:29 FHEMWEB WEBtablet rereadicons
    2013-10-04 08:28:29 SONOSPLAYER Sonos_Bad LastSubscriptionsRenew: 2013-10-04 08:28:24
    2013-10-04 08:28:29 SONOSPLAYER Sonos_Bad LastSubscriptionsResult: Just subscribed
    2013-10-04 08:28:30 SONOSPLAYER Sonos_Bad LastSubscriptionsResult: Nothing to do.


    Nothing to do. ist Definitiv falsch - ich möchte ja eine wiedergabe haben...
    im Wohnzimmer auf dem ZP90 lief Radio.

    Im Logfile sind keine Daten bzgl. Sonos zu finden...
    Titel: Aw: Sonos steuern
    Beitrag von: Reinerlein am 04 Oktober 2013, 15:10:35
    Hallo zusammen,

    hmm. Vielleicht sollten wir mit weiteren Stochereien warten, bis ich meinen aktuellen Stand veröffentlicht habe. Ich könnte mir vorstellen, dass das eine oder andere sich direkt erledigt (wie die Sache mit den ausstehenden Befehlen), oder mindestens besser wird.
    Auch die Sache mit den SubscriptionsRenew wird auf eine andere Art erledigt. Diese Meldungen sind dann sowieso nicht mehr im Fhem-Log, sondern nur noch auf der Konsole zu sehen, da Fhem damit nicht mehr behelligt wird.
    Nur zum Abrunden: Die Meldung mit 'nothing to do' bezieht sich ausschließlich auf den Renew-Vorgang, der nur jede Stunde einmal durchgeführt werden muss. Das hat keine Auswirkung auf andere Benutzung durch Fhem o.ä.

    Bei den ausstehenden Befehlen scheint sich eine Ausführung nicht korrekt als beendet gemeldet haben (oder sich nicht beendet haben). Wie gesagt, das erledigt sich demnächst ganz...

    Grüße Reiner
    Titel: Aw: Sonos steuern
    Beitrag von: der-Lolo am 04 Oktober 2013, 17:12:10
    Ok, damit kann ich gut leben...
    Ich bin eh total froh das es Leute wie dich gibt - die sich die Mühe machen solche steuerungsmöglichkeiten erst möglich zu machen.
    Ein ganz großes Lob an das bis jetzt geleistete - nicht mehr extra zum iPad greifen zu müssen um die Musik im Bad an zu machen hat den WAF Faktor extrem verbessert.
    FHEM hat für mich eh noch sehr viele Baustellen, da spielt es keine große Rolle wann das Sonos System perfekt läuft, bis dahin benutze ich einfach zusätzlich die timer Funktion und schalte die Steckdose 5min. eher...
    Ich widme mich dann vorerst den max Thermostaten...
    Titel: Aw: Sonos steuern
    Beitrag von: Reinerlein am 10 Oktober 2013, 08:52:23
    Hallo zusammen,

    ich wollte mal kurz einen Zwischenstand liefern.

    Die Entwicklung ist nun soweit durch und auch in längeren Tests geprüft. Ich werde heute oder Morgen diverse Kommentare im Code und, falls notwendig, die Dokumentation anpassen, und dann den Update-Server aktualisieren.

    Es sind eigentlich erstmal alle wichtigen Punkte drin, bis auf das Thema von Det., wo es noch etwas diffus bzgl. der Pfade aussieht. Das werde ich dann angehen, wenn die jetzigen Änderungen u.U. noch mal nachgeschärft wurden :-)

    Bis später...
    Reiner
    Titel: Aw: Sonos steuern
    Beitrag von: JoeALLb am 10 Oktober 2013, 16:29:15
    Freue mich auf die neue Version!! Bin gespannt!
    Titel: Aw: Sonos steuern
    Beitrag von: Reinerlein am 10 Oktober 2013, 19:39:10
    Hallo zusammen,

    sooo, ich habe das nochmal durchgesehen, und die Doku hoffentlich in allen Punkten angepasst.

    Es kann geupdatet werden:update thirdparty http://fhem.lmsoft.de/sonos sonos
    Es sollten folgende Punkte drin sein / beachtet werden:
    - Die Befehlswarteschlange auf Fhem-Ebene wurde entfernt. Es gibt jetzt nur noch das Reading "LastActionResult", in dem das letzte Ergebnis der durchgeführten Aktion abgelegt wird.
    - Bei der temporären Wiedergabe (TempPlaying, Speak) wird nun auch ein Line-Eingang korrekt wiederhergestellt.
    - Man kann nun auch die LED am Player schalten
    - CurrentTempPlaying (es kann nur eine temporäre Wiedergabe zur Zeit laufen) wird nicht mehr benötigt, da dies nun in der internen Warteschlange abgearbeitet wird.

    Viel Spaß damit...

    Grüße Reiner
    Titel: Aw: Sonos steuern
    Beitrag von: JoeALLb am 10 Oktober 2013, 20:24:08
    Hi und danke...

    doch leider kann ich jetzt die Sonos-Geräte nicht mehr starten...


    Auf der kommandozeile erscheint:
    > 2013.10.10 20:19:38 3: SONOS0: Received: 'DoWork:RINCON_000E5836AAAC01400_MR:play:'

    aber nichts passiert.
    Gibt es eventuell eine neue Abhängigkeit? Ich betreibe es auf RPI.
    Titel: Aw: Sonos steuern
    Beitrag von: Reinerlein am 10 Oktober 2013, 20:42:12
    Hi,

    hmm... aus dieser einen Zeile ist jetzt nicht soviel erkennbar :-) Das ist zumindest noch kein Fehler, sondern heisst nur, dass die Anweisung beim Steuer-Thread angekommen ist.

    Stell doch bitte mal den Loglevel höher, und schau mal, was direkt danach im Log / in der Konsole auftaucht. Ansonsten stell doch das Log mal hier ein (oder per PN).

    Grüße Reiner
    Titel: Aw: Sonos steuern
    Beitrag von: snoop am 10 Oktober 2013, 21:12:38
    Hallo Reiner,

    musste jetzt doch suchen "sonos" ist wohl auch im FHEM Forum etwas gewandert....

    Zitat
    - Bei der temporären Wiedergabe (TempPlaying, Speak) wird nun auch ein Line-Eingang korrekt wiederhergestellt.


    Test folgt -> DANKE jetzt schon mal dafür - ich kämpfe grade mit der SD Karte am RPI die meint ständig ein OI/DEVICE Error ausgeben zu müssen (SD Karten Test sagt: Karte ist I.O.) - was zu Neudeploy des RPIs führt. ;o(

    Viele grüße
    Arthur
    Titel: Aw: Sonos steuern
    Beitrag von: JoeALLb am 11 Oktober 2013, 17:42:29
    Zwischeninfo:
    Heute hat es wieder funktioniert, jedoch hat sich mein rpi heute nacht auch ohne ersichtlichen Grund rebootet.
    Ich werds weiter beobachten!
    Titel: Aw: Sonos steuern
    Beitrag von: m.zielinski am 11 Oktober 2013, 17:48:44
    Mein Raspberry stand heute morgen auch still bzw fhem war komplett beendet. Leider zeigte weder fhem noch console logfile irgendwas an.

    Bin dann wieder auf die vorversion gegangen statt der von gestern.

    Der WAF sinkt zu sehr wenn Fhem ganz weg ist...
    Titel: Aw: Sonos steuern
    Beitrag von: Reinerlein am 11 Oktober 2013, 20:38:06
    Hallo zusammen,

    mich würde es tatsächlich wundern, wenn wegen des Moduls Fhem hängenbleibt, oder gar der RPi einen Neustart durchführen muss.
    Aber natürlich kann man nichts ausschließen und ich wurde schon oft genug zum wundern gebracht :-) Nur brauchts dafür die Konsolenausgabe, da dort die Ausgaben des abgetrennten Prozesses auflaufen.

    Ich habe das bei mir so gelöst, dass die Konsole in eine Datei umgelenkt wird, sodass ich das auch noch nachträglich durchsehen kanm. Notfalls muss man sowas einrichten, um dem ganzen auf die Spur zu kommen...

    Grüße Reiner
    Titel: Aw: Sonos steuern
    Beitrag von: JoeALLb am 11 Oktober 2013, 22:25:19
    Hast du dafür eine Anleitung??

    Vielleicht hilft das schon:
    Ich konnte soeben beobachten, dass manchmal die CPU-Auslastung länger als 5 Minuten auf 100% ging. Daraufhin hat der Watchdog den rpi neu gestartet.
    In der Log stand ein Hinweis (aus dem Kopf) "kill XXY konnte nicht beendet werden".... naja o ähnlich zumindest. Es war jedoch das SONOS-Modul...
    Titel: Aw: Sonos steuern
    Beitrag von: Reinerlein am 11 Oktober 2013, 22:45:30
    Hi,

    man könnte einfach das Modul "von Hand" starten:perl fhem.pl fhem.cfg > fhem.log &Damit wird im aktuellen Verzeichnis die Konsolenausgabe in die Datei fhem.log geschrieben.
    Das & sorgt dafür, dass der Prozess direkt im Hintergrund gestartet wird, und du die Datei mittail -f fhem.loglaufend mitlesen kannst...

    Das mit der CPU Auslastung ist natürlich möglich, wobei ich das bei mir noch nicht hatte... Vielleicht liegt es daran, dass mein fhem unter dem Benutzer root läuft. Das ist aber momentan reine Mutmaßung...
    Ich erhoffe mir durch die Log-Analyse einen Einblick, was da die CPU Last erzeugen könnte. Dann können wir das auch in den Griff bekommen...

    Grüße Reiner
    Titel: Aw: Sonos steuern
    Beitrag von: JoeALLb am 11 Oktober 2013, 23:18:55
    Jetzt gerade habe ich eine andere Fehlermeldung bekommen..... aer die CPU war auch bei 100% last.
    Ich versuch mal so ein Logging mitlaufen zu lassen!

    2013.10.11 23:02:48 3: SONOS1: Event: End of Transport-Event for Zone "Sonos_Bad".
    2013.10.11 23:02:49 3: SONOS1: Event: Received ZoneGroupTopology-Event for Zone "Sonos_Kueche".
    2013.10.11 23:02:49 3: SONOS1: Event: End of ZoneGroupTopology-Event for Zone "Sonos_Kueche".
    2013.10.11 23:02:52 3: SONOS1: Event: Received Transport-Event for Zone "Sonos_Wohnzimmer".
    2013.10.11 23:02:52 3: SONOS1: Event: End of Transport-Event for Zone "Sonos_Wohnzimmer".
    2013.10.11 23:02:57 3: SONOS1: Event: Received Alarm-Event for Zone "Sonos_Wohnzimmer".
    2013.10.11 23:02:57 3: SONOS1: Event: End of Alarm-Event for Zone "Sonos_Wohnzimmer".
    2013.10.11 23:03:00 3: SONOS1: Event: Received Transport-Event for Zone "Sonos_Schlafzimmer".
    2013.10.11 23:03:01 3: SONOS0: Received: 'DoWork:RINCON_000E58532C2E01400_MR:play:'
    Out of memory!
    Perl exited with active threads:
            1 running and unjoined
            1 finished and unjoined
            0 running and detached
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 12 Oktober 2013, 10:15:47
    Hi JoeALLb,

    das mit dem Memory-Error hatten wir hier schon mal. Ich weiss jetzt nicht mehr genau, ob sich das erledigt hatte, oder irgendwie in den Griff bekommen wurde. Das Modul selbst macht an dieser Stelle keine großen Aktionen. Es wird ein SOAP-Paket an den Player zusammengeschnürt, und ein bißchen hin- und herkommuniziert. Alles nix großartiges, da muss der Speicher echt knapp bemessen sein.

    Kannst du mal prüfen, wieviel der Perl-Prozess so benötigt, und wieviel dein Pi da noch so frei hat?
    Vielleicht könnte auch eine Swap-Datei auf einem anderen Speichermedium helfen (auf der SD Card ist das wohl eher nicht so gut).

    Bei mir sieht die Aufteilung auf die beiden Prozesse so aus, dass Fhem ca. 40MB und mein extra Prozess ca. 70MB belegt.
    Hier mal die Ausgabe des belegten Speichers aus dem Befehl "top":KiB Mem: 188880 total, 139588 used, 49292 free, 8012 buffers
    KiB Swap: 102396 total, 4592 used, 97804 free, 39712 cached
    Da wird also Swap verwendet, obwohl noch Arbeitsspeicher frei ist, was unter Linux auch normal ist. Ich habe da aber auch nix angepasst, das ist wohl das Standardverhalten / die Standardeinrichtung von Raspbian...

    Grüße Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: snoop am 12 Oktober 2013, 18:10:19
    Hallo Reiner,
    der erste Test zum Thema:
    Zitat
    Bei der temporären Wiedergabe (TempPlaying, Speak) wird nun auch ein Line-Eingang korrekt wiederhergestellt.
    war erfolgreich - Vielen Dank dafür.
    Viele Grüße
    Arthur
    Titel: Antw:Sonos steuern
    Beitrag von: JoeALLb am 12 Oktober 2013, 19:52:31
    Hallo Reiner,

    heute morgen lief FHEM noch, also konnte ich das Problem nicht nachstellen.
    Es laufen jedoch häufig mehrere upnp-Perl-Prozesse aus dem Sonos-Bereich.... ich habe derzeit tatsächlich den Verdacht, dass FHEM, welches nicht mit Root-Rechten läuft,
    probleme beim Abbau vorhandener und nicht mehr benötigter Connections hat.... daher hab ich vermutlich vor 2 Tagen auch mal den Fehler "Trying to kill Sonos_Thread..." mit dem nicht erfolgreichen Kill-Befehl gesehen. Kann das sein? Wann genau wird denn hier etwas gekillt?

    Ich war heute zuwenig zuhause und konnte es dahe rnicht weiter testen...
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 12 Oktober 2013, 20:22:52
    Hi JoeALLb,

    dieser Versuch den Sonos_Thread zu killen wird immer dann unternommen, wenn du ein "rereadcfg" oder "shutdown" in Fhem durchführst. Nach der Ausgabe von "trying" sollte dann kurz danach die Ausgabe von "UPnP-Thread wurde beendet" kommen. Damit ist dann auch der UPnP-Listener beendet, und empfängt keine Nachrichten mehr von den Playern. Es werden aber auch noch andere Threads getötet, da sollten also auch noch entsprechende Ausgaben erfolgen (insgesamt bis zu 3). Wenn du ein "shutdown" in Fhem durchführst, wird sogar der ganze Prozess beendet (wenn du ihn nicht selber per Hand gestartet hattest).

    Und mit "es laufen jedoch häufig mehrere upnp-Perl-Prozesse" meinst du echte Prozesse, die du z.B. per "top" oder "ps" auf der Konsole sehen kannst?
    Das ist dann reichlich komisch, weil im Normalfall beim Start eines zweiten Sonos_Thread eine Fehlermeldung kommen müsste, dass der Port (den du übergeben/eingestellt hast) bereits belegt ist. Er startet ja immerhin einen Serverdienst auf dem angegebenen Port (bzw. versucht es).

    Aber eigentlich sollte das alles von root unabhängig sein. Der Prozess wurde ja schließlich von dem Fhem-User gestartet, und darf dementsprechend auch von diesem Benuter wieder entfernt werden...
    Komisch, komisch...

    Grüße Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: JoeALLb am 12 Oktober 2013, 23:55:46
    Hallo Reiner

    mit htop in der Baumansicht konnte ich diese sehen. Aktuell sind da "nur" 2.
    Ich habe zwischenzeitlich auch fhem nochmals aktualisiert und einige perl-module aktualisiert... vielleicht funktioniert es ja deshalb derzeit! Ich beobachte es noch weiter
    und schreibe alles in Logdateien mit! Danke erstmal dafür.

    `- perl fhem.pl fhem.cfg
    |  `- perl FHEM/00_SONOS.pm 4711 3
    |     `- perl FHEM/00_SONOS.pm 4711 3
    |     `- perl FHEM/00_SONOS.pm 4711 3


    Edit: Fixed!!! Der Speak-Fehler(unten) wurde durch die Schreibrechte im SonosSpeak-Verzeichnis ausgelöst. Darauf hat mich die Logdatei leider nicht sofort gebracht-.....
    Jetzt funktioniert es!!!

    Nun wollte ich die Funktion Speak testen, dabei erhalte ich jedoch fiolgende Meldung.
    Mache ich da was falsch?
    set Sonos_Wohnzimmer Speak 30 de Test
    2013.10.13 00:18:47 3: SONOS0: Received: 'DoWork:RINCON_000E58532C2E01400_MR:speak:30,de, Test'
    2013.10.13 00:18:47 3: SONOS1: Load MP3 from "http://translate.google.com/translate_tts?tl=de&q=Test" to "/mnt/SonosSpeak//RINCON_000E58532C2E01400_MR_Speak.mp3"
    2013.10.13 00:18:47 2: SONOS1: Beim Setzen der MP3-Informationen (ID3TagV2) ist ein Fehler aufgetreten: Can't call method "title_set" on an undefined value at FHEM/00_SONOS.pm line 1659, <$client> line 2.

    2013.10.13 00:18:47 3: SONOS1: Start temporary playing of "\192.168.178.69\SonosSpeak/RINCON_000E58532C2E01400_MR_Speak.mp3"
    2013.10.13 00:18:49 3: SONOS1: SleepTimer berechnet die Laufzeit des Titels selber, da keine Wartezeit uebermittelt wurde!
    2013.10.13 00:18:49 1: SONOS1: Da keine Endzeit ermittelt werden konnte, wird kein Restoring durchgef?hrt werden!


    edit: verwendeten code corrigiert
    Titel: Antw:Sonos steuern
    Beitrag von: JoeALLb am 13 Oktober 2013, 00:30:21
    Hi,
    soeben hatte ich folgende Fehlermeldung... vielleicht hilft das weiter? Danach war wieder mein Arbeitsspeicher voll und ich hatt
    9 UpnP-Prozesse in htop gesehen. Sorry für die vielen Nachrichten, aber ich hoffe, es hilft weiter ;-)

    2013.10.13 00:26:54 3: SONOS0: Trying to kill Sonos_Thread...
    2013.10.13 00:26:54 3: SONOS0: Trying to kill PlayerRestore_Thread...
    2013.10.13 00:26:54 1: SONOS2: Restore-Thread wurde beendet.
    2013.10.13 00:26:55 3: SONOS1: Controlpoint-Listener wurde beendet.
    Unsubscription request failed with error: 412 Precondition Failed at FHEM/lib/UPnP/ControlPoint.pm line 1001 thread 1.
    Can't call method "kill" on an undefined value at FHEM/00_SONOS.pm line 4038, <$client> line 17.
    Current: "fhem.pl", gPath: "./FHEM"
    Current: "FHEM/00_SONOS.pm", gPath: ""
    2013.10.13 00:27:14 1: SONOS0: FHEM/00_SONOS.pm is listening to Port 4711
    2013.10.13 00:27:16 1: SONOS0: Connection accepted from localhost:47862
    2013.10.13 00:27:17 3: SONOS0: Received: 'SetData:Sonos:none:RINCON_000E58532C9001400_MR,RINCON_000E58532C2E01400_MR,RINCON_000E5871016E01400_MR,RINCON_000E5836AAAC01400_MR'
    2013.10.13 00:27:17 3: SONOS0: Received: 'StartThread'
    2013.10.13 00:27:18 3: SONOS1: UPnP-Thread gestartet.
    2013.10.13 00:27:19 1: SONOS2: Restore-Thread gestartet. Warte auf Arbeit...
    2013.10.13 00:27:20 2: SONOS1: Discover Sonosplayer 'Wohnzimmer' (ZP120) Software Revision 4.1 with ID 'RINCON_000E5836AAAC01400_MR'
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 13 Oktober 2013, 01:43:39
    Hi,

    kein Problem, wir versuchen das Problem ja zu lösen :-)

    Eigentlich dachte ich, dass ich das Poblem mit den nicht mehr vorhandenen Threads, die ich töten möchte, im Griff habe... Dem scheint nicht so zu sein. Da schärfe ich noch etwas nach.
    Aber das wird eine reine Symptombehandlung und wir wollen ja eigentlich das Problem in den Griff bekommen...

    Ich habe mir das bei mir auch mal mit htop angeschaut, und ich habe natürlich auch die Threads, nur dass es bei mir einer mehr ist. Ich habe im Baum oben den Fhem-Prozess, und darunter meinen selbstgestarteten zweiten Prozess. Dann folgen darunter drei Threads, die ich in Perl ja auch starte. Bei dir waren das nur zwei. Da fehlt wohl der IsAlive-Thread (zumindest laut deines Log-Auszugs). Da müsste dazu passend eigentlich eine Ausgabe kommen. Vielleicht kannst du den Loglevel mal hochdrehen, und die ersten Zeilen der Konsolenausgabe mal hier angeben. Vielleicht stirbt der wegen fehlender Rechte.
    Steht dein PingType vielleicht auf "icmp"? Das geht nur als root. Aber wie gesagt, da müsste eine Ausgabe zu erfolgen...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 13 Oktober 2013, 15:13:28
    Hi JoeALLb,

    eine Frage kann ich mir mittlerweile selber beantworten. Das passiert, wenn man seinen eigenen Code nicht mehr vollständig im Kopf hat :-)
    Sorry dafür...

    Du hast wahrscheinlich keinen pingType definiert. Ab Version 2.0 wird dann standardmäßig keine zyklische Prüfung mehr durchgeführt. Das Verhalten ist dann so wie beim Original-Controller (Ein Player bleibt für immer in der Liste der verfügbaren Player, erst wenn man ihn wieder anschaltet, verschwindet er kurz, und taucht danach wieder auf). Das bedeutet auch, dass dieser Thread natürlich gar nicht erst gestartet wird.
    Damit ist die Anzahl der Threads geklärt. Ich habe pingType definiert, und somit einen Thread mehr als du...

    Aber dein Speicherproblem ist damit natürlich noch nicht geklärt... Da müssen wir noch irgendwas herausfinden...

    Grüße Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: JoeALLb am 14 Oktober 2013, 21:51:19
    Hallo Reiner,

    genau ;-)
    Ich lasse im Moment noch alle meine Sonos-Boxen permanent an und prüfe sie deshlb noch nicht. Jedoch ist meine Konfiguration durchaus noch im Entstehen....
    Schaltest Du deine per Funksteckdose aus?

    Wenn ich Dir irgend etwas helfen kann, gib mir einfach bescheid. Ich lese mich erstmal in Deinen Code ein, und würde ihn gerne um eine Offline-Voice.Methode ergänzen, obwohl mir durchaus bewußt ist, dass eine Stimme aus espeak undeutlicher klingt als die von Google. Wäre das in deinem Sinne, oder soll ich das lieber eigens auslagern?

    Lässt Du dich schon von diesem Modul wecken, oder nimmst Du noch die Sonos-interne Weckfunktion? Ich spiele derzeit mit den diversen Möglichkeiten herum, hab aber noch keine für mich zufriedenstellende Lösung gefunden..
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 14 Oktober 2013, 23:22:53
    Hi,

    ich lasse meine Player eigentlich immer an. Ich habe hauptsächlich Dinge eingerichtet, die bei meinen Play:5 nach dem Transportieren wieder bestimmte Playlisten lädt, und die Tasten für Start, Stop, Forward usw. einrichtet.

    Spaßeshalber hatte ich mal sowas wie Durchsagen bei Anrufen und Türklingeln eingerichtet. Aber das habe ich wieder entfernt. Das ganze gesabbel war auf Dauer nervig :-)
    Eigentlich habe ich das ganze Modul Hauptsächlich für das Anschalten meines Verstärkers hinter meinem Connect gebaut :-) Der ganze Rest ist für die anderen Fhem-User gebaut :-)

    Meine persönliche Meinung zum Wecken (oder SleepTimer) ist, dass das im Sonos-System gut aufgehoben ist. Dort kann jeder aus dem Haus den Alarm noch verändern (besonders die Frau neben einem :-)
    Aber das kann auf beiden Seiten gut gelöst werden. Man erhält ja im Fhem auch ein Event bei SleepTimer- und Alarmereignissen...

    Das mit der Offline-Sprachausgabe kann ich relativ einfach einbauen. Ich würde dass dann allg. definieren, sodass man selber konfigurieren kann, welches man verwenden möchte. Das sollte kein Problem sein.
    Welches Offline-System würdest du denn empfehlen?
    Dann kann ich das zum Testen verwenden...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: JoeALLb am 15 Oktober 2013, 11:05:30
    espeak ist einfach zu verwenden, ich verwende es für ein Navi-Projekt. Interessant fände ich auch ein Caching von bereits generierten MP3s, damit nicht jedes mal eine neue geladen werden muss, was zu einem hörbaren Delay führt.


    Heute hatte ich wieder einen Abtzurz mit dieser Meldung, die gleich vielfach angezeigt wurde.
    Unsubscription request failed with error: 412 Precondition Failed at FHEM/lib/UPnP/ControlPoint.pm line 1001 thread 1.

    Hilft diese Zeile weiter?
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 15 Oktober 2013, 11:37:50
    Hi JoeALLb,

    das mit espeak schaue ich mir mal an.
    Das mit dem Caching wird etwas schwierig werden, da man ja eine Art Datenbank vorhalten müsste, welche Datei mit welchem Text generiert wurde.
    Ich denke, dass es da einfacher ist, sich eine Datei genieren zu lassen, und anschließend an einem anderen Ort mit sprechenden Dateinamen abzulegen, und dann immer diese Datei abspielen zu lassen. Das kann man dann mittels "PlayURITemp" durchführen.

    Diese "Abstürze" sind manchmal leider normal. Die kommen immer mal wieder dann, wenn die Subscriptions erneuert/auf- oder abgebaut werden sollen, und sind ein Fehler in der verwendeten Library "perlupnp". In meinen Tests hatte das aber keinen Einfluss auf die Funktionalität. Geht denn irgendwas danach nicht mehr?

    Grüße Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: FHEM-Freak am 15 Oktober 2013, 12:19:27
    Beim mir läuft ein Sonos Play3 über Fhem der mit einem HM-PB-2-WM55 geschalten wird wobei ein Radiostream ein und ausgeschalten wird.
    Seit ich Fhem mit root rechte laufen lassen gibt es keine Probleme mehr mit Verzögerungen oder abstürze seitens Fhem.
    Werde das sicher noch ausbauen mit Temperatur ansage und weiteren Sonos Komponenten.
    Hoffe das die bald erhältlichen Sonos Play1 auch funktionieren.
    Perfekt Reiner weiter so und Danke dafür.
     8)
    Titel: Antw:Sonos steuern
    Beitrag von: peter79 am 16 Oktober 2013, 00:17:40
    Hallo Reiner,

    ich bin leider immer noch nicht wirklich weitergekommen - ausgeführt wird fhem definitiv per root.
    Mit folgender Meldung verabschiedet sich Thread 1 nach relativ kurzer, unbestimmter Zeit ( 1-10 Minuten / sowohl auf meinem Pi, wie auch in einer Ubuntu VM):

    root@ubufhem:/opt/fhem# Thread 1 terminated abnormally: Can't use string ("
        ") as an ARRAY ref while "strict refs" in use at FHEM/lib/UPnP/Common.pm line 219, <$client> line 2.

    Habe echt schon viel ausprobiert - komme hier aber irgendwie nicht weiter und das Problem scheint ja bei anderen auch nicht aufzutreten... Falls Du mehr Infos benötigst oder irgendeine Idee hast, lasse es mich bitte wissen.

    Dank und Gruß,
    Peter
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 16 Oktober 2013, 00:56:09
    Hi Peter,

    die Meldung klingt auf jeden Fall erstmal komisch. Da scheint sich ein Device gemeldet zu haben, welches keine Kindelemente hat. Das sollte aber bei Sonos-Komponenten immer der Fall sein.

    Kannst du mal den Loglevel hochschrauben (auf 5), und die Konsolenausgabe (nicht das Fhem-Log) hier posten, oder mir per PN zukommen lassen?
    Vielleicht erkennt man dort etwas...

    Um das zu vereinfachen kannst du den UPnP-Server auch selber starten, und danach Fhem starten.
    Also z.B. erstmal Fhem komplett beenden, dann in dem FHEM-Verzeichnis:sudo perl 00_SONOS.pm 4711 5 > console.logausführen. Da müsste dann in der Datei "console.log" erstmal ungefähr folgende Ausgabe auftauchen:Current: "/etc/fhem/fhem/FHEM/00_SONOS.pm", gPath: ""
    2013.10.16 00:49:09 1: SONOS0: /etc/fhem/fhem/FHEM/00_SONOS.pm is listening to Port 4711
    Nun kannst du Fhem starten, wenn du dort allerdings eine andere Verbindung als localhost:4711 konfiguriert hattest, muss du das oben entsprechend anpassen. Sonst findet Fhem den Server nicht...

    Wenn dein Fhem sich dann verbunden hat, kommt noch so was in der Art dazu:2013.10.16 00:49:10 1: SONOS0: Connection accepted from localhost:57254gefolgt von ganz vielen Ausgaben, das Threads gestartet wurden, und irgendwelche Events empfangen wurden...

    Nun kannst du nach dem Auftreten des Fehlers bequem die Log-Datei weiterverarbeiten (z.B. mir senden :-)...

    Grüße Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: JoeALLb am 16 Oktober 2013, 11:45:33
    Diese "Abstürze" sind manchmal leider normal. Die kommen immer mal wieder dann, wenn die Subscriptions erneuert/auf- oder abgebaut werden sollen, und sind ein Fehler in der verwendeten Library "perlupnp". In meinen Tests hatte das aber keinen Einfluss auf die Funktionalität. Geht denn irgendwas danach nicht mehr?

    Meine Abstürze scheinen leider direkt damit zusammenhängen. Ich bekomme immer diese Sequenz vor einem Absturz.
    Die CPU-Last geht bei der ersten Fehlermeldung auf 100% und fhem reagiert nicht mehr. Der Speicherverbrauch steigt.
    Manchmal fängt sich das System wieder, häufig wird fhem jedoch abgeschossen. Manchmal, wenn die CPU-KLast zu lange hoch bleibt (über 30 Minuten),
    dann rebootet der watchdog das Betriebssystem.
    -> Ich versuche jetzt auch mal, fhem als root auszuführen?!!?

    Unsubscription request failed with error: 412 Precondition Failed at FHEM/lib/UPnP/ControlPoint.pm line 1001 thread 1.
    Argument "disconnect" isn't numeric in numeric ne (!=) at FHEM/00_SONOS.pm line 2575, <$client> line 2.
    Argument "" isn't numeric in numeric ne (!=) at FHEM/00_SONOS.pm line 2562, <$client> line 2.
    Argument "" isn't numeric in numeric ne (!=) at FHEM/00_SONOS.pm line 2575, <$client> line 2.
    Argument "" isn't numeric in numeric ne (!=) at FHEM/00_SONOS.pm line 2562, <$client> line 2.
    Argument "" isn't numeric in numeric ne (!=) at FHEM/00_SONOS.pm line 2575, <$client> line 2.
    Argument "" isn't numeric in numeric gt (>) at FHEM/00_SONOS.pm line 3123, <$client> line 2.
    Argument "" isn't numeric in numeric gt (>) at FHEM/00_SONOS.pm line 3123, <$client> line 2.
    Argument "" isn't numeric in numeric gt (>) at FHEM/00_SONOS.pm line 3123, <$client> line 2.
    Argument "" isn't numeric in numeric gt (>) at FHEM/00_SONOS.pm line 3123, <$client> line 2.
    Argument "" isn't numeric in numeric gt (>) at FHEM/00_SONOS.pm line 3123, <$client> line 2.
    Can't call method "kill" on an undefined value at FHEM/00_SONOS.pm line 4081, <$client> line 2.
    Perl exited with active threads:
            2 running and unjoined
            0 finished and unjoined
            0 running and detached
    Titel: Antw:Sonos steuern
    Beitrag von: JoeALLb am 16 Oktober 2013, 11:49:12
    Das mit dem Caching wird etwas schwierig werden, da man ja eine Art Datenbank vorhalten müsste, welche Datei mit welchem Text generiert wurde.
    Hm, eine einfache Lösung, die für mich völlig reichen würde, wäre, den dateinamen als sha1-hash des Textes zu erzeugen, und vor einem download einfach zu prüfen, ob diese Datei schon vorhanden ist. Ich bezweifle, dass ich dadurch einen doppelten Dateinamen bei anderen Textmeldungen erhalten würde, und wenn doch, würde ich es als unkritisch einstufen. Ob die Lösung jedoch als "allgemeingültig" eingestuft werden kann, kann ich derzeit nicht beurteilen.
    Titel: Antw:Sonos steuern
    Beitrag von: peter79 am 16 Oktober 2013, 23:47:50
    Hi Reiner,

    besten Dank für die Hinweise - die Logs bleiben aber leider leer und der Thread stürzt ab, wie beschrieben.

    @Da scheint sich ein Device gemeldet zu haben, welches keine Kindelemente hat. Das sollte aber bei Sonos-Komponenten immer der Fall sein.
    --> Das war jetzt aber trotzdem der entscheidende Hinweis :-)

    Habe aufgrund dessen, einmal den Traffic in meinem Netz etwas genauer angeschaut:
    --> da sprechen doch auch noch andere Komponenten UPnP... wie z.B. das IPMI meines Supermicro Mainboards im VM-Server (grr... kann noch nicht mal abgestellt werden, OK könnte sicher auch in ein anderes VLAN, aber ich will das zu hause mal nicht übertreiben...).
    --> Genau dann, wenn sich das IPMI mit einer SSDP-Message meldet, scheint Dein Modul das IPMI als Device einbinden zu wollen und der Thread stürzt ab :-(

    Da ich im Moment nicht sicher bin, ob dies an der UPnP-Lib oder Deinem Script liegt - ist es ggf. möglich die Prüfroutine der zulässigen Geräte etwas zu verfeinern (denke dass könnte mit anderen Devices auch noch Probleme geben...)?

    Viele Grüße
    Peter
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 17 Oktober 2013, 00:55:51
    Hi Peter,

    hmm... eigentlich sage ich in meiner Broadcast-Such-Anfrage, dass ich Geräte haben möchte, die den Typ "urn:schemas-upnp-org:device:ZonePlayer:1" haben. Alles andere sollte dann auch nicht gemeldet werden.

    Aber du hast natürlich Recht, ich prüfe in meiner Callback-Methode dann nicht mehr, was sich da eigentlich gemeldet hat, sondern laufe einfach mit meiner Verarbeitung los :-)
    Ich schaue mir das nochmal an, da kann man sicherlich noch eine Prüfung einbauen, mein Skript ist da nur etwas gutgläubig...

    Allerdings sollte wirklich was auf der Konsole rauskommen, da wird so einiges gemeldet. Aber wir haben jetzt ja erstmal einen Anhaltspunkt den ich verfolgen/ausmerzen kann. Dann schauen wir weiter...

    Grüße Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: JoeALLb am 17 Oktober 2013, 18:42:42
    Bei einem Tastendruck liefert ein Notify mit folgendem Inhalt

    set Sonos_Wohnzimmer RemoveMember Sonos_Schlafzimmer,Sonos_Kueche,Sonos_Bad;;
    set Sonos_Wohnzimmer stop

    diese Fehlermeldung...
    Can't use string ("") as a HASH ref while "strict refs" in use at ./FHEM/21_SONOSPLAYER.pm line 486.
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 17 Oktober 2013, 20:25:22
    Hi JoeALLb,

    der Befehl "RemoveMember" ist momentan nur für das Entfernen von einem Mitglied der aktuellen Gruppe gebaut (genauso wie "AddMember" nur einen hinzufügen kann). Es kann also keine Liste übergeben werden, sondern nur ein Devicename.

    Ich schreibe das mal auf meine Liste, dass dort auch mehrere Elemente möglich sein sollen.

    Alternativ dazu kannst du am zentralen Sonos-Device den "Groups"-Befehl verwenden. Wenn du einen Zoneplayer alleine in einer Zone haben möchtest, kannst du das dort z.B. mit dem Befehlset Sonos Groups [Sonos_Wohnzimmer]erreichen.

    Grüße Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: JoeALLb am 17 Oktober 2013, 21:26:54
    Hallo Reinerlein,

    danke für die Info, das habe ich wohl übersehen.

    set Sonos Groups [Sonos_Wohnzimmer]hat leider nur einmal funktioniert, seither macht es nichts mehr.... während andere Befehle aber noch angenommen werden.
    Seltsam alles.... ich teste weiter!
    Titel: Antw:Sonos steuern
    Beitrag von: JoeALLb am 17 Oktober 2013, 22:06:19
    Nachtrag:
    Wenn ich alle Sonose getrennt einzeln angebe, löst er die Gruppen zuverlässig auf!
    Bsp:
    set Sonos Groups [Sonos_Bad], [Sonos_Kueche]

    Folgendes fällt mir noch auf: Wenn ich diesen Befehl über ein notify starte,
    set Sonos Groups [Sonos_Wohnzimmer,Sonos_Kueche];;set Sonos_Wohnzimmer LoadRadio BAYERN%203;;set Sonos_Wohnzimmer Play;;set Sonos_Wohnzimmer Volume 40;;set Sonos_Kueche Volume 40kommt folgender Fehler.
    Hier habe ich das % in Bayern 3 vergessen zu escapen.

    String found where operator expected at (eval 617) line 1, near "Tirol",""
    Bareword found where operator expected at (eval 617) line 1, near "","LoungeFM"
            (Missing operator before LoungeFM?)
    String found where operator expected at (eval 617) line 1, near "LoungeFM",""
    Bareword found where operator expected at (eval 617) line 1, near "","ORF"
            (Missing operator before ORF?)
    String found where operator expected at (eval 617) line 1, near "4",""
            (Missing operator before ","?)
    Bareword found where operator expected at (eval 617) line 1, near "","RTL"
            (Missing operator before RTL?)
    Number found where operator expected at (eval 630) line 1, near "" not found. Choose one of: "95.5"
            (Missing operator before 95.5?)
    Bareword found where operator expected at (eval 630) line 1, near "95.5 Charivari"
            (Missing operator before Charivari?)
    String found where operator expected at (eval 630) line 1, near ")",""
            (Missing operator before ","?)
    Bareword found where operator expected at (eval 630) line 1, near "","Antenne"
            (Missing operator before Antenne?)
    Bareword found where operator expected at (eval 630) line 1, near "","BAYERN"
            (Missing operator before BAYERN?)
    Number found where operator expected at (eval 630) line 1, near "BAYERN 3"
            (Do you need to predeclare BAYERN?)
    String found where operator expected at (eval 630) line 1, near "3",""
            (Missing operator before ","?)
    Bareword found where operator expected at (eval 630) line 1, near "","Bayern"
            (Missing operator before Bayern?)
    Number found where operator expected at (eval 630) line 1, near "Bayern 2"
            (Do you need to predeclare Bayern?)
    String found where operator expected at (eval 630) line 1, near "2",""
            (Missing operator before ","?)
    Bareword found where operator expected at (eval 630) line 1, near "","Jamcast"
            (Missing operator before Jamcast?)
    String found where operator expected at (eval 630) line 1, near "Jamcast",""
    Bareword found where operator expected at (eval 630) line 1, near "","Life"
            (Missing operator before Life?)
    String found where operator expected at (eval 630) line 1, near "Tirol",""
    Bareword found where operator expected at (eval 630) line 1, near "","LoungeFM"
            (Missing operator before LoungeFM?)
    String found where operator expected at (eval 630) line 1, near "LoungeFM",""
    Bareword found where operator expected at (eval 630) line 1, near "","ORF"
            (Missing operator before ORF?)
    String found where operator expected at (eval 630) line 1, near "4",""
            (Missing operator before ","?)
    Bareword found where operator expected at (eval 630) line 1, near "","RTL"
            (Missing operator before RTL?)
    Use of uninitialized value in string eq at ./FHEM/00_SONOS.pm line 3752.
    Use of uninitialized value in string eq at ./FHEM/00_SONOS.pm line 3752.
    Use of uninitialized value in string eq at ./FHEM/00_SONOS.pm line 3752.
    Use of uninitialized value in string eq at ./FHEM/00_SONOS.pm line 3752.
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 17 Oktober 2013, 22:53:25
    Hi JoeALLb,

    Bei deinem Radiosender schnippelt Fhem das Prozent-Zeichen raus, und setzt dafür den Namen des Events ein.

    Du musst in einem Notify "%%" schreiben, um ein Prozentzeichen durchzubekommen.

    Zu den Gruppen: Der Befehl erzeugt die angegebenen Gruppenkonstellationen. Mein Tipp war eher eine Zweckentfremdung dessen, da ich davon ausgegangen bin, dass du gerne dein Wohnzimmer alleine haben wolltest :-) Wenn du alles in einzelne Zonen möchtest, musst du das so machen, wie du geschrieben hast. Korrekterweise auch noch mit dem Wohnzimmer:set Sonos Groups [Sonos_Bad], [Sonos_Kueche], [Sonos_Wohnzimmer]
    Grüße Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: peter79 am 18 Oktober 2013, 00:05:18
    Hi Reiner,

    Zitat
    Allerdings sollte wirklich was auf der Konsole rauskommen, da wird so einiges gemeldet. Aber wir haben jetzt ja erstmal einen Anhaltspunkt den ich verfolgen/ausmerzen kann. Dann schauen wir weiter...

    --> OK, hatte mich etwas falsch ausgedrückt, natürlich wird mit "verbose 5" viel gelogged - aber während des Absturzes halt leider nichts, was nicht sonst auch kommt (z.B. die normalen keepalives). Hier noch einmal dargestellt - das ging diesmal schneller als ich nach aufstecken des IPMIs auf den Switch aus dem Keller wieder hochlaufen konnte  ;-)

    2013.10.17 23:21:14 4: SONOS2: IsAlive-Event UDN=RINCON_000E58EFB30601400_MR
    2013.10.17 23:21:14 5: SONOS2: Location: http://192.168.1.106:1400/xml/device_description.xml
    2013.10.17 23:21:14 5: SONOS2: PingType: icmp
    2013.10.17 23:21:14 4: SONOS2: 192.168.1.106 is alive
    Thread 1 terminated abnormally: Can't use string ("
        ") as an ARRAY ref while "strict refs" in use at FHEM/lib/UPnP/Common.pm line 219, <$client> line 2.
    2013.10.17 23:21:24 4: SONOS2: IsAlive-Event UDN=RINCON_000E58F2222801400_MR
    2013.10.17 23:21:24 5: SONOS2: Location: http://192.168.1.107:1400/xml/device_description.xml
    2013.10.17 23:21:24 5: SONOS2: PingType: icmp
    2013.10.17 23:21:25 4: SONOS2: 192.168.1.107 is alive


    Zitat
    hmm... eigentlich sage ich in meiner Broadcast-Such-Anfrage, dass ich Geräte haben möchte, die den Typ "urn:schemas-upnp-org:device:ZonePlayer:1" haben. Alles andere sollte dann auch nicht gemeldet werden.
    Aber du hast natürlich Recht, ich prüfe in meiner Callback-Methode dann nicht mehr, was sich da eigentlich gemeldet hat, sondern laufe einfach mit meiner Verarbeitung los :-)

    --> Soweit ich im Dump sehen kann, erfolgt vor der SSDP-Message des IPMI keine Broadcast-Suchanfrage. Bin mir nicht sicher, wie Du das hier gemeint hast, aber für mich sieht es so aus, als würde die Callback-Methode dann eher auf alles hören, was an UPnP SSDP-Messages übers Netz kommt oder liegt das Problem vielleicht schon in der UPnP/Common.pm lib?! Bin hier im Moment nicht im Bilde, wie das alles zusammenspielt. Wenn ich mir Deinen Code anschaue, sollte da aber soweit ich es sehe wirklich eine Logging-Message kommen...

    Mach Dir bitte keine Stress - ich habe für mich ja erst einmal eine Lösung gefunden (Switch-Port-Shutdown für das IPMI, so oft brauche ich das zum Glück nicht...) - wie gesagt, könnte ich mir aber vorstellen, dass es früher oder später auch andere über dieses Problem stolpern - mit welcherm UPnP-Gerät auch immer.

    PS: Nach Abschaltung des IPMI lief das ganze bis zum Zeitpunkt als ich den Port wieder aufgesteckt hatte :)

    Viele Grüße
    Peter
    Titel: Antw:Sonos steuern
    Beitrag von: JoeALLb am 18 Oktober 2013, 00:50:03
    Hallo Reiner, sorry,
    das hätte ich genauer schreiben sollen, aber das ist mir schon aufgefallen.
    Ich dachte nur, die Logdaten wären dennoch hilfreich, um das eventuell abzufangen...

    Gibt es für das URLencoden eigentlich eine Funktion, damit soetwas ähnliches wie
    {fhem (set Sonos_Wohnzimmer LoadRadio $encode("BAYERN 3") } möglich wird?

    Gibt es eine Möglichkeit, schnell alle Sonosse abzuschalten? Derzeit schalte ich alle nacheinander ab,
    was leider eine weile dauert.... Im Controller gibt es die Funktion "Alle Anhalten", die deutlich schneller reagiert.
    Ich dachte nur, dass es vielleicht in einen einzigen Aufruf gesteckt werden kann......



    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 18 Oktober 2013, 02:22:13
    Hallo zusammen,

    @Peter: Ich bin da gerade am Untersuchen, wie sich ein Zoneplayer vielleicht von anderem unterscheiden läßt. Das sollte wohl eigentlich möglich sein :-)
    nur kurz zum Komzept von UPnP: Man startet eine Suchanfrage als Broadcast in das lokale Netz. Dabei gibt man an, von welchen Grätetypen man Discover-Nachrichten erhalten möchte. Das wird dann im Normallfall gefiltert (ob das erst in der UPnP-Library erfolgt, oder das Device sich gar nicht erst meldet, weiss ich auch gerade nicht so genau), und über meine Callback-Methode gemeldet. Das bedeutet, daß dein IPMI auf eine solche Suchanfrage reagiert, und in meiner Callback-Methode landet. Im Prinzip ist es wurscht, warum genau. Das muss ich auf jeden Fall abfangen :-)
    Leider ist bei meinem Rechnersystem gerade ein Problem aufgetreten um das ich mich kümmern muss. Ich bitte da also kurzzeitig um etwas Geduld.

    @JoeALLb: Mit dem zentralen Stop für alle Sonos-Geräte schaue ich mal, wie der Original-Controller das macht. Aber ich gehe davon aus, dass der auch nur an alle nacheinander eine Nachricht sendet. Aber mal schauen...
    Zu den Playlistnamen: Wenn das Sonos Modul läuft, dann hat dein Perl offensichtlich das URI::Escape Paket geladen (ist eine Voraussetzung:-). Das bedeutet, du kannst mit dem Aufruf vonuri_escape('Meine Playlist')das Leerzeichen umwandeln lassen. Ich verwende auf der Befehlsempfangsseite das Pendant "uri_unescape()" aus diesem Paket. Das sollte also passen...

    Wie gesagt, ist mir gerade ein Problem Dazwischengekommen und damit meine Entwicklungsumgebung abhanden gekommen... Es gibt hier also eine kurze Verzögerung in der Weiterentwicklung...

    Grüße Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: JoeALLb am 21 Oktober 2013, 20:27:50
    Hallo!

    Habt ihr eine Idee? Seit heute wird folgender text immer in der Küche, statt im Wohnzimmer ausgegeben:
    set Sonos_Wohnzimmer Speak 50 de Durchsage Test
    Ich habe fhem neu gestartet und habe noch immer das selbe ergebnis! Bin echt ratlos!
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 21 Oktober 2013, 21:56:35
    Hallo JoeALLb,

    das Modul unterscheidet die einzelnen Player anhand der eindeutigen UDN. Hast du deine Sonos Landschaft vielleicht umbenannt?
    Das würde Fhem nicht weiter interessieren, da er ja immer noch die alten UDNs zu den alten Namen hat. Das kannst du kontrollieren, indem du an deinem SonosController die Informationen "Über das Sonos-System" ausgeben läßt, und mit den bei Fhem angegebenen UDNs vergleichst.
    Die UDN ist das Kürzel "RINCON_" gefolgt von der Seriennummer (was auch die Hardware-MAC-Adresse des Geräts ist) ohne Bindestriche, gefolgt von der Konstanten "1400_MR".

    Schau mal, ob die Fhem-Playernamen noch mit den entsprechenden Sonos-Playernamen übereinstimmen...

    Grüße Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: JoeALLb am 21 Oktober 2013, 22:08:01
    Hallo Reiner,

    danke für die Nachricht! Nein, ich habe nichts umbenannt und habe sie auch nicht umgestellt.
    Aber jetzt geht es wieder. Ich habe alle in eine Gruppe geschmissen und die Gruppe dann einzeln wieder aufgelöst: --> Jetzt kommen die Befehle
    (es gab auch noch andere..) wieder beim korrekten Gerät an.
    Passiert ist es erstmals, nachdem ich solch einen Befehl an ein Gerät geschickt habe, das sich gerade in einer anderen Gruppe befunden hat....

    seltsam, und meine Frau war ganz schön überrascht!!! :D
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 22 Oktober 2013, 00:15:48
    Hi JoeALLb,

    ok, damit hast du einen Bug entdeckt. Der Befehl "AddMember" ist stillschweigend davon ausgegangen, dass der hinzuzufügende Player "frei" ist.
    Das muss ja nicht immer so sein :-)

    Dabei entstehen wirklich lustige Konstellationen (das sieht man im Original-Controller nur anhand der Abspiellisten), dass ein Player z.B. zwar alleine eine Gruppe bildet, aber nicht sein eigener Koordinator ist :-)
    Das ist doch eher ungewöhnlich...

    Ich werde das also entsprechend anpassen...

    Als Notbehelf kann man den Befehl "set Groups" verwenden, und dort alle Player als jeweils eigene Gruppe angeben. Dann räumt er damit wieder auf...

    Danke für die Meldung.

    Grüße, Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: der-Lolo am 24 Oktober 2013, 06:11:21
    Hallo Reiner,
    Ich stolper ab und an über Abstürze meines Netzwerks, in diesem Zusammenhang ist mir der Avahi server aufgefallen der auf dem Raspi läuft, ich vermute mal das es für das Sonos Modul gebraucht wird...
    Kannst du mal was zu avahi sagen? Ich fand im ubuntu wiki einen Artikel in dem zum Beispiel beschrieben wird das man IPv6 ausklammern könne falls nicht benutzt...
    Was sind deine Anforderungen an avahi?
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 24 Oktober 2013, 08:59:44
    Hallo Der-Lolo,

    mir ist kein (direkter) Bezug des Sonos-Moduls zu avahi bekannt. Ich kannte das auch noch gar nicht. Es kann natürlich sein, dass ein Perl-Modul das irgendwo mitbringt.

    Ein Blick auf Wikipedia bzgl. avahi hat aufgezeigt, dass auch ein grafischer Desktop dieses Modul mitbringen könnte. Kann es sein, dass du sowas auf deinen Pi installiert hast?

    Edit: Es könnte auch von Bonjour gekommen sein. Das scheint eine zeroconf-Implementierung von Apple zu sein...

    Grüße Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: det. am 31 Oktober 2013, 22:17:39
    Hallo Reiner,
    mal wieder ein Statusupdate von mir. Nach kompletter Neuinstallation von Linaro Linux, Perl und Fhem auf einem Cubieboard2 läuft Dein Modul auch bei mir. Es lag also wirklich an der Ordnerstruktur des Busware RPI Image vom September letzten Jahres, welches ich für meine 3 RPI immer nur geklont und angepasst hatte. Nach dem ersten Eindruck rennt das alles sehr schnell.
    Titel: Antw:Sonos steuern
    Beitrag von: Christoph am 06 November 2013, 10:50:46
    Hoffe das die bald erhältlichen Sonos Play1 auch funktionieren.

    Funktioniert ohne Probleme  :)
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 06 November 2013, 15:45:22
    Hallo zusammen,

    von mir auch mal wieder eine Meldung.
    Ich habe meinen Rechner-Ausfall nun hinter mich gebracht, und kann mich wieder um das Modul kümmern.
    Ich bin gerade an dem Phänomen von komischen Lautstärken bei Durchsagen bei Gruppen. Ansonsten steht ja noch der eine oder andere Punkt auf der Liste...

    Ich denke, dass es am Wochenende was neues geben könnte...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: Will am 10 November 2013, 21:38:58
    Hallo zusammen,

    Wieder mal ein neues fhem aufgesetzt und mich auf das neue sonos Modul gefreut. Zusätzlich betreibe ich eine neue sonos Komponente. Jetzt laufen play 1, play 3, und ein connect.
    Mit dem neuen sonos Modul läuft es aber noch nicht so rund:
    Alle player werden erkannt und die readings sind korrekt (sehe ich wenn ich mit der sonos APP bediene). Den play 1 kann ich über fhem bedienen....wenn ich dann den connect an machen will (play) geht der play 1 an. Wenn ich den play1 trenne, passiert gar nichts, also ein play bewirkt nichts....
    Meine notifies habe ich umgestellt auf das "große S" ;-)

    Hat da jemand eine Idee?

    Danke

    Wil

    Sent from my Nexus 7 using Tapatalk

    Titel: Antw:Sonos steuern
    Beitrag von: Will am 10 November 2013, 22:13:03
    Ach ja, stelle gerade fest, dass VolU und VolD und MuteT funktionieren, Play und Pause jedoch nicht.....die scheinen immer noch an den nplay1 zu gehen, obwohl abgesteckt (bei diesen befehlen motzt der log, dass der player bathroom - der play1- dissappeared ist)....

    W

    Sent from my Nexus 7 using Tapatalk

    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 11 November 2013, 00:13:38
    Hi Will,

    kann es sein, dass diese beiden vorher eine Gruppe gebildet hatten? Vielleicht sogar so, dass der nun fehlende Play1 der Gruppenmaster war?

    Das würde darauf hindeuten, da die Lautstärke natürlich immer direkt an den entsprechenden Player gesendet wird, und Play/Pause usw. an den sogenannten Gruppenmaster...

    Ich fürchte, ich musss mir noch ein paar Gedanken um dieses ganze Gruppengetue machen. Diese Gruppen werden in meinen Augen nicht sauber von Sonos behandelt, sonst würden die verbleibenden Mitglieder eine Nachricht senden, dass sich der Zustand verändert hat... So aber bleibt alles beim Alten, und die Controller gucken in die Röhre, und senden ihre Signale an den falschen Player...

    Grüße Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: Will am 11 November 2013, 06:31:33
    Hallo reinerlein,
    Du hast natürlich recht, da hat fhem irgendwie nicht mitbekommen, dass es die Gruppe nicht mehr gibt. Wie wird in fhem denn die Gruppen aufgelöst? Muss man da immer jeden einzelnen player ungroupen? Ich mache mir dann malmeinen button der das tut......

    Sent from my Nexus 7 using Tapatalk

    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 11 November 2013, 13:01:30
    Hi Will,

    das Problem ist, dass es keine Möglichkeit gibt 'in Fhem' zu ungroupen. Ich kann zwar Gruppieren und das auch wieder auflösen, das erfolgt aber durch Versenden von Nachrichten an die Player. Die wirkliche Gruppierungsfeststellung erfolgt dann durch einen Callback-Aufruf seitens der Player bei Fhem.

    Soll heissen, man hat keinen direkten Einfluss auf die Zoneplayer-Gruppen in Fhem, sondern die Player senden diesen Zustand an Fhem.

    Das bedeutet dann aber auch, dass du einen nicht mehr vorhandenen Player nicht mehr ungroupen kannst (Fhem sagt dir dann richtigerweise dass der Player verschwunden ist :-)

    Wie gesagt, ich muss mir da mal Gedanken machen, ob ich das Sonos-System als solches nicht zu einer Status-Aktualisierung überreden kann...

    Grüße Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: djhans am 14 November 2013, 22:39:03
    Hallo,
    ich bin neu im fhem Forum. Habe mir heute einen rasperry pi bestellt und will nun in Sachen Homeautomation mit Sonos und Fritzbox anfangen.

    In den letzen Tagen habe ich etwas mit php-Sonos herumgespielt, Grruppen gebildet, wieder aufgelöst, Radiosender abgespielt, Playlisten ausgelesen und gespeichert usw.

    Da Sonos später mit enocean Komponenten verbinden möchte, habe ich mich inzwischen in einige Systeme eingelesen und mich jetzt für fhem entschieden, da es meiner Ansicht nach meisten Möglichkeiten bietet....


    Meine Vorstellungen sind:
    - Gruppenkonfigurationen zeitgesteuert oder per Tastendruck bilden und wieder aufzulösen.
    - das Bilden von Stereopaaren bei play1 und play3
    - Einbinden eines SUBs (play3 + play3 +SUB)
    - Musik langsam ein und ausblenden bei Ereignissen (z.B. Telefon klingelt)
    - Türklingel mit BigBen-Sound als mp3
    - Sleeptimer auf Tastendruck (Lichtschalter)
    - Wecker über Google Calendar steuern

    Welche dieser Funktionen werden schon stabil unterstützt und welche könnten irgendwann mal funzen...und was ist aus der Sicht der Experten unlösbar!

    Zum Testen von Funktionen bin ich gerne bereit, nur leider habe ich keinen großen Plan vom Programmieren..

    Vielen Dank,
    djhans
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 15 November 2013, 11:20:57
    Hallo djhans,

    erstmal herzlich willkommen bei Fhem :-)

    Zu deinen Fragen kann ich ein paar Antworten geben:
    - Gruppenkonfigurationen können über das Modul durchgeführt werden, und sind damit über Fhem-Zeit-Events auch Zeitgesteuert machbar.
    - Stereopaare gehen mit dem Modul nicht. Ich habe bislang die Philosophie verfolgt, dass nur das in der Automation landet, was auch automatisiert praktikabel ist. Diese Stereopaare sorgen nach der Einrichtung dafür, dass ein (bzw. zwei) Player "nicht mehr existiert" und damit über das Fhem-Modul auch nicht mehr greifbar wird. Ich vermute, dass es im Anschluss schwer wird, diese wieder aufzulösen (zumindest nicht über eine Umkehr-Operation, sondern durch eine Nachricht an den neu entstandenen Player). Verifiziert habe ich diese Aussage aber jetzt nicht. Ich kann mir das nach den momentan anliegenden Punkten ja mal anschauen...
    - Ich weiss jetzt nicht, was du mit Einbinden eines SUBs meinst. Das Einrichten selbst kann das Modul analog zu den Stereopaaren nicht. Benutzen aber schon, da sich das ganze Gebilde dann ja als ein Player meldet.
    - Musik langsam ein-/ausblenden ist nicht implementiert. Da kann ich aber mal schauen, ob das System das beherrscht. Ansonsten würde das für ein bisschen Last auf Fhem sorgen, da du eine Art Schleife bauen müsstest. Bedenke dabei aber, das das Modul eine eigene Warteschlange für die Anweisungen an die Player hält, und deine gesammelten Lautstärkeanpassungen dann u.U. in einem Rutsch ankommen...
    - Türklingel ist dann kein Problem, wenn diese ein Event in Fhem verursacht :-) Das (temporäre) Abspielen von Dateien geht mit dem Modul
    - Der Sleeptimer kann von Fhem aus gesetzt und auch abgefragt werden. Du kannst also auch ein Fhem-Event erzeugen lassen, wenn ein Sleeptimer abläuft. Damit kann man z.B. 10 Sekunden nach Ablauf des Sleeptimers das Licht ausmachen :-) Damit kann man auch auf Steuerungen aus Sonos heraus reagieren.
    - Der Wecker ist auch über Fhem einstellbar, und somit über eine geschickte Event-Erzeugung das auch über Google-Calendar einstellen lassen. Der umgekehrte Weg geht auch: Wenn jemand den Sonos-Wecker über seinen Controller anpasst, dann kannst du ein Fhem-Event dazu bekommen.

    Im Normalfall sind die Funktionen, die unterstützt werden, auch stabil. Da ich an dem einen oder anderen Punkt aber noch aktiv dran bin, bzw. diese recht frisch sind, kann es immer mal wieder zu einem Fehler kommen...

    Zu den Möglichkeiten kannst du auch mal im Fhem-Wiki nachschauen: http://www.fhemwiki.de/wiki/Sonos_Anwendungsbeispiel

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: djhans am 15 November 2013, 12:35:13
    Hallo Reiner,
    ganz lieben Dank für die schnelle Antwort.

    Ja, das mit den Stereo-Paaren und dem SUB ist natürlich schade! Aber ich denke auch, daß es recht komplex werden könnte, zumal man die Einstellungen des einzelnen Players vor und nach der Bildung als Stereopaar speichern müsste (Bass, Höhen, Loudness), da diese per Default nach der Zusammenkunft und Trennung auf Std.-Werte zurückgesetzt werden.

    Meine Anwendung ist die, daß ich halt ab und zu die beiden Play3s aus dem Schlafzimmer und dem Bad zusammen mit dem "Wohnzimmer-Sub" als Play3-Stereopaar mit SUB im Partykeller betreibe. Wenn man diese Konfigurationen auf Knopfdruck umstellen könnte, wäre das natürlich super genial!

    Das mit der Musik ein-und ausblenden geht mit PHP-Sonos. Die Funktion heißt  RampToVolume und funktioniert unter php eigentlich ganz gut bei mir.
    $sonos->RampToVolume(AUTOPLAY_RAMP_TYPE, 30); // Lautstärke steigt auf 30% an
    $sonos->RampToVolume(SLEEP_TIMER_RAMP_TYPE, 0); //Lautstärke wird ausgeblendet auf 0%
    Dafür braucht man keine Schleife. Ich habe es nur nicht hinbekommen, daß der Player beim ausblenden bis auf 0  auch wirklich abschaltet. Er geht halt nur auf "Mute"

    Keine Ahnung ob Dir das Bsp. hilft, aber es sollte funzen...

    Gruß,
    Christian
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 15 November 2013, 13:35:57
    Hi djhans,

    das mit der RampToVolume-Geschichte wird dann auf jeden Fall gehen. Ich schaue mir das, wie gesagt, mal an, und baue es ein.

    Mit dem Umbauen der Zonen kann ich ja mal schauen. Es wird dann halt nicht so bequem gehen, aber vielleicht kann ich da ja eine Art "Roh-Steuerungs-Modus" auf dem zentralen Modul machen (also nicht Device-abhängig). Ich kann ja auch noch einbauen, dass sowas wie Bass und Treble auch einstellbar sind, dann könnte man sich vielleicht zumindest eine Grundkonfiguration bauen.
    Wie gesagt, ich schaue mal, ob das sinnvoll geht... Ich habe das ganze Verhalten bei sowas bei mir noch nie untersucht...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: djhans am 15 November 2013, 13:52:03
    Hi Reiner,
    super genial! Ich teste auch gerne alles durch.....
    Aber zuerst muss mein raspberry ans Fliegen kommen (Lieferung ist für morgen angekündigt!). Ich hoffe fhem funzt auch nur mit SONOS!
    Und dann muss ich so langsam anfangen alles auf enocean umzustellen, damit die Hütte auch"smart"  wird! ...und das wird ein langer kostenintensiver Weg...
    Ich hoffe nur, fhem ist die richtige Wahl gewesen.

    Ich melde mich wenn fhem läuft...
    Besten Dank und Gruß,
    Christian.
    Titel: Antw:Sonos steuern
    Beitrag von: djhans am 18 November 2013, 21:43:00
    Hallo Reiner,
    ich habe fhem nun auf dem pi laufen. Die Sonos Module habe ich lt. wiki mit "update thirdparty http://fhem.lmsoft.de/sonos sonos" in fhem installiert.
    Wie kann ich sehen, dass alles ok ist? Ich habe erwartet, dass die Sonos Module unter "Edit files" auftauchen.
    Gibt es eine einfache Möglichkeit einen Test zu machen? Oder ist ggf. bei der Installation der Module schief gegangen.

    die perl-Libs habe ich installiert.
    apt-get install libwww-perl libsoap-lite-perl
    Nachtrag:
    ich versteh noch nicht, wie man das System anspricht. Per Zufall hatte ich plötzlich Daten vom Sonos. Keine Ahnung wie ich das gemacht habe, habe es wieder gelöscht....wie macht man das ohne Zufall?

    Gruß,
    Christian
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 18 November 2013, 23:30:27
    Hi Christian,

    du hast dann erstmal nur meine Moduldateien vorhanden. Du müsstest jetzt mal das Sonos Modul initialisieren.
    z.B.:
    define Sonos SONOS localhost:4711 30

    Dann wirst du vielleicht noch das eine oder andere Perl-Modul nachinstallieren müssen. Das siehst du dann im Log. Dazu gibt es dann auch Hinweise im Wiki-Artikel. Aber das hast du ja auch schon entdeckt :-)

    Wenn alles funktioniert, werden automatisch alle Zoneplayer erkannt und angelegt. Wie bei Fhem üblich, erfolgt das alles erstmal nur im Speicher...
    Die Weboberfläche erreichst du im Normalfall unter http://ip.adresse:8083

    Grüße Reiner

    Titel: Antw:Sonos steuern
    Beitrag von: djhans am 19 November 2013, 08:25:15
    Hallo Reiner,
    1000 Dank!. Das war es! Er findet alle Player.Ich hatte die "define" -  Zeile zwar schon gesehen, aber dachte es wäre nur ein Bsp. Ich konnte mit "4711 30" nix anfangen und habe es weggelassen....

    Nun gut!
    Jetzt kann ich ein wenig rumspielen.

    djhans
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 19 November 2013, 10:11:30
    Hi Christian,

    schön :-)

    Nur zur Erklärung:
    Der Parameter
    localhost:4711
    beschreibt die Adresse, unter der der Subprozess erreichbar ist, bzw. gestartet wird.

    Die 30 sind der Timerintervall in Sekunden, in dem die Player auf Vorhandensein geprüft werden sollen.

    Viel Spaß beim Probieren...

    Grüße Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: djhans am 19 November 2013, 14:49:02
    Hallo,
    Besten Dank! Das verstehe ich (..."4711" erinnert mich immer an das Wasser aus Köln ;-)).
    Ich teste mal alles durch. Auf jeden Fall ist das eine feine Sache mit dem Sonos...

    Christian.
    Titel: Antw:Sonos steuern
    Beitrag von: djhans am 19 November 2013, 16:11:30
    Hallo,
    also, irgendwie bin ich zu doof die Syntax zu kapieren!

    Ich will einfach nur in die fhem.cfg eintragen, daß auf einem bestimmten Sonos ein Radiosender abgespielt wird.

    Folgendes ist in der Config eingetragen:

    define Sonos SONOS localhost:4711 30Auf der linken Seite findet fhem nun meine 3 Kisten unter dem Label Sonos:
    Sonos_Wohnzimmer
    Sonos Schlafzimmer
    Sonos_Bad

    Wenn ich über das WebInterface nun Befehle absetzte, klappt das wunderbar, z.B.

    set LoadRadio WDR%202%20Ruhrgebiet
    Nun will ich das Ganze für die Kiste im Schlafzimmer in die Config einbauen und breche mir die Finger dabei!


    Setze Lautstärkre auf 20
    Lade WDR 2
    setzte sleeptimer 15
    schalte Schlafzimmer aus


    kriege ich nicht hin. Sobald ich versuche mit define Sonos_Schlafzimmer irgendetwas in die cfg einzutragen und speichere, meckert fhem, daß ich zuerst Bad und Wohnzimmer definieren muss...


    Das verstehe ich schon wieder nicht. Wie muss ich das aufbauen=


    Christian.



    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 19 November 2013, 17:20:13
    Hi Cristian,

    aller Anfang ist schwer:-)

    Du hast doch schon mal einen Anfang. Die Geräte reagieren, und du kannst Befehle absetzen... Der Rest ist jetzt Fhem Notation kennenlernen :-)

    In meinem Wiki-Artikel gibt es auch ein paar Beispiele, wie man das so machen könnte.
    Als Grundlage:
    - Du musst dir überlegen, was du eigentlich machen möchtest: Möchtest du auf ein Event (z.B. einen Tastendruck bei einer anderen, in Fhem verfügbaren, Komponente) reagieren? Möchtest du auf der Oberfläche von Fhem eine Steuermöglichkeit haben?
    - Ein Event wird z.B. in Fhem mit "notify" eingerichtet, und hat dann die Form
    define NameDesNotify notify RegulärerAusdruckDerDasEventBeschreibt AktionDieAusgeführtWerdenSoll

    Dazu empfiehlt sich auf jeden Fall auch die Lektüre der diversen Fhem-Einstiegsdokumente...
    Z.B.: http://fhem.de/Heimautomatisierung-mit-fhem.pdf

    Auf jeden Fall musst du die SonosPlayer nicht mehr per define definieren, da dies bereits erledigt wurde. Du kannst diese Komponenten nun benutzen, indem du sie steuerst, oder auf Events dieser Komponenten reagierst, indem du ein passendes Notify schreibst...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: djhans am 20 November 2013, 13:58:25
    Hallo,
    danke für den Hinweis. Ich werde mal ein wenig probieren. Ich ahbe im Logfile allerdings zig Fehler, die nach einer gewissen Zeit auftauchen. Kann das jemand deuten? Das ist nur ein Ausschnitt:

    2013.11.20 13:48:23 0: SONOS0: ERROR in DoWork: 'play' -> UDN is undefined - []

    2013.11.20 13:48:24 0: SONOS0: Fehlerhafter Aufruf von DoWorkAnswer: :LastActionResult:CheckProxyObject-ERROR: SonosPlayer disappeared
    2013.11.20 13:48:29 0: SONOS0: ERROR in DoWork: 'pause' -> UDN is undefined - []

    2013.11.20 13:48:29 0: SONOS0: Fehlerhafter Aufruf von DoWorkAnswer: :LastActionResult:CheckProxyObject-ERROR: SonosPlayer disappeared

    Das ist sicherlich nicht normal:

    Dan habe ich versucht einen ganz einfachen Aufruf zu programmieren, aber auch da mache ich immer noch etwas gasch:

    define SonosAn at 13:00:00 set Sonos_Schlafzimmer Play

    Soll bezwecken, dass er einfach um13:00 Uhr die Kiste einchaltet, aber im Log steht:
    2013.11.20 13:00:00 3: SonosAn: Please define Sonos_Schalfzimmer first
    Hängt das mit den Fehlermeldungen zusammen, oder ist der Aufruf einfach falsch! Wenn ich in fhem einfach:
    set Sonos_Schlafzimmer Play eintippe, spielt das Gerät.

    djhans.

    Titel: Antw:Sonos steuern
    Beitrag von: der-Lolo am 20 November 2013, 14:06:46
    Tippfehler Schalfzimmer ist nicht gleich Schlafzimmer...
    Titel: Antw:Sonos steuern
    Beitrag von: djhans am 20 November 2013, 14:55:40
    Hi,
    danke, das ist es aber nicht.

    Im EventMonitor steht:

    Events:
    2013-11-20 14:52:00 SONOSPLAYER Sonos_Schlafzimmer Play
    2013-11-20 14:52:00 Global global DELETED SonosAN

    spielt aber trotzdem nicht. Der Tippfehler ist raus.

    djhans.
    Titel: Antw:Sonos steuern
    Beitrag von: der-Lolo am 20 November 2013, 15:15:59
    Was er abspielen soll weiß der Player? Lautstärke und Mute sind auch ok..?
    Titel: Antw:Sonos steuern
    Beitrag von: djhans am 20 November 2013, 15:53:03
    Hi,
    ich denke es liegt am Play-Command. Andere Kommandos. z.B. AddMember funktionieren. Möglicherweise braucht Play noch weitere Befehle.

    Komisch ist nur, dass es in der Befehlszeile geht.
    Er soll einfach den Radiosender abspielen, der eingestellt ist. Das ist alles.

    djhans
    Titel: Antw:Sonos steuern
    Beitrag von: djhans am 20 November 2013, 20:22:29
    Hallo,
    ich habe noch ziemliche Probleme mit dem Sonos Modul: Es kommen nach einiger Zeit seltsame Fehlermeldungen und die Sonos Player reagieren nicht mehr. Das geht bis zum Absturz von fhem. Jetzt habe ich diesen Fehler hier und es geht nix mehr:

    2013.11.20 20:16:21 0: SONOS0: ERROR in DoWork: 'play' -> UDN is undefined - []
    Woran kann das liegen?

    Christian
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 21 November 2013, 11:00:42
    Hi Christian,

    nun auch mal von mir was dazu:
    Was steht denn bei deinem SonosPlayer-Device im Reading "ZoneGroupID". Das ist das, was zur Ermittlung des Zielplayers verwendet wird. An diesen Zielplayer wird dann die Play-Nachricht versendet, und das scheint bei dir nicht korrekt zu laufen...

    Grüße Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: djhans am 21 November 2013, 12:23:23
    Hi,

    so ließt fhem das aus.
    Wohnzimmer: gibt es nicht nur UDN RINCON_000E5898943A01400_MR
    Schlafzimmer: RINCON_000E58F084FC01400:28
    Bad: RINCON_000E58F084FC01400:27

    Kann es sein, daß fhem Probleme kriegt, wenn man einen ZonePlayer vom Strom trennt und ihn dann woanders wieder einsteckt? oder muss man die Config, die sich in die fhem.cfg. einträgt wieder löschen, weil sich die Daten ändern?

    Wohnzimmer ist ein ConnectAMP mit Sonos SUB
    Bad und Schlafzimmer jeweils Play 3

    Christian.
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 21 November 2013, 13:16:38
    Hi Christian,

    momentan gibt es noch einen Bug, wenn man bei einer Gruppe den Koordinator (also derjenige, der am Anfang mal die Musik geliefert hat) abschaltet (vom Stromnetz trennt).
    Es wird von den Zoneplayern keine Nachricht rumgesendet, dass es nun einen neuen Koordinator geben müsste, und somit versucht Fhem auch diesen alten noch zu erreichen (da einfach keine neuere Information vorliegt)...

    Es sollte gehen, wenn man vor dem Abschalten, die Gruppe auflöst, oder eben nicht den Koordinator abschaltet...
    Das muss ich mir aber sowieso noch anschauen, und somit habe ich das auch auf meiner Liste...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: djhans am 21 November 2013, 14:17:12
    Hi,
    das kann es sein!
    Ich hatte testweise eine Gruppe gebildet. Bin mir aber nicht sicher, ob ich diese vor dem Trennen aufgelöst habe...das muss ich mal verfolgen.....

    Ich melde mich, wenn ich wieder Probleme habe...

    Christian.

    Titel: Antw:Sonos steuern
    Beitrag von: djhans am 21 November 2013, 14:35:02
    Hi,
    das ging schnell...

    Habe das System neu gestartet und auch die Sonos-Komponenten aus der fhem.cfg gelöscht.
    Meiner Meinung nach, erkennt Fhem den Connect:AMP im Wohnzimmer nicht. Der ist mit einem SUB gekoppelt.

    Wenn ich
    set Sonos_Wohnzimmer" LoadRadio WDR%202%20Ruhrgebietmache, kommt dieser Fehler im Log:

    2013.11.21 14:23:03 0: SONOS0: Fehlerhafter Aufruf von ReadingsBeginUpdate: RINCON_000E583B374001400_MR
    2013.11.21 14:23:03 0: SONOS0: Fehlerhafter Aufruf von ReadingsBulkUpdateIfChanged: RINCON_000E583B374001400_MR:presence:appeared
    2013.11.21 14:23:03 0: SONOS0: Fehlerhafter Aufruf von ReadingsBulkUpdateIfChanged: RINCON_000E583B374001400_MR:Volume:27
    2013.11.21 14:23:03 0: SONOS0: Fehlerhafter Aufruf von ReadingsBulkUpdateIfChanged: RINCON_000E583B374001400_MR:Balance:0
    2013.11.21 14:23:03 0: SONOS0: Fehlerhafter Aufruf von ReadingsBulkUpdateIfChanged: RINCON_000E583B374001400_MR:roomName:Wohnzimmer
    2013.11.21 14:23:03 0: SONOS0: Fehlerhafter Aufruf von ReadingsBulkUpdateIfChanged: RINCON_000E583B374001400_MR:saveRoomName:Wohnzimmer
    2013.11.21 14:23:03 0: SONOS0: Fehlerhafter Aufruf von ReadingsBulkUpdateIfChanged: RINCON_000E583B374001400_MR:playerType:ZP120
    2013.11.21 14:23:03 0: SONOS0: Fehlerhafter Aufruf von ReadingsBulkUpdateIfChanged: RINCON_000E583B374001400_MR:Volume:27
    2013.11.21 14:23:03 0: SONOS0: Fehlerhafter Aufruf von ReadingsBulkUpdateIfChanged: RINCON_000E583B374001400_MR:location:http://192.168.1.45:1400/xml/device_description.xml
    2013.11.21 14:23:03 0: SONOS0: Fehlerhafter Aufruf von ReadingsBulkUpdateIfChanged: RINCON_000E583B374001400_MR:softwareRevision:4.2
    2013.11.21 14:23:03 0: SONOS0: Fehlerhafter Aufruf von ReadingsBulkUpdateIfChanged: RINCON_000E583B374001400_MR:serialNum:00-0E-58-3B-37-40:B
    2013.11.21 14:23:03 0: SONOS0: Fehlerhafter Aufruf von ReadingsEndUpdate: RINCON_000E583B374001400_MR
    2013.11.21 14:23:17 0: SONOS0: Fehlerhafter Aufruf von GetReadingsToCurrentHash: RINCON_000E583B374001400_MR:1
    2013.11.21 14:23:17 0: SONOS0: Fehlerhafter Aufruf von GetReadingsToCurrentHash: RINCON_000E583B374001400_MR:0
    2013.11.21 14:23:17 0: SONOS0: Fehlerhafter Aufruf von ReadingsSingleUpdateIfChanged: RINCON_000E583B374001400_MR:SleepTimerVersion:
    2013.11.21 14:23:17 0: SONOS0: Fehlerhafter Aufruf von ProcessCover: RINCON_000E583B374001400_MR:/getaa?s=1&u=x-sonosapi-stream%3as99166%3fsid%3d254%26flags%3d32:http://192.168.1.45:1400
    2013.11.21 14:23:17 0: SONOS0: Fehlerhafter Aufruf von CurrentBulkUpdate: RINCON_000E583B374001400_MR
    2013.11.21 14:23:20 0: SONOS0: Fehlerhafter Aufruf von ReadingsSingleUpdateIfChanged: RINCON_000E583B374001400_MR:DailyIndexRefreshTime:07:00:00
    2013.11.21 14:23:21 0: SONOS0: Fehlerhafter Aufruf von ReadingsSingleUpdateIfChanged: RINCON_000E583B374001400_MR:ZonePlayerUUIDsInGroup:RINCON_000E583B374001400
    2013.11.21 14:23:21 0: SONOS0: Fehlerhafter Aufruf von ReadingsSingleUpdateIfChanged: RINCON_000E583B374001400_MR:ZoneGroupID:RINCON_000E583B374001400:58
    2013.11.21 14:23:21 0: SONOS0: Fehlerhafter Aufruf von ReadingsSingleUpdateIfChanged: RINCON_000E583B374001400_MR:ZoneGroupName:Wohnzimmer
    2013.11.21 14:23:22 0: SONOS0: Fehlerhafter Aufruf von ReadingsSingleUpdateIfChangedNoTrigger: RINCON_000E583B374001400_MR:Mute:0
    2013.11.21 14:23:22 0: SONOS0: Fehlerhafter Aufruf von ReadingsSingleUpdateIfChangedNoTrigger: RINCON_000E583B374001400_MR:HeadphoneConnected:0
    2013.11.21 14:23:22 0: SONOS0: Fehlerhafter Aufruf von ReadingsSingleUpdateIfChangedNoTrigger: RINCON_000E583B374001400_MR:Balance:0
    2013.11.21 14:23:22 0: SONOS0: Fehlerhafter Aufruf von ReadingsSingleUpdateIfChangedNoTrigger: RINCON_000E583B374001400_MR:Volume:27
    2013.11.21 14:23:22 0: SONOS0: Fehlerhafter Aufruf von GetReadingsToCurrentHash: RINCON_000E583B374001400_MR:0
    2013.11.21 14:23:22 0: SONOS0: Fehlerhafter Aufruf von CurrentBulkUpdate: RINCON_000E583B374001400_MR
    2013.11.21 14:23:24 0: SONOS0: Fehlerhafter Aufruf von GetReadingsToCurrentHash: RINCON_000E583B374001400_MR:1
    2013.11.21 14:23:24 0: SONOS0: Fehlerhafter Aufruf von GetReadingsToCurrentHash: RINCON_000E583B374001400_MR:0
    2013.11.21 14:23:24 0: SONOS0: Fehlerhafter Aufruf von ReadingsSingleUpdateIfChanged: RINCON_000E583B374001400_MR:SleepTimerVersion:
    2013.11.21 14:23:24 0: SONOS0: Fehlerhafter Aufruf von ProcessCover: RINCON_000E583B374001400_MR:/getaa?s=1&u=x-sonosapi-stream%3as99166%3fsid%3d254%26flags%3d32:http://192.168.1.45:1400
    2013.11.21 14:23:24 0: SONOS0: Fehlerhafter Aufruf von CurrentBulkUpdate: RINCON_000E583B374001400_MR
    2013.11.21 14:23:26 0: SONOS0: Fehlerhafter Aufruf von ReadingsSingleUpdateIfChanged: RINCON_000E583B374001400_MR:DailyIndexRefreshTime:07:00:00
    2013.11.21 14:23:26 0: SONOS0: Fehlerhafter Aufruf von ReadingsSingleUpdateIfChanged: RINCON_000E583B374001400_MR:ZonePlayerUUIDsInGroup:RINCON_000E583B374001400
    2013.11.21 14:23:26 0: SONOS0: Fehlerhafter Aufruf von ReadingsSingleUpdateIfChanged: RINCON_000E583B374001400_MR:ZoneGroupID:RINCON_000E583B374001400:58
    2013.11.21 14:23:26 0: SONOS0: Fehlerhafter Aufruf von ReadingsSingleUpdateIfChanged: RINCON_000E583B374001400_MR:ZoneGroupName:Wohnzimmer
    2013.11.21 14:23:26 0: SONOS0: Fehlerhafter Aufruf von ReadingsSingleUpdateIfChangedNoTrigger: RINCON_000E583B374001400_MR:Mute:0
    2013.11.21 14:23:26 0: SONOS0: Fehlerhafter Aufruf von ReadingsSingleUpdateIfChangedNoTrigger: RINCON_000E583B374001400_MR:HeadphoneConnected:0
    2013.11.21 14:23:26 0: SONOS0: Fehlerhafter Aufruf von ReadingsSingleUpdateIfChangedNoTrigger: RINCON_000E583B374001400_MR:Balance:0
    2013.11.21 14:23:26 0: SONOS0: Fehlerhafter Aufruf von ReadingsSingleUpdateIfChangedNoTrigger: RINCON_000E583B374001400_MR:Volume:27
    2013.11.21 14:23:26 0: SONOS0: Fehlerhafter Aufruf von GetReadingsToCurrentHash: RINCON_000E583B374001400_MR:0
    2013.11.21 14:23:26 0: SONOS0: Fehlerhafter Aufruf von CurrentBulkUpdate: RINCON_000E583B374001400_MR
    2013.11.21 14:24:40 0: SONOS0: ERROR in DoWork: 'loadRadio' -> UDN is undefined - [
      'WDR%202%20Ruhrgebiet'

    Auszug aus den Daten zum Device Wohnzimmer:
    numberOfTracks
    1
    2013-11-21 14:23:16
    playerType
    Sub
    2013-11-21 14:22:53
    presence
    appeared
    2013-11-21 14:22:53
    roomName
    Wohnzimmer
    2013-11-21 14:22:53
    saveRoomName
    Wohnzimmer
    2013-11-21 14:22:53
    serialNum
    00-0E-xxxxxxxxxxx
    2013-11-21 14:22:53
    softwareRevision
    4.2

    Und das ist definitiv die MAC-Adresse vom SUB und nicht vom AMP. Der wird nicht erkannt.
    ..und noch eine Frage an den Experten:
    *17:13:00 {
    set Sonos_Schlafzimmer SleepTimer 15;
    set Sonos_Schlafzimmer Play;
    }
    warum funktioniert das nicht?
    Der Radiosender ist geladen, erspielt aber nichts an und der SleepTimer wird nicht übernommen. Das Event wird korrekt ausgeführt, aber ich habe einen Syntax Fehler drin...

    Christian.
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 21 November 2013, 20:36:57
    Hi Christian,

    wenn du die Schreibweise mit den geschweiften Klammern verwendest, kannst du nur noch Perl-Code schreiben.

    Das bedeutet also:
    {
        fhem('set Sonos_Schlafzimmer SleepTimer 00:15:00');;
        fhem('set Sonos_Schlafzimmer Play')
    }

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: djhans am 21 November 2013, 20:59:41
    Hi
    ah, ok. Das heißt ich verwende dann Perl Code...
    ich habe es noch nicht so drauf...
    Danke.

    Kannst Du mit dem Connect Amp helfen? Mache ich da etwas falsch, oder ist der zusätzlich SUB in der Wohnzimmer-Konfiguration das Problem, dass die  Station nicht nutzbar ist....

    Hast Du eine Idee?
    djhans
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 21 November 2013, 22:02:28
    Hi Christian,

    ich vermute das mit dem Sub mal. Leider kann ich das nicht nachstellen, da ich keinen habe :-)

    Ich muss mir da mal was einfallen lassen... Irgendwie hätte ich eigentlich vermutet, dass sich bei der Konstellation der Amp meldet, und nicht der Sub.
    Hast du sonst die Möglichkeit mit dem Intel Device Spy dein lokales Sonos-Netz zu untersuchen? Damit könnte man vielleicht erkennen, was sich da eigentlich alles meldet, und ob mein Erkennungsprozess angepasst werden müsste...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: djhans am 21 November 2013, 22:33:18
    Hm,
    würde ich gerne machen, finde aber keinen funktionierenden Download für dieses Spy Programm
    Er will immer diesen Intel AppUp installieren und dann war es das.

    djhans
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 21 November 2013, 22:46:59
    Hi Christian,

    ich denke unter http://software.intel.com/en-us/articles/intel-tools-for-upnp-technologies sollte es noch zu haben sein...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: djhans am 21 November 2013, 23:00:34
    Hi,
    ok. habe ich geladen. Was brauchst Du? Die xml-Datei?
    Werden alle korrekt ausgelesen.

    djhans
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 21 November 2013, 23:13:43
    Hi Christian,

    ist das die Konstellation, wenn Sub und Amp verbunden sind? Sind auch andere noch verbunden?
    Kannst du mir das jeweilige Device-XML zusenden (also vier Dateien)?
    Werden in deinem Fhem auch diese vier Devices angelegt?
    Am Besten per PN...

    Viele Fragen:-)
    Danke schon mal...

    Grüße Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: FHEM-Freak am 25 November 2013, 11:04:47
    Ich möchte allen Sonos begeisterten meine Anwendung mit hohen WAF nicht vorenthalten und natürlich anregen zu eigenen Ideen.

    Mir war wichtig eine einfache Bedienung der Sonos Lautsprecher das diese von der ganzen Familie genutzt werden.  8)
    Dazu habe ich Homatic Funk-Wandtaster 2fach HM-PB-2-WM55 in Verwendung.

    Hier ein Anwendungsbeispiel.

    Schaltung:
    Kurzes Drücken oben -> Ansage der Temperatur im Glashaus (Wichtig für die Frau des Hauses)
    Kurzes Drücken unten -> Ansage der Temperatur Außen

    Langes Drücken oben -> Ansage und Start der Wiedergabe von Radio
    Langes Drücken unten -> Beenden der Radiowiedergabe

    Tastenbelegung bei Status Play
    Kurzes Drücken oben -> Lauter
    Kurzes Drücken unten -> Leiser
    IN ARBEIT Langes Drücken oben -> Wechsel von Radio zu einer Wiedergabeliste (Funktioniert soweit Playlist spielt aber danach keine Reaktion von FHEM, nur mehr Stecker ziehen möglich. Bin noch am Ursachenforschen hat aber keine Priorität)

    Großen Dank an Reiner der das durch sein Modul ermöglicht hat.

    fhem.cfg
    define Musik_EIN notify SchalterMusik:SchalterMusik_01.* {if ("%"  =~ "3-8440") {Musik_Schalter_Lang_Oben}}
    define Musik_AUS notify SchalterMusik:SchalterMusik_02.* {if ("%"  =~ "3-8440") {Musik_Schalter_Lang_Unten}}

    define Musik_LAUTER notify SchalterMusik:SchalterMusik_01.Short.* {Musik_Schalter_Kurz_Oben}
    define Musik_LEISER notify SchalterMusik:SchalterMusik_02.Short.* {Musik_Schalter_Kurz_Unten}
    99_myUtils.pm
    ######################################################
    # Sonos Lang Oben
    ######################################################
    sub
    Musik_Schalter_Lang_Oben
    {
    my $SonosStatus = ReadingsVal("Sonos_Wohnzimmer","transportState","?");

    #MUSIK STILL
     if ( $SonosStatus eq "STOPPED" ) {
        { fhem ("set Sonos_Wohnzimmer Speak 40 de Radio")};
        sleep(1);
        { fhem ("set Sonos_Wohnzimmer Volume 30")};   
        { fhem ("set Sonos_Wohnzimmer LoadRadio OE3%20Hitradio%2099.9%20(Top%2040%20Hits)")};   
        { fhem ("set Sonos_Wohnzimmer Play")};
     }
    #MUSIK LÄUFT / TEST FUNKTIONIERT NOCH NICHT
    # if ( $SonosStatus eq "PLAYING" ) {
    #  my $SonosPlay = ReadingsVal("Sonos_Wohnzimmer","currentSender","?");
      #RADIO
    #  if ( $SonosPlay eq "OE3 Hitradio" ) {
    #     { fhem ("set Sonos_Wohnzimmer Stop")};
    #     { fhem ("set Sonos_Wohnzimmer EmptyPlaylist")};
    #     sleep(1);
    #     { fhem ("set Sonos_Wohnzimmer Speak 40 de Wechsle zu Musikliste von Kurt")};
    #     sleep(1);
    #     { fhem ("set Sonos_Wohnzimmer LoadPlaylist Kurt")};
    #     sleep(1);
    #     { fhem ("set Sonos_Wohnzimmer Play")};
    #  }
    # }
    }
    # End Musik_Schalter_Lang_Oben

    ######################################################
    # Sonos Lang Unten
    ######################################################
    sub
    Musik_Schalter_Lang_Unten
     {
      { fhem ("set Sonos_Wohnzimmer Stop")};
    }
    # End Musik_Schalter_Lang_Unten

    ######################################################
    # Sonos Kurz Oben
    ######################################################
    sub
    Musik_Schalter_Kurz_Oben
     {
    my $SonosStatus = ReadingsVal("Sonos_Wohnzimmer","transportState","?");

    if ( $SonosStatus eq "STOPPED" ) {
    my $Glashaustmp = ReadingsVal("Glashaus","temperature","?");
    $Glashaustmp = "Im Glashaus hat es ". $Glashaustmp . " Grad";
    sleep(1);
    { fhem ("set Sonos_Wohnzimmer Speak 40 de $Glashaustmp")};
    }
    if ( $SonosStatus eq "PLAYING" ) {
      { fhem ("set Sonos_Wohnzimmer VolumeU")};
    }
    }
    # End Musik_Schalter_Kurz_Oben

    ######################################################
    # Sonos Kurz Unten
    ######################################################
    sub
    Musik_Schalter_Kurz_Unten
     {
    my $SonosStatus = ReadingsVal("Sonos_Wohnzimmer","transportState","?");

    if ( $SonosStatus eq "STOPPED" ) {
    my $Aussentmp = ReadingsVal("Aussen","temperature","?");
    $Aussentmp = "Aussen hat es ". $Aussentmp . " Grad";
    sleep(1);
    { fhem ("set Sonos_Wohnzimmer Speak 40 de $Aussentmp")};
    }
    if ( $SonosStatus eq "PLAYING" ) {
      { fhem ("set Sonos_Wohnzimmer VolumeD")};
    }
    }
    # End Musik_Schalter_Kurz_Unten
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 25 November 2013, 13:19:40
    Hi Fhem-Freak,

    das ist ja klasse :-)
    Schön, was man alles machen kann :-))

    In meiner jetzigen Entwicklungsversion habe ich auch schon die Sache für den eigenen/lokalen Sprachsynthesizer drin. Da hast du dann vielleicht eine kürzere Latenzzeit bei der Ansage.
    Ich bin nur noch auf der Suche nach dem Durchsage-Lautstärken-Phänomen bei Gruppen. Das entzieht sich mir noch irgendwie...

    Als kleinen Tip für das Erkennen, ob ein Radiosender oder ein normaler Titel läuft: Du kannst die beiden Readings "currentNormalAudio" und "currentStreamAudio" auslesen, die auf "1" stehen, wenn der jeweilige Zustand zutrifft. Vielleicht hilft dir das bei deinem offenen Punkt...
    Außerdem kannst du dir eigentlich die Sleep-Anweisungen sparen. Das Sonos-Modul (besser: der entfernte Server, der in seinem eigenen Prozess läuft) hat eine eigene Warteschlange für die Verarbeitung der Anweisungen. Das bedeutet für dich, dass dein Fhem erstmal sofort wieder frei ist (das kann ja wichtig werden für die Verarbeitung von anderen Nachrichten, z.B. die von Homematic).

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: FHEM-Freak am 25 November 2013, 13:40:26
    Danke Reiner,  werde deine Tipps berücksichtigen und testen.

    Gruß Kurt
    Titel: Antw:Sonos steuern
    Beitrag von: djhans am 25 November 2013, 16:10:20
    Hallo,
    ich brech´mir gerade die Finger mit den Attributen targetSpeakDir und targetSpeakURL
    Zumindest kachelt fhem bei meinen Versuchen so dermaßen ab, daß selbst ein reboot mit root-Rechten verweigert wird.

    attr targetSpeakDir:
    wo muss der Pfad hinzeigen? Auf den lokalen fhem-Server?
    dann sollte die Anweisung doch so aussehen, oder?
    attr targetSpeakDir /opt/fhem/
    attr targetSpeakUR:
    hier gebe ich das Verzeichnis an, von dem aus der Zoneplayer die mp3 spielt.
    Wie sieht das mit den Zugriffen aus? Soll heißen, wie legt fhem die mp3 Datei dort ab?  Dazu brauchen doch fhem und der Zoneplayer Zugriff auf das Verzeichniss, oder regelt das Dein Modul indem es die zu spielende Date an den Zoneplayer schickt?
    djhans
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 25 November 2013, 16:26:58
    Hi djhans,

    der Parameter "...Dir" beschreibt das Verzeichnis, unter dem der Fhem-Prozess (also das Sonos-Modul) die Datei schreiben kann/darf. Das kann eine direkte Pfadangabe wie "/tmp/Sonos/" sein, aber auch eine Angabe der Form "\\WindowsPC\Freigabe".

    Der Paramet "...URL" beschreibt die URL, die der Zoneplayer verwenden muss, um dasselbe Verzeichnis zu erreichen (zu lesen). Das ist üblicherweise in der Form "\\WindowsPC\Freigabe", da Sonos nur auf Windows/SMB-Freigaben zugreifen kann.

    Das Modul überträgt nichts an die Player (ausser der Anweisung, was abgespielt werden soll). Der Player holt sich das von dem angegebenen Ort selber, und braucht dementsprechend dort Leserechte...

    Im Wiki gibt es ein Beispiel für die lokale Enrichtung eines Samba-Servers auf dem Raspberry, sofern nicht schon einer läuft (und du einen brauchst).
    Du kannst aber auch die Adresse eines bestehenden NAS-Servers angeben, dann sind die beiden Parameter vermutlich gleich, da sowohl dein Pi als auch deine Zoneplayer die NAS über denselben UNC-Pfad erreichen können...

    Grüße Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: djhans am 25 November 2013, 17:28:07
    Hi,
    ok. Muss denn im Sonos Controller die Bibliothek gesetzt werden? Als Samba-Share habe ich das freigegeben.

    Die Anleitung verstehe ich auch so, dass man die Attribute mit attr in die fhem.cfg einträgt. Aber fhem möchte, dass die Variablen vorher definiert werden..
    Also muss ich das vorher noch irgendwie definieren? Junge, Junge, das ist alles nicht so wirklich meine Welt...
    attr targetSpeakDir /mnt/SonosSpeak/
    attr targetSpeakURL /mnt/SonosSpeak/

    djhans
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 25 November 2013, 19:21:15
    Hi djhans,

    am Besten du setzt diese Attribute über die Web-Oberfläche. Du hast im unteren Bereich einer Komponente (in diesem Fall die SONOS-Komponente) einen Bereich, wo die ganzen Attribute aufgelistet sind.
    Darüber besteht die Möglichkeit einer Eingabe.
    Dazu einfach in der Klappbox das gewünschte Attribut auswählen (z.B. "targetSpeakDir") und im Eingabefeld dahinter den gewünschten Wert eintragen (z.B. "/mnt/SonosSpeak"). Dann nur noch den Button "attr" drücken fertig.

    Damit passt du (wie immer in Fhem) erstmal nur die Konfiguration im Speicher an. Um das ganze Dauerhaft zu speichern, musst du noch den "Save"-Button betätigen, oder in das Eingabefeld "save" eingeben und <Enter> drücken.

    Bei deiner Anweisung hattest du auch nur die Komponente vergessen, für die das Attribut angelegt werden soll.
    Korrekterweise hätte es also
    attr Sonos targetSpeakDir /mnt/SonosSpeak
    lauten müssen.

    Allerdings würde wohl der URL-Parameter so nicht funktionieren, da aus Sicht deines Zoneplayers dieser Pfad so nicht erreichbar ist (zumindest nicht unter diesem Namen).
    Da muss sowas stehen wie
    \\IPADRESSE_VOM_PI\SonosSpeak

    Grüße Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: djhans am 25 November 2013, 20:43:28
    Hi,
    nun ja! Du erklärst mich wahrscheinlich für völlig bescheuert, aber die Attribute gibt es im Dropdown nicht. Sorry, wenn ich Dich zur Verzweiflung bringe, aber die sind definitiv nicht da!
    Habe dann genau das hier in die fhem.cfg geschrieben:

    attr Sonos targetSpeakDir /mnt/SonosSpeak/
    attr Sonos targetSpeakURL \\192.168.1.7\SonosSpeak\

    Wenn ich die Attribute ganz weglasse, wird zumindest im fhem Verzeichnis die mp3 erstellt. die kann ich mit einem mp3 Player auch abspielen. Im SonosSpeak-Verzeichnis kommt nix an.

    Meine smb.comf:
    [Global]
    workgroup = SCHETTNER
    netbios name = Enterprise
    security = User
    getwd cache = yes

    [Fhem]
    comment = Hausautomation
    path = /opt/fhem/     
    valid users = @users root
    read only = No
    create mask = 0777
    directory mask = 0777


    [SonosSpeak]
        comment = Audio-Files for SonosPlayer to Speak
    path = /mnt/SonosSpeak
    read only = No
    create mask = 0777
    directory mask = 0777
    guest ok

    djhans
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 25 November 2013, 21:20:34
    Hi djhans,

    nana, hier wird niemand für bescheuert erklärt :-)
    Ich stochere mal mit ein paar breitgestreuten Hinweisen und Fragen...

    Kann es sein, dass du an einem SONOSPLAYER guckst? Da müsstest du dann z.B. so Attribute wie "minVolume" und "maxVolume" haben...

    Die Speak-Einstellungen sind aber zentral, und somit am Sonos-Device abgelegt (also an dem Ding, das du selber angelegt hast, und welches dir wiederrum alle Player automatisch angelegt hat).
    Aber so wie du die dann manuell angelegt hast, sollte es funktionieren. Hast du nach dem Anpassen der fhem.cfg auch Fhem neugestartet?

    Gibt es das Verzeichnis "/mnt/SonosSpeak" auf dem Pi auch? Die Samba Freigabe prüft nicht, ob es das Verzeichnis auch gibt. Hier auch Schreibrechte beachten...

    Läuft der Samba-Daemon auch, kannst du also z.B. von einem anderen (Windows-)Rechner auf die Freigabe zugreifen. Wenn nicht, dann den Dienst mal starten, oder auch den ganzen Pi neustarten...

    Vielleicht ist ja was hilfreiches dabei.

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: djhans am 25 November 2013, 22:05:52
    Hi Reiner,
    ja, Du hast recht.  die Gruppe Sonos kennt die Befehle...

    Ich habe die Attribute noch einmal definiert.
    Samba ist korrekt eingerichtet. Ich kann auf einem Windows-Rechner ein Verzeichnis erstellen und auf dem Pi taucht es auch unter /mnt/SonosSpeak auf.
    Schreibweise habe ich noch mal geprüft. Scheint ok zu sein.
    Habe die smb.conf mal abgespeckt und nur die Section SonosSpeak dringelassen. Bringt auch nichts....

    Habe dann den Pfad auf /opt/fhem gesetzt und dafür einen Samba-Share eingerichtet und dann geht es. Die Datei wird erzeugt und abgespielt.
    Ich nehme an das fhem nicht auf /mnt/SonosSpeak schreiben darf. Man muss den fhem Benutzer offenbar das REcht dafür geben. Ich denke ich richte das "Speak"- Verzeichnis einfach unter fhem ein.

    djhans
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 25 November 2013, 23:05:42
    Hi Christian,

    schön, das es jetzt klappt. Ich würde dir nur nicht empfehlen, das Speak-Verzeichnis unterhalb von Fhem abzulegen.
    Das wird mit der Zeit etwas wachsen (besonders, wenn du die Sache mit den Timestamps aktivierst oder das Hashing), und du musst da u.U. mal ein Auge wegen der Füllmenge draufhaben.

    Du kannst auch einfach mittels
    chmod go+rw /mnt/SonosSpeak
    die Rechte für den Ordner anpassen... Das läßt Schreibrechte für alle Benutzer (auf deinem Pi) zu.

    Grüße Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: djhans am 29 November 2013, 15:05:12
    Hallo,
    ich möchte noch einmal berichten, was mir im Zusammenhang mit dem Sonos-Modul auffällt:
    Ich habe das Sonos Modul in einer separaten Datei ausgelagert und binde es in die fhem cfg mit "Include Sonos.cfg" ein.

    Der Fhem-Server läuft jetzt seit einigen Tagen ohne Neustart.  In der Sonos cfg. steht zu Anfang folgenden Zeile:
    define Sonos SONOS localhost:4711 30
    danach die Konfiguration der Geräte, die bei der ersten Einrichtung mit "save" gespeichert wurde.

    Nun kommt es vor, dass meine Kids sich abends meinen Schlafzimmer-Sonos klauen und ihre eigene Mucke abspielen. Dazu trennen Sie das Gerät vom Netz. Ich hole mir dann das Gerät später wieder zurück.

    Heute habe ich dann versucht, den Schlafzimmer_Sonos anzusteuern, aber das fhem Modul ignoriert die Befehle. Es scheint, als würde fhem den Sonos nicht mehr kennen. Über den Sonos-Controller läuft alles perfekt.

    Ein Reboot von fhem löst das Problem....was läuft da schief? Ist es das Trennen der Sonos-Komponenten vom Stromnetz?

    Christian.



     
    Titel: Antw:Sonos steuern
    Beitrag von: JR am 01 Dezember 2013, 14:50:25
    Hallo Reiner,

    seit ein paar Wochen versuche ich, mein neues Sonos-System mit Deinem Modul anzusteuern, hatte aber leider von Anfang an ein ähnliches Problem wie peter79 (Thread stürzt ab). Heute habe ich dann diese Diskussion entdeckt. Der letzte Eintrag, den ich dazu finden konnte, war dieser:

    Das bedeutet, daß dein IPMI auf eine solche Suchanfrage reagiert, und in meiner Callback-Methode landet. Im Prinzip ist es wurscht, warum genau. Das muss ich auf jeden Fall abfangen :-)

    Gibt's dazu inzwischen was Neues? Dein Modul sieht echt interessant aus, ich würde das sehr gerne verwenden, komme aber leider über die ersten 30 Sekunden nach dem Serverstart nicht hinaus...

    Gruß
      Jens
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 01 Dezember 2013, 20:11:19
    Hallo zusammen,

    ich war dieses Adventswochenende etwas eingespannt, deshalb erst jetzt kurze Statements.

    @djhans: Im Normallfall sollte das kein Problem sein. Bei mir gibt es nämlich eine ähnliche Konstellation. Dort wird bei meinem Schlafzimmer-Play5 beim Neuanstecken automatisch ein Radiosender geladen, und die Lautstärke umgestellt.
    Das funktioniert mittlerweile problemlos. Kannst du anhand der Logs (auf der Konsole, notfalls den Level hochdrehen) etwas erkennen?

    @Jens: Ich habe dafür etwas eingebaut, bin mir aber gerade nicht sicher, ob die Version schon veröffentlicht wurde.
    Zu dem Absturz nach 30 Sekunden: Kann es sein, dass er nach genau 120 Sekunden auftritt? Dann deutet das auf ein Problem mit den Ping-Berechtigungen hin. Dazu müsste dann aber etwas im Log stehen.
    Wenn es nach 30 Sekunden ist, dann deutet das auf das von dir beschriebene Phänomen hin, und die öffentliche Version enthält das eben doch noch nicht.

    Ich denke, dass ich demnächst (nach Doku-Nachziehen) die Version erstmal veröffentliche. Da fehlt halt noch der Part mit den Gruppenlautstärken, was ich so noch nicht nachvollzogen bekomme...
    Aber dann habt ihr schon mal den ganzen Rest...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: JR am 01 Dezember 2013, 21:09:05
    Hallo Reiner,

    hab' sicherheitshalber noch ein paar Tests gemacht. Die 30 Sekunden sind nicht fix; beim letzten Versuch kam der Crash schon nach 12 Sekunden. Nach genau 120 Sekunden passierte aber nie etwas, und im Log finde ich nichts zum Thema Ping-Berechtigungen.
    Nach dem geplanten Update werde ich also weiter testen. Vielen Dank schonmal!

    Gruß
      Jens
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 02 Dezember 2013, 11:13:44
    Hallo zusammen,

    so, wie versprochen, hier erstmal ein Zwischenrelease.

    wie immer mit dem Befehl
    update thirdparty http://fhem.lmsoft.de/sonos sonos
    installierbar.

    Folgende Features/Fehlerbereinigungen sind enthalten (aus dem Changelog):
    Wie man die einzelnen Features verwendet/einrichtet, steht im Wiki und der lokalen Dokumentation...

    Wie immer: Bitte testen (auch die Doku), damit ich auch reagieren kann :-)

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: djhans am 02 Dezember 2013, 14:33:11
    Hallo Reinerlein,
    ich bin begeistert! Habe das Update geladen und bislang funzt es gut.

    Eine Frage zu dem RampToVolume Typ 1:
    Wenn ich beispielsweise die Mucke langsam ausschalten möchte, dann mache ich das mit dem Kommando:
    set Sonos_Schlafzimmer Volume 0 1Das bedeutet aber, dass der Player auf "Play" bleibt.
    Wenn ich direkt hinter das Kommando ein
    set Sonos_Schlafzimmer Stop absetzte, dann bricht er das langsame herunterfahren der Musik ab und schaltet direkt auf Stop.
    Kann man das irgendwie beeinflussen?

    djhans.
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 02 Dezember 2013, 15:32:05
    Hi djhans,

    also, ich habe bei mir z.B. ein Eventhandler auf Volume 0 festgelegt, der nach einem Timer von 2 Sekunden den Player anhält. Wenn die Lautstärke vor Ablauf wieder hochgesetzt wird, bleibt der Player in Betrieb, indem der Timer wieder gelöscht wird.
    Vielleicht wäre das auch eine Option bei dir?

    Das Problem mit deinem nachgesetzten Stop ist, dass das sofort in der internen Warteschlange abgearbeitet wird, und somit vor dem Ende der Rampe ausgeführt wird. Es wartet ja nix auf die Ausführung beim Player (damit Fhem auf keinen Fall ausgebremst wird).

    Ansonsten kann ich mir mal anschauen, ob ich irgendeine Mitteilung vom Player bekomme, wenn die Rampe fertig ist, und vielleicht ein Event erzeugen.

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: djhans am 02 Dezember 2013, 17:38:24
    Hi Reiner,
    danke!  Ich denke man muss dann mit dem notify und dem info Summarize3 arbeiten. Ich verstehe allerdings die Syntax von infoSummarize noch nicht ganz. Wie kann ich dann auf die einzelnen Elemente wie "Lautstärke" von Summarize zugreifen? Gibt es irgendwo ein Beispiel? Sorry, aber ich lerne am Besten durch Beispiele, die ich ausprobieren kann...wäre also klasse, wenn es dazu etwas gäbe...

    Im wiki habe ich mir das Bsp. zum Loggen der Titel angesehen, hat aber noch nicht "klick" gemacht, da hier alle Infos ausgelesen werden. Die Syntax ".{2,}" versteh´ich hier noch nicht...

    Herzlichen Dank für die Geduld,
    Christian.
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 02 Dezember 2013, 21:21:55
    Hi Christian,

    InfoSummarize ist eher ein Hilfsmittel, um Anzeigen innerhalb Fhem zu ermöglichen. Darauf sollte man keine Events legen (obwohl es natürlich geht :-)

    In diesem Fall meinte ich ein Event auf Volume, also z.B.:
    define Sonos_Wohnzimmer_Notify_VolumeZero notify Sonos_Wohnzimmer:.0 set Sonos_Wohnzimmer Stop
    In diesem Beispiel wird direkt auf Volume 0 reagiert (in diesem Fall ohne Verzögerung).
    Der Punkt vor der 0 kommt daher, da dies ein regulärer Ausdruck ist, der kein Leerzeichen haben darf.

    Daher kommt auch der Konstrukt
    .{2,}
    der bedeutet nichts anderes als "mindestens 2 beliebige Zeichen".

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: JR am 02 Dezember 2013, 22:11:29
    Hallo Reiner,

    erstmal vielen Dank für die neue Version!
    Hat in meinem Fall leider nicht geholfen, der Thread stürzt immer noch kurz nach dem fhem-Start ab. Sieht jetzt aber anders aus als vorher, nur der eigentliche Crash ist derselbe. Konsolen-Ausgabe:
    Current: "fhem.pl", gPath: "./FHEM"
    Use of uninitialized value $volumeLeft in negation (-) at 00_SONOS.pm line 2690, <$client> line 2.
    Use of uninitialized value $volumeRight in addition (+) at 00_SONOS.pm line 2690, <$client> line 2.
    Use of uninitialized value $currentVolume in concatenation (.) or string at 00_SONOS.pm line 2693, <$client> line 2.
    Use of uninitialized value $value in concatenation (.) or string at 00_SONOS.pm line 4510, <$client> line 2.
    Use of uninitialized value $value in concatenation (.) or string at 00_SONOS.pm line 4510, <$client> line 2.
    Thread 1 terminated abnormally: Can't use string ("
        ") as an ARRAY ref while "strict refs" in use at lib/UPnP/Common.pm line 190, <$client> line 2.

    Eine Log-Datei schicke ich per PM. Vielleicht hast Du noch eine Idee?

    Gruß
      Jens
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 03 Dezember 2013, 00:26:51
    Hi Jens,

    kannst du mir mal eine Auflistung deiner Komponenten angeben, und vielleicht kannst du auch ermitteln bei welcher konkreten Sonos-Komponente das Problem auftritt.
    Die von dir geschriebene Fehlermeldung deutet darauf hin, dass ein angefragter Player keine Lautstärkeinformationen zurückliefert. Das sollte eigentlich nicht so sein.
    Das könnte aber auch ein Indiz für eine Sonos-fremde Komponente sein, die ich da einfach mal wieder verwende. Das kann man so aber gar nicht beurteilen...

    Das Log (möglichst auf Level 5) kann hier vielleicht weiteres zu Tage förden. Leider kann man hier keine Dateien an eine PM hängen. Deshalb sende es mir doch einfach an meine E-Mail Adresse zu...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: JR am 03 Dezember 2013, 18:23:49
    Hi Reiner,

    das mit der betroffenen Sonos-Komponente ist einfach: Es gibt (noch) nur einen Play1, via Bridge mit dem Hausnetz verbunden. Die Controller auf den Macs bzw. auf einem iPhone zeigen mir die korrekte Lautstärke des Play1 an, das funktioniert also im Prinzip.

    Die Frage ist also in der Tat, ob nicht eine Sonos-fremde Komponente dazwischenfunkt. In Frage kämen ggf. einige Geräte mit UPnP (Fernseher, Drucker, ein Raspberry PI mit OpenElec und ein MythTV-Server sind eigentlich immer an, manchmal eine PS3 (gestern aber nicht)).

    War das Log (Level 5) angekommen? Ich hatte es einfach in die PM kopiert.

    Gruß
      Jens
    Titel: Antw:Sonos steuern
    Beitrag von: djhans am 03 Dezember 2013, 18:30:31
    Hallo Reiner,
    danke für das Beispiel. Aber es funktioniert nicht. Der Player bleibt an.
    define Sonos_Schlafzimmer_Notify_VolumeZero notify Sonos_Schlafzimmer:.0 set Sonos_Schlafzimmer StopWas ich nicht verstehe ist, wie weiß das System, dass .0 für Volume=0 steht. 0 ist der Wert und das ist klar, aber wieso steht die .0 nicht beispielsweise für "SleepTimer" beendet.
    Was übersehe ich, SleepTimer abgelaufen ist doch auch ein Event.

    Ich habe da noch ein grundlegendes Verständnißproblem....

    djhans.
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 03 Dezember 2013, 19:54:12
    Hallo zusammen,

    @Christian: Ich glaube, du hast kein Verständnisproblem, sondern ich war paddelig bei dem Beispiel :-) Das ist, wenn man das aus dem Kopf niederschreibt, und nicht testet...
    Natürlich hast du recht: Da muss noch das Feld selbst dazwischen:
    define Sonos_Schlafzimmer_Notify_VolumeZero notify Sonos_Schlafzimmer:Volume.*0 set Sonos_Schlafzimmer Stop
    Zur Sicherheit habe ich aus dem einen Punkt eine beliebige Anzahl Punkte gemacht (bzw. natürlich beliebige Zeichen, ist ja ein regulärer Ausdruck), da ich nicht mehr genau weiss, ob bei einer Zahl nicht noch ein Platzhalter für das Vorzeichen vorkommt, auch wenn es nicht da ist. Sonst mal testen...

    @Jens: Bei mir ist noch keine Nachricht angekommen. Hast du die hier über das Forum versendet?
    Und ja, das mit dem Text sollte eigentlich funktionieren...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: djhans am 04 Dezember 2013, 19:52:11
    Hallo Reiner,
    nochmals herzlichen Dank!

    Im Moment kann ich leider nicht weitertesten, da ich beruflich unterwegs bin....melde mich spätestens nächste Woche...dann wird mein Sonos-System auch um einen Play 1 reicher sein.....
    Gruß,
    Christian.
    Titel: Antw:Sonos steuern
    Beitrag von: djhans am 05 Dezember 2013, 18:23:41
    Hallo,
    da bin ich wieder.....
    Kleiner Zwischenbericht!

    Habe heute meinen Play 1 bekommen. Ins Sonos Netz eingebunden und spielt fabelhaft. Das so viel aus so einer kleinen Kiste kommt, hätte ich nicht gedacht....

    Fhem hat die Kiste nicht automatisch erkannt. Hing mehrere Stunden im Netz, aber fhem ist bei der alten Konfiguration geblieben. Dann habe ich die Geräte auch noch umbenannt.

    Play 1 ist nun Bad
    der alte Play 3 aus dem Bad, ist nun Büro.
    Das hat das Modul auch nicht gemerkt!

    Habe dann die Sonos Komponenten in der Sonos.cfg gelöscht und nur die eine Zeile
    define Sonos SONOS localhost:4711 30dringelassen..
    Nach einem Neustart wurden alle Geräte erkannt...
    Ist das Verhalten normal?
    Gruß,
    Christian
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 05 Dezember 2013, 22:03:49
    Hi Christian,

    das Modul hat ein Problem damit, wenn ein Player im laufenden Betrieb eingerichtet und umbenannt wird.
    Da die Geräte dann schon fertig eingerichtet sind, passen die Namen halt nicht mehr mit der Realität zusammen (was ja auch gar nicht anders lösbar ist, da ich ja nicht einfach Fhem-Komponenten umbenennen kann)...
    Das wird das Problem mit der fehlenden Erkennung am Anfang gewesen sein...

    Am Besten ist es, wenn die Einrichtung in Abwesenheit von Fhem erfolgt, bzw. so bereinigt wird, wie du das getan hast. Player die umbenannt werden (mit dem Sonos-Controller) sollte man in Fhem entfernen, oder sauber mit umbenennen...
    Hängt man fertig eingerichtete Player wieder ins Netz (was ja bei einem Anschalten eines Player passiert), sollte das eigentlich gut funktionieren...

    Leider kann man hier nicht viel machen. Das ganze ist im Rahmen einer Hausautomatisierung ja auch eher unüblich :-)
    Da hat man sowas wie einen Einrichtungszeitpunkt, und einen Normalbetrieb...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: chregu am 08 Dezember 2013, 13:17:54
    Bin grad nicht sicher, ob das der richtige Ort ist, oder ob ich einen neuen Thread eröffnen soll. Ich versuch's mal hier

    Ich hab FHEM installiert, das SONOS modul funktioniert prinzipiell auch. Ich habe 4 Sonos Player, einen Play:1, zwei als Stereo gepaarte Play:5 und einen Connect. Das Modul erkennt den Play:1 (beinahe) korrekt, die Play:5 auch nach einiger Zeit, aber es zeigt keine Metainformationen an und den Connect gar nicht (bis jetzt).

    Bei der Play:5 Erkennung hatte ich folgendes

    2013.12.08 12:07:48 4: SONOS1: RoomName: 'Living Room', SaveRoomName: 'Living_Room', ModelNumber: 'S5', DisplayVersion: '4.2', SerialNum: '00-0E-58-5B-03-CC:C', IconURI: '/img/icon-S5.png', IconOrigPath: 'http://192.168.1.35:1400/img/icon-S5.png', IconPath: 'icoSONOSPLAYER_icon-S5.png'
    2013.12.08 12:07:48 2: SONOS1: Discover Sonosplayer 'Living Room' (S5) Software Revision 4.2 with ID 'RINCON_000E585B03CC01400_MR'
    2013.12.08 12:07:48 4: SONOS1: SubDevice found: uuid:RINCON_000E585B03CC01400_MS
    2013.12.08 12:07:49 4: SONOS1: SubDevice found: uuid:RINCON_000E585B03CC01400_MR
    2013.12.08 12:07:49 4: SONOS1: ControlProxies wurden gesichert
    2013.12.08 12:07:49 4: SONOS1: Retrieve Current Volumelevels. Master: "12", Balance: "0"
    2013.12.08 12:07:49 1: SONOS1: Successfully autocreated SonosPlayer 'Living_Room' (S5) Software Revision 4.2 with ID 'RINCON_000E585B03CC01400_MR'
    2013.12.08 12:07:49 2: SONOS1: SonosPlayer 'Living_Room' is now updated
    2013.12.08 12:07:49 2: SONOS1: Service-subscribing successful with SID="uuid:RINCON_000E585B03CC01400_sub0000000057" and Timeout="86400s"
    2013.12.08 12:07:49 2: SONOS1: Rendering-Service-subscribing successful with SID="uuid:RINCON_000E585B03CC01400_sub0000000058" and Timeout="86400s"
    2013.12.08 12:07:49 2: SONOS1: Alarm-Service-subscribing successful with SID="uuid:RINCON_000E585B03CC01400_sub0000000059" and Timeout="86400s"
    2013.12.08 12:07:49 2: SONOS1: ZoneGroupTopology-Service-subscribing successful with SID="uuid:RINCON_000E585B03CC01400_sub0000000060" and Timeout="86400s"
    2013.12.08 12:07:49 3: SONOS1: Discover: End of discover-event for "Living Room".
    2013.12.08 12:07:49 3: SONOS1: Event: Received Transport-Event for Zone "Sonos_Living_Room".
    2013.12.08 12:07:49 4: SONOS1: Transport-Event: All correct with this service-call till now. UDN='uuid:RINCON_000E585B03CC01400_MR'
    2013.12.08 12:07:49 4: SONOS1: Transport-Event: GroundURL: http://192.168.1.35:1400
    2013.12.08 12:07:49 4: SONOS1: Transport-Event: LastChange: <Event xmlns="urn:schemas-upnp-org:metadata-1-0/AVT/" xmlns:r="urn:schemas-rinconnetworks-com:metadata-1-0/"><InstanceID val="0"><TransportState val="PLAYING"/><CurrentPlayMode val="NORMAL"/><CurrentCrossfadeMode val="0"/><NumberOfTracks val="1"/><CurrentTrack val="1"/><CurrentSection val="0"/><CurrentTrackURI val="x-rincon:RINCON_000E582B613C01400"/><CurrentTrackDuration val=""/><CurrentTrackMetaData val=""/><r:NextTrackURI val=""/><r:NextTrackMetaData val=""/><r:EnqueuedTransportURI val=""/><r:EnqueuedTransportURIMetaData val=""/><PlaybackStorageMedium val="NETWORK"/><AVTransportURI val="x-rincon:RINCON_000E582B613C01400"/><AVTransportURIMetaData val=""/><NextAVTransportURI val=""/><NextAVTransportURIMetaData val=""/><CurrentTransportActions val="Play, Stop"/><TransportStatus val="OK"/><r:SleepTimerGeneration val="0"/><r:AlarmRunning val="0"/><r:SnoozeRunning val="0"/><r:RestartPending val="0"/><TransportPlaySpeed val="NOT_IMPLEMENTED"/><CurrentMediaDuration val="NOT_IMPLEMENTED"/><RecordStorageMedium val="NOT_IMPLEMENTED"/><PossiblePlaybackStorageMedia val="NONE, NETWORK"/><PossibleRecordStorageMedia val="NOT_IMPLEMENTED"/><RecordMediumWriteStatus val="NOT_IMPLEMENTED"/><CurrentRecordQualityMode val="NOT_IMPLEMENTED"/><PossibleRecordQualityModes val="NOT_IMPLEMENTED"/></InstanceID></Event>
    2013.12.08 12:07:50 4: SONOS1: Transport-Event: CurrentTrackMetaData:
    2013.12.08 12:07:50 4: SONOS1: Transport-Event: Normal erkannt!
    Thread 1 terminated abnormally: Invalid value for shared scalar at FHEM/00_SONOS.pm line 4495, <$client> line 2.
    ^@^@Use of uninitialized value $udn in concatenation (.) or string at ./FHEM/00_SONOS.pm line 997.

    Dann bei der Steuerung:
    Beim Play:1 gehen die Volume-Controls, aber nicht Play/Pause, ich krieg da ein

    ^@Use of uninitialized value $udn in concatenation (.) or string at ./FHEM/00_SONOS.pm line 997.
    2013.12.08 12:14:23 3: SONOS0: Received: 'DoWork::pause:'

    Bei der Play:5 dieselben Meldungen, aber die reagieren auch nicht auf die Volume-Controls.

    Eine Idee, an was das liegen könnte?

    Das ganze läuft übrigens auf einem Laptop mit Ubuntu 13.04

    Lieber Gruss

    Christian
    Titel: Antw:Sonos steuern
    Beitrag von: chregu am 08 Dezember 2013, 13:44:15
    Update: nach einem Neustart der FHEM hat er nun den CONNECT auch erkannt, aber mit dem selben Error wie die Play:5, also nicht steuerbar und Events krieg ich auch keine in FHEM
    Titel: Antw:Sonos steuern
    Beitrag von: chregu am 08 Dezember 2013, 16:27:38
    Und nochmal ein Update, nachdem ich alles nochmals instalierte und auf Ubuntu 13.10 updated habe, geht's nun. Vielen dank für das Modul

    Christian
    Titel: Antw:Sonos steuern
    Beitrag von: djhans am 09 Dezember 2013, 08:26:42
    Hallo Reiner,
    Besten Dank. Dann ist ja alles in Butter! wollte halt nur meine Erfahrungen mit diesem Verhalten teilen...
    Gruß,
    Christian.
    Titel: Antw:Sonos steuern
    Beitrag von: kwbo am 10 Dezember 2013, 11:28:27
    hallo zusammen,
    ich bin nicht sicher, ob ich das jetzt richtig mache, aber da sich alle Sonos relevanten Fragen in diesem Thread zu sammeln scheinen, versuche ich mal, mich da reinzumogeln. Meine Frage wurde zwar schon vom Anfängerforum nach Multimedia verschoben, scheint aber dort keine weitere Beachtung gefunden zu haben.
    Ich versuche auf einem RPi, auf dem FHEM problemlos läuft die Sonos Einbindung hinzubekommen. Ich meine, nach Reinerlein's Beschreibung der Installation alles richtig gemacht zu haben. Trotzdem hängt sich FHEM komplett weg, sobald ich versuche das Sonos device zu definieren. Mangels echter Unix-Kenntnisse weiss ich nicht recht, wie ich prüfen kann, woran es tatsächlich hakt. Ich verwende einen RPi mit COC und dem busware Image. Die Sonos und UPnP Dateien liegen daher unter /opt/fhem/FHEM/. Wie in dem Case "Frage zu Sonos Definitionsparameter" http://forum.fhem.de/index.php/topic,17261.0.html (http://forum.fhem.de/index.php/topic,17261.0.html) beschrieben, hängt nach Eingabe der Definitionszeile FHEM und ich habe keinen Zugriff mehr über das Webinterface. Der RPi läuft aber noch, denn ich kann eine Verbindung über PuTTY herstellen. Es wäre sehr schön, wenn mir hier jemand auf die Sprünge helfen könnte.
    Danke und Gruß, Werner
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 10 Dezember 2013, 12:31:51
    Hallo zusammen,

    @Werner: Ich gehe auf deine Frage in dem von dir dazu eröffneten Thread ein. Ich habe jetzt auch das ganze Multimedia-Subforum abonniert, damit mir das nicht mehr durch die Lappen geht :-)

    @Alle: Ich verliere gerade ein bißchen den Überblick, welche Bug-Themen noch hochaktuell sind. Ich habe auf dem Schirm die Sache von Christian, mit den Thread-Abstürzen. Dazu habe ich an den gefundenen Stellen eine Abfrage eingebaut, bin mir aber nicht sicher, ob das das eigentliche Problem löst. Es könnte also sein, dass noch weitere Folgefehler auftreten.
    Um nicht den "normalen" Installationsstand zu beeinflussen, habe ich das mal im Dev-Bereich bereitgestellt. Diese Test-Version kann also mit update thirdparty http://fhem.lmsoft.de/sonos_dev sonos installiert werden.

    Grüße
    Reinerlein
    Titel: Antw:Sonos steuern
    Beitrag von: JR am 10 Dezember 2013, 22:49:52
    Hallo Reiner,

    meine Crashes sind auch noch aktuell (vermutlich wegen fehlgeschlagener Lautstärke-Abfrage des Play:1). Habe mal testweise die Developer-Version installiert - bekomme zwar immer noch Crashes, aber dafür keine interessanten Debug-Infos mehr. Versuche es morgen weiter.

    Gruß
      Jens
    Titel: Antw:Sonos steuern
    Beitrag von: chregu am 11 Dezember 2013, 19:41:40
    Rainer, danke viel mal fürs Update, meine Sonos Integration hat in letzter Zeit eigentlich wieder besser funktioniert, hab's aber auch nicht allzu sehr tesetn können, da selten zu Hause. Hab jetzt mal die dev-Version installiert, um zu schauen, was passiert
    Titel: Antw:Sonos steuern
    Beitrag von: det. am 11 Dezember 2013, 21:31:23
    Hallo Reiner,
    Danke für das Update in der Dev. Version. Ich hatte seit der Installation auf meinem Cubieboard2 keinerlei FHEM Abstürze wegen Deinem Modul, allerdings hat SONOS nach Stromabschalten über Funksteckdose nicht gemerkt, dass die Audiohardware nicht mehr PRESENT ist (mit den unterschiedlichen sync Varianten gespielt - kein Erfolg). Das scheint jetzt zu gehen - ich werde das weiter beobachten und berichten.
    Titel: Antw:Sonos steuern
    Beitrag von: PumpkinEater am 12 Dezember 2013, 06:45:33
    Hallo Reiner,
    ich sehe im Logfile diverse Fehlermeldungen:
    Zitat
    2013.12.12 06:26:11 0: SONOS0: Fehlerhafter Aufruf von ReadingsSingleUpdateIfChangedNoTrigger: RINCON_000E5xxxxx2801400_MR:Balance:35
    2013.12.12 06:26:11 0: SONOS0: Fehlerhafter Aufruf von ReadingsSingleUpdateIfChangedNoTrigger: RINCON_000E5xxxxx2801400_MR:Volume:2
    2013.12.12 06:26:11 0: SONOS0: Fehlerhafter Aufruf von GetReadingsToCurrentHash: RINCON_000E5xxxxx2801400_MR:0
    2013.12.12 06:26:11 0: SONOS0: Fehlerhafter Aufruf von CurrentBulkUpdate: RINCON_000E5xxxxx2801400_MR
    2013.12.12 06:26:16 0: SONOS0: Fehlerhafter Aufruf von ReadingsSingleUpdateIfChangedNoTrigger: RINCON_000E5xxxxx2801400_MR:Balance:35
    2013.12.12 06:26:16 0: SONOS0: Fehlerhafter Aufruf von ReadingsSingleUpdateIfChangedNoTrigger: RINCON_000E5xxxxx2801400_MR:Volume:0
    2013.12.12 06:26:16 0: SONOS0: Fehlerhafter Aufruf von GetReadingsToCurrentHash: RINCON_000E5xxxxx2801400_MR:0
    2013.12.12 06:26:16 0: SONOS0: Fehlerhafter Aufruf von CurrentBulkUpdate: RINCON_000E5xxxxx2801400_MR

    Dieser Fehler tritt scheinbar bei unterschiedlichen Aktionen auf, z.B. bei Durchsagen, aber auch schon dann, wenn ich im Sonos-PC-Client einfach die Lautstärke ändere.
    Ich habe testweise mal Deine dev-Version installiert -> gleiches Verhalten.

    Gruß
    Peter
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 12 Dezember 2013, 09:04:18
    Hi Peter,

    diese Meldung mit dem fehlerhaften Aufruf kommt immer dann, wenn er die dort angezeigte UDN des Players nicht einem Fhem-SonosPlayer-Device zuordnen konnte (sprich: das Device nicht gefunden hat). Das deutet auf ein fehlendes Player-Device hin, bzw. auf einen Fehler in der Konfiguration eines Players.

    Man darf z.B. auf keinen Fall einen Player, der automatisch erkannt und angelegt wurde, aus Fhem löschen. Wenn man den Player nicht sehen/steuern möchte, dann muss man das Attribut 'disable' setzen...

    Kontrollier doch bitte mal die entsprechenden Konfigurationen, und schreib mal...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: PumpkinEater am 12 Dezember 2013, 14:52:55
    Hallo Reiner,
    ich habe mir jetzt noch mal ein ein frisches fhem.cfg erstellt, in dem eigentlich nur die autocreate-Zeilen und  die Zeile "define Sonos SONOS localhost:4711 30" enthalten ist. Vor dem Start von FHEM habe ich dann im Logverzechnis die Datei fhem.save und alle logs gelöscht. Soweit ich verstehe, sollte fhem nun alle Sonos-Geräte neu entdecken und in der fhem.cfg anlegen. (Oder gibt es noch eine andere Datei, in der Fhem früher mal erkannte Geräte abspeichert?)

    In der fhem.cfg wird durch autocreate u.a. dann eingetragen:
    define Sonos_Wohnzimmer SONOSPLAYER RINCON_000E5xxxxx2801400_MR
    ...
    define Sonos_BRIDGE SONOSPLAYER RINCON_000E5xxxxx1601400_MR
    ...

    Direkt nach Start von FHEM tauchen im Logfile dann bereits die Zeilen:
    Zitat
    2013.12.12 14:19:02 1: SONOS0: Kein UPnP-Server gefunden... Starte selber einen und warte 8 sekunden darauf...
    2013.12.12 14:19:10 3: Opening Sonos device localhost:4711
    2013.12.12 14:19:10 3: Sonos device opened
    2013.12.12 14:19:10 0: Server started with 8 defined entities (version $Id: fhem.pl 3872 2013-09-07 11:58:33Z rudolfkoenig $, os linux, user root, pid 27193)
    2013.12.12 14:19:22 0: SONOS0: Fehlerhafter Aufruf von ReadingsBeginUpdate: RINCON_000E5xxxxxx2801400_MR
    2013.12.12 14:19:22 0: SONOS0: Fehlerhafter Aufruf von ReadingsBulkUpdateIfChanged: RINCON_000E5xxxxxx2801400_MR:presence:appeared
    2013.12.12 14:19:22 0: SONOS0: Fehlerhafter Aufruf von ReadingsBulkUpdateIfChanged: RINCON_000E5xxxxxx801400_MR:Volume:0
    2013.12.12 14:19:22 0: SONOS0: Fehlerhafter Aufruf von ReadingsBulkUpdateIfChanged: RINCON_000E5xxxxx2801400_MR:Balance:35
    auf.

    Wenn ich dann mit "/usr/local/fhem/fhem.pl localhost:7072 'set Sonos_Wohnzimmer Volume 0'"
    die Lautstärke setze, sehe ich im Log keine weiteren Fehlermeldungen.

    Meine SONOS-Umgebung: Bridge und 2 Play3 (als Stereopaar)

    Gruß
    Peter
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 12 Dezember 2013, 15:54:37
    Hi Peter,

    ok, dann muss ich mir das mit dem Stereopaar mal anschauen. Da scheint es ein Problem zu geben.
    Er versucht anscheinend den nicht in Fhem gemeldeten Player anzusprechen. Könntest du mir dazu den vollständigen Log vom Start von Fhem über das Erkennen der Player bis zu diesem Ende zukommen lassen?
    Da könnte ich vielleicht schon was erkennen. Ich vermute nämlich, dass es wie beim Sub eine Namensgleichheit der Komponenten gibt, und Fhem in deinem Fall den falschen ablegt.

    Ich werde das bei Gelegenheit mal selber probieren...
    Ich muss da aber mal einen Zeitpunkt abwarten, wo ich meinem Sohn seinen Play5 entwenden kann :-)

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: PumpkinEater am 12 Dezember 2013, 19:28:18
    Hallo Reiner,
    ich habe Dir eine PM dazu geschickt.

    Gruß
    Peter
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 12 Dezember 2013, 21:01:59
    Hi Peter,

    danke, ist angekommen.
    Dort sieht es so aus, wie ich befürchtet habe. Das Stereopaar verursacht zwei Einrichtungs-Events (mit zwei verschiedenen UDNs), hat aber denselben Zonennamen. Das verursacht beim Anlegen unter Fhem den gleichen Fehler wie der Sub (der den Namen des zugehörigen Players erhält).

    Kannst du mir noch die Konsolenausgabe des SubProzesses auf Level 5 zukommen lassen?
    Dann kann ich daran schon mal festlegen, was ich tun muss, um das Problem zu umgehen...

    Danke schon mal.

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: peter79 am 12 Dezember 2013, 22:07:49
    Hallo Reiner,

    auch noch einmal ein kleines Update von mir - habe soeben mal die neueste Version eingespielt.
    --> Leider stürtzt der Thread immer noch nach Aktivierung des Ports an dem das IPMI hängt innerhalb von ein paar Sekunden ab. Die eingebaute Routine scheint demnach noch nicht so richtig zu ziehen...

    Mach Dir keinen Stress bei der Korrektur - ich weiß mir ja zu helfen... ansonsten läuft bei mir mit dem Modul alles prima :)

    Viele Grüße
    Peter
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 12 Dezember 2013, 22:12:48
    Hi Peter (der andere :-),

    besteht denn die Möglichkeit, dass auch du mir die Konsolenausgabe des Subprozesses (der von meinem Modul gestartet wird) zusendest?
    möglichst auf Level 5, da ich dann sehe, welche Daten von deinem Gerät gesendet werden. Daran kann ich vielleicht ein schönes Unterscheidungsmerkmal festlegen:-)

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: djhans am 13 Dezember 2013, 18:30:30
    Hallo Reiner,
    habe Probleme mit dem Play1. wer wird zwar von fhem erkannt, lässt sich aber nicht richtig ansteuern. habe die Konfiguration schon neu erkennen lassen, Aber er reagiert nicht. die Zustände zeigt er an, wenn ich das Gerät über den Controller steuer, aber aus fhem tut sich nichts.

    Irgendeine Idee?
    Christian
    Titel: Antw:Sonos steuern
    Beitrag von: peter79 am 14 Dezember 2013, 01:01:24
    Hallo Reiner,

    leider kommt es bei mir zu gar keinem Event im Log, wenn der Prozess aussteigt  :(
    Das einzige, was ich sehe ist folgendes im Log (der Abbruch ist zw. 00:48 und 00:50):

    root@ubufhem:/opt/fhem# perl FHEM/00_SONOS.pm 4711 5 > console.log
    Thread 1 terminated abnormally: Can't use string ("
        ") as an ARRAY ref while "strict refs" in use at FHEM/lib/UPnP/Common.pm line 219, <$client> line 2.


    Das Log sieht zu dieser Zeit folgend aus:

    2013.12.14 00:48:11 4: SONOS1: Rendering-Event: LastChange: <Event xmlns="urn:schemas-upnp-org:metadata-1-0/RCS/"><InstanceID val="0"><Volu  me channel="Master" val="0"/><Volume channel="LF" val="100"/><Volume channel="RF" val="100"/><Mute channel="Master" val="0"/><Mute channel=  "LF" val="0"/><Mute channel="RF" val="0"/><Bass val="2"/><Treble val="0"/><Loudness channel="Master" val="1"/><OutputFixed val="0"/><Headph  oneConnected val="0"/><SpeakerSize val="4"/><SubGain val="0"/><SubCrossover val="0"/><SubPolarity val="0"/><SubEnabled val="1"/><PresetName  List val="FactoryDefaults"/></InstanceID></Event>
    2013.12.14 00:48:12 4: SONOS1: Rendering-Event: Current Values for 'Sonos_Kueche' ~ Volume: 0, HeadphoneConnected: 0, Bass: 2, Treble: 0, B  alance: 0, Loudness: 1, Mute: 0
    2013.12.14 00:48:12 4: SONOS1: Rendering-Event: Current Borders for 'Sonos_Kueche' ~ minVolume: 0, maxVolume: 100
    2013.12.14 00:48:13 3: SONOS1: Event: End of Rendering-Event for Zone "Sonos_Kueche".
    2013.12.14 00:50:09 4: SONOS2: IsAlive-Event UDN=RINCON_000E58C15EA001400_MR
    2013.12.14 00:50:09 5: SONOS2: Location: http://192.168.1.124:1400/xml/device_description.xml
    2013.12.14 00:50:09 5: SONOS2: PingType: icmp
    2013.12.14 00:50:09 4: SONOS2: 192.168.1.124 is alive


    Kann auch sein, dass ich bei der Erstellung des Logs etwas falsch mache - muss ich ggf. noch etwas beachten, um den Subprozess gesondert zu herausschreiben zu lassen - im Moment leite ich die Ausgabe wie folgt um: "perl FHEM/00_SONOS.pm 4711 5 > sonos.log".

    Viele Grüße
    Peter
    Titel: Antw:Sonos steuern
    Beitrag von: eppi am 14 Dezember 2013, 06:24:34
    hallo djhans
    Das selbe Problem hatte ich auch im dem Play:1, jedoch mit der aktuellen Developer Version ist das Problem bei mir verschwunden.
    update thirdparty http://fhem.lmsoft.de/sonos_dev sonos
    Viel Erfolg, Gruss Dani
    Titel: Antw:Sonos steuern
    Beitrag von: djhans am 16 Dezember 2013, 15:45:37
    Hallo,
    nee, der Play 1 spielt nicht! Kann ich machen, was ich will

    Nachtrag:
    verstehe die Welt nicht mehr:

    set Sonos_Schlafzimmer Play strartet den Play 3 im Schlafzimmer
    set Sonos_Bad Play startet den Sonos Play 3 im Schlafzimmer

    was läuft da schief?
    Habe die fhem.save und alle logs gelöscht und den Sonos neu erkennen lassen. Irgendwie kommt er mit den namen durcheinander...
    Christian.
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 16 Dezember 2013, 16:06:40
    Hi Christian,

    hmmm.. das ist wirklich komisch. Waren die mal gepaart, sodass davon noch eine Restinfo rumliegen könnte?
    Bzw. hast du irgendwas mit paarungen gemacht, nachdem sie erkannt wurden?
    Solche Reste bleiben z.B. auch, wenn die mal eine Gruppe gebildet hatten, und du einen Player (den Master) vom Stom trennst. Dann kann man den verbleibenden momentan nicht mehr steuern, da Sonos das nicht mitbekommt/meldet...

    Das von dir kann ich aber gerade echt nicht nachvollziehen. Ich werden als nächstes ja die Paar-Unterstützung angehen. Da muss ich ja sowieso noch ran... Vielleicht erledigt sich dabei auch dein Problem.
    Was ich komisch finde, ist, das der Play:1 bei manchen läuft, und bei manchen einfach nicht... Obwohl der Player ja auch erstmal nix besonderes ist...

    Tut mir leid, dass ich nicht auf Anhieb eine Lösung parat habe...

    Grüße Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: djhans am 16 Dezember 2013, 16:23:38
    Hi Reiner,
    nee, Play 1 und Play 3 kann man nicht als Stereopaar bilden. Ich fasse diese allerdings von Zeit zu Zeit in Gruppen zusammen.
    Folgende Aktionen habe ich durchgeführt:
    er spielt immer das Schlafzimmer ab, egal ob ich set Sonos_Bad Play oder set Sonos_Schlafzimmer Play eingebe.
    Ich glaube, ich muss den ganzen raspberry mal platt machen. Keine Ahnung, was da schief läuft. Der Play 1 hieß auch immer Bad und Schlafzimmer hieß auch immer Schlafzimmer. Lediglich Buero wurde von Bad in Buero umbenannt.

    Habe ab morgen Urlaub. Dann werde ich das mal neu aufsetzten. Wenn ich etwas testen soll, oder Du irgendwelche Daten benötigst, sag Bescheid.

    Christian.
    Titel: Antw:Sonos steuern
    Beitrag von: djhans am 16 Dezember 2013, 18:12:50
    Hallo Reiner,
    keine Ahnung, ob das etwas zu sagen hat, aber:
    ZoneGroupID und ZonePlayerUUIDsInGroup stimmen bei allen Playern überein.
    nur beim Play 1 (Bad) ist die ZoneGroupID gleich der ZoneGroupID vom Play 3 (Schlafzimmer)
    Das Bad hat danach den :40, Schlafzimmer:37

    Wird da uU. etwas falsch erkannt? wenn ja, kann ich das zu Fuß ändern?

    Christian.
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 16 Dezember 2013, 19:45:43
    Hi Christian,

    das wird über das "ZoneGroupTopology"-Event geliefert und gesetzt. Dabei ist nur die UDN selbst wichtig, das hinter dem Doppelpunkt ist nur eine Versionsnummer, die ich nicht weiter auswerte.
    Wenn du die fhem.save gelöscht hast, sollte dort auch keine Altlast enthalten sein. Du kannst es natürlich einfach mal manuell setzen, dabei einfach das Muster beibehalten (wird per regulärem Ausdruck zerlegt), und die eigene UDN des Players eintragen...

    Aber wenn dort etwas falsches drinsteht, dann sollte irgendwo im Log etwas mit einem Fehler quittiert werden (wenn das mit dem Löschen der fhem.save funktioniert hat).

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: djhans am 16 Dezember 2013, 21:31:38
    Hallo Reiner,
    schon komisch. Habe das in der fhem.save überschrieben. Dann fhem neu gestartet und plötzlich stand wieder die falsche ZoneGroupID drin.
    Habe dann die fhem.save gelöscht, den Play 1 ausgesteckt und wieder eingesteckt und fhem wieder gestartet.
    Jetzt klappt es. Irgendwo scheint fhem da etwas falsch auszulesen. Im Controlerbetrieb habe ich keine Probleme gehabt.
    Christian.
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 16 Dezember 2013, 21:40:22
    Hi Christian,

    es kann auch falsch in den Playern stehen, und somit immer wieder falsch geliefert werden...
    Wie gesagt, irgendwie muss es eine saubere Möglichkeit gebe, das herauszufinden. Wie du schon schreibst: der Original-Controller schafft es ja auch :-)

    Wenn der Player dann neu gestartet wird, initialisiert er das bei sich wieder...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: eppi am 18 Dezember 2013, 14:24:06
    Hallo zusammen
    Ich bin absolut begeistert von diesem Moule und was sich damit machen lässt - an dieser Stelle ein herzliches DANKESCHÖN an die Entwickler. Ein Problem besteht bei mir jedoch:
    Ich benutze mittels notify "PlayURITemp" um Durchsagen im Haus zu machen bei eintreten von definierten erreignissen.

    define n_dummytest notify dummy5:on set Sonos_Bad PlayURITemp \\192.168.0.18\SonosSpeak\Hallo.mp3 30
    Der notify funktioniert und die Datei "Hallo.mp3" wird abgespielt, jedoch habe ich festgestellt, sobald der Player in einer Gruppe mit anderen Playern zusammengeschaltet ist, das mp3 endlos abgespielt wird. Sobald der Player separat ist (nicht in einer Gruppe) funktioniert es (Laufende Musik wird ausgeschaltet, Durchsage wird abgespielt, Musik wird wieder eingeschaltet).

    Kann mir jemand einen Tipp geben wie ich den Fehler beheben kann?
    Danke und Gruss Dani
    Titel: Antw:Sonos steuern
    Beitrag von: eppi am 19 Dezember 2013, 23:51:35
    ein reboot bewirkt manchmal wunder  ;D
    http://[IP_des_Masters]:1400/reboot
    Und meine Durchsagen funktionieren ;)
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 22 Dezember 2013, 11:38:37
    Hallo zusammen,

    ich bin gerade dabei ein Weihnachtsrelease fertigzustellen :-)

    Dafür bin ich jetzt gerade abschließend an der Problematik mit den Paarungen von Sonos-Playern. Dazu bräuchte ich mal Informationen von Personen, die solche Paarungen haben.

    Ein Stereopaar habe ich mir selber zum Testen erzeugt.
    Ich bräuchte also mal jemanden mit einem Surround-System (am Besten komplett eine PlayBar, 2 Rear-Boxen und ein Sub, halt das meiste, was geht :-)
    Wer sowas (auch annähernd) hat, könnte mir bitte mal den kompletten Inhalt des Readings "ZoneGroupState" des zentralen Sonos-Devices zukommen lassen.

    Wenn jemand Probleme damit hat sein Sonos-Modul für diese Ausgabe zum Laufen zu bringen, kann derjenige die aktuelle Development-Version installieren. Diese erzeugt zwar noch unschöne Namen der Fhem-Devices, sollte aber immerhin alles fehlerfrei anlegen:
    update thirdparty http://fhem.lmsoft.de/sonos_dev sonos

    Danke schon mal für die Mithilfe...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: eppi am 22 Dezember 2013, 18:54:16
    Hallo Rainer
    Ich bräuchte also mal jemanden mit einem Surround-System (am Besten komplett eine PlayBar, 2 Rear-Boxen und ein Sub, halt das meiste, was geht :-)
    Wer sowas (auch annähernd) hat, könnte mir bitte mal den kompletten Inhalt des Readings "ZoneGroupState" des zentralen Sonos-Devices zukommen lassen.
    Ich fühle mich angesprochen ;) Ich habe eine Playbar mit Sub und 2 Rear-Box, alles zusammengeschlossen in einem Surround-System. Jedoch verfüge ich über kein Reading "ZoneGroupState". Mit der neuen DEV Version sind nun die Rear-Boxen auch sichtbar.

    Kannst du mir sagen, wo ich schauen muss?
    Gruss Dani
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 22 Dezember 2013, 21:25:45
    Hi Dani,

    das ist ja schon mal super :-)
    Das Reading befindet sich an dem Device, welches man meist als einzigstes selber anlegt (also das einzige Device vom Typ SONOS). Die einzelnen SONOSPLAYER haben das Reading nicht...

    Da drin befindet sich eine XML-Struktur, die mir die Informationen bzgl. aller deiner Player und der jeweiligen Konstellation liefert....

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: JoeALLb am 22 Dezember 2013, 22:33:45
    Featurerequest: Kann man das einschalten/ausschalten von Wifi
    in das Modul einbinden? Folgende URL-Aufrufe sind dazu nötig.
    Ich würde damit gerne WiFi ausschalten, solange das Bad aus ist, denn nur dort benötige ich wlan.
    Sobald jemand die Funksteckdose für das Bad einschaltet,
    soll Wifi auf dem SonosSystem wieder aktiviert werden.....
        Wifi off, until next reboot
        http://[sonosip]:1400/wifictrl?wifi=off
        Wifi off, persistent
        http://[sonosip]:1400/wifictrl?wifi=persist-off
        Wifi on
        http://[sonosip]:1400/wifictrl?wifi=on

    Schön wäre auch, wenn man in FHEM erkennen könnte, ob ein Sonos ber Kabel oder per Lan angeschlossen ist...
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 23 Dezember 2013, 01:06:14
    Hi JoeAllb,

    das mit dem URL-Aufruf kann ich gerne noch reinpacken, und man kann zumindest rausfinden, ob ein Player an seinen beiden LAN-Buchsen etwas aktives drinstecken hat (für jeden Port einzeln).
    Allerdings habe ich spontan nichts gefunden, wie ich herausfinden kann, ob WLAN aktiv ist, oder nicht. Man kann es nur über deine URL setzen (zumindest habe ich dazu nix gefunden)

    Das ganze wäre dann ein Schritt in den Bereich der Nicht-Offiziell-Supporteten Befehle. Bislang läuft alles über die offiziellen UPnP-Befehle... keine Hacks o.ä. :-)

    Aber als zusätzliche Funktionalität kann man das sicherlich überlegen. Andererseits kann man sich das auch schnell in eine eigene Routine packen, da man die Grund-Adresse jedes Players über das Reading "location" herausbekommt...

    Ich versuche aber auch nochmal diese Informationen vielleicht per UPnP zu bekommen/bzw. setzen zu können...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: eppi am 23 Dezember 2013, 07:15:56
    Hallo Reiner
    Ich habe dir eine PM gesendet mit dem Reading.

    Gruss Dani
    Titel: Antw:Sonos steuern
    Beitrag von: John am 23 Dezember 2013, 09:57:02
    Hallo Reiner,
    vielen Dank für das tolle Sonos-Modul.

    Ich habe jedoch noch einige ungeklärte Probleme:
    (verwende Sonos Play 1 mit Bridge)

    Das Sonos-Modul habe ich installiert via
    update thirdparty http://fhem.lmsoft.de/sonos sonos
    Es sind mehrere Playlisten definiert (siehe Anhang)

    jedoch liefert
    get Sonos_Wohnzimmer Playlists
    folgendes
    Zitat
    2013.12.23 09:49:06 3: SONOS0: Received: 'DoWork:RINCON_000E58CBFB7C01400_MR:getPlaylists:'

    Zu erwarten wäre doch eine Liste der Playlists.

    John
    Titel: Antw:Sonos steuern
    Beitrag von: John am 23 Dezember 2013, 10:19:24
    Hallo Reiner,

    folgendes funktioniert bei mir grundsätzlich

    set Sonos_Wohnzimmer Speak 20 de Temperatur im Wohnzimmer 19 Grad

    Reading : Repeat 0

    Logausgabe:

    Zitat
    2013.12.23 10:03:53 3: SONOS1: Start temporary playing of "http://pi/sonos/RINCON_000E58CBFB7C01400_MR_Speak.mp3"
    2013.12.23 10:03:55 3: SONOS1: SleepTimer berechnet die Laufzeit des Titels selber, da keine Wartezeit uebermittelt wurde!
    2013.12.23 10:03:55 1: SONOS1: Da keine Endzeit ermittelt werden konnte, wird kein Restoring durchgeführt werden!

    Allerdings wird die Ausgabe permanent wiederholt.

    Wie kann ich das ändern, so dass der Text nur 1x ausgegeben wird ?

    John
    Titel: Antw:Sonos steuern
    Beitrag von: John am 23 Dezember 2013, 10:39:44
    Hallo Reiner,

    wenn ich die Playlist durch schnelles Drücken am Sonos Play zum nächsten Titel schalte,
    erhalte ich in FHEM keine Information darüber. (fehlende Events)

    Demnach wird das Reading CurrentTrack nicht aktualisiert.
    Der Sonos-Controller jedoch führt die Informationen nach.

    Lässt sich dies ändern ?

    Vielleicht hat in diesem Zusammenhang folgende Log-Ausgabe eine Bedeutung:
    Zitat
    2013.12.23 10:29:29 3: SONOS1: Transport-Event: device 'Sonos_Wohnzimmer' disabled. No Events/Data will be processed!

    John
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 23 Dezember 2013, 11:16:25
    Hi John,

    ich versuche das mal in einer Mail abzuwickeln:

    Das Modul bringt nochmal ein bißchen Komplexität mit sich, die sich leider nicht vermeiden läßt. Aber es lohnt sich :-)

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: John am 23 Dezember 2013, 20:44:37
    Hall Reiner,
    vielen Dank für deine Antwort

    Zitat
    Mit der Endloswiedergabe hatte hier noch jemand ein Problem gehabt, welches durch einen Neustart des Player behoben werden konnte.
    Allerdings gehe ich bei dir eher davon aus, dass das Modul die Datei nicht per HTTP lesen kann. Sonos selbst natürlich schon, da er dieses dann als Radiostream behandelt, und dann natürlich auch endlos abspielt (wie jeden Radiostream).

    Allerdings habe ich immer noch das Problem, dass die Ausgabe sich ewig wiederholt.
    Ich habe nun analog zum Beispiel des Samba-Servers ein eigenes Verzeichnis angelegt, diese mit den Rechten von FHEM versorgt
    und via Alias in Apache eingebunden.


    Zitat
    2013.12.23 20:35:52 3: SONOS1: Start temporary playing of "http://pi/sonos/speak/RINCON_000E58CBFB7C01400_MR_Speak.mp3"
    2013.12.23 20:35:54 3: SONOS1: SleepTimer berechnet die Laufzeit des Titels selber, da keine Wartezeit uebermittelt wurde!
    2013.12.23 20:35:54 1: SONOS1: Da keine Endzeit ermittelt werden konnte, wird kein Restoring durchgeführt werden!

    Die Rechte sollten auch passen:
    -rw-r--r-- 1 fhem dialout 27648 Dez 23 20:35 RINCON_000E58CBFB7C01400_MR_Speak.mp3


    Ich kann die Datei über HTTP-von aussen lesen.

    Was kann ich noch tun ?

    John

    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 23 Dezember 2013, 22:30:40
    Hi John,

    sowohl vom Modul aus, als auch von Sonos aus muss der Zugriff über eine Samba-Freigabe erfolgen (bzw. vom Modul aus ist es ja meist ein Zugriff auf das lokale Filesystem).

    Sobald Sonos per http zugreift, wird das ganze als Webradio angesehen, und endlos abgespielt.

    Mal kurz zur Verdeutlichung:
    - Das Attribut "targetSpeakDir" wird vom Modul zum Schreiben der MP3-Datei verwendet.
    - Das Attribut "targetSpeakURL" wird an Sonos übergeben, um die MP3-Datei von "aussen" (ausserhalb deiner Fhem-Maschine) zu erreichen. Wenn dort was von "http://" steht, macht Sonos das von dir beobachtete Verhalten. Das Verzeichnis muss also nicht per Apache veröffentlicht werden, sondern mittels Samba...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 25 Dezember 2013, 00:46:10
    Hi zusammen,

    hier mal ein kurzer Status...

    Es formiert sich. Ich habe jetzt noch die Anregung bzgl. Reboot, WifiCtrl und EthernetPort-Informationen eingebaut.
    Ich bin zusammen mit Dani noch auf der Suche nach einem Problem bzgl. der Namensvergabe bei Surround-Konfigurationen. Das werden wir aber noch vor dem Release lösen...

    Was noch offen ist (und vermutlich auch nicht im Weihnachtsrelease gelöst sein wird), ist, was bei Verlust (z.B. durch Stromtrennung) eines Players in einer solchen Gruppierung passiert. Das ist wohl noch ein Problem.
    Außerdem gibt es noch bei jemanden das Problem, dass die Sache mit dem Subprozess nicht sauber startet. Das sieht nach einem Threading-Problem aus, muss aber noch genauer untersucht werden.

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: herman am 25 Dezember 2013, 14:30:57
    Hallo,

    vielen Dank für dieses Modul.

    Ich teste gerade den Betrieb mit Funksteckdosen, FHEM und Sonos. Ich habe öfter das Verhalten, dass FHEM die Songs Komponenten nicht mehr steuern kann. Ich konnte noch nicht reproduzierbar rausfinden wann das der Fall ist. Der Sonos Prozess scheint mit einer hohen CPU Auslastung zu hängen - das zeigt ein ps -aux

    fhem     16332 57.3  8.3  59596 37336 ?        Rl   Dez24 825:14 perl FHEM/00_SONOS.pm 4711 3
    fhem     16587  2.9  6.9  36692 31268 ?        S    00:48  24:10 /usr/bin/perl fhem.pl fhem.cfg

    nach einem Neustart von FHEM geht es erst mal wieder.

    Folgenden Befehl habe ich im Verdacht: set sonot groups [Sonos_Kueche] ...

    Im Log erschien dann Folgendes:

    2013.12.25 15:11:14 3: SONOS0: Received: 'DoWork:RINCON_000E58A9DED201400_MR:makeStandaloneGroup:'
    Thread 3 terminated abnormally: mismatched tag 'stateVariable'

    Die nächsten Befehle kamen nicht bei den Songs Geräten an:

    2013.12.25 15:11:24 3: SONOS0: Received: 'DoWork:RINCON_000E58CA720801400_MR:addMember:RINCON_000E58A9DED201400_MR'
    2013.12.25 15:11:40 3: SONOS0: Received: 'DoWork:RINCON_000E58A9DED201400_MR:setRelativeVolume:7'
    2013.12.25 15:11:54 3: SONOS0: Received: 'DoWork:RINCON_000E58A9DED201400_MR:setRelativeVolume:7'
    2013.12.25 15:11:54 3: SONOS0: Received: 'DoWork:RINCON_000E58A9DED201400_MR:setRelativeVolume:7'
    2013.12.25 15:12:17 3: SONOS0: Received: 'DoWork:RINCON_000E58CA720801400_MR:addMember:RINCON_000E58A9DED201400_MR'
    2013.12.25 15:12:31 3: SONOS0: Received: 'DoWork:RINCON_000E58CA720801400_MR:pause:'

    Ein Delete Sonos und Neudefinition in FEHM führten zum Absturz:

    2013.12.25 15:13:14 3: SONOS0: Received: 'disconnect'
    2013.12.25 15:13:14 3: SONOS0: Disconnecting client...
    2013.12.25 15:13:14 3: SONOS0: Trying to kill Sonos_Thread...
    Can't use string ("") as a HASH ref while "strict refs" in use at ./FHEM/21_SONOSPLAYER.pm line 291.


    Wie könnte ich den Sachverhalt sinnvoll untersuchen?

    Danke & Grüße,
    Merhan
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 25 Dezember 2013, 15:51:38
    Hallo Merhan,

    hmmm... das klingt erstmal komisch. Ich habe das bei mir mal ausgeführt, aber wie das so ist, da geht es natürlich :-)

    Ich würde dich kurz bitten, auf die Developer-Version upzudaten. Erstens sind dort u.U. einige Fehler bereits behoben, und zweitens passen deine Fehlermeldungszeilennummern zu dem Code in meinem Editor :-)
    update thirdparty http://fhem.lmsoft.de/sonos_dev sonos

    Danach nochmal beobachten, und mir die neuen Fehlermeldungen mit den von mir nachvollziehbaren Zeilennummern zusenden.

    Danke schon mal...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: herman am 25 Dezember 2013, 17:49:17
    Halo Reiner,

    Danke für Deine schnelle Unterstützung :-)

    Ich bin auf die Dev gegangen und bekomme folgende Fehlermeldung

    Can't use string ("") as a HASH ref while "strict refs" in use at ./FHEM/00_SONOS.pm line 956

    vorher hatte ich den Befehl set Sonos groups [Sonos_Kueche] .... und weitere Player von denen zwei nicht mit Strom versorgt  und aktuell auch nicht bekannt waren.

    Dieser Fehler lässt sich reproduzieren. Der Aufruf mit vorhandenen Geräten funktioniert.

    Nach dem Neustart bekam ich bei dem Befeht get Songs groups folgende Meldung:

    Can't use an undefined value as a HASH reference at ./FHEM/00_SONOS.pm line 857.

    Grüße,
    Merhan

    Titel: Antw:Sonos steuern
    Beitrag von: herman am 25 Dezember 2013, 18:26:47
    Folgende Meldung habe ich auch noch erhalten:

    Can't use string ("") as a HASH ref while "strict refs" in use at ./FHEM/21_SONOSPLAYER.pm line 532
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 25 Dezember 2013, 19:13:34
    Hallo Merhan,

    ok, jetzt sehe ich, an welchen Stellen da ein Fehler auftritt. Allerdings frage ich mich, wie das passieren konnte...
    Das tritt auf, wenn die Player nicht in der Fhem-Device-Liste gefunden werden konnten. Das aber sollte gar nicht auftreten.

    Gehen wir doch mal Schrittweise durch:
    Du versuchst ja Gruppen zu bilden, bzw. aufzulösen. Bitte stell doch im ersten Schritt sicher, dass alle Player von Fhem erkannt und angelegt wurden.
    Danach kannst du bitte mal ein "get Sonos Groups" ausführen. Da solltest du deine Sonos-Player in ihren Gruppen angezeigt bekommen.
    Desweiteren sollte am Sonos-Device das Reading "ZoneGroupState" gefüllt sein, das sollte aber der Fall sein, wenn die Ausgabe von "get Sonos Groups" erfolgreich war...

    Außerdem solltest du auf jeden Fall sicherstellen, dass du wirklich nur ein Sonos-Device konfiguriert hast. Sonst dürfte da auch einiges schief gehen...

    Und du solltest dem ganzen nach einem Neustart etwas Zeit geben, die Player zu erkennen und zu aktualisieren. Das kann schon mal 30 Sekunden dauern (ja nach Maschine auch länger, oder natürlich auch kürzer :-).

    Klappt das denn schon mal?

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: John am 25 Dezember 2013, 20:43:49
    Hallo Reiner,
    besten Dank für deine Antwort #550.
    Mit Samba funktioniert nun alles wie gewünscht. Das ewige Wiederholen hat nun ein Ende.

    Nächstes Problem:
    ich möchte eine Playlist laden via:
    set Sonos_Wohnzimmer LoadPlaylist file:/mnt/SonosSpeak/john.m3u
    Das angegebenen Verzeichnis ist gleichzeitig das freigegebene Samba-Verzeichnis:
    Ergebnis von LastActionResult:
    Zitat
    LoadPlaylist: Error during opening file "/mnt/SonosSpeak/john.m3u": Unpassender IOCTL (I/O-Control) für das Gerät

    Rechte-Einstellung
    -rw-rw-r-- 1 pi fhem 174 Dez 25 20:17 /mnt/SonosSpeak/john.m3u
    Was mache ich falsch?

    John
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 25 Dezember 2013, 23:18:08
    Hi John,

    hmm... das ist aber komisch. Da wird einfach eine Datei mit dem Perl-Befehl "open" zum Lesen geöffnet.
    Das sollte eigentlich auf jeder Maschine gehen.

    Da muss ich erstmal etwas forschen. Leider muss ich dich da also etwas vertrösten...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: chregu am 26 Dezember 2013, 09:35:00
    Hallo

    Ich habe sehr oft folgendes in meinem Output

    SONOS0: Error during MainTrigger: syntax error at (eval 367) line 1, near "understand you:"
     - Trying to execute 'Sorry. I don't understand you: 'A:RINCON_000E5868517601400_MR:disable:0''

    Und was ich auch sehr oft habe

    ProxyObject does not exists

    In unterschiedlichsten Variatonen. Ich benutze die _dev version, kann auch mehr infos liefern, falls nötig.

    Gruss

    Christian
    Titel: Antw:Sonos steuern
    Beitrag von: Christoph am 27 Dezember 2013, 11:35:45
    Hallo,

    habe mal gestern ein Update auf Sonos_dev gemacht und bekam dann folgende Fehler beim speichern der fhem.cfg.

    Reading Sonos_BRIDGE->presence not used out of statefile. Reading Sonos_Bad->presence not used out of statefile. Reading Sonos_Wohnzimmer->presence not used out of statefile.
    Hab alles was das Sonos Modul betraf in der cfg gelöscht und die beiden Player (Play1 und Play3) neu erkennen lassen.

    Gruß Christoph

    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 27 Dezember 2013, 13:25:14
    Hi zusammen,

    @Christoph:
    das ist keine Fehlermeldung, sondern nur eine Info.
    Es geht darum, dass der Inhalt des Readings "presence" nicht aus dem Statefile gesetzt werden darf.
    Dieses Rading wird beim Start des Moduls auf disappeared gesetzt, damit ein folgender Erkennungsvorgang sicher den Wert setzen kann, und ausgeschaltete Player (die sich ja nicht melden) auch sicher als Disappeared geführt werden (sonst könnte es passieren, dass ein Player, der an war, und während des Neustarts von Fhem ausgeschaltet wird, zukünftig als "appeared" geführt wird, da das Reading ja nie angefasst wird).

    Leider kann ich das Laden aus dem Statefile nur mit einer Meldung unterbinden, sodass dazu immer etwas im Log steht...

    @Christian:
    Ich habe in der aktuellen Developer-Version dazu etwas eingebaut. Diese Meldungen sollten jetzt seltener auftreten. Das ist ein Zeitproblem zwischen der Fhem und der Subprozess Verarbeitung durch das Betriebssystem. Auf meiner Windows-Monster-Entwicklungs-Maschine tritt da nie was auf, auf meinem Pi hingegen schon, sodass ich das also entsprechend nachvollziehen konnte...
    Vielleicht finde ich da aber auch noch eine bessere Lösung...

    Warst du nicht derjenige, der auch ein Sonos-Surround-System hatte?
    Wenn ja, könntest du mit der aktuellen Dev-Version mal eine vollständige Erkennung aller Zoneplayer mittels Fhem durchführen lassen, und mal schauen, wie die Player jetzt benannt werden?
    Dieser Test (bzw. das Problem dazu) steht dem Weihnachtsrelease noch im Weg.
    Wenn das gelöst ist, wollte ich den Stand erst mal veröffentlichen...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: eppi am 27 Dezember 2013, 19:17:37
    Hallo Reiner
    Ich melde mich zurück...

    Ich habe heute das Naming meiner Surround Konfiguration nochmals überprüft.... Nach dem ich mehrmals die bereits erkannten Player gelöscht habe, gespeichert und FHEM neugestartet habe, funktioniert nun das Naming wie gewünscht.

    Meine Player des Surround heissen nun:
    Sonos_Wohnzimmer
    Sonos_Wohnzimmer_LR
    Sonos_Wohnzimmer_RR
    Sonos_Wohnzimmer_SW

    Also genauso wie es sein sollte, HERZLICHEN DANK!

    Ich habe aber noch eine Frage.
    Wenn ich eine Gruppe mit 3 Playern machen möchte scheitere ich an der Schreibweise. Versucht habe ich:
    set Sonos_Wohnzimmer AddMember Sonos_Bad,Sonos_Kueche
    Das hat aber so nicht funktioniert und ich habe mir als Workaround die Befehle aufgeteilt. Kannst du mir hier auf die Sprüngge helfen?

    Danke und Gruess Dani
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 27 Dezember 2013, 22:12:30
    Hi Dani,

    der Befehl "AddMember" ist nur für das Hinzufügen eines Players.

    Wenn du eine Gruppe auf einen Schlag erzeugen willst, kannst du den Befehl "set Groups" am Sonos-Device verwenden:
    set Sonos Groups [Sonos_Wohnzimmer, Sonos_Bad, Sonos_Kueche]
    erzeugt eine Gruppe mit den drei Playern, wobei das Wohnzimmer der Master wird (also wird dessen Abspielliste die der neuen Gruppe).

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: chregu am 27 Dezember 2013, 22:26:22
    Hallo Reinerlein

    Ich hab zwar kein Surround System, aber 2 play:5 mit einem Sub. Hab mal alle sonos definitionen gelöscht in der .cfg und neu gestartet, folgendes kam raus (hab auch noch nen Play:1 und einen Connect):

    define Sonos_Living_Room_SW SONOSPLAYER RINCON_000E5899F9CE01400_MR
    attr Sonos_Living_Room_SW generateInfoSummarize1 <NormalAudio><Artist prefix="(" suffix=")"/><Title prefix=" '" suffix="'" ifempty="[Keine Musikdatei]"/><Album prefix=" vom Album '" suffix="'"/></NormalAudio> <StreamAudio><Sender suffix=":"/><SenderCurrent prefix=" '" suffix="' -"/><SenderInfo prefix=" "/></StreamAudio>
    attr Sonos_Living_Room_SW generateInfoSummarize2 <TransportState/><InfoSummarize1 prefix=" => "/>
    attr Sonos_Living_Room_SW generateInfoSummarize3 <Volume prefix="Lautstaerke: "/><Mute instead=" ~ Kein Ton" ifempty=" ~ Ton An" emptyval="0"/> ~ Balance: <Balance ifempty="Mitte" emptyval="0"/><HeadphoneConnected instead=" ~ Kopfhoerer aktiv" ifempty=" ~ Kein Kopfhoerer" emptyval="0"/>
    attr Sonos_Living_Room_SW getAlarms 1
    attr Sonos_Living_Room_SW group Living_Room
    attr Sonos_Living_Room_SW icon icoSONOSPLAYER_icon-Sub.png
    attr Sonos_Living_Room_SW minVolume 0
    attr Sonos_Living_Room_SW model Sonos_Sub
    attr Sonos_Living_Room_SW room Sonos
    attr Sonos_Living_Room_SW stateVariable InfoSummarize2
    attr Sonos_Living_Room_SW webCmd Play:Pause:Previous:Next:VolumeD:VolumeU:MuteT
    define Sonos_Living_Room_RF SONOSPLAYER RINCON_000E5889C19001400_MR
    attr Sonos_Living_Room_RF generateInfoSummarize1 <NormalAudio><Artist prefix="(" suffix=")"/><Title prefix=" '" suffix="'" ifempty="[Keine Musikdatei]"/><Album prefix=" vom Album '" suffix="'"/></NormalAudio> <StreamAudio><Sender suffix=":"/><SenderCurrent prefix=" '" suffix="' -"/><SenderInfo prefix=" "/></StreamAudio>
    attr Sonos_Living_Room_RF generateInfoSummarize2 <TransportState/><InfoSummarize1 prefix=" => "/>
    attr Sonos_Living_Room_RF generateInfoSummarize3 <Volume prefix="Lautstaerke: "/><Mute instead=" ~ Kein Ton" ifempty=" ~ Ton An" emptyval="0"/> ~ Balance: <Balance ifempty="Mitte" emptyval="0"/><HeadphoneConnected instead=" ~ Kopfhoerer aktiv" ifempty=" ~ Kein Kopfhoerer" emptyval="0"/>
    attr Sonos_Living_Room_RF getAlarms 1
    attr Sonos_Living_Room_RF group Living_Room
    attr Sonos_Living_Room_RF icon icoSONOSPLAYER_icon-S5.png
    attr Sonos_Living_Room_RF minVolume 0
    attr Sonos_Living_Room_RF model Sonos_S5
    attr Sonos_Living_Room_RF room Sonos
    attr Sonos_Living_Room_RF stateVariable InfoSummarize2
    attr Sonos_Living_Room_RF webCmd Play:Pause:Previous:Next:VolumeD:VolumeU:MuteT
    define Sonos_BRIDGE SONOSPLAYER RINCON_000E5868517601400_MR
    attr Sonos_BRIDGE group BRIDGE
    attr Sonos_BRIDGE icon icoSONOSPLAYER_icon-ZB100.png
    attr Sonos_BRIDGE model Sonos_ZB100
    attr Sonos_BRIDGE room Sonos
    define Sonos_Bathroom SONOSPLAYER RINCON_000E58C9D7E201400_MR
    attr Sonos_Bathroom generateInfoSummarize1 <NormalAudio><Artist prefix="(" suffix=")"/><Title prefix=" '" suffix="'" ifempty="[Keine Musikdatei]"/><Album prefix=" vom Album '" suffix="'"/></NormalAudio> <StreamAudio><Sender suffix=":"/><SenderCurrent prefix=" '" suffix="' -"/><SenderInfo prefix=" "/></StreamAudio>
    attr Sonos_Bathroom generateInfoSummarize2 <TransportState/><InfoSummarize1 prefix=" => "/>
    attr Sonos_Bathroom generateInfoSummarize3 <Volume prefix="Lautstaerke: "/><Mute instead=" ~ Kein Ton" ifempty=" ~ Ton An" emptyval="0"/> ~ Balance: <Balance ifempty="Mitte" emptyval="0"/><HeadphoneConnected instead=" ~ Kopfhoerer aktiv" ifempty=" ~ Kein Kopfhoerer" emptyval="0"/>
    attr Sonos_Bathroom getAlarms 1
    attr Sonos_Bathroom group Bathroom
    attr Sonos_Bathroom icon icoSONOSPLAYER_icon-S1.png
    attr Sonos_Bathroom minVolume 0
    attr Sonos_Bathroom model Sonos_S1
    attr Sonos_Bathroom room Sonos
    attr Sonos_Bathroom stateVariable InfoSummarize2
    attr Sonos_Bathroom webCmd Play:Pause:Previous:Next:VolumeD:VolumeU:MuteT
    define Sonos_Bedroom SONOSPLAYER RINCON_000E582B613C01400_MR
    attr Sonos_Bedroom generateInfoSummarize1 <NormalAudio><Artist prefix="(" suffix=")"/><Title prefix=" '" suffix="'" ifempty="[Keine Musikdatei]"/><Album prefix=" vom Album '" suffix="'"/></NormalAudio> <StreamAudio><Sender suffix=":"/><SenderCurrent prefix=" '" suffix="' -"/><SenderInfo prefix=" "/></StreamAudio>
    attr Sonos_Bedroom generateInfoSummarize2 <TransportState/><InfoSummarize1 prefix=" => "/>
    attr Sonos_Bedroom generateInfoSummarize3 <Volume prefix="Lautstaerke: "/><Mute instead=" ~ Kein Ton" ifempty=" ~ Ton An" emptyval="0"/> ~ Balance: <Balance ifempty="Mitte" emptyval="0"/><HeadphoneConnected instead=" ~ Kopfhoerer aktiv" ifempty=" ~ Kein Kopfhoerer" emptyval="0"/>
    attr Sonos_Bedroom getAlarms 1
    attr Sonos_Bedroom group Bedroom
    attr Sonos_Bedroom icon icoSONOSPLAYER_icon-ZP90.png
    attr Sonos_Bedroom minVolume 0
    attr Sonos_Bedroom model Sonos_ZP90
    attr Sonos_Bedroom room Sonos
    attr Sonos_Bedroom stateVariable InfoSummarize2
    attr Sonos_Bedroom webCmd Play:Pause:Previous:Next:VolumeD:VolumeU:MuteT
    define AlbumArt_Bedroom weblink image /fhem/icons/SONOSPLAYER/Sonos_Bedroom_AlbumArt
    attr AlbumArt_Bedroom group Bedroom
    attr AlbumArt_Bedroom htmlattr width='200'
    attr AlbumArt_Bedroom room Sonos
    define Sonos_Living_Room_LF SONOSPLAYER RINCON_000E585B03CC01400_MR
    attr Sonos_Living_Room_LF generateInfoSummarize1 <NormalAudio><Artist prefix="(" suffix=")"/><Title prefix=" '" suffix="'" ifempty="[Keine Musikdatei]"/><Album prefix=" vom Album '" suffix="'"/></NormalAudio> <StreamAudio><Sender suffix=":"/><SenderCurrent prefix=" '" suffix="' -"/><SenderInfo prefix=" "/></StreamAudio>
    attr Sonos_Living_Room_LF generateInfoSummarize2 <TransportState/><InfoSummarize1 prefix=" => "/>
    attr Sonos_Living_Room_LF generateInfoSummarize3 <Volume prefix="Lautstaerke: "/><Mute instead=" ~ Kein Ton" ifempty=" ~ Ton An" emptyval="0"/> ~ Balance: <Balance ifempty="Mitte" emptyval="0"/><HeadphoneConnected instead=" ~ Kopfhoerer aktiv" ifempty=" ~ Kein Kopfhoerer" emptyval="0"/>
    attr Sonos_Living_Room_LF getAlarms 1
    attr Sonos_Living_Room_LF group Living_Room
    attr Sonos_Living_Room_LF icon icoSONOSPLAYER_icon-S5.png
    attr Sonos_Living_Room_LF minVolume 0
    attr Sonos_Living_Room_LF model Sonos_S5
    attr Sonos_Living_Room_LF room Sonos
    attr Sonos_Living_Room_LF stateVariable InfoSummarize2
    attr Sonos_Living_Room_LF webCmd Play:Pause:Previous:Next:VolumeD:VolumeU:MuteT

    Es scheint nun keinen Sonos_Living_Room mehr zu geben, nur noch die entsprecchenden Sonos_Living_Room_*, ich nehm an, um die Gruppe anzusprechen, kann ich einen davon nehmen (tut jedenfalls bei einfachen Tests)
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 27 Dezember 2013, 22:58:04
    Hi Christian,

    das mit der Namensgebung muss noch etwas feingeschliffen werden. Da baue ich noch etwas dran rum :-)

    Aber prinzipiell hast du recht. Das Modul weiss schon, an wen die Anweisungen gehen müssen. Es müssen nur alle Player in Fhem eine entsprechende Komponente haben.

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: John am 28 Dezember 2013, 17:28:36
    Hallo Reiner,

    ich hab mit targetSpeakFileHashCache gespielt und folgendes festgestellt:


    Zitat
    2013.12.28 13:10:11 3: SONOS1: Event: Received Transport-Event for Zone "Sonos_Wohnzimmer".
    2013.12.28 13:10:11 3: SONOS1: Event: End of Transport-Event for Zone "Sonos_Wohnzimmer".
    2013.12.28 13:10:13 3: SONOS0: Received: 'DoWork:RINCON_000E58CBFB7C01400_MR:speak0:50,de, Der Brenner ist ein'
    Argument "DoWork:RINCON_000E58CBFB7C01400_MR:speak0:50,de, Der Bre..." isn't numeric in numeric eq (==) at FHEM/00_SONOS.pm line 1749, <$client> line 2.
    Argument "A:undef:targetSpeakFileHashCache:1" isn't numeric in numeric eq (==) at FHEM/00_SONOS.pm line 1762, <$client> line 2.
    2013.12.28 13:10:14 3: SONOS1: Load Google generated MP3 from "http://translate.google.com/translate_tts?tl=de&q=Der%20Brenner%20ist%20ein" to "A:undef:targetSpeakFileTimestamp:0/RINCON_000E58CBFB7C01400_MR_Speak.mp3"
    2013.12.28 13:10:14 2: SONOS1: Beim Setzen der MP3-Informationen (ID3TagV2) ist ein Fehler aufgetreten: Can't call method "title_set" on an undefined value at FHEM/00_SONOS.pm line 1787, <$client> line 2.

     Beim Ermitteln des Hash-Wertes ist ein Fehler aufgetreten: Can't locate Digest/SHA1.pm in @INC (@INC contains: FHEM/lib FHEM/FHEM/lib ./FHEM/lib ./lib ./FHEM ./ /etc/perl /usr/local/lib/perl/5.14.2 /usr/local/share/perl/5.14.2 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.14 /usr/share/perl/5.14 /usr/local/lib/site_perl .) at FHEM/00_SONOS.pm line 1751, <$client> line 2.

    John

    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 29 Dezember 2013, 02:19:22
    Hi John,

    also das mit dem Löschen der Attribute kann ich nicht nachvollziehen.
    Aber die Änderungen an Attributen usw. werden vom Modul auf jeden Fall erst nach einem Neustart übernommen ("save" vorher nicht vergessen).
    Ich kann diese Informationen nicht ständig zwischen dem Subprozess und Fhem synchronisieren, sodass ich diese nur einmal (bei der ersten Verwendung) transferiere.

    Zu den Fehlermeldungen:
    Leider kann ich die Zeilennummern nicht bei mir anwenden. Dazu müsstest du auf die Developer-Version updaten, die meinem lokalen Codestand entspricht.
    Aber zu der unteren Fehlermeldung kann ich dir schon was schreiben:
    Er vermisst die, für die Generierung des Hash-Werts notwendige, Perl Library "Digest/SHA1.pm". Um die Funktionalität nutzen zu können, musst du diese auf jeden Fall noch installieren.

    Wenn du auf die Dev-Version umgestellt hast, bzw. wenn du auf das offizielle Release wartest, nach dem update, kann ich mir die Fehlermeldungen mit deinen dann neuen Zeilennummern anschauen. Dann finden wir die Lösung sicherlich...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: JoeALLb am 29 Dezember 2013, 07:48:38
    Hallo Reiner,

    Da mit dem SHA Modul sollte Bitte in der Wiki Doku ergänzt werden,  da bin ich ebenfalls gescheitert. Ich würde Hebel vorschlagen   die benötigten Module gesammelt dort anzugeben,  den das mp3 Info Modul sollte sich leichter auf Auffindbar sein. Ich würde dort sogar auch espeak als optional angeben. Ansonsten freue ich mich sehr über die neue Version und beginne jetzt mit dem Testen. Habe die letzten Änderungen leider noch mitbekommen, irgendwie funktioniert hier die email Benachrichtigung nicht gut dem Forum.
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 29 Dezember 2013, 11:19:46
    Hi JoeAllb,

    das Wiki repräsentiert immer den "offiziellen" Stand, und wird zusammen mit dem Modul aktualisiert. Das bedeutet, dass die "Developer"-Funktionen dort noch nicht dokumentiert sind.

    Aber du hast natürlich Recht, und ich werde auf jeden Fall noch die Hinweise bzgl. Digest/Sha einbauen.
    Bzgl. espeak habe ich ein Beispiel mit Installationshinweisen im Wiki eingetragen. Ansonsten sollte espeak ja auch nur ein Beispiel sein, und wird dementsprechend nicht in den Standard-Installationshinweisen erwähnt, schließlich kann man ja auch beliebiges anderes verwenden :-)

    Wie gesagt, muss nur noch der Test mit den Surround-Systemen abgeschlossen werden, dann wird alles released und damit auch das Wiki aktualisiert...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: chregu am 30 Dezember 2013, 08:51:58
    Hallo zusammen

    Ich schein ein neues Problem zu haben. Der SONOS Perl prozess hängt sich nach kurzer Zeit auf (erzeugt 100% CPU lasst). Ich hab mal alle definitionen gelöscht, fhem neu gestartet und dann sonos neu definiert

    folgendes krieg ich dann im log

    2013.12.30 08:42:04 1: SONOS0: 00_SONOS.pm is listening to Port 4711
    @2013.12.30 08:43:38 1: SONOS0: Connection accepted from localhost:48050
    2013.12.30 08:43:38 3: SONOS0: Received: 'disconnect'
    2013.12.30 08:43:38 3: SONOS0: Disconnecting client...
    2013.12.30 08:43:40 1: SONOS0: Connection accepted from localhost:48051
    2013.12.30 08:43:41 3: SONOS0: Received: 'SetData:Sonos:none::'
    2013.12.30 08:43:41 3: SONOS0: Received: 'StartThread'
    2013.12.30 08:43:41 3: SONOS1: UPnP-Thread gestartet.
    2013.12.30 08:43:42 1: SONOS2: Restore-Thread gestartet. Warte auf Arbeit...


    2013.12.30 08:45:16 4: SONOS1: Discover-Event: Description-Document: <?xml version="1.0" encoding="utf-8" ?>
    <root xmlns="urn:schemas-upnp-org:device-1-0">
      <specVersion>
        <major>1</major>
        <minor>0</minor>
      </specVersion>
      <device>
        <deviceType>urn:schemas-upnp-org:device:ZonePlayer:1</deviceType>
        <friendlyName>192.168.1.34 - Sonos BRIDGE</friendlyName>
        <manufacturer>Sonos, Inc.</manufacturer>
        <manufacturerURL>http://www.sonos.com</manufacturerURL>
        <modelNumber>ZB100</modelNumber>
        <modelDescription>Sonos BRIDGE</modelDescription>
        <modelName>Sonos ZoneBridge ZB100</modelName>
        <modelURL>http://www.sonos.com/store/products/BRIDGE</modelURL>
        <softwareVersion>24.0-69180</softwareVersion>
        <hardwareVersion>1.5.0.0-2</hardwareVersion>
        <serialNum>00-0E-58-68-51-76:0</serialNum>
        <UDN>uuid:RINCON_000E5868517601400</UDN>
        <iconList>
          <icon>
            <id>0</id>
            <mimetype>image/png</mimetype>
            <width>48</width>
            <height>48</height>
            <depth>24</depth>
            <url>/img/icon-ZB100.png</url>
          </icon>
        </iconList>
        <minCompatibleVersion>22.0-00000</minCompatibleVersion>
        <displayVersion>4.2</displayVersion>
        <extraVersion></extraVersion>
        <roomName>BRIDGE</roomName>
        <displayName>BRIDGE</displayName>
        <zoneType>4</zoneType>
        <feature1>0x00000000</feature1>
        <feature2>0x00008173</feature2>
        <feature3>0x00030000</feature3>
        <internalSpeakerSize>-1</internalSpeakerSize>
        <serviceList>
          <service>
            <serviceType>urn:schemas-upnp-org:service:DeviceProperties:1</serviceType>
            <serviceId>urn:upnp-org:serviceId:DeviceProperties</serviceId>
            <controlURL>/DeviceProperties/Control</controlURL>
            <eventSubURL>/DeviceProperties/Event</eventSubURL>
            <SCPDURL>/xml/DeviceProperties1.xml</SCPDURL>
          </service>   
          <service>
            <serviceType>urn:schemas-upnp-org:service:SystemProperties:1</serviceType>
            <serviceId>urn:upnp-org:serviceId:SystemProperties</serviceId>
            <controlURL>/SystemProperties/Control</controlURL>
            <eventSubURL>/SystemProperties/Event</eventSubURL>
            <SCPDURL>/xml/SystemProperties1.xml</SCPDURL>
          </service>   
          <service>
            <serviceType>urn:schemas-upnp-org:service:ZoneGroupTopology:1</serviceType>
            <serviceId>urn:upnp-org:serviceId:ZoneGroupTopology</serviceId>
            <controlURL>/ZoneGroupTopology/Control</controlURL>
            <eventSubURL>/ZoneGroupTopology/Event</eventSubURL>
            <SCPDURL>/xml/ZoneGroupTopology1.xml</SCPDURL>
          </service>   
          <service>
            <serviceType>urn:schemas-upnp-org:service:GroupManagement:1</serviceType>
            <serviceId>urn:upnp-org:serviceId:GroupManagement</serviceId>
            <controlURL>/GroupManagement/Control</controlURL>
            <eventSubURL>/GroupManagement/Event</eventSubURL>
            <SCPDURL>/xml/GroupManagement1.xml</SCPDURL>
          </service>
        </serviceList>
        <deviceList>
        </deviceList>
      </device>
    </root>

    2013.12.30 08:45:16 4: SONOS1: RoomName: 'BRIDGE', SaveRoomName: 'BRIDGE', ModelNumber: 'ZB100', DisplayVersion: '4.2', SerialNum: '00-0E-58-68-51-76:0', IconURI: '/img/icon-ZB100.png', IconOrigPath: 'http://192.168.1.34:1400/img/icon-ZB100.png', IconPath: 'icoSONOSPLAYER_icon-ZB100.png'
    2013.12.30 08:45:16 2: SONOS1: Discover Sonosplayer 'BRIDGE' (ZB100) Software Revision 4.2 with ID 'RINCON_000E5868517601400_MR'
    2013.12.30 08:45:19 4: SONOS1: ControlProxies wurden gesichert
    2013.12.30 08:45:19 1: SONOS1: ZoneGroupState: <ZoneGroups><ZoneGroup Coordinator="RINCON_000E582B613C01400" ID="RINCON_000E582B613C01400:147"><ZoneGroupMember UUID="RINCON_000E5899F9CE01400" Location="http://192.168.1.40:1400/xml/device_description.xml" ZoneName="Living Room" Icon="x-rincon-roomicon:living" Configuration="1" Invisible="1" SoftwareVersion="24.0-71060" MinCompatibleVersion="22.0-00000" ChannelMapSet="RINCON_000E585B03CC01400:LF,LF;RINCON_000E5889C19001400:RF,RF;RINCON_000E5899F9CE01400:SW,SW" BootSeq="35"/><ZoneGroupMember UUID="RINCON_000E585B03CC01400" Location="http://192.168.1.37:1400/xml/device_description.xml" ZoneName="Living Room" Icon="x-rincon-roomicon:living" Configuration="1" SoftwareVersion="24.0-71060" MinCompatibleVersion="22.0-00000" ChannelMapSet="RINCON_000E585B03CC01400:LF,LF;RINCON_000E5889C19001400:RF,RF;RINCON_000E5899F9CE01400:SW,SW" BootSeq="38"/><ZoneGroupMember UUID="RINCON_000E5889C19001400" Location="http://192.168.1.36:1400/xml/device_description.xml" ZoneName="Living Room" Icon="x-rincon-roomicon:living" Configuration="1" Invisible="1" SoftwareVersion="24.0-71060" MinCompatibleVersion="22.0-00000" ChannelMapSet="RINCON_000E585B03CC01400:LF,LF;RINCON_000E5889C19001400:RF,RF;RINCON_000E5899F9CE01400:SW,SW" BootSeq="33"/><ZoneGroupMember UUID="RINCON_000E582B613C01400" Location="http://192.168.1.38:1400/xml/device_description.xml" ZoneName="Bedroom" Icon="x-rincon-roomicon:bedroom" Configuration="1" SoftwareVersion="24.0-71060" MinCompatibleVersion="22.0-00000" BootSeq="8"/><ZoneGroupMember UUID="RINCON_000E58C9D7E201400" Location="http://192.168.1.39:1400/xml/device_description.xml" ZoneName="Bathroom" Icon="x-rincon-roomicon:bathroom" Configuration="1" SoftwareVersion="24.0-71060" MinCompatibleVersion="22.0-00000" BootSeq="10"/></ZoneGroup><ZoneGroup Coordinator="RINCON_000E5868517601400" ID="RINCON_000E5868517601400:0"><ZoneGroupMember UUID="RINCON_000E5868517601400" Location="http://192.168.1.34:1400/xml/device_description.xml" ZoneName="BRIDGE" Icon="x-rincon-roomicon:viper" Configuration="1" Invisible="1" IsZoneBridge="1" SoftwareVersion="24.0-69180" MinCompatibleVersion="22.0-00000" BootSeq="9"/></ZoneGroup></ZoneGroups>

    und dann ist die CPU bei 100%. Ich hatte das schon immer ab und zu, aber ein neustart hat dann meistens geholfen. Jetzt scheint's immer sehr schnell auf 100% zu gehen.

    Wenn mir jemand sagen kann, wie ich sowas am besten debugge, kann ich auch noch bessere/nähere Informationen liefern (ich hab einiges Erfahrung in Programmierung, weniger in Perl-Debugging, resp. ist schon lange her ;))

    Gruss
    Titel: Antw:Sonos steuern
    Beitrag von: chregu am 30 Dezember 2013, 09:43:59
    Er scheint sich hier aufzuhängen

    if ($SONOS_ZoneGroupTopologyProxy{$udn}) {
    my $zoneGroupState = $SONOS_ZoneGroupTopologyProxy{$udn}->GetZoneGroupState()->getValue('ZoneGroupState');
    SONOS_Log undef, 1, 'ZoneGroupState: '.$zoneGroupState;

    # Ist dieser Player in einem ChannelMapSet (also einer Paarung) enthalten?
    while ($zoneGroupState =~ m/ChannelMapSet="(.*?)"/i) {

    my $mapSet = $1;
    if ($mapSet =~ m/$udnShort/i) {
    ...
    # Wenn wir einen Eintrag gefunden haben, dann können wir beenden. Die anderen sollten identische Informationen enthalten.
    last;
    }
    }

    $mapSet matched nicht auf $udnShort und drum endet das in einer endlos schlaufe.

    Fehlt bei dem while evt. einfach ein /g beim Regex, damit er da wirklich auch durch alle Resultate durchschlauft? Jedenfalls läuft's mit einem g bei mir durch jetzt gerade, ich beobachte das noch ein bisschen

    $zoneGroupState sieht so aus in einem Versuch


    <ZoneGroups>
        <ZoneGroup Coordinator="RINCON_000E582B613C01400" ID="RINCON_000E582B613C01400:147">
            <ZoneGroupMember UUID="RINCON_000E5899F9CE01400" Location="http://192.168.1.40:1400/xml/device_description.xml" ZoneName="Living Room" Icon="x-rincon-roomicon:living" Configuration="1" Invisible="1" SoftwareVersion="24.0-71060" MinCompatibleVersion="22.0-00000" ChannelMapSet="RINCON_000E585B03CC01400:LF,LF;RINCON_000E5889C19001400:RF,RF;RINCON_000E5899F9CE01400:SW,SW" BootSeq="35"/>
            <ZoneGroupMember UUID="RINCON_000E585B03CC01400" Location="http://192.168.1.37:1400/xml/device_description.xml" ZoneName="Living Room" Icon="x-rincon-roomicon:living" Configuration="1" SoftwareVersion="24.0-71060" MinCompatibleVersion="22.0-00000" ChannelMapSet="RINCON_000E585B03CC01400:LF,LF;RINCON_000E5889C19001400:RF,RF;RINCON_000E5899F9CE01400:SW,SW" BootSeq="38"/>
            <ZoneGroupMember UUID="RINCON_000E5889C19001400" Location="http://192.168.1.36:1400/xml/device_description.xml" ZoneName="Living Room" Icon="x-rincon-roomicon:living" Configuration="1" Invisible="1" SoftwareVersion="24.0-71060" MinCompatibleVersion="22.0-00000" ChannelMapSet="RINCON_000E585B03CC01400:LF,LF;RINCON_000E5889C19001400:RF,RF;RINCON_000E5899F9CE01400:SW,SW" BootSeq="33"/>
            <ZoneGroupMember UUID="RINCON_000E582B613C01400" Location="http://192.168.1.38:1400/xml/device_description.xml" ZoneName="Bedroom" Icon="x-rincon-roomicon:bedroom" Configuration="1" SoftwareVersion="24.0-71060" MinCompatibleVersion="22.0-00000" BootSeq="8"/>
            <ZoneGroupMember UUID="RINCON_000E58C9D7E201400" Location="http://192.168.1.39:1400/xml/device_description.xml" ZoneName="Bathroom" Icon="x-rincon-roomicon:bathroom" Configuration="1" SoftwareVersion="24.0-71060" MinCompatibleVersion="22.0-00000" BootSeq="10"/>
        </ZoneGroup>
        <ZoneGroup Coordinator="RINCON_000E5868517601400" ID="RINCON_000E5868517601400:0">
            <ZoneGroupMember UUID="RINCON_000E5868517601400" Location="http://192.168.1.34:1400/xml/device_description.xml" ZoneName="BRIDGE" Icon="x-rincon-roomicon:viper" Configuration="1" Invisible="1" IsZoneBridge="1" SoftwareVersion="24.0-69180" MinCompatibleVersion="22.0-00000" BootSeq="9"/>
        </ZoneGroup>
    </ZoneGroups>

    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 30 Dezember 2013, 12:24:26
    Hi Christian,

    das ist richtig, und zeigt mir, dass man nicht mehr Nachts an solchen Ausdrücken arbeiten sollte :-)
    Ich habe das bei mir nun auch eingesetzt.

    Läuft das denn jetzt mit der Anpassung sauber durch?
    Werden jetzt alle Namen korrekt ermittelt?

    Dann wäre das Thema mal durch...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: chregu am 30 Dezember 2013, 12:32:14
    Ich hatte heute Living_Room Living_Room_X und Living_Room_X_X als Namen. Es lief aber grundsätzlich durch. Ich teste später nochmals genauer.
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 30 Dezember 2013, 14:47:07
    Hi Christian,

    das bedeutet, dass die Surround-Suche immer noch nicht klappt.

    Die Sache mit den "_X"-Erweiterungen habe ich als Sicherheits-Fallback dringelassen. Damit auf jeden Fall alle Komponenten in Fhem angelegt werden.
    Eigentlich sollten aber vorher schönere Namen erzeugt werden...

    Ich schaue da noch mal rein... das muss ja zu finden sein...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: chregu am 30 Dezember 2013, 16:43:56
    ich hab sie dann einfach von Hand umbenannt ;) jedenfalls gute Idee mit dem Fallback.
    Titel: Antw:Sonos steuern
    Beitrag von: bapou am 30 Dezember 2013, 19:37:20
    Hallo Reiner,

    vor einiger Zeit hatte ich einmal ein Weckzeit Feature angefragt. Dieses hast du dann schnell implementiert aber ich hatte mich lange nicht mehr
    um FHEM und SONOS gekuemmert. Nun in der Weihnachtszeit habe ich es eingebaut und verwende nun die Weckzeitauslesung aus SONOS um erfolgreich um damit eine Weckbeleuchtung + Heizungsteuerung auszuloesen. Es funktioniert sehr gut!
    Herzlichen Dank für deine Arbeit.

    Gruss,
    Thom
    Titel: Antw:Sonos steuern
    Beitrag von: herman am 30 Dezember 2013, 22:08:50

    Gehen wir doch mal Schrittweise durch:
    Du versuchst ja Gruppen zu bilden, bzw. aufzulösen. Bitte stell doch im ersten Schritt sicher, dass alle Player von Fhem erkannt und angelegt wurden.
    Danach kannst du bitte mal ein "get Sonos Groups" ausführen. Da solltest du deine Sonos-Player in ihren Gruppen angezeigt bekommen.
    Desweiteren sollte am Sonos-Device das Reading "ZoneGroupState" gefüllt sein, das sollte aber der Fall sein, wenn die Ausgabe von "get Sonos Groups" erfolgreich war...

    Außerdem solltest du auf jeden Fall sicherstellen, dass du wirklich nur ein Sonos-Device konfiguriert hast. Sonst dürfte da auch einiges schief gehen...

    Und du solltest dem ganzen nach einem Neustart etwas Zeit geben, die Player zu erkennen und zu aktualisieren. Das kann schon mal 30 Sekunden dauern (ja nach Maschine auch länger, oder natürlich auch kürzer :-).

    Klappt das denn schon mal?


    Hallo Reiner,

    prinzipiell funktioniert alles wenn ich FHEM neu starte und ein paar Minuten warte. Ich verlasse dann das Haus und starte ein Skript das alle Steckdosen ausschaltet. Abends funktioniert das selbe Skript (einschalten der Steckdosen und mit at-Befehl nach 5 Minuten Ansteuern der Sonoskomponenten) nicht. Ich muss FHEM neu starten, manchmal sogar den SUB-Sonos-Prozess killen und dann FHEM neu starten.
    Das Problem ist nicht deterministisch. Ich kann das "weggehen" und "sonos starten" Skript mehrfach hintereinander starten, so dass es funktioniert.

    Gibt es eine Möglichkeit die Ausgabe des Sub-Prozesses zu loggen, so dass Fehlermeldungen nachvollzogen werden können?

    Viele Grüße,
    Merhan
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 30 Dezember 2013, 22:48:56
    Hallo Merhan,

    der Subprozess gibt mit dem Fhem-Loglevel seine Ausgaben direkt auf der Konsole aus. Das bedeutet, dass du die Ausgabe in eine Datei umlenken kannst...

    Wenn du alles sehen möchtest, musst du den Loglevel auf 5 hochdrehen...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 30 Dezember 2013, 22:53:57
    Hallo Christian,

    da müsste es während des Erkennungsprozesses eine Log-Ausgabe mit "Found HTSatChanMapSet:" geben. Kannst du mir diese ganzen Ausgaben mal zukommen lassen?

    Ich muss diesem kleinen Fehler im regulären Ausdruck auf Spur kommen...

    Danke schon mal...

    Grüße
    Reiner

    P.S.: Thom, schön dass es bei dir funktioniert :-)
    Titel: Antw:Sonos steuern
    Beitrag von: chregu am 30 Dezember 2013, 23:04:41
    Hallo Reiner

    Ich hab leider noch gar kein Playbar, "nur" eine Zone mit 2xPlay:5 und 1x Sub (neben 2 anderen einfacheren Zonen), drum kann ich dir da leider nicht weiterhelfen.
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 30 Dezember 2013, 23:24:36
    Hi Christian,

    ok, dann hast du doch eine analoge Ausgabe mit "Found ChannelMapSet:" .
    Das Problem mit der Benennung ist das gleiche, da der reguläre Ausdruck genauso aufgebaut ist.

    Kannst du mir dazu die Ausgabe zusenden?

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: chregu am 31 Dezember 2013, 09:37:26
    Hallo Reiner

    Hier die entsprechenden Stellen aus meinem Log (hab nochmals alle SONOS Einträge gelöscht und neu generieren lassen):

    console.log:2013.12.31 09:32:29 1: SONOS1: Found ChannelMapSet: RINCON_000E585B03CC01400:LF,LF;RINCON_000E5889C19001400:RF,RF;RINCON_000E5899F9CE01400:SW,SW
    console.log-2013.12.31 09:32:29 1: SONOS1: Retrieved TopoType: _SW
    console.log-2013.12.31 09:32:29 4: SONOS1: Retrieve Current Volumelevels. Master: "5", Balance: "0"
    console.log-2013.12.31 09:32:29 1: SONOS1: Successfully autocreated SonosPlayer 'Living_Room' (Sub) Software Revision 4.2 with ID 'RINCON_000E5899F9CE01400_MR'
    console.log-2013.12.31 09:32:29 2: SONOS1: SonosPlayer 'Living_Room' is now updated

    console.log:2013.12.31 09:32:58 1: SONOS1: Found ChannelMapSet: RINCON_000E585B03CC01400:LF,LF;RINCON_000E5889C19001400:RF,RF;RINCON_000E5899F9CE01400:SW,SW
    console.log-2013.12.31 09:32:58 1: SONOS1: Retrieved TopoType: _RF
    console.log-2013.12.31 09:32:58 4: SONOS1: Retrieve Current Volumelevels. Master: "5", Balance: "0"
    console.log-2013.12.31 09:32:58 2: SONOS1: New Fhem-Name neccessary for 'Living Room' -> 'Sonos_Living_Room_X', ID 'RINCON_000E5889C19001400_MR'
    console.log-2013.12.31 09:32:58 1: SONOS1: Successfully autocreated SonosPlayer 'Living_Room_X' (S5) Software Revision 4.2 with ID 'RINCON_000E5889C19001400_MR'
    console.log-2013.12.31 09:32:58 2: SONOS1: SonosPlayer 'Living_Room_X' is now updated

    console.log:2013.12.31 09:33:20 1: SONOS1: Found ChannelMapSet: RINCON_000E585B03CC01400:LF,LF;RINCON_000E5889C19001400:RF,RF;RINCON_000E5899F9CE01400:SW,SW
    console.log-2013.12.31 09:33:20 1: SONOS1: Retrieved TopoType: _LF
    console.log-2013.12.31 09:33:20 4: SONOS1: Retrieve Current Volumelevels. Master: "5", Balance: "0"
    console.log-2013.12.31 09:33:20 2: SONOS1: New Fhem-Name neccessary for 'Living Room' -> 'Sonos_Living_Room_X', ID 'RINCON_000E585B03CC01400_MR'
    console.log-2013.12.31 09:33:20 2: SONOS1: New Fhem-Name neccessary for 'Living Room' -> 'Sonos_Living_Room_X_X', ID 'RINCON_000E585B03CC01400_MR'
    console.log-2013.12.31 09:33:20 1: SONOS1: Successfully autocreated SonosPlayer 'Living_Room_X_X' (S5) Software Revision 4.2 with ID 'RINCON_000E585B03CC01400_MR'
    console.log-2013.12.31 09:33:20 2: SONOS1: SonosPlayer 'Living_Room_X_X' is now updated


    Andere Frage: Hast du irgendwo ein öffentliches SVN oder GIT Repo deines Codes? Wär noch spannend, mitzuverfolgen, was du so änderst, um besser und schneller in den Code reinzukommen (und evt. auch mal mithelfen)

    Gruss

    christian
    Titel: Antw:Sonos steuern
    Beitrag von: chregu am 31 Dezember 2013, 11:12:05
    Hab noch nen Fehler entdeckt.

    Zeile 948, in der SONOS_Set funktion ist is_array benutzt, die funktion gibt's aber nicht in Perl. Müsste wohl heissen:

    my $reftype  = reftype $elemHash;
    if (!defined($reftype) || $reftype ne 'HASH') {


    Das is_array führte manchmal bei einem
    set Sonos Groups [Sonos_Bedroom, Sonos_Bathroom, Sonos_Living_Room]
    zum Absturz vom ganzen FHEM (es ist nicht wirklich immer reproduzierbar)

    Gruss

    Christian
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 31 Dezember 2013, 11:53:49
    Hi Christian,

    ich habe den Code in einem lokalen Repository bei mir im Haus liegen, aber leider nicht öffentlich erreichbar.

    Ursprünglich wollte ich das ja einfach in das SVN von Fhem legen, das ist aber daran gescheitert, dass es Rudi und Martin zu groß und zu unrelevant für die meisten Benutzer erschien. Daraufhin habe ich das ja bei mir auf den Webserver gelegt, und über den Thirdparty-Mechanismus eingebunden...

    Danke für die "is_array"-Geschichte. Das ist wohl ein gedankliches Überbleibsel aus PHP gewesen :-)
    Ich habs korrigiert.

    Das mit der Log-Ausgabe hat schon mal geholfen, Danke. Ich forsche nochmal weiter, und melde mich dann wieder...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 31 Dezember 2013, 12:05:22
    Hi Christian,

    soo, ich hätte da mal einen weiteren Versuch. Könntest du nochmal einen kurzen Test durchführen?

    Danke schon mal...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: chregu am 31 Dezember 2013, 12:44:47
    Ja, scheint zu funktionieren, hab jetzt

    Sonos_Living_Room_RF, Sonos_Living_Room_LF, Sonos_Living_Room_SW

    generiert gekriegt. Vielen Dank.
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 31 Dezember 2013, 13:55:03
    Hi Christian,

    leider noch nicht ganz. Du dürftest jetzt kein AlbumArt-Element haben.
    Einer der Komponenten sollte als sogenannter "Master" angelegt werden.
    Dieser erhält den normalen Raumnamen als Komponentennamen und zu diesem wird auch der AlbumArt-Eintrag angelegt. Damit soll bereits bei der Namensvergabe klar sein, welches der "wichtige" Player ist...

    Ich habe mal wieder eine Änderung gemacht... Sorry, aber ich hoffe, das es das bald war...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: chregu am 31 Dezember 2013, 14:11:38
    Leider immer noch dieselbe Antwort. Was mit aufgefallen ist, ich hab folgendes XML, wenn ich mehrere Zonnen zu einer Gruppe zusammenfasse:


    <ZoneGroups>
        <ZoneGroup Coordinator="RINCON_000E5868517601400" ID="RINCON_000E5868517601400:0">
            <ZoneGroupMember UUID="RINCON_000E5868517601400" Location="http://192.168.1.34:1400/xml/device_description.xml" ZoneName="BRIDGE" Icon="x-rincon-roomicon:viper" Configuration="1" Invisible="1" IsZoneBridge="1" SoftwareVersion="24.0-69180" MinCompatibleVersion="22.0-00000" BootSeq="9"/>
        </ZoneGroup>
        <ZoneGroup Coordinator="RINCON_000E582B613C01400" ID="RINCON_000E582B613C01400:147">
            <ZoneGroupMember UUID="RINCON_000E5899F9CE01400" Location="http://192.168.1.40:1400/xml/device_description.xml" ZoneName="Living Room" Icon="x-rincon-roomicon:living" Configuration="1" Invisible="1" SoftwareVersion="24.0-71060" MinCompatibleVersion="22.0-00000" ChannelMapSet="RINCON_000E585B03CC01400:LF,LF;RINCON_000E5889C19001400:RF,RF;RINCON_000E5899F9CE01400:SW,SW" BootSeq="40"/>
            <ZoneGroupMember UUID="RINCON_000E585B03CC01400" Location="http://192.168.1.37:1400/xml/device_description.xml" ZoneName="Living Room" Icon="x-rincon-roomicon:living" Configuration="1" SoftwareVersion="24.0-71060" MinCompatibleVersion="22.0-00000" ChannelMapSet="RINCON_000E585B03CC01400:LF,LF;RINCON_000E5889C19001400:RF,RF;RINCON_000E5899F9CE01400:SW,SW" BootSeq="43"/>
            <ZoneGroupMember UUID="RINCON_000E582B613C01400" Location="http://192.168.1.38:1400/xml/device_description.xml" ZoneName="Bedroom" Icon="x-rincon-roomicon:bedroom" Configuration="1" SoftwareVersion="24.0-71060" MinCompatibleVersion="22.0-00000" BootSeq="8"/>
            <ZoneGroupMember UUID="RINCON_000E58C9D7E201400" Location="http://192.168.1.39:1400/xml/device_description.xml" ZoneName="Bathroom" Icon="x-rincon-roomicon:bathroom" Configuration="1" SoftwareVersion="24.0-71060" MinCompatibleVersion="22.0-00000" BootSeq="10"/>
            <ZoneGroupMember UUID="RINCON_000E5889C19001400" Location="http://192.168.1.35:1400/xml/device_description.xml" ZoneName="Living Room" Icon="x-rincon-roomicon:living" Configuration="1" Invisible="1" SoftwareVersion="24.0-71060" MinCompatibleVersion="22.0-00000" ChannelMapSet="RINCON_000E585B03CC01400:LF,LF;RINCON_000E5889C19001400:RF,RF;RINCON_000E5899F9CE01400:SW,SW" BootSeq="35"/>
        </ZoneGroup>
    </ZoneGroups>

    Der Coordinator ist da aus ner anderen Zone, drum matcht der wohl nicht.

    Aber auch wenn ich die Zonen trenne und alles nochmals starte, will er nicht, das XML sieht dann so aus


    <ZoneGroups>
        <ZoneGroup Coordinator="RINCON_000E585B03CC01400" ID="RINCON_000E582B613C01400:147">
            <ZoneGroupMember UUID="RINCON_000E5899F9CE01400" Location="http://192.168.1.40:1400/xml/device_description.xml" ZoneName="Living Room" Icon="x-rincon-roomicon:living" Configuration="1" Invisible="1" SoftwareVersion="24.0-71060" MinCompatibleVersion="22.0-00000" ChannelMapSet="RINCON_000E585B03CC01400:LF,LF;RINCON_000E5889C19001400:RF,RF;RINCON_000E5899F9CE01400:SW,SW" BootSeq="40"/>
            <ZoneGroupMember UUID="RINCON_000E585B03CC01400" Location="http://192.168.1.37:1400/xml/device_description.xml" ZoneName="Living Room" Icon="x-rincon-roomicon:living" Configuration="1" SoftwareVersion="24.0-71060" MinCompatibleVersion="22.0-00000" ChannelMapSet="RINCON_000E585B03CC01400:LF,LF;RINCON_000E5889C19001400:RF,RF;RINCON_000E5899F9CE01400:SW,SW" BootSeq="43"/>
            <ZoneGroupMember UUID="RINCON_000E5889C19001400" Location="http://192.168.1.35:1400/xml/device_description.xml" ZoneName="Living Room" Icon="x-rincon-roomicon:living" Configuration="1" Invisible="1" SoftwareVersion="24.0-71060" MinCompatibleVersion="22.0-00000" ChannelMapSet="RINCON_000E585B03CC01400:LF,LF;RINCON_000E5889C19001400:RF,RF;RINCON_000E5899F9CE01400:SW,SW" BootSeq="35"/>
        </ZoneGroup>
        <ZoneGroup Coordinator="RINCON_000E582B613C01400" ID="RINCON_000E582B613C01400:148">
            <ZoneGroupMember UUID="RINCON_000E582B613C01400" Location="http://192.168.1.38:1400/xml/device_description.xml" ZoneName="Bedroom" Icon="x-rincon-roomicon:bedroom" Configuration="1" SoftwareVersion="24.0-71060" MinCompatibleVersion="22.0-00000" BootSeq="8"/>
        </ZoneGroup>
        <ZoneGroup Coordinator="RINCON_000E58C9D7E201400" ID="RINCON_000E58C9D7E201400:149">
            <ZoneGroupMember UUID="RINCON_000E58C9D7E201400" Location="http://192.168.1.39:1400/xml/device_description.xml" ZoneName="Bathroom" Icon="x-rincon-roomicon:bathroom" Configuration="1" SoftwareVersion="24.0-71060" MinCompatibleVersion="22.0-00000" BootSeq="10"/>
        </ZoneGroup>
        <ZoneGroup Coordinator="RINCON_000E5868517601400" ID="RINCON_000E5868517601400:0">
            <ZoneGroupMember UUID="RINCON_000E5868517601400" Location="http://192.168.1.34:1400/xml/device_description.xml" ZoneName="BRIDGE" Icon="x-rincon-roomicon:viper" Configuration="1" Invisible="1" IsZoneBridge="1" SoftwareVersion="24.0-69180" MinCompatibleVersion="22.0-00000" BootSeq="9"/>
        </ZoneGroup>
    </ZoneGroups>

    Was mir auffällt, ist dass die beiden Player, die nicht coordinator sind, das attribute  Invisible="1" haben, evt. hilft das weiter beim Parsen.

    Gruss

    christian
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 31 Dezember 2013, 14:37:31
    Hi Christian,

    das mit dem Invisible war auch meine erste Überlegung gewesen, und wenn ich mir die Problematik mit den Gruppierten Gruppenplayern ansehe, ist das wohl auch die einzig Gangbare Lösung.
    Ich habe die Erkennung des "Masters" nun auf das fehlende Invisible-Flag umgebaut (Ich musste da noch eine Sonderlocke für die ZoneBridge einbauen, die auch Invisible ist :-).

    Könntest du nochmal?

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: chregu am 31 Dezember 2013, 14:48:36
    Cool, jetzt hat's geklappt. Vielen Dank.
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 31 Dezember 2013, 16:12:18
    Hi Christian,

    super, dann haben wir das schon mal vom Tisch. Jetzt fehlt nur noch das Surround-System.
    Da das aber analog programmiert ist, sollte das nun auch laufen...

    @Dani: Kannst du das denn noch kurz testen?
    Dann können wir das vielleicht bald releasen...

    Danke schon mal...
    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: eppi am 31 Dezember 2013, 16:49:03
    Hallo Reiner
    Zitat
    @Dani: Kannst du das denn noch kurz testen?
    Dann können wir das vielleicht bald releasen...
    Gerne, klar  ;)
    Mein Naming sieht nach dem Update wie folgt aus:
    list Sonos_.*
    Sonos_Bad
    Sonos_Kueche
    Sonos_Wohnzimmer
    Sonos_Wohnzimmer_LR
    Sonos_Wohnzimmer_RR
    Sonos_Wohnzimmer_SW

    Und mein Server hat folgendes Reading:
    list Sonos
    Internals:
       CFGFN      /opt/fhem/FHEM/fhem_music.cfg
       DEF        localhost:4711 30
       DeviceName localhost:4711
       FD         62
       INTERVAL   30
       NAME       Sonos
       NR         584
       PARTIAL   
       STATE      opened
       TYPE       SONOS
       Readings:
         2013-12-31 16:40:51   ZoneGroupState  <ZoneGroups><ZoneGroup Coordinator="RINCON_000E58BA006601400" ID="RINCON_000E58BA006601400:49"><ZoneGroupMember UUID="RINCON_000E58BA006601400" Location="http://192.168.2.65:1400/xml/device_description.xml" ZoneName="Wohnzimmer" Icon="x-rincon-roomicon:living" Configuration="1" SoftwareVersion="24.0-71060" MinCompatibleVersion="22.0-00000" HTSatChanMapSet="RINCON_000E58BA006601400:LF,RF;RINCON_000E58C4C97401400:RR;RINCON_000E58C5408201400:LR;RINCON_000E589ABC9A01400:SW" BootSeq="8"><Satellite UUID="RINCON_000E589ABC9A01400" Location="http://192.168.2.45:1400/xml/device_description.xml" ZoneName="Wohnzimmer" Icon="x-rincon-roomicon:living" Configuration="1" Invisible="1" SoftwareVersion="24.0-71060" MinCompatibleVersion="22.0-00000" HTSatChanMapSet="RINCON_000E58BA006601400:LF,RF;RINCON_000E589ABC9A01400:SW" BootSeq="4"/><Satellite UUID="RINCON_000E58C4C97401400" Location="http://192.168.2.51:1400/xml/device_description.xml" ZoneName="Wohnzimmer" Icon="x-rincon-roomicon:living" Configuration="1" Invisible="1" SoftwareVersion="24.0-71060" MinCompatibleVersion="22.0-00000" HTSatChanMapSet="RINCON_000E58BA006601400:LF,RF;RINCON_000E58C4C97401400:RR" BootSeq="6"/><Satellite UUID="RINCON_000E58C5408201400" Location="http://192.168.2.38:1400/xml/device_description.xml" ZoneName="Wohnzimmer" Icon="x-rincon-roomicon:living" Configuration="1" Invisible="1" SoftwareVersion="24.0-71060" MinCompatibleVersion="22.0-00000" HTSatChanMapSet="RINCON_000E58BA006601400:LF,RF;RINCON_000E58C5408201400:LR" BootSeq="4"/></ZoneGroupMember></ZoneGroup><ZoneGroup Coordinator="RINCON_000E58C4F08801400" ID="RINCON_000E58C4F08801400:206"><ZoneGroupMember UUID="RINCON_000E58C4F08801400" Location="http://192.168.2.64:1400/xml/device_description.xml" ZoneName="Bad" Icon="x-rincon-roomicon:bathroom" Configuration="1" SoftwareVersion="24.0-71060" MinCompatibleVersion="22.0-00000" BootSeq="7"/></ZoneGroup><ZoneGroup Coordinator="RINCON_000E58F3272E01400" ID="RINCON_000E58F3272E01400:49"><ZoneGroupMember UUID="RINCON_000E58F3272E01400" Location="http://192.168.2.46:1400/xml/device_description.xml" ZoneName="Küche" Icon="x-rincon-roomicon:kitchen" Configuration="1" SoftwareVersion="24.0-71060" MinCompatibleVersion="22.0-00000" BootSeq="4"/></ZoneGroup></ZoneGroups>
    Attributes:
       pingType   syn
       room       Sonos
    Aus meiner Sicht ist nun alles optimal und funktioniert perfekt! Nochmals herzlichen Dank an dieser Stelle für deine Arbeit, great Job!! :D
    Gruss Dani
    Titel: Antw:Sonos steuern
    Beitrag von: chregu am 31 Dezember 2013, 17:06:06
    Hallo Rainer

    Hier noch ein anderer Error, den ich öfters kriege. Ich schalte den Strom meiner Sonos Geräte aus, wenn ich weggehe und wieder an, wenn ich zurückkomme. Da passiert öfters, dass ich ein

    Thread 1 terminated abnormally: multiple roots, wrong element 'dataType'

    habe (Unterschiedliche Errormeldungen, aber klingt immer noch XML errors)

    Ich nehm an, die kommen vom package UPnP::Common::Parser in FHEM/lib/UPnP/Common.pm und dem package UPnP::Common::Parser dort, resp. eigentlich dem XML::Parser::Lite package, der die'd, wenn das XML invalid ist und das UPnP package fängt das nicht ab. Ich hab auf die schnelle keine Ahnung, ob man das von "ausserhalb", also von deinem Code aus irgendwie abfangen kann, laut http://perl-xml.sourceforge.net/faq/#error_handling müsste man das mit einem eval machen. Aber eben, bei all den Callbacks bin ich grad überfordert.

    Lass dir dadurch nicht den Release vermiesen, ich kann für den Moment damit leben, aber falls du ne Idee hast, wo ich genauer hingucken müsste, kann ich mich auch mal dahinter setzen

    Gruss

    Christian
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 31 Dezember 2013, 21:41:20
    Hallo zusammen,

    tataa...
    Das Weihnachtsrelease, wenigstens noch in diesem Jahr :-)

    Wie immer hier der Changelog dazu (Version 2.4): Viel passiert, lange hat's gedauert... trotzdem noch dieses Jahr geschafft :-)

    Sehr interessant dürften zum einen die Namensgebung bei Surround- und Paarsystemen, und zum anderen die Geschichte mit der "Disappeared"-Erkennung sein.
    Ich habe eine Möglichkeit gefunden, wie ich dem Sonos-System mitteilen kann, das ein Player weg ist (das bedingt aber, das mindestens ein Player oder eine Bridge übrig ist, u.U. darf auch nur ein Player auf einmal verschwinden, dass müsste noch getestet werden). Danach sollte der Player aus den Zonenlisten der Controller verschwinden...

    Ach ja, Installation wie immer:
    update thirdparty http://fhem.lmsoft.de/sonos sonos

    Viel Spaß damit, guten Rutsch ins neue Jahr und alles gute...
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: FHEM-Freak am 01 Januar 2014, 01:40:20
    Reiner dir auch alles Gute im neuen Jahr und natürlich allen Fhem begeisterten.
    Danke für deine tolle Arbeit.
    Update hat funktioniert und läuft.
    Titel: Antw:Sonos steuern
    Beitrag von: det. am 01 Januar 2014, 02:40:57
    Hallo Reiner
    Danke für Deine super Arbeit und viel Erfolg im Jahr 2014! Update läuft und SONOS macht was es soll.
    Titel: Antw:Sonos steuern
    Beitrag von: Will am 01 Januar 2014, 09:02:39
    Wahnsinn was aus dem thread geworden ist - alle Erwartungen übergriffen. Für mich DAS knüllermodul in fhem. Wertet die Sonos installation noch einmal auf.
    Ein großes danke an reiner und alle die hier aktiv mitarbeiten. Bei mir läuft das Modul schon seit längerem unauffällig. Grüße W

    Sent from my Nexus 7 using Tapatalk

    Titel: Antw:Sonos steuern
    Beitrag von: Will am 01 Januar 2014, 21:24:36
    Hallo reiner, da du dich jetzt intensivst mit dem sonos Protokoll beschäftigt hast: denkst du es ist möglich mit einem rpi ein sonos zu emulieren? Ich nutze dein Modul für durchsagen (funktioniert prima) , will jetzt aber nicht für Überfall einen sonos player kaufen wenn es nur um durchsagen geht- einen raspi mit aktivlautsprecher  schon eher. Denkbar?

    Danke.

    Sent from my Nexus 7 using Tapatalk

    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 01 Januar 2014, 22:36:08
    Hi Will,

    ich hatte am Anfang auch mal diesen Gedanken, dass es cool wäre, sowas zu haben. Aber Abseits der UPnP-Steuerung zu den Controllern (und Fhem :-) kommunizieren die Player auf irgendeine, mir unbekannte, Art und Weise auch miteinander. Da wird abgestimmt, koordiniert und gesteuert...

    Vielleicht könnte man noch eine Schnittstelle bauen, die sich dann in einem Controller als Player melden könnte. Aber ob das dann auch zusammen mit den anderen Playern laufen würde, weiss ich auch nicht...

    Das wird von meiner Seite aus eher nix, da der Aufwand doch sehr hoch sein dürfte...
    Aber für deine Anwendung gäbe es ja auch noch andere Lösungen, das wäre dann nur nicht von den Sonos-Controllern aus steuerbar...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: JoeALLb am 01 Januar 2014, 23:37:18
    Hallo Reiner,

    Ich schalte mit Funksteckdosen meine Sonos ein und aus.
    Wenn ich in den oberen Stock gehe,  schalte ich die Steckdosen unten im Hausgang über einen Funksteckdosen an.
    Wie Steuer ich denn am besten,  dass nach dem Booten direkt etwas abgespielt wird? Kann ich vor dem Booten irgendwie schon irgendwie eine Gruppe zur Bildung definieren? Kann ich den appeared-funktion dafür verwenden?  Am schönsten wäre es,  wenn der Player schon verfügbar wäre und ich ihm schon Befehle übergeben könnte,  die er dann direkt nach dem Booten  übernimmt. Habe ich da einen Denkfehler?

    Vielen Dank jedenfalls für alles,  es funktioniert seit dem update Alles bisher getestete bestens!!  Echt tolle Arbeit!

    LG Joe
    Titel: Antw:Sonos steuern
    Beitrag von: Christoph am 01 Januar 2014, 23:58:19
    Ja das funktioniert siehe Wiki-Beispiel  ;)


    define Sonos_Wohnzimmer_Appeared_Notify notify Sonos_Wohnzimmer:presence:.appeared { \
    fhem "set Sonos_Wohnzimmer LoadPlaylist R.%%20Spielliste" ;; \
    fhem "set Sonos_Wohnzimmer Volume 15" ;; \
    fhem "set Sonos_Wohnzimmer Track random" ;; \
    fhem "set Sonos_Wohnzimmer Play" \
    }
    Titel: Antw:Sonos steuern
    Beitrag von: JoeALLb am 02 Januar 2014, 10:27:01
    Hallo Christoph,

    Danke,  das Beispiel kenne ich.  Ich meinte jedoch eher,  ob ich etwas tun kann,  damit eben nicht die einprogrammiert Play Liste abgespielt wird,  sondern etwas,  was ich schon vorher definiert habe.

    Ich behelfe mir im Moment über folgenden Weg:
    Ich starte in der Küche das (Radio-) Programm,  das ich gerne hätte, und baue in dem "appeared" Script im Badezimmer eine Gruppe mit der Küche auf,  um direkt danach die Küche wieder aus der Gruppe zu entfernen und auszuschalten.
    Dann spielt die Musik schon,  bis ich im Bad angekommen bin... 

    Gesendet von meinem Xperia Pro mit Tapatalk

    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 02 Januar 2014, 15:38:24
    Hi JoeALLb,

    du verwirrst uns :-)

    Ein Player verliert beim Trennen vom Stromnetz alle Informationen bzgl. seiner Abspielliste und dem aktuellen Titel.
    Wenn du also einen bestimmten Zustand nach dem Einschalten haben möchtest, so musst du ihn dir über das oben erwähnte Event erzeugen.
    Was du in dem Event machst bleibt ja dir überlassen.

    Du schriebst, dass du gerne einen Radiosender starten möchtest. Dann kannst du entweder direkt einen Radiosender programmieren (wie die Playliste in dem Beispiel), oder den aktuell laufenden Titel eines anderen Zoneplayers rüberkopieren und starten...
    Das bedeutet aber, dass dieser Quell-Player auch einen aktuellen Titel haben muss (und vor allem auch angeschaltet sein muss). Was soll passieren, wenn das mal nicht der Fall ist? usw. Da muss man u.U. einige Eventualitäten abfangen.

    Einfacher ist natürlich das direkte Anstarten eines, zum Programmierzeitpunkt bekannten, Radiosenders.
    Auch solltest du beachten, dass das Starten eines Zoneplayers ca. 30 sekunden in Anspruch nimmt. Zzgl. der Zeit, die zum Starten des Radiosenders benötigt wird.

    Hat dir das denn jetzt etwas weitergeholfen?

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: det. am 02 Januar 2014, 15:54:50
    Hallo Reiner, hallo JoeALLb,
    Ich kopiere heute nach Feierabend mal meine Zeilen zum Playerstart mit Schalten über FS20 Steckdose und automatischen Direktstart von Radio Paradise hier rein. Das hat eine Weile gedauert, bis ich begriffen habe das der presence Status des Players da wenig zielführend ist - sondern einfach eine Minute Wartezeit zum Playerstart die Lösung ist. Jetzt funktioniert das dafür aber dauerhaft prima:
    define Sonos_Notify notify Medien:on {\
    fhem "define SonosStart at +00:01 set Sonos_Wohnzimmer PlayURI aac://stream-tx4.radioparadise.com:80/aac-128";;\
    fhem "set Sonos_Wohnzimmer Volume 15";;\
    fhem "set Sonos_Wohnzimmer Play";;\
    fhem "set Sonos_Wohnzimmer Mute off"\
    }
    Titel: Antw:Sonos steuern
    Beitrag von: John am 02 Januar 2014, 16:19:55
    Hallo Reiner

    gibt es zum Beitrag #557 schon eine Lösung ?
    http://forum.fhem.de/index.php/topic,10033.msg118474.html#msg118474 (http://forum.fhem.de/index.php/topic,10033.msg118474.html#msg118474)

    Ich habe inzwischen die neueste Version installiert. (#  Version 2.4 - December, 2013)

    Der Fehler ist nach wie vor vorhanden mit der schon in #557 beschriebenen Meldung.
    Wenn ich die Datei aus dem Verzeichnis lösche, erkennt dies das Modul und reagiert mit einer stimmigen Fehlermeldung.

    Die Zugriffsrechte sehen wie folgt aus:
    drwxrwxr-x 2 fhem dialout    4096 Jan  2 16:15 .
    drwxr-xr-x 3 root root       4096 Jan  1 14:12 ..
    -rw-rw---- 1 fhem dialout 3330319 Jan  1 14:46 05 - Titel 5.ogg
    -rw-rw-r-- 1 fhem dialout     749 Jan  1 16:56 john.m3u
    -rw-r--r-- 1 pi   pi        20480 Jan  2 16:05 RINCON_000E58CBFB7C01400_MR_Speak.mp3

    User pi ist Mitglied der Gruppe dialout.

    John
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 02 Januar 2014, 16:33:31
    Hi John,

    ich hatte mal nach der Meldung "Unpassender IOCTL (I/O-Control) für das Gerät" gegoogled, und kein hilfreichen Lösungs-Informationen gefunden. Es sieht nach einer Meldung aus, die aus einer sehr tiefen Perl-Schicht kommt, auf die man nur wenig bis gar keinen Einfluss hat.

    Kannst du mal ein kleines Test-Perl Skript für das Fhem-Gerät schreiben, womit du einfach versuchst die Datei zu öffnen.
    z.B.:
    open(FILE, '<john.m3u');
    if ($!) {
      print "Fehler beim Öffnen der Datei: $!";
      return;
    };

    binmode(FILE, ':encoding(utf-8)');
    while (<FILE>) {
      print $_;
    }
    close FILE;
    Das öffnet die Datei (Pfad noch mit angeben, aber das Kleiner-Zeichen stehen lassen) zum Lesen, und gibt sie zeilenweise aus. Das entspricht ungefähr meinem Code. Der Fehler tritt aber ja bereits beim open auf..
    Dann könntest du schon mal den Fhem-Overhead ausschließen...

    Ansonsten könntest du auch versuchen dein Perl zu aktualisieren...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: JoeALLb am 02 Januar 2014, 17:55:18
    Grüß euch,

    Wollte natürlich nicht verwirren.  Ich möchte eben keinen starr programmierten Sender beim starten einschalten,  sondern noch die Möglichkeit haben,  es während dem Booten festzulegen.
    Genau aus diesem Grund schalte ich derzeit in der Küche das Programm ein,  das ich im Bad gerne hätte, und kopiere dieses über das hinzufügen des Bades zur Gruppe Küche,  wenn appeared ausgelöst wird.  Funktioniert soweit auch,  ich wollte nur fragen,  ob es vielleicht einen einfacheren weg gibt...  Bsp.  Konnte der Player des Bades direkt nach dem starten angezeigt werden,  bevor er tatsächlich erscheint!?!?!
    Titel: Antw:Sonos steuern
    Beitrag von: John am 03 Januar 2014, 00:08:54
    Hallo Reiner,
    zu deinem Vorschlag in Beitrag #606 habe ich folgende funktionierende Lösung gefunden:

    open(FILE, '<john.m3u')  or die "Fehler beim Öffnen: $!\n";
    binmode(FILE, ':encoding(utf-8)');
    while (<FILE>) {
      print $_;
    }
    close FILE;

    Problem war:
    Die Spezial-Variable $! darf nur abgefragt werden, nachdem ein Fehler aufgetreten ist.
    Wenn keiner auftritt, kommt es genau durch die Abfrage von $! zur besagten Fehlermeldung.

    Werde das noch im Sonos-Code testen.

    Ergebnis:
    Zitat
       
    LoadPlaylist: Queue successfully emptied. Added 5 entries from file "/mnt/SonosSpeak/john.m3u". There are now 5 entries in Queue. Startlist: Success!.

    Code:
    if (!open(FILE, '<'.$1))  # john
           {
      SONOS_MakeSigHandlerReturnValue($udn, 'LastActionResult', ucfirst($workType).': Error during opening file "'.$1.'": '.$!);
    return;
          };


    John
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 03 Januar 2014, 00:31:05
    Hi John,

    na das ist ja mal lustig. Auf allen möglichen Plattformen bei mir und anderen lief das normal durch.
    Da muss man erstmal drauf kommen, dass man das nicht tun darf...
    Wobei diese Fehler-Meldung auch durchaus zielführender sein dürfte, oder?

    Danke für die Hilfe, ich habe es in den Code übernommen.

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: PumpkinEater am 03 Januar 2014, 09:58:23
    Hallo Reiner,
    mit der neuen Version sind die von mir berichteten Fehlermeldungen (#519, "Fehlerhafter Aufruf von ...") nun verschwunden. Alles läuft prima. Herzlichen Dank für die super Arbeit.

    Noch eine Frage:
    Ich möchte vor Durchsagen einen Ton, Dreiklang oder ähnliches abspielen (als mp3-Datei), damit bei der Durchsage meine Familie nicht vor Schreck vom Stuhl fällt  ;). Wie mache ich das am besten?  Erste Idee wäre, einen "PlayURITemp"-Aufruf zu senden, gefolgt von dem eigentlichen Speak-Befehl. Aber vielleicht geht das ja auch noch einfacher (?).

    Gruß
    Peter
    Titel: Antw:Sonos steuern
    Beitrag von: herman am 03 Januar 2014, 12:58:12
    Hallo Reiner,

    seid dem letzten Update habe ich keine Abstürze mehr. Das Modul ist wirklich ein riesen Mehrwert für mich.

    Ich habe noch ein seltsames Phänomen: Nach StopAll, Neugruppieren, at +3sek Bedenkzeit und  anschließendem StartFavourite hatte ich mehrfach die Situation, dass zwar alle Befehle erfolgreich waren und auch der Controller auf dem IPAD die Gruppe korrekt angezeigt hat, jedoch ein oder mehrere Memberplayer nicht gespielt haben. Erst nach einem Entfernen und Neuhinzufügen in die Gruppe kamen Töne aus dem Lautsprecher. Ist jemandem das Verhalten bekannt?

    Viele Grüße,
    Merhan
    Titel: Antw:Sonos steuern
    Beitrag von: chregu am 05 Januar 2014, 16:06:17
    Da ich wie schon gesagt ab und zu "fatal" errors im XML Parsing bei den Controlpoints habe (besonders wenn ich in einem ungünstigen Moment die Sonos Kisten ausschalte), hab ich mir das mal genauer angeschaut. Grundsätzlich scheint ein eval {} rund um $SONOS_Controlpoint->handle; (Zeile 1969) zu helfen, die errors abzufangen. Natürlich muss dann der Controlpoint neu gestartet werden. Ein voller Patch liegt hier

    https://github.com/chregu/fhem-sonos/commit/1fe7f228aaa35d25afaad454f026a4b406f82fb2

    Ich hab das bei mir am laufen und es scheint prinzipiell zu funktionieren (im Normalbetrieb passiert es jedoch selten), ich bin mir aber nicht sicher, ob's dadurch nicht irgendwelche Memory Leaks gibt. Ich hatte ein paar unerklärliche "Out of Memory", auch wenn der FHEM perl prozess normalerweise bei ca. 32MB liegt. Und da die Out of Memory situationen schlecht reproduzierbar sind, weiss ich auch nicht, ob's einen direkten Zusammenhang hat mit meinem Ansatz. Im Normalfall tut er jedenfalls und der Thread stürzt nicht mehr ab, wenn "schlechtes" XML kommt.

    Vielleicht hat jemand mit mehr Kenntnissen des Systems auch eine bessere Idee, wie man damit umgehen kann.

    Gruss
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 05 Januar 2014, 17:11:56
    Hi Christian,

    OK, das klingt gut.
    Ich würde deine Umsetzung nur gerne kürzer und direkter fassen, damit man später besser durchschaut, was da eigentlich passiert.

    Ich habe mal die Developer-Version entsprechend angepasst.

    Bzgl. der Memory-Meldung habe ich hier im Sonos-Thread auch schon das eine oder andere mal darüber gelesen. Leider kann man das, wie du schon schriebst, nicht reproduzieren oder gar beheben oder eingrenzen. Ich persönlich hatte die Meldung noch nie...

    In der Dev-Version ist außerdem eine testweise Umstellung meiner Info-Fhem-Anfragen über Telnet drin.
    Achtung: Das bedeutet momentan, das die Developer-Version einen eingerichteten Fhem-Telnet-Port benötigt (Standard-Host: localhost, Standard-Port: 7072, wenn notwendig kann die Variable $SONOS_UseTelnetForQuestionsHost oder $SONOS_UseTelnetForQuestionsPort entsprechend angepasst werden).
    Das muss mal beobachtet werden, ob es besser läuft oder nicht...

    Außerdem ist nun ein Standard-Layout für das RemoteControl-Modul eingebaut, vielleicht kann es ja jemand gebrauchen...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: chregu am 05 Januar 2014, 17:19:58
    Danke für die prompte Antwort und das sauberere Umschreiben.

    Ich beobachte das jetzt mal mit deinem Patch, aber ich seh da prinzipiell keinen Unterschied zu meiner Version.

    Gruss

    christian
    Titel: Antw:Sonos steuern
    Beitrag von: det. am 05 Januar 2014, 21:25:16
    Hallo Reiner,
    Bekomme mit der aktuellen Entwicklerversion nach dem Modulstart folgenden Fehler:
    Too many arguments for main::SONOS_GetSpeakFileExtension at ./FHEM/00_SONOS.pm line 1921, near "$workType)" BEGIN not safe after errors--compilation aborted at ./FHEM/00_SONOS.pm line 2336.
    Telnet Port 7072 ist eingerichtet 
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 05 Januar 2014, 22:01:48
    Hi Det.,

    da war ein Fehler im Prototyp dieser Funktion (es fehlte ein $-Zeichen). Ich finde es interessant, dass das erst bei dir auftritt, du bist ja schließlich nicht der erste, der das Modul verwendet :-)

    Ich habe die Dev-Version korrigiert.

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: det. am 05 Januar 2014, 22:37:27
    Hallo Reiner,
    Vielen Dank für den schnellen Fix. Sicher sind die anderen Tester so schlau und haben das selbst abgeändert...
    Kannst Du gelegentlich ein kleines Beispiel posten, wie das Remote Control zu nutzen ist?
    Danke,
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 05 Januar 2014, 23:03:09
    Hi Det.,

    im Wiki gibt es ein Beispiel:
    http://www.fhemwiki.de/wiki/Remotecontrol (http://www.fhemwiki.de/wiki/Remotecontrol).

    Kurz gesagt, kannst du mit:
    define rc1 remotecontrol
    ein RemoteControl-Device definieren.

    Danach kannst du in der Weboberfläche das Device anklicken, und hast einen Setter "layout" zur Auswahl, in deren Klappbox du einen Eintrag "Sonos" findest.
    Danach brauchst du nur noch den Setter "makenotify" mit deinem zu steuernden Sonos-Device auszuführen.

    Danach sollten die dargestellten Buttons funktionieren...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: Torben am 05 Januar 2014, 23:03:55
    Hallo,

    ich habe das Modul neu installiert und immer mal wieder das Problem, dass alle Player und die Bridge als "Dissappeared" auftauchen.

    Internals
    DEF    RINCON_000xxx01400_MR
    NAME Sonos_Wohnzimmer
    NR 26
    STATE initialized
    TYPE SONOSPLAYER
    UDN RINCON_000xxx1400_MR

    Readings (Auszug)
    currentTitle Let's Fall In Love 2014-01-05 22:32:39
    presence disappeared 2014-01-05 22:42:59
    state initialized 2014-01-05 22:42:59
    transportState PLAYING 2014-01-05 22:32:42

    Bei den Readings stimmen z.B. Titel und Zeit nicht überein. Diesen Titel hatte ich zuletzt gegen 17 Uhr gehört.

    Folgendermaßen wurde das System nach dem
    define Sonos SONOS localhost:4711 30 automatisch
    erkannt und in der fhem.cfg abgelegt:
    define Sonos SONOS localhost:4711 30
    define Sonos_BRIDGE SONOSPLAYER RINCON_000xxx01400_MR
    attr Sonos_BRIDGE group BRIDGE
    attr Sonos_BRIDGE icon icoSONOSPLAYER_icon-ZB100.png
    attr Sonos_BRIDGE model Sonos_ZB100
    attr Sonos_BRIDGE room Sonos
    define Sonos_Kueche SONOSPLAYER RINCON_000xxx1400_MR
    attr Sonos_Kueche generateInfoSummarize1 <NormalAudio><Artist prefix="(" suffix=")"/><Title prefix=" '" suffix="'" ifempty="[Keine Musikdatei]"/><Album prefix=" vom Album '" #suffix="'"/></NormalAudio> <StreamAudio><Sender suffix=":"/><SenderCurrent prefix=" '" suffix="' -"/><SenderInfo prefix=" "/></StreamAudio>
    attr Sonos_Kueche generateInfoSummarize2 <TransportState/><InfoSummarize1 prefix=" => "/>
    attr Sonos_Kueche generateInfoSummarize3 <Volume prefix="Lautstaerke: "/><Mute instead=" ~ Kein Ton" ifempty=" ~ Ton An" emptyval="0"/> ~ Balance: <Balance ifempty="Mitte" emptyval="0"/><HeadphoneConnected instead=" ~ Kopfhoerer aktiv" ifempty=" ~ Kein Kopfhoerer" emptyval="0"/>
    attr Sonos_Kueche getAlarms 1
    attr Sonos_Kueche group Kueche
    attr Sonos_Kueche icon icoSONOSPLAYER_icon-S3.png
    attr Sonos_Kueche minVolume 0
    attr Sonos_Kueche model Sonos_S3
    attr Sonos_Kueche room Sonos
    attr Sonos_Kueche stateVariable InfoSummarize2
    attr Sonos_Kueche webCmd Play:Pause:Previous:Next:VolumeD:VolumeU:MuteT
    define AlbumArt_Kueche weblink image /fhem/icons/SONOSPLAYER/Sonos_Kueche_AlbumArt
    attr AlbumArt_Kueche group Kueche
    attr AlbumArt_Kueche htmlattr width='200'
    attr AlbumArt_Kueche room Sonos
    define Sonos_Wohnzimmer SONOSPLAYER RINCON_000xxx01400_MR
    attr Sonos_Wohnzimmer generateInfoSummarize1 <NormalAudio><Artist prefix="(" suffix=")"/><Title prefix=" '" suffix="'" ifempty="[Keine Musikdatei]"/><Album prefix=" vom Album '" suffix="'"/></NormalAudio> <StreamAudio><Sender suffix=":"/><SenderCurrent prefix=" '" suffix="' -"/><SenderInfo prefix=" "/></StreamAudio>
    attr Sonos_Wohnzimmer generateInfoSummarize2 <TransportState/><InfoSummarize1 prefix=" => "/>
    attr Sonos_Wohnzimmer generateInfoSummarize3 <Volume prefix="Lautstaerke: "/><Mute instead=" ~ Kein Ton" ifempty=" ~ Ton An" emptyval="0"/> ~ Balance: <Balance ifempty="Mitte" emptyval="0"/><HeadphoneConnected instead=" ~ Kopfhoerer aktiv" ifempty=" ~ Kein Kopfhoerer" emptyval="0"/>
    attr Sonos_Wohnzimmer getAlarms 1
    attr Sonos_Wohnzimmer group Wohnzimmer
    attr Sonos_Wohnzimmer icon icoSONOSPLAYER_icon-ZP120.png
    attr Sonos_Wohnzimmer minVolume 0
    attr Sonos_Wohnzimmer model Sonos_ZP120
    attr Sonos_Wohnzimmer room Sonos
    attr Sonos_Wohnzimmer stateVariable InfoSummarize2
    attr Sonos_Wohnzimmer webCmd Play:Pause:Previous:Next:VolumeD:VolumeU:MuteT
    define AlbumArt_Wohnzimmer weblink image /fhem/icons/SONOSPLAYER/Sonos_Wohnzimmer_AlbumArt
    attr AlbumArt_Wohnzimmer group Wohnzimmer
    attr AlbumArt_Wohnzimmer htmlattr width='200'
    attr AlbumArt_Wohnzimmer room Sonos
    define Sonos_Bad SONOSPLAYER RINCON_000xxx01400_MR
    attr Sonos_Bad generateInfoSummarize1 <NormalAudio><Artist prefix="(" suffix=")"/><Title prefix=" '" suffix="'" ifempty="[Keine Musikdatei]"/><Album prefix=" vom Album '" suffix="'"/></NormalAudio> <StreamAudio><Sender suffix=":"/><SenderCurrent prefix=" '" suffix="' -"/><SenderInfo prefix=" "/></StreamAudio>
    attr Sonos_Bad generateInfoSummarize2 <TransportState/><InfoSummarize1 prefix=" => "/>
    attr Sonos_Bad generateInfoSummarize3 <Volume prefix="Lautstaerke: "/><Mute instead=" ~ Kein Ton" ifempty=" ~ Ton An" emptyval="0"/> ~ Balance: <Balance ifempty="Mitte" #emptyval="0"/><HeadphoneConnected instead=" ~ Kopfhoerer aktiv" ifempty=" ~ Kein Kopfhoerer" emptyval="0"/>
    attr Sonos_Bad getAlarms 1
    attr Sonos_Bad group Bad
    attr Sonos_Bad icon icoSONOSPLAYER_icon-S1.png
    attr Sonos_Bad minVolume 0
    attr Sonos_Bad model Sonos_S1
    attr Sonos_Bad room Sonos
    attr Sonos_Bad stateVariable InfoSummarize2
    attr Sonos_Bad webCmd Play:Pause:Previous:Next:VolumeD:VolumeU:MuteT
    define AlbumArt_Bad weblink image /fhem/icons/SONOSPLAYER/Sonos_Bad_AlbumArt
    attr AlbumArt_Bad group Bad
    attr AlbumArt_Bad htmlattr width='200'
    attr AlbumArt_Bad room Sonos


    Kann mir jemand einen Hinweis geben, ob ich grundsätzlich etwas falsch gemacht habe?

    Schöne Grüße
    Torben
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 05 Januar 2014, 23:22:26
    Hallo Torben,

    die erkannten Definition sehen schon mal gut aus.
    Ich vermute, dass es ein Problem mit der Ping Erkennung gibt. Stell doch da mal dran rum...

    Ansonsten, kannst du mal die Konsolenausgabe des Sonos-Moduls posten (nicht das normale Fhem-Log, sondern das, was auf der Konsole nach z.B. einem manuellen Start ausgegeben wird).

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: JoeALLb am 05 Januar 2014, 23:25:05
    Ich hatte diesen Fehler gestern auch,  hab im Log "no Route to destination" gefunden,  was unlogisch war,  da ich das Sonos Pinien könnte und es im selben Netz lokal verbunden ist.... Nur ein fhem Neustart brachte die Lösung.

    Gesendet von meinem Xperia Pro mit Tapatalk

    Titel: Antw:Sonos steuern
    Beitrag von: Will am 06 Januar 2014, 00:16:27
    Hallo Reiner,

    weil meine Logfiles immer riesig geworden sind, habe ich Sonos Verbose auf 0 gestellt, dann war "Ruhe" - seit ein paar Tagen taucht folgendes immer wieder auf:
    2014.01.05 22:19:56 3: SONOS5: Transport-Subscription for ZonePlayer "RINCON_000E58C0F22801400_MR" has expired and is now renewed.
    2014.01.05 22:19:56 3: SONOS5: Rendering-Subscription for ZonePlayer "RINCON_000E58C0F22801400_MR" has expired and is now renewed.
    2014.01.05 22:19:56 3: SONOS5: Alarm-Subscription for ZonePlayer "RINCON_000E58C0F22801400_MR" has expired and is now renewed.
    2014.01.05 22:19:56 3: SONOS5: ZoneGroupTopology-Subscription for ZonePlayer "RINCON_000E58C0F22801400_MR" has expired and is now renewed.
    2014.01.05 22:19:56 3: SONOS5: Transport-Subscription for ZonePlayer "RINCON_000E582DCFC001400_MR" has expired and is now renewed.
    2014.01.05 22:19:56 3: SONOS5: Rendering-Subscription for ZonePlayer "RINCON_000E582DCFC001400_MR" has expired and is now renewed.
    2014.01.05 22:19:56 3: SONOS5: Alarm-Subscription for ZonePlayer "RINCON_000E582DCFC001400_MR" has expired and is now renewed.
    2014.01.05 22:19:56 3: SONOS5: ZoneGroupTopology-Subscription for ZonePlayer "RINCON_000E582DCFC001400_MR" has expired and is now renewed.
    2014.01.05 22:19:56 3: SONOS5: Transport-Subscription for ZonePlayer "RINCON_000E587FC86201400_MR" has expired and is now renewed.
    2014.01.05 22:19:57 3: SONOS5: Rendering-Subscription for ZonePlayer "RINCON_000E587FC86201400_MR" has expired and is now renewed.
    2014.01.05 22:19:57 3: SONOS5: Alarm-Subscription for ZonePlayer "RINCON_000E587FC86201400_MR" has expired and is now renewed.
    2014.01.05 22:19:57 3: SONOS5: ZoneGroupTopology-Subscription for ZonePlayer "RINCON_000E587FC86201400_MR" has expired and is now renewed.
    2014.01.05 23:00:00 2: IT set rev3 off
    2014.01.05 23:19:58 3: SONOS5: Transport-Subscription for ZonePlayer "RINCON_000E58C0F22801400_MR" has expired and is now renewed.
    2014.01.05 23:19:58 3: SONOS5: Rendering-Subscription for ZonePlayer "RINCON_000E58C0F22801400_MR" has expired and is now renewed.
    2014.01.05 23:19:58 3: SONOS5: Alarm-Subscription for ZonePlayer "RINCON_000E58C0F22801400_MR" has expired and is now renewed.
    2014.01.05 23:19:58 3: SONOS5: ZoneGroupTopology-Subscription for ZonePlayer "RINCON_000E58C0F22801400_MR" has expired and is now renewed.
    2014.01.05 23:19:58 3: SONOS5: Transport-Subscription for ZonePlayer "RINCON_000E582DCFC001400_MR" has expired and is now renewed.
    2014.01.05 23:19:58 3: SONOS5: Rendering-Subscription for ZonePlayer "RINCON_000E582DCFC001400_MR" has expired and is now renewed.
    2014.01.05 23:19:59 3: SONOS5: Alarm-Subscription for ZonePlayer "RINCON_000E582DCFC001400_MR" has expired and is now renewed.
    2014.01.05 23:19:59 3: SONOS5: ZoneGroupTopology-Subscription for ZonePlayer "RINCON_000E582DCFC001400_MR" has expired and is now renewed.
    2014.01.05 23:19:59 3: SONOS5: Transport-Subscription for ZonePlayer "RINCON_000E587FC86201400_MR" has expired and is now renewed.
    2014.01.05 23:19:59 3: SONOS5: Rendering-Subscription for ZonePlayer "RINCON_000E587FC86201400_MR" has expired and is now renewed.
    2014.01.05 23:19:59 3: SONOS5: Alarm-Subscription for ZonePlayer "RINCON_000E587FC86201400_MR" has expired and is now renewed.
    2014.01.05 23:19:59 3: SONOS5: ZoneGroupTopology-Subscription for ZonePlayer "RINCON_000E587FC86201400_MR" has expired and

    ist das normal?

    W
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 06 Januar 2014, 00:30:00
     Hi Will,

    da ist dein Verbose-Level mindestens auf 3 gerutscht, und ja, diese Meldungen sind normal. Es sind Statusmeldungen über den internen Zustand der Subscriptions bei den Playern.

    Damit die Sonos-Player nicht auf ewig die Subscription-Queue vollmüllen (der Platz dort ist rar auf 32 Einträge beschränkt), sondert Sonos die nach einer bestimmten Zeit mit Inaktivität wieder aus.
    Um das zu verhindern, wird nach einer bestimmten Zeit diese Subscription für jeden Eventtyp und Player erneuert.
    Da die verwendete UPnp-Library das nicht selber abhandelt (normalerweise sollte sie das), musste ich das selber einbauen...

    Mit folgender Adresse kannst du dir die, an einem Player angemeldeten, Controller (also auch das Fhem-Modul) auflisten lassen (IP natürlich auf einen gültigen Player anpassen):
    http://a.b.c.d:1400/status/upnp

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: Will am 06 Januar 2014, 00:33:33
    Hmmm....sowohl sonos Modul als auch die player stehen auf attr verbose 0.
    Ichbeobachte mal weiter....

    Sent from my Nexus 7 using Tapatalk

    Titel: Antw:Sonos steuern
    Beitrag von: Will am 06 Januar 2014, 00:34:12
    Oder muss ich woanders noch verbose 0 setzen?

    Sent from my Nexus 7 using Tapatalk

    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 06 Januar 2014, 01:12:29
    Hi Will,

    ich verwende an der Stelle (also den SubProzess) noch das globale Verbose.
    Ich werde das mal umstellen, kann aber bis Morgen dauern :-)

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: Torben am 06 Januar 2014, 09:32:19
    Hallo Reiner,

    vielen Dank für die rasche Hilfe. Ich habe mal alle pingTypes ausprobiert. Auch hier funktioniert es mal  und mal nicht. Im Log-File kommt folgende Meldung:

    2014.01.06 09:29:01 1: statefile: Reading Sonos_BRIDGE->presence not used out of statefile.
    Reading Sonos_Bad->presence not used out of statefile.
    Reading Sonos_Kueche->presence not used out of statefile.
    Reading Sonos_Wohnzimmer->presence not used out of statefile.

    Kann man damit etwas anfangen?

    Schöne Grüße
    Torben
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 06 Januar 2014, 11:00:32
    Hi Torben,

    diese Meldungen sind nur Statusmeldungen. Die Begründung hatte ich schon mal unter http://forum.fhem.de/index.php/topic,10033.msg118891.html#msg118891 (http://forum.fhem.de/index.php/topic,10033.msg118891.html#msg118891) kurz umrissen.

    Auf jeden Fall ist das kein negativer Aspekt.
    Beim pingtype musst du dir einfach einen suchen, mit dem es geht. Ich persönlich verwende "ping", dafür muss Fhem allerdings unter dem Benutzer "root" laufen...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 06 Januar 2014, 14:07:28
    Hi Will,

    soo, ich habe mir das mit den Verbose-Leveln mal angeschaut.

    leider steht zum Zeitpunkt des Define eines Fhem-Devices noch nicht die Attributliste dieses Device zur Verfügung. Auch leider wird im Define bereits der SubProzess angestartet (wofür dieser Wert mit übertragen werden muss).

    Das bedeutet:
    Beim initialen Start des SubProzess wird das Globale Verbose-Attribut verwendet. Anschließend, wenn das Attribut zur Verfügung steht, und der SubProzess-Thread gestartet wurde, wird das Verbose-Attribut des Sonos-Device verwendet.
    Die Folge davon ist, das die ersten Logausgaben noch mit dem Globalen-Verbose-Wert durchgeführt werden. Bis zur Meldung "StartThread", dann wird der Device-Verbose-Wert verwendet...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: det. am 06 Januar 2014, 21:11:39
    Hallo Reiner,
    vielen Dank! Mit der RemoteControl sieht das Ganze noch viel besser aus. Du machst Dir so viel Mühe und ich nutze Dein Modul überwiegend zu solch profanen Zwecken:
    - Einschalten FS20 Funksteckdose + Start Radio Paradise über FritzFon oder IPad
    - Stummschalten mit Callmonitor auf FB7390 bei ein- und ausgehenden eigenen Anrufen
    - Mute off über FritzFon nach beendetem Anruf (bekomme ich nicht automatisch hin, da noch 2 Mieter über die FB telefonieren)
    Da die Icons auf dem IPad mit Safari das Longpoll nicht überstanden haben, habe ich die durch welche aus dem fhemSVG ersetzt - sieht nicht so schön aus, aber geht.
    Titel: Antw:Sonos steuern
    Beitrag von: Torben am 07 Januar 2014, 20:34:13
    Hallo Reiner,

    vielen Dank für die Hilfe. Mit icmp und root funktioniert es nun. Ich hätte da noch eine weitere Frage, da ich mich mit fhem noch nicht so sehr auskenne ist mir nicht klar, wie ich das SomethingChanged für notify nutzen kann. Das
    Zitat
    generateSomethingChangedEvent
    habe ich angelegt und es liefert auch fleissig:
    2014-01-07 20:30:21 SONOSPLAYER Sonos_Wohnzimmer somethingChanged: 1Ich möchte einfach den Gruppenzustand in eine mysql-Datenbank schreiben. Dieser (hintere) Teil funktioniert auch, aber wie muss der Teil nach notify aussehen?
    define etwasHatSichGeandert notify "was muss hier in die Anführungszeichen?" {my $val = (fhem "get Sonos Groups"));; dbWrite($val)}
    Schöne Grüße
    Torben
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 07 Januar 2014, 21:09:08
    Hi Torben,

    der Notify verwendet einen regulären Ausdruck für das Matching.
    Also in diesem Fall:
    define waspassiert notify Sonos_Wohnzimmer:somethingChanged { DoWorkHere }

    Aber wenn du nur den Gruppenzustand benötigst, kannst du doch auch direkt darauf ein Notify machen (und brauchst das SomethingChangedEvent nicht mehr):
    define GruppeVeraendert notify Sonos:Groups { DoWorkHere }

    Vielleicht eher einen direkten Filelog?
    define FileLog_Sonos_Groups FileLog /log/Sonos_Groups-%Y-%m.log Sonos:Groups

    Sonst mal auf der Wiki-Seite in den Beispielen stöbern, um Ideen zu bekommen, bzw. für notify das Einsteiger-PDF durchgehen...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: Torben am 08 Januar 2014, 16:15:39
    Hallo Reiner,

    vielen Dank. Das funktioniert nun.
    Ich hätte da aber noch ein anderes Problem  :-[
    Die Bilder von Alben-Covern werden zwar als jpeg geladen, aber mit dem Zusatz ".ERROR" gespeichert. Daher können sie nicht von fhem dargestellt werden. Bilder von Radiosendern werden korrekt als ".gif" abgelegt und auch unter fhem angezeigt.

    (http://i1348.photobucket.com/albums/p739/torben5/Bildformate_zpsfb2abd53.jpg) (http://s1348.photobucket.com/user/torben5/media/Bildformate_zpsfb2abd53.jpg.html)

    Hast Du eine Idee, was ich tun kann, damit die jpgs richtig gespeichert und angezeigt werden?

    Schöne Grüße
    Torben
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 08 Januar 2014, 16:35:09
    Hi Torben,

    die Endung wird ermittelt. Wenn dieser Vorgang fehlschlägt, dann wird ".ERROR" hingeschrieben, obwohl das Bild vielleicht korrekt da ist.
    Kannst du mal genauer beschreiben, was du gerade von wo hörst (also lokale Bibliothek, Spotify o.ä.)?
    Ich vermute genau nicht Spotify, sondern vielleicht einen anderen Musikdienst. Spotify z.B. sendet auch keinen Mimetype, das Bild wird aber immer als JPG übertragen, sodass ich das konstant setzen kann...

    Notfalls muss ich mal eine kleine Logausgabe an die Stelle bauen, damit wir da mehr sehen können...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: Torben am 08 Januar 2014, 16:37:02
    Hallo Reiner,

    die Musik und damit auch das Cover kommen von Napster/Rhapsody.

    Vielen Dank noch mal für Deine Hilfe
    Torben
    Titel: Antw:Sonos steuern
    Beitrag von: JoeALLb am 09 Januar 2014, 08:46:29
    Hatte heute wieder den Fehler mit "Keine Route zum Zielrechner", nachdem ich einen Text ausgeben lassen wollte.
    Vielleicht hilft die Zeile?!?
    Der Befehl lautete:
    set Sonos_Wohnzimmer Speak 70 de TEST text
    Argument "DoWork:RINCON_000E5836AAAC01400_MR:speak0:70,de, TEST..." isn't numeric in numeric eq (==) at FHEM/00_SONOS.pm line 1903, <$client> line 2.
    Argument "A:undef:targetSpeakFileHashCache:1" isn't numeric in numeric eq (==) at FHEM/00_SONOS.pm line 1916, <$client> line 2.
    Renewal of subscription failed with error: 500 Can't connect to 192.168.178.25:1400 (Keine Route zum Zielrechner) at FHEM/00_SONOS.pm line 1834 thread 1.
    Renewal of subscription failed with error: 500 Can't connect to 192.168.178.25:1400 (Keine Route zum Zielrechner) at FHEM/00_SONOS.pm line 1839 thread 1.
    Renewal of subscription failed with error: 500 Can't connect to 192.168.178.25:1400 (Keine Route zum Zielrechner) at FHEM/00_SONOS.pm line 1844 thread 1.
    Renewal of subscription failed with error: 500 Can't connect to 192.168.178.25:1400 (Keine Route zum Zielrechner) at FHEM/00_SONOS.pm line 1849 thread 1.
    Renewal of subscription failed with error: 500 Can't connect to 192.168.178.28:1400 (Keine Route zum Zielrechner) at FHEM/00_SONOS.pm line 1834 thread 1.
    Renewal of subscription failed with error: 500 Can't connect to 192.168.178.28:1400 (Keine Route zum Zielrechner) at FHEM/00_SONOS.pm line 1839 thread 1.
    Renewal of subscription failed with error: 500 Can't connect to 192.168.178.28:1400 (Keine Route zum Zielrechner) at FHEM/00_SONOS.pm line 1844 thread 1.
    Renewal of subscription failed with error: 500 Can't connect to 192.168.178.28:1400 (Keine Route zum Zielrechner) at FHEM/00_SONOS.pm line 1849 thread 1.
    Renewal of subscription failed with error: 500 Can't connect to 192.168.178.72:1400 (Keine Route zum Zielrechner) at FHEM/00_SONOS.pm line 1834 thread 1.
    Renewal of subscription failed with error: 500 Can't connect to 192.168.178.72:1400 (Keine Route zum Zielrechner) at FHEM/00_SONOS.pm line 1844 thread 1.
    Renewal of subscription failed with error: 500 Can't connect to 192.168.178.72:1400 (Keine Route zum Zielrechner) at FHEM/00_SONOS.pm line 1849 thread 1.
    Renewal of subscription failed with error: 500 Can't connect to 192.168.178.25:1400 (Keine Route zum Zielrechner) at FHEM/00_SONOS.pm line 1834 thread 1.
    Renewal of subscription failed with error: 500 Can't connect to 192.168.178.25:1400 (Keine Route zum Zielrechner) at FHEM/00_SONOS.pm line 1839 thread 1.
    Renewal of subscription failed with error: 500 Can't connect to 192.168.178.25:1400 (Keine Route zum Zielrechner) at FHEM/00_SONOS.pm line 1844 thread 1.
    Renewal of subscription failed with error: 500 Can't connect to 192.168.178.25:1400 (Keine Route zum Zielrechner) at FHEM/00_SONOS.pm line 1849 thread 1.
    Renewal of subscription failed with error: 500 Can't connect to 192.168.178.28:1400 (Keine Route zum Zielrechner) at FHEM/00_SONOS.pm line 1834 thread 1.
    Renewal of subscription failed with error: 500 Can't connect to 192.168.178.28:1400 (Keine Route zum Zielrechner) at FHEM/00_SONOS.pm line 1839 thread 1.

    Die IP 192.168.178.28 ließ sich jedoch von mir pingen!
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 09 Januar 2014, 09:40:55
    Hi JoeALLb,

    hmm... die Ausgaben sind schon die, die ich gebrauchen könnte. Leider passen die Zeilennummern nicht mehr zu meinem Code.
    Aber... der Fehler mit der fehlenden Route zum Host könnte auch die oberen Fehler verursacht haben. dort geht es nämlich darum, Anfragen vom SubProzess an den Fhem-Host durchzuführen. Diese werden zwar innerhalb des gleichen Systems, aber trotzdem über die Netzwerkschnittstelle durchgeführt.
    Das sieht mir nach irgendwelchen Ausfällen der Netzwerkschnittstelle aus, die sich dann, wenn du draufgehst bereits wieder behoben haben.

    Vielleicht solltest du mal eine entsprechende Überwachung auf dem Ding laufen lassen.
    Ist das ein Pi, der vielleicht übertaktet wurde, oder sonstige Probleme auf dem USB-Anschluss hat?

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: JoeALLb am 09 Januar 2014, 10:08:50
    Hallo Reiner,

    ja, es ist ein PI, der nicht übertaktet ist. Warum soll das mit USB zusammenhängen? Die USB-Ports sind nicht in verwendung.
    Mir fällt auf, dass ich diese Meldung häufig bekomme, nachdem die CPU-Zeit für ne weile auf 100% war (zB nach einem Backup von FHEM).
    Danach fängt sich das jedoch nicht wieder. Aktuell ist keine Auslastung da, ich erhalte diese Meldung jedoch immer noch regelmäßig.

    Ich könnte die Version schon aktualisieren, als ich das gerade versuchte, habe ich folgende Meldung erhalten:
    update thirdparty http://fhem.lmsoft.de/sonos_dev sonos checkeingebe, erhalte ich
    File 'controls_sonos.txt' (remote) is corrupt
    Was kann ich tun?
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 09 Januar 2014, 11:30:21
    Hi JoeALLb,

    das mit der corrupt-Meldung habe ich auch schon bemerkt, habe nur gerade keine Zeit, das genauer zu untersuchen, oder zu melden...
    Es scheint ein Problem mit dem Update-Modul zu sein, wenn ich die URL im Browser angebe, wird die angemäkelte Datei ordnungsgemäß angezeigt:
    http://fhem.lmsoft.de/sonos_dev/controls_sonos.txt (http://fhem.lmsoft.de/sonos_dev/controls_sonos.txt)

    USB deshalb, da die Netzwerkschnittstelle am Pi intern am USB-Anschluß betrieben wird. Hat sich aber ja erledigt.
    Dann kann es ja nur mit dieser Auslastung zusammenhängen. Dabei wird die Anfrage an den Fhem-Teil vermutlich in einen Timeout geraten, der im Nachgang anscheinend nicht mehr korrigiert werden kann...

    Ich werde mal schauen, dass ich diesen Timeout hochsetze, damit das vielleicht nicht mehr vorkommt.
    Aktuell bin ich berufsmäßig leider etwas eingespannt, sodass es ein/zwei Tage dauern kann... Bzw. das Problem mit dem Update muss ja auch noch gelöst werden...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: JoeALLb am 09 Januar 2014, 13:34:34
    Anbei nochmal 3 Zeilen, die ich beim Ausführen eines Befehls erhalte.
    Die erste Zeile erscheint regelmäßig, ca. einmal die Minute, die CPU-Auslastung steigt ab dem Auftreten des Fehlers auch entsprechend!
    Renewal of subscription failed with error: 500 Can't connect to 192.168.178.72:1400 (Keine Route zum Zielrechner) at FHEM/00_SONOS.pm line 1849 thread 1.
    Argument "DoWork:RINCON_000E5836AAAC01400_MR:speak0:70,de, TESTxxx..." isn't numeric in numeric eq (==) at FHEM/00_SONOS.pm line 1903, <$client> line 2.
    Argument "A:undef:targetSpeakFileHashCache:1" isn't numeric in numeric eq (==) at FHEM/00_SONOS.pm line 1916, <$client> line 2

    Bein shutdown von FHEM habe ich dann noch diese Zeilen bekommen:
    2014.01.09 13:25:17 1: SONOS2: Restore-Thread wurde beendet.
    Can't call method "kill" on an undefined value at FHEM/00_SONOS.pm line 4602, <$client> line 45.
    Can't use an undefined value as a symbol reference at FHEM/Blocking.pm line 126.

    Nach einem Restart von FHEM ist der Route-Fehler wieder weg.
    Titel: Antw:Sonos steuern
    Beitrag von: JoeALLb am 09 Januar 2014, 16:48:44
    Habe soeben das Backup nochmals mit "nice 20" gemacht, und keine Probleme gehabt. Der Fehler scheint nicht auf.
    Es scheint also nur mit "extremer auslastung" aufzutreten.
    Titel: Antw:Sonos steuern
    Beitrag von: Strippenzieher am 10 Januar 2014, 02:45:07
    Ich weiß, es ist jetzt vllt. etwas dreist, aber könntest du mal schauen ob dein Modul auch auf Raumfeld erweitert werden kann ??
    Soweit scheint dein Modul ja schon weit fortgeschritten zu sein, da könntest du evtl. mal prüfen ob die Befehlssätze von Raumfeld auf die gleiche Weise funktionieren?
    Mir ist bewusst, das es nicht deinen Zwecken dient, aber als Entwickler dieses Moduls mit den damit verbundenen Kenntnissen ist es sicher für dich einfacher es auch für Raumfeld kompatibel zu machen.

    MFG Chris
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 10 Januar 2014, 09:23:40
    Hi Chris,

    ich habe leider keinerlei Zugriff auf Komponenten des Raumfeld-Systems, sodass ich dir das nicht sagen kann.

    Was du tun könntest, wenn du Komponenten des Systems hast, ist, mit dem Intel-Device-Spy mal zu schauen, wie sich die Dinger melden. Wenn sie sich melden, kannst du mir auch gerne mal die XML-Beschreibungsdatei zusenden, dann kann ich reinschauen, wie der Befelssatz von Raumfeld aussieht, und ob das in irgendeiner Form kompatibel wäre...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: Strippenzieher am 10 Januar 2014, 11:16:42
    Hmm ... würde ich gerne, nur wird das etwas knapp da ich ab nächste Woche wieder für längere Zeit im Ausland bin.

    Im Hifi Forum habe ich aber schon einige Schnipsel aufgefangen, vllt. verschafft dir das ja einen Einblick.

    http://www.hifi-forum.de/viewthread-212-878.html
    http://www.hifi-forum.de/viewthread-212-791.html

    Ansonsten kann ich erst wirklich behilflich sein, wenn ich wieder in Deutschland bin.

    MFG Chris
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 10 Januar 2014, 11:49:02
    Hi Chris,

    das sieht ja zumindest so aus, als könnte man das System normal per UPnP steuern.
    OK, damit wäre das Grundkonzept gleich.

    Ich fürchte nur, dass sich die Befehle und das allgemeine System-Konzept von Sonos unterscheiden. Das wichtigste sind ja so Fragen wie, wie werden Zonen abgebildet, wie müssen Befehle übertragen werden, was kann alles gesteuert werde, wie bekommt man die laufenden und konfigurativen Informationen geliefert...

    Meine Erfahrung mit Sonos zeigt, dass es zwar ein allgemeines Grundkonzept für den Zugriff gibt (UPnP), aber die Details doch sehr speziell sind (also die Frage, was eigentlich in den Befehlen übertragen werden muss, Formate der URLs z.B. und was für Informationen überhaupt benötigt werden, um einen Titel abzuspielen), der Teufel steckt wie immer im Detail :-).

    Ich denke, das sollte jemand machen, der ein solches System auch zuhause stehen hat. Ich hatte ja schon so meine Probleme mit Komponenten, die ich innerhalb des Sonos-Systems nicht selber habe, und da stand der gesamte Grundzugriff schon...

    Will damit sagen:
    Meine Erfahrung würde sicherlich hilfreich sein, aber ohne lebendes Objekt wird das nix.
    Und selbst dabei braucht man (wie am Beispiel Sonos auch zu sehen) viel Zeit und viele Mithelfer, die Dinge testen können, und andere Konstellationen zuhause haben...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: Slarti am 10 Januar 2014, 16:43:26
    Hallo,

    ganz herzlichen Dank für das Modul!

    Leider bin ich absoluter FHEM Anfänger und fuchse mich gerade ins Thema. Mein Ziel ist, einen Player5 anzusprechen, der ohne Bridge betrieben wird. Leider wird der player immer als "disappeared" geführt. Das automatische Finden scheint (unabhängig vom PingType) nicht zu klappen. Meine CFG:

    define Sonos SONOS localhost:4711 30

    attr Sonos pingType syn

    Nachdem das automatische Finden nicht geklappt hat, habe ich stumpf per Copy & Paste aus dem WIKI die CFG erweitert:

    define Sonos SONOS localhost:4711 30

    attr Sonos pingType syn
    define Sonos_Wohnzimmer SONOSPLAYER RINCON_000E58545B7601400

    attr Sonos_Wohnzimmer generateInfoSummarize1 <NormalAudio><Artist prefix="(" suffix=")"/> <Title prefix=" '" suffix="'" ifempty="[Keine Musikdatei]"/><Album prefix=" vom Album '" suffix="'"/></NormalAudio><StreamAudio><Sender suffix=":"/><SenderCurrent prefix=" '" suffix="' -"/><SenderInfo prefix=" "/></StreamAudio>
    attr Sonos_Wohnzimmer generateInfoSummarize2 <TransportState/><InfoSummarize1 prefix=" => "/>
    attr Sonos_Wohnzimmer generateInfoSummarize3 <Volume prefix="Lautstärke: "/><Mute instead=" ~ Kein Ton" ifempty=" ~ Ton An" emptyval="0"/>~ Balance: <Balance ifempty="Mitte" emptyval="0"/><HeadphoneConnected instead=" ~ Kopfhörer aktiv" ifempty=" ~ Kein Kopfhörer" emptyval="0"/>
    attr Sonos_Wohnzimmer icon icoSONOSPLAYER_icon-ZP90.png
    attr Sonos_Wohnzimmer room Sonos
    attr Sonos_Wohnzimmer stateVariable InfoSummarize2
    attr Sonos_Wohnzimmer webCmd Play:Pause:Previous:Next:VolumeD:VolumeU:MuteT
    attr Sonos_Wohnzimmer group Wohnzimmer

    define AlbumArt_Wohnzimmer weblink image fhem/icons/SONOSPLAYER/Sonos_Wohnzimmer_AlbumArt
    attr AlbumArt_Wohnzimmer room Sonos
    attr AlbumArt_Wohnzimmer htmlattr width="200"
    attr AlbumArt_Wohnzimmer group Wohnzimmer

    Der Player wird dann zwar angezeigt, aber ist trotzdem "disappeared".

    Mache ich gerade einen Denkfehler oder woran könnte es liegen?
    Titel: Antw:Sonos steuern
    Beitrag von: Christoph am 10 Januar 2014, 17:15:13
    Hast schonmal ins Logfile geschaut da tauchen bestimmt irgendwelche Fehler auf...


    Gruß Christoph
    Titel: Antw:Sonos steuern
    Beitrag von: Slarti am 10 Januar 2014, 17:21:00
    Leider scheint da nichts zu stehen.

    Kann es am "4711" liegen?

    2014.01.10 17:17:05 0: Server shutdown
    2014.01.10 17:17:09 1: Including fhem.cfg
    2014.01.10 17:17:11 3: telnetPort: port 7072 opened
    2014.01.10 17:17:11 3: WEB: port 8083 opened
    2014.01.10 17:17:11 3: WEBphone: port 8084 opened
    2014.01.10 17:17:11 3: WEBtablet: port 8085 opened
    2014.01.10 17:17:16 1: SONOS0: Kein UPnP-Server gefunden... Starte selber einen und warte 8 sekunden darauf...
    2014.01.10 17:17:24 3: Opening Sonos device localhost:4711
    2014.01.10 17:17:24 3: Sonos device opened
    2014.01.10 17:17:24 1: Including ./log/fhem.save
    2014.01.10 17:17:24 1: statefile: Reading Sonos_Wohnzimmer->presence not used out of statefile.
    Titel: Antw:Sonos steuern
    Beitrag von: Christoph am 10 Januar 2014, 17:35:16
    Erhöh mal dein Verbose, das steht bestimmt auf 3 oder ?

    attr global verbose 5
    Dann bekommst auch mehr im Log zu sehen  ;)

    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 10 Januar 2014, 18:45:26
    Hi Slarti,

    du musst in der Konsolenausgabe gucken. Der normale Fhem-Log zeigt in dieser Hinsicht nur wenig (nämlich nur den Teil, der direkt in Fhem passiert).

    Die Konsolenausgabe ist das, was du als Ausgabe auf der Kommandozeile erhältst, wenn du den Fhem-Prozess z.B. manuell startest.

    Dort wird etwas erhellendes dazu stehen...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: Slarti am 10 Januar 2014, 19:19:19
    Danke für die Unterstützung!

    Hier mal die LOG-Ausgaben. Vielleicht erkennt man ja schon etwas.

    Auf der Konsole war FHEM mit /etc/init.d/fhem start ohne Beanstandungen gestartet.



    2014.01.10 19:10:47 3: Opening Sonos device localhost:4711
    2014.01.10 19:10:47 3: Can't connect to localhost:4711: Connection refused
    2014.01.10 19:10:47 5: Cmd: >attr Sonos pingType tcp<
    2014.01.10 19:10:47 5: Cmd: >define Sonos_Wohnzimmer SONOSPLAYER RINCON_000E58545B7601400<
    2014.01.10 19:10:47 5: Loading ./FHEM/21_SONOSPLAYER.pm
    2014.01.10 19:10:47 5: _="0"/><HeadphoneConnected instead=" ~ Kopfhörer aktiv" ifempty=" ~ Kein Kopfhörer" emptyval="0"/><
    2014.01.10 19:10:48 5: Cmd: >attr Sonos_Wohnzimmer group Wohnzimmer<
    2014.01.10 19:10:48 5: Cmd: >attr Sonos_Wohnzimmer icon icoSONOSPLAYER_icon-ZP90.png<
    2014.01.10 19:10:48 5: Cmd: >attr Sonos_Wohnzimmer room Sonos<
    2014.01.10 19:10:48 5: Cmd: >attr Sonos_Wohnzimmer stateVariable InfoSummarize2<
    2014.01.10 19:10:48 5: Cmd: >attr Sonos_Wohnzimmer webCmd Play:Pause:Previous:Next:VolumeD:VolumeU:MuteT<
    2014.01.10 19:10:48 5: Cmd: >define AlbumArt_Wohnzimmer weblink image fhem/icons/SONOSPLAYER/Sonos_Wohnzimmer_AlbumArt<
    2014.01.10 19:10:48 5: Loading ./FHEM/98_weblink.pm
    2014.01.10 19:10:48 5: Cmd: >attr AlbumArt_Wohnzimmer group Wohnzimmer<
    2014.01.10 19:10:48 5: Cmd: >attr AlbumArt_Wohnzimmer htmlattr width="200"<
    2014.01.10 19:10:48 5: Cmd: >attr AlbumArt_Wohnzimmer room Sonos<
    2014.01.10 19:10:48 1: Including ./log/fhem.save
    2014.01.10 19:10:48 5: Cmd: >setstate AlbumArt_Wohnzimmer initialized<
    2014.01.10 19:10:48 5: Cmd: >setstate Logfile active<
    2014.01.10 19:10:48 5: Cmd: >setstate Sonos opened<
    2014.01.10 19:10:48 5: Cmd: >setstate Sonos_Wohnzimmer initialized<
    2014.01.10 19:10:48 5: Cmd: >setstate Sonos_Wohnzimmer 2014-01-10 18:12:50 LastActionResult CheckProxyObject-ERROR: SonosPlayer disappeared?<
    2014.01.10 19:10:48 5: Cmd: >setstate Sonos_Wohnzimmer 2014-01-10 17:47:00 presence disappeared<
    2014.01.10 19:10:48 5: Cmd: >setstate Sonos_Wohnzimmer 2014-01-10 17:47:00 state initialized<
    2014.01.10 19:10:48 5: Cmd: >setstate autocreate active<
    2014.01.10 19:10:48 5: Cmd: >setstate eventTypes active<
    2014.01.10 19:10:48 5: Cmd: >setstate global <no definition><
    2014.01.10 19:10:48 5: Cmd: >setstate initialUsbCheck active<
    2014.01.10 19:10:48 1: statefile: Reading Sonos_Wohnzimmer->LastActionResult not used out of statefile.
    Reading Sonos_Wohnzimmer->presence not used out of statefile.
    2014.01.10 19:10:48 5: Interface "interface": readings "", getters "", setters ""
    2014.01.10 19:10:48 5: Interface "switch": readings "onoff", getters "onoff", setters ""
    2014.01.10 19:10:48 5: Interface "switch_active": readings "onoff", getters "onoff", setters ""
    2014.01.10 19:10:48 5: Interface "switch_passive": readings "onoff", getters "onoff", setters "on:off"
    2014.01.10 19:10:48 5: Interface "dimmer": readings "onoff:level", getters "onoff:level", setters "on:off:dimto:dimup:dimdown"
    2014.01.10 19:10:48 5: Interface "temperature": readings "temperature", getters "temperature", setters ""
    2014.01.10 19:10:48 5: Interface "humidity": readings "humidity", getters "humidity", setters ""
    2014.01.10 19:10:48 5: Interface "wind": readings "wind", getters "wind", setters ""
    2014.01.10 19:10:48 5: Interface "power": readings "power:maxPower:energy", getters "power:maxPower:energy", setters ""

    ...


    2014.01.10 19:11:48 1: localhost:4711 reappeared (Sonos)
    2014.01.10 19:11:48 5: Triggering Sonos (1 changes)
    2014.01.10 19:11:48 5: Notify loop for Sonos CONNECTED
    2014.01.10 19:11:48 4: eventTypes: SONOS Sonos CONNECTED -> CONNECTED
    2014.01.10 19:11:48 5: SONOS0: Received from UPnP-Server: ''This is UPnP-Server calling''
    2014.01.10 19:11:48 5: SONOS0: MainTrigger()-Line: 'This is UPnP-Server calling'
    2014.01.10 19:11:49 5: SW: SetData:Sonos:tcp:Sonos_Wohnzimmer:RINCON_000E58545B7601400

    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 10 Januar 2014, 19:23:52
    Hi Slarti,

    in der Fhem-Logausgabe ist nur zu erkennen, dass keine Verbindung zum SubProzess hergestellt werden konnte.
    Wir benötigen die Ausgabe auf "der anderen Seite".

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 10 Januar 2014, 19:27:10
    Hi JoeALLb,

    ich habe den Update-Prozess wieder am Laufen. Ich hatte einen Tippfehler in der Datei (es fehlte ein Unterstrich zwischen einem Datum und einer Uhrzeit).
    Das geht also wieder...

    Das mit dem Timeout konnte ich noch nicht finden, da es nicht einfach nur ein Parameter ist... ich bin aber noch dran...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: Slarti am 10 Januar 2014, 19:35:01
    Das kam auf der Konsole:

    /etc/init.d/fhem start


    Starting fhem...
    XYZ@XYZ:/home/pi# Current: "fhem.pl", gPath: "./FHEM"
    Current: "FHEM/00_SONOS.pm", gPath: ""
    2014.01.10 19:18:41 1: SONOS0: FHEM/00_SONOS.pm is listening to Port 4711
    2014.01.10 19:18:44 1: SONOS0: Connection accepted from localhost:41393
    2014.01.10 19:18:46 3: SONOS0: Received: 'SetData:Sonos:tcp:Sonos_Wohnzimmer:RINCON_000E58545B7601400'
    2014.01.10 19:18:46 3: SONOS0: Received: 'StartThread'
    2014.01.10 19:18:46 3: SONOS1: UPnP-Thread gestartet.
    2014.01.10 19:18:47 1: SONOS3: Restore-Thread gestartet. Warte auf Arbeit...
    2014.01.10 19:18:47 1: SONOS2: IsAlive-Thread gestartet. Warte 120 Sekunden und pruefe dann alle 30 Sekunden...

    Danach kam nichts mehr
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 10 Januar 2014, 19:48:00
    Hi Slarti,

    das ist komisch. Aus irgendeinem Grunde muss er ja mit einem Fehler aufhören, und das eigentlich auch mitteilen...

    Ich fürchte, da musst du nochmal auf die Suche gehen, und rausfinden, wo er da was rausschreibt... da muss es einfach nochwas geben...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: herman am 12 Januar 2014, 17:26:35
    Hallo Reiner,

    ich habe beim debuggen der Probleme bzgl. FHEMobile zusammen mit Arno festgestellt, dass das Encoding im Attribut roomName bei Umlauten Latin1 ist. Laut Arno müsse dies aber UTF-8 sein. Mir fehlt an dieser Stelle das FHEM Entwickler Knowhow, aber ich dachte ich schreibe die Erkenntnisse mal hier rein. Nachdem Umbenennen meines Play1 von Küche in Kueche hat FHEMobile auch wieder funktioniert. Das ü wurde in der FHEM Weboberfläche auch als Kasten angezeigt.

    Ansonsten habe ich mit dem Sonos-Modul sehr viel Freude!

    Viele Grüße,
    Merhan
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 12 Januar 2014, 17:37:42
    Hallo Merhan,

    das kann gut sein. Bislang gebe ich einfach die Daten so weiter, wie ich sie erhalte. Ich kann ja mal schauen, das ich sie entsprechend konvertiere.

    Wie sieht das denn mit den Umlauten z.B. bei den Titeln aus?
    Bei mir wird das alles auf der Weboberfläche normal dargestellt (auch in den FileLog-Dateien dazu)...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: JoeALLb am 13 Januar 2014, 11:30:45
    Ich habe das Timeout jetzt mal über das Wochenende laufen lassen,
    folges ergebnis habe ich danach erhalten:

    Loading device description failed with error: 500 Can't connect to 169.254.64.109:49153 (timeout) at FHEM/00_SONOS.pm line 1974 thread 1.
    Loading device description failed with error: 500 Can't connect to 169.254.64.109:49153 (Keine Route zum Zielrechner) at FHEM/00_SONOS.pm line 1974 thread 1.
    Loading device description failed with error: 500 Can't connect to 169.254.64.109:49153 (Keine Route zum Zielrechner) at FHEM/00_SONOS.pm line 1974 thread 1.
    Loading device description failed with error: 500 Can't connect to 169.254.64.109:49153 (Keine Route zum Zielrechner) at FHEM/00_SONOS.pm line 1974 thread 1.
    Loading device description failed with error: 500 Can't connect to 169.254.64.109:49153 (Keine Route zum Zielrechner) at FHEM/00_SONOS.pm line 1974 thread 1.
    Loading device description failed with error: 500 Can't connect to 169.254.64.109:49153 (Keine Route zum Zielrechner) at FHEM/00_SONOS.pm line 1974 thread 1.
    Out of memory!
    Perl exited with active threads:
            1 running and unjoined
            1 finished and unjoined
            0 running and detached

    Von den "Keine Route zum Zielrechner" waren natürlich mehr als die oben angezeigten im Log.
    Aktualisiere jetzt gerade auf die neueste Develop-Version, damit die Codezeilen wieder zusammenpassen.

    Aufgefallen ist mir, dass dieses Verhalten am Freitag nach dem Absetzen folgendes Befehls erstmalig aufgetreten ist: Vielleicht hilft Dir das weiter?
    set Sonos Groups [Sonos_Wohnzimmer,Sonos_Kueche];set Sonos_Wohnzimmer LoadRadio BAYERN%%203;set Sonos_Wohnzimmer Play;set Sonos_Wohnzimmer Volume 40;set Sonos_Kueche Volume 40;Der FHEM Prozess lief danach noch, es reagierte jedoch nicht mehr. Es wurden nichtmal mer Lodeinträge geschrieben.
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 13 Januar 2014, 13:25:25
    Hi JoeALLb,

    hmm... ich gehe mal davon aus, dass diese Zeile aus einer Notify-Definition stammt (sonst wäre ein %-Zeichen zuviel drin). Ich kann ja mal versuchen, das bei mir so nachzustellen.
    Es könnte sein, dass die auf diese Aktionen folgenden Events eine problematische Situation verursachen, weil diese lange Befehlssequenz noch nicht abgearbeitet ist (wenn du z.B. die Gruppen veränderst, wird das ja wieder an Fhem gemeldet)...

    Danke schon mal für die Info...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: strauch am 13 Januar 2014, 13:55:57
    Ich setzte zur Zeit das Sonos und XBMC Modul ein, was schade ist, in Sonos muss Play/Pause etc. groß geschrieben werden bei XBMC klein. Ich kann also kein notify machen nach dem Motto:

    define notify_Telefon notify Fritzbox:.*ring set sonos,xbmc pause
    sondern ich muss

    define notify_Telefon notify Fritzbox:.*ring set sonos Pause;set xbmc pause
    schreiben, keine große Sache, aber vielleicht können sich ja die Owner zu einer Schreibweise durchringen, oder groß und klein erlauben?!
    Wusste jetzt auch nicht wohin ich das schreiben soll, hier oder im xbmc Thread.
    Danke
    Titel: Antw:Sonos steuern
    Beitrag von: herman am 13 Januar 2014, 16:06:55
    Wie sieht das denn mit den Umlauten z.B. bei den Titeln aus?
    Bei mir wird das alles auf der Weboberfläche normal dargestellt (auch in den FileLog-Dateien dazu)...

    Hallo Reiner,

    die Titel sehen gut aus.

    Viele Grüße,
    Merhan
    Titel: Antw:Sonos steuern
    Beitrag von: JoeALLb am 13 Januar 2014, 18:47:11
    Hallo Reiner,

    Korrekt,  es war ein Notify. Habe ihn aber soeben nochmal abgesetzt,  und alles klappte.

    Ich habe diese Befehle auf eine Fernbedienung gelegt und vermute nun,  dass irgendeine Kombination der Befehle das auslöst....  Wenn Du eine Idee hast,  was ich prüfen kann,  dann immer her damit.

    LG Joe

    Gesendet von meinem Xperia Pro mit Tapatalk

    Titel: Antw:Sonos steuern
    Beitrag von: det. am 13 Januar 2014, 19:34:58
    Hallo Jo,
    der SONOS-Player scheint intern recht lange zu brauchen um Befehle abzuarbeiten (unabhängig von FHEM). Ich hab das mit folgender Befehlsfolge zum Einschalten über FS20 Funksteckdose <Medien> inzwischen gelöst. Dauert zwar etwas, ist sicher nicht effektiv programmiert, aber funktioniert sehr zuverlässig:

    define Sonos_Notify notify Medien:on {\
    fhem "define SonosStart0 at +00:00:45 set Sonos_Wohnzimmer LoadRadio Radio%%20Paradise";;\
    fhem "define SonosStart1 at +00:01:00 set Sonos_Wohnzimmer Volume 15";;\
    fhem "define SonosStart2 at +00:01:02 set Sonos_Wohnzimmer Play";;\
    fhem "define SonosStart3 at +00:01:03 set Sonos_Wohnzimmer Mute off"\
    }
    Titel: Antw:Sonos steuern
    Beitrag von: JoeALLb am 13 Januar 2014, 20:12:32
    Hallo Det, danke für die Info, ich werde damit herumspielen.
    Verstehe aber nicht, warum Du erst nach 45 Sekunden beginnst? Direkt am Anfang fürfte FHEM doch nicht ausgeladtet sein, oder?

    Frage an Reiner:
    Vielen Dank für die StoppAll-Funktion. Diese ist bisher echt zuverlässig und geht deutlich schneller wie das einzelne Ausführen der Befehle.
    Nun die Frage: Wäre solch ein "Stapeln" von Befehlen eventuell auch in anderen Bereichen ein Vorteil? Ich kenne die Struktur von Upnp leide rüberhaupt nicht, könnte mir aber vorstellen, dass ein Befehl: "Starte mit Lautstärke 40" effizienter ist als beides getrennt....
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 13 Januar 2014, 20:39:29
    Hi Zusammen,

    im Prinzip gibt es diese Warteschlange natürlich schon.
    Jeder Befehl, den man von Fhem an den SubProzess übergibt, wird dort erstmal in eine Warteschlange gelegt, die der Reihe nach verarbeitet wird.
    Der Spezialfall (Stop|Pause)All wird halt als ein Befehl an den SubProzess übergeben, und sendet dort (wie immer) die Befehle an jeden Player einzeln.
    Ein Zusammenfassen von Befehlen gibt es in UPnP nicht. Jede Anweisung ist ein einzelnes XML-Strukturiertes Paket von Informationen (ein sogenanntes SOAP-Paket), welches auch mit einem solchen beantwortet wird.

    Das Hauptproblem an dieser Stelle dürfte eine Kollision einer Player-Reaktion mit dem nächsten Befehl innerhalb von Fhem sein.
    Das Problem ist, dass ich (bzw. der SubProzess) für die Verarbeitung von Benachrichtigungen diverse Informationen bei Fhem nachfragen muss, z.B. ob ein Gerät disabled wurde, oder bei einem Lautstärke-Event, welche Lautstärkegrenzen festgelegt wurden.
    Diese Anfrage kann Fhem nicht bedienen, wenn es gerade in einer Befehlssequenz ist (Fhem ist Single-Threaded, was eigentlich auch gut ist). Dadurch entsteht aber u.U. ein Dead-Lock: Der Fhem Prozess arbeitet gerade die Befehlssequenz ab, der SubProzess verarbeitet gerade ein reinkommendes Player-Event und benötigt genau jetzt Informationen, um dieses Event korrekt verarbeiten zu können, und kann den nächsten Befehl nicht in seine Warteschlange legen...

    Ich muss mir da noch ein paar tiefergehende Gedanken machen, wie ich dieses Dilemma konzeptionell am sichersten umschiffe...

    Zur Lösung von Det: Es würde reichen, die Befehle ca. 1-2 Sekunden zu trennen. Vielleicht mit einem Sleep-Befehl, der von Rudi ja so gebaut wurde, das Fhem währenddessen andere Dinge erledigt... Sobald die Verarbeitung der Playerreaktionen nicht geblock wird, solte das normal durchgehen können...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: det. am 13 Januar 2014, 21:06:23
    Hallo  Reiner,
    Du hast mit Sicherheit Recht, aber mein ZP90 lässt sich nach Aufruf dieses bestimmten Radiosenders auch bei Aufruf über die Sonos App am IPad gefühlte 10-12s Zeit, bis die ersten Töne kommen. An der Internetverbindung liegt es nicht (entertain VDSL50), eher am Radiostream. Da hat die Abarbeitung der nächsten Befehle 1-2s nach dem Aufruf des Streams keine Chance gehabt. Daher diese umständliche Lösung - die Zeiten hab ich durch Probieren schon optimiert. Die ersten 45s braucht SONOS nach Strom einschalten um zu booten. Toll finde ich den Konstrukt auch nicht, aber seither kann ich den SONOS zuverlässig dank Deinem genialen Modul über mein FritzFon einschalten, ohne gleich das IPad in die Hand zu nehmen.
    Titel: Antw:Sonos steuern
    Beitrag von: gki am 13 Januar 2014, 22:16:25
    Hallo JoeAllb,

    Radiosender & Lautstärke in einem Befehl (EA_Sonos_P1 ist ein Aktor):

    define nSonos_Radio_P1 notify EA_Sonos_P1:on { \
        fhem "define tempSonosRadioP1 at +00:00:45 set Sonos_HR PlayURI http://stream.104.6rtl.com/rtl-live/mp3-128 12" \
    }

    Gleicher Effekt wie das Beispiel von det.

    Gruß,
    Ines
    Titel: Antw:Sonos steuern
    Beitrag von: JoeALLb am 14 Januar 2014, 09:47:09
    @Reiner und Det:

     Zitat aus einem Forumseintrag von Rudi:
    Demnach sollte hier Sleep nicht verwendet werden, solange die Befehle mit "fhem(...) angegeben sind...

    Ja, perl sleep() ist zu vermeiden. Ausnahme ist das fhem eigene sleep
    (blockiert fhem NICHT), ist aber auch nur fuer "reine" fhem Kommandos sinnvoll,
    also nicht aus einem perl Ausdruck heraus. Beispiel (on-for-timer fuer Arme :)
    OK
      define notify schalter:on set lamp on;; sleep 2.5;; set lamp off
    Nicht OK:
      define notify schalter:on { \
        fhem("set lamp on");;  \
        fhem("sleep 2.5");;  \
        fhem("set lamp off");; \
      }
    Titel: Antw:Sonos steuern
    Beitrag von: JoeALLb am 14 Januar 2014, 09:55:00
    @GKI:

    Danke für diese Idee: Diese schaltet jedoch um einiges schneller das Radio ein, als wenn ich die Befehle auf 2 getrennte aufteile:

    Dies ist demnach schneller als
    define tempSonosRadioP1 at +00:00:01 set Sonos_Wohnzimmer PlayURI http://stream.104.6rtl.com/rtl-live/mp3-128 40
    fhem "define SonosStart0 at +00:00:01 set Sonos_Wohnzimmer LoadRadio Radio%%20Paradise";;\
    fhem "define SonosStart1 at +00:00:02 set Sonos_Wohnzimmer Volume 15";;\


    @Reiner:
    Ich habe heute Nacht Sonos nochmal beobachtet und der Fehler ist wieder aufgetreten. Aufgefallen ist er mir heute kurz nachdem sich ein Sonos-Player
    über eine schaltbare Steckdose verabschiedet hat.
    Das Sonos-System selbst scheint keine Schwierigkeiten damit zu haben, das FHEM-Modul scheint ihn jedoch noch mit dieser Routengeschichte zu suchen.
    Stimmt jetzt die Codezeile, nachdem ich das Modul aktualisiert habe?
    Renewal of subscription failed with error: 412 Precondition Failed at FHEM/00_SONOS.pm line 1839 thread 1.
    Ich prüfe gerade, ob diese Zeilen wieder verschwinden, nachdem ich den Sonosplayer wieder eingeschaltet habe: --> Seit 3 Minuten habe ich keine Meldung mehr bekommen.
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 14 Januar 2014, 10:46:34
    Hi JoeALLb,

    diese Meldung hat aber nichts mit deiner unbekannten Route zum Host zu tun.
    Die Meldung "Renewal of subscription..." kommt immer dann, wenn der Wiederauffrischungs-Thread die angemeldeten Subscriptions aktualisieren möchte, und der Player aus Sicht des UPnP-Moduls in einem komischen Zustand ist, z.B. nicht mehr erreichbar...
    Diese Meldung kann man zunächst mal getrost ignorieren, da ich sie leider nicht unterdrücken kann.
    Wenn der IsAlive-Checker festgestellt hat, dass der Player nicht mehr da ist, sollte diese Meldung auf jeden Fall wegbleiben, da der Player dann aus der Renewal-Liste entfernt wurde... (so zumindest die Theorie :-)

    Zu meiner Sleep-Anmerkung:
    Rudi hat doch geschrieben, dass es für reine Fhem-Anweisungen sinnvoll ist. Du kannst doch immer, wenn du keine Berechnungen für irgendwelche Parameterwerte hast, auch die "Fhem-Schreibweise" für Befehlssequenzen verwenden, und musst nicht eine Verkettung von fhem()-Anweisungen in Perl machen (ich mache das immer nur zur besseren Lesbarkeit)...

    Zu der PlayURI-Anweisung: Hier sollte beachtet werden, dass unterschiedliche Dinge gemacht werden, und am Ende etwas anderes rauskommt.
    - PlayURI: Es wird direkt die URL an den Player übergeben, ein SetVolume und eine Play-Anweisung durchgeführt. Das bedeutet also 3 Anweisungen. Allerdings werden hier keine Stream-Informationen wie Cover oder so dargestellt.
    - LoadRadio+SetVolume+Play: es wird zunächst die Liste verfügbarer Radiosender abgefragt, danach die entsprechenden Informationen an den Player übergeben (also zwei Anweisungen). Dann wird ja Volume (2 Anweisungen, da der gesetzte Wert am Ende wieder abgefragt wird) und anschließend Play aufgerufen (eine Anweisung). Das sind in Summe 5 Anweisungen, allerdings wird der Radiosender "Sonos-konform" gesetzt, sodass alle Informationen sauber angezeigt werden und der Bezug zum Radiofavoriten noch existiert...

    Was man noch probieren könnte, wäre, den Radiosender in die Sonos-Favoriten zu packen (nicht die Radiofavoriten), und mit StartFavourite den Favoriten anzustarten. Der macht zwar im Prinzip das gleiche wie LoadRadio, ausser dass er die Play-Anweisung nicht in einem zweiten Fhem-Befehl stehen hat, aber genau das könnte ja schon helfen...

    Mit fällt gerade auf, wieviele Wege hier nach Rom führen :-)

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: JoeALLb am 14 Januar 2014, 11:34:41
    Hallo Reiner,

    danke für die Antworten...

    diese Meldung hat aber nichts mit deiner unbekannten Route zum Host zu tun.

    Sorry, da hab ich zuschnell hingeschaut. Dennoch bekomme ich diese Meldung regelmäßig, obwohl alle Player aktiv sind und per Kabel verbunden sind. Kein WLAN.
    Aber ich kann sie gerne ignorieren ;-)

    Zu meiner Sleep-Anmerkung:
    ...eine Verkettung von fhem()-Anweisungen in Perl machen (ich mache das immer nur zur besseren Lesbarkeit)...

    Ich wollte nur darauf hinweisen, da eben andere auch diese Schreibweise bevorzugen, jedoch hier eben lt. Rudi die Sleep-Anweisung nicht funktioniert.


    StartFavourite Scheint bei mir leider nicht zu funktionieren. Er nimmt den Befehl zwar an, es rührt sich jedoch nichts....
    set Sonos_Wohnzimmer StartFavourite "BAYERN 3"
    Mache ich da was falsch?
    Titel: Antw:Sonos steuern
    Beitrag von: herman am 14 Januar 2014, 12:07:14
    Hi Zusammen,

    im Prinzip gibt es diese Warteschlange natürlich schon.
    Jeder Befehl, den man von Fhem an den SubProzess übergibt, wird dort erstmal in eine Warteschlange gelegt, die der Reihe nach verarbeitet wird.
    Der Spezialfall (Stop|Pause)All wird halt als ein Befehl an den SubProzess übergeben, und sendet dort (wie immer) die Befehle an jeden Player einzeln.
    Ein Zusammenfassen von Befehlen gibt es in UPnP nicht. Jede Anweisung ist ein einzelnes XML-Strukturiertes Paket von Informationen (ein sogenanntes SOAP-Paket), welches auch mit einem solchen beantwortet wird.

    Das Hauptproblem an dieser Stelle dürfte eine Kollision einer Player-Reaktion mit dem nächsten Befehl innerhalb von Fhem sein.
    Das Problem ist, dass ich (bzw. der SubProzess) für die Verarbeitung von Benachrichtigungen diverse Informationen bei Fhem nachfragen muss, z.B. ob ein Gerät disabled wurde, oder bei einem Lautstärke-Event, welche Lautstärkegrenzen festgelegt wurden.
    Diese Anfrage kann Fhem nicht bedienen, wenn es gerade in einer Befehlssequenz ist (Fhem ist Single-Threaded, was eigentlich auch gut ist). Dadurch entsteht aber u.U. ein Dead-Lock: Der Fhem Prozess arbeitet gerade die Befehlssequenz ab, der SubProzess verarbeitet gerade ein reinkommendes Player-Event und benötigt genau jetzt Informationen, um dieses Event korrekt verarbeiten zu können, und kann den nächsten Befehl nicht in seine Warteschlange legen...

    Ich muss mir da noch ein paar tiefergehende Gedanken machen, wie ich dieses Dilemma konzeptionell am sichersten umschiffe...

    Zur Lösung von Det: Es würde reichen, die Befehle ca. 1-2 Sekunden zu trennen. Vielleicht mit einem Sleep-Befehl, der von Rudi ja so gebaut wurde, das Fhem währenddessen andere Dinge erledigt... Sobald die Verarbeitung der Playerreaktionen nicht geblock wird, solte das normal durchgehen können...

    Grüße
    Reiner

    Diese Deadlocksituation tritt bei mir ab und zu auf. Ich beende dann den FHEM und den Subthread mit dem "kill" Befehl und starte FHEM neu.
    Ich habe in FHEM ein paar Funktionen geschriebenen, die sicherstellen, dass FHEM keine Sonosbefehle absetzt solange das System nicht "hochgefahren" ist. Das bedeutet in meinem Setup, dass 3 Minuten nach dem Einschalten einer Funksteckdose, an dem eine Sonos-Komponente hängt, vergangen sein muss. Seitdem habe ich relativ wenig Probleme mit Deadlocks/Abstürzen aber sie treten dennoch sporadisch auf.

    Grüße,
    Merhan
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 14 Januar 2014, 12:48:57
    Hi JoeALLb,

    der Befehl muss ohne Anführungszeichen geschrieben werden:
    set Sonos_Wohnzimmer StartFavourite BAYERN%203
    Beachte bitte, dass in einem Notify das Prozent maskiert werden muss (also %%).

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: JoeALLb am 14 Januar 2014, 13:09:28
    Hallo Reiner,

    sorry, Anfängerfehler. Hatte es wieder mit den 2x% versucht....
    Titel: Antw:Sonos steuern
    Beitrag von: JoeALLb am 14 Januar 2014, 15:12:08
    Nachtrag:
    ohne sleep bekomme ich es nicht zum laufen!

    Das funktioniert nicht!
    define wz.Bedienung.NotifyT6 notify wz.Bedienung.virt_Btn6.virtActTrigger.* {\
    set Sonos_Wohnzimmer StartFavourite BAYERN%%203;
    }

    Das funktioniert bisher immer.
    define wz.Bedienung.NotifyT6 notify wz.Bedienung.virt_Btn6.virtActTrigger.* {\
    sleep 1;
    set Sonos_Wohnzimmer StartFavourite BAYERN%%203;
    }
    Titel: Antw:Sonos steuern
    Beitrag von: JoeALLb am 15 Januar 2014, 22:34:39
    Statusbericht: Seit dem Update auf die aktuelle dev-version konnte ich den routing-fehler nicht mehr provozieren. Kann sein, dass er damit schon behoben ist?

    Gesendet von meinem Xperia Pro mit Tapatalk

    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 15 Januar 2014, 23:26:23
    Hi JoeALLb,

    zumindest nicht direkt. Die Dev-Version verbindet über Telnet zurück an Fhem (um die Attribute u.ä. abzufragen). Vielleicht sorgt das für ein verändertes Verhalten bei dem Routing-Problem...

    Ich lasse gerade ein Konstrukt in meinem Kopf reifen, womit ich diese Dead-Lock Situation allgemein umgehen kann. Das muss aber noch etwas abhängen, bevor ich es umsetzen kann...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: gki am 16 Januar 2014, 22:41:16
    Hallo Reiner,

    nur zur Info, da du ja ein neues Konstrukt in deinem Kopf reifen lässt  :)

    Ich habe heute mal die dev-Version Version geladen.

    restart fhem als user fhem

    Current: "/usr/share/fhem/fhem.pl", gPath: "/usr/share/fhem/FHEM"
    Current: "/usr/share/fhem/FHEM/00_SONOS.pm", gPath: ""
    Bind failed: Address already in use at /usr/share/fhem/FHEM/00_SONOS.pm line 4655.

    Habe jetzt wieder die standard-Version geladen.

    Gruß,
    Ines
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 16 Januar 2014, 23:09:07
    Hi Ines,

    diese Fehlermeldung bedeutet, dass der Port, den du in der Fhem-Konfiguration für den Subprozess vorgesehen hast (in meinen Beispielen immer das 4711), bereits belegt ist.

    Da müsstest du mal schauen, wer den belegt, und den Prozess entsprechend schliessen, oder in der Fhem-Konfiguration einen anderen Port einstellen.
    Lief dort Fhem veilleicht schon einmal? Sonst versuch mal einen Neustart deiner Kiste, und lass Fhem nochmal versuchen...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: gki am 16 Januar 2014, 23:44:02
    Hallo Reiner,

    ich hatte mir die Ports (netstat -letu | grep fhem) und Prozesse (ps -Af | grep fhem) angesehen.
    Versuche es mit der dev-Version später nochmal wenn ich mehr Zeit habe.

    Danke

    Gruß,
    Ines
    Titel: Es werden keine Player erkannt
    Beitrag von: ArminK am 19 Januar 2014, 15:11:26
    Hallo zusammen, vor Allen Dingen Reinerlein,

    hoffe ich liege hier nicht falsch...folgendes Problem:
    Habe mir letzte Woche eine Sonos Play:1 nebst einer Bridge zugelegt. Beim Versuch das Sonos-Modul einzubinden bin ich kläglich gescheitert. Vermutlich weil meine Fhem-Installation auf dem Raspberry aus ziemlich alten tagen stammte, obwohl immer wieder upgedated wurde.
    Habe dann einen zweite Pi samt neuer SD-Karte genommen und fhem von Grund auf neu installiert und um meine Konfiguration erweitert.
    Alle nötigen Sachen laut Sonos-Wiki (im Übrigen: Super Beitrag!) installiert, den Eintrag define Sonos SONOS localhost:4711 30 in die fhem.cfg getippt, beim Start finde ich folgendes im Log:
    2014.01.19 15:01:42 3: Opening Sonos device localhost:4711
    2014.01.19 15:01:42 3: Sonos device opened

    Allerdings werden keine Player (bzw. kein Player, habe ja aktuell nur einen) angelegt wie im Wiki beschrieben... Hat jemand eine Idee woran das liegen könnte?

    Grüße aus Heidelberg,
    ArminK
    Titel: Antw:Sonos steuern
    Beitrag von: JoeALLb am 19 Januar 2014, 15:45:52
    Und du hast sicher nur ein Netzwerk? Funktioniert dein Sonos mit anderen controller-apps,  zB einer Handyapp oder auf dem PC?  Dann kannst du von dieser Apple mal die IP ausfindig machen,  die das Play 1 erhalten hat.  Kannst du diese von deinem Rpi aus pingen?

    Gesendet von meinem Xperia Pro mit Tapatalk

    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 19 Januar 2014, 17:38:49
    Hallo ArminK,

    im Prinzip sieht das schon gar nicht soo schlecht aus. Wenn im Fhem-Log steht, dass das Device geöffnet werden konnte, dann ist der SubProzess zumindest schon mal angestartet.
    Um jetzt sehen zu können, was wirklich auf Seiten des SubProzesses schief läuft, musst du dir die Konsolenausgabe des Prozesses anschauen.

    Da der SubProzess ein eigenständiger Prozess ist, kann er nicht mit in das "normale" Fhem-Log schreiben, sondern gibt alles direkt auf STDOUT (bzw. manchmal auch STDERR) aus. Dort steht je nach Verbose-Level sehr detailliert, was gerade gemacht wird, und was einen Fehler verursacht haben könnte...

    Wenn du das aus deinem Startskript heraus nicht in den Griff bekommst, kannst du für diese Untersuchung Fhem auch manuell starten (dazu aber erst eine etwaig laufende Instanz von Fhem beenden, und in das korrekte Verzeichnis wechseln):
    sudo perl fhem.pl fhem.cfgDann siehst du direkt auf der Konsole die Ausgaben des SubProzesses..

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: ArminK am 20 Januar 2014, 16:21:50
    Hallo Reinerlein,

    also habe das jetzt mal (vom Büro aus via SSH) probiert. Mir fiel noch auf, das die Rechte von 00_sonos.pm anders waren als bei den restlichen files...das habe ich vorher mal noch angepasst auf von 644 auf 666

    dann gestartet und als Ausgabe bekomme ich:

    Prototype mismatch: sub main::head: none vs ($) at ./FHEM/00_SONOS.pm line 163
    Current: "fhem.pl", gPath: "./FHEM"

    und Fhem startet offensichtlich nicht mehr, zumindest komme ich von extern nicht mehr dran...

    setzte jetzt auch noch die Rechte von 21_SONOSPLAYER.pm auf 666 und versuche nochmal
    Titel: Antw:Sonos steuern
    Beitrag von: ArminK am 20 Januar 2014, 16:41:34
    Zweiter Versuch wie oben vorgewarnt: Keine Fehlermeldung mehr aber es sieht so aus wie wenn fhem hängt, kann ich aber erst heute Abend checken wenn ich Zuhause bin...kann ich denn auf der Kommandozeile feststelen ob fhem läuft?
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 20 Januar 2014, 16:54:51
    Hallo ArminK,

    diese Fehlermeldung sieht komisch aus, und kann ich persönlich auch nicht nachvollziehen. An der Stelle steht im Code die "Package"-Anweisung. Ich wusste gar nicht, dass es dort auch was mit Prototypen geben kann...

    zu deiner zweiten Frage:
    Mittels
    ps aux | grep perl
    kannst du dir alle laufenden Perl-Prozesse auflisten lassen. Da sollte dann mindestens einer mit dem Skriptnamen fhem.pl auftauchen, dann läuft Fhem prinzipiell...

    Du kannst auch von der Konsole aus in die Log-Datei von Fhem reinschauen:
    tail -f /path/to/logfile.log
    Damit kannst du "Live" mitlesen, was Fhem da so reinschreibt...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: ArminK am 20 Januar 2014, 17:02:44
    Hallo Reiner,

    vielen Dank für die Hilfe. Kurzes Update: Habe die Rechte via FTP wieder auf 644 gesetzt und nochmal einen Reboot gemacht. Es kam mir so vor als ob fhem nicht von alleine starten wollte (war sehr lange nicht erreichbar) also nochmal via ssh fhem händisch gestartet, ein paar Minuten später noch einmal nachgeschaut und siehe da: fhem ist wieder via dyndns zu erreichen! Und was noch besser ist: Ich hab jetzt bei meinen Devices die Sonos bridge und den Sonos Player gelistet....erklären kann ich mir das nicht...ich werde jetzt mal versuchen damit zu spielen und gebe Dir ein Feedback wie es aussieht!

    Grüße
    Armin
    Titel: Antw:Sonos steuern
    Beitrag von: herman am 22 Januar 2014, 13:00:05
    Hallo Reiner,

    kann man Dich bzgl. dem Deadlock Thema unterstützen? Die Logs sind bei mir gerade nicht sonderlich aussagekräftig. Grundsätzlich habe ich zwei Situationen:

    a) Subprozess hängt, FHEM läuft. Befehle werden von FHEM abgesetzt, in der Konsole erscheint ein DoWork aber keine Reaktion. Wenn ich ein delete Sonos in FHEM ausführe werden die ganzen Befehle abgearbeitet

    b) FHEM hängt, Subprozess ?: Wenn ich FHEM abschieße werden wieder alle Befehle abgearbeitet

    Wenn ich irgendetwas testen soll, lass es mich wissen

    Viele Grüße,
    Merhan
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 22 Januar 2014, 13:13:07
    Hallo Merhan,

    danke für das Angebot, aber ich bin noch mitten in der Umsetzung meiner Idee. Und dann muss das ja am Ende auch noch funktionieren :-)

    Ich bin momentan nicht zuhause, sodass die Entwicklung bis Ende der Woche ruht. Aber dann sollte es eigentlich weitergehen, sodass ich da hoffentlich bald was neues zu sagen/schreiben kann.

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: JoeALLb am 24 Januar 2014, 14:37:05
    Ich komme mit meiner Kalender-Einbindung nicht wirklich weiter.
    Mir ist schon klar, dass meine Frage hier nicht das Sonos-Modul selbst betrifft,
    vielleicht hat aber dennoch einen Tip für mich. GGf. wäre das als Beispiel fürs Wiki auch nett.

    Mit einer dieser Zeile (nur anderen URL) habe ich einen Google-Kalender in fhem eingebunden. Funktioniert soweit ganz gut!
    define Kalender_W Calendar ical url https://www.google.com/calendar/ical/no9r7jrf5cnactm2v8s%40group.calendar.google.com/private-cd4e2da76beb60/basic.ics 600
    Ein simples Starten von Sonos darüber funktioniert bereits!

    Für eine Wecker-Einbindung versuche ich jedoch, den Wecker von Sonos selbst zu programmieren, dabei habe ich jedoch code-verständnis-probleme.


    Mit diesem define habe ich schwierigkeiten...
    Kalender_W:modeUpcoming.*googlecom {
    my $reading="%EVTPART0"; my $uid= "%EVTPART1"; my $erinnerungsname= fhem("get Kalender_W full $uid");
    my ($sdate,$stime,$edate,$etime) = $erinnerungsname =~ /.*?(\d\d.\d\d.\d\d\d\d)\s(\d\d:\d\d:\d\d)-(\d\d.\d\d.\d\d\d\d)\s(\d\d:\d\d:\d\d).*\z/;
    fhem("set Sonos_Schlafzimmer Speak 40 de $sdate , $stime , $edate , $etime"); 

    set Sonos_Schlafzimmer Alarm Create 100 { Enabled => 1, Volume => 35, StartTime => '$stime', Duration => '00:15:00', Repeat => 0, Shuffle => 0, ProgramURI => 'x-rincon-buzzer:0', ProgramMetaData => ' ', Recurrence_Once => 0, Recurrence_Monday => 1, Recurrence_Tuesday => 1, Recurrence_Wednesday => 1, Recurrence_Thursday => 1, Recurrence_Friday => 1, Recurrence_Saturday => 0, Recurrence_Sunday => 0, IncludeLinkedZones => 0 };
    }
    fhem("set Sonos_Schlafzimmer Speak 40 de Weckzeit in Sonos auf $stime geändert."); 

    define SonosAddGroup at +*00:10:00 set Sonos Groups [Sonos_Schlafzimmer,Sonos_Bad];

    Die ersten drei Zeilen scheinen zu funktionieren, aber mit der Zeitübergabe in der dritten Zeile hapert es.
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 24 Januar 2014, 15:08:30
    Hi JoeALLb,

    das, was mir so direkt auffällt, ist, dass das Set mit dem Alarm-Create und dem Gruppendefinieren nicht in einem fhem() steht.
    Du befindest dich doch auf "Perl-Ebene", oder übersehe ich da was?

    Desweiteren kannst du als ID für das Create einfach 0 angeben. Dann fragst du dich später nicht, was die 100 da sollte :-) Der Parameter muss nur da sein, damit ich das Alarmhandling in einer Methode abhandeln kann, wird aber für das Create ignoriert...

    Ausserdem dürftest du ein Problem bekommen, wenn du den Kalendereintrag anpasst, dann erzeugst du doch immer einen neuen Alarm, oder? Ich würde einmal einen Alarm (korrespondierend zum Kalendereventnamen vielleicht) erzeugen, und mittels der dann bekannten ID diesen bei den Kalender-Events immer nur anpassen. Dann gibt es nix doppeltes.

    Desweitern sehe ich gerade, dass du anschließend zwei Player gruppierst. Das hat aber auf den Alarm keine Auswirkung, da du den Parameter "IncludeLinkedZones" auf 0 gesetzt hast. Das sollte dann auf 1 gesetzt werden, dann werden gruppierte Zonen mit in den Alarm mit einbezogen...

    Soweit das, was mir spontan auffällt, vielleicht hilft dir das aber ja schon weiter :-)

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: JoeALLb am 24 Januar 2014, 15:43:34
    Hallo Reiner, danke für die Antwort.
    Anbei meine Kommentare:


    das, was mir so direkt auffällt, ist, dass das Set mit dem Alarm-Create und dem Gruppendefinieren nicht in einem fhem() steht.
    Du befindest dich doch auf "Perl-Ebene", oder übersehe ich da was?

    mit fhem davor hat er die Variable der Zeit nie ausgewertet und übergeben, deshalb habe ich mit ein paar anderen schreibweisen experimentiert.
    Gibt es eigentlich für ein Notify soetwas wie "Gib "Erfolg" auf der Telnet-Console aus?"

    Desweiteren kannst du als ID für das Create einfach 0 angeben. Dann fragst du dich später nicht, was die 100 da sollte :-) Der Parameter muss nur da sein, damit ich das Alarmhandling in einer Methode abhandeln kann, wird aber für das Create ignoriert...
    Ausserdem dürftest du ein Problem bekommen, wenn du den Kalendereintrag anpasst, dann erzeugst du doch immer einen neuen Alarm, oder? Ich würde einmal einen Alarm (korrespondierend zum Kalendereventnamen vielleicht) erzeugen, und mittels der dann bekannten ID diesen bei den Kalender-Events immer nur anpassen. Dann gibt es nix doppeltes.
    Das hatte ich mit 100 eigentlich schon gemacht, weshalb ich immer die 100 dafür verwenden wollte. Allerdings habe ich den ursprünglichen Alarm in Sonos selbst angelegt und
    wollte eben genau diesen hier abändern.



    Desweitern sehe ich gerade, dass du anschließend zwei Player gruppierst. Das hat aber auf den Alarm keine Auswirkung, da du den Parameter "IncludeLinkedZones" auf 0 gesetzt hast. Das sollte dann auf 1 gesetzt werden, dann werden gruppierte Zonen mit in den Alarm mit einbezogen...

    Meine Gedanken dazu waren folgende: In der Früh, wenn der Wecker egeht, weiß ich nicht, in welcher Zone sich das Schlafzimmer befindet.
    Aus diesem Grund schalte ich den Sonos dort ohne gruppen ein.
    Da ich nach ca. 10 minuten ins Bad gehe, möchte ich nach 10 Minuten den Player in Bad mit in die Gruppe aufnehmen.
    Da dann das Schlafzimmer schon Musik "spielt", sollte die selbe Musik einfach auch im Bad gespielt werden.

    Das sollte doch so funktionieren?!?

    liebe Grüße
    Joe
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 24 Januar 2014, 17:03:19
    Hi Joe,

    hier mal ein Codeschnipsel für die Variablen-Geschichte (nicht vollständig :-):
    {
      .
      fhem("set Sonos_Schlafzimmer Alarm Update 100 { Enabled => 1, StartTime => '$stime' }");
      .
    }
    Wenn du einen Perl-String mit doppelten Anführungszeichen beginnst, kannst du zum einen einfache Anführungsstriche innerhalb des Strings direkt verwenden, und zum anderen einfache Variablennamen angeben, die dann auch aufgelöst werden.
    Wenn du mit einfachen anfängst, kannst du doppelte im String haben, aber es werden keine Variablen aufgelöst.

    Bei einem Update brauchst du in dem Hash auch nur die Parameter angeben, die sich ändern sollen. Alles andere wird beibehalten...

    Zu der ID: Diese wird beim Erzeugen eines Alarms durch das Sonos-System vergeben, und kann nicht vorgeschlagen werden. Deswegen wird der Parameter durch das Modul (für Create) ignoriert. Die Rückgabe in LastActionResult enthält dann die neue ID.

    Erfolg/Misserfolg: Du kannst einfach eine Log-Ausgabe durchführen:
    Log3 Sonos_Wohnzimmer, 3, "Alles OK";
    .
    .
    Log3 Sonos_Wohnzimmer, 1, "Hier ist ein Fehler aufgetreten";
    Also erst den Devicenamen (ist für den Devicespezifischen Loglevel wichtig), dann der Loglevel dieser Nachricht (u.U. wird die Nachricht je nach gesetztem Deviceloglevel unterdrückt), und dann die Nachricht selbst. Üblicherweise ist die Nummer kleiner, je mehr die Meldung einen Fehler beschreibt :-)
    Dann kannst du deine Testausgabe auch in den Log schreiben lassen, und musst es dir nicht erzählen lassen :-)

    Leider kann ich dir das bzgl. der Gruppierung nach dem Weckerstart nicht sagen. Ich benutze den nicht :-)

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: djhans am 28 Januar 2014, 14:09:38
    Hallo zusammen,
    ich lebe auch noch und lese auch sporadisch hier mit, allerdings erlaubt es meine Zeit derzeit nicht, weitere Sonos-Tests zu machen. Mein fhem liegt quasi auf Eis...

    Ich habe aber mal eine Frage an die Sonos Experten. Ich weiß, das gehört nicht gerade hier hin, brennt mir aber unter den Nägeln und ggf. kennt jemand einen workaround dazu.

    Ich muss mein komplettes Sonos System platt machen. Somit verliere ich die gespeicherten Playlisten. Hat jemand eine Idee, wie ich diese sichern und später wieder zurückspielen kann? Hat man Zugriff auf die Listen über das fhem-Modul?

    Wäre klasse, wenn es eine Lösung gäbe,
    Danke und Gruß,
    djhans
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 28 Januar 2014, 15:47:37
    Hi djhans,

    es gibt mit dem Modul die Möglichkeit die aktuelle Abspielliste als .m3u Datei zu sichern (und natürlich auch wieder zu laden).
    Momentan funktionieren auch Napster und Spotify-Titel als besondere Formate in der Playlist.
    Du solltest das aber am Besten mal testen, ich glaube nicht, dass es viel benutzt wird, somit kann ich auch nicht sagen, ob da noch was im argen liegt.

    Wenn du andere Titel als Standard, Napster oder Spotify benötigst, dann schreib das hier, dann schaue ich mal, was da geht.

    Ach so, die Befehle lauten SavePlaylist und LoadPlaylist. Formate und Hinweise siehe Wiki...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: djhans am 28 Januar 2014, 18:33:24
    Hi Reiner,
    ich bin schon wieder zu doof.
    Habe die Playliste in den Bad-Sonos geladen und will jetzt mit:

     set Sonos_Bad SavePlaylist file:c:/Test/Test.m3u
    abspeichern.

    Wo speichert er denn hin, wenn ich das im Browser angebe? Das muss doch lokal auf dem Pi sein und nicht auf meinem PC, oder? Ich hätte erwartet, dass er mit
     set Sonos_Bad SavePlaylist file:Test.m3u
    das ganze im fhem Verzeichnis auf dem Pi ablegt....
    djhans.
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 28 Januar 2014, 18:50:35
    Hi djhans,

    das Prinzip ist korrekt. Die Angabe mit "c:" funktioniert allerdings nur, wenn du Fhem unter Windows laufen hast.
    Es zählt immer die Sichtweise vom Fhem-SubProzess aus (also im Normalfall im FHEM-Vz., also dort wo die Module alle liegen)...
    Am Besten ein bekanntes Verzeichnis angeben, z.B. "/mnt/SonosSpeak/test.m3u", falls du das Vz. hast...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: djhans am 28 Januar 2014, 22:09:05
    Hallo,
    yep das funzt! Die Playlisten lassen sich speichern und anschließend wieder in ein anderes Sonossystem laden.
    Und so habe ich es gemacht:
    1. Player im Controller auswählen, z.B. "Schlafzimmer"
    2. Playliste unter "Sonos Playlisten" auswählen und in den Abspielbereich des gewählten Players laden
    3. unter fhem: set Sonos_Schlafzimmer SavePlaylist file:Test.m3u
    4. Playliste wird als m3u im fhem-Pfad gespeichert

    anschließend...
    set Sonos_Schlafzimmer LoadPlaylist file:Test.m3u.
    dann im SonosController selber: Playliste speichern unter <beliebigen Namen vergeben>

    Tolle Sache! auf diese Art und Weise kriegt man jede Playliste ins SonosSystem. eine andere Möglichkeit kenne ich nicht!

    Gruß,
    Christian.
    Titel: Antw:Sonos steuern
    Beitrag von: djhans am 30 Januar 2014, 22:21:46
    Hallo,
    ich möchte das Alarm Thema noch mal aufgreifen. Das Dingen über Google Kalender anzusteuern geht, finde ich aber unglücklich. Besser ist es wohl, den Wecker im Sonos entsprechend zu modifizieren.

    Ich verstehe nicht ganz, wie ich den Radiosender einstelle. Das scheint recht kompliziert zu sein, da man ProgrammURI und ProgramMetaData ermitteln muss. Habe einen Timer im Sonos angelegt und den Sender eingestellt, aber die Daten sind irgendwie merkwürdig. Gibt es eine Möglichkeit, diese Daten sauber auszulesen? Mit "get Alarm ID" kriegt man nur den Hashwert und nicht den eigentlichen Parameter. Oder wie macht man das am Besten mit dem Sender, zumal man den auch mal modifizieren möchte...

    ...und noch eine Frage. Im Sonos Player kann man nur bestimmte Zeiten auswählen, kann man auch beliebige Duration times setzten?
    wie macht ihr das?

    Danke und Gruß,
    djhans
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 30 Januar 2014, 23:14:44
    Hallo djhans,

    Zu den Metadaten und der URI: Diese Informationen kannst du auch einfach über die Weboberfläche kopieren. Dort stehen sie ja im Klartext. Die Metadaten sind übrigens eine XML-Struktur, die auch komplett notwendig sind.
    Der Befehl "get Alarm [ID]" gibt den entsprechenden Alarm-Eintrag des Readings als Perl-Hash zurück, sodass man ihn direkt in eigenem Code verwenden kann. Sonst braucht man das nicht unbedingt... Das kann man ja auch selber machen...

    Zu den Zeitangaben: Allgemein kann man beliebige Zeiten angeben, solange man das Format beachtet. Das gilt z.B. auch für den Sleeptimer, den man am Controller nur in 15 Minuten-Schritten setzen kann, aber natürlich kann man mit Fhem auch andere Dauern setzen.

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: djhans am 31 Januar 2014, 10:48:59
    Hallo Reiner,
    Besten Dank. Das mit dem Hash habe ich noch nicht begriffen! Aber Du meinst, ich soll die Daten für den Radiosender aus dem Webinterface von fhem nehmen, richtig? Kann man das noch weitere separieren? Das steht da zwar im Klartext, aber wenn man mehrere Timer hat, dann muss man schon genau suchen.

    Ich meine, kann man die URI iund die Metadaten m Klartext im Fhem abfragen? Dann könnte man dies einfach in eine Variable kopieren und so seine anderen Timer setzten....
    Nachtrag:
    hier fällt mir auf, dass das Initialisieren der Sonos_Geräte sehr lange dauert. Das heisst, die Grundkonfiguration darf erst nach ein paar Minuten drübergebügelt werden. Derzeit binde ich beim Start einfach mit include den Code ein. Das muss man wohl anders machen....


    Und noch eine Frage:
    Ih spiele gerade mit den Soundeinstellungen und setzte beim Start von fhem alles auf Defaultwerte. Den SUB kann ma nicht direkt ansprechen, oder? Da gibt es bei den Raumeinstellungen im Controller ein Untermenü "Sub" in dem man folgendes einstellen kann:

    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 31 Januar 2014, 14:36:31
    Hi djhans,

    zu dem Alarm: Ja, ich meinte über die Oberfläche. Wenn du es per Code auslesen möchtest, steht in der Beschreibung des get-Alarm-Befehls im Wiki ja ein Hinweis, wofür der Befehl nur eine Kurzform ist.
    Wenn du dir das um den Feldnamen erweiterst, kannst du in deinem Perl-Code folgendes schreiben:
    {
     .
     my $metaData = eval(ReadingsVal('Sonos_Wohnzimmer', 'AlarmList', '{}'))->{1}{ProgramMetaData};
     my $programURI = eval(ReadingsVal('Sonos_Wohnzimmer', 'AlarmList', '{}'))->{1}{ProgramURI};
     .
    }
    Das eval() macht aus dem Reading (ein String) mit der textuellen Darstellung eines Hashs wieder einen 'echten' Perl-Hash, auf dem man mit den Perl-üblichen Mitteln arbeiten kann.
    Die 1 ist hier die ID des Alarms, welche du im Notfall über das Reading AlarmListIDs auslesen kannst. Dort stehen alle Alarm-IDs dieses Raumes als Komma-separierte Liste drin. Und natürlich musst du deinen Raumnamen u.U. anpassen...

    Zu der Initialisierungszeit: Das ist richtig. Deshalb startet ja auch der Überprüfungstimer z.B. erst nach 120 Sekunden, da ich dann davon ausgehen kann, das die gesamte Erkennerei im allgemeinen durch sein dürfte. Aber im Prinzip kannst du natürlich schon Notifies bauen, die während dieser Erkennungsphase getriggert werden. Solange du innerhalb des Notify nicht auf andere (u.U. noch nicht fertige Player) zugreifst (also im eigenen Player-Kontext bleibst), sollte das alles gehen. Ich verwende das z.B. bei einem Player, um dort einen Radiosender mit einer bestimmten Lautstärke festzulegen (als Reaktion auf die Änderung des 'Presence'-Readings).

    Zu dem Sub: Allgemein versuche ich die Grundeinstellungsmöglichkeiten des Sonos-Systems aus dem Modul rauszuhalten... Hier würde ich persönlich sagen, dass das zur Einrichtung des Sub gehört, und im laufenden Betrieb wohl eher nicht angepasst wird.
    Es gibt hier ja auch absichtlich keine Möglichkeit, z.B. die einzelnen Player umzubenennen, oder das Icon anzupassen...
    Hinzukommt, dass ich keinen Sub habe, und das somit auch nicht probieren/sehen kann :-)

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: djhans am 01 Februar 2014, 17:11:01
    Hallo,
    Besten Dank Reiner, probiere das mal aus.....

    Noch einmal zum SUB. Sind die von mir genannten Dinge nicht gleichzusetzen mit  "Gruppe bilden" oder "weiße LED" ausschalten? zumindest die Pegelanpassung beim SUB ist m.E. Teil der Soundeinstellungen, da diese die Dominanz des SUBs im Raum bestimmt. Bass und Treble zusammen mit der Pegeleinstellung macht m.E. Sinn.

    Ein denkbares Szenario wäre beispielsweise auch so etwas:
    Im Wohnzimmer gibt es einen Connect AMP mit Standlautsprechern für die normale Mucke. Der TV hat eine Playbar und zwei Play 1. Zusammen mit dem SUB hat man nun 5.1 für den Film. Wenn die normale Mucke läuft, ist 5.1 nicht so dolle. 2.1 macht da mehr Sinn. Man könnte nun mit einem einfachen klick die Playbar, die Play1 und den ConnectAmp inkl. SUB, zu einer Gruppe umkonfigurieren. (also ConnectAmp+SUB, 2x Play1 Stereopaar, und Playbar einzeln) Dazu müssten dann die Konfiguration des SUBs geändert werden. (Regal/Bodenlautsprecher, etc..)

    Das geht derzeit mit dem Sonos Controller nicht so wirklich gut, da man die 5.1 Konstellation erst komplett auflösen muss. Wenn man das über das fhem Modul steuern könnte, wäre das ne prima Sache... wie gesagt, ist halt nur so eine Idee!

    Wenn ich in Sachen SUB unterstützen kann, mache ich das gerne...ne Playbar habe ich genau aus diesem Grund noch nicht.
    Gruß,
    djhans.
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 01 Februar 2014, 17:56:18
    Hi djhans,

    ok, ich gebe dir mit den Pegeleinstellungen recht. Das könnte noch gut ins Konzept passen, aber das Umgestalten der Landschaft eher nicht. Momentan gehen ja auch nur Gruppenbildungen, aber z.B. keine Stereopaare o.ä.

    Ich kann mir dazu ja mal Gedanken machen. Dann haben wir bald einen kompletten Controller in Fhem umgesetzt :-)
    Es dürfte halt zu einiger Verwirrung führen, wenn der Name eines Fhem-Devices nicht mehr direkt mit seiner Funktion oder Örtlichkeit zusammenhängt. Das Modul selbst hat damit kein Problem, da es nur auf die UDNs reagiert bzw. steuert. Aber der Anwender...

    Das dürfte dann vermutlich auch echt kompliziert für den Anwender des Moduls werden, da dann ja einiges umgestellt werden könnte:
    - Name der Zone (was passiert, wenn es den Namen schon gibt -> Fehler, aber nicht mehr so richtig automatisiert)
    - Icons der Zone anpassen
    - Paare bilden (manuell muss man bei einem Player die Mute/Play/Pause-Taste drücken, damit Links festgelegt wird. Ob das auch automatisiert notwendig ist, muss man testen)
    - Sub anbinden/trennen (da weiss ich nicht, was für manuelle Schritte notwendig sind)
    - PlayBar mit anderen Playern paaren (auch hier habe ich keine praktische Erfahrung)

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: djhans am 01 Februar 2014, 22:52:00
    Reiner,
    das ist nur eine Idee, mehr nicht!

    Die Sonos-Komponenten verbleiben in meinem Bsp schon an Ort und Stelle. Sie werden halt nur anders angesteuert. Einmal als 5.1 Anlage und einmal als 2.1 in einer Gruppe, je nachdem was gerade angesagt ist.....ob das überhaupt machbar ist, keine Ahnung! (cool wäre es aber!)

    Wenn das mit der Pegeleinstellung des SUBs klappt, wäre das schon mal gut:-)

    Schönen Gruß,
    Christian

    P.S. Ich bin sowieso erst am Anfang mit fhem und kann noch nicht einmal 10% deines Moduls nutzen...
    Titel: Antw:Sonos steuern
    Beitrag von: ArminK am 02 Februar 2014, 13:28:10
    Hallo Reiner,

    vielen Dank für die Hilfe. Kurzes Update: Habe die Rechte via FTP wieder auf 644 gesetzt und nochmal einen Reboot gemacht. Es kam mir so vor als ob fhem nicht von alleine starten wollte (war sehr lange nicht erreichbar) also nochmal via ssh fhem händisch gestartet, ein paar Minuten später noch einmal nachgeschaut und siehe da: fhem ist wieder via dyndns zu erreichen! Und was noch besser ist: Ich hab jetzt bei meinen Devices die Sonos bridge und den Sonos Player gelistet....erklären kann ich mir das nicht...ich werde jetzt mal versuchen damit zu spielen und gebe Dir ein Feedback wie es aussieht!

    Grüße
    Armin

    Hallo Reiner,
    Kurzes Statusupdate: Sonos ist mittlerweile halbwegs am Laufen....Den Status meiner zwei Player kann ich sehen (Radiosender mit Cover, aktuelle Sendeinfos usw.) Was nicht funktioniert ist das Steuern.. Volume Up/Down funktioniert meistens, alles ander nicht (Play/Pause/Mute).
    Hatte eben mal über Eingabe von set Sonos_Kueche Pause das Teil anzuhalten... danach noch ein paar mal Volume Down übers Webinterface ...das ist das was ich im Log angezeigt bekomme: 2014.02.02 13:15:16 3: SONOS0: Received: 'DoWork:RINCON_000E58C5234601400_MR:pause:'
    Thread 1 terminated abnormally: junk 'lowedValue>
            ' after XML element
    2014.02.02 13:16:36 3: SONOS0: Received: 'DoWork:RINCON_000E58C5234601400_MR:pause:'
    2014.02.02 13:17:34 3: SONOS0: Received: 'DoWork:RINCON_000E58F4EC2601400_MR:setRelativeVolume:-7'
    2014.02.02 13:17:44 3: SONOS0: Received: 'DoWork:RINCON_000E58F4EC2601400_MR:setRelativeVolume:-7'
    2014.02.02 13:17:51 3: SONOS0: Received: 'DoWork:RINCON_000E58F4EC2601400_MR:setRelativeVolume:-7'

    An anderer Stelle im Log habe ich ziemlich viele dieser Meldungen: 2014.02.02 13:01:28 3: SONOS9: Event: Received Transport-Event for Zone "Sonos_Kueche".
    2014.02.02 13:01:28 3: SONOS9: Event: End of Transport-Event for Zone "Sonos_Kueche".
    Use of uninitialized value in string eq at ./FHEM/00_SONOS.pm line 4313.
    Use of uninitialized value in string eq at ./FHEM/00_SONOS.pm line 4309.
    Use of uninitialized value in string eq at ./FHEM/00_SONOS.pm line 4313.
    Use of uninitialized value in string eq at ./FHEM/00_SONOS.pm line 4313.

    Seltsam... sollte ich auch mal die dev-Version von Sonos installieren (falls ja, wo finde ich die auf die Schnelle?)?

    Grüße und einen schönen Sonntag noch..
    Armin
    Titel: Antw:Sonos steuern
    Beitrag von: ArminK am 02 Februar 2014, 14:14:16
    kleiner Nachtrag: habe eben in meinem Includefile für die Küche ein paar (nicht Sonos betreffende) Änderungen gemacht und nach einem rereadcfg  wird plötzlich Sonos_Kueche um die 3 Tastendrücke leiser! seltsam...jetzt reagiert auch wieder VolumeU und VolumeD Pause allerdings nicht....
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 02 Februar 2014, 14:19:09
    Hallo zusammen,

    kurzes Status-Update:
    Ich habe meinen Code nun so umgebaut, dass im laufenden Betrieb keine Informationsanfragen an Fhem mehr durchgeführt werden. Das sollte auf jeden Fall für eine Entspannung an der Dead-Lock-Front sorgen. Ob es das Problem komplett beseitigt bleibt abzuwarten :-)

    Ich habe die Developer-Version entsprechend aktualisiert, wer es also gerne testen möchte:
    update thirdparty http://fhem.lmsoft.de/sonos_dev sonos

    Folgende neue Dinge sind dort zu erwarten:

    Also ein bißchen was passiert, aber am Wichtigsten ist die Änderung der Informationsschicht.
    Wenn das jetzt einigermaßen läuft, bzw. die letzten Kinken daran ausgemerzt wurden, dann würde ich daraus mal wieder ein Release machen, damit das im Wiki auch mal wieder passend aktualisiert werden kann...

    @Armin: In deinem Log gibt es eine "echt harte" Fehlermeldung:
    Thread 1 terminated abnormally: junk 'lowedValue>
            ' after XML element
    Die machte genau das, was da steht: Der SubProzess wird/wurde angehalten und läuft nicht mehr. Danach kann keine Kommunikation zu den Playern (und umgekehrt) mehr funktionieren.
    Ich habe das Fehlerhandling an der Stelle sowieso schon angepasst gehabt, sodass es bzgl. dieses Fehlers tatsächlich hilft, auf die Developer-Version zu gehen.

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: ArminK am 02 Februar 2014, 14:34:46
    Vielen Dank Reiner für Deinen Einsatz! Ich probiere das gleich mal aus!
    Titel: Antw:Sonos steuern
    Beitrag von: ArminK am 02 Februar 2014, 14:52:43
    Nochmal ein Zwischenbericht, an der Funktion hat sich nichts geändert, ausser Statusanzeige und Lauter / Leiser geht nichts...

    Als erstes ein Update gemacht:
    2014.02.02 14:35:29 3: update get http://fhem.lmsoft.de/sonos_dev/controls_sonos.txt
    2014.02.02 14:35:30 1: update saving statefile
    2014.02.02 14:35:30 2: Backup with command: tar -cf - fhem.cfg ./FHEM/!statusm.inc ./FHEM/!treppenhaus.inc ./FHEM/!schlafzimmer.inc ./FHEM/!balkon.inc ./FHEM/!kueche.inc ./FHEM/!henryx.inc ./FHEM/!bad.inc ./FHEM/!wohnzimmer.inc ./FHEM/!dwt.inc ./FHEM/!df.inc ./FHEM/!wetter.inc ./FHEM/99_myFHTsettings.conf ./log/fhem.save ./CHANGED ./contrib ./demolog ./docs ./FHEM ./fhem.cfg ./fhem.cfg.demo ./fhem.pl ./fhem2mail ./log ./README_DEMO.txt ./RINCON_000E58C5234601400_MR_Speak.mp3 ./sendEmail ./telefonbuch.txt ./unused ./www |gzip > ./backup/FHEM-20140202_143530.tar.gz
    2014.02.02 14:35:57 1: backup done: FHEM-20140202_143530.tar.gz (10420398 Bytes)
    2014.02.02 14:35:57 3: update get http://fhem.lmsoft.de/sonos_dev/FHEM/00_SONOS.pm
    2014.02.02 14:35:58 3: update get http://fhem.lmsoft.de/sonos_dev/FHEM/21_SONOSPLAYER.pm
    2014.02.02 14:35:59 1: update 2 file(s) have been updated.

    dann Fhem-Neustart:
    2014.02.02 14:38:50 0: Server shutdown
    2014.02.02 14:38:50 3: SONOS0: Received: 'shutdown'
    2014.02.02 14:38:50 3: SONOS0: Disconnecting client and shutdown server...
    2014.02.02 14:38:50 3: SONOS0: Trying to kill Sonos_Thread...
    2014.02.02 14:38:50 3: SONOS0: Trying to kill PlayerRestore_Thread...
    2014.02.02 14:38:50 1: SONOS2: Restore-Thread wurde beendet.
    2014.02.02 14:38:50 3: SONOS1: Controlpoint-Listener wurde beendet.

    dann 12 mal das:
    Unsubscription request failed with error: 412 Precondition Failed at FHEM/lib/UPnP/ControlPoint.pm line 1001 thread 1

    dann wird die CFG abgearbeitet und als Sonos an die Reihe kommt gehts so weiter:
    Prototype mismatch: sub main::head: none vs ($) at ./FHEM/00_SONOS.pm line 177
    Warning, threads::shared has already been loaded.  To
    enable shared variables, 'use threads' must be called
    before threads::shared or any module that uses it.
    2014.02.02 14:39:30 1: SONOS0: Kein UPnP-Server gefunden... Starte selber einen und warte 8 sekunden darauf...
    Current: "fhem.pl", gPath: "./FHEM"
    Current: "FHEM/00_SONOS.pm", gPath: ""
    2014.02.02 14:39:36 1: SONOS0: FHEM/00_SONOS.pm is listening to Port 4711
    2014.02.02 14:39:38 3: Opening Sonos device localhost:4711
    2014.02.02 14:39:38 1: SONOS0: Connection accepted from localhost:42794
    2014.02.02 14:39:38 3: Sonos device opened
    2014.02.02 14:39:39 1: Including ./log/fhem.save
    2014.02.02 14:39:40 1: statefile: Reading Sonos_BRIDGE->presence must not be used out of statefile.
    Reading Sonos_Bad->presence must not be used out of statefile.
    Reading Sonos_Kueche->presence must not be used out of statefile.
    2014.02.02 14:39:40 1: usb create starting
    .
    .
    .
    2014.02.02 14:39:50 3: SONOS1: UPnP-Thread gestartet.
    2014.02.02 14:39:51 1: SONOS2: Restore-Thread gestartet. Warte auf Arbeit...
    2014.02.02 14:39:53 2: SONOS1: Discover Sonosplayer 'K?che' (S3) Software Revision 4.2 with ID 'RINCON_000E58F4EC2601400_MR'
    2014.02.02 14:40:01 2: SONOS1: SonosPlayer 'Kueche' (S3) Software Revision 4.2 with ID 'RINCON_000E58F4EC2601400_MR' is already defined and will only be updated
    2014.02.02 14:40:01 2: SONOS1: SonosPlayer 'Kueche' is now updated
    2014.02.02 14:40:01 2: SONOS1: Service-subscribing successful with SID="uuid:RINCON_000E58F4EC2601400_sub0000003128" and Timeout="86400s"
    2014.02.02 14:40:01 2: SONOS1: Rendering-Service-subscribing successful with SID="uuid:RINCON_000E58F4EC2601400_sub0000003129" and Timeout="86400s"
    2014.02.02 14:40:01 2: SONOS1: Alarm-Service-subscribing successful with SID="uuid:RINCON_000E58F4EC2601400_sub0000003130" and Timeout="86400s"
    2014.02.02 14:40:01 2: SONOS1: ZoneGroupTopology-Service-subscribing successful with SID="uuid:RINCON_000E58F4EC2601400_sub0000003131" and Timeout="86400s"
    2014.02.02 14:40:01 2: SONOS1: DeviceProperties-Service-subscribing successful with SID="uuid:RINCON_000E58F4EC2601400_sub0000003132" and Timeout="86400s"
    2014.02.02 14:40:01 3: SONOS1: Discover: End of discover-event for "K?che".
    2014.02.02 14:40:03 2: SONOS1: Discover Sonosplayer 'Bad' (S1) Software Revision 4.2 with ID 'RINCON_000E58C5234601400_MR'
    2014.02.02 14:40:11 2: SONOS1: SonosPlayer 'Bad' (S1) Software Revision 4.2 with ID 'RINCON_000E58C5234601400_MR' is already defined and will only be updated
    2014.02.02 14:40:11 2: SONOS1: SonosPlayer 'Bad' is now updated
    2014.02.02 14:40:11 2: SONOS1: Service-subscribing successful with SID="uuid:RINCON_000E58C5234601400_sub0000001221" and Timeout="86400s"
    2014.02.02 14:40:11 2: SONOS1: Rendering-Service-subscribing successful with SID="uuid:RINCON_000E58C5234601400_sub0000001222" and Timeout="86400s"
    2014.02.02 14:40:11 2: SONOS1: Alarm-Service-subscribing successful with SID="uuid:RINCON_000E58C5234601400_sub0000001223" and Timeout="86400s"
    2014.02.02 14:40:11 2: SONOS1: ZoneGroupTopology-Service-subscribing successful with SID="uuid:RINCON_000E58C5234601400_sub0000001224" and Timeout="86400s"
    2014.02.02 14:40:11 2: SONOS1: DeviceProperties-Service-subscribing successful with SID="uuid:RINCON_000E58C5234601400_sub0000001225" and Timeout="86400s"
    2014.02.02 14:40:11 3: SONOS1: Discover: End of discover-event for "Bad".
    2014.02.02 14:40:12 2: SONOS1: Discover Sonosplayer 'BRIDGE' (ZB100) Software Revision 4.2 with ID 'RINCON_000E581C935601400_MR'
    2014.02.02 14:40:14 2: SONOS1: SonosPlayer 'BRIDGE' (ZB100) Software Revision 4.2 with ID 'RINCON_000E581C935601400_MR' is already defined and will only be updated
    2014.02.02 14:40:14 2: SONOS1: SonosPlayer 'BRIDGE' is now updated
    2014.02.02 14:40:14 1: SONOS1: Service-subscribing not possible due to missing TransportService
    2014.02.02 14:40:14 2: SONOS1: ZoneGroupTopology-Service-subscribing successful with SID="uuid:RINCON_000E581C935601400_sub0000000080" and Timeout="86400s"
    2014.02.02 14:40:14 2: SONOS1: DeviceProperties-Service-subscribing successful with SID="uuid:RINCON_000E581C935601400_sub0000000081" and Timeout="86400s"
    2014.02.02 14:40:14 3: SONOS1: Discover: End of discover-event for "BRIDGE".
    2014.02.02 14:40:14 3: SONOS1: Event: Received Alarm-Event for Zone "Sonos_Kueche".
    2014.02.02 14:40:14 3: SONOS1: Event: End of Alarm-Event for Zone "Sonos_Kueche".
    2014.02.02 14:40:15 3: SONOS1: Event: Received ZoneGroupTopology-Event for Zone "Sonos_Kueche".
    2014.02.02 14:40:15 3: SONOS1: Event: End of ZoneGroupTopology-Event for Zone "Sonos_Kueche".
    2014.02.02 14:40:15 3: SONOS1: Event: Received Transport-Event for Zone "Sonos_Bad".
    2014.02.02 14:40:15 3: SONOS1: Event: End of Transport-Event for Zone "Sonos_Bad".
    2014.02.02 14:40:15 3: SONOS1: Event: Received DeviceProperties-Event for Zone "Sonos_Kueche".
    2014.02.02 14:40:15 3: SONOS1: Event: End of DeviceProperties-Event for Zone "Sonos_Kueche".
    2014.02.02 14:40:15 3: SONOS1: Event: Received ZoneGroupTopology-Event for Zone "Sonos_BRIDGE".
    2014.02.02 14:40:15 3: SONOS1: Event: End of ZoneGroupTopology-Event for Zone "Sonos_BRIDGE".
    2014.02.02 14:40:15 3: SONOS1: Event: Received Alarm-Event for Zone "Sonos_Bad".
    2014.02.02 14:40:15 3: SONOS1: Event: End of Alarm-Event for Zone "Sonos_Bad".
    2014.02.02 14:40:15 3: SONOS1: Event: Received Rendering-Event for Zone "Sonos_Kueche".
    2014.02.02 14:40:15 3: SONOS1: Event: End of Rendering-Event for Zone "Sonos_Kueche".
    2014.02.02 14:40:15 3: SONOS1: Event: Received DeviceProperties-Event for Zone "Sonos_BRIDGE".
    2014.02.02 14:40:15 3: SONOS1: Event: End of DeviceProperties-Event for Zone "Sonos_BRIDGE".

    und so weiter.....keine Ahnung was da schief läuft....
    Titel: Antw:Sonos steuern
    Beitrag von: djhans am 02 Februar 2014, 16:48:49
    Hallo Reiner,
    auch von mir ein Feedback zum Update.
    Wenn man bei AddMember versehentlich einen falschen Player - Namen angibt (z.B. Tippfehler) dann schmiert fhem komplett ab und muss neu gestartet werden. Keine Ahnung, ob es an meiner Konfig legt, ist aber reproduzierbar...

    djhans
    Titel: Antw:Sonos steuern
    Beitrag von: djhans am 02 Februar 2014, 18:00:00
    Hallo,
    nochmal ich! Ich versuche ein Notify auf "Sleeptimer off" zu setzten. Geht aber nicht.

    define Sonos_Schlafzimmer_Notify_SleepTimer_off notify Sonos_Schlafzimmer:SleepTimer off\
    set Sonos_Schlafzimmer RemoveMember Sonos_Bad;;

    Geht das nicht! Was mache ich falsch?

    djhans.
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 02 Februar 2014, 21:18:10
    Hi djhans,

    zum Notify: Der reguläre Ausdruck für das Matching darf keine Leerzeichen enthalten. Am einfachsten ist es, einfach ein "." (Punkt) an die Stelle des Leerzeichens zwischen dem Reading "Sleeptimer" und dem "off" zu setzen.

    Zum AddMember-Problem: ich schaue mir das an...

    Und zu den Event-Meldungen von Armin: Das sieht doch eigentlich ganz gut aus. Manchmal dauert das einen Augenblick, bis sich die Melderei beruhigt hat. Aber das sollte nach spätestens ein paar Minuten erledigt sein.

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: det. am 02 Februar 2014, 22:04:50
    Hallo Reiner,
    Danke für Deine Arbeit! Die aktuelle Developer-Version läuft bei mir ohne Probleme.
    Titel: Antw:Sonos steuern
    Beitrag von: djhans am 03 Februar 2014, 08:47:14
    Hallo,
    habe das jetzt so eingebaut. Läuft aber trotzdem nicht.
    define Sonos_Schlafzimmer_Notify_SleeptimerOff notify Sonos_Schlafzimmer:SleepTimer.off\
    set Sonos_Schlafzimmer RemoveMember Sonos_Bad;;

    Der Sleeptimer ist im SchlafzimmerSonos gesetzt und im Eventlog kommt ach diese Meldung:

    2014-02-03 08:43:27 SONOSPLAYER Sonos_Schlafzimmer infoSummarize3: Lautstaerke: 3 ~ Ton An ~ Balance: Mitte ~ Kein Kopfhoerer
    2014-02-03 08:43:27 SONOSPLAYER Sonos_Schlafzimmer SleepTimerVersion:
    2014-02-03 08:43:28 SONOSPLAYER Sonos_Schlafzimmer transportState: STOPPED
    2014-02-03 08:43:28 SONOSPLAYER Sonos_Schlafzimmer SleepTimer: off

    mehr aber nicht. Die o.a. Anweisung wird nicht ausgeführt.

    Christian
    Titel: Antw:Sonos steuern
    Beitrag von: ArminK am 03 Februar 2014, 08:54:56
    Hallo Reiner,

    ja das beruhigt sich schon, allerdings kann ich immer noch ausser Volume up/down nicht an den Playern steuern...
    Habe nochmal von der Konsole gestaret und eine Fehlermeldung entdeckt:
    pi@raspberrypi /opt/fhem $ sudo perl fhem.pl fhem.cfg
    pi@raspberrypi /opt/fhem $ Prototype mismatch: sub main::head: none vs ($) at ./
    FHEM/00_SONOS.pm line 177
    Warning, threads::shared has already been loaded.  To
    enable shared variables, 'use threads' must be called
    before threads::shared or any module that uses it.
    Current: "fhem.pl", gPath: "./FHEM"
    Current: "FHEM/00_SONOS.pm", gPath: ""
    2014.02.03 08:45:56 1: SONOS0: FHEM/00_SONOS.pm is listening to Port 4711
    2014.02.03 08:45:58 1: SONOS0: Connection accepted from localhost:53744
    2014.02.03 08:46:09 3: SONOS1: UPnP-Thread gestartet.
    2014.02.03 08:46:11 1: SONOS2: Restore-Thread gestartet. Warte auf Arbeit...
    2014.02.03 08:46:12 2: SONOS1: Discover Sonosplayer 'Kche' (S3) Software Revisio
    n 4.2 with ID 'RINCON_000E58F4EC2601400_MR'
    2014.02.03 08:46:22 2: SONOS1: SonosPlayer 'Kueche' (S3) Software Revision 4.2 w
    ith ID 'RINCON_000E58F4EC2601400_MR' is already defined and will only be updated
    2014.02.03 08:46:22 2: SONOS1: SonosPlayer 'Kueche' is now updated
    2014.02.03 08:46:22 2: SONOS1: Service-subscribing successful with SID="uuid:RIN
    danach geht alles normal weiter, bis es sich irgendwann beruhigt wie du ja auch sagst.
    Kannst Du mit dem Fehler etwas anfangen?
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 03 Februar 2014, 09:41:33
    Hallo zusammen,

    @djhans: Versuch doch mal die Schreibweise:
    define Sonos_Schlafzimmer_Notify_SleeptimerOff notify Sonos_Schlafzimmer:SleepTimer:.off set Sonos_Schlafzimmer RemoveMember Sonos_Bad
    Da ist Hauptsächlich noch ein Doppelpunkt zwischen SleepTimer und off hinzugekommen...

    @Armin: Diese Meldung hatten wir schon mal. Das kann ich leider nicht nachvollziehen, da mir Prototypen bei Package-Angaben noch nicht untergekommen sind. Außerdem wird an der angemerkten Zeilennummer LWP::Simple per use-Anweisung geladen. Das sollte eigentlich auch keinen Fehler produzieren...
    Was wird denn noch vor dem Modul geladen? Kannst du das mal testweise reduzieren, um Quereinflüsse auszuschließen?
    Ich glaube beim letzten Mal hatte sich das durch Rechtesetzen o.ä. erledigt. Da bin ich mir aber nicht mehr so ganz sicher...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: djhans am 03 Februar 2014, 10:10:33
    Hi,
    keine Chance! klappt nicht. Im log steht auch nichts drin!

    hier noch mal aus der fhem.cfg per cut und paste!
    define SleepTimerOff notify Sonos_Schlafzimmer:SleepTimer:.off\
    set Sonos_Schlafzimmer RemoveMember Sonos_Bad;;

    djhans
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 03 Februar 2014, 10:54:26
    Hi djhans,

    schreib es doch mal sicherheitshalber in eine Zeile, und entferne mal die Semikola am Ende der Zeile (wie in meinem Beispiel).
    Nicht dass das noch stört...

    Ansonsten kannst du aus dem einzelnen Punkt auch noch .* machen, dann matchen halt beliebige Anzahlen an beliebigen Zeichen zwischen SleepTimer und off...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: ArminK am 03 Februar 2014, 11:46:22
    Hallo Reiner,

    habe mal etwas gegoogelt und rausbekommen dass es wohl daran liegt, dass zwei mal die head-funktion importiert wird (kenn mich damit nicht aus) und habe jetzt mal in 00_SONOS.pm Zeile 177 geändert in:
    use LWP::Simple qw(!head);

    Jetzt kommt zumindest die Fehlermeldung beim Starten von fhem nicht mehr. Ob nun die vorher nicht funktionierenden Sonos-Befehle gehen kann ich erst heute Abend überprüfen. Ich gebe dann Bescheid.

    Grüße
    Armin
    Titel: Antw:Sonos steuern
    Beitrag von: djhans am 03 Februar 2014, 12:00:37
    Hi,
    ja, wenn ich das in eine Zeile schreibe, klappt es! Verstehe ich aber nicht! Das hier funktioniert doch auch? Zumal hier auch alle Befehle hintereinander abgearbeitet werden...
    Auszug aus fhem.cfg:
    define Sound_Schlafzimmer at +00:05:00 \
    set Sonos_Schlafzimmer Volume 3;;\
    set Sonos_Schlafzimmer Treble 10;;\
    set Sonos_Schlafzimmer Bass 3;;\
    set Sonos_Schlafzimmer Balance 0;;\
    set Sonos_Schlafzimmer Loudness 1;;\

    ...und das geht nicht!
    define SleepTimerOff notify Sonos_Schlafzimmer:SleepTimer:.off\
    set Sonos_Schlafzimmer RemoveMember Sonos_Bad;;\
    set Sonos_Schlafzimmer RemoveMember Sonos_Terasse;;
    ...sondern nur so:
    define SleepTimerOff notify Sonos_Schlafzimmer:SleepTimer:.off set Sonos_Schlafzimmer RemoveMember Sonos_Bad;;\
    wieso ist das so? und wie kann ich mehrere Aktionen hintereinander ausführen, wenn der Sleeptimer abgelaufen ist?

    NACHTRAG!!
    Man glaubt es nicht! Es muss hinter dem "off" ein Leerzeichen stehen! Dann geht es
    define SleepTimerOff notify Sonos_Schlafzimmer:SleepTimer:.off \


    ...was mir noch aufgefallen ist:
    ab und zu drücke ich im fhem WebInterface mal auf save config. Dann speichert er u.a. auch die kompletten Sonos_Player dort ab. Wenn ich dann fhem neu starten muss, passiert es sehr häufig, dass die Player in fhem plötzlich nicht mehr reagieren. Er zeigt zwar "initialisiert" an, aber es tut sich nichts. Man kann auch keine Befehle absetzten.

    Wenn ich dann die fhem.cfg bereinige und auch die .save lösche, fhem neu starte und alles Sonos-Kisten neu erkennen lassen, klappt wieder alles. Kann man irgendwie verhindern, dass er die Sonos-Devices in die fhem.cfg schreibt, wenn man auf save drückt? Oder wo liegt hier das Problem?

    Christian


    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 03 Februar 2014, 12:43:52
    Hallo,

    @Armin: Ok, dann hast du wohl ein Modul laufen, welches auch dieses Paket verwendet und vor Sonos geladen wird... OK, wenn es so bei dir geht, muss ich mal schauen, ob es mit der Änderung bei mir auch gehen würde. Es kann halt sein, dass der ausgeklammerte Part ja benötigt wird (also mindestens einmal geladen werden muss)...

    @djhans: Ich hatte sowas mit dem Leerzeichen vermutet, aber es ist immer etwas schwierig, diese Details hier im Forum zu erkennen, da das auch manchmal beim Copy-Paste verloren geht o.ä. Aber schön, das es jetzt geht...
    Der Backslash wird direkt (zusammen mit dem folgenden Zeilenumbruch) aus dem gesamten String entfernt, bevor die normale Befehlsverarbeitung durchgeführt wird. Dadurch "sieht" der Fhem Befehlsprozessor nur eine Zeile, braucht aber natürlich trotzdem alle Trenn-Leerzeichen darin...

    Zu dem Save: Das geht nicht (zumindest wüsste ich nicht wie). Allerdings kann das ganze nur ein Zeitproblem sein. Je nach Perfomance der Fhem-Maschine dauert es schon so seine Zeit, bis die gesamte Erkennerei und Anmelderei durch das Modul erledigt ist. Ich würde sagen, dass nach 2 Minuten spätestens alles erledigt sein sollte. Dann sollten auch die Readings auf der Oberfläche passen...


    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: ArminK am 03 Februar 2014, 17:51:07
    Hallo Reiner,

    also: leider schlecht....VolumeU und VolumeD funktionieren, sonst nichts weder Pause noch Play.... Wie kann denn das sein?
    Im fhem-log taucht überhaupt nichts auf..... :(
    werden die unterschiedlichen Befehle über unterschiedliche "Kanäle" abgearbeitet?

    Nachtrag: jetzt wird's komisch.... habe zwei Player, Sonos_Bad und Sonos_kueche. Wenn ich für sonos_kueche Play schicke, legt der im Bad los und es wird auch im Webinterface angezeigt...????? also nur Lautstärke-Befehle von Somos_Kueche kommen auch dort an...alles andere scheint bei Sonos_Bad zu landen....seltsam, oder?

    Nachtrag, die zweite: hab mal alles Sonos-mäßige aus der config rausgenommen, dann
    define Sonos SONOS localhost:4711 30in die cfg und neu erkennen lassen...keine Änderung! Status (z.B. abgespielter sender) wird korrekt angezeigt, bis auf Lautstärke-Befehle landet alles beim Sonos_Bad (egal bei welchem Sonos ich über fhem was drehe)...da soll einer verstehen.....
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 03 Februar 2014, 19:04:10
    Hallo Armin,

    hast du denn irgendwelche Gruppen im Sonos definiert?
    Gib mir doch mal bitte den Inhalt des Reading "ZoneGroupState" am Sonos-Device. Außerdem die Inhalte der Readings "ZoneGroupID" und "ZonePlayerUUIDsInGroup" der beiden Sonos-Player-Devices. Dann kann ich mal schauen, was er da zu entdecken glaubt :-)

    Aus irgendeinem Grund meint er dort noch eine Gruppe zu erkennen, und sendet dementsprechend die meisten Befehle an den von ihm erkannten Gruppenmaster. Lautstärke z.B. ist davon nicht betroffen, da das immer direkt an den gewünschten Player gesendet wird...

    Was vielleicht auch helfen könnte, ist, bei laufendem Fhem im Sonos-Controller mal die beiden Player zu gruppieren, und etwas später dann wieder aufzulösen...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: ArminK am 03 Februar 2014, 20:35:39
    Hallo Reiner,

    vielen Dank für Deine Mühe!

    Gruppen habe ich nicht angelegt (nicht das ich wüsste) Habe eben mal den Sonos im Bad mit dem in der Küche gruppiert...und wieder aufgelöst. Keine Änderung


    ZoneGroupState des Sonos-Device:
    <ZoneGroups><ZoneGroup Coordinator="RINCON_000E58C5234601400" ID="RINCON_000E58C5234601400:6"><ZoneGroupMember UUID="RINCON_000E58C5234601400" Location="http://192.168.1.59:1400/xml/device_description.xml" ZoneName="Bad" Icon="x-rincon-roomicon:pool" Configuration="1" SoftwareVersion="24.0-71060" MinCompatibleVersion="22.0-00000" BootSeq="6"/></ZoneGroup><ZoneGroup Coordinator="RINCON_000E581C935601400" ID="RINCON_000E581C935601400:0"><ZoneGroupMember UUID="RINCON_000E581C935601400" Location="http://192.168.1.58:1400/xml/device_description.xml" ZoneName="BRIDGE" Icon="x-rincon-roomicon:viper" Configuration="1" Invisible="1" IsZoneBridge="1" SoftwareVersion="24.0-69180" MinCompatibleVersion="22.0-00000" BootSeq="3"/></ZoneGroup><ZoneGroup Coordinator="RINCON_000E58F4EC2601400" ID="RINCON_000E58C5234601400:1"><ZoneGroupMember UUID="RINCON_000E58F4EC2601400" Location="http://192.168.1.63:1400/xml/device_description.xml" ZoneName="Küche" Icon="x-rincon-roomicon:kitchen" Configuration="1" SoftwareVersion="24.0-71060" MinCompatibleVersion="22.0-00000" BootSeq="4"/></ZoneGroup></ZoneGroups>
    Sonos_Bad:
    ZoneGroupID: RINCON_000E58C5234601400:6
    ZonePlayerUUIDsInGroup: RINCON_000E58C5234601400

    Sonos_Kueche:
    ZoneGroupID: RINCON_000E58C5234601400:1
    ZonePlayerUUIDsInGroup: RINCON_000E58F4EC2601400

    Du kannst da bestimmt was raus erkennen... :)
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 03 Februar 2014, 21:28:31
    Hi Armin,

    das Reading "ZoneGroupID" des Sonos_Kueche-Device ist einfach falsch. Es enthält die ID des Bad-Device. Dadurch meint das Modul alles an das Bad senden zu müssen...

    Kannst du beobachten, ob dieses Reading aktualisiert wird, wenn du Sonos-Gruppen bildest und wieder auflöst?
    Kannst du mal sicherstellen, dass dieses Reading bei einem Fhem-Start nicht in der Save-Datei vorhanden ist?

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: ArminK am 04 Februar 2014, 12:15:38
    Hallo Reiner,

    das mit den Gruppen werde ich heute Abend mal ausprobieren...
    Wie meinst Du das mit der Save-Datei? fhem.save via FTP kopieren, entsprechenden Eintrag löschen (?) und wieder auf den Raspberry schicken?
    Oder meinst Du es wäre sinnvoll, erst nochmal fhem-mäßig alles von Sonos zu befreien und dann die beiden Player plus bridge quasi standalone neu einzurichten um dann erst anschließend das ganze noch mal frisch in fhem einzupflegen?
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 04 Februar 2014, 12:49:22
    Hi Armin,

    genau, ich meinte die Datei fhem.save zu bearbeiten (natürlich während fhem beendet ist), das ist ja nur eine Textdatei. Dort die entsprechende Zeile für das Reading suchen und entfernen. Das wirst du für jedes Sonos-Device finden. Einfach jedes Vorkommen entfernen...

    Ich würde jetzt nicht alles bzgl. Sonos entfernen, das erscheint mir übertrieben. Das ganze kann nur eine Kleinigkeit sein... wir müssen sie nur finden...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: ArminK am 04 Februar 2014, 15:51:05
    Hallo Reiner,

    nochmals vielen Dank für Dein Engagement!

    Also: was ich aus der Ferne schonmal gemacht habe war folgendes: fhem gestoppt, alle ZoneGroupID's aus der fhem.save entfernt und fhem neu gestartet....glaube das hat nix gebracht, die ID's sind wie folgt:

    Küche: RINCON_000E58C5234601400:1
    Bad:    RINCON_000E58C5234601400:6

    unterscheiden sich also nur durch die letzte Stelle, denke aber das war vorher auch so...
    Ausprobieren (auch das mit den Gruppen) kann ich erst heute Abend. Könnte es auch etwas mit der Sonos Brdige zu tun haben?
    Titel: Antw:Sonos steuern
    Beitrag von: JoeALLb am 04 Februar 2014, 16:15:02
    Ich hatte das auch mal, wenn ich mich recht erinnere, hat es nur geholfen, alle Player in ihre eigene Zone zu verschieben.
    Dazu habe ich diesen Befehl verwendet.
    Vermutlich hilft das bei Dir nichts, denn sonst hätte Reiner das bestimmt schon erwähnt.
    set Sonos Groups [Sonos_Bad], [Sonos_Kueche],[Sonos_Schlafzimmer],[Sonos_Wohnzimmer]

    Zum neuen Update:
    Reiner, vielen Dank! Ich hab es bisher nur sehr oberflächlich getestet, da ich  selten zuhause bin, jedoch hatte ich seither kein einziges Lock mehr und
    die Befehle werden (zumindest gefühlt) schneller ausgeführt!!!
    Auch mein Wecker-Experiment, für das ich so tolle Hilfe hier bekommen habe, scheint recht zuverlässig zu funktionieren!

    @jhans: Ich Habe den Google-Kalender mit der Wecker-Funktion von Sonos gekoppelt, sonst würde ich ja nicht geweckt werden, wenn ich zur Weckzeit einen Stromausfall hätte!
    Ich prüfe im Modul lediglich, ob sich ein Weckereintrag geändert hat, der mit "Wecker" anfängt, und schreibe seine Zeiten dann in das entsprechende Sonosgerät.
    Was ich noch nicht geschafft habe, was aber auch gehen sollte ist, einen kurzen Text ausgeben, wenn ich die Weckzeit ändere und dies erkannt wird. Bsp. wenn ich am Abend den Wecker um eine halbe Stunde verstelle, möchte ich angesagt bekommen: "Der nächste Wecker wurde auf 06:30 verschoben."
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 04 Februar 2014, 16:17:55
    Hi Armin,

    mit der Bridge kann es nichts zu tun haben. Die hat bei dir eine andere UDN.
    Ich verstehe noch nicht so ganz, warum das Reading falsch gefüllt wird...

    Notfalls bräuchte ich mal die Konsolenausgabe des SubProzesses bei einem Loglevel 5, da kann ich dann sehen, welche Daten die Player gesendet haben, und welcher Teil des Skripts da u.u. was falsches extrahiert...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 04 Februar 2014, 16:25:40
    Hi JoeALLb,

    schön, das es bei dir jetzt besser läuft. Das war ja auch irgendwie der Sinn der ganzen Übung :-)
    Jetzt müssen wir das mal eine Weile beobachten, dann kann das ja mal released werden...

    Aber dein Hinweis an Armin ist gar nicht schlecht. Der Mechanismus, den ich im Modul verwende um die Gruppen aufzulösen, ist, meiner Meinung nach, ein anderer, als der, den Sonos selber verwendet...
    Das hätte also wirklich eine Chance...
    @Armin: Probiere das doch mal bitte...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: ArminK am 04 Februar 2014, 16:50:32
    Hi Reiner,
    anbei "Konsolen-Mitschnitt" mit verbose 5. Ich habe mal die letzten Zeilen davor mitkopiert, da darin noch eine Fehlermeldung enthalten ist, die Dir vielleicht etwas sagt.
    2014.02.04 16:03:20 3: SONOS5: Event: End of Rendering-Event for Zone "Sonos_Bad
    ".
    Loading device description failed with error: 200 OK at FHEM/00_SONOS.pm line 20
    81 thread 5
    2014.02.04 16:42:03 3: SONOS0: Disconnecting client...
    2014.02.04 16:42:03 3: SONOS0: Trying to kill Sonos_Thread...
    2014.02.04 16:42:03 3: SONOS0: Trying to kill PlayerRestore_Thread...
    2014.02.04 16:42:03 1: SONOS6: Restore-Thread wurde beendet.
    2014.02.04 16:42:03 3: SONOS5: Controlpoint-Listener wurde beendet.
    Unsubscription request failed with error: 412 Precondition Failed at FHEM/lib/UP
    nP/ControlPoint.pm line 1001 thread 5
    Unsubscription request failed with error: 412 Precondition Failed at FHEM/lib/UP
    nP/ControlPoint.pm line 1001 thread 5
    Unsubscription request failed with error: 412 Precondition Failed at FHEM/lib/UP
    nP/ControlPoint.pm line 1001 thread 5
    Unsubscription request failed with error: 412 Precondition Failed at FHEM/lib/UP
    nP/ControlPoint.pm line 1001 thread 5
    Unsubscription request failed with error: 412 Precondition Failed at FHEM/lib/UP
    nP/ControlPoint.pm line 1001 thread 5
    Unsubscription request failed with error: 412 Precondition Failed at FHEM/lib/UP
    nP/ControlPoint.pm line 1001 thread 5
    Unsubscription request failed with error: 412 Precondition Failed at FHEM/lib/UP
    nP/ControlPoint.pm line 1001 thread 5
    Unsubscription request failed with error: 412 Precondition Failed at FHEM/lib/UP
    nP/ControlPoint.pm line 1001 thread 5
    Unsubscription request failed with error: 412 Precondition Failed at FHEM/lib/UP
    nP/ControlPoint.pm line 1001 thread 5
    Unsubscription request failed with error: 412 Precondition Failed at FHEM/lib/UP
    nP/ControlPoint.pm line 1001 thread 5
    Unsubscription request failed with error: 412 Precondition Failed at FHEM/lib/UP
    nP/ControlPoint.pm line 1001 thread 5
    Unsubscription request failed with error: 412 Precondition Failed at FHEM/lib/UP
    nP/ControlPoint.pm line 1001 thread 5
    Unsubscription request failed with error: 412 Precondition Failed at FHEM/lib/UP
    nP/ControlPoint.pm line 1001 thread 5
    Unsubscription request failed with error: 412 Precondition Failed at FHEM/lib/UP
    nP/ControlPoint.pm line 1001 thread 5
    Unsubscription request failed with error: 412 Precondition Failed at FHEM/lib/UP
    nP/ControlPoint.pm line 1001 thread 5
    Unsubscription request failed with error: 412 Precondition Failed at FHEM/lib/UP
    nP/ControlPoint.pm line 1001 thread 5
    Unsubscription request failed with error: 412 Precondition Failed at FHEM/lib/UP
    nP/ControlPoint.pm line 1001 thread 5
    Unsubscription request failed with error: 412 Precondition Failed at FHEM/lib/UP
    nP/ControlPoint.pm line 1001 thread 5
    Unsubscription request failed with error: 412 Precondition Failed at FHEM/lib/UP
    nP/ControlPoint.pm line 1001 thread 5
    Unsubscription request failed with error: 412 Precondition Failed at FHEM/lib/UP
    nP/ControlPoint.pm line 1001 thread 5
    2014.02.04 16:42:06 2: SONOS5: Error during UPnP-Handling:
    2014.02.04 16:42:06 3: SONOS5: UPnP-Thread wurde beendet.
    2014.02.04 16:42:34 1: SONOS0: Connection accepted from localhost:40464
    2014.02.04 16:42:34 3: SONOS0: Disconnecting client...
    2014.02.04 16:42:36 1: SONOS0: Connection accepted from localhost:40465
    Use of uninitialized value in concatenation (.) or string at ./FHEM/00_SONOS.pm
    line 866.
    Use of uninitialized value in concatenation (.) or string at ./FHEM/00_SONOS.pm
    line 866.
    Use of uninitialized value in concatenation (.) or string at ./FHEM/00_SONOS.pm
    line 866.
    Use of uninitialized value in concatenation (.) or string at ./FHEM/00_SONOS.pm
    line 866.
    2014.02.04 16:42:42 3: SONOS7: UPnP-Thread gestartet.
    2014.02.04 16:42:44 1: SONOS8: Restore-Thread gestartet. Warte auf Arbeit...
    2014.02.04 16:42:45 2: SONOS7: Discover Sonosplayer 'Bad' (S1) Software Revision
     4.2 with ID 'RINCON_000E58C5234601400_MR'
    2014.02.04 16:42:54 2: SONOS7: SonosPlayer 'Bad' (S1) Software Revision 4.2 with
     ID 'RINCON_000E58C5234601400_MR' is already defined and will only be updated
    2014.02.04 16:42:54 2: SONOS7: SonosPlayer 'Bad' is now updated
    2014.02.04 16:42:54 2: SONOS7: Service-subscribing successful with SID="uuid:RIN
    CON_000E58C5234601400_sub0000001935" and Timeout="86400s"
    2014.02.04 16:42:54 2: SONOS7: Rendering-Service-subscribing successful with SID
    ="uuid:RINCON_000E58C5234601400_sub0000001936" and Timeout="86400s"
    2014.02.04 16:42:55 2: SONOS7: Alarm-Service-subscribing successful with SID="uu
    id:RINCON_000E58C5234601400_sub0000001937" and Timeout="86400s"
    2014.02.04 16:42:55 2: SONOS7: ZoneGroupTopology-Service-subscribing successful
    with SID="uuid:RINCON_000E58C5234601400_sub0000001938" and Timeout="86400s"
    2014.02.04 16:42:55 2: SONOS7: DeviceProperties-Service-subscribing successful w
    ith SID="uuid:RINCON_000E58C5234601400_sub0000001939" and Timeout="86400s"
    2014.02.04 16:42:55 3: SONOS7: Discover: End of discover-event for "Bad".
    2014.02.04 16:42:55 2: SONOS7: Discover Sonosplayer 'BRIDGE' (ZB100) Software Re
    vision 4.2 with ID 'RINCON_000E581C935601400_MR'
    2014.02.04 16:42:57 2: SONOS7: SonosPlayer 'BRIDGE' (ZB100) Software Revision 4.
    2 with ID 'RINCON_000E581C935601400_MR' is already defined and will only be upda
    ted
    2014.02.04 16:42:57 2: SONOS7: SonosPlayer 'BRIDGE' is now updated
    2014.02.04 16:42:57 1: SONOS7: Service-subscribing not possible due to missing T
    ransportService
    2014.02.04 16:42:57 2: SONOS7: ZoneGroupTopology-Service-subscribing successful
    with SID="uuid:RINCON_000E581C935601400_sub0000000122" and Timeout="86400s"
    2014.02.04 16:42:58 2: SONOS7: DeviceProperties-Service-subscribing successful w
    ith SID="uuid:RINCON_000E581C935601400_sub0000000123" and Timeout="86400s"
    2014.02.04 16:42:58 3: SONOS7: Discover: End of discover-event for "BRIDGE".
    2014.02.04 16:42:58 3: SONOS7: Event: Received Transport-Event for Zone "Sonos_B
    ad".
    2014.02.04 16:42:58 3: SONOS7: Event: End of Transport-Event for Zone "Sonos_Bad
    ".
    2014.02.04 16:42:59 2: SONOS7: Discover Sonosplayer 'Kche' (S3) Software Revisio
    n 4.2 with ID 'RINCON_000E58F4EC2601400_MR'
    2014.02.04 16:43:13 2: SONOS7: SonosPlayer 'Kueche' (S3) Software Revision 4.2 w
    ith ID 'RINCON_000E58F4EC2601400_MR' is already defined and will only be updated
    2014.02.04 16:43:13 2: SONOS7: SonosPlayer 'Kueche' is now updated
    2014.02.04 16:43:13 2: SONOS7: Service-subscribing successful with SID="uuid:RIN
    CON_000E58F4EC2601400_sub0000003886" and Timeout="86400s"
    2014.02.04 16:43:13 2: SONOS7: Rendering-Service-subscribing successful with SID
    ="uuid:RINCON_000E58F4EC2601400_sub0000003887" and Timeout="86400s"
    2014.02.04 16:43:13 2: SONOS7: Alarm-Service-subscribing successful with SID="uu
    id:RINCON_000E58F4EC2601400_sub0000003888" and Timeout="86400s"
    2014.02.04 16:43:13 2: SONOS7: ZoneGroupTopology-Service-subscribing successful
    with SID="uuid:RINCON_000E58F4EC2601400_sub0000003889" and Timeout="86400s"
    2014.02.04 16:43:13 2: SONOS7: DeviceProperties-Service-subscribing successful w
    ith SID="uuid:RINCON_000E58F4EC2601400_sub0000003890" and Timeout="86400s"
    2014.02.04 16:43:13 3: SONOS7: Discover: End of discover-event for "Kche".
    2014.02.04 16:43:13 3: SONOS7: Event: Received ZoneGroupTopology-Event for Zone
    "Sonos_BRIDGE".
    2014.02.04 16:43:13 3: SONOS7: Event: End of ZoneGroupTopology-Event for Zone "S
    onos_BRIDGE".
    2014.02.04 16:43:13 3: SONOS7: Event: Received Alarm-Event for Zone "Sonos_Bad".
    2014.02.04 16:43:13 3: SONOS7: Event: End of Alarm-Event for Zone "Sonos_Bad".
    2014.02.04 16:43:13 3: SONOS7: Event: Received DeviceProperties-Event for Zone "
    Sonos_BRIDGE".
    2014.02.04 16:43:13 3: SONOS7: Event: End of DeviceProperties-Event for Zone "So
    nos_BRIDGE".
    2014.02.04 16:43:13 3: SONOS7: Event: Received ZoneGroupTopology-Event for Zone
    "Sonos_Bad".
    2014.02.04 16:43:13 3: SONOS7: Event: End of ZoneGroupTopology-Event for Zone "S
    onos_Bad".
    2014.02.04 16:43:14 3: SONOS7: Event: Received ZoneGroupTopology-Event for Zone
    "Sonos_BRIDGE".
    2014.02.04 16:43:14 3: SONOS7: Event: End of ZoneGroupTopology-Event for Zone "S
    onos_BRIDGE".
    2014.02.04 16:43:14 3: SONOS7: Event: Received DeviceProperties-Event for Zone "
    Sonos_Bad".
    2014.02.04 16:43:14 3: SONOS7: Event: End of DeviceProperties-Event for Zone "So
    nos_Bad".
    2014.02.04 16:43:14 3: SONOS7: Event: Received DeviceProperties-Event for Zone "
    Sonos_BRIDGE".
    2014.02.04 16:43:14 3: SONOS7: Event: End of DeviceProperties-Event for Zone "So
    nos_BRIDGE".
    2014.02.04 16:43:14 3: SONOS7: Event: Received Transport-Event for Zone "Sonos_K
    ueche".
    2014.02.04 16:43:15 3: SONOS7: Event: End of Transport-Event for Zone "Sonos_Kue
    che".
    2014.02.04 16:43:15 3: SONOS7: Event: Received Rendering-Event for Zone "Sonos_B
    ad".
    2014.02.04 16:43:15 3: SONOS7: Event: End of Rendering-Event for Zone "Sonos_Bad
    ".
    2014.02.04 16:43:15 3: SONOS7: Event: Received Alarm-Event for Zone "Sonos_Kuech
    e".
    2014.02.04 16:43:15 3: SONOS7: Event: End of Alarm-Event for Zone "Sonos_Kueche"
    .
    2014.02.04 16:43:15 3: SONOS7: Event: Received Alarm-Event for Zone "Sonos_Bad".
    2014.02.04 16:43:15 3: SONOS7: Event: End of Alarm-Event for Zone "Sonos_Bad".
    2014.02.04 16:43:15 3: SONOS7: Event: Received ZoneGroupTopology-Event for Zone
    "Sonos_Kueche".
    2014.02.04 16:43:15 3: SONOS7: Event: End of ZoneGroupTopology-Event for Zone "S
    onos_Kueche".
    2014.02.04 16:43:16 3: SONOS7: Event: Received ZoneGroupTopology-Event for Zone
    "Sonos_Bad".
    2014.02.04 16:43:16 3: SONOS7: Event: End of ZoneGroupTopology-Event for Zone "S
    onos_Bad".
    2014.02.04 16:43:16 3: SONOS7: Event: Received DeviceProperties-Event for Zone "
    Sonos_Kueche".
    2014.02.04 16:43:16 3: SONOS7: Event: End of DeviceProperties-Event for Zone "So
    nos_Kueche".
    2014.02.04 16:43:16 3: SONOS7: Event: Received Rendering-Event for Zone "Sonos_K
    ueche".
    2014.02.04 16:43:16 3: SONOS7: Event: End of Rendering-Event for Zone "Sonos_Kue
    che".
    2014.02.04 16:43:18 3: SONOS7: Event: Received DeviceProperties-Event for Zone "
    Sonos_Bad".
    2014.02.04 16:43:18 3: SONOS7: Event: End of DeviceProperties-Event for Zone "So
    nos_Bad".
    2014.02.04 16:43:22 3: SONOS7: Event: Received ZoneGroupTopology-Event for Zone
    "Sonos_BRIDGE".
    2014.02.04 16:43:22 3: SONOS7: Event: End of ZoneGroupTopology-Event for Zone "S
    onos_BRIDGE".
    Titel: Antw:Sonos steuern
    Beitrag von: djhans am 04 Februar 2014, 17:36:29
    Hallo,
    bei mir wird es jetzt kompliziert und möchte gerne erfragen, ob jemand eine Idee dazu hat.
    Ich möchte für einen Sleeptimer immer eine Gruppe aus Schalfzimmer (Master) und Bad bilden. Das kann man einfach mit AddMember oder mit set Sonos Group machen. Jetzt soll aber vor dem gruppieren geguckt werden, ob die Gruppe bereits existiert oder ob Schlafzimmer und Bad bereits in anderen Gruppen mit weiteren Teilnehmern stecken.  Wenn ja, löst man Schlafzimmer und Bad aus der bestehenden Gruppe heraus und verbindet sie zu einer neuen Gruppe. Einfach eine neue Konfig drüberbügeln geht nicht, denn
    set Sonos Group [Sonos_Schlafzimmer, Sonos_Bad] schmeisst einen möglichen 3. Teilnehmer nicht raus und würde die Gruppen auch nicht trennen, wenn Sie aus 4 Teilnehmern besteht. Letzteres ist sicherlich schwer machbar, da man für die 2. Gruppe einen neuen Gruppenführer (lustig!) benennen muss, der dann die Konfiguration vom alten Gruppenführer (Bad oder Schlafzimmer) übernimmt.

    Mit get Sonos Groups kann ich alle Gruppen auslesen, Bei mir kommt dann das hier raus...
    [Sonos_Terrasse], [Sonos_Wohnzimmer, Sonos_Wohnzimmer_SW], [Sonos_Buero], [Sonos_Schlafzimmer, Sonos_Bad, Sonos_Schlafzimmer_RF]Hat jemand eine Idee? oder etwas Ähnliches bereits implementiert?
    djhans
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 04 Februar 2014, 18:32:49
    Hallo,

    @Armin: Die Konsolenausgabe ist nur verbose 3. Da ist irgendwas nicht angekommen. Es kann sein, dass du nur ein Speichern der fhem.cfg durchgeführt hast, und nicht Fhem neugestartet hast. Der Thread ist anscheinend durchgelaufen, allerdings wird nur beim Start des SubProzesses das Verbose-Attribut übertragen...

    @djhans: Das mit dem "set Groups"-Befehl stimmt. Die Frage ist jetzt, ob ich mir einen Zusatzparameter überlege, damit nicht-Gruppenteilnehmer am Ende noch entfernt werden... Ich mache mir mal Gedanken dazu...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: JoeALLb am 04 Februar 2014, 18:57:24
    @djhans
    Wenn Du zuerst die Player in eine Gruppe nur für sich steckst und dann eine gemeinsame Gruppe bildest?
    Ich denke, so sollte es gehen, wenn ich es richtig verstanden habe....
    set Sonos Group [Sonos_Schlafzimmer], [Sonos_Bad];
    set Sonos Group [Sonos_Schlafzimmer, Sonos_Bad];
    Titel: Antw:Sonos steuern
    Beitrag von: JoeALLb am 04 Februar 2014, 19:26:15
    Hm, habe gerade einen Text per Speak auf dem pausierten Player ausgegeben, danach wurde der Radio mit 80% Lautstärke abgespielt.

    Eigentlich kann ich mir nur erklären, dass das Modul dabei beteiligt ist.... Kann hier ein Fehler vorliegen?

    Edit:
    Seither funktioniert ein Notify nicht mehr, das auch Speak ausführt.
    Wenn ich die entsprechende Taste dafür drücke, erhalte ich folgenden Eintrag im Log.
    2014.02.04 19:41:57 3: SONOS1: Hole die Durchsage aus dem Cache...
    2014.02.04 19:41:57 3: SONOS1: Temporary playing of "\\192.168.178.69\SonosSpeak/RINCON_000E5836AAAC01400_MR_Speak_5355964793135989a3a85262706341f5516a1f4d.mp3" must wait, because another playing is in work...

    Der Player meldet aber in FHEM: "PAUSED_PLAYBACK " , wie auch der Sonos Controller.....



    Edit2:
    Beim Beenden von FHEM bekomme ich folgende Meldung.
    Alles scheint zu funktionieren, dann kommt dennoch noch eine Fehlermeldung.... (stört mich nicht, wollte sie nur mitteilen ;-)
    2014.02.04 19:47:25 3: SONOS0: Disconnecting client and shutdown server...
    2014.02.04 19:47:25 3: SONOS0: Trying to kill Sonos_Thread...
    2014.02.04 19:47:25 3: SONOS0: Trying to kill PlayerRestore_Thread...
    2014.02.04 19:47:25 3: SONOS1: Controlpoint-Listener wurde beendet.
    Can't call method "kill" on an undefined value at FHEM/00_SONOS.pm line 4796, <$client> line 29.


    Edit 3:
    Anbei die Logzeile für das erstgemeldete Phänomen, nachdem ich FHEM neu gestartet habe.
    Der Text aus dem MP3 wird ausgegeben, danach startet der Radio sehr laut und im Log steht, dass etwas pausiert wird.
    Mir kommt das etwas spanisch vor....
    Danach geht keine "Speak"-Ausgabe mehr. Auch der Radio lässt sich danach über FHEM nicht mehr einschalten.
    Es passiert einfach nichts.
    Dann habe ich den Radio am Controller versucht, einzuschalten, (nach ungewöhnlich langer Ladezeit) wurde dann plötzlich die zuvor "pausierte" mp3 gespielt.
    und dann ausgeschaltet. Dann habe ich nochmal versuchtm, den Radio zu starten, dann kam nochmal die MP3, die diesmal wieder ine inem lauten Radioprogramm endete.
    Sehr seltsam alles, kann das durch die neue Version verursacht werden?
     Anbei noch ein Logauszug, falls es was hilft
    2014.02.04 19:50:29 3: SONOS1: Hole die Durchsage aus dem Cache...
    2014.02.04 19:50:29 3: SONOS1: Start temporary playing of "\\192.168.178.69\SonosSpeak/RINCON_000E5836AAAC01400_MR_Speak_5355964793135989a3a85262706341f5516a1f4d.mp3"
    2014.02.04 19:50:32 3: SONOS1: Hole die Durchsage aus dem Cache...
    2014.02.04 19:50:32 3: SONOS1: Temporary playing of "\\192.168.178.69\SonosSpeak/RINCON_000E5836AAAC01400_MR_Speak_5355964793135989a3a85262706341f5516a1f4d.mp3" must wait, because another playing is in work...
    2014.02.04 19:50:40 3: SONOS2: Restorethread has found a job. Waiting for stop playing...
    Titel: Antw:Sonos steuern
    Beitrag von: djhans am 04 Februar 2014, 20:08:18
    Hallo,
    Auch ich habe vor einer Stunde versucht, den Speak-Befehl auszuführen und habe festgestellt, dass der Text nicht ausgegeben wird und das Radio dann losläuft.

    Die Sprachdateien werden erzeugt, aber nicht ausgegeben.
    Djhans
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 04 Februar 2014, 20:43:09
    Hallo zusammen,

    ich schaue mir das mit der Speak-Ausgabe an. Natürlich kann da ein Fehler reingekommen sein.
    Ich habe ja ziemlich viel grundlegendes verändert und natürlich nicht alles testen können...

    Ich melde mich... Sorry dafür...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: djhans am 04 Februar 2014, 21:28:46
    Hi,
    ich noch mal!  Geht jetzt so halbwegs. Der url-Pfad war falsch bei mir. Allerdings kann mein Sonos Device nicht auf die Freigabe zugreifen und ich weiß nicht warum.

    Rechte habe ich mit chmod go+rw /mnt/SonosSpeak gesetzt.
    smb.conf:
    global]
     workgroup = SCHETTNER
     netbios name = Enterprise
     security = User
     getwd cache = yes

    [Fhem]
     comment = Hausautomation
     path = /opt/fhem
     valid users = @users root
     read only = No
     guest ok = yes
     create mask = 0777
     directory mask = 0777

    [Admin]
     comment = Administration
     path = /
     valid user = root
     public = no
     read only = No
     create mask = 0777
     directory mask = 0777

    [SonosSpeak]
      comment = Audio-Files for SonosPlayer to Speak
      read only = false
      path = /mnt/SonosSpeak
      guest ok = yes
      create mask = 0777
      directory mask = 0777

    Die mp3 wird auch richtig dort abgelegt. Wenn ich im Controller versuche den Netztwerkpfad anzubinden, kommt ein Zugriff verweigert Problem.

    jemand eine Idee?
    NACHTRAG: in der global Section muss "security" auf "share" stehen...
    djhans
    Titel: Antw:Sonos steuern
    Beitrag von: djhans am 04 Februar 2014, 21:52:57
    ....trotzdem ist in meinem Sonos System irgendetwas passiert, nachdem ich den Speak abgesetzt habe.
    Auf dem Radiosender WDR2 Ruhrgebiet kommt plötzlich kein RDS-Text mehr. Anstelle des Text läuft da jetzt: <?xml Version="1.0" encoding = "UTF8"?>"

    kann das durch das Speak-Sonos Modul gekommen sein, oder spielt der Sender gerade verrückt?

    Danke,
    Christian
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 04 Februar 2014, 22:02:52
    Hallo djhans,

    ich habe das mit der Samba-Konfiguration schon mal in meine Wiki-Vorlage eingetragen. Mit dem nächsten Release wird das dann dort auftauchen...

    Zu dem Radiosender: Es kann verschiedene Gründe haben. Zum einen kann der reguläre Ausdruck des Moduls mal schiefgehen (wenn es um die Anzeige in Fhem geht), und zum Anderen kann aber auch vom Radiosender was anderes/komisches gesendet werden...
    Ich würde als erstes mal den Radiosender neu vom Controller abspielen lassen. U.U. ist bei den durch das Modul gesetztem Radiosender eine falsche Metadaten-Struktur gesetzt worden...

    Grüße
    Reiner

    Nachtrag:
    Ich habe den Sender mal bei mir mal gestartet. Ich habe die gleiche Anzeige, sodass hier eindeutig der Sender falsche Daten sendet...
    Titel: Antw:Sonos steuern
    Beitrag von: djhans am 04 Februar 2014, 22:08:45
    Hi,
    danke für Deinen Test. Dann ist alles gut!
    Christian.
    Titel: Antw:Sonos steuern
    Beitrag von: LaLeLu am 04 Februar 2014, 23:40:02
    Hallo Reiner,

    nachdem ich auch Deine Wiki-Anleitung "Manuelle Installation SOAP::Lite" durchgeführt habe (wegen Fehler: Can't locate SOAP/Lite.pm in @INC), läuft mein SONOS auch mit fhem!



    Respekt für Deine Arbeit.

     :) ;D 8) DANKE!! 8) ;D :)
    Titel: Antw:Sonos steuern
    Beitrag von: ArminK am 05 Februar 2014, 09:33:43
    Hallo Reiner,

    hier eine kurze Info zu meinem (Ex!-)Problem :)
    Also: das entfernen der GroupID aus der fhem.save hat nichts gebracht...aber:
    Per Sonos-Steuerung folgendes gruppenmäßige gemacht:
    1. Bad zur Küche gruppiert
    2. Gruppe wieder aufgehoben
    3. Küche zum Bad gruppiert
    4. Gruppe wieder aufgehoben
    und siehe da: es funktioniert! Die beiden haben unterschiedliche Gruppen-ID's erhalten nun kann ich tatsächlich beide Sonos-Player separat aus Fhem ansteuern! Du bist ein Held!
    Eines ist mir aber noch aufgefallen: Im Log habe ich gelegentlich das hier:
    2014.02.04 20:42:28 1: SONOS0: Error creating file ./www/images/default/SONOSPLAYER/Sonos_Bad_AlbumArt.<head>http:--192.168.1.59:1400-getaa?u=x-file-cifs%3a%2f%2fhus-server%2fmusic%2f!Musik%2fPeter%20Fox%20and%20Cold%20Steel%2fPeter%20Fox%20and%20Cold%20Steel%20-%20Live%20Aus%20Berlin%20-%202009%2f(05)%20%5bPeter%20Fox%20%26%20Cold%20Steel%5d%20Haus%20am%20See.mp3&v=4<-head>
    2014.02.04 20:42:43 1: SONOS0: Error creating file ./www/images/default/SONOSPLAYER/Sonos_Bad_AlbumArt.<head>http:--192.168.1.59:1400-getaa?u=x-file-cifs%3a%2f%2fhus-server%2fmusic%2f!Musik%2fPeter%20Fox%20and%20Cold%20Steel%2fPeter%20Fox%20and%20Cold%20Steel%20-%20Live%20Aus%20Berlin%20-%202009%2f(05)%20%5bPeter%20Fox%20%26%20Cold%20Steel%5d%20Haus%20am%20See.mp3&v=4<-head>
    und die Senderlogo-Grafiken sind dann nicht korrekt (bei dem einen Player das fhem-Logo und bei dem anderen das Logo vom zuvor abgespielten Sender)
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 05 Februar 2014, 09:52:08
    Hi Armin,

    ich fürchte da rächt sich dein Ausschluß von "head" in der use-Klausel oben...
    Diese Funktion wird an der Stelle nämlich von mir verwendet, um den Mimetype des Albumart zu ermitteln, um daraufhin eine saubere Dateiendung setzen zu können.

    Ich kann auf das Problem natürlich reagieren, aber leider nicht adäquat, da ich ja den Mimetype nicht zurückbekomme. Nun kann man vielleicht mit einiger Sicherheit davon ausgehen, dass es JPG sein dürfte, aber sicher ist das natürlich nicht...

    Hmmm... das ist nicht schön. Wir sollten eine andere Lösung für dieses Head-Problem finden, als es auszuschließen...

    Zu der Gruppengeschichte: Ich habe für das nächste Wiki-Release sowieso eine kleine FAQ-Liste geplant. Ich werde das dort gleich mal als möglichen Lösungsweg reinschreiben...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: ArminK am 05 Februar 2014, 11:37:29
    Hi Reiner,

    mist, Eigentor anscheinend..... Leider hab ich von den Sachen mit den Modulen usw. nicht viel Ahnung.... wenn ich beim googeln richtig verstanden habe kommt die Fehlermeldung die ich vor der "head-Änderung" bekommen habe dadurch zu stande, dass diese "head-funktion" in mehreren Modulen vorhanden ist, und das scheint ein Problem zu sein. Eigentlich hätte ich (naiv gesagt) auch in einem anderen Modul diese Änderung machen können, oder?
    Titel: Antw:Sonos steuern
    Beitrag von: herman am 05 Februar 2014, 11:38:33
    Hallo Reiner,

    ich habe jetzt die DEV-Version seit ein paar Tage am laufen.
    Ich hatte bis jetzt weder ein Deadlock noch einen anderen Absturz bis auf das gruppieren mit einem Tippfehler im Namen der Sonos-Komponente - ich glaube das wurde hier schon genannt.

    Vielen Dank für diese Optimierung.
    Grüße,
    Merhan
    Titel: Antw:Sonos steuern
    Beitrag von: djhans am 05 Februar 2014, 18:43:56
    @djhans
    Wenn Du zuerst die Player in eine Gruppe nur für sich steckst und dann eine gemeinsame Gruppe bildest?
    Ich denke, so sollte es gehen, wenn ich es richtig verstanden habe....
    set Sonos Group [Sonos_Schlafzimmer], [Sonos_Bad];
    set Sonos Group [Sonos_Schlafzimmer, Sonos_Bad];
    Hi JoeAllb,
    das hast Du völlig richtig überblickt! Das funktioniert tatsächlich. Ich habe zum Test eine Gruppe aus Bad, Buero und Terrasse gebildet. Nach dem Absetzten der zwei Befehle, habe ich zwei Gruppen. Schlafzimmer + Bad und Buero und Terrasse. Klasse!
    nur Group muss Groups heissen :-);
    djhans
    Titel: Antw:Sonos steuern
    Beitrag von: djhans am 05 Februar 2014, 19:07:47
    Hi Reiner,
    irgendwie habe ich immer noch Probleme mit dem Sonos Modul unter fhem.
    Habe jetzt einen Befehl abgesetzt
    { my $temp = ReadingsVal("Wetter","fc1_low_c","unbekannt");; fhem "set Sonos_Wohnzimmer Speak 30 de $temp"}
    und plötzlich spielt der Badezimmer-Sonos die Temperatur...
    fhem neu gestartet, versucht den Wohnzimmer-Sonos per Play Butten zu starten -> Absturz fhem. Nur Kill 9 hilft..

    Das hängt irgendwie mit den Daten zusammen, die fhem in die fhem.cfg speichert. Wenn ich diese Daten zu Fuß rausschmeisse und die Sonos Kisten neu erkennen lasse, klappt alles perfekt, solange die Daten nicht gespeichert werden. Irgendwie ändert sich etwas im laufenden Betrieb...

    Die Sonos-Komponenten wurden nicht vom Stromnetz getrennt, ich habe lediglich mit dem Groups Befehl rumgespielt.

    Meine Komponenten:
    Connect:Amp + SUB
    2 x Play 1 Schlafzimmer, Stereopaar
    1 x Play 1 Bad
    2 x Play 3
    1 x Bridge

    Ich weiss aber nicht, wie ich den Fehler reproduzieren kann...im Logfile finde ich keine Anhaltspunkte...
    djhans.

    NACHTRAG:
    ich lösche die ganze fhem.cfg und baue fhem neu auf. Ich würde ja die autodetect-Sonos Sachen in einer separaten Datei auslagern und per include einbinden. Aber wenn ich dann irgendwann wieder save im Webinterface drücke, klatscht er das alles wieder in die fhem.cfg.

    NACHTRAG 2:
    tja, keine Ahnung was passiert ist, es lässt sich kein Player mehr über fhem steuern. Ich mach den Pi jetzt platt und fang von vorne an...
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 05 Februar 2014, 21:00:29
    Hi djhans,

    das ist schon komisch. Ich habe das auch in einer eigenen Config-Datei ausgelagert, und wenn ich save drücke, dann bleibt das auch dort.
    Wichtig ist, daß du Fhem beendest (vorher natürlich save drückst), die Konfiguration umschiebst, und Fhem wieder startest. Fhem merkt sich, wo die Konfiguration stand, wenn es gestartet wird, und speichert alles weitere auch dort wieder ab...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: djhans am 05 Februar 2014, 23:28:04
    Hallo Reiner,
    habe jetzt das komplette System neu aufgesetzt. Sobald ich irgendeinen Player ansteuern will, stürzt fhem komplett ab.

    es läuft außer Sonos nichts mehr auf dem System. Weiss nicht so richtig, wo ich anfangen soll!

    Christian.
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 05 Februar 2014, 23:43:58
    Hi Christian,

    nicht verzweifeln... das wird schon...

    Poste hier (oder per PN) doch mal bitte die Konsolenausgabe mit Level 5. Irgendwas muss ja noch passieren, wobei er dann aussteigt. Bitte vorher sicherstellen, dass du die aktuelle Developerversion des Moduls installiert hast.

    Leider ist bei der Vielfalt der Umgebungen nicht alles auf Anhieb abgrenzbar oder funktioniert direkt. Das ganze muss wachsen und gedeihen. Das bedeutet leider auch immer wieder Hürden zu beseitigen...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: djhans am 06 Februar 2014, 11:23:09
    Hi Reiner,
    danke für die Unterstützung!. Ich lösche noch mal alle Daten und Zustände und lasse alles noch einmal erkennen.
    Hier aber schon mal eine Fehlermeldung, wenn ich fhem per shutdown herunterfahre...

    Can't call method "kill" on an undefined value at FHEM/00_SONOS.pm line 4796, <$ client> line 12.
    djhans.

    NACHTRAG:
    habe nun die fhem.cfg zurückgesetzt, die fhem.save gelöscht und alles noch einmal mit viel Zeit erkennen lassen. Bislang läuft wider alle ohne Störung. ICh habe die Sonos-Device-Einträge auslagern können und ein wenig kommentiert. Das scheint auch zu funzen... Der oben beschriebene Fehler kommt aber immer, wenn man fhem beendet.

    Titel: Antw:Sonos steuern
    Beitrag von: djhans am 06 Februar 2014, 16:47:32
    Hallo,
    ich suche immer noch nach dem Besten Konzept für die Konfiguration von Weckern/Alarm. M.E. ist es am Besten, die Wecker im Sonos zu konfigurieren und über fhem bei Abweichungen (z.B. Ferien, Urlaub, Feiertage, etc.) modifizieren zu lassen. Das stellt u.a. auch sicher, dass der Sonos auch weckt, falls fhem mal ein Problem hat und gerade nicht "online" ist (passiert leider ab und zu, das fhem abkachelt!)

    Eine Frage zum Sonos-Alarm:
    die Duration des Weckers lässt sich sekundengenau einstellen, aber kann man die Duration auch auf "unbegrenzt" setzen? Hat das schon jemand probiert?
    Hintergedanke ist, das Wecksignal nach dem Einschalten unbegenzt laufen zu lassen und es dann über den Sleeptimer irgendwann langsam auszublenden. Erstens finde ich das plötzliche Abschalten der Mucke doof und zweitens kann man am Controller sehen, wie lange die Mucke noch läuft. Die Sleeptimer Restlaufzeit wird ja angezeigt. Bei dem normalen Sonos-Alarm kann man das langsame ausblenden m.E. nicht nutzen, oder? Aks Workaround könnte man die Duration auf 24h setzten und dann mit dem Sleeptimer arbeiten,  aber das finde ich unschön!

    Danke,
    Christian

    NACHTRAG:
    set Sonos_Buero Alarm Update 35 { StartTime => '17:04:00', Volume => 10, Duration => '', Enabled => 1 }
    Dauer: unbegrenzt. Das geht schon mal!
    ..wie heißt denn das Event, dass ausgelöst wird, wenn der Sonos aufgrund eines Alarms einschaltet? Das brauche ich ja, um meinen Sleeptimer zu starten.
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 06 Februar 2014, 18:22:45
    Hi Christian,

    wenn du den Alarm auf Einmal-Ausführen gestellt hast, erhältst du sofort bei Alarm-Auslösung ein Event, dass ein Alarm verändert wurde (Enabled wird von Sonos auf 0 gesetzt).

    Ansonsten bekommst du nur mit, dass das Abspielen gestartet hat. Warum sieht man zunächst nicht...
    Aber im Controller wird z.B. ein Icon angezeigt, dass gerade eine Alarm-Abspielung erfolgt. Das muss ja irgendwo herkommen. Ich kann ja mal bei Gelegenheit schauen, was ich so mitgeteilt bekomme...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: djhans am 06 Februar 2014, 18:47:04
    Hi,
    hm! das ist blöd! Auf Play kann man nicht gehen, das könnte ja zu jeder Zeit manuell und gewollt ausgelöst werden und dann würde der Sleeptimer jedes mal starten...
    Muss mal gucken, im Moment fällt mir dazu auch nichts ein. Ich dachte, es würde jedes Mal ein Ereignis ausgelöst, wenn der Alarm startet.

    ...da fällt mir ein: Man könnte doch jede Nacht um 4 Uhr die Alarm-Startzeit aus dem Sonos auslesen und dann einen Sleeptimer mit der "Sonos-Alarm-Zeit" setzten. Ist zwar nicht so elegant, aber sicherlich machbar... (für mich mit meinen fhem und perl-Kenntnissen sicherlich ein Jahrhundertprojekt  8))

    Bis dann...
    Christian
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 06 Februar 2014, 18:55:44
    Hi Christian,

    ich habe mal gerade nachgeschaut: Ich bekomme die Info natürlich auch.
    Ich baue gerade mal ein neues Reading, was diesen Wert repräsentiert... Dann gibt es auch ein Event dazu :-)

    Ich bin aber auch gerade dabei, die Namenserkennung beim Player-Discovery umzubauen...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 06 Februar 2014, 21:44:12
    Hallo zusammen,

    ich habe die Developer-Version noch mal aktualisiert.

    Folgendes bitte testen:
    - Die Namensgebung beim Playererkennen wurde überarbeitet. Das betrifft nur Stereopaare und Surroundkonstellationen...
    - Das Reading 'AlarmRunning' wurde hinzugefügt, welches immer dann eine '1' enthält, wenn das aktuelle Abspielen durch einen Alarm gestartet wurde. Leider bekomme ich nicht explizit mitgeteilt, wielange das Abspielen durchgeführt werden wird. Das kann man nur indirekt über den Alarm selbst herausfinden...

    Wie immer:
    update thirdparty http://fhem.lmsoft.de/sonos_dev sonos

    Danke schonmal...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: djhans am 06 Februar 2014, 23:09:09
    Hi Reiner,
    Besten Dank für die superschnelle Reaktion. Habe einnen Test gemacht und es scheint zu funzen...
    define AlarmRunning notify Sonos_Schlafzimmer:AlarmRunning.*1 set Sonos_Wohnzimmer Play
    Habe ein bissl gebraucht, bis ich verstanden habe, dass bei einem bestehenden AlarmRunning kein notify ausgelöst wird, sondern auf den Wechsel von 0->1 und von 1->0 reagiert wird.

    Frage:
    was hat sich an den Namen bei den Stereopaaren geändert? Mir ist nichts aufgefallen! Die heißen weiterhin Sonos_Schlafzimmer (für links) und Sonos_Schlafzimmer_RF (für rechts). Oder muss ich die Sonos.cfg löschen und die Geräte neu erkennen lassen.

    djhans

    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 06 Februar 2014, 23:56:29
    Hi Christian,

    schön, daß das mit dem Event klappt. Allgemein passe ich Readings immer nur dann an, wenn sich der Wert auch ändern würde (Ausnahme ist das "SomethingChangedEvent"). Das sorgt für etwas entspanntere Datenkommunikation zwischen den Modulbestandteilen :-)
    Wenn Fhem dauerhaft läuft, entspricht das Reading ja auch immer der Realität, sodass es stets passen sollte...

    Die Sache mit der Namensgebung ist eher für die Surround-Systeme interessant, da dort ein Problem aufgetreten war (es befanden sich "_X"-Bestandteile im generierten Devicenamen), und greift nur bei einer Neu-Erkennung der Sonos-Landschaft (bestehende Devicenamen werden natürlich nie verändert, die sind Benutzersache)...

    Aber ich habe auch die Erkennung der Stereopaare mit angepasst, sodass ein Test sicherlich sinnvoll wäre.
    Dazu bräuchtest du ja nur testweise das Include für die Sonos.cfg auskommentieren, und nach einem Fhem-Neustart ein Sonos-Device definieren.
    Bei dir sollten die Namen hoffentlich wieder genauso generiert werden.

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: djhans am 07 Februar 2014, 09:52:06
    Hi Reiner,
    habe es getestet. Der rechte Kanal eines Stereopaars heisst nun Sonos_Schlafzimmer_X und nicht mehr Sonos_Schlafzimmer_RF

    Gruß,
    Christian.
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 07 Februar 2014, 10:32:25
    Hi Christian,

    na super... Das war nicht so geplant :-)
    Kannst du mir kurz den Inhalt des Readings "ZoneGroupState" des Sonos-Devices zukommen lassen?
    Dann kann ich mal schauen, was die regulären Ausdrücke so falsch machen...

    Außerdem habe ich noch einen kleinen Tippfehler entdeckt, der aber große Wirkung haben kann...
    Kannst du das nochmal mit der neuen Version testen?

    Danke schon mal...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: djhans am 07 Februar 2014, 12:59:41
    Hi,
    habe nun das Update noch einmal gemacht, die Sonos.cfg auskommentiert und die Kisten neu erkennen lassen.
    Du kannst mich jetzt verrückt erklären, aber jetzt stimmt es wieder... heute morgen hat er da ein X hinter gepackt! Ganz bestimmt!

    get Sonos Groups liefert nun:
    [Sonos_Wohnzimmer, Sonos_Wohnzimmer_SW], [Sonos_Buero], [Sonos_Schlafzimmer, Sonos_Bad, Sonos_Schlafzimmer_RF], [Sonos_Terrasse]

    ...und das aus dem ZoneGroupState: Ich hoffe das ist das, was Du sehen wolltest...
    <ZoneGroupMember UUID="RINCON_000E58C6EF1C01400" Location="http://192.168.1.46:1400/xml/device_description.xml" ZoneName="Schlafzimmer" Icon="x-rincon-roomicon:masterbedroom" Configuration="1" SoftwareVersion="24.0-71060" MinCompatibleVersion="22.0-00000" ChannelMapSet="RINCON_000E58C6EF1C01400:LF,LF;RINCON_000E58C6F31C01400:RF,RF" BootSeq="2"/><ZoneGroupMember UUID="RINCON_000E58C6F31C01400" Location="http://192.168.1.45:1400/xml/device_description.xml" ZoneName="Schlafzimmer" Icon="x-rincon-roomicon:masterbedroom" Configuration="1" Invisible="1" SoftwareVersion="24.0-71060" MinCompatibleVersion="22.0-00000" ChannelMapSet="RINCON_000E58C6EF1C01400:LF,LF;RINCON_000E58C6F31C01400:RF,RF" BootSeq="3"/></ZoneGroup><ZoneGroup Coordinator="RINCON_000E58F224CE01400" ID="RINCON_000E58F224CE01400:26"><
    Christian
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 07 Februar 2014, 13:46:31
    Hi Christian,

    klasse, ich glaube dir:-)
    Dann war es schon der Tippfehler, der das Problem gelöst hat... das ist gut...

    Jetzt brauchen wir nur noch den Test von Sacha zu dem Thema, dann hätten wir diese Baustelle auch erstmal dicht...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: djhans am 07 Februar 2014, 15:37:22
    Hi,
    habe jetzt weder diese Abstütze! Und zwar nachdem ich den Speak Befehl ausgeführt habe. fhem ist so dermaßen abgesemmelt, dass es sich weder "stop" noch mit "kill 9" abschießen lässt.

    Den Speak Befehl hat er noch ausgeführt, dann war Schluss! Hier mal der Code, vielleicht fällt ja jemandem etwas auf:
    define sayTemperatur at *13:59:00 \
    { my $temp = ReadingsVal("Wetter","fc1_low_c","unbekannt");;;;\
    fhem "set Sonos_Bad Speak 20 de Aussentemperatur: $temp Grad."}
    attr sayTemperatur room Wecker
    djhans
    Titel: Antw:Sonos steuern
    Beitrag von: JoeALLb am 07 Februar 2014, 16:29:15
    Also bei mir haben die letzten Tage auch die Speaks wieder gut funktioniert, ohne absturz.
    Was ich festgestellt habe ich, dass sich ein anderer UPNP server (die Fritzbox mit beta-firmware)
    mit dem sonos verbindung aufgenommen hat und sonos somit nicht mehr ordentlich zum steuern war.
    Ich habe im Sonos-controller auf stopp gedrückt, 2 sekunden später war der radio wieder an.
    Seit dem deaktivieren des medieservers auf der fritzbox gehts wieder. das war mehr oder weniger ein zufallsfund,
    da ich die fritzbox dafür niemals konfiguriert hatte.

    Eines ist mir jedoch noch aufgefallen: Sonos war aus, dann habe ich eine Durchsage nach einem Telefoneingang programmiert
    so in etwa "Speak Stelle musik leiser da anruf".
    Diese durchsage funktionierte, danach hat sich Sonos jedoch eingeschaltet. Ich denke, es sollte in den Ausgangszustand zurückkehren?!?


    liebe Grüße
    Joe
    Titel: Antw:Sonos steuern
    Beitrag von: djhans am 07 Februar 2014, 17:09:45
    Hallo,
    das mit dem "Einschalten nach der Durchsage" habe ich nicht. Der Player geht in den letzten Zustand wieder zurück. Wenn er aus war, blaeibt er nach der Durchsage auch aus, wenn Musik läuft, wird diese danach auch fortgesetzt (die Pause zwischen Ende Durchsage und Fortsetzung der Musik ist ein wenig lang). Der Fritten Mediaserver ist aus.  Allerdings läuft ein Twonky Mediaserver auf meiner qnap.

    Sonst sollte da abernix sein. Ggf. noch die Dreambox. Möglicherweise läuft da noch ein Server, der den Sonos stören könnt. Wie kann man das herausfinden? Mit nem UPNP-Scanner? Da hatte Reiner mal etwas zu gepostet..

    Christian.
    Titel: Antw:Sonos steuern
    Beitrag von: djhans am 07 Februar 2014, 21:56:01
    Guten Abend,
    ich habe noch mal eine Frage:
    Im Wiki gibt es ein Bsp. um auf TastenEvents zu reagieren. Wenn ich das richtig verstehe, dann ist das doch genau das, was derzeit doch sowieso mit dem Sonos klappt.

    kurzes Drücken auf Mute, Sonos Play
    erneutes Drücken auf Mute, Sonos Pause (Radio Stop)
    2 x kurzes Drücken auf Mute, Track weiterschalten (nicht bei Radio)

    Play und Stop über fhem zu machen, macht doch nach dem Sonos FW-Update keinen Sinn mehr, oder erweitert man die Funktionalität der Buttons mit Reiners Bsp. und könnte damit beispielsweise einen Radiosender laden und einen Sleeptimer starten. Nur was passiert dann,  wenn man 2 x innerhalb einer Sekunde die Mute-taste drückt?

    Christian

    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 07 Februar 2014, 22:31:57
    Hi Christian,

    das stimmt, diese Button-Events waren für die alte Firmware. Seit der neuen macht das nicht mehr soviel Sinn.
    Man kann noch die Volume-Up und -Down Funktion verwenden... die alte Mute-Taste ist ja jetzt eine Play/Pause-Taste, die auch genau diese Events erzeugt (und kein Mute-Event mehr)...

    Ich werde den Wiki-Eintrag mal entsprechend anpassen...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: JoeALLb am 08 Februar 2014, 09:06:25
    Nur eine kleine Info:
    Heute wusste mein Sonos_Wohnzimmer plötzlich seinen Namen nicht mehr...  Der Sonos Controller wollte,  dass ich einen neuen Namen vergebe. Sehr seltsam,  irgendwas geht da vor ;-)

    Gesendet von meinem Xperia Pro mit Tapatalk

    Titel: Antw:Sonos steuern
    Beitrag von: JoeALLb am 08 Februar 2014, 12:27:37
    Da sWohnzimmer schaltete jetzt alle paar Sekunden ein und aus, ohne dass ich in
    FHEM nur eingeloggt war.
    2014-02-08 12:22:28 SONOSPLAYER Sonos_Wohnzimmer LastActionResult: StartFavourite: Success!
    2014-02-08 12:22:29 SONOSPLAYER Sonos_Wohnzimmer LastActionResult: AddMember: Success!
    2014-02-08 12:22:36 SONOSPLAYER Sonos_Wohnzimmer LastActionResult: StartFavourite: Success!
    2014-02-08 12:22:37 SONOSPLAYER Sonos_Wohnzimmer LastActionResult: AddMember: Success!
    2014-02-08 12:22:54 SONOSPLAYER Sonos_Wohnzimmer LastActionResult: StartFavourite: Success!
    2014-02-08 12:22:55 SONOSPLAYER Sonos_Wohnzimmer LastActionResult: AddMember: Success!
    2014-02-08 12:23:01 SONOSPLAYER Sonos_Wohnzimmer LastActionResult: StartFavourite: Success!
    2014-02-08 12:23:04 SONOSPLAYER Sonos_Wohnzimmer LastActionResult: AddMember: Success!
    2014-02-08 12:23:09 SONOSPLAYER Sonos_Wohnzimmer LastActionResult: StartFavourite: Success!
    2014-02-08 12:23:10 SONOSPLAYER Sonos_Wohnzimmer LastActionResult: AddMember: Success!
    2014-02-08 12:23:17 SONOSPLAYER Sonos_Wohnzimmer LastActionResult: StartFavourite: Success!
    2014-02-08 12:23:18 SONOSPLAYER Sonos_Wohnzimmer LastActionResult: AddMember: Success!
    2014-02-08 12:23:25 SONOSPLAYER Sonos_Wohnzimmer LastActionResult: StartFavourite: Success!
    2014-02-08 12:23:26 SONOSPLAYER Sonos_Wohnzimmer LastActionResult: AddMember: Success!
    2014-02-08 12:23:34 SONOSPLAYER Sonos_Wohnzimmer LastActionResult: StartFavourite: Success!
    2014-02-08 12:23:35 SONOSPLAYER Sonos_Wohnzimmer LastActionResult: AddMember: Success!
    2014-02-08 12:23:44 SONOSPLAYER Sonos_Wohnzimmer LastActionResult: StartFavourite: Success!
    2014-02-08 12:23:45 SONOSPLAYER Sonos_Wohnzimmer LastActionResult: AddMember: Success!
    2014-02-08 12:23:51 Global global DELETED Sonos

    Als ich das mit dem Controller nicht in den Griff bekommen habe,
    habe ich in FHEM delete Sonos eingetragen.
    Danach stürzte FHEM komplett ab.
    Anbei da sLog dazu.
    Seither funktioniert Sonos wieder, also denke ich, war das Modul an diesem Effekt irgendwie beteiligt...?!? Kann das sein?

    root@raspberrypi:~# 2014.02.08 12:23:51 3: SONOS0: Disconnecting client...
    2014.02.08 12:23:51 3: SONOS0: Trying to kill Sonos_Thread...
    2014.02.08 12:23:51 3: SONOS0: Trying to kill PlayerRestore_Thread...
    2014.02.08 12:23:51 1: SONOS2: Restore-Thread wurde beendet.
    Can't use string ("") as a HASH ref while "strict refs" in use at ./FHEM/21_SONOSPLAYER.pm line 322.
    2014.02.08 12:23:53 3: SONOS1: Controlpoint-Listener wurde beendet
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 08 Februar 2014, 13:08:35
    Hi JoeALLb,

    die Zeile 322 ist der Start für eine Durchsage. Kann es sein, dass Fhem bei dir, vielleicht auf Basis irgendeines Events, eine Durchsage machen wollte?

    Im ersten Schritt würde ich mal die Notifies, die sich irgendwie auf Sonos beziehen deaktivieren, und das Modul wieder aktivieren. Das kann ja fast nur ein wildgewordenes Event-Notify-Konstrukt sein...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: JoeALLb am 08 Februar 2014, 19:44:35
    Anbei meine Notifys im Zusammenhanfg mit Sonos, ich erkenne da nichts, was dieses Verhalten produzieren könnte.

    Notify #1 auf einem Taster, sollte das Problem also nicht sein
    set Sonos Groups [Sonos_Wohnzimmer,Sonos_Kueche];
    set Sonos_Wohnzimmer StartFavourite BAYERN%%203;
    sleep 1;;
    Sonos_Wohnzimmer Volume 45;;
    set Sonos_Kueche Volume 30;;
    sleep 1;;
    set Sonos_Wohnzimmer Mute off
    sleep 1;;
    set Sonos_Kueche Mute off

    Notify #2, ebenfalls Taster
    set Sonos StopAll;
    sleep 1;
    set Sonos Groups [Sonos_Bad], [Sonos_Kueche],[Sonos_Schlafzimmer],[Sonos_Wohnzimmer];

    Notify #3
    set Sonos Groups [Sonos_Bad], [Sonos_Kueche],[Sonos_Schlafzimmer],[Sonos_Wohnzimmer]
    Notify #4 am Taster
    set Sonos_Wohnzimmer Speak 70 de Kalender gespeichert
    Notify #5 am Taster, nur für testzwecke
    {fhem("set HomeStatus %")}
    {fhem("set Sonos_Kueche Volume 32")}
    {fhem("set Sonos_Wohnzimmer Volume 32")}
    {fhem("set Sonos_Kueche AddMember Sonos_Wohnzimmer")}
    {fhem("set Sonos_Kueche Play")}

    Notify #6 FritzboxTelefon
    FritzBox:event:.*ring { fhem("set Sonos_Bad VolumeSave 15")};
    { fhem("set Sonos_Schlafzimmer VolumeSave 15")};
    { fhem("set Sonos_Wohnzimmer VolumeSave 15")};
    { fhem("set Sonos_Kueche VolumeSave 15")};
    { fhem("set Sonos_Wohnzimmer Speak 40 de Telefon stelle leiser")}

    Also ich hab echt keine Idee, was das auslösen könnte!

    Hab aber nach dem Neustart wieder einen Absturz von FHEM, nachdem ich nicht zuhause war.
    Habe das Löschen des Sonos-devices nicht gespeichert und beim FHEM-Neustart nicht dran gedacht.
    Als ich gerade eben heimgekommen bin war folgendes im Log zu sehen:

    Unsubscription request failed with error: 412 Precondition Failed at FHEM/lib/UPnP/ControlPoint.pm line 1001 thread 1.
    Unsubscription request failed with error: 412 Precondition Failed at FHEM/lib/UPnP/ControlPoint.pm line 1001 thread 1.
    Unsubscription request failed with error: 412 Precondition Failed at FHEM/lib/UPnP/ControlPoint.pm line 1001 thread 1.
    Unsubscription request failed with error: 412 Precondition Failed at FHEM/lib/UPnP/ControlPoint.pm line 1001 thread 1.
    Unsubscription request failed with error: 412 Precondition Failed at FHEM/lib/UPnP/ControlPoint.pm line 1001 thread 1.
    Unsubscription request failed with error: 412 Precondition Failed at FHEM/lib/UPnP/ControlPoint.pm line 1001 thread 1.
    Unsubscription request failed with error: 412 Precondition Failed at FHEM/lib/UPnP/ControlPoint.pm line 1001 thread 1.
    Unsubscription request failed with error: 412 Precondition Failed at FHEM/lib/UPnP/ControlPoint.pm line 1001 thread 1.
    Unsubscription request failed with error: 412 Precondition Failed at FHEM/lib/UPnP/ControlPoint.pm line 1001 thread 1.
    Unsubscription request failed with error: 412 Precondition Failed at FHEM/lib/UPnP/ControlPoint.pm line 1001 thread 1.
    Unsubscription request failed with error: 412 Precondition Failed at FHEM/lib/UPnP/ControlPoint.pm line 1001 thread 1.
    Unsubscription request failed with error: 412 Precondition Failed at FHEM/lib/UPnP/ControlPoint.pm line 1001 thread 1.
    Unsubscription request failed with error: 412 Precondition Failed at FHEM/lib/UPnP/ControlPoint.pm line 1001 thread 1.
    Unsubscription request failed with error: 412 Precondition Failed at FHEM/lib/UPnP/ControlPoint.pm line 1001 thread 1.
    Unsubscription request failed with error: 412 Precondition Failed at FHEM/lib/UPnP/ControlPoint.pm line 1001 thread 1.
    Unsubscription request failed with error: 412 Precondition Failed at FHEM/lib/UPnP/ControlPoint.pm line 1001 thread 1.
    Unsubscription request failed with error: 412 Precondition Failed at FHEM/lib/UPnP/ControlPoint.pm line 1001 thread 1.
    Unsubscription request failed with error: 412 Precondition Failed at FHEM/lib/UPnP/ControlPoint.pm line 1001 thread 1.
    Unsubscription request failed with error: 412 Precondition Failed at FHEM/lib/UPnP/ControlPoint.pm line 1001 thread 1.
    Unsubscription request failed with error: 412 Precondition Failed at FHEM/lib/UPnP/ControlPoint.pm line 1001 thread 1.
    Unsubscription request failed with error: 412 Precondition Failed at FHEM/lib/UPnP/ControlPoint.pm line 1001 thread 1.
    Unsubscription request failed with error: 412 Precondition Failed at FHEM/lib/UPnP/ControlPoint.pm line 1001 thread 1.
    Unsubscription request failed with error: 412 Precondition Failed at FHEM/lib/UPnP/ControlPoint.pm line 1001 thread 1.
    Unsubscription request failed with error: 412 Precondition Failed at FHEM/lib/UPnP/ControlPoint.pm line 1001 thread 1.
    Unsubscription request failed with error: 412 Precondition Failed at FHEM/lib/UPnP/ControlPoint.pm line 1001 thread 1.
    Unsubscription request failed with error: 412 Precondition Failed at FHEM/lib/UPnP/ControlPoint.pm line 1001 thread 1.
    Unsubscription request failed with error: 412 Precondition Failed at FHEM/lib/UPnP/ControlPoint.pm line 1001 thread 1.
    2014.02.08 12:51:12 2: SONOS1: Error during UPnP-Handling:
    2014.02.08 12:51:12 3: SONOS1: UPnP-Thread wurde beendet.
    Can't call method "kill" on an undefined value at FHEM/00_SONOS.pm line 4839, <$client> line 7.
    Perl exited with active threads:
            2 running and unjoined
            0 finished and unjoined
            0 running and detached

    die CPU-Last war 100% und FHEM antwortete nicht mehr. Der Prozess lief aber noch.
    Was mich ebenfalls wundert ist, dass das Logging aller Daten bereits um 12:20 aufgehört hat,
    die Konsole aber noch bis 12:51 weiterlief.....

    Übrigens musste ich jetzt meinen "Sonos_Kueche" komplett neu in das Sonos-.Netz aufnehmen, er war einfach nicht mehr da und tauchte
    nach einem Restart auch nicht auf. Muss ich die Ghostbusters rufen ;-)?
    Titel: Antw:Sonos steuern
    Beitrag von: der-Lolo am 09 Februar 2014, 10:36:14
    Mein Sonos Modul ist auskommentiert, schon ne ganze Weile - ich hatte aber trotzdem gestern Probleme meinen play3 den ich meist vom Strom trenne in die bestehende Landschaft zu integrieren...

    Vielleicht gibt es grundsätzlich ein Problem von Sonos. Vielleicht seit deren letztem update...
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 09 Februar 2014, 12:13:48
    Hallo zusammen,

    sind die Player vielleicht schon etwas älter, und der integrierte Akku ist nicht mehr so stabil, sodas irgendwelche Informationen verloren gehen, wenn sie zulange aus sind?
    Vielleicht gibt es aber auch eine Maximalzeit, die so ein Player aus sein darf...
    Am Besten mal im Sonos-Forum suchen/posten. Vielleicht gibt es ja bereits eine Lösung/Antwort dazu...

    zum Modul: Ich habe nun die Namensvergabe bei der Playererkennung zusammen mit Sacha getestet und soweit korrigiert, dass es bei ihm sauber funktioniert. Bitte mal in anderen Konstellationen testen...

    Des Weiteren habe ich den Fehler mit dem Absturz bei fehlerhaften Devicenamen bei "AddMember" und "RemoveMember" entfernt. Es kommt jetzt eine saubere Fehlermeldung, mit den möglichen Werten...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: JoeALLb am 09 Februar 2014, 12:56:09
    sind die Player vielleicht schon etwas älter, und der integrierte Akku ist nicht mehr so stabil, sodas irgendwelche Informationen verloren gehen, wenn sie zulange aus sind?

    Meine Player waren gar nicht aus.... Ich verstehe es zur Zeit sowieso nicht.
    Davor war FHEM tagelang stabil, gestern 2x die Abstürze, heute funktioniert wieder alles
    sein 18h problemlos. Auch durchsagen werden wieder problemlos abgespielt.

    Ich werds einfach beobachten, vielleicht entdecke ich noch einen Zusammenhang. Danke für die ganze Unterstützung!
    Titel: Antw:Sonos steuern
    Beitrag von: der-Lolo am 09 Februar 2014, 13:12:50
    Der play3 ist noch nichtmal ein Jahr alt... War aber wirklich recht lange vom Strom getrennt... Ich wusste gar nicht das es da einen Akku gibt... Ich glaube aber den Zusammenhang erkannt zu haben, mal meldet er sich am ZP an, mal am Amp - das sind dann unterschiedliche Knoten hier im Netzwerk...

    Hm...
    Titel: Antw:Sonos steuern
    Beitrag von: herman am 09 Februar 2014, 22:52:24
    Hallo Reiner,

    ich leide doch noch unter vielen Abstürzen, die sporadisch stattfinden. Mein FHEM stürzt Cas eins bis zwei Mal am Tag ab und das in folgenden Konstellationen:

    - Alle Sonos Steckdosen aus, keiner im Haus, keine Befehle werden abgesetzt. Der Sonos-Thread logt sogar noch Nachrichten, dass irgendetwas abgelaufen wäre.
    - Alle Sonos-Geräte in Betrieb, keine Befehle abgesetzt

    Die Log-Datei hat keine Hinweise. Der Fhem-Prozess und Songs-Thread haben keine konstante Auslastung.
    Eben hatte ich beim Neustart folgende Meldungen in der Konsole:

    2014.02.09 21:52:42 3: SONOS0: Disconnecting client...
    2014.02.09 21:52:42 3: SONOS0: Trying to kill Sonos_Thread...
    2014.02.09 21:52:42 3: SONOS0: Trying to kill PlayerRestore_Thread...
    2014.02.09 21:52:42 1: SONOS2: Restore-Thread wurde beendet.
    2014.02.09 21:52:42 3: SONOS1: Controlpoint-Listener wurde beendet.
    2014.02.09 21:52:48 1: SONOS0: Connection accepted from localhost:43246
    2014.02.09 21:52:48 3: SONOS0: Disconnecting client...
    2014.02.09 21:52:48 3: SONOS0: Sonos_Thread is already killed!
    2014.02.09 21:52:50 1: SONOS0: Connection accepted from localhost:43248
    2014.02.09 21:53:04 3: SONOS3: UPnP-Thread gestartet.
    2014.02.09 21:53:05 1: SONOS4: Restore-Thread gestartet. Warte auf Arbeit...
    2014.02.09 21:54:14 2: SONOS1: Error during UPnP-Handling:
    2014.02.09 21:54:14 3: SONOS1: UPnP-Thread wurde beendet.

    Hast Du Tipps, wie ich das ganze strukturiert debguggen könnte? Mir fehlt gerade der Ansatz, da die Abstürze nicht mit Aktivitäten meinerseits verbunden sind.

    Vielen Dank für Deine Unterstützung!

    Grüße,
    Merhan
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 09 Februar 2014, 23:42:05
    Hallo Merhan,

    das sieht z.B. nach Rereadcfg-Durchläufen deines Fhem aus.
    Wenn du z.B. den Befehl "rereadcfg" in Fhem ausführst, dann wird die Verbindung zum SubProzess beendet. Dieser beendet vorher noch alle seine Threads, und wartet dann wieder auf eine neue Verbindung.
    Diese kommt dann auch wieder, nur um gleich wieder zu verschwinden...
    Dieses rereadcfg wird auch beim Speichern der fhem.cfg über das Webinterface durchgeführt (wobei das bei dir ja nicht sein kann).

    Zwischendurch kam mal die Meldung, dass er fehlerhafte/nicht erkennbare UPnP-Pakete empfangen hätte, und somit den UPnP-Thread neugestartet hätte. Das passiert aber "unter der Haube", ohne das Fhem was davon mitbekommt. Das habe ich hier auch ab und zu. Ich vermute, daß das an einem Fehler in der UPnP-Library liegt, die ich da verwende...

    Zur Fehlersuche könntest du den Loglevel für den SubProzess mal auf 5 hochsetzen. Dann sieht man genau, was Fhem so an den SubProzess sendet, und was dieser dann damit macht.

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: herman am 10 Februar 2014, 09:44:43

    Zur Fehlersuche könntest du den Loglevel für den SubProzess mal auf 5 hochsetzen. Dann sieht man genau, was Fhem so an den SubProzess sendet, und was dieser dann damit macht.


    Hallo Reiner,

    vielen Dank. Kann ich nur den Loglevel vom Subprozess hochsetzen oder hängt dieser am Loglevel von FHEM. Ich habe viele Geräte in FHEM. Wenn ich das einen Tag durchlaufen lasse im höchsten Loglevel, wird das sehr viel.

    Viele Grüße,
    Merhan
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 10 Februar 2014, 09:52:52
    Hallo Merhan,

    du kannst am Sonos-Device das "verbose"-Attribut auf 5 setzen. Dann fehlen uns nur die ersten paar Zeilen, bis Fhem sich mit dem von ihm gestarteten Prozess verbunden hat.
    Das sollte aber nicht weiter wichtig sein. Das Problem tritt ja später auf...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: djhans am 10 Februar 2014, 11:43:07
    Hallo Reiner,
    ich glaube ich komme so langsam dahinter, wann es zu den fhem Abstürzen aufgrund des Sonos-Moduls kommt.

    Habe heute zum Testen den Bad Sonos vom Bad in eine andere Etage getragen. Der Bad-Sonos war zuvor in einer Gruppe mit dem Schlafzimmer.

    Nachdem nun der Bad Sonos im DG wieder angeschlossen war, hat fhem diesen auch sauber als "appeared" erkannt. Aber steuern lässt er sich nicht. ein einfaches set Sonos_Bad Stop brachte das Sytsem zum Totalabsturz (Stecker am raspberry ziehen).

    Geräte aus einer bestehenden Gruppenkonfiguration vom Strom zu trennen, mag das Sonos-Modul offenbar nicht.
    Nach dem Löschen der fhem.save war alles wieder ok.

    Christian
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 10 Februar 2014, 11:52:35
    Hallo Christian,

    das kann ich ja bei mir mal nachstellen, und schauen, ob ich das Problem dann sehe...
    Ich vermute das Problem ja dann, wenn es der Master ist, den du auf diese Art wegreißt. Dann versucht das Modul bestimmt immer noch alles an den nicht vorhandenen Player zu senden...

    Eigentlich sollte die Abwesenheitserkennung des Moduls das beheben. Ich hatte da Code eingebaut, der dem Sonos-System mitteilt, dass ein Player nun weg ist (wenn er nicht gerade der Letzte seiner Art war :-). Daraufhin sollte dieser Player aus den Controllern verschwinden, und eigentlich sollte Sonos auch die Gruppenkonstellationen bereinigen können... Das tut es aber anscheinend doch nicht wie gewollt...

    Danke schon mal für die Info...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: djhans am 10 Februar 2014, 12:32:34
    Hi Reiner,
    der Bad_Player ist nicht der Master. Das ist das Schlafzimmer.

    btw.
    seit der Aktioo ist das System irgendwie durcheinander....ich bekomme ene perl-Meldung auf der Debian Console "out of Memory" und fhem ist weg. Habe mir leider nicht gemerkt, welche module das waren... Beim nächsen mal poste ich das.

    Christian.
    Titel: Antw:Sonos steuern
    Beitrag von: djhans am 10 Februar 2014, 12:44:34
    ...und noch etwas verstehe ich nicht:

    warum spielt er das Radioprogramm nicht ab? Wo ist der Fehler in meinem Script? Einzeln funktioneiren die BEfehle in der Eingabemaske vom fhem Web-Interface, z.B. {fhem "set Sonos_Bad LoadRadio WDR2%20Ruhrgebiet"}

    define Sonos_Bad_Appeared_Notify notify Sonos_Bad:presence:.appeared { \
    fhem "set Sonos_Bad LoadRadio WDR2%20Ruhrgebiet";; \
    fhem "set Sonos_Bad Volume 15";; \
    fhem "set Sonos_Bad Play" \
    }

    Logfile:
    014-02-10 12:37:53 SONOSPLAYER Sonos_Bad presence: disappeared
    2014-02-10 12:37:53 SONOS Sonos ZoneGroupState:
    2014-02-10 12:37:53 SONOS Sonos ZoneGroupState:
    2014-02-10 12:37:53 SONOS Sonos ZoneGroupState:
    2014-02-10 12:37:53 SONOS Sonos ZoneGroupState:
    2014-02-10 12:37:53 SONOS Sonos ZoneGroupState:
    ........
    2014-02-10 12:38:06 SONOSPLAYER Sonos_Bad presence: appeared
    2014-02-10 12:38:06 SONOS Sonos ZoneGroupState:
    2014-02-10 12:38:06 SONOS Sonos ZoneGroupState:
    2014-02-10 12:38:06 SONOS Sonos ZoneGroupState:
    2014-02-10 12:38:06 SONOS Sonos ZoneGroupState:
    2014-02-10 12:38:06 SONOS Sonos ZoneGroupState:
    2014-02-10 12:38:06 SONOS Sonos ZoneGroupState:
    2014-02-10 12:38:07 FHEMWEB FHEMWEB:192.168.1.50:54905 rereadicons
    2014-02-10 12:38:07 FHEMWEB FHEMWEB:192.168.1.50:54909 rereadicons
    2014-02-10 12:38:07 FHEMWEB FHEMWEB:192.168.1.50:54928 rereadicons
    2014-02-10 12:38:08 FHEMWEB FHEMWEB:192.168.1.50:54931 rereadicons
    2014-02-10 12:38:08 FHEMWEB FHEMWEB:192.168.1.50:54961 rereadicons
    2014-02-10 12:38:09 FHEMWEB FHEMWEB:192.168.1.50:54962 rereadicons
    2014-02-10 12:38:09 FHEMWEB WEB rereadicons
    2014-02-10 12:38:09 FHEMWEB WEBphone rereadicons
    2014-02-10 12:38:10 FHEMWEB WEBtablet rereadicons
    2014-02-10 12:38:10 SONOSPLAYER Sonos_Bad currentAlbumArtURI: ./www/images/default/SONOSPLAYER/Sonos_Bad_AlbumArt.png
    2014-02-10 12:38:10 SONOSPLAYER Sonos_Bad numberOfTracks: 0
    2014-02-10 12:38:10 SONOSPLAYER Sonos_Bad currentTrack: 0
    2014-02-10 12:38:10 SONOSPLAYER Sonos_Bad currentTrackURI:
    2014-02-10 12:38:10 SONOSPLAYER Sonos_Bad currentAlbumArtist: STOPPED
    2014-02-10 12:38:10 SONOSPLAYER Sonos_Bad currentNormalAudio: 1
    2014-02-10 12:38:10 SONOSPLAYER Sonos_Bad infoSummarize1: [Keine Musikdatei]
    2014-02-10 12:38:10 SONOSPLAYER Sonos_Bad infoSummarize2: STOPPED => [Keine Musikdatei]
    2014-02-10 12:38:10 SONOSPLAYER Sonos_Bad STOPPED => [Keine Musikdatei]
    2014-02-10 12:38:10 SONOS Sonos ZoneGroupState:
    2014-02-10 12:38:11 FHEMWEB FHEMWEB:192.168.1.50:54905 rereadicons
    2014-02-10 12:38:11 FHEMWEB FHEMWEB:192.168.1.50:54909 rereadicons
    2014-02-10 12:38:11 FHEMWEB FHEMWEB:192.168.1.50:54928 rereadicons
    2014-02-10 12:38:12 FHEMWEB FHEMWEB:192.168.1.50:54931 rereadicons
    2014-02-10 12:38:12 FHEMWEB FHEMWEB:192.168.1.50:54961 rereadicons
    2014-02-10 12:38:12 FHEMWEB FHEMWEB:192.168.1.50:54962 rereadicons
    2014-02-10 12:38:12 FHEMWEB WEB rereadicons
    2014-02-10 12:38:13 FHEMWEB WEBphone rereadicons
    2014-02-10 12:38:13 FHEMWEB WEBtablet rereadicons
    2014-02-10 12:38:13 SONOSPLAYER Sonos_Bad LastActionResult: LoadRadio: Radio "WDR2presence:" not found. Choose one of: "1LIVE - Das junge Radio des WDR.","Antenne Unna","NDR 2","WDR 2 Dortmund -alternativ-","WDR Event","WDR2 Ruhrgebiet","hr3"
    2014-02-10 12:38:13 SONOSPLAYER Sonos_Bad LastActionResult: SetVolume: 15
    2014-02-10 12:38:13 SONOSPLAYER Sonos_Bad LastActionResult: Play: Error! UPnP-Fault-Fields: Code: "s:Client", String: "UPnPError", Actor: "-", Detail: "{UPnPError => {errorCode => 701}}"
    2014-02-10 12:38:13 SONOS Sonos ZoneGroupState:
    2014-02-10 12:38:13 SONOS Sonos ZoneGroupState:
    2014-02-10 12:38:13 SONOSPLAYER Sonos_Bad currentSender:
    2014-02-10 12:38:13 SONOSPLAYER Sonos_Bad currentStreamAudio:

    djhans
    Titel: Antw:Sonos steuern
    Beitrag von: JoeALLb am 10 Februar 2014, 12:54:01
    Hallo Hans,

    ich habe das selbe Phänomen: Wenn ich jedoch davor ein Sleep einfüge, gehts bei mir.
    Dabei dürfte es sich gar nicht um das sleep ansich handeln, bei mir wird hier einfach die erste Zeile ansich ignoriert, mit wgal welchem Inhalt.
    Was Du aber noch prüfen solltest:
    Im notify wird das % zeichen escaped.
    also %%20 statt %20.
    Vielleicht reicht dieser eine Schritt bei Dir schon aus?

    Beispiel
    define Sonos_Bad_Appeared_Notify notify Sonos_Bad:presence:.appeared { \
    sleep 0.1;;\
    fhem "set Sonos_Bad LoadRadio WDR2%%20Ruhrgebiet";; \
    fhem "set Sonos_Bad Volume 15";; \
    fhem "set Sonos_Bad Play" \
    }
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 10 Februar 2014, 13:47:52
    Hi Hans,

    JoeALLb hat bzgl des %-Zeichens recht. Das ist auch in deinem Log-Auszug zu sehen, wo das Modul versucht den Sender "WDR2presence:" zu laden. Den dürfte es so nicht geben :-)

    Das mit dem sleep sollte nicht notwendig sein, ist aber trotzdem einen Versuch wert, da Fhem bei einem Sleep die Ausführung real unterbricht. Da kann also zwischendurch was anderes verarbeitet werden...

    Zu dem Absturzproblem: OK, ich werde das versuchen nachzustellen...
    Das mit dem Out of memory wurde hier schon des öfteren gemeldet. Eine Lösung dazu wurde, meines Wissens nach, leider noch nicht entdeckt... ich selber hatte das Phänomen noch nicht...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: djhans am 10 Februar 2014, 13:58:21
    Hi,
    jep! Das war es! Meine Güte!
    Noch einmal zum Verstehen! Warum wird es hier weggeschmissen und wenn ich es direkt als BEfehl eingeben nicht?

    Danke,
    djhans
    Titel: Antw:Sonos steuern
    Beitrag von: JoeALLb am 10 Februar 2014, 14:44:36
    Anbei mein Versuch der Erklärung ;-)

    In der Kommandozeile wird der befehl nicht von perl interpretiert und muss daher nicht escaped werden.
    Im Notify steht der Befehl in " und wird von Perl daher interpretiert. mit % kann ich eine Variable oder einen Hash im text einbinden.
    Damit dies jedoch nicht als Programmiersprachenelement, sondern als Zeichen erkannt wird, muss innerhalb von "" das zeichen doppelt geschrieben werden.
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 10 Februar 2014, 15:06:50
    Hi JoeALLb,

    es ist viel einfacher: Der Befehl "notify" ersetzt einfach einige Platzhalter, bevor der Code ausgeführt wird.
    Z.B. wird das %-Zeichen durch das Event ersetzt.

    Siehe dazu auch http://fhem.de/commandref.html#notify (http://fhem.de/commandref.html#notify)

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: djhans am 10 Februar 2014, 18:58:10
    Hallo,
    Besten Dank, dann ist das in Verbindung mit dem notify so. Wenn ich ein normales at *15:00:00 mache, braucht man das doppelte % nicht....

    Aber mal eine andere Frage:
    Hat jemand eine Idee, wie man im Schlafzimmer einen SleepTimer programmieren kann, den man über die Tasten am Sonos einstellt (z.B. je Tastendruck +10min)? Seit der Play-Funktion über den "Mute" Button ist das sicherlich in der Form nicht mehr möglich! VolUp und VolDown würde sich auch auf die Lautstärke auswirken.

    Ich würde das ja auch mit einem Lichtschalter machen und dafür zwei Wippen reservieren. Habe aber noch keine geeigneten Schalter gefunden, die in einem Std.-55-Rahmen 3 oder 4 Doppelwippen unterbringen können, so wie es bei den KNX-Schaltern von Gira der Fall ist...

    Gruß
    djhans
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 10 Februar 2014, 20:19:16
    Hi Christian,

    du könntest die Up/Down-Buttons in gleicher Zahl aber verschiedener Reihenfolge verwenden, oder mit einer kleinen Lautstärkeänderung leben...

    z.B.:
    - 2:DU
    Timer anschalten
    - 2:UD
    Timer zzgl. 10 Minuten

    Wenn du dann DUD drückst, kommst du nicht nur durcheinander, sondern hast auch einen um 10 Minuten verlängerten Timer :-)

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: herman am 10 Februar 2014, 23:17:18
    Hallo Reiner,

    ich habe den Loglevel des Sonosthread auf 5 gesetzt. Das System lief jetzt seit 24h. Vor einigen Minuten habe ich gemerkt, dass das FHEM hängt. Der Sonos-Thread gibt weiter Nachrichten auf der Konsole aus, wenn sich am Sonos was ändert.

    ps -aux liefert folgende Prozessinfos

    fhem     28995  3.4  8.5  44028 38464 ?        S    Feb09  50:22 perl fhem.pl fhem.cfg
    fhem     28996  1.0  6.6  52288 29936 ?        Sl   Feb09  15:31 perl FHEM/00_SONOS.pm 4711 3

    wobei die CPU-Auslastung konstant ist. Auf Telnet oder Web-Anfragen reagiert FHEM nicht.
    Ohne Neustart hörte das Hängen auf.  An folgendem Log-Ausschnitt kann man das hängen sehen:

    2014.02.10 22:47:26 4: SONOS0: Transport-Event: Bilder-Download: SONOS_DownloadReplaceIfChanged('http://192.168.3.19:1400/getaa?u=x-rincon-mp3radio%3a%2f%2fwww.laut.fm%2ftangomatrix&v=1', './www/images/default/SONOSPLAYER/Sonos_Wohnzimmer_NextAlbumArt.ERROR');
    2014.02.10 22:47:26 4: SONOS0: Couldn't retrieve file "http://192.168.3.19:1400/getaa?u=x-rincon-mp3radio%3a%2f%2fwww.laut.fm%2ftangomatrix&v=1" via web. Trying to copy directly...
    2014.02.10 22:47:26 4: SONOS0: Couldn't even copy file "http://192.168.3.19:1400/getaa?u=x-rincon-mp3radio%3a%2f%2fwww.laut.fm%2ftangomatrix&v=1" directly... exiting...
    2014.02.10 22:47:26 5: SONOS0: Received from UPnP-Server: 'SetCurrent:nextTitle:tangomatrix'
    2014.02.10 22:47:26 5: SONOS0: Received from UPnP-Server: 'CurrentBulkUpdate:RINCON_000E58A9DED201400_MR'
    2014.02.10 23:04:39 1: 192.168.3.11:1000 disconnected, waiting to reappear
    2014.02.10 23:04:39 1: HMLAN_Parse: HMLAN1 new condition disconnected
    2014.02.10 23:04:39 5: SONOS0: Received from UPnP-Server: 'GetReadingsToCurrentHash:RINCON_000E58A9DED201400_MR:1'
    2014.02.10 23:04:40 5: SONOS0: Received from UPnP-Server: 'SetCurrent:TransportState:PLAYING'
    2014.02.10 23:04:40 5: SONOS0: Received from UPnP-Server: 'SetCurrent:CrossfadeMode:0'
    2014.02.10 23:04:40 5: SONOS0: Received from UPnP-Server: 'SetCurrent:NumberOfTracks:2'
    2014.02.10 23:04:40 5: SONOS0: Received from UPnP-Server: 'SetCurrent:Track:1'
    2014.02.10 23:04:40 5: SONOS0: Received from UPnP-Server: 'SetCurrent:TrackURI:http://stream.laut.fm:80/tangomatrix'
    2014.02.10 23:04:40 5: SONOS0: Received from UPnP-Server: 'SetCurrent:TrackDuration:0:00:00'
    2014.02.10 23:04:40 5: SONOS0: Received from UPnP-Server: 'ProcessCover:RINCON_000E58A9DED201

    Vielleicht liegt es gar nicht am Sonos sondern an meinem HM-LAN Adapter. zwischen 22:47 und 23:04 war das System nicht erreichbar.
    Die Ausgabe der Konsole habe ich mal angehängt.

    Erkennst Du etwas am Sonos-Modul oder soll ich in Richtung HM weiter suchen.
    Vielen, vielen Dank!

    Grüße,
    Merhan
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 11 Februar 2014, 00:45:31
    Hi Merhan,

    hmmm... an dieser Stelle wird dem Fhem-Part des Moduls mitgeteilt, dass es einige Readings zu aktualisieren gibt. Dabei sind alle Informationen bereits "drüben" angekommen, und sollen jetzt nur noch auf die Fhem-Devices übertragen werden (mittels Bulkupdate-Mechanismus).

    Das sollte eigentlich nicht so lange dauern (blockiert aber natürlich Fhem währenddessen). Andererseits sollte dein HMLAN da auch keine solche Verzögerung verursachen. Das erscheint mir eher so, als würde Fhem irgendwas tun, dabei blockieren und den für HMLAN notwendigen Refresh-Zyklus verpassen (irgendwas um die 30 Sekunden), und deswegen die Verbindung verlieren... Diese wird dann sofort wieder aufgebaut, sobald Fhem wieder "frei" ist.

    Kannst du das System mal kleinschrauben, also auf Sonos beschränken? Vielleicht bei einer Kopie an einer anderen Stelle.
    Du kannst auch im ersten Schritt versuchen alle Notify-Befehle, die irgendwie an der Aktualisierung der Sonos-Readings dranhängen, zu überprüfen (bzw. testweise zu deaktivieren). Das Aktualisieren von Readings geht grundsätzlich (mindestens) an alle definierten Notify-Anweisungen, die dann entscheiden, ob sie zuständig sind, oder nicht. Je mehr Notifies, desto mehr Arbeit für Fhem beim Aktualisieren eines Reading (bzw. u.U. Folgearbeiten durch die Erledigung der entsprechenden Notify-Anweisungen, das erfolgt sofort, und nicht später).

    Wenn das dann funktionieren sollte, dann nach und nach deine anderen Komponenten wieder einbauen, bis es nicht mehr sicher funktioniert. Ich vermute da eine Querbeeinflussung, sodass nicht ein Modul alleine die Schuld trägt, sondern mehrere Dinge zusammen...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: der-Lolo am 11 Februar 2014, 07:27:22
    Guten Morgen Reinerlein,
    Ich verstehe seit ich mir einen SonosAmp zugelegt habe fürs Büro die Sonos Welt nicht mehr...
    Ich habe eine mindmap erstellt die meinen netzwerkaufbau zeigen soll.
    WLAN an der fritzbox ist nicht aktiv - alle Geräte beziehen aber über die fritzbox über ihre Mac Adresse immer die gleiche IP.
    Wenn ich nun den play3 vom Strom trenne und wieder anschalte sucht er sich wahrscheinlich den für ihn stärksten Knoten, mal ist das der Amp ein anderes mal ist es der ZP ob er auch versucht sich am Dock anzumelden ist nicht klar - der Dock hängt ja auch nur im WLAN...

    Wenn der play3 sich mit dem Amp Verbindet taucht er nicht im iPad auf - lässt sich auch dann nicht manuell hinzufügen. Der Dialog arbeitet und reagiert auf das Mute und lauter drücken am play3 es kommt aber kein grüner haken.
    Wenn ich den Amp ausschalte verbindet er sich brav mit dem ZP.

    Hast du eine Idee was ich tun kann? Für ne Stunde Musik am Tag möchte ich den play3 nicht ständig am Netz lassen.

    Ps: FHEM ist auskommentiert...
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 11 Februar 2014, 08:04:41
    Hallo der-Lolo,

    ich persönlich würde in einem ersten Schritt dafür sorgen, dass nur ein Zoneplayer am verkabelten Netz hängt.
    Du hast jetzt eine Schleife gebaut, da es jetzt mehrere Routen zum Ziel gibt. Das Problem ist dabei, dass ein Datenpaket jetzt eine Kreisfahrt machen kann, und nie am Ziel abgeliefert wird.
    Eine TCP/IP Datenlieferung erfolgt immer auf die Art und Weise, dass versucht wird, den kürzesten Weg zu finden. Den gibt es bei dir aber nicht mehr (für Interessierte: Das ist das Problem des Handlungsreisenden). Nun gibt es eine Technologie, die genau das ermöglichen soll (ich meine der Name dafür ist Spanning-Tree-Detection, das ganze sorgt auf jeden Fall dafür, dass ein Paket weiß, wo es schon überall langgekommen ist, und den Weg nicht nochmal geht).
    Das scheint bei dir vielleicht nicht jeder Switch zu beherrschen...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: djhans am 11 Februar 2014, 11:55:15
    Hallo der-Lolo,
    ich habe zusätzlich zur Bridge auch 2 weitere Sonos Komponenten am LAN und das funzt bei mir ganz gut. Einmal der ConnectAMP im Wohnzimmer und auf der 1.Etage der Schlafzimmer-Sonos (2 x Play 1 als Stereopaar, der linke Kanal hängt am LAN)....

    Was mir auffällt ist, dass Du am 2. LAN Port des ConnectAMP einen Drucker hast. Das hatte ich mit meiner Dreambox auch so gemacht und nur Probleme gehabt. Der ConnectAMP hat teilweise nicht reagiert und einen Neustart hingelegt. Vielleicht einfach mal den Drucker abklemmen....

    @all:
    Zu meinem Sleeptimer Button-Problem:
    Ich habe das mit dem SleepTimer jetzt anders gelöst, ob es praxistauglich ist, weiss ich noch nicht.
    Generell stelle ich sicher, dass immer mein Radiosender geladen ist. Das mache ich mit "presence:.appeared " und wird sowohl beim Start von fhem, als auch beim Einstöpseln der Player vorgenommen.
    Der Sleeptimer wird immer um 22:00 Uhr gestartet, egal ob der Sonos läuft, oder nicht. Wenn ich nun zu Bett gehe, drücke ich einfach den Play Button am Sonos und durch das Event "Playing" wird die Lautstärke auf angenehme 3% heruntergefahren (nur zwischen 21:00 und 23:00 Uhr).
    Wenn ich halt vor 22Uhr schlafen gehe, spielt der Sonos den Sender direkt ab und um 22 Uhr startet dann nahtlos der Sleeptimer für 90min. Wenn ich halt kein Bock mehr auf Mucke habe, dann schalte ich Gerät einfach mit dem Button weder ab, ansonsten erledigt das der Sleeeptimer um 23:30 bzw. 0:30 an samstagen...

    Später kann man das ja mal mit Lichtschaltern machen. Aber ich weiß halt absolut noch nicht, ob ich das teuere enocean oder die HM-Sachen nutzen soll. Wenn jemand weiß, wo Vor- und Nachteile zu den System diskutiert werden oder Erfahrungen mit den Komponenten hat, dem wäre ich dankbar für Tipps.

    djhans
    Titel: Antw:Sonos steuern
    Beitrag von: djhans am 11 Februar 2014, 18:09:30
    Hi Reiner,
    kann man die AlarmID des aktuell laufenden Alarms bestimmen?

    mit
    {ReadingsVal("Sonos_Schlafzimmer", "AlarmListIDs", 0)}bekomme ich alle IDs genannt, möchte aber auf einen bestimmten Alarm reagieren.

    Anwendungsfall:
    wenn der Schlafzimmer_Sonos mit ID 67 morgens weckt, dann schalte den Wohnzimmer Sonos nach 30min in einer Gruppe hinzu.

    Gruß,
    Christian.
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 11 Februar 2014, 20:32:22
    Hi Christian,

    soweit ich das weiß, liefert das Sonos-System diese Info nicht.
    Man bekommt nur eine Alarm-Änderung mit, wenn der Alarm nur einmal laufen sollte, und deshalb nach einmal ausführen disabled wird...

    Du bekommst nur die Info, dass es ein Alarm ist, der da gerade auf "Play" gedrückt hat, nicht welcher es war...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: djhans am 11 Februar 2014, 21:14:01
    Hi,
    das ist schade!

    Keine Ahnung ob das hier etwas hilft (https://code.google.com/p/openhab/wiki/SonosBinding (https://code.google.com/p/openhab/wiki/SonosBinding)), aber hier steht etwas zu "alarmproperties (Properties of the alarm currently running)". Kennst Du aber bestimmt schon!

    djhans

    Titel: Antw:Sonos steuern
    Beitrag von: der-Lolo am 11 Februar 2014, 22:13:02
    Danke für eure Tipps - ohne weiteres kann ich den Amp nicht von Kabel trennen, die Komponenten sind zwar in der gleichen Etage - aber diagonal in jeweils der gegenüber liegenden Ecke der Wohnung... Das Wireless Netz das Sonos erstellt schafft es nicht, obwohl der Dock dazwischen - zwar nicht ganz in der Mitte - aber dazwischen steht...
    Wie ich es auch drehte und wendete - ich bekam keine Verbindung mehr zum play3 es half nur ein reset auf werkseinstellungen... Es gab wohl schon ein paar Menschen mit einem ähnlichem Problem - deswegen wurde ich im Netz schnell fündig...
    Titel: Antw:Sonos steuern
    Beitrag von: Reinerlein am 11 Februar 2014, 23:26:15
    Hi Christian,

    das mit dem openhab schaue ich mir mal an.
    Leider gab es dort keine Quelltexte dieses Bindings zum Runterladen, sodass ich die Klassendateien erst dekompilieren muss. Das kann ich aber leider nicht an meinem iPad, sodass ich da Morgen am normalen Rechner was versuche...

    Ich vermute aber, dass es einfach die Daten des "nächsten" Alarms sind. Wahrscheinlich holen die sich die Liste aller Alarme, und ermitteln einfach den nächsten, der zeitlich dran wäre (und aktiv ist)... Das wäre in meinen Augen nur halb interessant, da man dann nie sicher sein kann, auch wirklich den richtigen Alarm in der Hand zu haben. Es könnte ja noch kurzfristig einer dazwischengekommen sein, oder was auch immer...

    Ich habe nochmal die Datenangebote der UPnP-Schnittstelle überprüft, und so auf Anhieb nichts gefunden, was mir die Information des aktuell laufenden Alarms bieten würde...
    Das war den Entwicklern von Sonos wohl nicht wichtig. Wichtig war vermutlich nur, dass es überhaupt ein Alarm ist, der gerade aktiv ist. Dann kann man den auch Pausieren und ähnliches...

    Grüße
    Reiner
    Titel: Antw:Sonos steuern
    Beitrag von: JoeALLb am 12 Februar 2014, 06:35:23
    @der-Lolo
    Gehts jetzt seit dem Reset?
    Ich habe auch 3 Geräte am LAN angestöpselt und andere nicht und alles funktioniert wunderbar,  auch wenn eines mal nicht da sein sollte.

    Allgemeine INFO:
    Seit vorgestern lief auch mein fhem rund, ohne abstürze, jedoch klappt mein morgendlichen Google-Wecker nicht mehr.  Hab die Ursache aber noch nicht geprüft. Vielleicht hängt es das sachlich mit dem verschwinden eines Sonos - Players zusammen,  ich habe nämlich kürzlich