arendst / Sonoff-MQTT-OTA

Provide ESP8266 based itead Sonoff with MQTT and OTA firmware - Now EOL
202 stars 47 forks source link

Sonoff-MQTT-OTA - End of Life

Sonoff

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.

Prerequisite

Install the ESP8266 development environment from esp8266-dev.

Copy the sonoff code files as follows:

Install php and a local web server (ie apache) for OTA and copy directory api in webroot.

Compile and upload

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.

Connection diagram

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.

Usage

The button on sonoff provides the following features:

Sonoff responds to the following MQTT commands:

Most MQTT commands will result in a status feedback like stat/sonoff/POWER On.

Commands supported

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```.

Tips