2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-04-22 20:24:36 +00:00

31_Aurora.pm: use new api as dokumented

git-svn-id: https://svn.fhem.de/fhem/trunk@19680 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
justme-1968 2019-06-21 14:19:10 +00:00
parent 0393185b95
commit 11c6a55562

View File

@ -339,99 +339,114 @@ Aurora_SetParam($$@)
$cmd = "off" if($cmd eq "pct" && $value == 0 );
if($cmd eq 'on') {
$obj->{'on'} = JSON::true;
$obj->{'transitiontime'} = $value * 10 if( defined($value) );
$obj->{on} = { value => JSON::true };
$obj->{on}{duration} = $value * 10 if( defined($value) );
} elsif($cmd eq 'off') {
$obj->{'on'} = JSON::false;
$obj->{'transitiontime'} = $value * 10 if( defined($value) );
$obj->{on} = { value => JSON::false };
$obj->{on}{duration} = $value * 10 if( defined($value) );
} elsif($cmd eq "pct") {
$value = 0 if( $value < 0 );
$value = 100 if( $value > 100 );
$obj->{'on'} = JSON::true;
$obj->{'brightness'} = int($value);
$obj->{'transitiontime'} = $value2 * 10 if( defined($value2) );
$obj->{on} = { value => JSON::true } if( !$defs{$name}->{helper}{on} );
$obj->{brightness} = { value => int($value) };
$obj->{brightness}{duration} = $value2 * 10 if( defined($value2) );
} elsif($name && $cmd eq "dimUp") {
my $pct = ReadingsVal($name,"pct","0");
$pct += 10;
$pct = 100 if( $pct > 100 );
$obj->{'on'} = JSON::true if( !$defs{$name}->{helper}{on} );
$obj->{'brightness'} = 0+$pct;
$obj->{'transitiontime'} = 1;
#$obj->{'transitiontime'} = $value * 10 if( defined($value) );
$obj->{on} = { value => JSON::true } if( !$defs{$name}->{helper}{on} );
$obj->{brightness} = { increment => 10 };
$obj->{brightness} = { increment => 0+$value } if( defined($value) );
$obj->{brightness}{duration} = $value2 * 10 if( defined($value2) );
$defs{$name}->{helper}->{update_timeout} = 0;
} elsif($name && $cmd eq "dimDown") {
my $pct = ReadingsVal($name,"pct","0");
$pct -= 10;
$pct = 0 if( $pct < 0 );
$obj->{'on'} = JSON::true if( !$defs{$name}->{helper}{on} );
$obj->{'brightness'} = 0+$pct;
$obj->{'transitiontime'} = 1;
#$obj->{'transitiontime'} = $value * 10 if( defined($value) );
$obj->{on} = { value => JSON::true } if( !$defs{$name}->{helper}{on} );
$obj->{brightness} = { increment => -10 };
$obj->{brightness} = { increment => 0-$value } if( defined($value) );
$obj->{brightness}{duration} = $value2 * 10 if( defined($value2) );
$defs{$name}->{helper}->{update_timeout} = 0;
} elsif($cmd eq "satUp") {
$obj->{'on'} = JSON::true if( !$defs{$name}->{helper}{on} );
$obj->{'sat_inc'} = 10;
$obj->{'sat_inc'} = 0+$value if( defined($value) );
$obj->{on} = { value => JSON::true } if( !$defs{$name}->{helper}{on} );
$obj->{sat} = { increment => 10 };
$obj->{sat} = { increment => 0+$value } if( defined($value) );
$obj->{sat}{duration} = $value2 * 10 if( defined($value2) );
} elsif($cmd eq "satDown") {
$obj->{'on'} = JSON::true if( !$defs{$name}->{helper}{on} );
$obj->{'sat_inc'} = -10;
$obj->{'sat_inc'} = 0+$value if( defined($value) );
$obj->{on} = { value => JSON::true } if( !$defs{$name}->{helper}{on} );
$obj->{sat} = { increment => 10 };
$obj->{sat} = { increment => 0-$value } if( defined($value) );
$obj->{sat}{duration} = $value2 * 10 if( defined($value2) );
} elsif($cmd eq "hueUp") {
$obj->{'on'} = JSON::true if( !$defs{$name}->{helper}{on} );
$obj->{'hue_inc'} = 30;
$obj->{'hue_inc'} = 0+$value if( defined($value) );
$obj->{on} = { value => JSON::true } if( !$defs{$name}->{helper}{on} );
$obj->{hue} = { increment => 10 };
$obj->{hue} = { increment => 0+$value } if( defined($value) );
$obj->{hue}{duration} = $value2 * 10 if( defined($value2) );
} elsif($cmd eq "hueDown") {
$obj->{'on'} = JSON::true if( !$defs{$name}->{helper}{on} );
$obj->{'hue_inc'} = -30;
$obj->{'hue_inc'} = 0+$value if( defined($value) );
$obj->{on} = { value => JSON::true } if( !$defs{$name}->{helper}{on} );
$obj->{hue} = { increment => 10 };
$obj->{hue} = { increment => 0-$value } if( defined($value) );
$obj->{hue}{duration} = $value2 * 10 if( defined($value2) );
} elsif($cmd eq "ctUp") {
$obj->{'on'} = JSON::true if( !$defs{$name}->{helper}{on} );
$obj->{'ct_inc'} = 16;
$obj->{'ct_inc'} = 0+$value if( defined($value) );
$obj->{on} = { value => JSON::true } if( !$defs{$name}->{helper}{on} );
$obj->{ct} = { increment => 16 };
$obj->{ct} = { increment => 0+$value } if( defined($value) );
$obj->{ct}{duration} = $value2 * 10 if( defined($value2) );
} elsif($cmd eq "ctDown") {
$obj->{'on'} = JSON::true if( !$defs{$name}->{helper}{on} );
$obj->{'ct_inc'} = -16;
$obj->{'ct_inc'} = 0+$value if( defined($value) );
$obj->{on} = { value => JSON::true } if( !$defs{$name}->{helper}{on} );
$obj->{ct} = { increment => 16 };
$obj->{ct} = { increment => 0-$value } if( defined($value) );
$obj->{ct}{duration} = $value2 * 10 if( defined($value2) );
} elsif($cmd eq "ct") {
$obj->{'on'} = JSON::true;
$obj->{on} = { value => JSON::true } if( !$defs{$name}->{helper}{on} );
$value = int(1000000/$value) if( $value < 1000 );
$obj->{'ct'} = 0+$value;
$obj->{'transitiontime'} = $value2 * 10 if( defined($value2) );
$obj->{ct} = { value => 0+$value };
$obj->{ct}{duration} = $value2 * 10 if( defined($value2) );
} elsif($cmd eq "hue") {
$obj->{'on'} = JSON::true;
$obj->{'hue'} = 0+$value;
$obj->{'transitiontime'} = $value2 * 10 if( defined($value2) );
$obj->{on} = { value => JSON::true } if( !$defs{$name}->{helper}{on} );
$obj->{hue} = 0+$value;
$obj->{hue}{duration} = $value2 * 10 if( defined($value2) );
} elsif($cmd eq "sat") {
$obj->{'on'} = JSON::true;
$obj->{'sat'} = 0+$value;
$obj->{'transitiontime'} = $value2 * 10 if( defined($value2) );
$obj->{on} = { value => JSON::true } if( !$defs{$name}->{helper}{on} );
$obj->{sat} = 0+$value;
$obj->{sat}{duration} = $value2 * 10 if( defined($value2) );
} elsif( $cmd eq "rgb" && $value =~ m/^(..)(..)(..)/) {
my( $r, $g, $b ) = (hex($1)/255.0, hex($2)/255.0, hex($3)/255.0);
my( $h, $s, $v ) = Color::rgb2hsv($r,$g,$b);
my( $h, $s, $v ) = Color::rgb2hsv($r,$g,$b);
$obj->{on} = { value => JSON::true } if( !$defs{$name}->{helper}{on} );
$obj->{hue} = { value => int( $h * 359 ) };
$obj->{sat} = { value => int( $s * 100 ) };
$obj->{brightness} = { value => int( $v * 100 ) };
$obj->{hue}{duration} = $value2 * 10 if( defined($value2) );
$obj->{sat}{duration} = $value2 * 10 if( defined($value2) );
$obj->{brightness}{duration} = $value2 * 10 if( defined($value2) );
$obj->{'on'} = JSON::true;
$obj->{'hue'} = int( $h * 359 );
$obj->{'sat'} = int( $s * 100 );
$obj->{'brightness'} = int( $v * 100 );
} elsif( $cmd eq "hsv" && $value =~ m/^(..)(..)(..)/) {
my( $h, $s, $v ) = (hex($1), hex($2), hex($3));
$s = 100 if( $s > 100 );
$v = 100 if( $v > 100 );
$h = int(255 / $h * 356);
$s = int(255 / $s * 100);
$v = int(255 / $v * 100);
$obj->{on} = { value => JSON::true } if( !$defs{$name}->{helper}{on} );
$obj->{hue} = { value => 0+$h };
$obj->{sat} = { value => 0+$s };
$obj->{brightness} = { value => 0+$v };
$obj->{hue}{duration} = $value2 * 10 if( defined($value2) );
$obj->{sat}{duration} = $value2 * 10 if( defined($value2) );
$obj->{brightness}{duration} = $value2 * 10 if( defined($value2) );
$obj->{'on'} = JSON::true;
$obj->{'hue'} = int($h*100);
$obj->{'sat'} = 0+$s;
$obj->{'brightness'} = 0+$v;
} elsif( $cmd eq "effect" ) {
$obj->{'select'} = "$value";
$obj->{'select'} .= " $value2" if( $value2 );
@ -799,9 +814,9 @@ Aurora_Parse($$)
$attr{$name}{devStateIcon} = '{(Aurora_devStateIcon($name),"toggle")}' if( !defined( $attr{$name}{devStateIcon} ) );
if( !defined($attr{$name}{webCmd}) ) {
$attr{$name}{webCmd} = 'rgb:rgb ff0000:rgb 00ff00:rgb 0000ff:ct 490:ct 380:ct 270:ct 160:effect:on:off';
$attr{$name}{webCmd} = 'rgb:rgb ff0000:rgb 00ff00:rgb 0000ff:color 2040:color 2600:color 3700:color 6250:effect:on:off';
#$attr{$name}{webCmd} = 'hue:rgb:rgb ff0000:rgb 00ff00:rgb 0000ff:toggle:on:off';
#$attr{$name}{webCmd} = 'ct:ct 490:ct 380:ct 270:ct 160:toggle:on:off';
#$attr{$name}{webCmd} = 'color 2040:color 2600:color 3700:color 6250:toggle:on:off';
#$attr{$name}{webCmd} = 'pct:toggle:on:off';
#$attr{$name}{webCmd} = 'toggle:on:off';
}