Options for Sunpower solar integration?

You’ll need a second compatible usb to ethernet dongle as well as an additional ethernet cable run to the pvs6 to use the travel router. Alternatively you could use the cable that is there now and connect that to the other USB port and connect the PVS6 to your network with wifi.

The api is only accessible on the service port, not the port usb to provide it access to the internet.

That’s how I have mine connected, two ethernet cables come into the house connected to 2 different dongles, one provides internet access through my router and the other goes to a spare router I use to bridge the network the PVS6 puts out and my own network.

You can open the PVS6 with a key or screw driver fairly easily. There’s a tab on the bottom you pry to pop the cover off. My installers had apparently never seen the version with USB ports before and tried connecting the ethernet cable directly to the built in ethernet ports. This did nothing and they eventually gave up and asked for my wifi password. If your installer ever asked for your wifi, chances are it’s already connected to your network via wifi. I don’t believe USB dongles are part of the install kit so I’d be surprised if they just happened to have one.

2 Likes

Okay, this makes things much clearer. It’s raining, but after it clears up I’ll take a look in the box; I assume I have the model w/o ethernet ports, but WAN and LAN USB ports instead. So presumably then, the installers have the hard line connected from the WAN port to my home wifi router, and I should still be able to tap into the LAN port with a travel router. So basically the same setup as typically recommended, just with an extra wire in the enclosure for the hard line into my house.

Thank you! I’ll update if I find anything weird once I get the case open.

Anyone have configuration steps for EdgeOS, I have an ERLite-3 so it has an extra eth port. I’m trying to connect the PVS6 directly to eth2. I was able to manually configure eth2 with 172.27.153.2/24 and using the CLI within edgeOS I can ping and curl 172.27.153.1. Next I tried moving to a PC on my local network to ping 172.27.153.1 but it doesn’t work. I tried a few DNAT rules and then tried using a VLAN but I haven’t figured either out yet.

Figured it out see below comment.

Here are instructions for anyone using a router running EdgeOS and just wants to plug the PVS directly into one of the unused eth ports.

  • Plug in PVS to unused eth port (I used eth2)
  • On dashboard page config eth2. Pick Manually defined IP address and use 172.27.153.254/24
  • At this point you should be able to open the CLI in EdgeOS and ping 172.27.153.1
  • On Firewall/NAT → NAT tab create a new source NAT rule. Outbound interface is eth2. Select Use Masquerade. Click Save.
  • Now from a PC on your primary local network you should be able to curl http://172.27.153.1/cgi-bin/dl_cgi?Command=DeviceList

I just wanted to thank everyone in here for all your help, advice, and hard work getting all this together!

I finally got all the parts (most of which I ended up not needing) and cracked my PVS6 enclosure to plug everything in. Data is humming along beautifully, just need now to set up all the integrations/visualizations and automations.

@Keith_Baker also, your integration is incredible! (also, if there’s a way I can support the repository, buy you a coffee/beer/tea/pizza/whatever…)

Would it be possible to see the port profile settings? I’m in the process of setting this up.

So far i’ve created the VLAN(2) with a host address of 172.27.153.50/24 and disabled DHCP.

I’ve also using the LAN2 port on the PSV6 which i’ve confirmed is the 172.27.153.x range ( i used an old router i had in AP mode and connected to its wifi.) connected to my UDMSE on port1. I’ve created a new Ethernet Port Profile that uses the VLAN i created and allowed all Tagged VLAN management and set everything else to auto.

I do see a device on that port with a macID that corresponds to the PSV6. Its registers on the ip address 172.27.153.1, but when i try to use my computer which is on the default VLAN(1) of 192.168.0.1 and try to ping 172.27.153.1 i get nothing but timeouts.

Not sure if i’m doing something wrong like the Port Profile being wrong. or do i need to do a reroute somewhere for the host file. I’m relatively decently versed at networking but VLANs are probably the last bastion that i suck at.

Thanks in advanced…

Ended up just using a Pi zero 2w as mentioned in one of the how to’s.

i’ll figure out the networking thing another day lols.

Also for those looking to get energy stats out of HA from sunpower. I managed to link everything from the sunpower sensors and have everything report correctly on the Energy dashboard. You do have to create some templates in order to get some values required. But if anyone needs it i can post here.

Also with those extra templates I managed to create some other items. I have a card for current load draw.
image

Also another one for Lifetime KWH from solar, grid, and home
image

These utilize the Power flow card plus and Energy flow card plus HACS plugins

I’d appreciate your templates as I often struggle to get those set up correctly.

Hardware confirmation
I believe you’re now running an Ethernet cable to the yellow jack on the PVS6 for their internet reporting needs. Then a second Ethernet cable connected to the black jack on the PVS6 and into your Pi Zero. May I presume your Pi is powered from one of the USB ports inside the PVS6?.

Issues?
I’m having a lot of problems with my PVS6 going offline over the past year and would love to connect it to HA for more rapid error monitoring. But before doing so I’d wanted to double check that the integration isn’t causing adverse effects to anyone else here. Have you found any issues with your PVS6 going offline to SunPower, stop reporting data to them or any other issues?

My PVS6 stops reporting to Sunpower and I’ve given up getting it ‘fixed’ as it fails again within a couple of months. I have no way to know whether using the ‘API’ connection is the cause of this as I’ve been using the API connection since day 2 and it has given me all of the data I want (stored locally, not in Sunpower’s cloud service).

The last time a tech came out they realized that AT&T mobile network service (what the PVS6 uses as ‘backup’ connectivity) is terrible at my house, so if for any reason the PVS decides to stop using the Ethernet WAN connection it can’t connect at all.

Mine did not report for a month st beginning of year.
Called sunpower
They said to call contractor
Contractor said to call sunpower.
Then a tech showed up
Reset something then started working
The HA intergration just kept going

integration has been running pretty smoothly for the most part… i haven’t had any issues with reporting…

though quick question for those that do have reporting working and consistent. do you guys check against what the power company bills you?

i just check last month’s bill and while it reports the amount of power i pulled from the grid spot on… (bill says 340… vs HA saying 340.5) the amount of power i sent back to the grid is pretty off… ( bill says i sent 199 back while HA says 223)…

I’m kinda confused. but this is the first month i actually have a full month of reporting… last month i had about 15 days worth of reporting since it was activated mid month and it was off in the other direction… ( bill says i sent 115 but HA reports i sent back only 104.)

just curious as to what people have encountered…

I had that happen a couple times last year. The first time it froze up completely (couldn’t even ping the APIs with the internal network port the Raspberry Pi uses). Other times, it lost connectivity with the official API but I could still pull data in HA. The other times, things cleared up after either hard reset on the panel controller (power off, wait 5 minutes, power on) or resetting/upgrading the PVS software over bluetooth with their official app.

1 Like

For various reasons I think its possible this integration could contribute to this problem though I have heard of this happening without the integration. I had a PVS6 in a very weird state where it wouldn’t re-provision properly and I think it turned out to be a partition was full (it was giving filesystem full errors in part of the provisioning process). This would seem like logs taking filling up a filesystem or something… I backed mine off to every 300seconds to try to reduce the odds.

First - thanks to all who have worked on this!

I have a PVS6 with a Raspberry Zero W, both dongles, and short cables.

My first issue - installing Raspian Lite

  • had problems using the Bookworm version
  • Bullseye had no problems getting things going

System connects as it should, everything working great…
then after a while (nothing I can pinpoint yet) the monitor begins ‘dropping’ and shows unavailable.
The Energy dashboard also does not update when this is happening - when i reset the pi and it works for a few hours the dashboard updates.

When this happens, the pi becomes unresponsive to ping/ssh, basically everything.

At first I thought is was the power_save and figured out how to turn that off.
-same issue

Then i thought it was heat, and ran a longer cable inside so only the USB dongle to the PVS was outside, just to rule out the heat on the pi, the mini usb dongle, and the power. USB to RJ45 dongle was outside.
Arizona desert (110f/43c)

  • same issue.

here is a screenshot of when it does it:

shows error because it was dark - shows working when it’s light outside

I can plug it in and ssh in for a bit once I reset it, then eventually it becomes unresponsive again.

I can cut/paste, and follow instructions - but debugging is well beyond me.

Thanks in advance for any help

I think its heat - on the dongle - USB to RJ45.
Pi logs dont show errors until i unplug it.

If I reset it at night and let it go, seems to go most all night. The heat broke yesterday some and the monitor has been up all day. If its the heat I will work out some kind of cooling for the box. I have been running it with the cover off.

115F outside temp, it can’t take much for that guy to get over 140

This is about to become extremely important as sunpower disapears.
I will follow this guide in the next cpuple of days.
Thanks everyone!

For those who are interested, I just talked to an Enphase representative and will be switching to their IQ gateway and monitoring. They are offering a discounted price of $699 (installed) for the gateway and monitoring service, and don’t need to touch the microinverters or the PVS. They will install the IQ gateway alongside the PVS. I don’t know yet what the situation is with the CT clamps; they might repurpose the existing ones or install their own.

Trying to get this setup with the new PSV6 without Ethernet port.

I’ve tried Dongle (in LAN port) → Ethernet → {Raspberry Pi,Laptop}. Tried two adapters: https://www.amazon.com/dp/B00ET4KHJ2 https://www.amazon.com/dp/B084MCVVP9.

In all combinations of Pi/Laptop, and both adaptors, I end up not getting an address assigned over DHCP. Everything looks good - the machine detects the ethernet cable, marks the interface as UP, it just never gets an address assigned.

I’ve also successfully connected to the SunPower WIFI network. From there, all the usual sunpowerconsole.com addresses get a 403. I can access cgi-bin/dl_cgi?Command=DeviceList though. According to this, my PSV6 is HWVER=6.02, SWVER=2024.6, Build 61707.

Im wondering if maybe there is some newer build that introduces the 403s and additionally blocks the ethernet access? Has anyone seen similar and made progress? Any other diagnostic steps to run?

Checking out the logs on :19531 maybe has some useful info… but its hard to find anything concrete to go on.

The interesting bit seems to be:

9/10/2024, 5:50:56 PM	kernel	usb 1-1.4: device not accepting address 7, error -110
9/10/2024, 5:50:56 PM	kernel	usb 1-1-port4: unable to enumerate USB device

9/10/2024, 5:50:57 PM	systemd-udevd[226]	Error changing net interface name 'eth0' to 'usb_eth0': Device or resource busy
9/10/2024, 5:50:57 PM	systemd-udevd[226]	could not rename interface '4' from 'eth0' to 'usb_eth0': Device or resource busy

9/10/2024, 5:51:21 PM	connmand[1982]	connmand[1982]: eth0 {create} index 4 type 1 <ETHER>
9/10/2024, 5:51:21 PM	connmand[1982]	connmand[1982]: eth0 {RX} 6 packets 2010 bytes
9/10/2024, 5:51:21 PM	connmand[1982]	connmand[1982]: eth0 {TX} 0 packets 0 bytes
9/10/2024, 5:51:21 PM	connmand[1982]	connmand[1982]: eth0 {update} flags 69699 <UP,RUNNING,LOWER_UP>
9/10/2024, 5:51:21 PM	connmand[1982]	connmand[1982]: eth0 {newlink} index 4 address 5C:85:7E:3E:9C:99 mtu 1500
9/10/2024, 5:51:21 PM	connmand[1982]	connmand[1982]: eth0 {newlink} index 4 operstate 6 <UP>

9/10/2024, 5:51:21 PM	connmand[1982]	connmand[1982]: ap0 {add} address 172.27.152.1/24 label ap0 family 2

DHCP packet received on eth0 which has no address
DHCP packet received on eth0 which has no address
DHCP packet received on eth0 which has no address
DHCP packet received on eth0 which has no address

Likely wrong, but this looks like eth0 is never assigned an address (though ap0, the wifi, does get one). DHCP then rejects these? No clue how to fix that, though.

Other random logs:

Lots of logs like:

9/9/2024, 7:12:58 PM	envoy_manager[398]	24-09-10 02:12:58.968|509|E|inotify_add_watch: No such file or directory
9/9/2024, 7:13:00 PM	envoy_manager[398]	24-09-10 02:13:00.969|509|I|Configuring inotify for file: /var/run/dhcp.leases

Eventually turns into this when I connect over wifi

9/9/2024, 7:31:54 PM	envoy_manager[398]	24-09-10 02:31:54.315|509|I|Entry found:DhcpEntry .utcTimestamp=1725936414, .macAddress=xxx, .ipAddress=172.27.152.15, .hostname=Air

Interface name change detected, eth0 has been renamed to usb_eth0.

Could not generate persistent MAC address for eth1: No such file or directory

DHCPv6 msg send failed (index 5): Cannot assign requested address


9/9/2024, 7:12:37 PM	systemd-networkd-wait-online[1496]	ignoring: lo
9/9/2024, 7:12:37 PM	connmand[1983]	eth1 {newlink} index 7 address FE:2B:9C:B6:21:B7 mtu 1500
9/9/2024, 7:12:37 PM	systemd-timesyncd[231]	Network configuration changed, trying to establish connection.
9/9/2024, 7:12:37 PM	connmand[1983]	eth1 {newlink} index 7 operstate 2 <DOWN>
9/9/2024, 7:12:37 PM	systemd-networkd-wait-online[1496]	ignoring: lo
9/9/2024, 7:12:37 PM	connmand[1983]	ap0 {add} address 172.27.152.1/24 label ap0 family 2
9/9/2024, 7:12:37 PM	systemd-networkd[1492]	sta0: Lost carrier
9/9/2024, 7:12:37 PM	connmand[1983]	ap0 {add} route 172.27.152.0 gw 0.0.0.0 scope 253 <LINK>
9/9/2024, 7:12:37 PM	systemd-networkd-wait-online[1496]	ignoring: lo
9/9/2024, 7:12:37 PM	dbus-daemon[273]	[system] Successfully activated service 'fi.w1.wpa_supplicant1'
9/9/2024, 7:12:37 PM	systemd-networkd-wait-online[1496]	ignoring: lo

This seems to be about the dongle maybe? But doesn’t seem anything useful

9/9/2024, 7:11:08 PM	kernel	[dhd] dhd_module_init: in Dongle Host Driver, version 100.10.545.20 (r826445-20210413-1)
9/9/2024, 7:11:08 PM	kernel	[dhd] ======== dhd_wlan_init_plat_data ========
9/9/2024, 7:11:08 PM	kernel	[dhd] dhd_wlan_init_gpio: WL_REG_ON=4
9/9/2024, 7:11:08 PM	kernel	[dhd] dhd_wifi_platform_load: Enter
9/9/2024, 7:11:08 PM	kernel	[dhd] Power-up adapter 'DHD generic adapter'
9/9/2024, 7:11:08 PM	kernel	[dhd] wifi_platform_set_power = 1, delay: 200 msec
9/9/2024, 7:11:08 PM	kernel	[dhd] ======== PULL WL_REG_ON(4) HIGH! ========
9/9/2024, 7:11:08 PM	kernel	[dhd] wifi_platform_bus_enumerate device present 1
9/9/2024, 7:11:08 PM	kernel	[dhd] ======== Card detection to detect SDIO card! ========
9/9/2024, 7:11:08 PM	kernel	[dhd] bcmsdh_register: register client driver
9/9/2024, 7:11:08 PM	kernel	[dhd] bcmsdh_sdmmc_probe: Enter num=1
9/9/2024, 7:11:08 PM	kernel	[dhd] bcmsdh_sdmmc_probe: Enter num=2
9/9/2024, 7:11:08 PM	kernel	[dhd] bus num (host idx)=0, slot num (rca)=1
9/9/2024, 7:11:08 PM	kernel	[dhd] found adapter info 'DHD generic adapter'
9/9/2024, 7:11:08 PM	kernel	[dhd] sdioh_attach: set sd_f2_blocksize 256
9/9/2024, 7:11:08 PM	kernel	[dhd] sdioh_attach: sd clock rate = 0
9/9/2024, 7:11:08 PM	kernel	[dhd] dhdsdio_probe : no mutex held. set lock
9/9/2024, 7:11:08 PM	kernel	[dhd] F1 signature read @0x18000000=0x1042aae8
9/9/2024, 7:11:08 PM	kernel	[dhd] F1 signature OK, socitype:0x1 chip:0xaae8 rev:0x2 pkg:0x4
9/9/2024, 7:11:08 PM	kernel	[dhd] DHD: dongle ram size is set to 1310720(orig 1310720) at 0x170000
9/9/2024, 7:11:08 PM	kernel	[dhd] dhd_conf_set_chiprev : devid=0xaae8, chip=0xaae8, chiprev=2
9/9/2024, 7:11:08 PM	kernel	[dhd] CFG80211-ERROR) wl_cfg80211_netdev_notifier_call : wdev null. Do nothing
9/9/2024, 7:11:08 PM	kernel	[dhd] CFG80211-ERROR) wl_cfg80211_netdev_notifier_call : wdev null. Do nothing
9/9/2024, 7:11:08 PM	kernel	[dhd] CFG80211-ERROR) wl_cfg80211_netdev_notifier_call : wdev null. Do nothing
9/9/2024, 7:11:08 PM	kernel	[dhd] CFG80211-ERROR) wl_cfg80211_netdev_notifier_call : wdev null. Do nothing
9/9/2024, 7:11:08 PM	kernel	[dhd] dhd_attach(): thread:dhd_watchdog_thread:b4 started
9/9/2024, 7:11:08 PM	kernel	[dhd] dhd_attach(): thread:dhd_dpc:b5 started
9/9/2024, 7:11:08 PM	kernel	[dhd] dhd_attach(): thread:dhd_rxf:b6 started
9/9/2024, 7:11:08 PM	kernel	[dhd] dhd_deferred_work_init: work queue initialized
9/9/2024, 7:11:08 PM	kernel	[dhd] dhd_tcpack_suppress_set: TCP ACK Suppress mode 0 -> mode 2
9/9/2024, 7:11:08 PM	kernel	[dhd] sdioh_cis_read: func_cis_ptr[0]=0x1070
9/9/2024, 7:11:08 PM	kernel	[dhd] dhdsdio_probe_init: making DHD_BUS_DOWN
9/9/2024, 7:11:08 PM	kernel	[dhd] Dongle Host Driver, version 100.10.545.20 (r826445-20210413-1)
9/9/2024, 7:11:08 PM	kernel	[dhd] Register interface [wlan0] MAC: 08:fb:ea:1b:62:58
9/9/2024, 7:11:08 PM	kernel	[dhd] dhd_bus_devreset: == Power OFF ==
9/9/2024, 7:11:08 PM	kernel	[dhd] dhd_bus_stop: making DHD_BUS_DOWN
9/9/2024, 7:11:08 PM	kernel	[dhd] dhd_bus_devreset: making dhdpub up FALSE
9/9/2024, 7:11:08 PM	kernel	[dhd] dhd_txglom_enable: enable 0
9/9/2024, 7:11:08 PM	kernel	[dhd] dhd_bus_devreset: making DHD_BUS_DOWN
9/9/2024, 7:11:08 PM	kernel	[dhd] dhd_bus_devreset: WLAN OFF DONE
9/9/2024, 7:11:08 PM	kernel	[dhd] wifi_platform_set_power = 0, delay: 0 msec
9/9/2024, 7:11:08 PM	kernel	[dhd] ======== PULL WL_REG_ON(4) LOW! ========
9/9/2024, 7:11:08 PM	kernel	[dhd] Register interface [wlan1] MAC: 0a:fb:ea:1b:62:58
9/9/2024, 7:11:08 PM	kernel	[dhd] dhdsdio_probe : the lock is released.
9/9/2024, 7:11:08 PM	kernel	[dhd] dhd_module_init: Exit err=0
2024, 7:12:42 PM	kernel	[dhd] CFG80211-ERROR) wl_cfg80211_netdev_notifier_call : wdev null. Do nothing
9/9/2024, 7:12:42 PM	usb-ethernet-config.py[1992]	cat: manufacturer: No such file or directory
9/9/2024, 7:12:42 PM	usb-ethernet-config.py[1992]	cat: bNumInterfaces: No such file or directory
9/9/2024, 7:12:42 PM	usb-ethernet-config.py[1992]	cat: bConfigurationValue: No such file or directory
9/9/2024, 7:12:42 PM	usb-ethernet-config.py[1992]	cat: bmAttributes: No such file or directory
9/9/2024, 7:12:42 PM	usb-ethernet-config.py[1992]	cat: bMaxPower: No such file or directory
9/9/2024, 7:12:42 PM	usb-ethernet-config.py[1992]	cat: '/sys/bus/usb/devices/usb1/1-1/1-1.3/1-*:?.*/bInterfaceNumber': No such file or directory
9/9/2024, 7:12:42 PM	usb-ethernet-config.py[1992]	cat: '/sys/bus/usb/devices/usb1/1-1/1-1.3/1-*:?.*/bAlternateSetting': No such file or directory
9/9/2024, 7:12:42 PM	usb-ethernet-config.py[1992]	cat: '/sys/bus/usb/devices/usb1/1-1/1-1.3/1-*:?.*/bNumEndpoints': No such file or directory
9/9/2024, 7:12:42 PM	usb-ethernet-config.py[1992]	cat: '/sys/bus/usb/devices/usb1/1-1/1-1.3/1-*:?.*/bInterfaceClass': No such file or directory
9/9/2024, 7:12:42 PM	usb-ethernet-config.py[1992]	cat: '/sys/bus/usb/devices/usb1/1-1/1-1.3/1-*:?.*/bInterfaceSubClass': No such file or directory
9/9/2024, 7:12:42 PM	usb-ethernet-config.py[1992]	cat: '/sys/bus/usb/devices/usb1/1-1/1-1.3/1-*:?.*/bInterfaceProtocol': No such file or directory
9/9/2024, 7:12:42 PM	usb-ethernet-config.py[1992]	/usr/bin/usb-devices: line 76: printf: (none): invalid number
9/9/2024, 7:13:03 PM	kernel	usb 1-1.4: device no response, device descriptor read/64, error -110
9/9/2024, 7:13:04 PM	kernel	usb 1-1.2: reset high-speed USB device number 8 using ci_hdrc

Having configured an Enphase Envoy and PVS6 on some Sunpower Panels I would be very careful here. The monitoring system (PVS or Envoy) does more than just collect data. In both cases they set a ‘grid profile’ on the micro inverter (how the inverter responds to things like grid voltage changes, frequency changes etc). I’m 99% sure I saw my Envoy and PVS6 ‘fight’ over the grid profile on my panels (they each thought the panels should be running a different profile, whenever they did a scan to ensure the profiles were right they would change the profile to what they thought was correct). This could easily cause premature inverter failure if they don’t do good wear leveling. Sunpower and Enphase didn’t have the same grid profile lists, Enphase had far more options (maybe they’ve corrected this).

In the end I would expect to disable the PVS in order to install the Enphase.

1 Like

If anyone has a PVS6 that stopped working and wasn’t collected by Sunpower (or your a vendor that has some sitting around) I’d be interested in getting a hold of a few to experiment on.