-
Notifications
You must be signed in to change notification settings - Fork 132
Flashing
-
Watch a 2 minute video.
- Shelly 1:
http://A.B.C.D/ota?url=http://rojer.me/files/shelly/shelly-homekit-Shelly1.zip
- Shelly 1PM:
http://A.B.C.D/ota?url=http://rojer.me/files/shelly/shelly-homekit-Shelly1PM.zip
- Shelly 2:
http://A.B.C.D/ota?url=http://rojer.me/files/shelly/shelly-homekit-Shelly2.zip
- Shelly 2.5:
http://A.B.C.D/ota?url=http://rojer.me/files/shelly/shelly-homekit-Shelly25.zip
- Shelly Plug S:
http://A.B.C.D/ota?url=http://rojer.me/files/shelly/shelly-homekit-ShellyPlugS.zip
- Shelly 1:
-
Download one of the release builds (see Releases) or build a firmware package yourself (see Development).
-
Upload to a plain HTTP (not HTTPS) server. Use local server, e.g. Mongoose binary.
-
Send HTTP request to current device IP with the address of the firmware,
- e.g. navigate your browser to
http://192.168.11.75/ota?url=http://192.168.11.30:8080/build/fw.zip
-
192.168.11.75
is the Shelly device IP,192.168.11.30:8080
is an HTTP server on local machine.
- e.g. navigate your browser to
-
For the impatient, I have latest build of the firmware uploaded to my server:
- For Shelly1:
http://rojer.me/files/shelly/shelly-homekit-Shelly1.zip
- For Shelly25:
http://rojer.me/files/shelly/shelly-homekit-Shelly25.zip
- For Shelly1:
-
If everything goes well, after 30 seconds or so you will see led blinking (see LED indication section here) and a different web interface at the same device address.
-
Script for an automated way to update your devices (see below).
- ./flash_shelly.py hostname (for single device)
- ./flash_shelly.py -a (for all devices on the network)
It is possible to revert back to stock firmware.
-
You can revert to stock firmware via the device webUI by clicking the "Revert" button, see here
-
Stock firmware for can be downloaded from the official URL's below, and upload via web interface.:
-
Script for an automated way to revert your devices to stock firmware (see below).
- ./flash_shelly.py -m revert hostname
There is a Python script works with macOS / Linux (it should also work with windows, but it has yet to be tested). It can be downloaded here, simply download the zip, unpack and in terminal navigate to the tools folder and run the command.
- i.e
./flash_script.py -a
will scan your network for all available devices and ask you if you wish to flash the found device(s) to homekit firmware.
Requirements: Python 3.6 or later.
You can do various things with the script see bellow:
usage: flash_shelly.py [-h] [-m {homekit,keep,revert}] [-a] [-l] [-e [EXCLUDE [EXCLUDE ...]]] [-n] [-y] [-V VERSION]
[--variant VARIANT] [-v {0,1}]
[hosts [hosts ...]]
Shelly HomeKit flashing script utility
positional arguments:
hosts
optional arguments:
-h, --help show this help message and exit
-m {homekit,keep,revert}, --mode {homekit,keep,revert}
Script mode.
-a, --all Run against all the devices on the network.
-l, --list List info of shelly device.
-e [EXCLUDE [EXCLUDE ...]], --exclude [EXCLUDE [EXCLUDE ...]]
Exclude hosts from found devices.
-n, --assume-no Do a dummy run through.
-y, --assume-yes Do not ask any confirmation to perform the flash.
-V VERSION, --version VERSION
Force a particular version.
--variant VARIANT Prerelease variant name.
-v {0,1}, --verbose {0,1}
Enable verbose logging level.
macOS / Linux example:
-
./flash_shelly.py -la
this will list all available shelly devices and report the current firmware version that is available. -
./flash_shelly.py -am keep
this will update all available shelly devices on the current firmware type (Stock or HomeKit) to latest version. -
./flash_shelly.py hostname
this will update the device hostname to current firmware version that is available. -
./flash_shelly.py -m revert hostname
this will revert the device hostname to latest stock firmware version that is available (this can also be used with -a./flash_shelly.py -am revert
to revert all devices on the network).
Windows example:
-
python3 flash_shelly.py -la
this will list all available shelly devices and report the current firmware version that is available. -
python3 flash_shelly.py -am keep
this will update all available shelly devices on the current firmware type (Stock or HomeKit) to latest version. -
python3 flash_shelly.py hostname
this will update the device hostname to current firmware version that is available. -
python3 flash_shelly.py -m revert hostname
this will revert the device hostname to latest stock firmware version that is available (this can also be used with -apython3 flash_shelly.py -am revert
to revert all devices on the network).
GitHub.com/mongoose-os-apps/schelly-http://192.168.1.139/ota?url=http:/roger.me/files/schelly/schelly-homekit-schelly1-zip