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.

949BFN

Members
  • Joined

  • Last visited

Reputation Activity

  1. Like
    949BFN reacted to slipx in SunSynk WiFi Dongle Hacking.   
    Have a look at the card I created for HA. I'm sure you can pull all the necessary sensor data through the API. 

     This is what my dashboard currently looks like


  2. Like
    949BFN reacted to Gary Waterworth in SunSynk WiFi Dongle Hacking.   
    Useful Endpoints and Information.
    My flows are being changed daily atm with error checking and optimisation. When I have things more stable I will post an export.
    I must admit I love NodeRed integration in Home Assistant. Makes things like this easy to do with minimal outside components required.
    General Function Code I use to pass into the web request :
    I save the access token and inverter serial number into 2 sensors beforehand so they can be reused
    var states = global.get('homeassistant.homeAssistant.states'); var bearer = states["sensor.sunsynk_access_token"]; var sn = states["sensor.sunsynk_serial_number"]; msg.headers = { Authorization: "Bearer " + bearer.state, "Content-Type": "application/json", "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36", "Connection": "keep-alive", "Accept": "*/*", "Cache-Control": "no-cache", "Origin": "https://sunsynk.net", "Referrer": "https://sunsynk.net" } msg.url = "http://pv.inteless.com/api/v1/inverter/battery/" + sn.state + "/realtime?sn=" + sn.state + "&lan"; msg.payload=""; return msg; Example of Function Code to extract what is needed. ( This was for Invertor Temperature )
    var origpayload = msg.payload; if (origpayload.msg == "Success") { msg.payload = msg.payload.data.temp; node.status(msg.payload); return msg } else { msg.payload = ""; node.status("Error") return null; } Various URLS;
     
    There is obv a lot more data being returned returned that can be used as seen above. I am only extracting detail into sensors that I am actually using atm.
    It is fairly straightforward to get the urls needed. Just needs some technical skill. If anyone is interested I will help privately.  And no its not Wireshark. There is ssl decoding required.
    I am still working on getting settings back into Inverter. Having to b a lot more carefull with my testing.
    The requests below can be done http or https. Just using http for now while i test
    Get Bearer Token : POST : http://pv.inteless.com/oauth/token ( Format as per prev post above ) Get List of Invertors : GET : "http://pv.inteless.com/api/v1/inverters?page=1&limit=10&total=0&status=-1&sn=&plantId=&type=-2&softVer=&hmiVer=&agentCompanyId=-1&gsn=" Get Battery Info : GET : "http://pv.inteless.com/api/v1/inverter/battery/" + sn.state + "/realtime?sn=" + sn.state + "&lan" Get Grid Info : Get : "http://pv.inteless.com/api/v1/inverter/grid/" + sn.state + "/realtime?sn=" + sn.state Get Load Info : Get : "http://pv.inteless.com/api/v1/inverter/load/" + sn.state + "/realtime?sn=" + sn.state Get Input Info ( PV Etc ) : Get : "http://pv.inteless.com/api/v1/inverter/" + sn.state + "/realtime/input" Get Invertor Settings : Get : "http://pv.inteless.com/api/v1/common/setting/" + sn.state + "/read"  
  3. Like
    949BFN reacted to frankie in SunSynk WiFi Dongle Hacking.   
    To confirm do you want to pull the firmware from the nodemcu, or just utilise their API?
     
    It might be easier to just write some HA integration which directly talks to the SunSynk cloud APIs to pull the data.
    For the SynSynk API see below.
    Login and obtain bearer token
    https://pv.inteless.com/oauth/token
    POST /oauth/token HTTP/2 Host: pv.inteless.com Content-Length: 103 Accept: application/json Content-Type: application/json;charset=UTF-8 Sec-Ch-Ua-Mobile: ?0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36 Origin: https://sunsynk.net Referer: https://sunsynk.net/ Accept-Encoding: gzip, deflate Accept-Language: en-GB,en-US;q=0.9,en;q=0.8 {"username":"XXXXXX","password":"XXXXXX","grant_type":"password","client_id":"csp-web"} Some endpoints
    api/v1/plants
    api/v1/plant/energy/XXXX/flow
    api/v1/inverters
    api/v1/inverter/XXXX/realtime/output
    api/v1/inverter/XXXX/realtime/input
    api/v1/inverter/battery/XXXXX/realtime
    Then you can utilise the bearer token to extract data from the APIs.
    Use the below to obtain your PlantID. Change the XXXXX with your bearer token.
    GET /api/v1/plants?page=1&limit=10&name=&status= HTTP/2 Host: pv.inteless.com Accept: application/json Authorization: Bearer XXXXXXX User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36 Origin: https://sunsynk.net Referer: https://sunsynk.net/ Accept-Encoding: gzip, deflate Accept-Language: en-GB,en-US;q=0.9,en;q=0.8 The below will give you general FLOW data for a given date e.g. battPower, load etc.
    Change the XXXXX with your bearer token and your plantID.
    GET /api/v1/plant/energy/XXXXX/flow?date=2022-07-16 HTTP/2 Host: pv.inteless.com Accept: application/json Authorization: Bearer XXXXXX Sec-Ch-Ua-Mobile: ?0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36 Origin: https://sunsynk.net Referer: https://sunsynk.net/ Accept-Encoding: gzip, deflate Accept-Language: en-GB,en-US;q=0.9,en;q=0.8 If you want to directly query raw output from your inverter, then you have to obtain the InverterID first.
    Change XXXX with your bearer token.
    GET /api/v1/inverters?page=1&limit=10&total=0&status=-1&sn=&plantId=&type=-2&softVer=&hmiVer=&agentCompanyId=-1&gsn= HTTP/2 Host: pv.inteless.com Accept: application/json Authorization: Bearer XXXXXX User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36 Origin: https://sunsynk.net Referer: https://sunsynk.net/ Accept-Encoding: gzip, deflate Accept-Language: en-GB,en-US;q=0.9,en;q=0.8 Then you can plugin it at several spots in the API. 
    Change XXXXX with your inverter ID and your bearer token.
    GET /api/v1/inverter/XXXXXX/realtime/output HTTP/2 Host: pv.inteless.com Accept: application/json Authorization: Bearer XXXX User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/99.0.4844.74 Safari/537.36 Origin: https://sunsynk.net Referer: https://sunsynk.net/ Accept-Encoding: gzip, deflate Accept-Language: en-GB,en-US;q=0.9,en;q=0.8  
    Welcome to msg me if you want to know more. If you do ever do some integration in HACS please share. I've not gone so far as to actually write something, but should be easy. 
  4. Like
    949BFN reacted to system32 in Sunsynk 8kw no output on load   
    Here are my notes on the SunSynk 8k on the v7 Dec 2021 manual:
    https://www.sunsynk.org/manuals

    These notes are for a
    SynSynk 8k PV Lithium battery Zero Export (self consumption) no generator all loads on "Critical" If you have no PV or no Lithium or are exporting, then these notes are not for you.

    My use case is as follows:
    During day, use solar to run house and charge the lithium battery At night, use battery until 20% then use grid At night, if no grid (load shedding), use further 10% of battery then shutdown. At night, if grid returns, charge battery to 20% First set the Lithium Battery up as per manual section 5.13 Setting Up a Lithium Battery
    Note that the charge / discharge Amps in image below is at 48V.
    The charge / discharge Amps in the image needs to be below the "C" rating of your battery bank.
    This needs to be below the "C" rating of your battery bank.

    If you have 4 batteries in parallel, the charge/discharge current (Amps) increases by 4.
    I have 6.4kWp of PV and 4x100Ah 1C batteries.
    I use 150A at 48V = 7200W (150A/4=37.5A) which is less than each AM2 battery Amp and "C" rating.
    Initially I had an 85A charge setting, and this limited the PV to battery charge to about 4000W. 
    After changing to 150A (48V) the batteries charge at ~6kW from the PV or ~1.5kW into each battery (at PV peak period).

    It is highly recommended to connect the BMS to the inverter via a suitable CANbus or RS485 Modbus cable.
    This allows the BMS to accurately control the charge from the inverter.
    Confirm the communications is working via LI-BMS, you should see something like the left panel above.
    If you get the screen on the right (just numbers), then the communications is not working.
    Try updating the Inverter / battery firmware.
    Support for new batteries is being added to the SunSynk firmware continuously.
    The Dec 2021 Installer Manual has 43 different Lithium batteries listed.

    --
    Second set the Charge Amps and Tick Grid Charge as per manual section "5.11 Generator and Battery Page"
    I use 60A setting which at 48V is 2880W

    I have a relay that bonds neutral/earth connected to earth spikes when there is no grid.
    See https://www.sunsynk.org/post/automatic-neutral-earth-bond
    --
    Third set the Shutdown % as per section "5.12 Battery Discharge Page"
    I use shutdown 10% for a lithium battery - remember 10% is only if there is no grid and no solar (load shedding at night)
    Normally the inverter will discharge the battery to the SOC/V (20%) setting in System Work Mode 1 below, then switch to grid.
    The inverter will restart when 15% SoC reached (charged from 10%)


    --

    Fourth is System Mode - these settings are confusing as they have different rolls see Section "5.14 Program Charge / Discharge Times"
    Charge / Discharge Times are designed for "Time-of-Use" functionality and grid export.
    The idea behind of TOU is to load shift from peak to off-peak and export/use battery during peak and charge during off peak.
    I don't use TOU or export, but these settings are required to ensure the inverter works as I want.
    Since I don't do TOU, I've used the same settings for all the periods - 20% SoC & Grid Charge ticked.

    I could only get the inverter to work as I expected when I ticked "Use Timer" - else it seem to work like a UPS.
    I set my SOC/V to 20% and ticked "Grid" [Charge] as per image above.
    Grid Charge is only dune under specific circumstances from 10% (Shutdown) to 20% (SOC/V) and is not normally used.
    See "Grid Returns" below for effect of Grid Charge tick.
    Note: I don't have anything on the Grid Side or Aux (Gen) Load - I do have a CT coil on the Grid side.

    How it works with the above settings

    Day Operation
    The inverter will use Solar to power the Loads and excess to charge the battery to 100%
    Once the battery reaches 100% about 11:30am, the excess is not used as I have zero export ticked.

    Night Operation (or no sun) & grid available
    Battery above 20%, the inverter will use the battery to power the load (note I don't have anything on the Grid side or Aux side)
    Battery at 20%, the inverter will use the grid to power the load.
    The battery will drain from 100% to 20% and stop and switch to grid.
    The battery will remain at 20% waiting for Solar.
    There will always be a 10% reserve in the event of no grid (see "No Grid" below).

    No Grid (Load Shedding) at night
    The inverter will use the battery from 100% to 20% then to 10% to power the load.
    Battery at 10%, the inverter will shutdown.

    Grid Returns (after Load Shedding) at night
    IF you have "Grid" charge ticked AND Battery < 20% THEN
       The inverter will use grid to charge to 20% and stop charging the battery at 20%.
    END IF
    Once Solar returns, Solar will to charge the battery.
    Note: Battery will hardly ever go below 20%. You need to be at 20% first when load shedding happens.

    EDIT1:
    One last tip - if LI-BMS is not working, ensure your inverter firmware is current as new battery support is being added all the time:
    Nov 2021 Installer Manual had 28 Lithium batteries listed
    Dec 2021 Installer Manual has 43 Lithium batteries listed

    I found the below video on the Deye to be of some help in explaining TOU
    Use pause/slow motion to see the animations.
    https://youtu.be/79IUkH3tPQ8

    EDIT2:
    Clarity on Amp and "C" for battery bank.
    EDIT3:
    Clarity on the "Grid Tick" in Work Mode 1

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.