Hallo zusammen,
ich habe eine ReadingsGroup für meine Homematic Wandthermostate (HM-TC-IT-WM-W-EU) und Homematic Heizkörperthermostate (HM-CC-RT-DN).
Jetzt im Sommer möchte ich alle Thermostate auf "ON" stellen damit die Mechanik entlastet wird, Problem dabei ist allerdings, dass mein LogFile dann mit folgender Fehlermeldung zugestopft wird:
PERL WARNING: Argument "on" isn't numeric in subtraction (-) at (eval 31732378) line 3.
Hier das List meiner ReadingsGroup:
Internals: 
   CFGFN      ./FHEM/haus.cfg 
   DEF        <%sani_heating>,<Soll>,<Soll neu>,<Ist>,<Ventil / RH>,<Modus>,<Batterie> 
WT.Wohnzimmer_Climate:desired-temp,<sollsetz>,measured-temp,humidity,controlMode,batteryLevel@WT.Wohnzimmer 
HKT.Wohnzimmer_Couch_Clima:desired-temp,<>,measured-temp,ValvePosition,controlMode,batteryLevel@HKT.Wohnzimmer_Couch 
HKT.Wohnzimmer_Essbereich_Clima:desired-temp,<>,measured-temp,ValvePosition,controlMode,batteryLevel@HKT.Wohnzimmer_Essbereich 
HKT.Wohnzimmer_Kamin_Clima:desired-temp,<>,measured-temp,ValvePosition,controlMode,batteryLevel@HKT.Wohnzimmer_Kamin 
<>,<>,<>,<>,<>,<>,<> 
WT.Schlafzimmer_Climate:desired-temp,<sollsetz>,measured-temp,humidity,controlMode,batteryLevel@WT.Schlafzimmer 
HKT.Schlafzimmer_Clima:desired-temp,<>,measured-temp,ValvePosition,controlMode,batteryLevel@HKT.Schlafzimmer 
<>,<>,<>,<>,<>,<>,<> 
WT.Buero_Climate:desired-temp,<sollsetz>,measured-temp,humidity,controlMode,batteryLevel@WT.Buero 
HKT.Buero_Clima:desired-temp,<>,measured-temp,ValvePosition,controlMode,batteryLevel@HKT.Buero 
<>,<>,<>,<>,<>,<>,<> 
WT.Bad_Climate:desired-temp,<sollsetz>,measured-temp,humidity,controlMode,batteryLevel@WT.Bad 
HKT.Bad_Clima:desired-temp,<>,measured-temp,ValvePosition,controlMode,batteryLevel@HKT.Bad 
<>,<>,<>,<>,<>,<>,<> 
HKT.Gaesteklo_Clima:desired-temp,<sollsetz>,measured-temp,ValvePosition,controlMode,batteryLevel@HKT.Gaesteklo 
<>,<>,<>,<>,<>,<>,<> 
HKT.Kinderzimmer_Clima:desired-temp,<sollsetz>,measured-temp,ValvePosition,controlMode,batteryLevel@HKT.Kinderzimmer 
   NAME       heatingInfo 
   NR         440 
   NTFY_ORDER 50-heatingInfo 
   STATE      Initialized 
   TYPE       readingsGroup 
   mayBeVisible 1 
   Content: 
     HKT.Bad_Clima 1 
     HKT.Buero_Clima 1 
     HKT.Gaesteklo_Clima 1 
     HKT.Kinderzimmer_Clima 1 
     HKT.Schlafzimmer_Clima 1 
     HKT.Wohnzimmer_Couch_Clima 1 
     HKT.Wohnzimmer_Essbereich_Clima 1 
     HKT.Wohnzimmer_Kamin_Clima 1 
     WT.Bad_Climate 1 
     WT.Buero_Climate 1 
     WT.Schlafzimmer_Climate 1 
     WT.Wohnzimmer_Climate 1 
   Content2: 
     HKT.Bad    1 
     HKT.Buero  1 
     HKT.Gaesteklo 1 
     HKT.Kinderzimmer 1 
     HKT.Schlafzimmer 1 
     HKT.Wohnzimmer_Couch 1 
     HKT.Wohnzimmer_Essbereich 1 
     HKT.Wohnzimmer_Kamin 1 
     WT.Bad     1 
     WT.Buero   1 
     WT.Schlafzimmer 1 
     WT.Wohnzimmer 1 
   DEVICES: 
     ARRAY(0x5ac7368) 
     ARRAY(0x62dc508) 
     ARRAY(0x6483418) 
     ARRAY(0x652e808) 
     ARRAY(0x6650e38) 
     ARRAY(0x682c790) 
     ARRAY(0x61cd828) 
     ARRAY(0x68c1778) 
     ARRAY(0x6731a38) 
     ARRAY(0x6802030) 
     ARRAY(0x644aba0) 
     ARRAY(0x6315900) 
     ARRAY(0x62edb58) 
     ARRAY(0x66abf98) 
     ARRAY(0x61c1d50) 
     ARRAY(0x590e5a8) 
     ARRAY(0x622e9c8) 
     ARRAY(0x6814f70) 
   DEVICES2: 
     ARRAY(0x5ac7368) 
     ARRAY(0x62dc508) 
     ARRAY(0x6483418) 
     ARRAY(0x652e808) 
     ARRAY(0x6650e38) 
     ARRAY(0x682c790) 
     ARRAY(0x61cd828) 
     ARRAY(0x68c1778) 
     ARRAY(0x6731a38) 
     ARRAY(0x6802030) 
     ARRAY(0x644aba0) 
     ARRAY(0x6315900) 
     ARRAY(0x62edb58) 
     ARRAY(0x66abf98) 
     ARRAY(0x61c1d50) 
     ARRAY(0x590e5a8) 
     ARRAY(0x622e9c8) 
     ARRAY(0x6814f70) 
     ARRAY(0x620bb88) 
     ARRAY(0x664f9a0) 
     ARRAY(0x5a78068) 
     ARRAY(0x5b18750) 
     ARRAY(0x68edc68) 
     ARRAY(0x6455520) 
     ARRAY(0x54c0498) 
     ARRAY(0x64d7908) 
     ARRAY(0x66af640) 
     ARRAY(0x620b8a0) 
     ARRAY(0x663cce8) 
     ARRAY(0x4eb5490) 
   Fhem: 
     lastDefChange 567 
     last_update 1496904843.6195 
   Helper: 
     DEF 
     valueFormat {if($READING eq "ValvePosition" && $VALUE ne "0"){$VALUE = int($VALUE/10)*10} 
elsif($READING eq "batteryLevel"){if($VALUE>=3){$VALUE=100} 
elsif($VALUE>=2.7){$VALUE=75}elsif($VALUE>=2.5){$VALUE=50}elsif($VALUE>=2.2){$VALUE=25} 
else{$VALUE=0}}} 
     valueStyle {if($READING eq "measured-temp") 
{my $t=$VALUE;;my $d=ReadingsVal($DEVICE,'desired-temp',0);; 
if($t-$d>=1){'style="color:rgb(251,63,11);;"'}elsif($t-$d<=-1){'style="color:rgb(79,58,251);;"'} 
else{'style="color:rgb(12,251,12);;"'}}} 
     valueSuffix { 
'desired-temp' => '{ return "" if( $VALUE eq "off");;return "" if( $VALUE eq "on");; return " °C";;}', 
'measured-temp'=>' °C', 
'ValvePosition'=>" (".ReadingsVal($DEVICE,$READING,0)." %)", 
'humidity'=>" ".ReadingsVal($DEVICE,$READING,0)." % RH", 
'batteryLevel'=>" (".ReadingsVal($DEVICE,$READING,0)." V)"} 
     Cellstyle: 
       r:1        style="font-weight:bold;;font-size:16px" 
       r:10,c:0   style="font-weight:bold" 
       r:13,c:0   style="font-weight:bold" 
       r:16,c:0   style="font-weight:bold" 
       r:18,c:0   style="font-weight:bold" 
       r:2,c:0    style="font-weight:bold" 
       r:7,c:0    style="font-weight:bold" 
     Commands: 
       controlMode.auto set %DEVICE controlMode manual 
       controlMode.manual set %DEVICE controlMode auto 
       heatingInfo.sollsetz desired-temp:5.0,6.0,10.0,12.0,15.0,16.0,17.0,18.0,19.0,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,25.0,on,off 
     Mapping: 
       HKT.Bad_Clima Regler 
       HKT.Buero_Clima Regler 
       HKT.Gaesteklo_Clima Gästeklo 
       HKT.Kinderzimmer_Clima Kinderzimmer 
       HKT.Schlafzimmer_Clima Regler 
       HKT.Wohnzimmer_Couch_Clima ReglerCouch 
       HKT.Wohnzimmer_Essbereich_Clima ReglerEsszimmer 
       HKT.Wohnzimmer_Kamin_Clima ReglerKamin 
       WT.Bad_Climate Bad 
       WT.Buero_Climate Büro 
       WT.Schlafzimmer_Climate Schlafzimmer 
       WT.Wohnzimmer_Climate Wohnzimmer 
     Positions: 
       HKT.Bad.batteryLevel 14:6 
       HKT.Bad_Clima.ValvePosition 14:4 
       HKT.Bad_Clima.controlMode 14:5 
       HKT.Bad_Clima.desired-temp 14:1 
       HKT.Bad_Clima.measured-temp 14:3 
       HKT.Buero.batteryLevel 11:6 
       HKT.Buero_Clima.ValvePosition 11:4 
       HKT.Buero_Clima.controlMode 11:5 
       HKT.Buero_Clima.desired-temp 11:1 
       HKT.Buero_Clima.measured-temp 11:3 
       HKT.Gaesteklo.batteryLevel 16:6 
       HKT.Gaesteklo_Clima.ValvePosition 16:4 
       HKT.Gaesteklo_Clima.controlMode 16:5 
       HKT.Gaesteklo_Clima.desired-temp 16:1 
       HKT.Gaesteklo_Clima.measured-temp 16:3 
       HKT.Kinderzimmer.batteryLevel 18:6 
       HKT.Kinderzimmer_Clima.ValvePosition 18:4 
       HKT.Kinderzimmer_Clima.controlMode 18:5 
       HKT.Kinderzimmer_Clima.desired-temp 18:1 
       HKT.Kinderzimmer_Clima.measured-temp 18:3 
       HKT.Schlafzimmer.batteryLevel 8:6 
       HKT.Schlafzimmer_Clima.ValvePosition 8:4 
       HKT.Schlafzimmer_Clima.controlMode 8:5 
       HKT.Schlafzimmer_Clima.desired-temp 8:1 
       HKT.Schlafzimmer_Clima.measured-temp 8:3 
       HKT.Wohnzimmer_Couch.batteryLevel 3:6 
       HKT.Wohnzimmer_Couch_Clima.ValvePosition 3:4 
       HKT.Wohnzimmer_Couch_Clima.controlMode 3:5 
       HKT.Wohnzimmer_Couch_Clima.desired-temp 3:1 
       HKT.Wohnzimmer_Couch_Clima.measured-temp 3:3 
       HKT.Wohnzimmer_Essbereich.batteryLevel 4:6 
       HKT.Wohnzimmer_Essbereich_Clima.ValvePosition 4:4 
       HKT.Wohnzimmer_Essbereich_Clima.controlMode 4:5 
       HKT.Wohnzimmer_Essbereich_Clima.desired-temp 4:1 
       HKT.Wohnzimmer_Essbereich_Clima.measured-temp 4:3 
       HKT.Wohnzimmer_Kamin.batteryLevel 5:6 
       HKT.Wohnzimmer_Kamin_Clima.ValvePosition 5:4 
       HKT.Wohnzimmer_Kamin_Clima.controlMode 5:5 
       HKT.Wohnzimmer_Kamin_Clima.desired-temp 5:1 
       HKT.Wohnzimmer_Kamin_Clima.measured-temp 5:3 
       WT.Bad.batteryLevel 13:6 
       WT.Bad_Climate.controlMode 13:5 
       WT.Bad_Climate.desired-temp 13:1 
       WT.Bad_Climate.humidity 13:4 
       WT.Bad_Climate.measured-temp 13:3 
       WT.Buero.batteryLevel 10:6 
       WT.Buero_Climate.controlMode 10:5 
       WT.Buero_Climate.desired-temp 10:1 
       WT.Buero_Climate.humidity 10:4 
       WT.Buero_Climate.measured-temp 10:3 
       WT.Schlafzimmer.batteryLevel 7:6 
       WT.Schlafzimmer_Climate.controlMode 7:5 
       WT.Schlafzimmer_Climate.desired-temp 7:1 
       WT.Schlafzimmer_Climate.humidity 7:4 
       WT.Schlafzimmer_Climate.measured-temp 7:3 
       WT.Wohnzimmer.batteryLevel 2:6 
       WT.Wohnzimmer_Climate.controlMode 2:5 
       WT.Wohnzimmer_Climate.desired-temp 2:1 
       WT.Wohnzimmer_Climate.humidity 2:4 
       WT.Wohnzimmer_Climate.measured-temp 2:3 
     recalc: 
       undef 
       ARRAY(0x66552f8) 
       undef 
       ARRAY(0x6736608) 
     Valueicon: 
       ValvePosition.0 sani_heating_level_0@002AE0 
       ValvePosition.10 sani_heating_level_10@F8D53D 
       ValvePosition.100 sani_heating_level_100@E50005 
       ValvePosition.20 sani_heating_level_20@FF9341 
       ValvePosition.30 sani_heating_level_30@F17F3F 
       ValvePosition.40 sani_heating_level_40@E46C3C 
       ValvePosition.50 sani_heating_level_50@DE3B3A 
       ValvePosition.60 sani_heating_level_60@A30D2D 
       ValvePosition.70 sani_heating_level_70@B40A23 
       ValvePosition.80 sani_heating_level_80@C40619 
       ValvePosition.90 sani_heating_level_90@D4030F 
       batteryLevel.0 measure_battery_0@E50005 
       batteryLevel.100 measure_battery_100@0CFB0C 
       batteryLevel.25 measure_battery_25@FB5909 
       batteryLevel.50 measure_battery_50@F5FF10 
       batteryLevel.75 measure_battery_75@42BC0A 
       controlMode.auto sani_heating_automatic@FFC13A 
       controlMode.boost sani_heating_boost@FB0C02 
       controlMode.manual sani_heating_manual@795CFF 
       controlMode.set_auto hourglass 
       controlMode.set_boost hourglass 
       controlMode.set_manual hourglass 
       humidity   humidity@6FD9FB 
     Values: 
       formated: 
         undef 
         ARRAY(0x675b9b8) 
         undef 
         ARRAY(0x64bb720) 
         ARRAY(0x6838e00) 
         ARRAY(0x5cfc570) 
         ARRAY(0x68dfe78) 
       orig: 
         undef 
         ARRAY(0x6518c98) 
         undef 
         ARRAY(0x6346798) 
         ARRAY(0x657c600) 
         ARRAY(0x5a6fd60) 
         ARRAY(0x68c96d8) 
       prefixsuffix: 
         undef 
         ARRAY(0x5de5a88) 
         undef 
         ARRAY(0x63296b0) 
         ARRAY(0x58d4568) 
         ARRAY(0x5c90098) 
         ARRAY(0x21bef10) 
Attributes: 
   alias      Heizung 
   cellStyle  { "r:1"=>'style="font-weight:bold;;font-size:16px"',"r:2,c:0"=>'style="font-weight:bold"', 
"r:7,c:0"=>'style="font-weight:bold"',"r:10,c:0"=>'style="font-weight:bold"', 
"r:13,c:0"=>'style="font-weight:bold"',"r:16,c:0"=>'style="font-weight:bold"',"r:18,c:0"=>'style="font-weight:bold"'} 
   commands   { 
'heatingInfo.sollsetz'=>'desired-temp:5.0,6.0,10.0,12.0,15.0,16.0,17.0,18.0,19.0,20.0,20.5,21.0,21.5,22.0,22.5,23.0,23.5,24.0,25.0,on,off', 
"controlMode.manual"=>"set %DEVICE controlMode auto","controlMode.auto"=>"set %DEVICE controlMode manual",} 
   group      Heizung 
   mapping    {'WT.Bad_Climate'=>"Bad",'HKT.Bad_Clima'=>"Regler", 
'WT.Schlafzimmer_Climate'=>"Schlafzimmer",'HKT.Schlafzimmer_Clima'=>"Regler", 
'WT.Buero_Climate'=>"Büro",'HKT.Buero_Clima'=>"Regler", 
'WT.Wohnzimmer_Climate'=>"Wohnzimmer",'HKT.Wohnzimmer_Couch_Clima'=>"ReglerCouch",'HKT.Wohnzimmer_Essbereich_Clima'=>"ReglerEsszimmer",'HKT.Wohnzimmer_Kamin_Clima'=>"ReglerKamin", 
'HKT.Gaesteklo_Clima'=>"Gästeklo",'HKT.Kinderzimmer_Clima'=>"Kinderzimmer"} 
   room       1.0_Haus 
   valueFormat {if($READING eq "ValvePosition" && $VALUE ne "0"){$VALUE = int($VALUE/10)*10} 
elsif($READING eq "batteryLevel"){if($VALUE>=3){$VALUE=100} 
elsif($VALUE>=2.7){$VALUE=75}elsif($VALUE>=2.5){$VALUE=50}elsif($VALUE>=2.2){$VALUE=25} 
else{$VALUE=0}}} 
   valueIcon  {'controlMode.manual' => 'sani_heating_manual@795CFF', 
'controlMode.auto' => 'sani_heating_automatic@FFC13A', 'controlMode.boost' => 'sani_heating_boost@FB0C02', 
'humidity'=>'humidity@6FD9FB', 
'ValvePosition.0' => 'sani_heating_level_0@002AE0', 
'ValvePosition.10' => 'sani_heating_level_10@F8D53D','ValvePosition.20' => 'sani_heating_level_20@FF9341', 
'ValvePosition.30' => 'sani_heating_level_30@F17F3F','ValvePosition.40' => 'sani_heating_level_40@E46C3C', 
'ValvePosition.50' => 'sani_heating_level_50@DE3B3A','ValvePosition.60' => 'sani_heating_level_60@A30D2D', 
'ValvePosition.70' => 'sani_heating_level_70@B40A23','ValvePosition.80' => 'sani_heating_level_80@C40619', 
'ValvePosition.90' => 'sani_heating_level_90@D4030F','ValvePosition.100' => 'sani_heating_level_100@E50005', 
'batteryLevel.100'=>'measure_battery_100@0CFB0C','batteryLevel.75'=>'measure_battery_75@42BC0A', 
'batteryLevel.50'=>'measure_battery_50@F5FF10','batteryLevel.25'=>'measure_battery_25@FB5909', 
'batteryLevel.0'=>'measure_battery_0@E50005','controlMode.set_boost' => 'hourglass', 
'controlMode.set_auto' => 'hourglass','controlMode.set_manual' => 'hourglass'} 
   valueStyle {if($READING eq "measured-temp") 
{my $t=$VALUE;;my $d=ReadingsVal($DEVICE,'desired-temp',0);; 
if($t-$d>=1){'style="color:rgb(251,63,11);;"'}elsif($t-$d<=-1){'style="color:rgb(79,58,251);;"'} 
else{'style="color:rgb(12,251,12);;"'}}} 
   valueSuffix { 
'desired-temp' => '{ return "" if( $VALUE eq "off");;return "" if( $VALUE eq "on");; return " °C";;}', 
'measured-temp'=>' °C', 
'ValvePosition'=>" (".ReadingsVal($DEVICE,$READING,0)." %)", 
'humidity'=>" ".ReadingsVal($DEVICE,$READING,0)." % RH", 
'batteryLevel'=>" (".ReadingsVal($DEVICE,$READING,0)." V)"} 
Kann mir jemand helfen wie und an welcher Stelle ich etwas abändern muss damit es mir diese Fehlermeldung nicht mehr bringt.
Ein Disable der ReadingsGroup bringt auch nix, die Meldung kommt trotzdem.
Gruß Cobra
			
			
			
				Ich würde die RT´s auf "manuell 5°C" stellen, entlastet die Mechanik auch und du hast einen numerischen Wert in der ReadingsGroup und somit keine Meldung mehr im Log.
VG
Frank
			
			
			
				Hallo Frank,
das ist ja das Problem, wenn man sie auf 5 Grad einstellt bewegen Sie sich quasi nie und versuchen immer das Ventil voll reinzudrücken da es ja nie kälter wird im Sommer. Genau das wäre ja die Belastung die ich vermeiden wollte.
Ich habe das so auch die letzten 2 Jahre gemacht mit den 5 Grad, irgendwo dann aber gelesen dass das nicht so gut sein soll auf Dauer.
Gruß Cobra
			
			
			
				Dann mach sie doch voll auf, indem du die Teile auf manuell größer 35 oder so stellst  ;)
VG
Frank
			
			
			
				Hey Frank,
30 ist das maximale, das werd ich jetzt auch mal so einstellen da es in der Regel ja bei mir nicht passieren soll dass es wärmer wird, ist ne gute Idee :-)
Manchmal hilft es einfach nen Schubs in die richtige Richtung zu bekommen  :)
Löst zwar nicht die Fehlermeldung wenn man auf "On" stellt, aber löst mein Problem :-)
Vielen Dank
Gruß Cobra
Edit: Falls noch jemandem einfällt wie man das lösen kann mit dem "On" kann er es gerne hier für andere Nutzer schreiben 😄
Gibt ja auch welche die in Dachwohnung leben und auch mal mehr als 30 Grad in der Bude ertragen müssen.
			
			
			
				ZitatLöst zwar nicht die Fehlermeldung wenn man auf "On" stellt, aber ist mein Problem :-)
Da könnte nur Andre was machen, vlt. nicht numerische Werte um mappen off = 0 und on = 100 oder sowas in der Richtung.
VG
Frank
			
 
			
			
				Zu schnell getippt  ;D
Sollte heißen:
ZitatLöst zwar nicht die Fehlermeldung wenn man auf "On" stellt, aber löst mein Problem :-)
			
				Zitat von: Cobra am 08 Juni 2017, 09:44:16
Löst zwar nicht die Fehlermeldung wenn man auf "On" stellt, aber löst mein Problem :-)
Wenn ich die Regler auf 30 stelle, wird beim Öffnen der Fenster das Ventil jedes mal geschlossen und beim Schließen wieder geöffnet. Das kostet Batterie. Deshalb stehen die Regler bei mir auf "on". Gibt es keine Möglichkeit den Code zu ändern?
Der Fehler kommt ja wohl aus dem ValueStyle des Readingsgroup wenn desired-temp = "on" ist:
{if($READING eq "measured-temp")
{my $t=$VALUE;;my $d=ReadingsVal($DEVICE,'desired-temp',0);;
if($t-$d>=1.5){'style="color:rgb(251,63,11);;"'}elsif($t-$d<=-1.5){'style="color:rgb(79,58,251);;"'}
else{'style="color:rgb(12,251,12);;"'}}}Gruss
Enno
			
 
			
			
				Zitat von: enno am 19 Juni 2017, 15:57:52
Der Fehler kommt ja wohl aus dem ValueStyle des Readingsgroup wenn desired-temp = "on" ist:
anbei die Lösung:
{if($READING eq "measured-temp") {my $t=$VALUE; my $d=ReadingsVal($DEVICE,'desired-temp',0); if($d eq "on" or $d eq "off"){}elsif($t-$d>=1){'style="color:rgb(251,63,11);"'}elsif($t-$d<=-1){'style="color:rgb(79,58,251);"'} else{'style="color:rgb(12,251,12);"'}}}Grüße
1of16
PS: ich hatte mich erst mit einem Schreibfehler dumm angestellt ;)
			
 
			
			
				@1of16:
Super vielen Dank für die Unterstützung. Bei mir stehen die Ventile auf "on" und die Fehlermeldung ist weg. Dann sehe ich mal zu, dass das ins Wiki kommt.
Schliesse mich Cobra an. Fuer mich jetzt auch "gelöst" :)
Gruss
Enno