Sonos steuern

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

Vorheriges Thema - Nächstes Thema

snoop

#855
Hallo Reiner,

zunächst vielen Dank für die neue Version, bisher läuft es bei mir sehr stabil.

Ich hätte eine kleine Anregung: Magst du für die "Speak" (Basierend auf Google Translate) Funktion noch die Prüfung auf 100 Zeichen einbauen (das hat mich fast wahnsinnig gemacht bis ich das herausgefunden habe das es auf 100 Zeichen begrenzt ist -> ja, trotz des Eintrags in WIKI ;o) )?

Das hat für mich pers. keine Prio und ist einen reine kosmetische Anmerkung.

Ferner habe ich noch eine Frage, kann ich irgendwie Speak mit PlayURITemp kombinieren? Es wäre schön wenn Speak auch die Abspielparameter (Lautstärke, Titel, Position usw.) wiederherstellen würde. Die Routinen scheinen für die Funktion PlayURITemp zu existieren.

Danke und Viele Grüße
Arthur

Reinerlein

Hi Arthur,

wenn die Grenze wirklich bei 100 Zeichen liegt, kann ich das gerne einbauen. Mir erschien die Grenze in meinen Tests eher in einer Dauer der Aussprache anstatt in der Anzahl der Zeichen begründet (besonders bei meinen Tests in verschiedenen Sprachen).
Und ich wollte das eigentlich nicht künstlich einschränken (auch falls Google das mal erweitern sollte)... Vielleicht kann ich aber auch einfach eine Warnung ausgeben, dass man da mal drüber nachdenken soll, wenn etwas nicht funktioniert :-)

Zu dem PlayURITemp: Das ist intern genau das, was verwendet wird. Zunächst wird in irgendeiner Form die Sprachdatei erzeugt (auf die diversen möglichen Arten) und im Dateisystem abgelegt (oder halt wiederverwendet), und dann an die Routine PlayURITemp übergeben, die zunächst die aktuellen Zustände sichert, und dann die Wiedergabe der Sprachdatei anstößt...

Klappt bei dir das Wiederherstellen nicht?

Grüße
Reiner

snoop

Hallo Reiner,

zum Thema 100 Zeichen, ein möglicher Check "Fehler 404 Not found (meine ich)" && $zeichen > 100 = Speak: "Fehler: Mögliche Ursache Anzahl der Zeichen > 100" od so?
Wäre jedenfalls hilfreich - ich habe es auch erst in den Logs gesehen, dass ein http Fehler aufgetreten ist.

Zum Thema Restor -> ok, mein Fehler.
Was tue ich:
MyUtils:
# Do it
fhem "set Sonos Groups [Sonos_Wohnzimmer, Sonos_Kueche]";
fhem "set Sonos_Wohnzimmer VolumeSave";
fhem "set Sonos_Wohnzimmer Speak 55 de $ansage";
fhem "set Sonos_Wohnzimmer Speak 55 de $ansage2";
fhem "set Sonos_Wohnzimmer VolumeRestore";

Ich dachte die Werte werden nicht restored - doch sie werden jeodch die Volume Werte entsprechen nicht mehr den urspünglichen Werten. Spricht, die Lautstärke ist weit drunter - hat natürlich den Effekt, dass man nichts mehr hört -> das war auch mein Fehler (sich auf das Gehör zu verlassen.)

Lösungsansatz: Ich muss nur noch den Differenzwert Volume vorher - nacher ermitteln, dann fhem "set Sonos_Wohnzimmer VolumeRestore +x" x= Differenz.

Sorry, über die sperrigen Informationen - ich Teste mal und melde mich mit ein paar Zahlen wieder.

Gruß
Arthur



Will

Seit update vorgestern (fhem und sonos) lasst sich sonos nicht mehr über fhem ansprechen.....ich habe keine Logs. Hat jemand aehnliche Probleme?

Sent from my Nexus 7 using Tapatalk


snoop

#859
Hallo Reiner,

so ein paar sekunden frei geschaufelt, sorry - ich protokolliere einfach mal (Ich hoffe man kann es nachvollziehen).
So hier der Test(s):

- SONOS P5 und P3
- Group P3 und P3 (P5:Master)
- Volume: 20 (sowohl P5 als auch P3)
- Ausgabe: Line-In.

Idee: Sonos-speak in der Lautstärke 55 und erneute Wiedergabe bei 20
# Do it
fhem "set Sonos Groups [Sonos_Wohnzimmer, Sonos_Kueche]";
fhem "set Sonos_Wohnzimmer VolumeSave";
fhem "set Sonos_Wohnzimmer Speak 55 de $ansage";
fhem "set Sonos_Wohnzimmer Speak 55 de $ansage2";
fhem "set Sonos_Wohnzimmer VolumeRestore";

Result:
- SONOS P5 und P3
- Group P5 und P3 (P5:Master)
- P3 Volume: 35 (Diff: +15)
- P3 VolumeStore: 11 (Diff: -9)
- P5 Volume: 15 (Diff: -5)
- P5 VolumeStore: 22 (Diff: +2)
- Ausgabe: Line-In.

Es kommt mir vor als hätten wir das Thema schon mal ;o).

Ok, zurück zum Thema.

Also schauen wir uns mal die Volume Werte an:


- P3 Volume P3: 35 (Diff: +15)
- P3 VolumeStore P3: 11 (Diff: -9)
- P5 Volume P5: 15 (Diff: -5)
- P5 VolumeStore: 22 (Diff: +2)


Fragen:
- Die V-Differenz zwischen P3 und P5 sind seltsam - ich hätte sie gleiche Werte erwartet. Warum einmal -15 und einmal -5?
- Die V-Differenz bei Restore ist auch unterschiedlich.

Also bisher, für mich, kein Muster erkennbar.

Ok, zweiter Test (ohne VolumeSave und VolumeRestore):

- SONOS P5 und P3
- Group P5 und P3 (P5:Master)
- Volume: 20 (sowohl P5 als auch P3)
- Ausgabe: Line-In.

Idee: Sonos-speak in der Lautstärke 55 und erneute Wiedergabe bei 20
# Do it
fhem "set Sonos Groups [Sonos_Wohnzimmer, Sonos_Kueche]";
fhem "set Sonos_Wohnzimmer Speak 55 de $ansage";

Result:
- SONOS P5 und P3
- Group P5 und P3 (P5:Master)
- P3 Volume: 18 (Diff: -2)
- P3 VolumeStore: 11 (Diff: -9)
- P5 Volume: 22 (Diff: +2)
- P5 VolumeStore: 22 (Diff: +2)


Fragen:
- Die V-Differenz zwischen P3 und P5 sind seltsam - ich hätte sie gleiche Werte erwartet. Warum einmal -2 und einmal +2?
- Die V-Differenz bei Restore ist auch unterschiedlich.


So, ich erkenne eine seltsamme Dynamik die ich mir nicht erklären kann.

Ok, mit einem Diff + bei Restore wird das wohl nicht funktionieren - vielleicht ist es ein timing Problem?
Reiner, dafür geht die Welt bei mir nicht unter, das möchte ich noch betonen, falls du jedoch mal eine Herausforderung suchst, dann kannst du das ja mal entziffern.

Nur so am Rande, hab eigentlich nur ich das Problem, oder nutzt niemand die praktische speak Funktion?
Viele Grüße
Arthur

Reinerlein

Hallo,

@Will: So ohne Logs ist das jetzt etwas schwierig. Wenigstens einen Ansatz bräuchte man...

@Arthur: Ja, das Thema mit Lautstärken bei Durchsagen bei Gruppen hatten wir schon mal... Ich werde da nochmal etwas in Forschung gehen. Mit zwei Teilnehmern kann ich das auch selber nachstellen...

Grüße
Reiner

snoop

Hallo Reiner,
danke, wie bereits geschrieben, das hat "keine" Prio und nur wenn es die Zeit zulässt -> kein Stress.
Vielen Dank.
Grüße
Arthur

strauch

Zitat von: Reinerlein am 22 Februar 2014, 22:24:58

update thirdparty http://fhem.lmsoft.de/sonos_dev sonos


Also Sonos ist ja mit der DEV Version sehr gesprächig, was mir noch an Meldungen auffällt:

Use of uninitialized value in concatenation (.) or string at FHEM/00_SONOS.pm line 1318, <$client> line 4.


Und wenn mein Sonos aus ist, kommt in 30min Rythmus:
Renewal of subscription failed with error: 500 Can't connect to 192.168.200.60:1400 (No route to host) at FHEM/00_SONOS.pm line 1948 thread 1
2014.02.25 23:59:17 3: SONOS1: Transport-Subscription for ZonePlayer "RINCON_000E5823915201400_MR" has expired and is now renewed.
Renewal of subscription failed with error: 500 Can't connect to 192.168.200.60:1400 (No route to host) at FHEM/00_SONOS.pm line 1953 thread 1
2014.02.25 23:59:20 3: SONOS1: Rendering-Subscription for ZonePlayer "RINCON_000E5823915201400_MR" has expired and is now renewed.
Renewal of subscription failed with error: 500 Can't connect to 192.168.200.60:1400 (No route to host) at FHEM/00_SONOS.pm line 1958 thread 1
2014.02.25 23:59:23 3: SONOS1: Alarm-Subscription for ZonePlayer "RINCON_000E5823915201400_MR" has expired and is now renewed.
Renewal of subscription failed with error: 500 Can't connect to 192.168.200.60:1400 (No route to host) at FHEM/00_SONOS.pm line 1963 thread 1
2014.02.25 23:59:26 3: SONOS1: ZoneGroupTopology-Subscription for ZonePlayer "RINCON_000E5823915201400_MR" has expired and is now renewed.
Renewal of subscription failed with error: 500 Can't connect to 192.168.200.60:1400 (No route to host) at FHEM/00_SONOS.pm line 1968 thread 1
2014.02.25 23:59:29 3: SONOS1: DeviceProperties-Subscription for ZonePlayer "RINCON_000E5823915201400_MR" has expired and is now renewed.


Ist jetzt nicht unbedingt ein Fehler.
FHEM 5.6 VMware mit Debian. 1 CUL für FS20 und HMLAN für Homematic, HM-CC-RT-DN, HM-LC_Sw1PBU-FM, HM-LC-Bl1PBU-FM,  HM-SEC-SC, HM-SEC-SC-2, HM-LC-Sw1-Pl2, HM-Sec-RHS, ASH2200, FHT80B, S20KSE, Sonos, XBMC, FB_Callmonitor, SMLUSB, Arduino Firmata, uvm.

JoeALLb

Wie hoch ist bei Dir die CPU-Last?
Schaltest Du SONOS-Geräte manchmal ab?

Zur Info an Reiner: Ich habe diesen Fehler schon länger nicht mehr, aber ich "bastle" derzeit auch nichts
herum an meinem System.
FHEM-Server auf IntelAtom+Debian (8.1 Watt), KNX,
RasPi-2 Sonos-FHEM per FHEM2FHEM,RasPi-3 Versuchs-RasPi für WLAN-Tests
Gateways: DuoFern Stick, CUL866 PCA301, CUL HM, HMLan, JeeLink, LaCrosse,VCO2
Synology. Ardurino UNO für 1-Wire Tests, FB7270

strauch

Zitat von: JoeALLb am 26 Februar 2014, 10:04:21
Wie hoch ist bei Dir die CPU-Last?

Auf meinem Rasbpi 0.0 wenn ich mit htop schaue. Springt mal kurz auf 1.0 oder 3.0% rauf (also 00_SONOS.PM)

Zitat von: JoeALLb am 26 Februar 2014, 10:04:21Schaltest Du SONOS-Geräte manchmal ab?

Ja hab ein Watchdog laufen, der die Steckdosenleisten abschaltet wenn Sonos 30min nichts abgespielt hat.
FHEM 5.6 VMware mit Debian. 1 CUL für FS20 und HMLAN für Homematic, HM-CC-RT-DN, HM-LC_Sw1PBU-FM, HM-LC-Bl1PBU-FM,  HM-SEC-SC, HM-SEC-SC-2, HM-LC-Sw1-Pl2, HM-Sec-RHS, ASH2200, FHT80B, S20KSE, Sonos, XBMC, FB_Callmonitor, SMLUSB, Arduino Firmata, uvm.

Reinerlein

Hi strauch,

da scheint die Abwesenheitserkennung nicht sauber zu greifen. Ab Loglevel 3 sieht man im Log des SubProzesses, wenn der Thread einen abwesenden Player erkennt.
Steht beim Abschalten deiner Steckdosen dazu etwas im Log? Dauert insgesamt 3*Pingintervall, da die ersten beiden ungültigen Pings als Toleranz ignoriert werden (da steht dann was von mercilevel :-)
Ansonsten kannst du mal am PingType rumdrehen, damit die Erkennung sauber läuft.

Wenn die Abwesenheit sauber erkannt wird (beim Player wird danach das Reading "presence" als "disappeared" geführt), sollte ein Auffrischen der Subscriptions für diesen Player auch nicht mehr erfolgen, und somit auch keinen Fehler mehr verursachen (höchstens im Überschneidungsfall bis zur Endgültigen Feststellung auf "disappeared" einmal noch, da es nebenläufige Prozesse sind)...

Grüße
Reiner

strauch

Also in meinem Logfile steht dann z.B.:
2014.02.25 09:35:12 3: Watchdog watchdog_wz_Sonos_ausschalten triggered
2014.02.25 09:35:12 3: FS20 set wz_Sonos off


mehr nicht. Was mir aber auffällt. Mein Sonos wird morgens um 7 Uhr gestartet und läuft dann 2h (FS20 Steckdose mit on-for-timer). In den Readings vom Sonos Wohnzimmer steht:
presence

appeared

2014-02-26 07:00:36


Sonos ist gerade definitiv aus, wird aber nicht erkannt. Und in meiner Logdateien landen wieder diese 5 Zeilen alle 30min. Also er wird nicht auf disapeared "gestellt".

Den Rest deiner Infos muss ich gedanklich erst noch verarbeiten :-)
FHEM 5.6 VMware mit Debian. 1 CUL für FS20 und HMLAN für Homematic, HM-CC-RT-DN, HM-LC_Sw1PBU-FM, HM-LC-Bl1PBU-FM,  HM-SEC-SC, HM-SEC-SC-2, HM-LC-Sw1-Pl2, HM-Sec-RHS, ASH2200, FHT80B, S20KSE, Sonos, XBMC, FB_Callmonitor, SMLUSB, Arduino Firmata, uvm.

strauch

Ich hab Pingtype auf ICMP gesetzt, wobei ich vermute, dass das die Standardeinstellung ist oder?
FHEM 5.6 VMware mit Debian. 1 CUL für FS20 und HMLAN für Homematic, HM-CC-RT-DN, HM-LC_Sw1PBU-FM, HM-LC-Bl1PBU-FM,  HM-SEC-SC, HM-SEC-SC-2, HM-LC-Sw1-Pl2, HM-Sec-RHS, ASH2200, FHT80B, S20KSE, Sonos, XBMC, FB_Callmonitor, SMLUSB, Arduino Firmata, uvm.

Reinerlein

Hi strauch,

also, die Standardeinstellung für den PingType ist "syn", da man das ohne Root-Rechte machen darf/kann. Leider funktioniert es nicht immer zuverlässig (bei mir z.B. speichert mein Switch die MAC-Adressen an seinen Ports sehr lange, sodass auch sehr lange noch Syn einen Erfolg liefert)...

Wenn du Fhem nicht als root laufen lässt, haben wir den Übeltäter. "ICMP" geht nur mit Root-Rechten. dazu müsste dann aber auch alle PingIntervall-Sekunden im Log etwas stehen...

Meine persönliche Empfehlung ist, Fhem als root laufen zu lassen. Manche haben damit ein Problem, da muss man dann mit dem PingType für sich eine gangbare Lösung finden...

Das "appeared" wird durch den UPnP-Erkennungsmechanismus gesetzt, und hat nichts mit dem PingType zu tun. Leider melden sich die Geräte nicht mehr über diesen Mechanismus ab (was prinzipiell im UPnP-Standard vorgesehen wäre, von Sonos aber nicht durchgeführt wird), wenn man sie ausschaltet:-) Daher diese Verrenkungen...

Grüße
Reiner

djhans

Hallo zusammen,
ich habe noch einmal eine Frage zur Visualisierung der Sonos-Devices
Ich habe Player als Stereopaar und Player in Gruppen zusammengefasst. Die Stereopaare sind fix und ändern sich nicht. Die Gruppen sind dynamisch.  Nun möchte ich das in fhem -ähnlich wie beim Sonos Controller unter "Räume"- visualisieren.  Das heisst, ich muss irgendwie den "RF" eines Stereopaares "unsichtbar" machen. Über die Gruppenfunktion von fhem könnte man dann die Sonos-Gruppen visualisieren.

Hat jemand eine Idee, wie man das am Besten machen könnte, oder ist das alles quatsch!

Christian.