Sonos steuern

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

Vorheriges Thema - Nächstes Thema

michaelfhem

Hallo Reiner,

das 100% CPU-Time-Problem für fhem ist wieder da. Ich starte nun fhem mit  sudo perl fhem.pl fhem.cfg > /tmp/logfhem. Kurz danach erscheint auf der Konsole folgende Meldung: Thread 2 terminated abnormally: icmp ping requires root privilege at FHEM/00_SONOS.pm line 3329 thread
Sonos scheint aber erstmal normal zu funktionieren (presence appeared).
Nach einem rereadconfig kommt folgende Meldung:
Unsubscription request failed with error: 412 Precondition Failed at FHEM/lib/UPnP/ControlPoint.pm line 1015 thread 1

Nach ca. 30min Laufzeit dann wieder die 100%
letzte Medlungen im logfhem:
2014.10.05 09:44:55 3: SONOS0: Disconnecting client...
2014.10.05 09:44:55 3: SONOS0: Trying to kill Sonos_Thread...
2014.10.05 09:44:55 3: SONOS0: Trying to kill IsAlive_Thread...
2014.10.05 09:44:55 3: SONOS0: Trying to kill PlayerRestore_Thread...
2014.10.05 09:44:55 1: SONOS3: Restore-Thread wurde beendet.
2014.10.05 09:44:56 4: SONOS1: ControlPoint is successfully stopped!
2014.10.05 09:44:56 3: SONOS1: Controlpoint-Listener wurde beendet.
2014.10.05 09:44:56 2: SONOS1: Error during UPnP-Handling:
2014.10.05 09:44:56 3: SONOS1: UPnP-Thread wurde beendet.
2014.10.05 09:44:57 1: SONOS0: Connection accepted from localhost:60901
2014.10.05 09:44:57 5: SONOS0: Received: 'disconnect'
2014.10.05 09:44:57 3: SONOS0: Disconnecting client...
2014.10.05 09:44:57 3: SONOS0: IsAlive_Thread is already killed!
2014.10.05 09:44:59 1: SONOS0: Connection accepted from localhost:60917
2014.10.05 09:44:59 5: SONOS0: Received: 'DoWork:undef:setVerbose:5'

100% Problem aber erst seit ca. 9:55 wirklich erkennbar
Letzte Meldungen aus dem fhemlog:

2014.10.05 09:44:58 5: SW: 53746172745468726561640a
2014.10.05 09:44:59 5: SONOS0: Received from UPnP-Server: ''This is UPnP-Server calling''
2014.10.05 09:44:59 5: SONOS0: MainTrigger()-Line: 'This is UPnP-Server calling'
2014.10.05 09:45:00 3: CUL_HM set Kellerluefter on
2014.10.05 09:45:03 3: Device BalkontuerRiegel added to ActionDetector with 028:00 time
2014.10.05 09:45:03 3: Device CUL_HM_HM_SEC_MDIR_21A576 added to ActionDetector with 000:20 time
2014.10.05 09:45:03 3: Device HaustuerSensor added to ActionDetector with 028:00 time
2014.10.05 09:45:04 3: CUL_HM set Dimmer statusRequest
2014.10.05 09:45:05 3: CUL_HM set Kellerluefter statusRequest
2014.10.05 09:45:06 3: CUL_HM set Multimedia statusRequest
2014.10.05 09:45:07 3: CUL_HM set Schlafen statusRequest
2014.10.05 09:45:08 3: CUL_HM set SchlafenSW1 statusRequest
2014.10.05 09:45:09 3: CUL_HM set SchlafenSW2 statusRequest
2014.10.05 09:45:21 3: CUL_HM set Dimmer getConfig
2014.10.05 09:47:38 3: delete Brigthness_at : Please define Brigthness_at first


Hilft das weiter?

Grüße Michi
raspberry Pi 3 + jessie + fhem
Devices: Fritz Dect 200, Homematic (HMLan-Gateway), FS20 (CUL-Stick), Hue-Gateay, Sonos

Reinerlein

Hi Michi,

yup. Du hast es selber reinkopiert:
----------------------snip------------------
Thread 2 terminated abnormally: icmp ping requires root privilege at FHEM/00_SONOS.pm line 3329
----------------------snip------------------

Der Checker steht auf "icmp" und läuft ohne root-Rechte...

Da solltest du was dran drehen, also entweder Fhem als Root laufen lassen, oder den pingtype umstellen (notfalls auf "none") :-)

Grüße
Reiner

michaelfhem

Hi Reiner,

ja das steht da, aber eigentlich läuft ja alles und ich habe fhem mit sudo gestartet wie oben beschrieben? Merkwürdig.... Ich habe wieder auf syn umgestellt und derzeit läuft es wieder stabil (habe zus. noch meine HTTPMOD Befehle reduziert, scheinbar waren hier auch noch Blockings versteckt.).

Ein anderes Problem:
Ich will meine Alarmzeit von fhem anpassen. Dazu verwende ich folgenden Befehl in meiner myUtils.pm:

fhem("set Sonos_Eingang Alarm Update 1 \{ StartTime => '06:43:00' \}");
alternativ würde ich das gerne mit einer Variablen machen also
$time = 06:43:00;
fhem("set Sonos_Eingang Alarm Update 1 \{ StartTime => '$time' \}");


Beide Varianten kommen aber nicht an. Unten im Log steht zwar der Update Befehl, aber in der Alarmlist steht immer noch die falsche Zeit? Ideen?

Grüße Michi

2014.10.07 22:06:44 5: SONOS2: PingType: syn
2014.10.07 22:06:44 4: SONOS2: 192.168.0.20 is alive
2014.10.07 22:07:06 5: SONOS0: Received: 'DoWork:RINCON_B8E9375B222001400_MR:setAlarm:Update,1, { StartTime => '06:43:00' }'
2014.10.07 22:07:06 5: SONOS0: Received: 'DoWork:RINCON_B8E9375B222001400_MR:setAlarm:Update,1, { Enabled => 1 }'
2014.10.07 22:07:07 0: SONOS1: Val:  { StartTime => '06:43:00' }
2014.10.07 22:07:07 4: SONOS1: ProxyObject exists: UPnP::ControlPoint::ControlProxy=HASH(0xb54d96b0)
2014.10.07 22:07:07 4: SONOS1: SONOS_Client_Data_Retreive(RINCON_B8E9375B222001400_MR, reading, AlarmListIDs, ) -> 1
2014.10.07 22:07:07 4: SONOS1: SONOS_Client_Data_Retreive(RINCON_B8E9375B222001400_MR, reading, AlarmList, {}) -> {'1' => {'Recurrence_Thursday' => 0,'IncludeLinkedZones' => '0','Volume' => '25','Shuffle' => 1,'Recurrence_Wednesday' => 0,'ProgramURI' => 'x-sonosapi-stream:s42824?sid=254&flags=32','Repeat' => 0,'Recurrence_Once' => 1,'StartTime' => '06:42:00','Duration' => '00:45:00','Recurrence_Sunday' => 0,'Enabled' => '1','Recurrence_Friday' => 0,'Recurrence_Saturday' => 0,'Recurrence_Tuesday' => 0,'RoomUUID' => 'RINCON_B8E9375B222001400','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/1" parentID="R:0/0" restricted="true"><dc:title>ANTENNE BAYERN</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}}
raspberry Pi 3 + jessie + fhem
Devices: Fritz Dect 200, Homematic (HMLan-Gateway), FS20 (CUL-Stick), Hue-Gateay, Sonos

Reinerlein

Hi Michi,

Fhem macht beim Start automatisch einen Wechsel in den Kontext des Benutzers "fhem" wenn dieser im System gefunden wird... Dann ist es egal, ob man den Prozess als Root gestartet hat...

Die Ausgabe in der Log-Datei ist der alte Zustand des Alarms, der ja erstmal geholt werden muss, da man ja nicht alle Werte angeben muss (der Sonos-Player aber immer alle Werte haben will).
Das hat noch nichts zu sagen... Kommt denn weiter hinten im Log dazu noch was?

Ansonsten würde ich die Back-Slashe (\) vor den geschweiften Klammern weglassen. Anscheinend stören sie nicht, sind aber auch nicht notwendig.

Allerdings kommen da ja zwei Anweisungen direkt hintereinander... vielleicht stören die sich...
Du kannst beide Änderungen (sofern sie für denselben Alarm bestimmt sind) auch in eine Anweisung packen:
my $time = '06:43:00';
fhem("set Sonos_Eingang Alarm Update 1 { Enabled => 1, StartTime => '$time'}");


Grüße
Reiner

CQuadrat

#1129
[gelöst] Lag wohl an fehlenden Perl-Bibliotheken. Scheint jetzt wieder zu gehen.


Zitat
Hallo Reiner,

ich wollte seit längerer Deaktivierung das Sonos-Modul wieder aktivieren. Allerdings laufe ich auf einen mir unerklärlichen Fehler:
define Sonos SONOS localhost:4711 30
führt zu
Cannot load module SONOS

Im Log erhalte ich noch zusätzlich:

2014.10.10 13:05:32.462 1: reload: Error:Modul 00_SONOS deactivated:
Attempt to reload UPnP/ControlPoint.pm aborted.
Compilation failed in require at ./FHEM/00_SONOS.pm line 246.
BEGIN failed--compilation aborted at ./FHEM/00_SONOS.pm line 246.

2014.10.10 13:05:32.463 0: Attempt to reload UPnP/ControlPoint.pm aborted.
Compilation failed in require at ./FHEM/00_SONOS.pm line 246.
BEGIN failed--compilation aborted at ./FHEM/00_SONOS.pm line 246.


Hat sich an den Anforderungen etwas geändert. Im Wiki kann ich nix dazu finden.


Viele Grüße und Dank
Christoph
FHEM auf Mini-ITX-Server mit Intel Quad-Core J1900:
+ HM: HM-LAN, HM-USB, HM-MOD-UART mit div. HM-Komponenten
+ RFXtrx: Funkwetterstation Bresser mit ext. Thermometer, Regenmesser und Windmesser
+ TUL (KNX-Anbindung), KM271 (per ser2net), SONOS (div. Gimmicks), OneWire, Hue

ostseehuepfer

Hallo,

hab bei Fhem auf dem Raspberry Pi installiert und Sonos installiert. Das läuft auch wunderbar. Nach ca. 5-30 Minuten schmiert Fhem ab. Wenn ich den Raspberry neustarte (Stecker rein raus) läuft er wieder. Das Webinterface ist nicht erreichbar. Woran liegt das? Musste die Dienste schon via Hand installieren da sonst keine Sonos Komponenten gefunden wurden.

Grüße

Reinerlein

Hallo Ostseehüpfer,

du müsstest mal die Log-Ausgabe des Sonos-Moduls auf 5 stellen, und dann die Konsolenausgabe des Moduls hier posten. Dann können wir weitersehen...

Ein paar Tipps zur Fehlersuche gibt es auch auf der Wiki-Seite...

Grüße,
Reinerlein

michaelfhem

Hi Reiner,

in einem Kommando funktioniert esden Wecker zu stellen! Danke.

Grüße Michi
raspberry Pi 3 + jessie + fhem
Devices: Fritz Dect 200, Homematic (HMLan-Gateway), FS20 (CUL-Stick), Hue-Gateay, Sonos

raspklaus

Hallo,

ich habe FHEM mit Sonos auf einem Raspberry und einem Cubietruck laufen. Nach der Sonos Definition und einem Save erscheinen die folgenden Meldungen:

Reading Sonos_B__ro->AlarmList must not be used out of statefile.
Reading Sonos_B__ro->AlarmListIDs must not be used out of statefile.
Reading Sonos_B__ro->AlarmListVersion must not be used out of statefile.
Reading Sonos_B__ro->LastActionResult must not be used out of statefile.
Reading Sonos_B__ro->presence must not be used out of statefile.


Der Player funktioniert mit FHEM einwandfrei aber was besagen die Meldungen. Konnte hier im Threat nichts dazu finden.

Mein zweites Problem:

Gibt es irgenwo ein ganz einfaches Beispiel für die Sprachausgabe ?


det.

Sorry, wenn Du die Suchfunktion nutzt und nach
Zitatused out of statefile
suchst, dann sollte das Thema oft genug auftauchen und auch die Lösung wie Du diese Mitteilungen des Systeme in Zukunft unterdrücken kannst.
LG
det.

der-Lolo

zum thema sprachausgabe wirst du im wiki fündig.

raspklaus

Zitat von: det. am 03 November 2014, 19:35:31
Sorry, wenn Du die Suchfunktion nutzt und nachsuchst, dann sollte das Thema oft genug auftauchen und auch die Lösung wie Du diese Mitteilungen des Systeme in Zukunft unterdrücken kannst.

das mit dem attr global motd none war in der fhemcfg eingetragen. Nur wurde aus nicht ersichtlichen Gründen irgendwann das none durch die Meldungen ersetzt. Warum die config mit Fehlermeldungen bestückt wird ist mir nicht klar.

Zitat von: der-Lolo am 03 November 2014, 19:38:16
zum thema sprachausgabe wirst du im wiki fündig.

also

set Sonos_B__ro Speak \ 45 de Morgen wird die Papiertonne geleert.

gibt keinen Text aus es wird dann nur der pausierte Sound gestartet

der-Lolo

sie notwendigen "Rahmenbedingungen" mit Samba und share hast du eingerichtet?
Eine Anleitung findest Du im Wiki!

raspklaus

Hier der Auszug aus der Samba.conf:

[SonosSpeak]
  comment = Audio-Files for SonosPlayer to Speak
  read only = false
  path = /media/Platte/SonosSpeak
  guest ok = yes


Sollte so doch passen

raspklaus

Hier noch die Einträge in der Fhem Config

# Sonos Player


define Sonos SONOS localhost:4711 30
attr Sonos targetSpeakDir /media/Platte/SonosSpeak
attr Sonos targetSpeakURL \\192.200.100.166\SonosSpeak
define Sonos_B__ro SONOSPLAYER RINCON_B8E9378B251401400_MR
attr Sonos_B__ro 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_B__ro generateInfoSummarize2 <TransportState/><InfoSummarize1 prefix=" => "/>
attr Sonos_B__ro 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_B__ro getAlarms 1
attr Sonos_B__ro group B__ro
attr Sonos_B__ro icon icoSONOSPLAYER_icon-S1.png
attr Sonos_B__ro minVolume 0
attr Sonos_B__ro model Sonos_S1
attr Sonos_B__ro room Sonos
attr Sonos_B__ro stateVariable InfoSummarize2
attr Sonos_B__ro webCmd Play:Pause:Previous:Next:VolumeD:VolumeU:MuteT
define AlbumArt_B__ro weblink image /fhem/icons/SONOSPLAYER/Sonos_B__ro_AlbumArt
attr AlbumArt_B__ro group B__ro
attr AlbumArt_B__ro htmlattr width='200'
attr AlbumArt_B__ro room Sonos