tobiasfaust / SolaxModbusGateway

Modbus RTU to MQTT Gateway
GNU General Public License v3.0
54 stars 17 forks source link

Solax X3-10.0P-T-D (X3 Mic Pro) #35

Closed michacee closed 5 months ago

michacee commented 7 months ago

Hat zufällig jemand schon mal die register.h für einen Solax Mic Pro angepasst? Mit der normalen Solax-Mic Konfiguration kann ich den WR leider nicht überreden, Daten auszugeben.

tobiasfaust commented 7 months ago

Schau mal in #30 ob diese passt. Ich habe es nur noch nicht geschafft diese Config einzuarbeiten. Ggf Probier alle anderen nacheinander aus ob von den Solax eine passen könnte. Oftmals sind viele identisch aufgebaut.

falls nichts passt kommst du über das passende Modbus Protokoll PDF nicht herum. Der Solax Support ist da aber sehr schnell und hilfsbereit.

michacee commented 7 months ago

Leider kein Erfolg, ich werd mich wohl an Solax wenden müssen. Oder gibt es noch eine andere Möglichkeit?

kommando828 commented 7 months ago

Solax support used to be very reluctant to release the Register pdf's but at least in the last 18 months they are now very responsive, mine took 48 hrs to arrive. Other than that there is google, hits on home assistant forums can contain the PDF's but Solax's model naming can be deceptive ie your inverter name does not include the Generation ie Gen3 or Gen4 which is important.

tobiasfaust commented 7 months ago

Leider nicht, du brauchst das Modbus Protokoll damit wir hier weiter kommen

michacee commented 7 months ago

Ich hab dem Solax Support gerade mal eine Mail geschrieben.

michacee commented 7 months ago

Hat noch jemand eine Idee, wie man an die Modbus Register kommt, Solax hat bis dato noch nicht reagiert.

kommando828 commented 7 months ago

If you have a laptop and a USB RS485 adaptor then this can be used to scan for register numbers.

https://github.com/SciFiDryer/ModbusMechanic

tobiasfaust commented 5 months ago

closed due inactivity

michacee commented 1 month ago

Update

Nach langer Zeit konnte ich mich mal wieder damit beschäftigen. Die Inverter Config muss so angepasst werden:

"RequestLiveData": [ [ "#ClientID", "0x04", "0x04", "0x00", "0x00", "0x35" ] ],

michacee commented 1 month ago

{ "Solax-Mic-Pro": { "config": { "RequestLiveData": [ [ "#ClientID", "0x04", "0x04", "0x00", "0x00", "0x35" ] ], "RequestIdData": [ "#ClientID", "0x03", "0x03", "0x00", "0x00", "0x07" ], "ClientIdPos": 0, "LiveDataFunctionCodePos": 1, "LiveDataFunctionCode": "0x04", "IdDataFunctionCodePos": 1, "IdDataFunctionCode": "0x03", "LiveDataStartsAtPos": 3, "IdDataStartsAtPos": 3, "LiveDataErrorPos": 1, "LiveDataErrorCode": "0x84", "IdDataErrorPos": 1, "IdDataErrorCode": "0x83", "LiveDataSuccessPos": 1, "LiveDataSuccessCode": "0x04", "IdDataSuccessPos": 1, "IdDataSuccessCode": "0x03" }, "data": { "livedata": [ { "position": [ 3, 4 ], "name": "PvVoltage1", "realname": "Pv Voltage 1", "datatype": "float", "factor": 0.1, "unit": "V" }, { "position": [ 5, 6 ], "name": "PvVoltage2", "realname": "Pv Voltage 2", "datatype": "float", "factor": 0.1, "unit": "V" }, { "position": [ 7, 8 ], "name": "PvCurrent1", "realname": "Pv Current 1", "datatype": "float", "factor": 0.1, "unit": "A" }, { "position": [ 9, 10 ], "name": "PvCurrent2", "realname": "Pv Current 2", "datatype": "float", "factor": 0.1, "unit": "A" }, { "position": [ 11, 12 ], "name": "GridVoltage_R", "realname": "Grid Voltage L1", "datatype": "float", "factor": 0.1, "unit": "V" }, { "position": [ 13, 14 ], "name": "GridVoltage_S", "realname": "Grid Voltage L2", "datatype": "float", "factor": 0.1, "unit": "V" }, { "position": [ 15, 16 ], "name": "GridVoltage_T", "realname": "Grid Voltage L3", "datatype": "float", "factor": 0.1, "unit": "V" }, { "position": [ 17, 18 ], "name": "GridFrequency_R", "realname": "Grid Frequency L1", "datatype": "float", "factor": 0.01, "unit": "Hz" }, { "position": [ 19, 20 ], "name": "GridFrequency_S", "realname": "Grid Frequency L2", "datatype": "float", "factor": 0.01, "unit": "Hz" }, { "position": [ 21, 22 ], "name": "GridFrequency_T", "realname": "Grid Frequency L3", "datatype": "float", "factor": 0.01, "unit": "Hz" }, { "position": [ 23, 24 ], "name": "GridCurrent_R", "realname": "Grid Current L1", "datatype": "float", "factor": 0.1, "unit": "A" }, { "position": [ 25, 26 ], "name": "GridCurrent_S", "realname": "Grid Current L2", "datatype": "float", "factor": 0.1, "unit": "A" }, { "position": [ 27, 28 ], "name": "GridCurrent_T", "realname": "Grid Current L3", "datatype": "float", "factor": 0.1, "unit": "A" }, { "position": [ 29, 30 ], "name": "Temperature", "realname": "Temperature", "datatype": "integer", "unit": "°C" }, { "position": [ 31, 32 ], "name": "OutputPower", "realname": "Output Power", "datatype": "integer", "unit": "W" }, { "position": [ 33, 34 ], "name": "InverterStatus", "realname": "Inverter Status", "datatype": "integer", "mapping": [ [ 0, "WaitMode" ], [ 1, "CheckMode" ], [ 2, "NormalMode" ], [ 3, "FaultMode" ], [ 4, "PermanentFaultMode" ] ] }, { "position": [ 35, 36 ], "name": "GridPower_R", "realname": "Grid Power L1", "datatype": "integer", "unit": "W" }, { "position": [ 37, 38 ], "name": "GridPower_S", "realname": "Grid Power L2", "datatype": "integer", "unit": "W" }, { "position": [ 39, 40 ], "name": "GridPower_T", "realname": "Grid Power L3", "datatype": "integer", "unit": "W" }, { "position": [ 41, 42 ], "name": "PowerPvTotal", "realname": "Erzeugungsleistung PV Gesamt", "datatype": "float", "unit": "W" }, { "position": [ 43, 44 ], "name": "PowerPv1", "realname": "Erzeugungsleistung Pv1", "openwbtopic": "openWB/set/pv/1/W", "datatype": "float", "unit": "W" }, { "position": [ 45, 46 ], "name": "PowerPv2", "realname": "Erzeugungsleistung Pv2", "openwbtopic": "openWB/set/pv/2/W", "datatype": "float", "unit": "W" }, { "position": [ 75, 76, 73, 74 ], "name": "EnergyTotalToGridWh", "realname": "Total Energy to Grid in Wh", "openwbtopic": "openWB/set/pv/WhCounter", "datatype": "integer", "factor": 100, "unit": "Wh" }, { "position": [ 75, 76, 73, 74 ], "name": "EnergyTotalToGridKwh", "realname": "Total Energy to Grid in KWh", "datatype": "float", "factor": 0.001, "unit": "kWh" }, { "position": [ 79, 80, 77, 78 ], "name": "EtodayToGrid", "realname": "Today Energy to Grid", "datatype": "float", "factor": 0.001, "unit": "kWh" }, { "position": [ 243, 242, 245, 244 ], "name": "GridPower", "realname": "Grid Power", "openwbtopic": "openWB/set/pv/W", "datatype": "integer", "unit": "W" }, { "position": [ 126, 127, 129, 128 ], "name": "feedinEnergy", "realname": "FeedIn Energy", "datatype": "float", "factor": 0.01, "unit": "kWh" }, { "position": [ 131, 130, 133, 132 ], "name": "ConsumeInEnergy", "realname": "ConsumeIn Energy", "datatype": "float", "factor": 0.01, "unit": "kWh" } ], "id": [ { "position": [ 4, 3, 6, 5, 8, 7, 10, 9, 12, 11, 14, 13, 16, 15 ], "name": "InverterSN", "realname": "Inverter SerialNumber", "datatype": "string" } ] } } }