Skip to content
View in the app

A better way to browse. Learn more.

Universal Devices Forum

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.

solaredge plugin shutdown today by the company

Featured Replies

Much to my surprise, Solaredge shut down the V1 API today. I am investigating options to access the v2 API. So far it looks like free use of the new API will only allow much less frequent calls (maybe 1/hour) without paying $100+/mo for an upgraded rate plan. Stay tuned

  • Author

The solaredge v2 API comes along with a new tiered price structure for monitoring.

The free tier only allows 2000 credits per month which would only allow polling the inverter about once per hour. the next tier would allow polling every 15 minutes for $100/mo.

This is worthless for my applications. I used eisy-ai to generate a v2 plugin but in addition to the limited polling with the free or even the $100/mo tier it is missing many of the previous fields

My use of the mySolaredge app is also due to cease next May so I need to find a better way to poll the inverter.

I am working on a plugin for local connection to the inverter via the built in wired ethernet port on my SE7600-H inverter.

Many years ago I had software to pull data from both my inverters via the local IP address (one wired, the other wireless). I combined this with data from a energy monitor that CT's on the incoming connection from the grid. All this data went into a database.

I still have the code for that program but I don't use it anymore. I can dig back into it if you have any questions about using the local ip address to get data.

  • Author

If your code uses modbusTCP to access a solaredge inverter then absolutely , I'd love to see it. I've put examples of the problem I'm seeing in the modbusTCP forum.

Thanks

Yes, it does use modbusTCP, but it's in 'C' so I'll just post pseudo code here. This is a function that takes the IP address of the inverter and returns the watt-seconds generated over the past minute.

/* set up the context and connect to the inverter with ipaddress 'ip' */
mb = modbus_new_tcp(ip, 502);
modbus_connect(mb);

/* configure the modbus connection */
modbus_set_response_timeout(mb, 2, 0);
modbus_set_byte_timeout(mb, 0, 1000000);
modbus_set_slave(mb, 1); /* Set modbus slave ID */

/*
     * According to the sunspec, register 40094 is the
     * AC energy production over all time in watt-hours.
     * This is a 32bit value.
     *
     * Does this represent the power going out to both
     * the general output and the backup output?
     */
wh = read_32(mb, 40094);
sf = read_16(mb, 40096); /* scale factor: 1, .1, 10, 100 */

/* convert the register scale factor value to the actual scale */
/* sf == 0 then scalef = 1, sf == -2 then scalef = 100 */
modbus_close(mb);
modbus_free(mb);

ws = (long long)wh * (long long)factor * 3600LL;
ecm_log(L_INFO, "Inverter : %lld (w-h = %u  scalef = %u)\n", ws, wh, sf);
return ws; This is a 

I also have a solaredge meter installed and the code is basically the same as above, but uses different registers to get the imported and exported AC energy values.

The register reading functions look like:

/*
 * modbus_read_registers start register seems to be one off.
 * I.E. if I specify 40090 as the start I really read 40091
 *
 * So should I be subtracting one from the start register?
 */
static uint32_t read_32(modbus_t *mb, int reg) {
    int rc;
    uint16_t tab[2];
    uint32_t ret;
    rc = modbus_read_registers(mb, (reg - 1), 2, tab);
    if (rc != 2) {
        ecm_log(L_ERROR, "%s\n", modbus_strerror(errno));
        return 0;
    }

    ret = (tab[0] << 16) | tab[1];
    return ret;
}

Create an account or sign in to comment

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.