FHEM Forum

FHEM => Frontends => FHEMWEB => Thema gestartet von: Harry47 am 09 Dezember 2018, 12:33:57

Titel: Slider für desired-temp eines Comet Dect Thermostaten für Status "on" zeigt 8°C
Beitrag von: Harry47 am 09 Dezember 2018, 12:33:57
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
###########################

Titel: Antw:Slider für desired-temp eines Comet Dect Thermostaten für Status "on" zeigt 8°C
Beitrag von: rudolfkoenig am 09 Dezember 2018, 17:59:33
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.