This is a binding for Solax solar power inverters.
Solax Wi-Fi module with direct connection via HTTP is supported.
Wi-Fi module firmware version 3.x+ is required.
Please note that earlier firmware releases do not support direct connection, therefore the binding will not work in its current state.
The binding retrieves a structured data from the inverter's Wi-Fi module, parses it and pushes it into the inverter Thing where each channel represents a specific information (inverter output power, voltage, PV1 power, etc.)
In case the parsed information that comes with the binding out of the box differs, the raw data channel can be used with a combination of JSON Path transformation to map the proper values to the necessary items.
Supported Things
Thing
Thing Type
Description
local-connect-inverter
Thing
This is model representation of inverter with all the data available as a channels
Note: Channels may vary depending on the inverter type and the availability of information for parsing the raw data.
If you're missing a channel this means that it's not supported for your inverter type.
Thing Configuration
Local Connect Inverter Configuration
Parameter
Description
refreshInterval
Defines the refresh interval when the binding polls from the inverter's Wi-Fi module (in seconds). Optional parameter. Default 10 seconds.
password
Password for accessing the Wi-Fi module (the serial number of the wifi). Mandatory parameter.
hostname
IP address or hostname of your Wi-Fi module. If hostname is used must be resolvable by OpenHAB. Mandatory parameter.
Inverter Output Channels
Channel
Type
Description
inverter-output-power
Number:Power
The output power of the inverter [W]
inverter-current
Number:ElectricCurrent
The output current of the inverter [A]
inverter-voltage
Number:ElectricPotential
The output voltage of the inverter [V]
inverter-frequency
Number:Frequency
The frequency of the electricity of the inverter [Hz]
inverter-output-power-phase1
Number:Power
The output power of phase 1 of the inverter [W]
inverter-output-power-phase2
Number:Power
The output power of phase 2 of the inverter [W]
inverter-output-power-phase3
Number:Power
The output power of phase 3 of the inverter [W]
inverter-total-output-power
Number:Power
The total output power of all phases of the inverter [W]
inverter-current-phase1
Number:ElectricCurrent
The output current of phase 1 of the inverter [A]
inverter-current-phase2
Number:ElectricCurrent
The output current of phase 2 of the inverter [A]
inverter-current-phase3
Number:ElectricCurrent
The output current of phase 3 of the inverter [A]
inverter-voltage-phase1
Number:ElectricPotential
The output voltage of phase 1 of the inverter [V]
inverter-voltage-phase2
Number:ElectricPotential
The output voltage of phase 2 of the inverter [V]
inverter-voltage-phase3
Number:ElectricPotential
The output voltage of phase 3 of the inverter [V]
inverter-frequency-phase1
Number:Frequency
The frequency of phase 1 of the inverter [Hz]
inverter-frequency-phase2
Number:Frequency
The frequency of phase 2 of the inverter [Hz]
inverter-frequency-phase3
Number:Frequency
The frequency of phase 3 of the inverter [Hz]
Photovoltaic Panels Production Channels
Channel
Type
Description
pv1-voltage
Number:ElectricPotential
The voltage of PV1 string [V]
pv2-voltage
Number:ElectricPotential
The voltage of PV2 string [V]
pv1-current
Number:ElectricCurrent
The current of PV1 string [A]
pv2-current
Number:ElectricCurrent
The current of PV2 string [A]
pv1-power
Number:Power
The output power PV1 string [W]
pv2-power
Number:Power
The output power PV2 string [W]
pv-total-power
Number:Power
The total output power of both PV strings [W]
pv-total-current
Number:ElectricCurrent
The total current of both PV strings [A]
Battery channels
Channel
Type
Description
battery-power
Number:Power
The power to / from battery (negative means power is pulled from battery and vice-versa) [W]
battery-current
Number:ElectricCurrent
The current to / from battery (negative means power is pulled from battery and vice-versa) [A]
battery-voltage
Number:ElectricPotential
The voltage of the battery [V]
battery-temperature
Number:Temperature
The temperature of the battery [C/F]
battery-state-of-charge
Number
The state of charge of the battery [%]
Grid related channels
Channel
Type
Description
feed-in-power
Number:Power
The power to / from grid (negative means power is pulled from the grid and vice-versa) [W]
General channels
Channel
Type
Description
last-update-time
DateTime
Last time when a call has been made to the inverter
raw-data
String
The raw data retrieved from inverter in JSON format. (Usable for channels not implemented. Can be consumed with the JSONpath transformation
Statistics / Usage related Channels
Channel
Type
Description
power-usage
Number:Power
Current power usage / consumption of the building [W]
total-energy
Number:Energy
Total energy output from the inverter [kWh]
total-battery-discharge-energy
Number:Energy
Total energy from the battery [kWh]
total-battery-charge-energy
Number:Energy
Total energy to the battery [kWh]
total-pv-energy
Number:Energy
Total energy from the PV [kWh]
total-consumption
Number:Energy
Total energy consumed for the building [kWh]
total-feed-in-energy
Number:Energy
Total energy consumed from the electricity provider [kWh]
today-energy
Number:Energy
Energy output from the inverter for the day [kWh]
today-battery-discharge-energy
Number:Energy
Total energy from the battery output for the day [kWh]
today-battery-charge-energy
Number:Energy
Total energy charged to the battery for the day [kWh]
today-feed-in-energy
Number:Energy
Total energy charged to the battery for the day [kWh]
today-consumption
Number:Energy
Total energy consumed for the day [kWh]
Properties
Property
Description
serialNumber
The serial number of the Wi-Fi module
inverterType
Inverter Type (for example X1_HYBRID_G4)
Full Example
Here are some file based examples.
Thing Configuration
// The local connect inverter thing Thingsolax:local-connect-inverter:localInverter[refreshInterval=10,password="<SERIAL NUMBER OF THE WIFI MODULE>",hostname="<local IP/hostname in the network>"]
Item Configuration
GroupgSolaxInverter"Solax Inverter"<energy>(boilerRoom)GroupsolarPanels"Solar panels"<energy>(gSolaxInverter)NumbersolaxPowerWest"West [%.0f W]"<solarplant>(gsolax_inverter,EveryChangePersist,solarPanels){channel="solax:localConnectInverter:localInverter:pv1-power"}NumbersolaxPowerEast"East [%.0f W]"<solarplant>(gsolax_inverter,EveryChangePersist,solarPanels){channel="solax:localConnectInverter:localInverter:pv2-power"}NumbersolaxBatteryPower"Battery power [%.0f W]"<energy>(gsolax_inverter,EveryChangePersist){channel="solax:localConnectInverter:localInverter:battery-power"}NumbersolaxBatterySoc"Battery SoC [%.0f %%]"<batterylevel>(gsolax_inverter,EveryChangePersist){channel="solax:localConnectInverter:localInverter:battery-state-of-charge"}NumbersolaxFeedInPower"Feed-in power (CEZ) [%.0f W]"<energy>(gsolax_inverter,EveryChangePersist){channel="solax:localConnectInverter:localInverter:feed-in-power"}NumbersolaxAcPower"Invertor output power [%.0f W]"<energy>(gsolax_inverter,EveryChangePersist){channel="solax:localConnectInverter:localInverter:inverter-output-power"}StringsolaxInverterType"Inverter Type [%s]"<energy>(gsolax_inverter){channel="solax:localConnectInverter:localInverter:inverter-type"}StringsolaxUploadTime"Last update time [%s]"<calendar>(gsolax_inverter){channel="solax:localConnectInverter:localInverter:last-update-time"}StringsolaxRawData"Raw data [%s]"<data>(gsolax_inverter){channel="solax:localConnectInverter:localInverter:raw-data"}
Sitemap Configuration
Framelabel="Solar power strings"{Textitem=solaxPowerEastvaluecolor=[<=30="gray",<=300="red",<1500="orange",>=1500="green"]{Textitem=solaxPowerEasticon="energy"valuecolor=[<=30="gray",<=300="red",<1500="orange",>=1500="green"]Textitem=solaxPowerWesticon="energy"valuecolor=[<=30="gray",<=300="red",<1500="orange",>=1500="green"]Switchitem=Chart_Periodlabel="Chart Period"mappings=[0="H",1="D",2="W",3="M",4="Y"]Chartitem=solarPanelsperiod=hrefresh=600visibility=[Chart_Period==0]Chartitem=solarPanelsperiod=Drefresh=3600visibility=[Chart_Period==1]Chartitem=solarPanelsperiod=Wrefresh=3600visibility=[Chart_Period==2,Chart_Period==Uninitialized]Chartitem=solarPanelsperiod=Mrefresh=3600visibility=[Chart_Period==3]Chartitem=solarPanelsperiod=Yrefresh=3600visibility=[Chart_Period==4]}Textitem=solaxPowerWestvaluecolor=[<=30="gray",<=300="red",<1500="orange",>=1500="green"]{Textitem=solaxPowerEasticon="energy"valuecolor=[<=30="gray",<=300="red",<1500="orange",>=1500="green"]Textitem=solaxPowerWesticon="energy"valuecolor=[<=30="gray",<=300="red",<1500="orange",>=1500="green"]Switchitem=Chart_Periodlabel="Chart Period"mappings=[0="H",1="D",2="W",3="M",4="Y"]Chartitem=solarPanelsperiod=hrefresh=600visibility=[Chart_Period==0]Chartitem=solarPanelsperiod=Drefresh=3600visibility=[Chart_Period==1]Chartitem=solarPanelsperiod=Wrefresh=3600visibility=[Chart_Period==2,Chart_Period==Uninitialized]Chartitem=solarPanelsperiod=Mrefresh=3600visibility=[Chart_Period==3]Chartitem=solarPanelsperiod=Yrefresh=3600visibility=[Chart_Period==4]}Textitem=solaxGenerationTotalvaluecolor=[<=100="gray",<=500="red",<2000="orange",>=2000="green"]{Textitem=solaxPowerEasticon="energy"valuecolor=[<=30="gray",<=300="red",<1500="orange",>=1500="green"]Textitem=solaxPowerWesticon="energy"valuecolor=[<=30="gray",<=300="red",<1500="orange",>=1500="green"]Textitem=solaxGenerationTotalicon="energy"valuecolor=[<=30="gray",<=300="red",<1500="orange",>=1500="green"]Switchitem=Chart_Periodlabel="Chart Period"mappings=[0="H",1="D",2="W",3="M",4="Y"]Chartitem=solarPanelsperiod=hrefresh=600visibility=[Chart_Period==0]Chartitem=solarPanelsperiod=Drefresh=3600visibility=[Chart_Period==1]Chartitem=solarPanelsperiod=Wrefresh=3600visibility=[Chart_Period==2,Chart_Period==Uninitialized]Chartitem=solarPanelsperiod=Mrefresh=3600visibility=[Chart_Period==3]Chartitem=solarPanelsperiod=Yrefresh=3600visibility=[Chart_Period==4]}}Framelabel="Consumption"{Textitem=solaxAcPowervaluecolor=[<=30="gray",<800="green",<1500="orange",>=1500="red"]{Switchitem=Chart_Periodlabel="Chart Period"mappings=[0="H",1="D",2="W",3="M",4="Y"]Textitem=solaxAcPowericon="energy"valuecolor=[<=30="gray",<800="green",<1500="orange",>=1500="red"]Chartitem=solaxAcPowerperiod=hrefresh=600visibility=[Chart_Period==0]Chartitem=solaxAcPowerperiod=Drefresh=3600visibility=[Chart_Period==1]Chartitem=solaxAcPowerperiod=Wrefresh=3600visibility=[Chart_Period==2,Chart_Period==Uninitialized]Chartitem=solaxAcPowerperiod=Mrefresh=3600visibility=[Chart_Period==3]Chartitem=solaxAcPowerperiod=Yrefresh=3600visibility=[Chart_Period==4]}Textitem=solaxFeedInPowervaluecolor=[<=30="gray",<800="green",<1500="orange",>=1500="red"]{Switchitem=Chart_Periodlabel="Chart Period"mappings=[0="H",1="D",2="W",3="M",4="Y"]Textitem=solaxFeedInPowericon="energy"valuecolor=[<=30="gray",<800="green",<1500="orange",>=1500="red"]Chartitem=solaxFeedInPowerperiod=hrefresh=600visibility=[Chart_Period==0]Chartitem=solaxFeedInPowerperiod=Drefresh=3600visibility=[Chart_Period==1]Chartitem=solaxFeedInPowerperiod=Wrefresh=3600visibility=[Chart_Period==2,Chart_Period==Uninitialized]Chartitem=solaxFeedInPowerperiod=Mrefresh=3600visibility=[Chart_Period==3]Chartitem=solaxFeedInPowerperiod=Yrefresh=3600visibility=[Chart_Period==4]}}Framelabel="Battery"{Textitem=solaxBatteryPowervaluecolor=[<=-500="red",<0="orange",==0="gray",>0="green"]{Switchitem=Chart_Periodlabel="Chart Period"mappings=[0="H",1="D",2="W",3="M",4="Y"]Textitem=solaxBatteryPowericon="energy"valuecolor=[<-800="red",<0="orange",==0="gray",>=0="green"]Chartitem=solaxBatteryPowerperiod=hrefresh=600visibility=[Chart_Period==0]Chartitem=solaxBatteryPowerperiod=Drefresh=3600visibility=[Chart_Period==1]Chartitem=solaxBatteryPowerperiod=Wrefresh=3600visibility=[Chart_Period==2,Chart_Period==Uninitialized]Chartitem=solaxBatteryPowerperiod=Mrefresh=3600visibility=[Chart_Period==3]Chartitem=solaxBatteryPowerperiod=Yrefresh=3600visibility=[Chart_Period==4]}Textitem=solaxBatterySocvaluecolor=[<=30="red",<50="orange",>=50="green"]{Switchitem=Chart_Periodlabel="Chart Period"mappings=[0="H",1="D",2="W",3="M",4="Y"]Textitem=solaxBatterySocvaluecolor=[<=30="red",<50="orange",>=50="green"]Chartitem=solaxBatterySocperiod=hrefresh=600visibility=[Chart_Period==0]Chartitem=solaxBatterySocperiod=Drefresh=3600visibility=[Chart_Period==1]Chartitem=solaxBatterySocperiod=Wrefresh=3600visibility=[Chart_Period==2,Chart_Period==Uninitialized]Chartitem=solaxBatterySocperiod=Mrefresh=3600visibility=[Chart_Period==3]Chartitem=solaxBatterySocperiod=Yrefresh=3600visibility=[Chart_Period==4]}}