Ich möchte in einer readingsGroup eigene Berechnungen über $<operator>[(<zellen>)] in der 99_myUtils.pm durchführen, da es sich um nicht nummerische Werte handelt - leider ohne Erfolg.
Ich bekomme immer folgende Warnungen welche vom Modul "33_readingsGroup.pm" kommen:
2026.09.30 14:33:21 1: PERL WARNING: Array found where operator expected at (eval 61503) line 1, near "rgTest @values"
Meine Funktion "rgTest" in 99_myUtils.pm wird dabei nie aufgerufen.
Zu den Details:
Ich verwende dieses Modul https://wiki.fhem.de/wiki/M%C3%A4hroboter:_Worx_Landroid,_Kress,_Landxcape um meinen Worx Landroid Mähroboter zu steuern bzw. Details auszulesen.
Nun habe ich eine readingsGroup vom Mähzeitplan erstellt und dabei wollte ich die Ende-Zeit über die Funktion "rgTest" berechnen lassen.
Hier die readingsGroup
Internals:
DEF <Tag>,<Kante>,<Start>,<Dauer>,<Ende>
MQTT2_Worx_M700:<Mo>,cfg_sc_d_2_3,cfg_sc_d_2_1,cfg_sc_d_2_2,$rgTest($ROW:3,4)
MQTT2_Worx_M700:<Mo>,cfg_sc_dd_2_3,cfg_sc_dd_2_1,cfg_sc_dd_2_2,$rgTest($ROW:3,4)
MQTT2_Worx_M700:<Di>,cfg_sc_d_3_3,cfg_sc_d_3_1,cfg_sc_d_3_2,$rgTest($ROW:3,4)
MQTT2_Worx_M700:<Di>,cfg_sc_dd_3_3,cfg_sc_dd_3_1,cfg_sc_dd_3_2,$rgTest($ROW:3,4)
MQTT2_Worx_M700:<Mi>,cfg_sc_d_4_3,cfg_sc_d_4_1,cfg_sc_d_4_2,$rgTest($ROW:3,4)
MQTT2_Worx_M700:<Mi>,cfg_sc_dd_4_3,cfg_sc_dd_4_1,cfg_sc_dd_4_2,$rgTest($ROW:3,4)
MQTT2_Worx_M700:<Do>,cfg_sc_d_5_3,cfg_sc_d_5_1,cfg_sc_d_5_2,$rgTest($ROW:3,4)
MQTT2_Worx_M700:<Do>,cfg_sc_dd_5_3,cfg_sc_dd_5_1,cfg_sc_dd_5_2,$rgTest($ROW:3,4)
MQTT2_Worx_M700:<Fr>,cfg_sc_d_6_3,cfg_sc_d_6_1,cfg_sc_d_6_2,$rgTest($ROW:3,4)
MQTT2_Worx_M700:<Fr>,cfg_sc_dd_6_3,cfg_sc_dd_6_1,cfg_sc_dd_6_2,$rgTest($ROW:3,4)
MQTT2_Worx_M700:<Sa>,cfg_sc_d_7_3,cfg_sc_d_7_1,cfg_sc_d_7_2,$rgTest($ROW:3,4)
MQTT2_Worx_M700:<Sa>,cfg_sc_dd_7_3,cfg_sc_dd_7_1,cfg_sc_dd_7_2,$rgTest($ROW:3,4)
MQTT2_Worx_M700:<So>,cfg_sc_d_1_3,cfg_sc_d_1_1,cfg_sc_d_1_2,$rgTest($ROW:3,4)
MQTT2_Worx_M700:<So>,cfg_sc_dd_1_3,cfg_sc_dd_1_1,cfg_sc_dd_1_2,$rgTest($ROW:3,4)
<hr>
MQTT2_Worx_M700:<Korrektur>,<>,<>,mowerTimeCorrection,<>
FUUID 6abcb215-f33f-3e1e-89e6-ca201e41e1faffea
NAME rg_MQTT2_Worx_M700_Zeitplan
NR 958
NTFY_ORDER 50-rg_MQTT2_Worx_M700_Zeitplan
STATE Initialized
TYPE readingsGroup
alwaysTrigger 2
changed 0
eventCount 4
mayBeVisible 1
CONTENT:
MQTT2_Worx_M700 1
CONTENT2:
DEVICES:
ARRAY(0x99e9fb8)
ARRAY(0x9337088)
ARRAY(0x188b978)
ARRAY(0xa6273e0)
ARRAY(0xa62e910)
ARRAY(0x9b83820)
ARRAY(0x9fda570)
ARRAY(0x99df868)
ARRAY(0x9968e40)
ARRAY(0x9eac6a8)
ARRAY(0x99f13b8)
ARRAY(0x95085b0)
ARRAY(0x9a48180)
ARRAY(0x9438f40)
ARRAY(0x9b64c08)
ARRAY(0x9597298)
ARRAY(0x9416c00)
READINGS:
2026-09-30 13:30:56 change 1790767855
fhem:
lastDefChange 26
last_update 1790771603.69034
helper:
DEF
valueFormat {
if( $READING =~ /cfg_sc_[d]+_[1-7]_3/ ) {
$VALUE = ($VALUE == 0) ? "-" : "Ja";
}
}
valueStyle style="padding-right:5px;padding-left:5px;"
cellStyle:
c:1 style="width:80px;text-align:center;"
c:2 style="width:60px;text-align:center;"
c:3 style="width:60px;text-align:center;"
c:4 style="width:60px;text-align:center;"
c:5 style="width:60px;text-align:center;"
r:1,c:1 style="font-size:16px;text-align:center;font-weight:bold;color:white;background-color:grey;"
r:1,c:2 style="font-size:16px;text-align:center;font-weight:bold;color:white;background-color:grey;"
r:1,c:3 style="font-size:16px;text-align:center;font-weight:bold;color:white;background-color:grey;"
r:1,c:4 style="font-size:16px;text-align:center;font-weight:bold;color:white;background-color:grey;"
r:1,c:5 style="font-size:16px;text-align:center;font-weight:bold;color:white;background-color:grey;"
positions:
MQTT2_Worx_M700.cfg_sc_d_1_1 14:3
MQTT2_Worx_M700.cfg_sc_d_1_2 14:4
MQTT2_Worx_M700.cfg_sc_d_1_3 14:2
MQTT2_Worx_M700.cfg_sc_d_2_1 2:3
MQTT2_Worx_M700.cfg_sc_d_2_2 2:4
MQTT2_Worx_M700.cfg_sc_d_2_3 2:2
MQTT2_Worx_M700.cfg_sc_d_3_1 4:3
MQTT2_Worx_M700.cfg_sc_d_3_2 4:4
MQTT2_Worx_M700.cfg_sc_d_3_3 4:2
MQTT2_Worx_M700.cfg_sc_d_4_1 6:3
MQTT2_Worx_M700.cfg_sc_d_4_2 6:4
MQTT2_Worx_M700.cfg_sc_d_4_3 6:2
MQTT2_Worx_M700.cfg_sc_d_5_1 8:3
MQTT2_Worx_M700.cfg_sc_d_5_2 8:4
MQTT2_Worx_M700.cfg_sc_d_5_3 8:2
MQTT2_Worx_M700.cfg_sc_d_6_1 10:3
MQTT2_Worx_M700.cfg_sc_d_6_2 10:4
MQTT2_Worx_M700.cfg_sc_d_6_3 10:2
MQTT2_Worx_M700.cfg_sc_d_7_1 12:3
MQTT2_Worx_M700.cfg_sc_d_7_2 12:4
MQTT2_Worx_M700.cfg_sc_d_7_3 12:2
MQTT2_Worx_M700.cfg_sc_dd_1_1 15:3
MQTT2_Worx_M700.cfg_sc_dd_1_2 15:4
MQTT2_Worx_M700.cfg_sc_dd_1_3 15:2
MQTT2_Worx_M700.cfg_sc_dd_2_1 3:3
MQTT2_Worx_M700.cfg_sc_dd_2_2 3:4
MQTT2_Worx_M700.cfg_sc_dd_2_3 3:2
MQTT2_Worx_M700.cfg_sc_dd_3_1 5:3
MQTT2_Worx_M700.cfg_sc_dd_3_2 5:4
MQTT2_Worx_M700.cfg_sc_dd_3_3 5:2
MQTT2_Worx_M700.cfg_sc_dd_4_1 7:3
MQTT2_Worx_M700.cfg_sc_dd_4_2 7:4
MQTT2_Worx_M700.cfg_sc_dd_4_3 7:2
MQTT2_Worx_M700.cfg_sc_dd_5_1 9:3
MQTT2_Worx_M700.cfg_sc_dd_5_2 9:4
MQTT2_Worx_M700.cfg_sc_dd_5_3 9:2
MQTT2_Worx_M700.cfg_sc_dd_6_1 11:3
MQTT2_Worx_M700.cfg_sc_dd_6_2 11:4
MQTT2_Worx_M700.cfg_sc_dd_6_3 11:2
MQTT2_Worx_M700.cfg_sc_dd_7_1 13:3
MQTT2_Worx_M700.cfg_sc_dd_7_2 13:4
MQTT2_Worx_M700.cfg_sc_dd_7_3 13:2
MQTT2_Worx_M700.mowerTimeCorrection 17:4
recalc:
undef
undef
undef
ARRAY(0x9ace918)
ARRAY(0x9536780)
values:
calc:
undef
undef
undef
undef
undef
ARRAY(0xa61f2f0)
formated:
undef
undef
ARRAY(0x97392f0)
ARRAY(0x9b92050)
ARRAY(0x9520c58)
ARRAY(0x93aa368)
orig:
undef
undef
ARRAY(0x93dc1e0)
ARRAY(0xa031108)
ARRAY(0x953d058)
ARRAY(0x994ff60)
prefixsuffix:
undef
undef
ARRAY(0x99df298)
ARRAY(0x9b93eb8)
ARRAY(0x9d198f0)
ARRAY(0x9ab7470)
Attributes:
alias Worx-Mähzeitplan
alwaysTrigger 2
cellStyle {
"c:1" => 'style="width:80px;text-align:center;"',
"c:2" => 'style="width:60px;text-align:center;"',
"c:3" => 'style="width:60px;text-align:center;"',
"c:4" => 'style="width:60px;text-align:center;"',
"c:5" => 'style="width:60px;text-align:center;"',
"r:1,c:1" => 'style="font-size:16px;text-align:center;font-weight:bold;color:white;background-color:grey;"',
"r:1,c:2" => 'style="font-size:16px;text-align:center;font-weight:bold;color:white;background-color:grey;"',
"r:1,c:3" => 'style="font-size:16px;text-align:center;font-weight:bold;color:white;background-color:grey;"',
"r:1,c:4" => 'style="font-size:16px;text-align:center;font-weight:bold;color:white;background-color:grey;"',
"r:1,c:5" => 'style="font-size:16px;text-align:center;font-weight:bold;color:white;background-color:grey;"',
}
group Worx
nonames 1
room Draussen
sortby 10
style style="font-size:14px;" border=1
valueFormat {
if( $READING =~ /cfg_sc_[d]+_[1-7]_3/ ) {
$VALUE = ($VALUE == 0) ? "-" : "Ja";
}
}
valueStyle style="padding-right:5px;padding-left:5px;"
In der 99_myUtils.pm habe ich für Testzwecke nur folgenden Code hinterlegt:
sub rgTest($) {
return 99;
}
Leider habe ich keine Beispiele hier im Forum dazu gefunden.
Hat das wer von euch in Verwendung wo es funktioniert?
Was mache ich falsch bzw. wo liegt das Problem?
Danke für eure Unterstützung
Robert