Hi Markus,
ich hab mal wieder ein Änderungsbegehren :-) bzw. gleichzeitig Robustheitsmaßnahme
Problem:
Die quickfhem-App läßt aktuell nur floats in der Übergabe von einem Slider zu.
Wenn ich jetzt den Parameter (%d)ändere, wird volume auf einen float gesetzt.
(z.B. set AVrx volume 25.3). Das bewirkt max-volume vom Yamaha_AVR-modul.
Mein Versuch, das mit ner Funktion abzufangen, scheitert aktuell daran, dass quickfhem das nicht an fhem übermittelt (siehe hier https://forum.fhem.de/index.php/topic,59081.msg706966.html#msg706966 (https://forum.fhem.de/index.php/topic,59081.msg706966.html#msg706966)).
Was hälst du von einer Abfange innerhalb deines Moduls, nicht dass auch einer unmotiviert via telnet oder fhem-console ein max-vol erzeugen kann.
Für volumeStraight braucht man es nicht, da ja explizit Komma-Zahlen erlaubt sind.
Meine Erweiterung für floor von $a[2] als Vorschlag (Zeile 458 - # $Id: 71_YAMAHA_AVR.pm 15158 2017-10-01 09:39:51Z markusbloch $).7
Damit klappt die Sache
...
my $target_volume;
if($what eq "volume" and defined($a[2]))
{
$a[2] = floor($a[2]);
}
Vielleicht hast du noch eine andere Idee.
Grüße
Steffen
Hallo Steffen,
das klingt ja mal sehr interessant und abenteuerlich. Ich habe es etwas anders gelöst: https://svn.fhem.de/trac/changeset/15362/
Viele Grüße und Happy Halloween
Markus
großartig! Viele Wege...!
Danke und Grüße
Steffen
Zitat von: knopf_piano am 31 Oktober 2017, 14:19:14
großartig! Viele Wege...!
Danke und Grüße
Steffen
Hi Markus
war etwas zu vorschnell, sah im code gut aus, im Test allerdings kein Effekt.
Ich muss meine code-erweiterung drin lassen. hab floor -> int ersetzt (was egal ist). Damit geht's.
Bitte schau nochmal drüber.
if($what eq "volume" and defined($a[2]))
{
$a[2] = int($a[2]);
}
Meine Variante hat bei mir anstandlos funktioniert. "set AV_Receiver volume 25.3" => Die Volume ist nicht auf max-volume hochgegangen sondern auf -56 dB.
Bist Du dir sicher, dass Du richtig getestet hast?
Gruß
Markus
Ja, bin mir sicher.
Ich hab mit deiner Variante jeweils meine Code-Zeile vorangestellt oder nicht,
jeweils "reload 71_YAMAHA_AVR.pm" .
Geht nur mit meiner Ergänzung.
Liegt's mal wieder an den AV-Varianten? Ich hab einen RX-V671, FIRMWARE 1.80/2.01.
Mach bitte mal ein verbose 4 an und jeweils einen Logauszug einmal mit und einmal ohne deine Änderung. Bei mir kommt folgende Zeile dabei zu Stande (set AV_Receiver volume 25.3):
EDIT: Gerade gemerkt, wenn man mehr als eine Kommastelle verwendet ist der Fehler wieder da. Das habe ich soeben behoben.
Gruß
Markus
Hi Markus,
that's it. funkt.
Dank dir!!
Grüße
Steffen
Gesendet von meinem SM-J510FN mit Tapatalk