So, Dank deiner tollen Hilfe habe ich nun alles fertig.
Das Beispiel mit den Gradzahlen hat nicht funktioniert. Die Gradzahlen lassen sich nicht anklicken und werden auch wie die Überschriften eingefärbt, also in meinem Fall gelb.
Ich habe mich somit erst einmal für die Einstellpfeile entschieden, die den Wert schrittweise ändern.
Eine coole Sache wäre noch, wenn der geklickte Wert in der jeweiligen Icon-Überschrift angezeigt werden könnte. Also meine Solltemperatur ist 17, ich klicke einmal auf erhöhen und in der Überschrift erscheint dann sofort 18, egal ob geschaltet oder nicht. Das gäbe ein tolles Feedback, wenn man einen Zitterfinger hat oder nicht mehr in der Lage ist, die Klicks zu zählen. :-)
Unten habe ich vom Istzustand wieder ein Bild und hier der zugehörige Code:
define Heizungswerte2 readingsGroup define Heizungswerte2 readingsGroup <%sani_heating>, < >,<Act>,<Soll>,<Ist> TYPE=FHT:actuator,desired-temp,measured-temp,<{myUtils_HeizungUpDown($DEVICE,"up")}@desired-temp>,<{myUtils_HeizungUpDown($DEVICE,"down")}@desired-temp>,window,battery
attr Heizungswerte2 group Heizungswerte
attr Heizungswerte2 nameStyle style="color:yellow;;font-weight:bold"
attr Heizungswerte2 room FHT
attr Heizungswerte2 valueIcon {'battery.ok' => 'batterie@lightgreen', 'battery.low' => 'batterie@red', 'window.closed' => 'fts_window_1w@lightgreen', 'window.open' => 'fts_window_1w_open@red'}
und hier nochmal der Code aus myUtils
#Heizung regeln in Readingsgroup
sub
myUtils_HeizungUpDown($$)
{
my($DEVICE,$CMD) = @_;
my $icon = $CMD;
my $VALUE = ReadingsVal($DEVICE,"desired-temp","20" );
my $link;
if( $CMD eq "up" ) {
$icon = "control_arrow_up";
$VALUE += 1;
$link = "set $DEVICE desired-temp $VALUE" if( $VALUE <= 24 );
} elsif( $CMD eq "down" ) {
$icon = "control_arrow_down";
$VALUE -= 1;
$link = "set $DEVICE desired-temp $VALUE" if( $VALUE >= 18 );
}
my $ret = "%$icon";
$ret .= "%$link" if( $link );
return $ret;
}