Sunpower PVS

I just got my solar system from Sunpower activated and since then I have been messing with the system to see how i can integrate it with Hubitat. They do not provide any api but I did found out that the "PV Supervisor" device does have a second Lan port with its own dhcp server for their installers to setup the system. A Rasbery PI acting as a bridge/proxy to the PVS device and a reverse proxy currently allows me to poll data from the device using an HTTP connection.

With this command:
"hostip"/cgi-bin/dl_cgi?Command=DeviceList
I get something similar to this which is all the data that I need from the PV Supervisor, the two meters(Production, Consumption) and each of the microinverters in the solar panels.

{
"devices": [
{
"CURTIME": "2019,05,11,16,53,53",
"DATATIME": "2019,05,11,16,50,00",
"DETAIL": "detail",
"DEVICE_TYPE": "PVS",
"HWVER": "6.0",
"MODEL": "PV Supervisor PVS6",
"SERIAL": "ZT01234567890ABCDEF",
"STATE": "working",
"STATEDESCR": "Working",
"SWVER": "2019.5, Build 4150",
"dl_comm_err": "270",
"dl_cpu_load": "0.57",
"dl_err_count": "0",
"dl_flash_avail": "86825",
"dl_mem_used": "41320",
"dl_scan_time": "0",
"dl_skipped_scans": "0",
"dl_untransmitted": "57",
"dl_uptime": "2181",
"panid": 1234567890
},
{
"CAL0": "50",
"CURTIME": "2019,05,11,16,53,53",
"DATATIME": "2019,05,11,16,53,45",
"DESCR": "Power Meter PVS6M01234567p",
"DEVICE_TYPE": "Power Meter",
"ISDETAIL": true,
"MODEL": "PVS6M0400p",
"OPERATION": "noop",
"PORT": "",
"SERIAL": "PVS6M01234567p",
"STATE": "working",
"STATEDESCR": "Working",
"SWVER": "3000",
"TYPE": "PVS5-METER-P",
"ct_scl_fctr": "50",
"freq_hz": "60.0859",
"net_ltea_3phsum_kwh": "198.92",
"origin": "data_logger",
"p_3phsum_kw": "1.9867",
"q_3phsum_kvar": "0.3025",
"s_3phsum_kva": "2.013",
"tot_pf_rto": "0.9882"
},
{
"CAL0": "100",
"CURTIME": "2019,05,11,16,53,53",
"DATATIME": "2019,05,11,16,53,45",
"DESCR": "Power Meter PVS6M01234567c",
"DEVICE_TYPE": "Power Meter",
"ISDETAIL": true,
"MODEL": "PVS6M0400c",
"OPERATION": "noop",
"PORT": "",
"SERIAL": "PVS6M01234567c",
"STATE": "working",
"STATEDESCR": "Working",
"SWVER": "3000",
"TYPE": "PVS5-METER-C",
"ct_scl_fctr": "100",
"freq_hz": "60.0859",
"net_ltea_3phsum_kwh": "-65.65",
"origin": "data_logger",
"p_3phsum_kw": "-1.55",
"q_3phsum_kvar": "-0.8042",
"s_3phsum_kva": "1.784",
"tot_pf_rto": "-0.8717"
},
{
"CURTIME": "2019,05,11,16,53,53",
"DATATIME": "2019,05,11,16,52,00",
"DESCR": "Inverter E00000000000001",
"DEVICE_TYPE": "Inverter",
"ISDETAIL": true,
"MODEL": "AC_Module_Type_E",
"MOD_SN": "P07M01234567",
"NMPLT_SKU": "",
"OPERATION": "noop",
"PORT": "",
"SERIAL": "E00000000000001",
"STATE": "working",
"STATEDESCR": "Working",
"SWVER": "118079776",
"TYPE": "SOLARBRIDGE",
"freq_hz": "59.99",
"i_3phsum_a": "0.51",
"i_mppt1_a": "2.47",
"ltea_3phsum_kwh": "13.0464",
"origin": "data_logger",
"p_3phsum_kw": "0.125",
"p_mpptsum_kw": "0.1282",
"stat_ind": "0",
"t_htsnk_degc": "29",
"v_mppt1_v": "51.82",
"vln_3phavg_v": "245.07"
},
{
"CURTIME": "2019,05,11,16,53,53",
"DATATIME": "2019,05,11,16,52,00",
"DESCR": "Inverter E00000000000002",
"DEVICE_TYPE": "Inverter",
"ISDETAIL": true,
"MODEL": "AC_Module_Type_E",
"MOD_SN": "P07M01234568",
"NMPLT_SKU": "",
"OPERATION": "noop",
"PORT": "",
"SERIAL": "E00000000000002",
"STATE": "working",
"STATEDESCR": "Working",
"SWVER": "118079776",
"TYPE": "SOLARBRIDGE",
"freq_hz": "59.99",
"i_3phsum_a": "0.51",
"i_mppt1_a": "2.49",
"ltea_3phsum_kwh": "13.0527",
"origin": "data_logger",
"p_3phsum_kw": "0.1271",
"p_mpptsum_kw": "0.1304",
"stat_ind": "0",
"t_htsnk_degc": "29",
"v_mppt1_v": "51.94",
"vln_3phavg_v": "244.82"
},
{
"CURTIME": "2019,05,11,16,53,53",
"DATATIME": "2019,05,11,16,52,00",
"DESCR": "Inverter E00000000000003",
"DEVICE_TYPE": "Inverter",
"ISDETAIL": true,
"MODEL": "AC_Module_Type_E",
"MOD_SN": "P07M01234569",
"NMPLT_SKU": "",
"OPERATION": "noop",
"PORT": "",
"SERIAL": "E00121852034919",
"STATE": "working",
"STATEDESCR": "Working",
"SWVER": "118079776",
"TYPE": "SOLARBRIDGE",
"freq_hz": "59.99",
"i_3phsum_a": "0.5",
"i_mppt1_a": "2.46",
"ltea_3phsum_kwh": "12.7868",
"origin": "data_logger",
"p_3phsum_kw": "0.125",
"p_mpptsum_kw": "0.1282",
"stat_ind": "0",
"t_htsnk_degc": "29",
"v_mppt1_v": "52.11",
"vln_3phavg_v": "244.64"
}
],
"result": "succeed"
}

Anyway to use this now to integrate to Hubitat? Anyone out there with a similar system that would like to collaborate?

1 Like

I found this installation manual. Seems that connected via ethernet you should be able to connect to the web interface.

  1. Turn laptop Wi-Fi off.
  2. Use an Ethernet cable to connect your laptop to either the PVS6 or the inverter
    based on installation type:
    • AC module or SMA US-22: Connect laptop to PVS6 LAN 1 port.
    • SMA US-40 inverter: Connect laptop to available communication port (A or B) in
    the last (only) inverter.
  3. Open a browser (the latest version of either Chrome or Firefox) and type:
    www.sunpowerconsole.com.
  4. Follow the PVS Management App onscreen instructions.
  5. Replace the PVS6 enclosure cover by snapping it into place.

The manual is here

This is for the installer to do the commission of the system but it does not provide any additional functionality.

I'm already connected to it and able to poll the data. I just need someone with more knowledge to help me integrate it with Hubitat by maybe creating an app than handles the polling and uses the data of the 3 discrete devices (PVS, Meter, Microinverter) to create child devices in Hubitat.

I would do it all in a device driver..
Poll every n mins.
Then output the data into device attributes..
Easiest way to do it unless you specifically need separate devices.

jrbandido can you give me a bunch more details of your setup? I have a rasp pi and I have the wifi on my network and a cable to the PVS, Nginx installed, etc... but I am missing something.

If you can help me with that, I am more than game to work on getting info out of the device. I want to feed it into Hubitat and then to my Grafana setup.

Honestly I don't remember how I got the raspberry pi setup. It took me hours to somehow create the reverse proxy/bridge.

I did took an existing driver and app and modified it to properly parse the data from the PVS. I then use influxDB app to transfer the data to another r-pi and then used Grafana to display the data. Its been working perfectly.

This should help. it has everything you need I just wrote my own exporter(drive/app) in hubitat but everything else is the same setup-wise.