Skip to content
View in the app

A better way to browse. Learn more.

Power Forum - Renewable Energy Discussion

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Connect Home Assistant with Sunsynk

Featured Replies

Hey! I'm new to Home Assistant. I have messed with it before in a VM but never took it serious because I didn't really bother to check it out properly. Now I'm shocked with what can be done with it!

I wanted to connect my HA installation HP600 Mini PC (8GB Ram , 512 SSD and some i3 CPU) After searching a little I and being a bit new to this I couldn't've really find a  quick and easy way to connect to my Sunsynk inverter in the cloud. I dont really care having updates by the second the refresh rate offered by sunsynk.net is good enough for me.

I'm not sure if the following will be helpful to anyone. But it works well for me. 

I created a simple HA add-on that will allow you to connect your Sunsynk.net account with your HA instance quick and easy without having to install any additional components.
Just add the repository to your HA Add-on store and install. 

All it its is a simple bash script making use of curl to fetch values from sunsynk.net and then those values are posted to some entities in HA. It doesn't come with any thing other than that. You can then add those entities to cards on your dashboard or even map them to the all so awesome card created by SlipX06

And it only supports 1 single inverter, and sunsynk.net region2

Full installation instructions here --> https://github.com/martinville/solarsynk/blob/main/DOCS.md
But if you are like me and you first want to try it and then read the manual 🙂  Here's the link to the repository https://github.com/martinville/solarsynk just add it to your HA store and install.
 

spacer.png

 

See working example in action.
spacer.png

For the sake of ease i named the entities exactly as shown in SlipX06's documentation to configure the card. Just substitute "Sunsynk" with "SolarSynk" or just copy the below setup config.

Lastly if you feel i missed some important data points let me know and I will add them.

type: custom:sunsynk-power-flow-card
cardstyle: lite
show_solar: true
battery:
  energy: 0
  shutdown_soc: 20
  show_daily: true
solar:
  show_daily: true
  mppts: 2
load:
  show_daily: true
grid:
  show_daily_buy: true
  show_daily_sell: false
  show_nonessential: true
entities:
  use_timer_248: switch.sunsynk_toggle_system_timer
  priority_load_243: switch.sunsynk_toggle_priority_load
  inverter_voltage_154: sensor.solarsynk_inverter_voltage
  load_frequency_192: sensor.solarsynk_load_frequency
  inverter_current_164: sensor.solarsynk_inverter_current
  inverter_power_175: sensor.solarsynk_inverter_power
  grid_connected_status_194: binary_sensor.solarsynk_grid_connected_status
  inverter_status_59: sensor.solarsynk_overall_state
  day_battery_charge_70: sensor.solarsynk_day_battery_charge
  day_battery_discharge_71: sensor.solarsynk_day_battery_discharge
  battery_voltage_183: sensor.solarsynk_battery_voltage
  battery_soc_184: sensor.solarsynk_battery_soc
  battery_power_190: sensor.solarsynk_battery_power
  battery_current_191: sensor.solarsynk_battery_current
  grid_power_169: sensor.solarsynk_grid_power
  day_grid_import_76: sensor.solarsynk_day_grid_import
  day_grid_export_77: sensor.solarsynk_day_grid_export
  grid_ct_power_172: sensor.solarsynk_grid_power
  day_load_energy_84: sensor.solarsynk_day_load_energy
  essential_power: none
  nonessential_power: none
  aux_power_166: sensor.sunsynk_aux_power
  day_pv_energy_108: sensor.solarsynk_day_pv_energy
  pv1_power_186: sensor.solarsynk_pv1_power
  pv2_power_187: sensor.solarsynk_pv2_power
  pv1_voltage_109: sensor.solarsynk_pv1_voltage
  pv1_current_110: sensor.solarsynk_pv1_current
  pv2_voltage_111: sensor.solarsynk_pv2_voltage
  pv2_current_112: sensor.solarsynk_pv2_current

Below is a full list of entities which will be populated. Note that these entities are created via the HA API and will be "Read-Only" you also cannot delete them. But dont be alarmed.
If you ever wish to remove them, you can just uninstall this addon and then gibe HA a reboot and they should go away on their own.


battery_capacity
battery_chargevolt
battery_current
battery_dischargevolt
battery_power
battery_soc
battery_temperature
battery_type
battery_voltage
day_battery_charge
day_battery_discharge
day_grid_export
day_grid_import
day_load_energy
day_pv_energy
grid_connected_status
grid_frequency
grid_power
inverter_current
inverter_frequency
inverter_power
inverter_voltage
load_current
load_frequency
load_power
load_totalpower
load_voltage
pv1_current
pv1_power
pv1_voltage
pv2_current
pv2_power
pv2_voltage
overall_state

 

 

 

 

 

 

 

 

Edited by MartinViljoen

  • Replies 97
  • Views 25.5k
  • Created
  • Last Reply

Top Posters In This Topic

Most Popular Posts

  • MartinViljoen
    MartinViljoen

    I made a major change to this add-on which resulted to a change in the entity names. Therefore I copied it over to a new repository and versioned it v2. The new version supports multiple inverters.

  • MartinViljoen
    MartinViljoen

    Update 2.1.8 now available. https://github.com/martinville/solarsynkv2 This update lets you send  inverter settings back to your inverter via HA -> SunsynkCloud -> Your inverter If you st

  • Giving it a go quickly. Worked well and recommend for someone not wanting to go through the whole node red process.

Posted Images

Am I correct that the add on only refreshes every 5 minutes @MartinViljoen?

If so is there any chance of having it refresh as per the setting we have set through Sunsynk like I have mine every 60 seconds?

Thinking of using your add on as my main add on instead of node red or have node red as a back up but would appreciate if the refresh could be a bit shorter.

  • Author

Sure.

Its a quick change. I updated it for you. The update rate is in seconds.

Just be aware if you set the refresh rate faster than what your dongle is updating SunSynk is a pointless exercise and you will most probably just fetch the same values over and over unstill SunSynk was updated. May be a wase of disk space. 

I'm not sure at what rate its being updated. Some say 3 minutes and some say 5. 
[EDIT] I see you mentioned that you are able to set the update rate on Sunsynk ? , Didnt know you can do that. Is it set in the portal or when you setup the dongle ? I unfortunately cannot change settings my installer locked me out, still fighting to get full rights.

But the setting is there now 😉


spacer.png

Edited by MartinViljoen

1 minute ago, MartinViljoen said:

Sure.

Its a quick change. I updated it for you. The update rate is in seconds.

Just be aware if you set the refresh rate faster than what your dongle is updating SunSynk is a pointless exercise and you will most probably just fetch the same values over and over unstill SunSynk was updated. You will most probably just wase disk space. 

I'm not sure at what rate its being updated. Some say 3 minutes and some say 5. 

But the setting is there now 😉


spacer.png

Ahh thanks man appreciate it!

  • Author

I made a major change to this add-on which resulted to a change in the entity names. Therefore I copied it over to a new repository and versioned it v2.
The new version supports multiple inverters. If you install this one you have to re-map the entities which are now prefixed with the inverter's serial number.

New Repository -> https://github.com/martinville/solarsynkv2

The previous one is still available here -> https://github.com/martinville/solarsynk but will not longer be updated.
Be aware the previous version has a bug that causes breaks in HA graphs due to null values. I.E When the grid disappears.

 

Example:

spacer.png

Below is the change log.

2023/11/12
Version: "1.1.1" - No Changes - New Implementation

2023/11/14
Version: "1.1.3" - Updated all energy related entity sensors with correct attributes (Affects all enteties with UOM kWh)

2023/11/16
Version: "1.1.4" - Added 2 more entities, sensor.solarsynk_grid_voltage and sensor.solarsynk_grid_current. Updated all entity devices classes except for Battery Capacity, Battery Type, Grid Connection Status and Inverter Overall State (No device class available)

2023/11/17
Version: "1.1.5" - Added more entities (Will return 0 or null if not available in your setup. battery1_voltage, battery1_current, battery1_power, battery1_soc, battery1_temperature, battery1_status, battery2_voltage, battery2_current, battery2_power, battery2_soc, battery2_temperature, battery2_status

2023/11/18
Version: "1.1.6" - Added setting to change the refresh rate (in seconds) to the configuration screen.

2023/11/19
Version: "2.1.2" - Added support for multiple inverters. Take note of a change in entity names. Entities are now prefixed with inverter serial numbers.

2023/11/21
Version: "2.1.3" - Bug Fix: Breaks in graphs are caused by null values. All nulls are converted to zero.

 

@slipx Thanks for the suggestions.

Cheers!

 

 

Edited by MartinViljoen

  • 3 weeks later...
20 hours ago, GRiLLA1234 said:

Looks good,

Any options to be able to trigger changes to the Sunsynk settings from HA ?

Dont think it is possible yet, I did see @MartinViljoen said he will look into the settings on his github repo. However not sure if it would be to set the settings or just to be able to read them.

Currently using Gary's node red flows to acheive this if you would like to look into it https://github.com/gdwaterworth/Home-Assistant---E-Linter-Logger---Sunsynk/tree/Stable-Release/V2.0, v2 is new so there is no documentation on it yet.

EDIT: Documentation is in the wiki.

Edited by Ronnie1102

On 2023/12/12 at 6:06 PM, GRiLLA1234 said:

Looks good,

Any options to be able to trigger changes to the Sunsynk settings from HA ?

 

8 hours ago, Ronnie1102 said:

Dont think it is possible yet, I did see @MartinViljoen said he will look into the settings on his github repo. However not sure if it would be to set the settings or just to be able to read them.

Currently using Gary's node red flows to acheive this if you would like to look into it https://github.com/gdwaterworth/Home-Assistant---E-Linter-Logger---Sunsynk/tree/Stable-Release/V2.0, v2 is new so there is no documentation on it yet.

EDIT: Documentation is in the wiki.

I'm using an ESP32 with RS485 to TTL board and code from Slipx to enable read/write to the inverter from within HA.  A Raspberry Pi with any of KellerZA's plugin options works nice too

On 2023/11/21 at 8:00 PM, MartinViljoen said:

I made a major change to this add-on which resulted to a change in the entity names. Therefore I copied it over to a new repository and versioned it v2.
The new version supports multiple inverters. If you install this one you have to re-map the entities which are now prefixed with the inverter's serial number.

New Repository -> https://github.com/martinville/solarsynkv2

The previous one is still available here -> https://github.com/martinville/solarsynk but will not longer be updated.
Be aware the previous version has a bug that causes breaks in HA graphs due to null values. I.E When the grid disappears.

 

Example:

spacer.png

Below is the change log.

2023/11/12
Version: "1.1.1" - No Changes - New Implementation

2023/11/14
Version: "1.1.3" - Updated all energy related entity sensors with correct attributes (Affects all enteties with UOM kWh)

2023/11/16
Version: "1.1.4" - Added 2 more entities, sensor.solarsynk_grid_voltage and sensor.solarsynk_grid_current. Updated all entity devices classes except for Battery Capacity, Battery Type, Grid Connection Status and Inverter Overall State (No device class available)

2023/11/17
Version: "1.1.5" - Added more entities (Will return 0 or null if not available in your setup. battery1_voltage, battery1_current, battery1_power, battery1_soc, battery1_temperature, battery1_status, battery2_voltage, battery2_current, battery2_power, battery2_soc, battery2_temperature, battery2_status

2023/11/18
Version: "1.1.6" - Added setting to change the refresh rate (in seconds) to the configuration screen.

2023/11/19
Version: "2.1.2" - Added support for multiple inverters. Take note of a change in entity names. Entities are now prefixed with inverter serial numbers.

2023/11/21
Version: "2.1.3" - Bug Fix: Breaks in graphs are caused by null values. All nulls are converted to zero.

 

@slipx Thanks for the suggestions.

Cheers!

 

 

Hi there,

 

Thanks for this add-on. Looks like this one will work well for my the setup my brother has. He has two 8kW inverters with two arrays to each inverter.

 

Stupid question from my side, how to do I add the second inverter? Must I use a comma after entering the first one?

 

**edit**

 

Managed to find the answer here https://github.com/martinville/solarsynkv2/blob/main/DOCS.md

Just to point out, the repo is linking to the old document and not to ver2 doc.:)

image.png.47b8b288de8f774ca97a272b7b632474.png

 

With that said I did separate the inverter nos with a ; but it still only reads the one inverter.

Edited by Hunted
update

On 2023/11/18 at 5:24 AM, Ronnie1102 said:

Am I correct that the add on only refreshes every 5 minutes @MartinViljoen?

If so is there any chance of having it refresh as per the setting we have set through Sunsynk like I have mine every 60 seconds?

Thinking of using your add on as my main add on instead of node red or have node red as a back up but would appreciate if the refresh could be a bit shorter.

Thank you for the info! 

How do you get Sunsynk to update more frequently than every 5min? 

Is it possible to get more frequent updates? 

 

  • 3 weeks later...
  • Author

I made some further changes.

  • Added support for people who has a signed SSL certificate attached to their HA installation. Previously it was hard coded to post values to entities using straight HTTP.
  • Added the ability to change the port number in the setup.
  • Added an option to reduce the log output but with the option to still dump using verbose mode.
  • Changed the password and HA long-lived token field to be masked

The following is coming soon.
I also added the ability to change inverter settings. Right now on my test environment its working great.
It works by setting the value of an entity to the setting you want to update. I.E If you set the value of entity 

sensor.solarsynk_INVERTERSERIAL_inverter_settings

with value

{"batteryCap": "100"}

or

{"batteryCap": "99","facHighProtect": "51.5"}

Example

spacer.png

 

The Solarsynk addon will grab it and post to the Sunsynk cloud which wil eventually be sent back to your inverter. After successfully posting it it will clear it out the entity so that it wont send it over and over.

Only problem is i'm not so familiar with HA and cannot find a way to change the state of an entity via automation. Therefore the version that allows you to change settings is not yet available. Once I find a solution I will offcoarse make it available on the repository.

Cheers

 

**EDIT**
Forgot to add the below, its a full list of settings that can be changed. I have an idea if you try changing the serial it will most probably not save it. and I'm sure there are other values that cannot be changed.

 

Battery Settings
{
    "absorptionVolt": "57.6",
    "battMode": "-1",
    "batteryCap": "100",
    "batteryEfficiency": "99",
    "batteryEmptyV": "45",
    "batteryImpedance": "8",
    "batteryLowCap": "35",
    "batteryLowVolt": "47.5",
    "batteryMaxCurrentCharge": "40",
    "batteryMaxCurrentDischarge": "70",
    "batteryOn": "1",
    "batteryRestartCap": "50",
    "batteryRestartVolt": "52",
    "batteryShutdownCap": "20",
    "batteryShutdownVolt": "46",
    "bmsErrStop": "0",
    "disableFloatCharge": "0",
    "equChargeCycle": "90",
    "equChargeTime": "0",
    "equVoltCharge": "57.6",
    "floatVolt": "55.2",
    "genChargeOn": "0",
    "genSignal": "1",
    "generatorBatteryCurrent": "40",
    "generatorForcedStart": "0",
    "generatorStartCap": "30",
    "generatorStartVolt": "49",
    "gridSignal": "1",
    "lithiumMode": "0",
    "lowNoiseMode": "8000",
    "lowPowerMode": "0",
    "safetyType": "0",
    "sdBatteryCurrent": "40",
    "sdChargeOn": "1",
    "sdStartCap": "30",
    "sdStartVol": "undefined",
    "sdStartVolt": "49",
    "signalIslandModeEnable": "0",
    "sn": "123456",
    "tempco": "0"
}



SYSTEM MODE
{
    "battMode": "-1",
    "cap1": "80",
    "cap2": "80",
    "cap3": "80",
    "cap4": "80",
    "cap5": "80",
    "cap6": "80",
    "energyMode": "0",
    "fridayOn": true,
    "genTime1on": false,
    "genTime2on": false,
    "genTime3on": false,
    "genTime4on": false,
    "genTime5on": false,
    "genTime6on": false,
    "mondayOn": true,
    "peakAndVallery": "0",
    "pvMaxLimit": "5000",
    "safetyType": "0",
    "saturdayOn": true,
    "sellTime1": "01:00",
    "sellTime1Pac": "5000",
    "sellTime1Volt": "49",
    "sellTime2": "05:00",
    "sellTime2Pac": "5000",
    "sellTime2Volt": "49",
    "sellTime3": "09:00",
    "sellTime3Pac": "5000",
    "sellTime3Volt": "49",
    "sellTime4": "13:00",
    "sellTime4Pac": "5000",
    "sellTime4Volt": "49",
    "sellTime5": "17:00",
    "sellTime5Pac": "5000",
    "sellTime5Volt": "49",
    "sellTime6": "21:00",
    "sellTime6Pac": "5000",
    "sellTime6Volt": "49",
    "sn": "123456",
    "solarMaxSellPower": "6500",
    "solarSell": "0",
    "sundayOn": true,
    "sysWorkMode": "1",
    "thursdayOn": true,
    "time1on": true,
    "time2on": true,
    "time3on": true,
    "time4on": true,
    "time5on": true,
    "time6on": true,
    "tuesdayOn": true,
    "wednesdayOn": true,
    "zeroExportPower": "20"
}



GRID Settings
{
    "acType": "0",
    "cQEnable": "undefined",
    "caFStart": "50.2",
    "caFStop": "-0.01",
    "caFwEnable": "0",
    "caHf1": "undefined",
    "caHf2": "undefined",
    "caHv1": "undefined",
    "caHv2": "undefined",
    "caLf1": "undefined",
    "caLf2": "undefined",
    "caLv1": "undefined",
    "caLv2": "undefined",
    "caLv3": "1850",
    "caVStart": "250.7",
    "caVStop": "253",
    "caVoltPressureEnable": "0",
    "caVwEnable": "0",
    "californiaFreqPressureEnable": "-1",
    "californiaVoltPressureEnable": "1",
    "euOrUl": "undefined",
    "fac": "0",
    "facHighProtect": "51.5",
    "facLowProtect": "48",
    "genConnectGrid": "0",
    "gridMode": "0",
    "gridPeakPower": "8000",
    "gridPeakShaving": "0",
    "highThrough": "115",
    "inverterOutputVoltage": "0",
    "lockInVoltVar": "20.0",
    "lockInWattPF": "286.8",
    "lockOutVoltVar": "5.0",
    "lockOutWattPF": "-169.0",
    "lowThrough": "50",
    "normalUpwardSlope": "60",
    "notGrounded": "undefined",
    "overFreq1": "51.5",
    "overFreq1Delay": "0.1",
    "overFreq2": "51.5",
    "overFreq2Delay": "0.1",
    "overFreqEnable": "undefined",
    "overLongVolt": "260",
    "overVolt1": "265",
    "overVolt1Delay": "0.1",
    "overVolt2": "265",
    "overVolt2Delay": "0.1",
    "pf": "1",
    "phase": "0",
    "reconnMaxFreq": "51.3",
    "reconnMaxVolt": "263",
    "reconnMinFreq": "48.2",
    "reconnMinVolt": "187",
    "recoveryTime": "60",
    "rsd": "1",
    "sn": "123456",
    "softStart": "60",
    "solar1WindInputEnable": "12",
    "solar2WindInputEnable": "60",
    "underFreq1": "48",
    "underFreq1Delay": "0.1",
    "underFreq2": "48",
    "underFreq2Delay": "0.1",
    "underVolt1": "185",
    "underVolt1Delay": "0.1",
    "underVolt2": "185",
    "underVolt2Delay": "0.1",
    "underVolt3Delay": "undefined",
    "vacHighProtect": "265",
    "vacLowProtect": "185",
    "varQac1": "44",
    "varQac2": "0",
    "varQac3": "0",
    "varQac4": "-60",
    "varVolt1": "90.0",
    "varVolt2": "95.7",
    "varVolt3": "104.3",
    "varVolt4": "112.2",
    "varVoltEnable": "0",
    "wattActivePf1": "286",
    "wattActivePf2": "-321",
    "wattActivePf3": "65",
    "wattActivePf4": "-170",
    "wattFreqEnable": "0",
    "wattOverExitFreq": "50.2",
    "wattOverExitFreqStopDelay": "0",
    "wattOverFreq1": "50.2",
    "wattOverFreq1StartDelay": "0",
    "wattOverWgralFreq": "40",
    "wattPf1": "28.677",
    "wattPf2": "-22.637",
    "wattPf3": "-32.052",
    "wattPf4": "-17.516",
    "wattPfEnable": "-6046",
    "wattUnderExitFreq": "49.8",
    "wattUnderExitFreqStopDelay": "0",
    "wattUnderFreq1": "49.8",
    "wattUnderFreq1StartDelay": "0",
    "wattUnderWgalFreq": "40",
    "wattV1": "109.0",
    "wattV2": "110.0",
    "wattV3": "111.0",
    "wattV4": "111.0",
    "wattVarActive1": "-7",
    "wattVarActive2": "-292",
    "wattVarActive3": "-48",
    "wattVarActive4": "-141",
    "wattVarEnable": "-27114",
    "wattVarReactive1": "-36",
    "wattVarReactive2": "-247",
    "wattVarReactive3": "94",
    "wattVarReactive4": "88",
    "wattVoltEnable": "0",
    "wattW1": "100",
    "wattW2": "20",
    "wattW3": "20",
    "wattW4": "20",
    "zeroExportPower": "20"
}


Auxiliry Load
{
    "acCoupleFreqUpper": "52",
    "acCoupleOnGridSideEnable": "0",
    "acCoupleOnLoadSideEnable": "0",
    "battMode": "-1",
    "genConnectGrid": "0",
    "genMinSolar": "0",
    "genOffCap": "95",
    "genOffVolt": "51",
    "genOnCap": "100",
    "genOnVolt": "54",
    "genPeakPower": "8000",
    "genPeakShaving": "0",
    "gridAlwaysOn": "0",
    "loadMode": "0",
    "safetyType": "0",
    "sn": "123456"
}

Basic Settings
{
    "ampm": "0",
    "autoDim": "1",
    "beep": "1",
    "sn": "123456",
    "timeSync": "0"
}

Advanced Settings
{
    "atsEnable": "0",
    "atsSwitch": "0",
    "backupDelay": "0",
    "bmsErrStop": "0",
    "current1": "490",
    "current10": "0",
    "current11": "0",
    "current12": "0",
    "current2": "490",
    "current3": "490",
    "current4": "490",
    "current5": "8",
    "current6": "0",
    "current7": "0",
    "current8": "0",
    "current9": "0",
    "drmEnable": "0",
    "equipMode": "0",
    "exMeterCtSwitch": "0",
    "externalCtRatio": "2000",
    "genPeakPower": "8000",
    "genPeakShaving": "0",
    "gridAlwaysOn": "0",
    "gridPeakPower": "8000",
    "gridPeakShaving": "0",
    "gridSideINVMeter2": "0",
    "meterA": "0",
    "meterB": "0",
    "meterC": "0",
    "meterSelect": "0",
    "micExportGridOff": "0",
    "modbusSn": "1",
    "parallel": "0",
    "phase": "0",
    "remoteLock": "0",
    "sensorsCheck": "-1",
    "sn": "123456",
    "solar1WindInputEnable": "12",
    "solar2WindInputEnable": "60",
    "solarMaxSellPower": "6500",
    "volt1": "10.8",
    "volt10": "500",
    "volt11": "490",
    "volt12": "490",
    "volt2": "15.6",
    "volt3": "20.4",
    "volt4": "25.2",
    "volt5": "500",
    "volt6": "500",
    "volt7": "500",
    "volt8": "500",
    "volt9": "500"
}

 

Edited by MartinViljoen

  • Author

Update 2.1.8 now available. https://github.com/martinville/solarsynkv2
This update lets you send  inverter settings back to your inverter via HA -> SunsynkCloud -> Your inverter

If you start the new updated add-on for the first time you will get the below message in the log, notifying you that it cannot find an helper entity.

Manually create it as shown below. (You have to do this for all inverters if you are using multiple)

spacer.png

spacer.png

After you created the Helper entity which ever value you set it to will be used to send to the Sunsynk.net cloud. There's no error checking in the value so if you just add junk the synsynk API will simply reject it with an error. As mentioned in the previous post a valid entry would be something like this. And also see the long list of possible settings that you can change.
 

{"batteryCap": "99","facHighProtect": "51.5"}

 

If you want to change settings using automation that are based an certain variables I.E loadshedding statuses ect ect you can add an action to your automation as shown below.

 

spacer.png

 

Note!: The string you enter into the helper entity will only be read once the script loop based on the refresh rate that you entered. (Default is 300 secs)

If you find issues with this let me know.

Some settings does not like to be written by its own. I.E basic settings as a setting called {"beep":"1"}  but if you send Beep only it will not write the change although its reporting success. You have to write all of the settings like so.

 

{
    "ampm": "0",
    "autoDim": "1",
    "beep": "1",
    "sn": "2302246241",
    "timeSync": "1"
}

 

Thank you very much for this @MartinViljoen!

Very easy and quick to setup with no hardware needed.

Updated Sunsynk user level to Advanced and getting 60 second updates now which for my use is more than sufficient.

Getting values for 2 inverters connected in parallel, working great!

For values eg. _day_pv_energy am I on the right track creating custom sensors and adding up the values from both Inverters, eg.:

name: "solarsynk_(Inv 1 serial)_(Inv 2 serial)_pv_power_total"
      unit_of_measurement: "W"
      state: >
          {{ (((states.sensor.solarsynk_(Inv 1 serial)_pv1_power.state | float)) + ((states.sensor.solarsynk_(Inv 2 serial)_pv1_power.state | float))) | round(2) }}
      icon: mdi:solar-power-variant-outline

Then mapping this custom sensor to eg the slipx flow chart?

Thank you for this integration! Making live easy!

I'm new on this Forum but thought I pop in to this thread to say thanks to you Martin for this excellent project. I'm using it for three SunSynk inverts and it works great.  

The only problems I have are mainly internet related. Thanks for sharing this ....

Edited by Perfo

  • 1 month later...

Hi,

I'm new to this forum and have a SunSynk hybrid inverter and make use of this great project. Thanks Martin.

I was looking for the Auxiliarly entities. I have a generator attached to this port and also would like to display them in my Home Assistant.

Are they also fetched and send to Home Assistant? I can't seem to find them.

  • 1 month later...

I've been using this for a few weeks now, seems very good.

Couple of things I've noticed:

After a reboot/update Entities seem to disappear from HA, but come back after a few minutes.

 

I have a flow set up to tell me when the battery is full

if battery SOC >=100 for 5 minutes then notify

Over the last few days I've found it got triggered a lot.

I assumed maybe something was using enough battery to pull it down to 99% then it goes back up to 100 and triggers another notification.

However, looking in HA I see there are gaps in the data. This seems to have started a few days ago.

Any ideas what is going on with that?


image.png.c39684877060bc1b0125aeacf8bae72e.pngimage.png.f5c34d82156f042409610698c050cec6.png

  • Author

Hi, yes Sunsynk made allot of changes over the last month or so which resulted in some downtime. Also their new certificate which was renewed on the 13th of march has strange behavior. Curl would randomly not be able to verify the validity of their SSL certificate.

When the addon cannot retrieve a valid API token due to the above errors it continues to try an populate values which then causes error on error.

I made a few changes.

1. When there are connection errors or certificate errors It will exit to the end of the loop but not exit the loop. This will prevent the gaps you see in the above graph and keep on trying until it get's valid data. This also means any cards you have will keep showing the last value it retrieved until the problem resolves it self.

2. I unfortunately had to add the -k option to curl so that it will not validate the certificate. I don't know what's up with their certificate but something isn't right.
Perhaps they have some load balancing across multiple IPs  and their config is not quite setup correctly for SSL validation.

3. If there is an error, it will dump a very detailed reason for the error using the  curl verbose option.

The update is anow available. Most if not all the issues should now be resolved.
 

2024/04/01

Version "2.1.13" - Prevent add-on from continuing on connection errors. Also added the -k option to curl commands which will ignore checking if a certificate is valid. On connection error more detailed information generated by curl will be dumped.

 

Hope this helps.

 

 

 

 

@MartinViljoen this is fantastic. Thank you for your efforts. I have been trying to get NodeRed running for ages and just haven't been able to get it to work. You have mostly fixed this problem for me.

I had one question: Any chance of adding support for the 3 phase units?

  • Author
On 2024/04/02 at 10:29 AM, jJasG said:

What's the API endpoint for the curl call?

The endpoint for their api is api.sunsynk.net and their certificate was generated with a wildcard *.sunsynk.net so they use the same certificate for both the portal and api.
 

@Daranger What would the difference be in terms of the API when it comes to normal Phase vs 3 Phase ? I gathered and created the  documentation  using MITM proxy in Kali Linux. So its quite possible that my setup is not showing any of the 3phase values when monitoring with a MITM proxy.

Edited by MartinViljoen

  • Author

Anyone care to vote ?

With the help of a forum member I'm now able to gather data for  3Phase systems.

If I combine the new changes with the existing addon it will generate extra HA  entities for the extra phases.
Seeing these setup are usually more industrial there will also be more MPPTs which translates to even more HA entities.
also more loads per phase , again more entities.

Not sure if its just me but I have OCD towards the cluttering of information that I dont need, So if it was me I would not want to see the extra entities.

I can either combine or create a replica repo for 3 Phase inverters 

 

What's you opinion ?

 

 

 

 

 

 

 

2 hours ago, MartinViljoen said:

Anyone care to vote ?

With the help of a forum member I'm now able to gather data for  3Phase systems.

If I combine the new changes with the existing addon it will generate extra HA  entities for the extra phases.
Seeing these setup are usually more industrial there will also be more MPPTs which translates to even more HA entities.
also more loads per phase , again more entities.

Not sure if its just me but I have OCD towards the cluttering of information that I dont need, So if it was me I would not want to see the extra entities.

I can either combine or create a replica repo for 3 Phase inverters 

 

What's you opinion ?

 

 

 

 

 

 

 

Hello Martin,

It would be great to potentially build your integration to have some form of settings profiles as to the system setup and how your solution processes the creation of entities.

There will also be differences between the regular 3 phase systems and the 3 phase high voltage systems.

It may make sense to development work of the integration in a branch for 3phase and possible 3phase hv.

PS. Does your integration self clean stale entities after corrections like with the battery data? Where does your solution store the entity data and is there a reasion that you have not included unique id data for entites? If your solution uses templating then it would also be advisable to look at using the availability feature in templating to help with filtering bad data or errors.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.