FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Jackie am 26 Januar 2024, 11:46:41

Titel: Readingsval in Notify liefert Hash statt Wert
Beitrag von: Jackie am 26 Januar 2024, 11:46:41
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!
Titel: Aw: Readingsval in Notify liefert Hash statt Wert
Beitrag von: betateilchen am 26 Januar 2024, 12:11:16
Da sind zu viele Klammern im Spiel, die da nicht hingehören.
Probier mal so:

my $c = (split " ",ReadingsVal("LWZ","sGlobal",0))[9];