Hilfe bei Modul ModbusAttr

Begonnen von Ruckzuck, 23 Oktober 2021, 09:19:48

Vorheriges Thema - Nächstes Thema

Ruckzuck

Hallo,

ich versuche gerade mit dem Modul ModbusAttr mein Janiza UMG96s via Modbus auszulesen, habe aber Probleme bei der Datenaufbereitung. Wenn ich das Holding Register 201 (Spannung L2) auslese bekomme ich folgende Rohwerte im Reading angezeigt:

V_U2            hex=0927, string=.', s=9993, s>=2343, S=9993, S>=2343

Für mich wäre "s>" das richtige Format (der Wert wird mit einer Nachkommastelle vom Janitza übertragen).  Ich habe also entsprechend das Attribut obj-h201-unpack s> hinzugefügt. Im Reading steht dann:

V_U2            hex=32333431, string=2341, s=13106, s>=12851, S=13106, S>=12851, i=13106, i>=12851, I=13106, I>=12851, f=2.62225485769818e-09, f>=1.04310382553763e-08

Damit schein dann der Wert als String vorzuliegen. Darauf habe ich dann versucht den String-Wert über das Attribut obj-h201-format %.1f zu formatieren. Dann steht allerdings 0.0 im Reading.

Welche Formatierung muss ich denn durchführen, damit in meinem Reading hinterher die "234.1 V" stehen?





Ruckzuck

Ok, ich glaube die erste Hürde habe ich genommen. Es fehlte noch das Attribut expr, mit dem der Wert übergeben wird. Damit das komma an der richtigen Stelle sitzt, musste ich noch mit 10 dividieren. Fertig sieht es dann so aus:

obj-h201-expr $val/10
obj-h201-unpack s>
obj-h201-format %.1f


wenn ich daraus nun aber eine Parsinfo Struktur ableite, bekomme ich wieder 0.0 in den readings:

my %UMG69parseInfo = (
         
    "h200"=>  {
name => "U_L1",
unpack => "s>",
expr => '$val\10',
format => '%.1f',
reading => "Voltage_L1",
poll => 1
          },
    "h201"=>  {
name => "U_L2",
unpack => "s>",
expr => '$val\10',
format => '%.1f',
reading => "Voltage_L2",
poll => 1
          },
    "h202"=>  {
name => "U_L3",
unpack => "s>",
expr => '$val\10',
format => '%.1f',
reading => "Voltage_L3",
poll => 1
          },
);

Ruckzuck

Division ist "/" nicht "\"  :-[  ;D