Ist es möglich, die Werte eines Readings in einer Readingsgroup umzubenennen?
Beispiel: mein Reading heißt "Status". Das Reading "Status" kann die Werte "discharging", "charging" und "standby" annehmen. Diese Werte des Reading "Status" möchte ich nun durch "Entlandung", "Aufladung" und "Standby" ersetzen (nur Anzeige!).
Mein Versuch mit attr valueFormat
{discharging => "Entladung", charging => "Aufladung", standby => "Standby"}führte zu keiner Veränderung.
Der Ursprung des Readings ist ein Modul (ZendureLocal). Wie kann ich mein Ziel erreichen? Geht das überhaupt? Habe kein passendes Beispiel gefunden.
Ein Userreading ist auch nicht zielführend, damit kann ich ja nur das Reading selbst umbenennen.
Hallo,
so?
{'Status.discharging' => "Entladung", 'Status.charging' => "Aufladung", 'Status.standby' => "Standby"}
Gruß Thomas
Nein, funktioniert leider nicht => Bareword not allowed.
Doppelpunkt statt Punkt zwischen Name und Wert half auch nichts.
Auch ein Versuch mittels dem Attribut mapping brachte nichts.
Durch die ganzen Versuche habe ich jetzt ein neues Problem. Aktuell wird mir das Log vollgemüllt:
2026.05.08 13:13:43 1: PERL WARNING: Argument "charging" isn't numeric in division (/) at (eval 50411691) line 1.Keine Ahnung, wo das jetzt herkommt. Habe alle Versuche gelöscht, kommt trotzdem alle 10s, nur die eval-Zahl ist unterschiedlich.
Was für eine Division ist da gemeint? Wie kann ich die Ursache finden?
ZitatWie kann ich die Ursache finden?
Zeig doch einfach mal ein vollständiges
Copy for forum.fhem.de.
Ist bei deinem Link etwas schief gelaufen?
Stacktrace zeigt:
2026.05.08 13:51:16 1: PERL WARNING: Argument "charging" isn't numeric in division (/) at (eval 50440053) line 1.
2026.05.08 13:51:16 1: stacktrace:
2026.05.08 13:51:16 1: main::__ANON__ called by (eval 50440053) (1)
2026.05.08 13:51:16 1: (eval) called by ./FHEM/33_readingsGroup.pm (357)
2026.05.08 13:51:16 1: main::lookup2 called by ./FHEM/33_readingsGroup.pm (540)
2026.05.08 13:51:16 1: main::readingsGroup_value2html called by ./FHEM/33_readingsGroup.pm (1109)
2026.05.08 13:51:16 1: main::readingsGroup_2html called by ./FHEM/33_readingsGroup.pm (1210)
2026.05.08 13:51:16 1: main::readingsGroup_detailFn called by ./FHEM/01_FHEMWEB.pm (3468)
2026.05.08 13:51:16 1: main::FW_devState called by ./FHEM/95_Dashboard.pm (903)
2026.05.08 13:51:16 1: main::Dashboard_BuildGroup called by ./FHEM/95_Dashboard.pm (802)
2026.05.08 13:51:16 1: main::Dashboard_BuildGroupWidgets called by ./FHEM/95_Dashboard.pm (733)
2026.05.08 13:51:16 1: main::Dashboard_BuildDashboardCenterRow called by ./FHEM/95_Dashboard.pm (676)
2026.05.08 13:51:16 1: main::Dashboard_BuildDashboardTab called by ./FHEM/95_Dashboard.pm (556)
2026.05.08 13:51:16 1: main::Dashboard_SummaryFN called by ./FHEM/95_Dashboard.pm (398)
2026.05.08 13:51:16 1: main::Dashboard_CGI called by ./FHEM/01_FHEMWEB.pm (1196)
2026.05.08 13:51:16 1: main::FW_answerCall called by ./FHEM/01_FHEMWEB.pm (609)
2026.05.08 13:51:16 1: main::FW_Read called by fhem.pl (3985)
2026.05.08 13:51:16 1: main::CallFn called by fhem.pl (786)Sieht man da etwas zur Ursache?
Hier ein List der Readingsgroup, falls du das meintest:
Internals:
CFGFN
DEF SF800pro:<akt_Status:>,p_packState_txt,<>,
SF800pro:<Grid_Ladeleistung:>,p_gridInputPower,<W>,
SF800pro:<Ausgangsleistung:>,p_outputHomePower,<W>,
SF800pro:<OffGrid_Steckdose:>,p_gridOffPower,<W>,
SF800pro:<akt_Kapazität:>,p_electricLevel,<%>,
SF800pro:<min_Zellspannung:>,bat0_minVol,<V>,
SF800pro:<max_Zellspannung:>,bat0_maxVol,<V>,
SF800pro:<Gesamtspannung:>,p_BatVolt,<V>,
SF800pro:<Temperatur:>,p_hyperTmp_C,<°C>,
SF800pro:<MaxSoc:>,p_socSet_pct,<%>,
SF800pro:<MinSoc:>,p_minSoc_pct,<%>,
FUUID 69e4ff00-f33f-1bc4-6a61-7184280bbf2fefd5
NAME Zendure
NR 99897
NTFY_ORDER 50-Zendure
STATE Initialized
TYPE readingsGroup
changed 0
mayBeVisible 1
CONTENT:
SF800pro 1
CONTENT2:
DEVICES:
ARRAY(0x61e5960)
ARRAY(0x6319448)
ARRAY(0x739e958)
ARRAY(0x6ce0d88)
ARRAY(0x5781a98)
ARRAY(0x6afeb30)
ARRAY(0x68b62d0)
ARRAY(0x706f7b0)
ARRAY(0x6825138)
ARRAY(0x695fc70)
ARRAY(0x6125ed8)
fhem:
lastDefChange 427
last_update 1778241076.1235
helper:
DEF
valueFormat {bat0_minVol => $VALUE/100,
bat0_maxVol => $VALUE/100,
p_BatVolt => $VALUE/100,}
valueStyle {if ($READING eq "p_gridInputPower") {'style="color:red;text-align:right"'}
elsif ($READING eq "p_outputHomePower") {'style="color:orange;text-align:right"'}
elsif ($READING eq "p_gridOffPower") {'style="color:orange;text-align:right"'}
elsif ($READING eq "p_electricLevel") {'style="color:white;text-align:right"'}
elsif ($READING eq "bat0_minVol") {'style="color:white;text-align:right"'}
elsif ($READING eq "bat0_maxVol") {'style="color:white;text-align:right"'}
elsif ($READING eq "p_BatVolt") {'style="color:white;text-align:right"'}
elsif ($READING eq "p_hyperTmp_C") {'style="color:white;text-align:right"'}
elsif ($READING eq "p_socSet_pct") {'style="color:white;text-align:right"'}
elsif ($READING eq "p_minSoc_pct") {'style="color:white;text-align:right"'}
elsif ($READING eq "p_packState_txt") {'style="color:white;text-align:right"'}}
positions:
SF800pro.bat0_maxVol 7:2
SF800pro.bat0_minVol 6:2
SF800pro.p_BatVolt 8:2
SF800pro.p_electricLevel 5:2
SF800pro.p_gridInputPower 2:2
SF800pro.p_gridOffPower 4:2
SF800pro.p_hyperTmp_C 9:2
SF800pro.p_minSoc_pct 11:2
SF800pro.p_outputHomePower 3:2
SF800pro.p_packState_txt 1:2
SF800pro.p_socSet_pct 10:2
recalc:
undef
undef
ARRAY(0x59a25e0)
values:
formated:
undef
undef
ARRAY(0x61835d0)
orig:
undef
undef
ARRAY(0x6c183a8)
prefixsuffix:
undef
undef
ARRAY(0x69df230)
Attributes:
group Zendure
valueFormat {bat0_minVol => $VALUE/100,
bat0_maxVol => $VALUE/100,
p_BatVolt => $VALUE/100,}
valueStyle {if ($READING eq "p_gridInputPower") {'style="color:red;text-align:right"'}
elsif ($READING eq "p_outputHomePower") {'style="color:orange;text-align:right"'}
elsif ($READING eq "p_gridOffPower") {'style="color:orange;text-align:right"'}
elsif ($READING eq "p_electricLevel") {'style="color:white;text-align:right"'}
elsif ($READING eq "bat0_minVol") {'style="color:white;text-align:right"'}
elsif ($READING eq "bat0_maxVol") {'style="color:white;text-align:right"'}
elsif ($READING eq "p_BatVolt") {'style="color:white;text-align:right"'}
elsif ($READING eq "p_hyperTmp_C") {'style="color:white;text-align:right"'}
elsif ($READING eq "p_socSet_pct") {'style="color:white;text-align:right"'}
elsif ($READING eq "p_minSoc_pct") {'style="color:white;text-align:right"'}
elsif ($READING eq "p_packState_txt") {'style="color:white;text-align:right"'}}
Wenn Du das Attribut valueFormat löschst, kommt dann noch die Meldung?
Bist Dir sicher das in $VALUE ein numerischer Wert steht und nicht charging?
Ok, wenn ich das Attribut valueFormat lösche, dann ist die Fehlermeldung weg.
Aber diese 3 Readings, welche ich da durch 100 dividiere, haben doch nichts mit dem Problem-Reading Status zu tun (steht ja auch nicht mehr drin im valueFormat)? Die 3 Readings werden auch wie gewollt korrekt angezeigt. Da stehen numerische Werte drin. Nur im Reading Status natürlich nicht (String), aber das steht wie schon geschrieben nicht mehr drin in valueFormat.
Sobald ich die 3 Readings wieder mittels valueFormat formatiere, erscheint die Fehlermeldung wieder. Das hat doch aber vor meinen Versuchen mit dem Reading "Status" einwandfrei funktioniert!?