Der Slider für desired-temp eines Comet Dect Thermostaten für Status "On" zeigt 8°C im FHEMWEB Frontend. Da der Status "on" und "off" vom Slider nicht unterstützt wird , sollte zumindest der Slider beim Status "on" auf den Maximalwert 28° C angezeigt werden.
Meine Lösung erfolgt im sub "FW_widgetFallbackFn" des Moduls "01_FHEMWEB.pm":
Folgend das komplette sub:
###########################
# Widgets START
sub
FW_widgetFallbackFn()
{
my ($FW_wname, $d, $FW_room, $cmd, $values) = @_;
# webCmd "temp 30" should remain text
# noArg is needed for fhem.cfg.demo / Cinema
return "" if(!$values || $values eq "noArg");
my($reading) = split( ' ', $cmd, 2 );
my $current;
if($cmd eq "desired-temp" || $cmd eq "desiredTemperature") {
$current = ReadingsVal($d, $cmd, 20);
# Changed by Harry47 Start
if($current eq "on") {
$current = '28.0' ;
}
# Changed by Harry47 End
$current =~ s/ .*//; # Cut off Celsius
$current = sprintf("%2.1f", int(2*$current)/2) if($current =~ m/[0-9.-]/);
} else {
$current = ReadingsVal($d, $reading, undef);
if( !defined($current) ) {
$reading = 'state';
$current = Value($d);
}
$current =~ s/$cmd //;
$current = ReplaceEventMap($d, $current, 1);
}
return "<td><div class='fhemWidget' cmd='$cmd' reading='$reading' ".
"dev='$d' arg='$values' current='$current'></div></td>";
}
# Widgets END
###########################
Die Loesung des Problems gehoert nicht in diese Funktion, eigentlich gehoeren die anderen Sonderbehandlungen auch entfernt.
Abgesehen davon waere das nur die halbe Miete, weil man on von 28 nicht unterscheiden kann.
Soweit ich sehe, sendet "set Comet open" den Wert 254, was auf dem Rueckweg zu "on" gewandelt wird (analog: closed/253/off).
Ich habe jetzt den slider in FBDECT fuer 7.5 bis 28.5 spezifiziert, wobei 7.5 off und 28.5 on entspricht.
on/off wird nicht mehr gemeldet, stattdessen kommt 7.5 und 28.5.