FHEM Forum

FHEM => Automatisierung => Thema gestartet von: marcel2803 am 10 Juli 2016, 18:56:41

Titel: Notify on Sonos VolumeChange / Harmony command
Beitrag von: marcel2803 am 10 Juli 2016, 18:56:41
Hallo liebes Forum,
Ich arbeite mich gerade etwas in FHEM ein und möchte gerne folgendes realisieren:
Wenn ich über meine Harmony Remote die Lautstärke einer Sonos Box erhöhe, will ich, dass sich alle in der Gruppe befindenden Boxen auch lauter werden.

Dazu dachte ich an ein Notifiy, dass auslöst, wenn sich die Lautstärke dieser einen Box ändert und dann die GroupVolume erhöht (über GroupVolumeD/U).
Das fakeRoku Modul habe ich auch schon getestet, doch kann es die Lauter/Leiser Tasten nicht auslesen und ich müsste die Remote erst in den Roku Modus setzen und die Sonos verlassen.

Gibt es eine Möglichkeit die Lautstärke einer SonosBox zu verfolgen oder kann ich ein notify auf einen Harmony Command machen. Dann könnte ich es nämlich mit dem VolumeUp Command verbinden.

Vielen Dank schonmal
Marcel

Titel: Antw:Notify on Sonos VolumeChange / Harmony command
Beitrag von: justme1968 am 10 Juli 2016, 19:02:39
schau dir das generateVolumeEvent attribut an.

was das fakeRoku modul angeht: du kannst jede roku taste auf jede harmony taste legen. auch zusätzlich zu anderen. schau dir den harmony tipps thread an.

gruss
  andre
Titel: Antw:Notify on Sonos VolumeChange / Harmony command
Beitrag von: marcel2803 am 11 Juli 2016, 19:07:24
Das habe ich mir natürlich schonmal angeschaut, leider triggert dies nur, wenn die Lautstärke von FHEM verändert wird und nicht, wenn dies von außen (also z.B: über die Harmony geschieht).
Klar mit dem fakeRoku würde das gehen aber dann muss immer eine der Sonos Aktivitäten laufen, ich würde dies aber gerne über die Geräte eigenen Tasten tun.

Gibt es keine Möglichkeit die Lautstärke einer Sonos zu synchronisieren?

Weiß jemand vielleicht ob das Harmony Modul irgendwelche Events schmeißt, vor allem wann?

Vielen Dank
Titel: Antw:Notify on Sonos VolumeChange / Harmony command
Beitrag von: justme1968 am 11 Juli 2016, 19:34:09
nein. es trigger at auch wenn man z.b. direkt am sonos player über die tasten die lautstärke ändert.

wie oben geschrieben sendet der hub nur für activity wechsel daten.

du kannst auf verbose 5 schalten und ins log schauen. wenn dort nichts auftaucht sendet der hub auch nichts.

gruss
   andre
Titel: Antw:Notify on Sonos VolumeChange / Harmony command
Beitrag von: marcel2803 am 12 Juli 2016, 17:26:39
Nein leider triggert er bei mir nur, wenn ich über das Sonos Modul etwas verändere. Änderungen über die Sonos App oder direkt am Gerät, löst nicht aus.
Titel: Antw:Notify on Sonos VolumeChange / Harmony command
Beitrag von: justme1968 am 12 Juli 2016, 17:53:30
hast du das generateVolumeEvent attribut und z.b. minVolume  in den playern gesetzt?

gruss
  andre
Titel: Antw:Notify on Sonos VolumeChange / Harmony command
Beitrag von: marcel2803 am 13 Juli 2016, 17:15:43
Ja ich hab für den entsprechenden SONOSPLAYER MinVol und MaxVol gesetzt, auf 0 bzw. 100.
Und dann das GenerateVolumeEvent auf 1
Das ganze klappt auch für von FHEM generierte Lautsärkeänderungen aber nicht für externe.
Titel: Antw:Notify on Sonos VolumeChange / Harmony command
Beitrag von: justme1968 am 13 Juli 2016, 18:24:18
wie gesagt funktioniert es bei mir auch wenn ich die lautstärke nicht über fhem ändere.

ich würde mal überall den log level hoch drehen und wenn nichts zu sehen ist reiner fragen.

gruss
  andre
Titel: Antw:Notify on Sonos VolumeChange / Harmony command
Beitrag von: marcel2803 am 13 Juli 2016, 20:12:09
Ich habs rausgefunden, ich hab einfach vergessen FHEM neuzustarten. Irgendwo in der Modul Beschreibung stand was, dass erst nach einem Neustart die Attribute Wirkung zeigen und das scheint der Fall zu sein.

Jetzt brauche ich nur noch den notify, irgendein Tipp dazu. Wie reagiere ich auf ein Event, wie 2016-07-13 18:09:12 SONOSPLAYER Sonos_Wohnzimmer Volume: 25

Das Problem ist nämlich, dass er nur die Meldung einer Lautstärken Änderung gibt aber nicht ob es lauter leiser wird. In einer anderen Sprache wüsste ich wie es geht aber in FHEM bin ich noch nicht fit. Wie würden so ein FHEM Code lauten für

onEventVolume mach wenn EventVolume < als letztesEventVolume dann GroupVolumeU, ansonsten GroupVolumeD.

Könnte das jemand übersetzen  ;D
Titel: Antw:Notify on Sonos VolumeChange / Harmony command
Beitrag von: marcel2803 am 14 Juli 2016, 20:07:48
So Für die Nachwelt:
Im Prinzip macht das nichts, als bei Änderung im Wohnzimmer alle anderen mit zu ändern. Irgendwie kann man das bestimmt noch über slavePlayer() und dem Array dahinter machen, aber ich weiß nicht wie Arrays in perl Funktionieren. So klappt es auch:

Sonos_Wohnzimmer:Volume:.* {

#aktuelle Einzellautstärke
my $aktuelleL = ReadingsVal("Sonos_Wohnzimmer","Volume",10);;

my $test = ReadingsVal("Sonos_Wohnzimmer","SlavePlayer",10);;


#alte Einzellautstärke
my $alteL = AttrVal("SonosVolumeSingleGroup","userReadings",0);;

#Wird lauter
if ($alteL < $aktuelleL)  {
fhem "set Sonos_Bad VolumeU";;
fhem "set Sonos_Schlafzimmer VolumeU";;
}

#Wird leiser
if ($alteL > $aktuelleL)  {
fhem "set Sonos_Bad VolumeD";;
fhem "set Sonos_Schlafzimmer VolumeD";;
}


#Lautstärken speichern
fhem "attr SonosVolumeSingleGroup userReadings $aktuelleL";;
fhem "attr SonosVolumeSingleGroup comment $test";;
}