FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: hugo am 01 Februar 2024, 17:25:42

Titel: Gelöst: Negative Werte beim auslesen des Heizkessel mit Modbus
Beitrag von: hugo am 01 Februar 2024, 17:25:42
Hallo,
den Pelletsofen "ETA PU15" lese ich per Modbus aus. Soweit funktioniert dies auch. Allerdings werden Negative Werte z.B. Außentemperatur oder Kollektortemparatur nicht richtig angezeigt, sobald die Temperatur in den Minusbereich geht.
Soweit ich es verstanden habe, liegt das am "unpack", aber da ist meine Kenntnis zu gering.

Ausgabe Logfile:
2024-01-30_00:53:04 ETA_PU15_Modbus ETA_Aussentemperatur: 429496729.5


obj-h1018-expr $val/10
obj-h1018-len 2
obj-h1018-poll 1
obj-h1018-reading ETA_Aussentemperatur
obj-h1018-unpack N

Gruß Josef
Titel: Aw: Negative Werte beim auslesen des Heizkessel mit Modbus
Beitrag von: fz55 am 01 Februar 2024, 18:26:26
Hallo,

in der Doku steht folgendes bei unpack
Zitator a signed 16 bit integer in big endian format this would be "s>", in little endian format it would be "s<"
and for a 32 bit big endian float value this would be e.g. "f>". (see the perl documentation of the pack function for more codes and details)."

Probiere es mal mit f>

Grüße
fz55
Titel: Aw: Negative Werte beim auslesen des Heizkessel mit Modbus
Beitrag von: hugo am 01 Februar 2024, 21:33:50
Hallo fz55

Also f> ergibt einen Wert
ETA_Aussentemperatur 6.58610278232664e-45

N
ETA_Aussentemperatur 4.7

Scheint wohl nicht zu helfen. Kann jetzt negative Werte nicht testen, da es nicht so klat ist. Aber der Positive Werte sollte mit f> doch auch dem realen Wert entsprechen.

Gruß Josef
Titel: Aw: Negative Werte beim auslesen des Heizkessel mit Modbus
Beitrag von: fz55 am 01 Februar 2024, 22:05:47
Vieleicht muss die Reihenfolge der Register noch gedreht werden:

obj-h1018-revRegs 1
Titel: Aw: Negative Werte beim auslesen des Heizkessel mit Modbus
Beitrag von: Aurel_B am 01 Februar 2024, 23:46:19
Wenn ich die Anleitung anschaue, so scheint es sich um signed int Werte zu handeln. Ich würde "s" versuchen bei unpack
Titel: Aw: Negative Werte beim auslesen des Heizkessel mit Modbus
Beitrag von: Rampler am 02 Februar 2024, 15:12:05
attr  ETA_PU15_Modbus obj-h1018-unpack s>
Titel: Aw: Negative Werte beim auslesen des Heizkessel mit Modbus
Beitrag von: automatisierer am 14 Oktober 2024, 14:55:20
Moin,
hat es eine Lösung für dieses Problem gegeben?
Gruß
Ingo
Titel: Aw: Negative Werte beim auslesen des Heizkessel mit Modbus
Beitrag von: hugo am 14 Oktober 2024, 18:18:13
Ich habe noch keine Lösung gefunden.

Gruß Josef
Titel: Aw: Negative Werte beim auslesen des Heizkessel mit Modbus
Beitrag von: passibe am 14 Oktober 2024, 23:15:03
Siehe hier: https://forum.fhem.de/index.php?topic=115422.msg1283236#msg1283236 (https://forum.fhem.de/index.php?topic=115422.msg1283236#msg1283236)

Danach gilt:
INT16   n!
UINT16  n
INT32   N!
UINT32  N

Weil es um Minuszahlen geht, dürften UINT16 und UINT32 (U = unsigned, d.h. ohne Vorzeichen) nicht in Frage kommen.
Also wohl mal N! oder n! ausprobieren.
Titel: Aw: Negative Werte beim auslesen des Heizkessel mit Modbus
Beitrag von: hugo am 22 November 2024, 17:18:39
Hallo passive,
vielen Dank für deine Antwort. Leider kann ich dir erst jetzt antworten, da die Minustemperaturen fehlten.
Du lagst völlig richtig mit N!
Jetzt passt auch meine Anzeige und Auswertung.

Gruß Josef