Hallo zusammen,
ich habe mir auf Basis des Beispiels aus dem WiKi zu readingsGroup eine Steuerung für meine Heizungsventile gebaut. Ich bin mir nicht sicher, ob es an readingsGroup oder fhemweb liegt, aber seit den letzten Updates (seit ca. Samstag) funktioniert das nur noch bedingt.
Bislang hat alles super funktioniert, sprich durch Anklicken der Plus-/Minus-Symbole konnte ich eine neue, beliebige Temperatur einstellen. Jetzt führt nur noch der erste Klick zu einer Temperaturveränderung, jeder weitere Klick bewirtk weder in der Anzeige etwas noch tatsächlich am Wert der eingestellt werden soll.
Woran kann das liegen, wie kann ich ggf. bei der Fehlersuche helfen?
Beste Güße
Torsten
EDIT: Nach dem heutigen Update (22.04.2017) funktioniert es wieder
List readignsroup:
Internals:
DEF <Heizkörper>,<Modus>,<Ist>,<Soll>,<Wunsch>,<kühler>,< >,<wärmer>,<Ventil>,<Batterie>,<last wake> E4.az.*Heizung:thermostatMode,temperature,setpointTemp,desired-temp,<{myUtils_HeizungUpDown($DEVICE,"down")}@desired-new>,desired-new,<{myUtils_HeizungUpDown($DEVICE,"up")}@desired-new>,reportedState,battery,<{substr(ReadingsTimestamp($DEVICE,"wakeup",""),11,5)}@wakeup> < >,< >,< >,< >,< >,< >,< >,< >,< >,< >,<{rgLink($DEVICE,"konfigurieren","Details")}>
NAME E4.az.HR.Steuerung.grp
NR 93
NTFY_ORDER 50-E4.az.HR.Steuerung.grp
STATE Initialized
TYPE readingsGroup
mayBeVisible 1
Content:
E4.az.HR.Heizung 1
Content2:
DEVICES:
ARRAY(0x411bfd0)
ARRAY(0x4499770)
ARRAY(0x411c5a0)
Readings:
2017-04-13 16:47:37 desired-temp 18.0
Fhem:
lastDefChange 9
last_update 1492420499.087
Helper:
DEF
valueFormat {if ($READING eq "desired-new") {"%.1f"} elsif ($READING eq "desired-temp") {"%.1f"} }
valueStyle {if ($READING eq "desired-new" && $VALUE eq "00") {'style="visibility:hidden"'} elsif ($READING eq "desired-new" && $VALUE ne "00") {'style="visibility:visible"'} }
Cellstyle:
r:1 style="font-weight:bold;color:grey;text-align:right;;font-size:14px"
r:1,c:1 style="font-weight:bold;color:grey;text-align:left;;font-size:14px"
r:2 style="font-weight:normal;text-align:right;font-size:14px"
Positions:
E4.az.HR.Heizung.battery 2:9
E4.az.HR.Heizung.desired-new 2:6
E4.az.HR.Heizung.desired-temp 2:4
E4.az.HR.Heizung.reportedState 2:8
E4.az.HR.Heizung.setpointTemp 2:3
E4.az.HR.Heizung.temperature 2:2
E4.az.HR.Heizung.thermostatMode 2:1
Valuesuffix:
desired-new °C
desired-temp °C
reportedState %
setpointTemp °C
temperature °C
Values:
formated:
undef
ARRAY(0x41271e0)
ARRAY(0x43dd7b0)
ARRAY(0x3ecf168)
ARRAY(0x43d25e0)
undef
ARRAY(0x4327f80)
undef
ARRAY(0x3f29750)
ARRAY(0x4314ed8)
orig:
undef
ARRAY(0x4573450)
ARRAY(0x4478828)
ARRAY(0x41434a8)
ARRAY(0x29593a8)
undef
ARRAY(0x1d21e10)
undef
ARRAY(0x43075f8)
ARRAY(0x411afa8)
prefixsuffix:
undef
ARRAY(0x40d6ee0)
ARRAY(0x4143478)
ARRAY(0x4307c88)
ARRAY(0x448f6e8)
undef
ARRAY(0x44896c8)
undef
ARRAY(0x4318e00)
ARRAY(0x4330188)
Attributes:
alias Heizungsteuerung
cellStyle {"r:1,c:1"=>'style="font-weight:bold;color:grey;text-align:left;;font-size:14px"', "r:1"=>'style="font-weight:bold;color:grey;text-align:right;;font-size:14px"',"r:2"=>'style="font-weight:normal;text-align:right;font-size:14px"'}
group Heizungssteuerung
noheading 1
room Arbeitszimmer
sortColumn 0
sortby 1
style style="border:0px;background:none;box-shadow:none"
valueFormat {if ($READING eq "desired-new") {"%.1f"} elsif ($READING eq "desired-temp") {"%.1f"} }
valueStyle {if ($READING eq "desired-new" && $VALUE eq "00") {'style="visibility:hidden"'} elsif ($READING eq "desired-new" && $VALUE ne "00") {'style="visibility:visible"'} }
valueSuffix { setpointTemp=>" °C",temperature=>" °C",reportedState=>" %",'desired-temp'=>" °C",'desired-new'=>" °C" }
Funktion aus myUtils:
sub
myUtils_HeizungUpDown($$)
{
my($DEVICE,$CMD) = @_;
my $icon = $CMD;
my $VALUE = ReadingsVal($DEVICE,"desired-new","20" );
# Log 1, "desired-new ".$VALUE;
$VALUE = ReadingsVal($DEVICE,"desired-temp","20" ) if( !$VALUE || $VALUE == 0 );
# Log 1, "desired-temp ".$VALUE;
my $link;
if( $CMD eq "up" ) {
# $icon = "control_arrow_upward";
$icon = "control_plus";
$VALUE += 0.5;
if( $VALUE <= 25 ) {
$icon .= "\@red";
$link = "setreading $DEVICE desired-new $VALUE";
# Log 1, "desired-new + ".$VALUE;
}
} elsif( $CMD eq "down" ) {
# $icon = "control_arrow_downward";
$icon = "control_minus";
$VALUE -= 0.5;
if( $VALUE >= 18 ) {
$icon .= "\@blue";
$link = "setreading $DEVICE desired-new $VALUE";
# Log 1, "desired-new - ".$VALUE;
}
}
my $notify = "notifyHeizungUpDown";
if( !defined($defs{$notify}) ) {
CommandDefine(undef, "$notify notify .*:desired-new:.* "."{ myUtils_HeizungUpDownNotify(\$NAME,\$EVTPART1); }" );
}
my $ret = "%$icon";
$ret .= "%$link" if( $link );
return $ret;
}
#########################################################
### Timer x Sekunden anlegen um nach Ablauf die ###
### gewählte Temp ins Device zu übertragen ###
#########################################################
sub
myUtils_HeizungUpDownNotify($$)
{
my($DEVICE,$VALUE) = @_;
return if( $VALUE == 0 );
my $at = "triggerHeizungUpDown_$DEVICE";
CommandDelete(undef, $at) if( defined($defs{$at}) );
CommandDefine(undef,
"$at at +00:00:05 "
."{"
."my \$v = ReadingsVal(\"$DEVICE\",\"desired-new\",undef); "
."fhem(\"set $DEVICE desired-temp \$v\") if( \$v ); "
."fhem(\"setreading $DEVICE desired-new 00\");"
."fhem(\"setreading $DEVICE desired-temp \$v\");"
."}"
);
return undef;
}