Path to solve? Upgrade Securifi Peanut Firmware without Almond, without an active ZHA install, limited hardware

Hello HA community,

I have an interesting puzzle that I don’t know if it is solvable, but I’d like help figuring out if it is.

Short version - My ‘end game’/requirement is to upgrade the firmware on 3 Securifi Peanut Plugs.

Answer 1 - use an Almond. In short, no, consider an Almond ‘Unobtanium’ for purposes of this exercise, so this answer is out.

Answer 2 - Smart Home Pursuits put together a great guide on how to upgrade these plugs WITHOUT an Almond, but it requires (may require?) ZHA. How To Update Peanut Plug Firmware OTA Using Home Assistant - Smart Home Pursuits

Answer 2 looks promising, and very do-able. BUT. I’m running on Zigbee2MQTT (Supervised, current build, add-on). Zigbee2MQTT won’t let me TOUCH these plugs and attempt OTA right now because they’re coming up as unsupported… (Basically, that’s the whole reason I’m going down the firmware upgrade path in the first place.)

That means the way I read this; I need to get these plugs joined to a Zigbee Network that’s running ZHA so I can perform that procedure.

I happen to be completely tapped out on extra Zigbee coordinator sticks, my Conbee II is currently running my production Zigbee stuff in Z2MQTT.

Current shipping has the earliest I can get a new well supported stick (CC2652*-based) in my hands (without overpaying) is sometime in early Feb. I always think it’s a good idea to have backup hardware for mission critical stuff (And I’ve managed to get the spouse to agree after many years that automation is now mission critical) so I will be ordering this.

Other relevant info.

  • I DO have a spare Pi3b ready to load an OS available if necessary for a procedure.
  • Destructive migration of the existing Zigbee network is not an option.
  • I understand the network mechanics of Zigbee but have been on other vendors closed Zigbee platforms before this. Basically, the whole Bring your own Coordinator thing is the new part for me and I may be missing something glaringly obvious like - shut down Z2MQTT, bring it up in ZHA and it will see the stuff… etc…

Given those requirements and resources, does anyone see a path / process (including deep command line black magic) to load the firmware on those plugs with what I have available without completely destroying my current Zigbee network and rebuilding it? Or do I just suck it up and wait to late Feb when my spare coordinator shows up next month?

1 Like

Zigbee2MQTT allows you to upgrade the firmware automatically using the OTA update function. You need to first pair the Peanuts (which you can do) by following the pairing guide here: Securifi PP-WHT-US control via MQTT | Zigbee2MQTT

The OTA process will automatically grab the correct firmware from the Securifi servers and update it. You may have to try the update multiple times before it starts. You’ll see a progress bar on the OTA page once it does.

2 Likes

You cannot update the firmware on the peanuts with Zigbee2MQTT in the current state.

The problem is the default firmware does not present the device codes properly so therefore Z2MQTT cant identify the device and they come up joined to the network but listed as ‘UNSUPPORTED’

You can’t upload firmware to an unsupported device. (and thats the rub)

I need the supported device to upload the firmware but I need to get the firmware on board to make it present its device code properly… And thus be supported.

(I DO see where you’re saying edit the DB to insert the product code. I wasnt able to get that to work. And why I went down the alternative path)

EDIT:
OK - so I went and completely removed the Peanuts, then added one back. THEN did the procedure described above and - it was recognized - so now I can firmware it. my best guess is something was borked in the database line from all the times I tried to do that very procedure. ;(

ANYWAY, it’s taking the firmware now. @Snhnry thank you for the kick to look at that again, I think it’s going to work.

1 Like

For what it’s worth … this what worked for me … very easy to do. Only issue is the service call he uses should have Cluster Type to in, not out