Modbus-Abfrage Batterieladezustand gibt komische Werte aus

Oberhesse

Member
Hallo ein Problem:
Ich lese über Modbus aus dem SBS 2.5 Batteriewechselrichter den SOC aus:
YAML:
sensors:
      # --- Batterie ---
      - name: "SBS2.5 Batterie SoC"
        unit_of_measurement: "%"
        address: 30845   #korrekt
        input_type: holding
        data_type: int32
        scale: 1
        precision: 0
Dann kommt aktuell als Ergebnis:
-1% obwohlder Ladezustand aktuell 70% ist. Fehler in der Definition?
Das steht in der Liste der Register:
30845 Aktueller Batterieladezustand, in % U32 FIX0 RO
 
Kennst Du den konkreten Wert im Modbus Register? Wenn ja, dann poste den mal bitte samt dazugehörigem Werte (in %). Vielleicht wird der Wert ja falsch interpretiert.
 
Verstehe die Frage nicht ganz, die Sensorabfrage ergibt immer diese -1% während die Abfrage über die "normale" SMA-Integration den korrekten Wert ausgibt. Die Definition des Registers 30845 hatte ich ja oben angegeben.
Ich habe jetzt die Definition geändert in :
sensors:
data_type: uint32

Ergebnis: Der reguläre SoC ist 100%, jetzt kommt bei der Modbus-Abfrage statt -1% neu: 4.294.967.295 %
 
Zuletzt bearbeitet:
Verstehe die Frage nicht ganz
Die Frage war ob Du mir den konkreten Wert des Modbus Registers 30845 sagen kannst. Also mit einem Modbus Tool hineinschauen was dort genau steht. Und dann noch den korrekten Wert. Ziel der Aktion ist zu prüfen ob eventuell der Wert falsch interpretiert wird.
 
Den oben genannten Wert 4.294.967.295 % habe ich durch eine Abfrage über Einstellungen > modbus> Entitäten > sbs2. 5 Batterie SoC erhalten.
 
Hast Du ein Tool wie QMOD um in die Register zu schauen? Interessant ist der 16Bit Wert (Hexadezimal) der dort steht. Dem Wert nach sollte das "FFFFFFFF" sein. Schau doch auch mal in Register 30844 und 30846 nach. Die Adresse gehört zu den analogen Eingangsregistern (falls man sich an die Modbus Konventionen gehalten hat). Irgendwas war da auch mit Registeradresse und Offset, deshalb die Frage zu den Reistern davor und danach.
 
Hast Du ein Tool wie QMOD um in die Register zu schauen? Interessant ist der 16Bit Wert (Hexadezimal) der dort steht. Dem Wert nach sollte das "FFFFFFFF" sein. Schau doch auch mal in Register 30844 und 30846 nach. Die Adresse gehört zu den analogen Eingangsregistern (falls man sich an die Modbus Konventionen gehalten hat). Irgendwas war da auch mit Registeradresse und Offset, deshalb die Frage zu den Reistern davor und danach.
Sorry, nein QMOD habe ich nicht. Und in den Daten von SMA gibt es keine Register 30844/30846. Leider bin ich, was diese Tiefe der Inhalte angeht, absoluter Laie. Als Datentyp ist für dieses Register uint32 angegeben. Der ausgegebene Wert ist lt Definition der größtmögliche Ganzzahlwert für dieses Datenformat :unsure:
 
Ja, ein vorzeichenloser Ganzzahliger 32 Bit Wert. 4.294.967.295 ist der höchste darstellbare Wert. Entweder liest Du ein falsches Register oder das Programm spinnt.
 

Zurzeit aktive Besucher

Letzte Anleitungen

Statistik des Forums

Themen
7.110
Beiträge
69.299
Mitglieder
7.513
Neuestes Mitglied
horst1964
Zurück
Oben