Closed ThomasBlome closed 9 months ago
in the meantime I checked the data extracted via the ModBus Wifi Dongle access, get quite some datasets (24 entities), however most of them are different values than the SolaxCloud data from the inverter, assume that teh integration needs to take on that.
The Mini only has a limited set of Registers compared to the Hybrids, so 24 entities sounds right.
So you have an example of the differences? Your cloud Instance might only be updating every 5mins so that could be why you are seeing different values.
Hi,
thank you very much for your fast response, I was not able to get any meaningful data over the modbus protocol of the mini X1 G4. The modbus itself is working because the solax communicated with an Chint DDSU666 energy meter pretty nicely. Instead I was able to get the data via https://community.home-assistant.io/t/solax-x1-boost-air-mini-local-data/535197. The G4 mini has a slightly different assignment of the addresses, that’s what I’m currently analyzing over this week, looks very promising.
Best regards
Von: wills106 @.> Datum: Montag, 27. November 2023 um 11:02 An: wills106/homeassistant-solax-modbus @.> Cc: ThomasBlome @.>, Author @.> Betreff: Re: [wills106/homeassistant-solax-modbus] [Bug]: Please be so kind to add the new Solax X1 mini G4 to the serial number list (Issue #638)
The Mini only has a limited set of Registers compared to the Hybrids, so 24 entities sounds right.
So you have an example of the differences? Your cloud Instance might only be updating every 5mins so that could be why you are seeing different values.
— Reply to this email directly, view it on GitHubhttps://github.com/wills106/homeassistant-solax-modbus/issues/638#issuecomment-1827517165, or unsubscribehttps://github.com/notifications/unsubscribe-auth/A3U6VTAVKL3PTKJYDTHPACLYGRQJVAVCNFSM6AAAAAA7ZEAKY6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQMRXGUYTOMJWGU. You are receiving this because you authored the thread.Message ID: @.***>
Hi,
short update, got a message from the Solax Service Team in Europe, the WiFI 3 firmware was updated to the following version
Wi-Fi dongle Pocket WiFi 3.0 V3.004.03
For the X1 mini G4 the data only could be accessed via modbus TCP/IP, RS485 is not supported because it used to communicate with the CHINT Power meter, per definition 2 Master and 1 Slave are not supported in the ModBus Specification
Will spend some time tomorrow to give it a try.
Best regards
Thomas
Von: @. @.> Datum: Montag, 27. November 2023 um 11:24 An: wills106/homeassistant-solax-modbus @.***> Betreff: AW: [wills106/homeassistant-solax-modbus] [Bug]: Please be so kind to add the new Solax X1 mini G4 to the serial number list (Issue #638) Hi,
thank you very much for your fast response, I was not able to get any meaningful data over the modbus protocol of the mini X1 G4. The modbus itself is working because the solax communicated with an Chint DDSU666 energy meter pretty nicely. Instead I was able to get the data via https://community.home-assistant.io/t/solax-x1-boost-air-mini-local-data/535197. The G4 mini has a slightly different assignment of the addresses, that’s what I’m currently analyzing over this week, looks very promising.
Best regards
Von: wills106 @.> Datum: Montag, 27. November 2023 um 11:02 An: wills106/homeassistant-solax-modbus @.> Cc: ThomasBlome @.>, Author @.> Betreff: Re: [wills106/homeassistant-solax-modbus] [Bug]: Please be so kind to add the new Solax X1 mini G4 to the serial number list (Issue #638)
The Mini only has a limited set of Registers compared to the Hybrids, so 24 entities sounds right.
So you have an example of the differences? Your cloud Instance might only be updating every 5mins so that could be why you are seeing different values.
— Reply to this email directly, view it on GitHubhttps://github.com/wills106/homeassistant-solax-modbus/issues/638#issuecomment-1827517165, or unsubscribehttps://github.com/notifications/unsubscribe-auth/A3U6VTAVKL3PTKJYDTHPACLYGRQJVAVCNFSM6AAAAAA7ZEAKY6VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTQMRXGUYTOMJWGU. You are receiving this because you authored the thread.Message ID: @.***>
For the X1 mini G4 the data only could be accessed via modbus TCP/IP, RS485 is not supported because it used to communicate with the CHINT Power meter, per definition 2 Master and 1 Slave are not supported in the ModBus Specification
Have you tried connecting to the RS485 port though? The X3 MIC G2 only has a single RS485 port and people are able to connect with Modbus RTU with that port.
I'm going to close this issue down as I don't have any specific documentation for the newer G4 options like Parallel Mode as I don't know what the registers are.
Feel free to start a Discussion if you want to ask others about general connection options.
The Solax X1 mini G4 is now recognized by the Modbus Integration, Baurate is 9600Baud. 1 Device and 26 entities are shown in the integration. However the assignment of the values is pretty strange, most of the values are not matching the real data. Only about 2 values (example: inverter voltage) seems to be right. First thought is that the X1 mini G4 is not supporting the Modbus variables from the SOLAX Modbus whitepaper. Need to contact the Solax Service in Europe to find it out, keep the forum updated
Where do you get the real data?
attached the example with works for my Solax X1 mini G4 based on GitHub forum but modified for that type of inverter
you need to add your IP address for your inverter at: @your IP adress
you need to add serval times the serial number of your Wifi Dongle connected to your inverter: @ yourSerialnumber of wifi Dongle to be included here
The code needs to be included in the configuration.yaml file via the editor
There are still a few variables send by the inverter which are not assigned in the code (due to a lack of my time currently)
Code is build as a module, Solax1. so if you have more tan one just copy and paste and exchange Solax1 to Solax 2 etc.
Hope this helps you starting your project
#########################################################
######################################################### #
#
#
######################## #
# ########################
# #
######################## #
# ########################
#
template:
sensor:
name: solax1_local state: > {% if state_attr('sensor.solax1_rest_local', 'sn') == "@ yourSerialnumber of wifi Dongle to be included here" %}{{ now().strftime("%H:%M:%S") }} {% else %}{{ (states('sensor.solax1_local')) }}{% endif %} attributes: sn: >- {% if state_attr('sensor.solax1_rest_local', 'sn') == "@ yourSerialnumber of wifi Dongle to be included here" %}{{ (state_attr('sensor.solax1_rest_local', 'sn')) }} {% else %}{{ (state_attr('sensor.solax1_local', 'sn')) }}{% endif %} ver: >- {% if state_attr('sensor.solax1_rest_local', 'sn') == "@ yourSerialnumber of wifi Dongle to be included here" %}{{ (state_attr('sensor.solax1_rest_local', 'ver')) }} {% else %}{{ (state_attr('sensor.solax1_local', 'ver')) }}{% endif %} type: >- {% if state_attr('sensor.solax1_rest_local', 'sn') == "@ yourSerialnumber of wifi Dongle to be included here" %}{{ (state_attr('sensor.solax1_rest_local', 'type')) }} {% else %}{{ (state_attr('sensor.solax1_local', 'type')) }}{% endif %} Data: >- {% if state_attr('sensor.solax1_rest_local', 'sn') == "@ yourSerialnumber of wifi Dongle to be included here" %}{{ (state_attr('sensor.solax1_rest_local', 'Data')) }} {% else %}{{ (state_attr('sensor.solax1_local', 'Data')) }}{% endif %} Information: >- {% if state_attr('sensor.solax1_rest_local', 'sn') == "@ yourSerialnumber of wifi Dongle to be included here" %}{{ (state_attr('sensor.solax1_rest_local', 'Information')) }} {% else %}{{ (state_attr('sensor.solax1_local', 'Information')) }}{% endif %}
name: "Solax1 AC Output Voltage" state: "{{ state_attr('sensor.solax1_local', 'Data')[0] / 10 }}" unit_of_measurement: "V" device_class: "voltage" icon: 'mdi:sine-wave'
name: "Solax1 AC Current" state: "{{ state_attr('sensor.solax1_local', 'Data')[1] / 10 }}" unit_of_measurement: "A" device_class: "current" icon: 'mdi:sine-wave'
name: "Solax1 AC Frequency"
state: "{{ state_attr('sensor.solax1_local', 'Data')[2] / 100 }}"
unit_of_measurement: "Hz"
device_class: "frequency"
icon: 'mdi:sine-wave'
name: "Solax1 AC Power" state: "{{ state_attr('sensor.solax1_local', 'Data')[3] }}" unit_of_measurement: "W" device_class: "Power" icon: 'mdi:sine-wave'
name: "Solax1 PV Voltage" state: "{{ state_attr('sensor.solax1_local', 'Data')[4] /10 | float }}" unit_of_measurement: "V" device_class: "voltage" icon: 'mdi:solar-panel'
name: "Solax1 PV Current"
state: "{{ state_attr('sensor.solax1_local', 'Data')[8] / 10 }}"
unit_of_measurement: "A"
device_class: "current"
icon: 'mdi:solar-panel'
name: "Solax1 Inverter Operation Mode" state: > {% if state_attr('sensor.solax1_local', 'Data')[10] == 0 %}Waiting {% elif state_attr('sensor.solax1_local', 'Data')[10] == 1 %}Checking {% elif state_attr('sensor.solax1_local', 'Data')[10] == 2 %}Normal {% elif state_attr('sensor.solax1_local', 'Data')[10] == 3 %}Off {% elif state_attr('sensor.solax1_local', 'Data')[10] == 4 %}Permanent Fault {% elif state_attr('sensor.solax1_local', 'Data')[10] == 5 %}Updating {% elif state_attr('sensor.solax1_local', 'Data')[10] == 6 %}EPS Check {% elif state_attr('sensor.solax1_local', 'Data')[10] == 7 %}EPS Mode {% elif state_attr('sensor.solax1_local', 'Data')[10] == 8 %}Self Test {% elif state_attr('sensor.solax1_local', 'Data')[10] == 9 %}Idle {% elif state_attr('sensor.solax1_local', 'Data')[10] == 10 %}Standby {% else %}I dont know{% endif %}
name: "Solax1 PV Power" unit_of_measurement: "W" state: "{{ state_attr('sensor.solax1_local', 'Data')[13] }}" device_class: "power" icon: 'mdi:solar-panel'
name: "Solax1 Energy Total" unit_of_measurement: "Wh" state: "{{ state_attr('sensor.Solax1_Rest_Local', 'Data')[19] / 10 }}" device_class: energy state_class: total_increasing icon: 'mdi:solar-panel'
name: "Solax1 Energy today" unit_of_measurement: "Wh" state: "{{ state_attr('sensor.Solax1_Rest_Local', 'Data')[21] / 10 }}" device_class: energy state_class: total_increasing icon: 'mdi:solar-panel'
name: "Solax1 AC Export Power" unit_of_measurement: "kWh" state: "{{ state_attr('sensor.Solax1_Rest_Local', 'Data')[22] }}" device_class: energy icon: 'mdi:sine-wave'
name: "Solax1 Temperature" unit_of_measurement: "C" state: "{{ state_attr('sensor.Solax1_Rest_Local', 'Data')[23] }}" device_class: temperature icon: 'mdi:sine-wave'
name: "Solax1 Inverter Nominal Power"
state: "{{ state_attr('sensor.solax1_local', 'Information')[0] | float }}" unit_of_measurement: "kW"
name: "Solax1 Module SN" state: "{{ state_attr('sensor.solax1_local', 'sn') }}"
name: "Solax1 module fw version" state: "{{ state_attr('sensor.solax1_local', 'ver') }}"
name: "Solax1 Inverter SN" state: "{{ state_attr('sensor.solax1_local', 'Information')[2] }}"
Closing down as should be functional now, but no feedback.
Describe the bug
Please be so kind the add the serial number the the Solax modbus integration
SOLAX X1 mini G4 1.5KW
Serial number XM4015Jxxxxxxx. (First 7 Digits provided), new model arriving on the German market
I did it manually in the script and assigned a to a x1 mini G2 and works so far, need to check the details values.
Important: it does not work in my installation with Modbus via RS485, instead I used the Network address for the Dongle Wifi 3, and it works like charming
Best regards
Thomas
Integration Version
2023.11.1
Homeassistant core version
2023.1.1
Inverter brand
SolaX Power
Plugin used
plugin_solax.py
First 6 digits of Serial
XM40
Inverter firmware versions
ARM 1.37
Connection Method
Solax Pocket WifI 3 dongle, see comment regarding RS485
Dongle firmware
...
Detailed Error Log
No response
Additional context
...