Ich würde gerne per IPS den Minimum State of Charge festlegen können. Und zwar so, dass ich bei gemeldeten schlechtem Wetter den Min_SOC am Abend eher hochsetze (Notstrom vorhalten) und bei gutem Wetter herabsetzen (wird am Morgen ja in jedem Fall geladen).
Ich kann auch mit der Adresse Hex 0x0093 = Dezimal 147 den aktuellen Wert = 20% auslesen.
So ist das konfiguriert:
Wenn ich aber dann mittels ModBus_WriteRegisterByte versuche einen Wert zu schreiben, dann kommt einfach nichts dabei raus, bzw. eine Fehlermedlung.
Ich habe hier im Forum schon mit High & Low geschaut, aber ich komme da nicht ganz mit.
Ist das so, dass High & Low-Byte eine Speicheradresse belegen? Also nicht nur 20% geschrieben wird, sondern sowas wie „120“ oder „020“ (je nachdem was mit dem Low-Byte ist)?
Wenn ja, wie kann ich das denn auseinanderklamüsern und die 20%, 10% oder was auch immer vernünftig schreiben?
Ich habe nicht den Hauch einer Idee und bin mit dem Messer zur Schießerei gekommen
Ich habe noch etwas „geforscht“, ich habe nun soweit verstanden, dass man z.B. für den Min_Soc auf 20% zu setzen und Grid-Charge abzuschalten 14 00 senden müsste. Das bedeutet dann 14 (Hex) = 20 (dec) und 00 = disabled.
Das Problem ist, sowie ich das sehe, sind auf der Adresse 147 zwei verschiedene Dinge zu finden:
Das eine ist min SoC, was der erste Teil des Bytes ist, der zweite Teil ist dann Night-Charge enabled oder disabled.
Ich muss also - wie oben beschrieben - den Hex-Wert 14 00 an das Gerät schicken, über Modbus. Dann habe ich High- und Low-Byte angesprochen. Da weiß ich nicht wie das gehen könnte.
@DerStandart : Es steht in der Spalte oben W/R - ich nehme evtl, dass es für Write / Read steht. Aaaaber - in allen Spalten steht nur R und im Changelog steht einiges von Write bzw. es gibt sogar nen Kommentar zum Register-schreiben. (Siehe Seite 5, unten)
Und den Wert kann ich am Display bzw. in der App problemlos ändern.
Passt, kommt 2560 raus, was in Hex = 0A00 ist, also 0A und 00, also 10 (%) und Disabled.
Passt alles. Aber schreiben als Word - 3840, was 0F00, also 15 und 00 entspricht geht nicht. Schauen wir mal was Solax zu sagen hat!
Solax hat geantwortet! Das Schreiben ist nicht möglich. Es gibt ein Dokument in welchem beschrieben wird wie es geht - aber, dass kann ich Euch dann leider nicht mehr mitteilen.
Ich bekomme das Dokument, muss aber ein NDA unterzeichnen.
Ich vermute, dass mir das NDA verbietet euch Details mitzuteilen.
Falls aber was dazu erlaubt ist, melde ich mich gerne!
ModBus kann leider nur ganze Register (=Words) schreiben. D.h. du müsstest in IP-Symcon Word als Typ einstellen und das High/Low-Byte selber korrekt zusammenbauen.
Nachdem ich ein NDA mit Solax unterschrieben habe, habe ich nun auch die passenden Adressen.
Lese- und Schreibadressen sind nämlich nicht gleich.
Wie die Adressen genau sind darf ich hier allerdings leider nicht sagen.
Kurzum: Schreiben geht - für den Min_SoC wird sogar uint(16) geschrieben.
Was musst man denn und an wen bei Solax schicken, damit man Einblick in die kompletten Modbusadressen bekommt.
Ich bekomme in den nächsten Tag auch noch einen Solax X1 mini und wollten den mit einem Modbus RTU>Lan Adapter auslesen und beschreiben.
Gerne auch per PN.
Ich habe nun auch einen Solax X1 Mini über einen Rs485 > LAN Adapter an IPS dran.
Welche Modbusadressen zum lesen sind denn für die aktuelle Leistung und den Gesamtzähler vorgesehen.
Hatte hier die Adresse 2 als Input Register auslesen (04) für die aktuelle Leistung gefunden, aber das kann doch nicht richtig sein?
Sehe zwar, das IPS etwas sendet aber es kommt keine Antwort.
Muss man bei diesen Solax WR wie bei Fronius Modbus von freischalten?
Freischalten musste ich nix. Geht dein RS485-Adapter denn?
Hier nochmal das gleiche wie in meiner Nachricht, damit andere auch was davon haben:
SOLAR ENERGY TOTAL:
Übrigens, nicht wundern - die Werte stehen alle auf 0ms, da ich das Abrufen zentral durch zwei Scripte steuere. Einmal Werte mit vielen Daten (aktuelle Leistung usw., alle 15s) und langsamer mit wenigen Daten (Zähler usw alle 60s).
Nur nochmals als Tip, vielleicht scheitert es ja da: Du musst die Adresse von Hex (Solax-Dokument) nach Dezimal umrechnen bevor du die einträgst.