Skip to content

Instantly share code, notes, and snippets.

@Greysayan
Last active July 17, 2026 09:51
Show Gist options
  • Select an option

  • Save Greysayan/a90e0c5f7a96901190d33397ed6551ff to your computer and use it in GitHub Desktop.

Select an option

Save Greysayan/a90e0c5f7a96901190d33397ed6551ff to your computer and use it in GitHub Desktop.
Shelly Firmware ZIP Method – Official Update Server
# Shelly Firmware ZIP Method – Official Update Server
## Legal Notice / Disclaimer
This guide is provided for informational purposes only.
Use it at your own risk.
The author is not responsible for any damage, malfunctions, or data loss that may occur
as a result of following these instructions.
Always ensure you are using the correct firmware for your specific Shelly model.
Do not use third-party firmware files. Follow the official instructions carefully.
## Overview
This guide shows how to safely and legally retrieve the official firmware for Shelly devices directly from the Shelly Update Server. **No third-party firmware files are needed.**
⚠️ Important:
* Always use firmware only for your specific Shelly model.
* Never swap firmware between different devices.
* Always download firmware from the official Shelly Update Server.
---
## Step 1: Get Device Info
Access your Shelly's device info via browser or terminal:
```bash
http://<DEVICE_IP>/rpc/Shelly.GetDeviceInfo
```
* `<DEVICE_IP>` = your Shelly's IP on your LAN
* Look for the `app` field in the JSON response → this is the device name used for the update server
Example response:
```json
{
"app": "shelly1pm-mini",
"ver": "1.7.0",
"device": "Shelly 1PM Mini Gen4"
}
```
---
## Step 2: Access the Update Server
Open in your browser or use terminal:
```bash
https://updates.shelly.cloud/update/<APP>
```
* Replace `<APP>` with the value from Step 1 (e.g., `shelly1pm-mini`)
* You will get a JSON response with a `url` field – this is the **direct download URL** for the official firmware
Example JSON:
```json
{
"url": "https://shelly.cloud/files/firmware/shelly1pm-mini-1.7.0.zip",
"version": "1.7.0",
"type": "stable"
}
```
---
## Step 3: Download the Firmware
* Click the URL in the browser **or** download via terminal:
```bash
wget https://shelly.cloud/files/firmware/shelly1pm-mini-1.7.0.zip
```
* This ZIP file is the same firmware your Shelly normally gets via OTA.
* You can then flash it via OTA or locally, e.g.:
```bash
http://<DEVICE_IP>/ota?url=https://shelly.cloud/files/firmware/shelly1pm-mini-1.7.0.zip
```
---
## Safety Notes
* Only use firmware for your specific model.
* Do not use third-party links.
* If issues occur, always use the **web interface or Shelly App**.
---
Using this method, you can safely and legally obtain the official firmware for any Shelly device without relying on forums or unofficial sources.
@D3XX3R

D3XX3R commented Jul 7, 2026

Copy link
Copy Markdown

Thank you, this has been very helpful.
But I'm kinda confused.

The url in the second step seems to have a self-signed certificate, just like the URL I get in the JSON response.

Was that also the case when you wrote this guide?

@Greysayan

Copy link
Copy Markdown
Author

The self-signed certificate on fwcdn.shelly.cloud is intentional – it's issued by Allterco (Shelly's parent company), who operate their own internal CA for their firmware CDN instead of using a public one like Let's Encrypt.

You can verify this yourself by checking the certificate details:

  • Subject: fwcdn.shelly.cloud
  • Issuer: Allterco
  • Expires: 2033

Since the domain, issuer, and expiry all check out, you're downloading legitimate official firmware. Your browser just doesn't trust the Allterco CA because it's not in the public trust stores – that's by design, not a security incident.

You can either accept the browser exception or use wget --no-check-certificate to download the file.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment