Hallo Leute!
Ich bin was Modbus, Adressen und Register betrifft ein totaler Idiot, zumindest fühle ich mich aktuell so.
Ich habe von Siemens folgende Info erhalten damit ich mein HA konfigurieren kann. Ich komme aber mit de rInfo null klar.
Auslesbare Daten aus der Smart Battery:
Datenpunkt Beschreibung Format Adresse (dezimal) Anzahl Register (16bit)
p_charge_nominal_max Max. Ladeleistung Int32 0 2
p_discharge_nominal_max Max. Entladeleistung Int32 2 2
e_capacity_nominal Anzahl der Batterien Int32 4 2
p Aktuelle Leistung der Smart Battery Int32 6 2
soc Ladezustand der Smart Battery Int32 8 2
status 0 = Normalzustand oder Fehlercodes Int32 10 2
cycles Anzahl der Zyklen Int32 12 2
p_gcp Aktuelle Leistung am Netzübergabepunkt Int32 14 2
p_pv Aktuelle Leistung der PV Anlage Int32 16 2
Leider stht zu der Batterie, welche leider nur kurz am Markt war, nicht wirklich viel im Netz:
Aber zu Iobroker hätte ich was gefunden:Junelight Batterie mit modbus (Teil 2) · evcc-io/evcc · Discussion #11288 · GitHub
Damit ist meine Verwirrung noch größer: Wie kommen die auf diese Adressen von 400xx?
Aktuell hätte ich in der config.yaml mal Modbus als Include über modbus.yaml konfiguriert.
Dort hätte ich dann das konfiguriert:
# Modbus Junelight
- name: modbus_junelight
type: tcp
host: 192.168.123.138
port: 502
delay: 0
message_wait_milliseconds: 30
timeout: 5
sensors:
- name: junelight_akku_percent
address: 40009
unit_of_measurement: "%"
data_type: int32
scan_interval: 10
Aber irgendwie tut das Ding nicht.
Und ja, ich habe schon Modbus von Siemens freischalten lassen.
Lg, Rob
by HarryP: Code-/Logzeilen formatiert (bitte immer in </> einbinden)
Ich kann jetzt nur raten,
das iobroker Beispiel ist ja schon mal nicht so schlecht.
Wenn du es formatiert hättest wüsste ich schon mal ob es ein Einrückungsfehler von dir in YAML war. Hoffen wir mal das es bei dir so aussieht.
modbus:
- type: type
host: 102.168.123.138
port :502
name: modbus_junelight
sensors:
- name: junelight_akku_percent
address: 40009
slave: 1
unit_of_measurement: %
data_type: int32
scan_interval: 10
timeout, delay, message_wait… alles schnick-schnack
aber slave: 1 würde ich mal reinpacken
Probier mal bitte folgendes:
modbus:
- type: type
host: 102.168.123.138
port :502
name: modbus_junelight
sensors:
- name: xxxx_test
address: 40000
slave: 1
count: 18
data_type: custom
structure: ">9I"
du solltest dann eigentlich eine Liste von Werten mit Komma getrennt in einer entität xxxx_test finden und Entwicklerwerkzeuge>Zustände
Falls ja und falls keiner der Werte für dich einen Sinn ergibt das gleiche nochmal mit adress: 40001 und dann schauen.
Es gibt ja Firmen die zählen Addressen von 0 bis … und andere von 1 bis … (daher vermutlich auch die ungeraden Addressen im iobroker, die 40000 mal aussen vor.)
Solltest du node-red als addon unter HA installiert haben ist es wesentlich einfacher, denn das ist ja das übel bei HA man kann zwar schön Dinge automatisch und kontinuierlich einlesen lassen aber es gibt keine modbus:read_register Aktion und die ist halt zum Testen ob die Addresse überhaupt stimmt extremst hilfreich. Falls ja “node-red installiert und einigermassen fit wie man das bedient” dann meld dich, dann erkläre ich dir wie es da geht. Das geht halt wesentlich schneller solange es ums probieren geht.
wow, das war ja schon mal hilfreich:
Mit 40000 sieht es so aus: 1400204883.00,65601.00,0.00,0.00,0.00,0.00,0.00,0.00,0.00
Mit 40001 sieht es so aus:
1850933249.00,4259840.00,0.00,0.00,0.00,0.00,0.00,0.00,11621.00
Ich hätte einen Wert aus der App, Anzahl der Ladezycln, der wäre 899.
Den sehe ich aber nicht 
Kurz erklärt was das macht.
Er liest ab “address” halt 18 int16 werte in form von “9” int32 (besser gesagt uint32) werten, und zwar als “>” big endian.
Du kannst jetzt mehrere Sachen probieren.
- Mit der Adresse spielen, von 0 bis weiss der Geier
- zu kannst bei structure auf ein “kleines i” nehmen dann sinds int32 statt uint32
- du kannst notfalls auch mal das “>” durch ein “<” ersetzen dann ist’s little endian.
- du kannst auch im struct mal “>18H” eingeben dann bekommst du 18 einzelwerte also int16.
Irgendwann und wo müsste dann ja mal ein Wert auftauchen der dir bekannt vorkommt. Das ist halt doof mit der bisher vorliegenden Info da diese zu dünn ist. Da lob ich mir dann doch Fronius die alles sauber dokumentieren und selbst wenn man dort nicht weiter kommt ist allein die Tatsache das dort auch Texte also Hersteller, Gerätename und so weiter per modbus ausgelesen werden können immer sehr hilfreich, denn damit kann man sehr schnell feststellen ob die Address ab wann wer gezählt hat richtig ist oder um eins korrigiert werden muss und man stellt auch schnell fest ob es little oder big endian sein muss.
So stochert man hier deutlich im Nebel.
Hab kurz mal gegoogled und bin über eine Passage gestolpert in der genau die Infos standen dei du im ersten Post geschrieben hast. das was aber im Zusammenhang mit einem Fronius WR.
Wie gesagt ich kenne den Speicher nicht, ist der AC oder DC gekoppelt? Weil normalerweise hat ein Speicher keine Info über eine Leistung am Netzübergabepunkt, sprich die Chance ist groß das das mit 40000 als Basis für die Addesse komplett falsch sein könnte.
Glücklicherweise kann man beim lesen sehr wenig kaput machen um nicht zu sagen nix.
Ich habe gestwrn am Abend nochmals geprüft ob ich eventuell am falschen LAN-Port gesteckt habe. Das war aber richtig.
Meine Spielereien erbrachten aktuell keine befriedigende Ergebnisse.
Ich habe ja auch einen Fronius WR.
Die Siemens bezieht aber deren Daten von 2 Siemens GRIDs welche einal kurz nach dem Netzwingang und einmal vor demm Fronius montiert sind.
Diese sind dan per seriellem MODBUS an der Junelight angeschlossen.
Witzig, ich hätte die Konfiguration einmal auf einem IOBroker welcher auf meiner Synology auf einem Docker Container läuft probiert.
Auch da sind die Daten “falsch”.
Als ob Siemens hier den MODBUS Ausgang falsch konfiguriert hat.
So ganz versteh ich deine physikalische Konfiguration trotzdem noch nicht auch mangels mehr googlen was ich mir erstmal verkniffen habe.
Wenn du sagst du hast n Fronius WR (welchen)
Und hängt an dem der Speicher oder ist das gar ein AC Speicher?
Weil wenn es ein Hybrid WR ist/wäre und der Speicher dort auf DC Seite angebunden ist bekommst du ja ohnehin alle relevanten Daten vom Fronius und nicht vom Speicher selbst.
Es ist ein AC Speicher. Der Junelight hat seinen eigenen Wchselrichter.
DIe Grids sind dazu da das Juneligt weiß wann was von Solar kommt bzw. ins Netz geht…
DIe Juneligt hängt mit einer fixen IP - Adresse im lokalen LAN und ist dort auch erreichbar.
Laut Siemens ist Modbus Server am Interfache 1 aktiv.
Kacke ist halt, da die Infos zu diesem leider eingestellten Produkt kaum vorhanden sind. Generell finde ich den Speicher toll.Aber nicht mal erweitern kann ich diesen nun weil eben eingestellt…
Ich würd die einfach weiter löchern, kann ja gar nicht sein das die keine Doku haben, irgendwer muss da ja wohl Dokumente habe.
Gibts vielleicht noch baugleiche die unter einem anderen Hersteller vertrieben wurden?