2
0
mirror of https://github.com/fhem/fhem-mirror.git synced 2025-03-10 03:06:37 +00:00

10_MQTT2_DEVICE.pm: enhance zigbee2mqtt_devStateIcon255 (Forum #95581)

git-svn-id: https://svn.fhem.de/fhem/trunk@19260 2b470e98-0d58-463d-a4d8-8e2adae1ed80
This commit is contained in:
rudolfkoenig 2019-04-25 07:33:00 +00:00
parent 24e2108176
commit fef8f6a079

View File

@ -709,13 +709,33 @@ zigbee2mqtt_RGB2JSON($)
} }
sub sub
zigbee2mqtt_devStateIcon255($) zigbee2mqtt_devStateIcon255($;$$)
{ {
my ($name) = @_; my ($name, $rgbReadingName, $useSetExtension) = @_;
return ".*:off:toggle" if(lc(ReadingsVal($name,"state","ON")) eq "off" );
my $pct = ReadingsNum($name,"brightness","255"); my $too = $defs{$name}->{TIMED_OnOff};
my $s = $pct > 253 ? "on" : sprintf("dim%02d%%",int((1+int($pct/18))*6.25)); $useSetExtension = 0 if(!$too);
return ".*:$s:off"; my $state = lc(ReadingsVal($name,"state","on"));
if(!$useSetExtension && $state =~ m/off$/) { # set_off or off
return ".*:off:toggle";
}
my $pct = ReadingsNum($name, "brightness", 255);
my $s = "on";
if($useSetExtension && $too->{CMD} =~ m/on-|off-|blink/s) {
$s = $too->{CMD} =~ m/on-/s ? "on-for-timer" :
$too->{CMD} =~ m/off-/s ? "off-for-timer" :
$state =~ m/off-/s ? "off-for-timer" : "light_toggle";
} elsif ($pct < 254) {
$s = sprintf("dim%02d%%", int((1+int($pct/18))*6.25));
}
my $rgb = ReadingsVal($name, $rgbReadingName, "FFFFFF");
$s .= "@#$rgb" if($rgb ne "FFFFFF");
Log 1, $s;
return ".*:$s:toggle";
} }
1; 1;