Alternative firmware for Itead Sonoff switches, based on the MQTT protocol and a TLS connection. Sonoff is a small ESP8266 based module, that can toggle mains power and costs only $4.85. More information can be found here.
- Wi-Fi credentials configuration using WiFiManager
- Web configuration portal to setup MQTT username, password, broker IP address and port
- TLS support for CloudMQTT. For any other MQTT brokers, you need to change:
broker
: IP address of the MQTT broker, andfingerprint
: Fingerprint of its certificate (openssl x509 -fingerprint -in <certificate>.crt
)
- Onboard button:
- Short press: Toggle the state of the relay
- Medium press: Restart the relay (~3 [s])
- Long press: Reset the relay
- PIR motion sensor support. Make sure to connect your sensor on GPIO14
- Connect the Sonoff to a FTDI adapter and hold down the button, while powering it (programing mode)
- Upload the firmware with the Arduino IDE (use the settings below)
- Connect to the new Wi-Fi AP and memorize its name (1)
- Select
Configure WiFi
(2) - Choose your network (3) and enter your MQTT username, password, broker IP address and broker port (4)
- Update your configuration in your home automation system. An example for
Home Assistant
is available below
Parameter | Value |
---|---|
Board | Generic ESP8266 Module |
Flash Mode | DIO |
Flash Frequency | 40 MHz |
Upload Using | Serial |
CPU Frequency | 80 MHz |
Flash Size | 512K (64K SPIFFS) |
Reset Method | ck |
Upload Speed | 115200 |
Port | COMX, /dev/ttyUSB0, etc. |
# | Topic | Payload |
---|---|---|
State | <Chip_ID>/switch/state |
ON /OFF |
Command | <Chip_ID>/switch/switch |
ON /OFF |
configuration.yaml :
switch:
platform: mqtt
name: 'Switch'
state_topic: 'CBF777/switch/state'
command_topic: 'CBF777/switch/switch'
optimistic: false
- VCC (Sonoff) -> VCC (FTDI)
- RX (Sonoff) -> TX (FTDI)
- TX (Sonoff) -> RX (FTDI)
- GND (Sonoff) -> GND (FTDI)
- 1.0: Initial version
- 1.1: Add TLS support
- 1.2: Add PIR motion sensor support
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.