Harmony Hub. Lautstärke regeln, FTUI Widget Volume

Begonnen von sxx128, 11 Mai 2020, 20:46:44

Vorheriges Thema - Nächstes Thema

sxx128

Hallo zusammen,

ich habe meinen Harmony Hub erfolgreich eingebunden. Das heisst ich kann zwischen Aktivities schalten und Fernsehkanäle wechseln usw. Das einzige was ich nicht hin bekomme ist mit dem

FTUI Widget Volume

die Lautstärke regeln. Ich versucht mich langsam an das Problem ranzutasten. Was immer funktioniert (aus Fhem heraus)  ist ein:


set MyHarmonyHub VolumeUp
set MyHarmonyHub VolumeDown


So kann ich die Lautstärke erhöhen und reduzieren.

Danach habe ich folgendes Probiert. Einen einfachen Schalter mit dem ich die Lautstärke nur erhöhen kann. Wie gesagt eigentlich "sinnfrei" aber ich wollte das Problem eingrenzen. Folgendes funktioniert also auch.


div data-type="push" data-cmd="set" data-device="MyHarmonyHub" data-set-on="VolumeUp" data-max="60" class="top-space-2x"></div>


Danach habe ich das ganze mit dem FTUI Widget Volume probiert. Das funktioniert gar nicht:


<div data-type="volume" data-cmd="set" data-device="MyHarmonyHub" data-get="volume" data-set-on="VolumeUp" data-max="60" class="top-space-2x"></div>


Ich habe da schon zig Varianten versucht. Ich kriege es nicht hin. Könnt ihr mir bitte helfen. Das wäre klasse.

Lasst es euch gut gehen.

Grüße
sxx128

Hardware: Raspberryy PI 4
CC1101-USB-Lite 868MHz/Culfw-1.66
HM-MOD-RPI-PCB
Komponenten: Homematic/Homematic IP/Zigbee
PiVCCU

amenomade

#1
Dieses Widget ist dafür gedacht, einen Wert zu setzen: "set device volume 25" oder "set device hue 60000". Allein kann es nicht eine Einstellung der Art "25" oder "60000" anhand der vorherigen Wert "30" oder "45000" als "5 mal volumeUp" oder "15000 mal hueDown" interpretieren. Das musst Du über ein anderes FHEM Device (notify, DOIF oä) umsetzen.

Deswegen ist auch data-set-on kein Attribut dieses Widgets.
Pi 3B, Alexa, CUL868+Selbstbau 1/2λ-Dipol-Antenne, USB Optolink / Vitotronic, Debmatic und HM / HmIP Komponenten, Rademacher Duofern Jalousien, Fritz!Dect Thermostaten, Proteus

sxx128

Hallo Amenomade

danke für die Antwort. Das ist mir aufgefallen ich konnte mir aber nicht erklären was da passiert. Immer wenn ich den Volumenregler drehe wird ein Wert für die Lautstärke mitgegeben z.B.


set MyHarmonyHub VolumeUp 60


Ich habe dann irgendwann mal versucht aus FHEM raus diesen Befehl abzusetzten was aber nicht funktioniert. Was mich irritiert hat worauf ich aber keine Erklärung hatte.

Vielen Dank für deine Erkärung.

Grüße
sxx128

Hardware: Raspberryy PI 4
CC1101-USB-Lite 868MHz/Culfw-1.66
HM-MOD-RPI-PCB
Komponenten: Homematic/Homematic IP/Zigbee
PiVCCU

MadMax-FHEM

#3
Ich kenne ja das Widget nicht und nutze auch kein FTUI...

Aber mit meinem "alten" Verstärker hatte ich ein ähnliches Problem.

Der hat (auch) keine direkten Lautstärkewerte "verstanden" sondern auch nur VolumeUp/VolumeDown (und noch schlimmer, ich musste immer 2x den Befehl absetzen)...

Habe es wie folgt gelöst:


defmod dmControl_MediaBox dummy
attr dmControl_MediaBox alias Mediabox
attr dmControl_MediaBox oldreadings volume
attr dmControl_MediaBox readingList volume mute playback channel
attr dmControl_MediaBox setList on off volume mute channel


habe den dummy schon etwas "abgespeckt" (wird per Alexa noch anderweitig genutzt), du kannst vermutlich auch noch "on off mute channel" weglassen...
...sollte aber auch nicht schaden!?

Im Widget so wie ich das verstehe musst du dann so einstellen, dass: set dmControl_MediaBox volume XX gesendet wird.


Dann ein Notify auf den dummy bzw. volume:


defmod nVolumeControl notify dmControl_MediaBox:volume.* {my_VolumeControl($NAME, $EVENT)}


Und dann noch eine Sub, die sich drum kümmert...



sub my_VolumeControl($$)
{
  my ($Device,$Event) = @_;
 
  Log3(undef, 3, "my_VolumeControl     Device: $Device    Event: $Event");
 
  if($Event =~ m/volume/)
  {
    if(OldReadingsVal($Device, "volume", 0) > ReadingsVal($Device, "volume", 0))
{
           fhem("set HarmonyHub command VolumeDown; sleep 1; set HarmonyHub command VolumeDown; sleep 1; set HarmonyHub command VolumeDown");
}
else
{
           fhem("set HarmonyHub command VolumeUp; sleep 1; set HarmonyHub command VolumeUp; sleep 1; set HarmonyHub command VolumeUp");
}
  }
}


EDIT: ok, einige der Abfragen sind auch unnötig (z.B. "Prüfung" auf volume ;)  ) aber das stammt wie geschrieben aus etwas "Größerem" bzw. wird SO nicht mehr eingesetzt grad...

EDIT: auch $NAME und $EVENT müsste nicht mit übergeben werden ;)  Bzw. könnte man $Event innerhalb auch nutzen, statt abzufragen ;)  Und den dummy könnte man auch "hard coden", dann braucht man eben kein $NAME übergeben... ;)  Aber wie geschrieben, die Funktion war/ist eigentlich "größer" und wird/wurde noch für andere Notify verwendet, daher $NAME und $EVENT... ;)

Nicht schön aber wenn es mit dem Widget (wirklich) nicht anders geht oder es kein anderes gibt vielleicht einen Versuch wert...

P.S.: das läuft so nicht mehr bei mir, ich habe es aus alten "Bruchstücken" zusammengebastelt! Ist also ungetestet aber sollte (mit Anpassungen) so laufen... (hoffe ich ;)  )

Gruß, Joachim
FHEM PI3B+ Bullseye: HM-CFG-USB, 40x HM, ZWave-USB, 13x ZWave, EnOcean-PI, 15x EnOcean, HUE/deCONZ, CO2, ESP-Multisensor, Shelly, alexa-fhem, ...
FHEM PI2 Buster: HM-CFG-USB, 25x HM, ZWave-USB, 4x ZWave, EnOcean-PI, 3x EnOcean, Shelly, ha-bridge, ...
FHEM PI3 Buster (Test)