question

outsourcedguru avatar image
outsourcedguru asked

Streaming Updates to Inverters

As both a solar enthusiast and 40+ year software developer I have to shake my head at Victron's update activity for their inverters, for example. Otherwise, I think you guys are amazing at everything else you do and the content of your updates are timed well and appropriate.

That said, why on Earth would you stream the update to the device through the smartphone? Here's what I see is happening with the activity:

  1. Visiting the details page for the inverter (Phoenix 24/1200) queries Victron's server to determine if an update is available. [I note that I lived in a very rural area with spotty cell tower connectivity and initially I'd prevented the app from using cell data.] An update v1.35 was available.
  2. I chose to accept the update and it began in earnest. At this point it was perhaps 45% into that update.
  3. Of course the inverter toggled to the OFF mode.
  4. My internet router was then powered OFF as well.
  5. My smartphone lost internet connectivity.
  6. The app at this point prompted that I might need to turn ON cell data permission for this app.
  7. I toggled ON cell data but at this point my Verizon connectivity went from one bar and LTE to "SOS Only".
  8. The update process eventually timed out. The inverter could not be toggled ON via the app.
  9. It was necessary to turn off various devices inside my house since the power outage was going to be of questionable duration.
  10. Revisiting the Settings page for the inverter it now demanded that I update. I note that there was no internet—given that the inverter was toggled OFF—and there was no cell signal available.
  11. I put on my boots and began hiking around in the foot-deep snow outside in an attempt to find a suitable cell tower signal within the Bluetooth radius of the inverter.
  12. I eventually found a single bar of Verizon connectivity with LTE which was within the Bluetooth radius for the inverter. I repeated the update process which slowly finished the process and returned the inverter to service.

I would suggest instead the following order of events to avoid these sort of bricked-device scenarios:

  • Query the server, determine if an update is available and simply download the update on the smartphone's local storage. Determine if another update follows this one and conditionally download that as well.
  • Prompt the user to see if they would like to accept the update or updates. Let them decide which final version they want in the potential series of updates.
  • Toggle the inverter in this case to the OFF mode and apply the updates in order.
  • Leave the updates in local storage.
  • Return the inverter quickly back into service by turning it ON. This should half the time necessary for the power outage and remove any danger of bricking the device. Even in the event of a bad final-version update, the user could revert the device to a previous version if they so wished.

The reason why you would maintain a persistent "device tree" of updates in local storage on the smartphone is that people like myself maintain other people's solar installations. Secondly, there are times when the latest version of software might otherwise brick the device; having the prior versions locally could prevent this scenario. I might suggest a device tree something like:

/Victron/A27A/1.35/ (assuming that A27A is the product code for this inverter)

/RespectfullySent

Michael

Phoenix Inverterfirmware updateconnection issue
2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

2 Answers
Matthias Lange - DE avatar image
Matthias Lange - DE answered ·

Much text but you did wrote how you did the update exactly.

Is it an inverter with VE.direct and Bluetooth or VE.Bus?

Did you do the update locally with VictronConnect or remotely via VRM portal?

An update with VictronConnect and Bluetooth normally works totally offline because all FW files are stored on the phone.

I guess your problem was that you interrupted the update by leaving the app to changing the internet settings.

6 comments
2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

Alexandra avatar image Alexandra ♦ commented ·
Yeah, it doesn't stream u less you are making the connection with the VRM.


I update devices in the middle of nowhere with no data. FW is in Victron connect - local update with cables or BT.


0 Likes 0 ·
outsourcedguru avatar image outsourcedguru commented ·

The Phoenix inverter in question has VE.Direct and Bluetooth (dongle, as I recall). I updated locally via the iOS VictronConnect app.

I disagree with your analysis on why it failed. I didn't interrupt the update; the loss of internet (since the router was plugged into the inverter's output) interrupted the update. I only permissioned the app to use cell data because the VictronConnect app seemed to understand that it had lost internet connectivity via wifi and prompted me to do so.

If you work for Victron then please test the scenario where your internet router is plugged into the inverter being updated (and then connect your smartphone to this same wifi network). Also, turn off cell data for the VictronConnect app so that it doesn't cheat and redirect the update stream in this way.

As I mentioned, the firmware was not fully downloaded to the smartphone's local storage before it toggled off the inverter. There is a small possibility that the connectivity mode change detected during the update caused the app to panic and to cease to stream the firmware sideways via Bluetooth.

0 Likes 0 ·
Show more comments
outsourcedguru avatar image
outsourcedguru answered ·

[Replying to Nick's response... which has now been deleted.]

I note that I don't see a link to a FAQ entry. That's a great documentation blurb... which doesn't appear to agree with my reality.

Given that I have a VE.Direct-connected Bluetooth dongle on the Victron Phoenix 24/1200, is it possible that the iOS VictronConnect app's Bluetooth connection hiccup'd during the OFF cycle of the inverter? It's clear that the update stalled at the ~45% progress mark and didn't continue and that this occurred at the same time that the inverter toggled to OFF.

After the initial update fail I repeated update attempts three times but it failed at the 3% or so mark. At this moment internet connectivity was off and there was no cell tower signal. There were two bars of Bluetooth connectivity as seen from the app. If your assumption is that the firmware pre-downloaded before toggling off the inverter, then there is no reason for the subsequent three failures.

I was a CEO for a software development firm for nine years. I developed software over a period of four decades. I taught software development in 2018. My troubleshooting and analysis skills are rather good with such things.

I acknowledge how the update process is supposed to work but this was not my experience.

VictronConnect: v6.00 on iOS


3 comments
2 |3000

Up to 8 attachments (including images) can be used with a maximum of 190.8 MiB each and 286.6 MiB total.

nickdb avatar image nickdb ♦♦ commented ·

It was relevant to vebus not vedirect as posts crossed in the ether. The vedirect process does not mention this scenario.

Also VC 6 is a beta product. I am not sure if that has affected the experience.

You mention a Bluetooth dongle so that is a local update and not one via VRM so internet can’t be a contributing factor.

The remote updates is all via vrm and the cerbo.

Edit: the old version of VC had an issue with IOS 17 that caused a similar stall over blueteeth, but this was fixed a while ago.

1 Like 1 ·
Matthias Lange - DE avatar image Matthias Lange - DE ♦ nickdb ♦♦ commented ·
@nickdb VC 6.00 was official released a few days ago ;)
1 Like 1 ·
nickdb avatar image nickdb ♦♦ Matthias Lange - DE ♦ commented ·
Doh! I’m permanently on TestFlight. All these betas blur together. Thanks for clarifying :)
1 Like 1 ·