mirror of
https://github.com/fhem/fhem-mirror.git
synced 2025-05-04 22:19:38 +00:00
added delayedUpdate attribute and delayedUpdate and immediateUpdate commands
git-svn-id: https://svn.fhem.de/fhem/trunk@4352 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
parent
bb4888405a
commit
95d6d6acde
@ -59,6 +59,7 @@ sub HUEDevice_Initialize($)
|
|||||||
$hash->{SetFn} = "HUEDevice_Set";
|
$hash->{SetFn} = "HUEDevice_Set";
|
||||||
$hash->{GetFn} = "HUEDevice_Get";
|
$hash->{GetFn} = "HUEDevice_Get";
|
||||||
$hash->{AttrList} = "IODev ".
|
$hash->{AttrList} = "IODev ".
|
||||||
|
"delayedUpdate:1 ".
|
||||||
"color-icons:1,2 ".
|
"color-icons:1,2 ".
|
||||||
"model:".join(",", sort keys %hueModels)." ".
|
"model:".join(",", sort keys %hueModels)." ".
|
||||||
"subType:colordimmer,dimmer,switch ".
|
"subType:colordimmer,dimmer,switch ".
|
||||||
@ -234,6 +235,7 @@ HUEDevice_SetParam($$@)
|
|||||||
$obj->{'bri'} = 0+$bri;
|
$obj->{'bri'} = 0+$bri;
|
||||||
$obj->{'transitiontime'} = 1;
|
$obj->{'transitiontime'} = 1;
|
||||||
#$obj->{'transitiontime'} = $value / 10 if( defined($value) );
|
#$obj->{'transitiontime'} = $value / 10 if( defined($value) );
|
||||||
|
$defs{$name}->{fhem}->{update_timeout} = 0;
|
||||||
} elsif($cmd eq "dimDown") {
|
} elsif($cmd eq "dimDown") {
|
||||||
my $bri = ReadingsVal($name,"bri","0");
|
my $bri = ReadingsVal($name,"bri","0");
|
||||||
$bri -= 25;
|
$bri -= 25;
|
||||||
@ -242,6 +244,7 @@ HUEDevice_SetParam($$@)
|
|||||||
$obj->{'bri'} = 0+$bri;
|
$obj->{'bri'} = 0+$bri;
|
||||||
$obj->{'transitiontime'} = 1;
|
$obj->{'transitiontime'} = 1;
|
||||||
#$obj->{'transitiontime'} = $value / 10 if( defined($value) );
|
#$obj->{'transitiontime'} = $value / 10 if( defined($value) );
|
||||||
|
$defs{$name}->{fhem}->{update_timeout} = 0;
|
||||||
} elsif($cmd eq "ct") {
|
} elsif($cmd eq "ct") {
|
||||||
$obj->{'on'} = JSON::true;
|
$obj->{'on'} = JSON::true;
|
||||||
$obj->{'ct'} = 0+$value;
|
$obj->{'ct'} = 0+$value;
|
||||||
@ -305,6 +308,10 @@ HUEDevice_SetParam($$@)
|
|||||||
$obj->{'effect'} = $value;
|
$obj->{'effect'} = $value;
|
||||||
} elsif( $cmd eq "transitiontime" ) {
|
} elsif( $cmd eq "transitiontime" ) {
|
||||||
$obj->{'transitiontime'} = 0+$value;
|
$obj->{'transitiontime'} = 0+$value;
|
||||||
|
} elsif( $cmd eq "delayedUpdate" ) {
|
||||||
|
$defs{$name}->{fhem}->{update_timeout} = 1;
|
||||||
|
} elsif( $cmd eq "immediateUpdate" ) {
|
||||||
|
$defs{$name}->{fhem}->{update_timeout} = 0;
|
||||||
} else {
|
} else {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -319,6 +326,8 @@ HUEDevice_Set($@)
|
|||||||
|
|
||||||
my %obj;
|
my %obj;
|
||||||
|
|
||||||
|
$defs{$name}->{fhem}->{update_timeout} = AttrVal($name, "delayedUpdate", 0);
|
||||||
|
|
||||||
if( (my $joined = join(" ", @aa)) =~ /:/ ) {
|
if( (my $joined = join(" ", @aa)) =~ /:/ ) {
|
||||||
my @cmds = split(":", $joined);
|
my @cmds = split(":", $joined);
|
||||||
for( my $i = 0; $i <= $#cmds; ++$i ) {
|
for( my $i = 0; $i <= $#cmds; ++$i ) {
|
||||||
@ -349,9 +358,13 @@ HUEDevice_Set($@)
|
|||||||
return undef;
|
return undef;
|
||||||
}
|
}
|
||||||
|
|
||||||
if( !$hash->{fhem}->{group} ) {
|
if( $defs{$name}->{fhem}->{update_timeout}
|
||||||
|
&& !$hash->{fhem}->{group} ) {
|
||||||
RemoveInternalTimer($hash);
|
RemoveInternalTimer($hash);
|
||||||
InternalTimer(gettimeofday()+1, "HUEDevice_GetUpdate", $hash, 1);
|
InternalTimer(gettimeofday()+1, "HUEDevice_GetUpdate", $hash, 1);
|
||||||
|
} else {
|
||||||
|
RemoveInternalTimer($hash);
|
||||||
|
HUEDevice_GetUpdate( $hash );
|
||||||
}
|
}
|
||||||
|
|
||||||
return undef;
|
return undef;
|
||||||
@ -756,6 +769,8 @@ HUEDevice_GetUpdate($)
|
|||||||
<li>transitiontime <time><br>
|
<li>transitiontime <time><br>
|
||||||
set the transitiontime to <time> 1/10s</li>
|
set the transitiontime to <time> 1/10s</li>
|
||||||
<li>rgb <rrggbb></li>
|
<li>rgb <rrggbb></li>
|
||||||
|
<li>delayedUpdate</li>
|
||||||
|
<li>immediateUpdate</li>
|
||||||
<li><a href="#setExtensions"> set extensions</a> are supported.</li>
|
<li><a href="#setExtensions"> set extensions</a> are supported.</li>
|
||||||
<br>
|
<br>
|
||||||
Note:
|
Note:
|
||||||
@ -784,6 +799,9 @@ HUEDevice_GetUpdate($)
|
|||||||
2 -> use lamp color scaled to full brightness as icon color and dim state as icon shape</li>
|
2 -> use lamp color scaled to full brightness as icon color and dim state as icon shape</li>
|
||||||
<li>subType<br>
|
<li>subType<br>
|
||||||
colordimmer, dimmer or switch, default is initialized according to device model.</li>
|
colordimmer, dimmer or switch, default is initialized according to device model.</li>
|
||||||
|
<li>delayedUpdate<br>
|
||||||
|
1 -> the update of the device status after a set command will be delayed for 1 second. usefull if multiple devices will ne switched.
|
||||||
|
</li>
|
||||||
<li>devStateIcon<br>
|
<li>devStateIcon<br>
|
||||||
will be initialized to <code>{(HUEDevice_devStateIcon($name),"toggle")}</code> to show device color as default in room overview.</li>
|
will be initialized to <code>{(HUEDevice_devStateIcon($name),"toggle")}</code> to show device color as default in room overview.</li>
|
||||||
<li>webCmd<br>
|
<li>webCmd<br>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user