Readingsval in Notify liefert Hash statt Wert

Begonnen von Jackie, 26 Januar 2024, 11:46:41

Vorheriges Thema - Nächstes Thema

Jackie

Hallo,

ich möchte in einem Notify einen Wert aus einem größeren String herauspicken und verwende dazu Readingsval und Split, um diesen Wert dann auf ein AWTrix Display zu schicken:

define notify_Display_DHWTemp notify LWZ:sGlobal.* {my $c = {((split " ",ReadingsVal("LWZ","sGlobal",0))[9])};;;;;;;;\
my $d = sprintf('%.1f °C', $c);;;;;;;;\
\
fhem(qq(set MQTT2_FHEM_Server publish awtrix_52a958/custom/DHWTemp {"icon": "9840","duration":"10","text": [{"t": "$c","c": "FFFF00"}]}))}

Wenn ich den Teil

{((split " ",ReadingsVal("LWZ","sGlobal",0))[9])} in FHEM oben eingebe kommt der Erwartete Wert 50.8 in der Weboberfläche heraus.

sGlobal sieht so aus:

outsideTemp: 11.8 flowTemp: 27.9 returnTemp: 23.6 hotGasTemp: 71.7 dhwTemp: 50.8 flowTempHC2: -60 evaporatorTemp: 4.8 condenserTemp: 28 mixerOpen: 0 mixerClosed: 0 heatPipeValve: 0 diverterValve: 0 dhwPump: 0 heatingCircuitPump: 1 solarPump: 0 compressor: 1 boosterStage3: 0 boosterStage2: 0 boosterStage1: 0 highPressureSensor: 0 lowPressureSensor: 1 evaporatorIceMonitor: 0 signalAnode: 0 evuRelease: 1 ovenFireplace: 0 STB: 0 outputVentilatorPower: 22 inputVentilatorPower: 22 mainVentilatorPower: 60 outputVentilatorSpeed: 15 inputVentilatorSpeed: 24 mainVentilatorSpeed: 17 outside_tempFiltered: 10.7 relHumidity: 0 dewPoint: 0 P_Nd: 4.43 P_Hd: 13 actualPower_Qc: 7434.367 actualPower_Pel: 1.979 collectorTemp: -60 insideTemp: -60 windowOpen: 0 quickAirVent: 0 flowRate: 19.37 p_HCw: 1.75 humidityAirOut: 33.41
Die Variable $c in dem obigen Codfe enthält aber stattdessen folgenden String:
Hash0x89A1...

Kann mir jemand erklären, warum das so ist, und wie ich den richtigen Wert da reinbekomme? Vielen Dank!
Raspi 3 mit FHEM, LWZ 304 Trend, Fronius Symo 10.0-3-M, Conbee II Stick, Optokoppler (USB, FTDI), diverse Ikea Tradfri Komponenten,...

betateilchen

Da sind zu viele Klammern im Spiel, die da nicht hingehören.
Probier mal so:

my $c = (split " ",ReadingsVal("LWZ","sGlobal",0))[9];
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!