Sonos steuern

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

Vorheriges Thema - Nächstes Thema

Reinerlein

Hi Ralf,

dieses Reading ist eine interne Information, welche aus der Zonenverwaltung kommt. Damit wird die Gruppenzugehörigkeit bekanntgegeben.
Außerdem wird es bei jeder Lieferung neu ermittelt und als Reading gesetzt (sofern es sich geändert hat). Es wird also nicht einfach an das bestehende Reading angehangen.

Wo also diese Verkettung herkommt, kann ich nicht sagen. Vielleicht kann hier jemand helfen, der sich mit DbLog besser auskennt.
Vielleicht kann/muss ich da im Modul ja was anpassen, dann muss mir aber jemand (möglichst genau) sagen, was ich machen kann/soll... :)

Grüße
Reiner

justme1968

dbLog ändert keine readings selbständig sondern hängt ganz normal am event mechanismus.  es gibt aber eine längenbeschränkung für readings (ich glaube die gibt es bei file log auch).

für die länge des reading muss du ziemlich sicher an anderer stelle suchen. nicht bei dbLog.

ob es sinnvoll ist das das sonos modul für diese internen readings auch events erzeugt oder diese lieber ohne event anlegen sollte kann ich nicht einschätzen. die anzahl der events sollte eigentlich nicht sehr hoch sein.

unabhängig davon: warum loggst du solche dinge überhaupt? es ist sicher sinnvoll das über die log device regex und/oder dbLogExclude einzuschränken.

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

Wuppi68

Hallo Andre,

ich habe das Reading auch erst einmal rausgeworfen :-)

Loggen tue ich per Definition erst einmal alles was geht ... einmal im Monat werden die Daten dann verdichtet bzw. wieder entfernt. Ist zwar Mehraufwand aber woher weiss ich, dass ich die Informationen nicht morgen doch aus einem anderen Grund brauche ...

cu

Ralf
FHEM unter Proxmox als VM

det.

Hallo Reiner,
ich habe in letzter Zeit diese Meldung in Massen im log. Kannst Du da was machen?2015.04.30 12:39:35 1: PERL WARNING: Use of uninitialized value $newFile in string ne at ./FHEM/00_SONOS.pm line 7035.
2015.04.30 12:39:34 1: PERL WARNING: Use of uninitialized value $newFile in string ne at ./FHEM/00_SONOS.pm line 7035.
2015.04.30 12:39:29 1: PERL WARNING: Use of uninitialized value $newFile in string ne at ./FHEM/00_SONOS.pm line 7035.
2015.04.30 12:39:28 1: PERL WARNING: Use of uninitialized value $newFile in string ne at ./FHEM/00_SONOS.pm line 7035.
2015.04.30 12:33:41 1: PERL WARNING: Use of uninitialized value $newFile in string ne at ./FHEM/00_SONOS.pm line 7035.
2015.04.30 12:33:40 1: PERL WARNING: Use of uninitialized value $newFile in string ne at ./FHEM/00_SONOS.pm line 7035.
2015.04.30 12:31:21 1: PERL WARNING: Use of uninitialized value $newFile in string ne at ./FHEM/00_SONOS.pm line 7035.
2015.04.30 12:31:20 1: PERL WARNING: Use of uninitialized value $newFile in string ne at ./FHEM/00_SONOS.pm line 7035.
2015.04.30 12:27:22 1: PERL WARNING: Use of uninitialized value $newFile in string ne at ./FHEM/00_SONOS.pm line 7035.
2015.04.30 12:27:21 1: PERL WARNING: Use of uninitialized value $newFile in string ne at ./FHEM/00_SONOS.pm line 7035.
2015.04.30 12:27:18 1: PERL WARNING: Use of uninitialized value $newFile in string ne at ./FHEM/00_SONOS.pm line 7035.
Danke!
LG
det.

Reinerlein

Hi Detlef,

ich werde da nachher was einchecken, was das unterbinden sollte. Ich habe das schon erledigt gehabt, aber wegen einer laufenden Featureentwicklung noch nicht eingecheckt :)

Grüße
Reiner

det.

Danke, Reiner
Du machst Dir eine Mühe mit dem Modul. Da komme ich mir richtig ignorant vor, da ich es nur nutze um nach einen Druck auf einen Homematic Taster, welcher für Playbar und ConnectAmp den Strom einschaltet, diese zu gruppieren und meinen Lieblingssender abzuspielen. Das würde allerdings ohne Fhem und Dein Modul nie mit nur einem Tastendruck gehen.
LG
det.

Elektrolurch

Hallo zusammen,

nach 20 Jahren habe ich mich wieder mit Unix beschäftigt und mir einen Cubietruck mit debian aufgesetzt.
Der ist auf dem aktuellsten Stand:
apt-get update
apt-get dist-upgrade

Dann habe ich mit:
Installation z.B. als Debian-Pakete (mittels "sudo apt-get install <packagename>"):
• LWP::Simple-Packagename (inkl. LWP::UserAgent und HTTP::Request): libwww-perl
• SOAP::Lite-Packagename: libsoap-lite-perl
Dann fhem installiert mit:

apt-get install fhem

und fhem mit "update" auf den neusten Stand gebracht.



Beim ersten define Sonos Sonos ... wurde dann bemeckert, dass XML::Parser::Lite fehlt.

Das habe ich dann mit

cpan install XML::Parser::Lite

nachinstalliert. Es wurde Version 0.72 installiert, bei der automatischen Testroutine war jedoch eine Routine undefiniert und ein von den 5 Tests fiel durch.

Dann erneut:


define Sonos SONOS localhost:4711 30

im Log steht dann:

2015.05.02 10:41:26 1: reload: Error:Modul 00_SONOS deactivated:
Attempt to reload UPnP/ControlPoint.pm aborted.
Compilation failed in require at ./FHEM/00_SONOS.pm line 420.
BEGIN failed--compilation aborted at ./FHEM/00_SONOS.pm line 420.



Leider bin ich (noch) nicht so firm, dass ich herausfinden kann, welche Bibliothek da noch fehlt....

Den einzigen Beitrag hierzu im Forum habe ich gefunden, da steht aber nur, das fhem mit update auf den neusten Stand zu bringen ist... und das ist es ja.
Gruß

Elektrolurch

configDB und Windows befreite Zone!

Reinerlein

Hallo Elektrolurch,

diese Library sollte wirklich beim Update mitgekommen sein :)
Kannst du mal im Filesystem bei Fhem nachschauen, ob es unter "FHEM/libs" ein Unterverzeichnis "UPnP" gibt? In diesem Verzeichnis sollten ein paar Dateien für das Sonos-Modul liegen...
Das sollte beim Update mitgekommen sein. Einen Neustart von Fhem nach dem Update hast du aber gemacht, oder?

Sagt ein "update check" "Nothing to do"?

Vielleicht findet er auch irgendeine Vorraussetzung für dieses UPnP-Modul nicht (wobei du diese ja eigentlich installiert hast).
Vielleicht sagt er bei einem Direktaufruf auf der Konsole mehr dazu.

Dazu kannst du den SubProzess selber mal anstarten:

sudo perl 00_SONOS.pm 4711 5
im Verzeichnis FHEM.

Ansonsten bleibt noch die Installation per Paketmanager (besonders das Soap-Lite Paket, welches einen Fehler gemeldet hatte).
Im Wiki gibt es dazu noch eine Beschreibung: http://www.fhemwiki.de/wiki/SONOS#Hinweis_f.C3.BCr_Debian-Systeme

Grüße
Reinerlein

Elektrolurch

Hallo Reinerlein,

danke für die schnelle Antwort. Hier die Ergebnisse:

Inhalt von lib(UPnP:
total 168
-rw-r--r-- 1 fhem dialout 18123 May  1 10:35 Common.pm
-rw-r--r-- 1 fhem dialout 41831 May  1 10:35 ControlPoint.pm
-rw-r--r-- 1 fhem dialout  7926 May  1 10:35 sonos_empty.jpg
-rw-r--r-- 1 fhem dialout 32034 May  1 10:35 sonos_input_default.jpg
-rw-r--r-- 1 fhem dialout 34332 May  1 10:35 sonos_input_dock.jpg
-rw-r--r-- 1 fhem dialout 19616 May  1 10:35 sonos_input_tv.jpg
-rw-r--r-- 1 fhem dialout  5469 May  1 10:35 sonos_playlist.jpg


Da scheint es ja die Datei zu geben. Ev. ein Rechteproblem?

Dann habe ich in FHEM

perl 00_SONOS.pm 4711 5

eingegeben und erhielt folgende Fehlermeldung:

Can't locate XML/Parser/Lite.pm in @INC (you may need to install the XML::Parser::Lite module) (@INC contains: 00_SONOS.p/lib 00_SONOS.p/FHEM/lib ./FHEM/lib ./lib ./FHEM ./ /usr/local/FHEM/share/fhem/FHEM/lib /etc/perl /usr/local/lib/arm-linux-gnueabihf/perl/5.20.2 /usr/local/share/perl/5.20.2 /usr/lib/arm-linux-gnueabihf/perl5/5.20 /usr/share/perl5 /usr/lib/arm-linux-gnueabihf/perl/5.20 /usr/share/perl/5.20 /usr/local/lib/site_perl .) at lib/UPnP/Common.pm line 729.
BEGIN failed--compilation aborted at lib/UPnP/Common.pm line 729.
Compilation failed in require at lib/UPnP/ControlPoint.pm line 14.
BEGIN failed--compilation aborted at lib/UPnP/ControlPoint.pm line 14.
Compilation failed in require at 00_SONOS.pm line 420.
BEGIN failed--compilation aborted at 00_SONOS.pm line 420.



Dabei habe ich doch XML::Parser::Lite mit cpan nachinstalliert!!!

Und wenn ich

define Sonos Sonos localhost...

eingeben, kommt da auch jetzt die Meldung mit UpNP ControlPoint:


2015.05.02 15:56:11 1: reload: Error:Modul 00_SONOS deactivated:
Attempt to reload UPnP/ControlPoint.pm aborted.
Compilation failed in require at ./FHEM/00_SONOS.pm line 420.
BEGIN failed--compilation aborted at ./FHEM/00_SONOS.pm line 420.

2015.05.02 15:56:11 0: Attempt to reload UPnP/ControlPoint.pm aborted.
Compilation failed in require at ./FHEM/00_SONOS.pm line 420.
BEGIN failed--compilation aborted at ./FHEM/00_SONOS.pm line 420.


Muss fhem als root laufen und wenn ja, wie bewerkstellige ich das?
Reicht es dazu, den Nutzer fhem aus der passwd zu löschen?

Gruß

Elektrolurch

P.S.: Übrigens - Grandiose Arbeit das Sonos-Modul. 


configDB und Windows befreite Zone!

Reinerlein

Hallo Elektrolurch,

fhem muss nur dann für das Modul als root laufen, wenn du für den pingType (die Überprüfung, ob der Player noch vorhanden ist) "icmp" verwendest.
Sonst nicht unbedingt (obwohl manche Dinge wohl nicht so richtig gut laufen, das scheint aber nicht eindeutig abgrenzbar zu sein).
Und ja, es würde dann reichen, diesen aus der passwd rauszukommentieren, und fhem natürlich als root starten :)

Diesen Test für den eigenen Start darfst du dann nicht über Fhem machen, sondern direkt in der Shell auf der Maschine selbst (dank der sudo-Anweisung sicherheitshalber als root).

Da du schriebst, dass ein Test bei der Cpan-Installation schiefgegangen ist, bin ich mir nicht sicher, ob es auch installiert wurde.
Deshalb mein Hinweis für die Debian-Paket-Install-Methode :)
Die ist in meinen Augen am Sichersten...

Grüße
Reinerlein

Elektrolurch

Hallo Reinerlein,

leider habe ich aber nicht herausgefunden, wie

XML::Parser::Lite

denn als apt-get - Paket heißt. Leider steht das auch nicht im Wiki zu Sonos.

Und woher kommt der Fehler mit dem upnp-ControlPoint, wenn doch offensichtlich die Datei im Verzeichnis lib/UPnP vorhanden ist?

Strange....
Da brauche ich wohl noch Anschub...

Elektrolurch
configDB und Windows befreite Zone!

Reinerlein

Hi Elektrolurch,

unter http://www.fhemwiki.de/wiki/SONOS#Hinweis_f.C3.BCr_Debian-Systeme steht es doch als letzter Punkt beschrieben.

Also:

sudo apt-get install libxml-parser-lite-perl


Das ist dort dank eines Ubuntu-Users gelandet, der mich darauf hinwies, dass es dort nicht automatisch dabei wäre :)

Grüße
Reinerlein

ujaudio

Hallo bei mir führt das zu folgendem Problem:

$ sudo apt-get install libxml-parser-lite-perl
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.       
Statusinformationen werden eingelesen.... Fertig
E: Paket libxml-parser-lite-perl kann nicht gefunden werden.


Mein anschließendes
define my_sonos SONOS
bringt dann die Meldung:
Usage: define <name> SONOS [[[[upnplistener] interval] waittime] delaytime]

Mein Sonos-System läuft und speilt gearde Musik ab. Ich habe aber auch keine Info gefunden, wie ich die Daten aus dem Wiki
define Sonos SONOS localhost:4711
finden kann. Ich kenne die IP-Adressen all meiner SONOS-Geräte, aber eine Portnummer habe ich nirgends gefunden.

Einen restart habe ich bei meinem Rspberry schon erfolglos gemacht...
Einen lieben Gruß
Jürgen

Reinerlein

Hi Jürgen,

das mit dem XML-Parser Paket ist komisch. Ich habe gerade mal danach gegoogelt, und es normal gefunden...
Aber es scheint ja installiert zu sein, da du ja eine Fehlermeldung vom bereits geladenen Modul erhältst. Eigentlich sollten die Abhängigkeiten da schon geprüft sein...

Du musst in Fhem tatsächlich nur folgendes eingeben:

define Sonos SONOS localhost:4711 30
Alles andere wird dann vom Modul selbst gefunden und in Fhem angelegt.

Grüße
Reiner

Elektrolurch

Hallo,

jetzt ist mein Post irgendwie nicht angekommen. Daher noch mal:

Ich hatte es letzte Woche schon mal mit der Sonos-Installation probiert und da wurde das
apt-get libxml-parser-lite-perl
auch nicht gefunden.
Gestern habe ich dann
apt-get update
und
apt-get upgrade
gemacht und das lief fast 30 Minuten und jetzt kommt die lib auch.

define Sonos SONOS localhost:4711 30

bringt nun auch keine Fehler mehr allerdings werden die drei eingeschalteten Player nicht gefunden.

Die Player sind über das Sonos WLan mit einer SonosBridge verbunden und die hängt an einer Fritzbox am Lan Port 1.
Die Fritzbox zeigt unter Netzwerk alle SonosPlayer verbunden über Lan Port 1 an.

Der Cubie hängt am Lanport  findet aber trotzdem keine Player.

Ein schneller Tipp?

Elektrolurch
configDB und Windows befreite Zone!