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