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)
+