Regelung über Buttons funktioniert nicht mehr [gelöst]

Begonnen von ToKa, 17 April 2017, 11:19:16

Vorheriges Thema - Nächstes Thema

ToKa

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;
}
RaspberryPi3 mit RaZberry2 und Conbee II
Fibaro: FGWPE/F-101 Switch & FIBARO System FGWPE/F Wall Plug Gen5, FGSD002 Smoke Sensor
EUROtronic: SPIRIT Wall Radiator Thermostat Valve Control
Shelly2.5 Rollladenaktoren
Zipato Bulb 2, Osram und InnrLight