From d83a9b5257092eec3ca9dcef29008d9b5833019a Mon Sep 17 00:00:00 2001 From: deespe <> Date: Mon, 14 Nov 2016 19:56:42 +0000 Subject: [PATCH] 98_Hyperion: new sets for valueGainDown/valueGainDown, new attr hyperionGainStep, update commandref git-svn-id: https://svn.fhem.de/fhem/trunk@12575 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/98_Hyperion.pm | 28 ++++++++++++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/fhem/FHEM/98_Hyperion.pm b/fhem/FHEM/98_Hyperion.pm index e98f00b60..0c681cd43 100644 --- a/fhem/FHEM/98_Hyperion.pm +++ b/fhem/FHEM/98_Hyperion.pm @@ -30,7 +30,9 @@ my %Hyperion_sets = "on" => "noArg", "rgb" => "colorpicker,RGB", "toggle" => "noArg", - "toggleMode" => "noArg" + "toggleMode" => "noArg", + "valueGainDown" => "textField", + "valueGainUp" => "textField" ); my $Hyperion_requiredVersion = "1.03.2"; @@ -59,6 +61,7 @@ sub Hyperion_Initialize($) "hyperionDefaultDuration ". "hyperionDefaultPriority ". "hyperionDimStep ". + "hyperionGainStep ". "hyperionNoSudo:1 ". "hyperionSshUser ". "hyperionToggleModes ". @@ -576,7 +579,7 @@ sub Hyperion_Set($@) elsif ($cmd =~ /^(dimUp|dimDown)$/) { return "Value of $cmd has to be between 1 and 99" - if (defined $value && ($value =~ /^(\d+)$/ || $1 > 99)); + if (defined $value && ($value !~ /^(\d+)$/ || $1 > 99 || $1 < 1)); my $dim = ReadingsVal($name,"dim",100); my $dimStep = $value ? $value : AttrVal($name,"hyperionDimStep",10); my $dimUp = ($dim + $dimStep < 100) ? $dim + $dimStep : 100; @@ -727,6 +730,17 @@ sub Hyperion_Set($@) $obj{command} = "adjustment"; $obj{adjustment} = \%ar; } + elsif ($cmd =~ /^(valueGainUp|valueGainDown)$/) + { + return "Value of $cmd has to be between 0.1 and 1.0 in steps of 0.1" + if (defined $value && ($value !~ /^(\d\.\d)$/ || $1 > 1 || $1 < 0.1)); + my $gain = ReadingsNum($name,"valueGain",1); + my $gainStep = $value ? $value : AttrVal($name,"hyperionGainStep",0.1); + my $gainUp = ($gain + $gainStep < 5) ? $gain + $gainStep : 5; + my $gainDown = ($gain - $gainStep > 0) ? $gain - $gainStep : 0.1; + $cmd eq "valueGainUp" ? fhem "set $name valueGain $gainUp" : fhem "set $name valueGain $gainDown"; + return undef; + } if (scalar keys %obj) { Log3 $name,5,"$name: $cmd obj json: ".encode_json(\%obj); @@ -1102,6 +1116,11 @@ sub Hyperion_devStateIcon($;$) dim step for dimDown/dimUp
default: 10 (percent) +
  • + hyperionGainStep
    + valueGain step for valueGainDown/valueGainUp
    + default: 0.1 +
  • hyperionNoSudo
    disable sudo for non-root ssh user
    @@ -1456,6 +1475,11 @@ sub Hyperion_devStateIcon($;$) Dimmstufen für dimDown/dimUp
    Voreinstellung: 10 (Prozent)
  • +
  • + hyperionGainStep
    + valueGain Dimmstufen für valueGainDown/valueGainUp
    + Voreinstellung: 0.1 +
  • hyperionNoSudo
    Deaktiviert sudo für nicht root SSH Benutzer