FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: gestein am 09 November 2019, 22:23:36

Titel: [Gelöst] Rechnen mit Readings?
Beitrag von: gestein am 09 November 2019, 22:23:36
Hallo,

die Frage wurde wahrscheinlich schon öfters gestellt, aber ich werde nicht schlau aus den Antworten.

Ich möchte gerne die Lautstärke meines AVs über die Fernbedienung des Kodi verändern.
Daher habe ich mir ein notify definiert, dass auf Änderungen der Lautstärke des Kodi reagiert.
defmod notify_kodi_volume notify kodi:volume:.* IF ([Denon:zoneMain] eq "on" and [Denon:input] eq "Mediaplayer") (\
{Log 1, "kodi-Lautstärke, $NAME|$EVENT|"},\
set Denon volume [kodi:volume]\
)


Das funktioniert.
Allerdings möchte ich die Lautstärke nicht 1:1 ändern, sondern so: 30 + [kodi:volume]/5

Wenn ich nun z.B. schreibe "set Denon volume {30+[kodi:volume:d]/5} dann bekomme ich folgende Meldung im log:
2019.11.09 22:19:37.529 1: kodi-Lautstärke, kodi|volume: 85.00|
2019.11.09 22:19:37.531 1: PERL WARNING: Argument "{30+85.00}" isn't numeric in multiplication (*) at ./FHEM/70_DENON_AVR.pm line 2984.


Wie kann ich das lösen?
Danke im Voraus
lg, Gerhard
Titel: Antw:Rechnen mit Readings?
Beitrag von: Otto123 am 09 November 2019, 23:06:41
Hallo Gerhard,

so {(...)} klappt das. https://fhem.de/commandref_modular.html#set
Zitat{(perlExpression)} with the result of perlExpression.

Gruß Otto
Titel: Antw:Rechnen mit Readings?
Beitrag von: gestein am 09 November 2019, 23:15:41
Hallo Otto,

vielen Dank.
Ich habe das zwar vorher schon mehrmals durchgelesen, aber auf die zusätzliche umschließende "()" wäre ich nie und nimmer gekommen.

So klappt es also:
defmod notify_kodi_volume notify kodi:volume:.* IF ([Denon:zoneMain] eq "on" and [Denon:input] eq "Mediaplayer") (\
{Log 1, "kodi-Lautstärke, $NAME|$EVENT|"},\
set Denon volume {(30+[kodi:volume:d]/5)}\
)


Vielen Dank mal wieder
lg, Gerhard
Titel: Antw:[Gelöst] Rechnen mit Readings?
Beitrag von: Otto123 am 09 November 2019, 23:32:56
Aus meinem "Hinterkopf": Die FHEM Kommandozeile und set magic haben gegenüber dem normalen Perl Code immer ein paar Besonderheiten. -> ;; {(...)} "$NAME"
;)