This software is End of Life. New features will be introduced in Sonoff-Tasmota available on https://github.com/arendst/Sonoff-Tasmota
Provide ESP8266 based itead Sonoff with MQTT and 'Over the Air' or OTA firmware.
Install the ESP8266 development environment from esp8266-dev.
Copy the sonoff code files as follows:
esp8266-dev/work
and copy directory sonoff
and file espupload.php
into itMakefile.common
in directory esp8266-dev
Install php and a local web server (ie apache) for OTA and copy directory api
in webroot.
Update sonoff/user/user_config.h
with your specific Wifi and MQTT parameters.
Compile source with make
and flash once to sonoff using cable connection as shown in Peter Scargill's blog with make flash
.
Do not connect AC power during the flash cable connection.
Compile and upload OTA images to your web server with make clean; make IMAGE=1; make register; make clean; make IMAGE=2; make register
.
Note: this software is not compatible with Pete's implementation.
The button on sonoff provides the following features:
stat/sonoff/POWER on
user_config.h
fileuser_config.h
and reboots sonoffSonoff responds to the following MQTT commands:
cmnd/sonoff/power on
, cmns/sonoff/power off
or cmnd/sonoff/power toggle
. The LED will blink twice and sends a MQTT status message like stat/sonoff/POWER on
. The same function can be initiated with cmnd/sonoff/light on
cmnd/sonoff/topic sonoff1
which reboots sonoff and makes it available for MQTT commands like cmnd/sonoff1/power on
cmnd/sonoff/otaurl http://sidnas2:80/api/sonoff/user1.bin
where sidnas2 is your webserver hosting the firmware. Reset to default with cmnd/sonoff/otaurl 1
cmnd/sonoff/upgrade 1
cmnd/sonoff/status 1
Most MQTT commands will result in a status feedback like stat/sonoff/POWER On
.
The firmware supports both a serial and a MQTT Man Machine interface. The serial interface is set to 115200 bps. The MQTT commands are constructed as cmnd/sonoff/<command>
.
The following commands are recognised by both topic and grouptopic:
Command | Description |
---|---|
power | Show current power state as On or Off |
power on | Turn power On |
power off | Turn power Off |
power toggle | Toggle power |
power 1 | Turn power On |
power 0 | Turn power Off |
power 2 | Toggle power |
light | Show current power state as On or Off |
light on | Turn power On |
light off | Turn power Off |
light toggle | Toggle power |
light 1 | Turn power On |
light 0 | Turn power Off |
light 2 | Toggle power |
status | Show abbreviated status information |
status 1 | Show all status information |
status 2 | Show version information |
grouptopic | Show current MQTT group topic |
grouptopic 1 | Reset MQTT group topic to user_config.h value and restart |
grouptopic your-grouptopic | Set MQTT group topic and restart |
timezone | Show current timezone |
timezone -12 .. 12 | Set timezone |
The following commands are recognised by topic only:
Command | Description |
---|---|
restart 1 | Restart sonoff |
reset 1 | Reset sonoff parameters to user_config.h values and restart |
ssid | Show current Wifi SSId |
ssid 1 | Reset Wifi SSId to user_config.h value and restart |
ssid your-ssid | Set Wifi SSId and restart |
password | Show current Wifi password |
password 1 | Reset Wifi password to user_config.h value and restart |
password your-password | Set Wifi password and restart |
host | Show current MQTT host |
host 1 | Reset MQTT host to user_config.h value and restart |
host your-host | Set MQTT host and restart |
topic | Show current MQTT topic |
topic 1 | Reset MQTT topic to user_config.h value and restart |
topic your-topic | Set MQTT topic and restart |
smartconfig 1 | Start smart config |
otaurl | Show current otaurl |
otaurl 1 | Reset otaurl to user_config.h value |
otaurl your-otaurl | Set otaurl |
upgrade 1 | Download ota firmware from your web server and restart |
If the same topic has been defined to more than one sonoff an individual sonoff can still be addressed by the fall back topic MQTT_CLIENT_ID as defined in userconfig.h. The fall back topic will be ```DVES
ESP-<last six characters of MAC address>-<MQTT topic>
. So the default name is ESP-123456-sonoff
api/sonoff/user1.bin
can be flashed using the SDK 1.4 provided bin files with the following esptool.py command line:
esptool.py --port /dev/ttyUSB0 write_flash -fs 8m 0x00000 boot_v1.4\(b1\).bin 0x01000 user1.bin 0xFC000 esp_init_data_default.bin 0xFE000 blank.bin