Sonos // "Can't connect to localhost:4711"

Begonnen von AndreasW, 11 November 2014, 15:24:14

Vorheriges Thema - Nächstes Thema

AndreasW

Hallo, ich habe frisch einen FHEM Server und zusätzlich die Sonos Komponenten unter Windows 7 installiert.
Wenn ich nun "define Sonos SONOS localhost:4711 30" in die Kommandozeile wird der STATE disconnected angezeigt.
Das log-file zeigt folgende Ausschrift:
2014.11.11 15:12:03 1: registering fhem as Windows Service
2014.11.11 15:12:03 1: starting fhem as a service
2014.11.11 15:12:03 1: Including C:/Temp/fhem-5.6/fhem.cfg
2014.11.11 15:12:03 3: telnetPort: port 7072 opened
2014.11.11 15:12:04 3: WEB: port 8083 opened
2014.11.11 15:12:04 3: WEBphone: port 8084 opened
2014.11.11 15:12:04 3: WEBtablet: port 8085 opened
2014.11.11 15:12:04 2: eventTypes: loaded 0 events from ./log/eventTypes.txt
2014.11.11 15:12:04 1: Including ./log/fhem.save
2014.11.11 15:12:04 3: initialUsbCheck return value: This command is not yet supported on windows
2014.11.11 15:12:04 2: Error messages while initializing FHEM: statefile: Please define Sonos first
2014.11.11 15:12:04 0: Server started with 9 defined entities (version $Id: fhem.pl 6913 2014-11-08 10:32:44Z rudolfkoenig $, os MSWin32, user SYSTEM, pid 1052)
2014.11.11 15:12:38 1: PERL WARNING: Smartmatch is experimental at ./FHEM/00_SONOS.pm line 3322.
2014.11.11 15:12:39 1: SONOS0: Kein UPnP-Server gefunden... Starte selber einen und warte 8 sekunden darauf...
2014.11.11 15:12:47 3: Opening Sonos device localhost:4711
2014.11.11 15:12:48 3: Can't connect to localhost:4711: Es konnte keine Verbindung hergestellt werden, da der Zielcomputer die Verbindung verweigerte.

In der Firewall habe ich den Port 4711 komplett geöffnet.

Die Sonos App sieht meine PLAY:3 und PLAYBAR und kann diese ansprechen.

Was mache ich da falsch?

Grüße aus Berlin
Andreas Wagner

Mitch

FHEM im Proxmox Container

Reinerlein

Hallo Andreas,

vielleicht ist in der Zeile
2014.11.11 15:12:38 1: PERL WARNING: Smartmatch is experimental at ./FHEM/00_SONOS.pm line 3322. im Log das Problem zu suchen.

Vielleicht liegt es an der von dir verwendeten Perl-Version. Auf meinem Windows (mein Entwicklungssystem) verwende ich ActivePerl. Damit läuft es wohl :-)
Vielleicht kannst du umstellen?

Kannst du Fhem mal in der Kommandozeile starten? Dort siehst du die Konsolenausgaben des Prozesses, wo auch der Sonos-SubProzess zu sehen sein sollte (im Fhem-Log selbst stehen nur die Ausgaben des Fhem-internen Teils des Moduls)...
Startet dort denn was?

Grüße
Reinerlein

AndreasW

#3
OK, Umstellung auf ActivePerl hat das Problem gelöst.
Die Warnung wird aber weiterhin angezeigt:

2014.11.11 20:47:54 1: PERL WARNING: Smartmatch is experimental at ./FHEM/00_SONOS.pm line 3322.

@Reinerlein:
in der Datei 00_SONOS.pm muss noch die Zeile 246 wie folgt geändert  werden:

use UPnP::ControlPoint;
use Net::UPnP::ControlPoint;

Sonst finden sich in der Log-Datei folgende Ausschriften:
Compilation failed in require at ./FHEM/00_SONOS.pm line 246.
BEGIN failed--compilation aborted at ./FHEM/00_SONOS.pm line 246.

Grüße aus Berlin
Andreas

Reinerlein

Hi Andreas,

aber der Verzeichnisname fängt nicht mit "Net" an, sondern startet gleich mit "UPnP". Die Libs werden ja mitinstalliert/geliefert, und kommen nicht irgendwo aus dem System...

Das sollte eigentlich keine Hilfe bringen, da unter diesem Namen nix zu finden sein dürfte...
Wurden denn die Verzeichnisse mit den Libraries korrekt angelegt?
Da müsste ja eine Ordnerstruktur mit "Encode", "Normalize", "MP3" und "UPnP" innerhalb des Ordners "lib" angelegt worden sein...

Grüße
Reinerlein

AndreasW

Hallo Reinerlein,
danke für die Rückfrage.
Ich habe FHEM einschließlich SONOS zweimal aufgesetzt.
Das erste Mal mit Perl nach FHEM Anleitung und das zweite Mal mit ActivePerl.
Beide Male musste ich "Net::" in Zeile 246 eintragen.

Mit ActivePerl habe ich über ppm das Paket Net-UPnP, Version 1.4.3 installiert.
Diese verweist auf:
http://search.cpan.org/dist/Net-UPnP-1.4.3/
Dort werden die einzelnen Module gelistet, alle mit einem vorgestellten "Net::"
Also: "NEt::UPnP::ControlPoint"

Zu Deiner Frage:
Die Ordnerstruktur unter [\fhem-5.6\FHEM\] ist so, wie von Dir erwartet:
[lib]
...[Device]
...[Encode]
...[MP3]
...[Net]
...[Normalize]
...[SWAP]
...[UPnP]

Im Unterverzeichnis [\fhem-5.6\FHEM\lib\Net\] findet sich ein Ordner [MQTT] und eine Datei MQTT.pod
Im Unterverzeichnis [\fhem-5.6\FHEM\lib\UPnP\] finden sich zwei Dateien ControlPoint.pm und Common.pm.

Die Unterordner von [\Perl\lib] enthalten KEINEN Ordner [UPnP] und KEINE Datei ControlPoint.pm .

Grüße aus Berlin
Andreas

Reinerlein

Hi Andreas,

hmmm... dann würde ich mal davon ausgehen, dass das Modul nicht läuft.
Ich habe in der von mir mitgelieferten UPnP-Lib einige Fehler und Unschönheiten entfernt, die für den Betrieb notwendig sind.
Wenn du jetzt im System eine andere UPnP-Lib (unter Net::UPnP) installiert hast (und die ja dann mit deiner Anweisung auch verwendet wird), dann läuft da eine andere als von mir gedacht...

Kannst du Fhem denn mal in der Konsole (also nicht über einen Dienst) starten? Dann kann man mal die Konsolenausgabe sehen, die alle Ausgaben des Submoduls enthält.

Das beginnt bei mir unter Windows z.B. so:

Current: "fhem.pl", gPath: "./FHEM"
Current: "FHEM/00_SONOS.pm", gPath: ""
2014.11.12 13:36:10 1: SONOS0: FHEM/00_SONOS.pm is listening to Port 4711
2014.11.12 13:36:18 1: SONOS0: Connection accepted from server-01.Homezone.local:58136
2014.11.12 13:36:19 3: SONOS1: UPnP-Thread gestartet.
.
.

Danach folgen dann Zeilen, wenn die Player erkannt werden usw... da kommt dann bei Level 3 eine ganze Menge...

Grüße
Reinerlein

AndreasW

Hallo,
ich habe jetzt mehrere Installationsversuche unternommen.
Am weitesten bin ich mit dem Aufsetzen von Debian in VMWare und anschließender Installation von FHEM und Sonos gekommen.
Aber auch dort bin ich an dem Sprachausgabemodul gescheitert.
Das Ganze hat mich so ca. 2 Tage gekostet und ist unbefriedigend.
Nun bin ich nicht der Linux- und Perl-Experte.
Es sollte aber möglich sein, ohne Druidenwissen ein solches System aufzusetzen und stabil zu betreiben.

@Reinerlein

VORSCHLAG ZUR DISKUSSION:
Es wird eine Referenzimplementierung unter Debian als vmware Distribution aufgesetzt.
Das kann ein Minimalsystem ohne Grafik sein.
Die Größe sollte 2 GB nicht überschreiten.
ZIEL:
Eine Musterimplementierung, bei der alle Sonos-Features funktionieren.
Begleitend eine Dokumentation zur Installation und Konfiguration aller Komponenten.
So kann jeder den Weg nachvollziehen.

Die Distribution wird dann zum Download bereitgestellt.

Ich kann das gerne vorbereiten und begleiten.
Die eigentliche Sonos Installation müsste aber von einem Experten erledigt werden.

Wäre das ein sinnvoller Weg?

Grüße aus Berlin
Andreas