Gelöst: Negative Werte beim auslesen des Heizkessel mit Modbus

Begonnen von hugo, 01 Februar 2024, 17:25:42

Vorheriges Thema - Nächstes Thema

hugo

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
Raspi 3 mit CUL HM-MOD-UART; nanoCUL
Homematic: HM-SEC-SCo 5x;HM-LC-SW1-BA-PCB 3x;HM-Dis-EP-WM55; HM-LC-SW4-PCB; ARLO;
Somfy RTS Rollo 14x; Alexa; GardenaSmartDevice; Stromzähler(GPIO); shelly1; shelly2.5;Wasserzähler(GPIO);Brennerstuhlsteckdosen;

fz55

#1
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

hugo

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
Raspi 3 mit CUL HM-MOD-UART; nanoCUL
Homematic: HM-SEC-SCo 5x;HM-LC-SW1-BA-PCB 3x;HM-Dis-EP-WM55; HM-LC-SW4-PCB; ARLO;
Somfy RTS Rollo 14x; Alexa; GardenaSmartDevice; Stromzähler(GPIO); shelly1; shelly2.5;Wasserzähler(GPIO);Brennerstuhlsteckdosen;

fz55

Vieleicht muss die Reihenfolge der Register noch gedreht werden:

obj-h1018-revRegs 1

Aurel_B

Wenn ich die Anleitung anschaue, so scheint es sich um signed int Werte zu handeln. Ich würde "s" versuchen bei unpack

Rampler

3 HMUART (2 via ESP8266), 1 DUOFERN, 12 ESP8266, SolvisBen, GoodWE WR, RPI2 (Bullseye), ZWAVE, HM-Classic, und hoch zufrieden ...
Danke an alle, die was dazu beigetragen haben !!

automatisierer

Moin,
hat es eine Lösung für dieses Problem gegeben?
Gruß
Ingo

hugo

Raspi 3 mit CUL HM-MOD-UART; nanoCUL
Homematic: HM-SEC-SCo 5x;HM-LC-SW1-BA-PCB 3x;HM-Dis-EP-WM55; HM-LC-SW4-PCB; ARLO;
Somfy RTS Rollo 14x; Alexa; GardenaSmartDevice; Stromzähler(GPIO); shelly1; shelly2.5;Wasserzähler(GPIO);Brennerstuhlsteckdosen;

passibe

Siehe hier: 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.

hugo

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
Raspi 3 mit CUL HM-MOD-UART; nanoCUL
Homematic: HM-SEC-SCo 5x;HM-LC-SW1-BA-PCB 3x;HM-Dis-EP-WM55; HM-LC-SW4-PCB; ARLO;
Somfy RTS Rollo 14x; Alexa; GardenaSmartDevice; Stromzähler(GPIO); shelly1; shelly2.5;Wasserzähler(GPIO);Brennerstuhlsteckdosen;