From fe1048d7c39e985514d4fd51613e2bc55dcae5f3 Mon Sep 17 00:00:00 2001 From: arendst Date: Sat, 28 Jan 2017 14:50:30 +0100 Subject: [PATCH] Initial --- Button-usage.md | 53 +++ Commands.md | 480 ++++++++++++++++++++++ Compile-and-Upload.md | 84 ++++ Control-a-Sonoff-using-a-remote-button.md | 23 ++ Domoticz.md | 50 +++ Home.md | 44 +- MQTT-Features.md | 25 ++ MQTT-for-Newbies.md | 205 +++++++++ Modify-KaKu-to-WKaKu-Power-Socket.md | 29 ++ Prerequisite.md | 18 + Sonoff-Dual.md | 10 + Sonoff-Pow.md | 77 ++++ Sonoff-RF.md | 8 + Tips.md | 22 + _Sidebar.md | 22 + 15 files changed, 1149 insertions(+), 1 deletion(-) create mode 100644 Button-usage.md create mode 100644 Commands.md create mode 100644 Compile-and-Upload.md create mode 100644 Control-a-Sonoff-using-a-remote-button.md create mode 100644 Domoticz.md create mode 100644 MQTT-Features.md create mode 100644 MQTT-for-Newbies.md create mode 100644 Modify-KaKu-to-WKaKu-Power-Socket.md create mode 100644 Prerequisite.md create mode 100644 Sonoff-Dual.md create mode 100644 Sonoff-Pow.md create mode 100644 Sonoff-RF.md create mode 100644 Tips.md create mode 100644 _Sidebar.md diff --git a/Button-usage.md b/Button-usage.md new file mode 100644 index 00000000..c87115b4 --- /dev/null +++ b/Button-usage.md @@ -0,0 +1,53 @@ +The button on sonoff provides the following features + +### Version 2.0.3 and up: + +- a short press toggles the relay either directly or by sending a MQTT message like ```cmnd/sonoff/1/light on```. This will blink the LED twice and sends a MQTT status message like ```stat/sonoff/LIGHT on```. If ```cmnd/sonoff/ButtonRetain on``` has been used the MQTT message will also contain the MQTT retain flag. +- two short presses toggles the relay. This will blink the LED twice and sends a MQTT status message like ```stat/sonoff/POWER on```. For Sonoff Dual this will switch relay 2. +- three short presses start Wifi smartconfig allowing for SSID and Password configuration using an Android mobile phone with the [ESP8266 SmartConfig](https://play.google.com/store/apps/details?id=com.cmmakerclub.iot.esptouch) app. The MQTT server still needs to be configured in the ```user_config.h``` file. The LED will blink during the config period. A single button press during this period will abort and restart sonoff. +- four short presses start Wifi manager providing an Access Point with IP address 192.168.4.1 and a web server allowing the configuration of both Wifi and MQTT parameters. The LED will blink during the config period. A single button press during this period will abort and restart sonoff. +- five short presses start Wifi Protected Setup (WPS) allowing for SSID and Password configuration using the routers WPS button or webpage. The LED will blink during the config period. A single button press during this period will abort and restart sonoff. +- six short presses will restart sonoff +- seven short presses start OTA download of firmware. The green LED is lit during the update +- pressing the button for over four seconds resets settings to defaults as defined in ```user_config.h``` and restarts the device + +### Version 2.0.2 down to 2.0.0: + +- a short press toggles the relay either directly or by sending a MQTT message like ```cmnd/sonoff/1/light 2```. This will blink the LED twice and sends a MQTT status message like ```stat/sonoff/LIGHT on```. +- two short presses toggles the relay. This will blink the LED twice and sends a MQTT status message like ```stat/sonoff/POWER on```. For Sonoff Dual this will switch relay 2. +- three short presses start Wifi smartconfig allowing for SSID and Password configuration using an Android mobile phone with the [ESP8266 SmartConfig](https://play.google.com/store/apps/details?id=com.cmmakerclub.iot.esptouch) app. The MQTT server still needs to be configured in the ```user_config.h``` file. The LED will blink during the config period. A single button press during this period will abort and restart sonoff. +- four short presses start Wifi manager providing an Access Point with IP address 192.168.4.1 and a web server allowing the configuration of both Wifi and MQTT parameters. The LED will blink during the config period. A single button press during this period will abort and restart sonoff. +- five short presses start Wifi Protected Setup (WPS) allowing for SSID and Password configuration using the routers WPS button or webpage. The LED will blink during the config period. A single button press during this period will abort and restart sonoff. +- six short presses will restart sonoff +- seven short presses start OTA download of firmware. The green LED is lit during the update +- pressing the button for over four seconds resets settings to defaults as defined in ```user_config.h``` and restarts the device + +### Version 1.0.35 down to 1.0.32: + +- a short press toggles the relay either directly or by sending a MQTT message like ```cmnd/sonoff/light 2```. This will blink the LED twice and sends a MQTT status message like ```stat/sonoff/LIGHT on``` +- two short presses toggles the relay. This will blink the LED twice and sends a MQTT status message like ```stat/sonoff/POWER on``` +- three short presses start Wifi smartconfig allowing for SSID and Password configuration using an Android mobile phone with the [ESP8266 SmartConfig](https://play.google.com/store/apps/details?id=com.cmmakerclub.iot.esptouch) app. The MQTT server still needs to be configured in the ```user_config.h``` file. The LED will blink during the config period. A single button press during this period will abort and restart sonoff. +- four short presses start Wifi manager providing an Access Point with IP address 192.168.4.1 and a web server allowing the configuration of both Wifi and MQTT parameters. The LED will blink during the config period. A single button press during this period will abort and restart sonoff. +- five short presses start Wifi Protected Setup (WPS) allowing for SSID and Password configuration using the routers WPS button or webpage. The LED will blink during the config period. A single button press during this period will abort and restart sonoff. +- six short presses will restart sonoff +- seven short presses start OTA download of firmware. The green LED is lit during the update +- pressing the button for over four seconds resets settings to defaults as defined in ```user_config.h``` and restarts the device + +### Version 1.0.31 down to 1.0.22: + +- a short press toggles the relay either directly or by sending a MQTT message like ```cmnd/sonoff/light 2```. This will blink the LED twice and sends a MQTT status message like ```stat/sonoff/LIGHT on``` +- two short presses toggles the relay. This will blink the LED twice and sends a MQTT status message like ```stat/sonoff/POWER on``` +- three short presses start Wifi smartconfig allowing for SSID and Password configuration using an Android mobile phone with the [ESP8266 SmartConfig](https://play.google.com/store/apps/details?id=com.cmmakerclub.iot.esptouch) app. The MQTT server still needs to be configured in the ```user_config.h``` file. The LED will blink during the config period. A single button press during this period will abort and restart sonoff. +- four short presses start Wifi manager providing an Access Point with IP address 192.168.4.1 and a web server allowing the configuration of both Wifi and MQTT parameters. The LED will blink during the config period. A single button press during this period will abort and restart sonoff. +- five short presses will restart sonoff +- six short presses start OTA download of firmware. The green LED is lit during the update +- pressing the button for over four seconds resets settings to defaults as defined in ```user_config.h``` and restarts the device + +### Version 1.0.21 and down: + +- a short press toggles the relay either by sending a MQTT message like ```cmnd/sonoff/light 2``` or directly. This will blink the LED twice and sends a MQTT status message like ```stat/sonoff/LIGHT on``` +- two short presses toggles the relay. This will blink the LED twice and sends a MQTT status message like ```stat/sonoff/POWER on``` +- three short presses start Wifi smartconfig which allows for SSID and Password configuration using an Android mobile phone with the [ESP8266 SmartConfig](https://play.google.com/store/apps/details?id=com.cmmakerclub.iot.esptouch) app. The green LED will blink during the smartconfig period for 1 minute. The MQTT server still needs to be configured in the ```user_config.h``` file +- four short presses start OTA download of firmware. The green LED is lit during the update +- five short presses will restart sonoff +- pressing the button for over four seconds resets settings to defaults as defined in ```user_config.h``` and restarts the device diff --git a/Commands.md b/Commands.md new file mode 100644 index 00000000..989f454a --- /dev/null +++ b/Commands.md @@ -0,0 +1,480 @@ +The firmware supports a **serial**, **MQTT** and **Web** Man Machine interface. The serial interface is set to 115200 bps except for Sonoff Dual where it is set to 19200 bps. The MQTT commands are constructed from MQTT Topic for ```cmnd/sonoff/``` and MQTT Message for `````` and are NOT case sensitive. + +Starting with version 2.0.0 UNTIL version 3.0.0 commands are allowed like ```cmnd/sonoff/1/``` to address a specific relay where applicable. + +Starting with version 3.0.0 commands are allowed like ```cmnd/sonoff/``` to address a specific relay where applicable. + +Use [this link](https://docs.google.com/spreadsheets/d/1JZc5GuVlFEYafDTJu1cxwqsMlqyRxI81mXgOphHAScY/edit?usp=sharing) to show all commands in one document. + +The following command tables are available: +- Main +- [Management](#management) +- [Wifi](#wifi) +- [MQTT](#mqtt) +- [Logging](#logging) +- [Sonoff Pow specific](#sonoff-pow) +- [Domoticz](#domoticz) +- [WS2812 led string](#ws2812-led-string) +- [Next Generation specific](#next-generation) +- [Optional](#optional) + +### Main +Command | Version | Description +------- | ------- | ----------- +BlinkCount | 3.1.6 | Show current BlinkCount +BlinkCount 0 | 3.1.6 | Blink many times before restoring power state +BlinkCount 1 .. 32000 | 3.1.6 | Set how many blinks before restoring power state +BlinkTime | 3.1.6 | Show current BlinkTime in 0.1 seconds +BlinkTime 2 .. 3600 | 3.1.6 | Set BlinkTime with 0.1 seconds increment +LedPower | 3.2.9 | Show current led power state as On or Off +LedPower off | 3.2.9 | Turn led AND LedState Off +LedPower on | 3.2.9 | Turn led On AND LedState Off +LedPower 0 | 3.2.9 | Turn led AND LedState Off +LedPower 1 | 3.2.9 | Turn led On AND LedState Off +LedState | 1.0.13 | Show current led state as 0 to 7 +LedState off | 3.0.5 | Disable use of LED as much as possible +LedState on | 1.0.13 | Show power state on led +LedState 0 | 3.0.5 | Disable use of LED as much as possible +LedState 1 | 1.0.13 | Show power state on led +LedState 2 | 3.0.5 | Show MQTT subscriptions as a led blink +LedState 3 | 3.0.5 | Show power state and MQTT subscriptions as a led blink +LedState 4 | 3.0.5 | Show MQTT publications as a led blink +LedState 5 | 3.0.5 | Show power state and MQTT publications as a led blink +LedState 6 | 3.0.5 | Show all MQTT messages as a led blink +LedState 7 | 3.0.5 | Show power state and MQTT messages as a led blink +Light | | Show current power state as On or Off +Light on | | Turn power On +Light off | | Turn power Off +Light toggle | | Toggle power +Light blink | 3.1.6 | Blink power +Light blinkoff | 3.1.6 | Stop blinking power +Light 1 | | Turn power On +Light 0 | | Turn power Off +Light 2 | | Toggle power +Light 3 | 3.1.6 | Blink power +Light 4 | 3.1.6 | Stop blinking power +Light1 | 3.0.0 | (Dual/Dragon/4CH) Show current power state of relay1 +Light1 on | 3.0.0 | (Dual/Dragon/4CH) Turn relay1 power On +Light1 off | 3.0.0 | (Dual/Dragon/4CH) Turn relay1 power Off +Light1 toggle | 3.0.0 | (Dual/Dragon/4CH) Toggle relay1 power +Light1 blink | 3.1.6 | (Dual/Dragon/4CH) Blink relay1 power +Light1 blinkoff | 3.1.6 | (Dual/Dragon/4CH) Stop blinking relay1 power +Light1 1 | 3.0.0 | (Dual/Dragon/4CH) Turn relay1 power On +Light1 0 | 3.0.0 | (Dual/Dragon/4CH) Turn relay1 power Off +Light1 2 | 3.0.0 | (Dual/Dragon/4CH) Toggle relay1 power +Light1 3 | 3.1.6 | (Dual/Dragon/4CH) Blink relay1 power +Light1 4 | 3.1.6 | (Dual/Dragon/4CH) Stop blinking relay1 power +Light2 | 3.0.0 | (Dual/Dragon/4CH) Show current power state of relay2 +Light2 on | 3.0.0 | (Dual/Dragon/4CH) Turn relay2 power On +Light2 off | 3.0.0 | (Dual/Dragon/4CH) Turn relay2 power Off +Light2 toggle | 3.0.0 | (Dual/Dragon/4CH) Toggle relay2 power +Light2 blink | 3.1.6 | (Dual/Dragon/4CH) Blink relay2 power +Light2 blinkoff | 3.1.6 | (Dual/Dragon/4CH) Stop blinking relay2 power +Light2 1 | 3.0.0 | (Dual/Dragon/4CH) Turn relay2 power On +Light2 0 | 3.0.0 | (Dual/Dragon/4CH) Turn relay2 power Off +Light2 2 | 3.0.0 | (Dual/Dragon/4CH) Toggle relay2 power +Light2 3 | 3.1.6 | (Dual/Dragon/4CH) Blink relay2 power +Light2 4 | 3.1.6 | (Dual/Dragon/4CH) Stop blinking relay2 power +Light3 | 3.1.1 | (4CH) Show current power state of relay3 +Light3 on | 3.1.1 | (4CH) Turn relay3 power On +Light3 off | 3.1.1 | (4CH) Turn relay3 power Off +Light3 toggle | 3.1.1 | (4CH) Toggle relay3 power +Light3 blink | 3.1.6 | (4CH) Blink relay3 power +Light3 blinkoff | 3.1.6 | (4CH) Stop blinking relay3 power +Light3 1 | 3.1.1 | (4CH) Turn relay3 power On +Light3 0 | 3.1.1 | (4CH) Turn relay3 power Off +Light3 2 | 3.1.1 | (4CH) Toggle relay3 power +Light3 3 | 3.1.6 | (4CH) Blink relay3 power +Light3 4 | 3.1.6 | (4CH) Stop blinking relay3 power +Light4 | 3.1.1 | (4CH) Show current power state of relay4 +Light4 on | 3.1.1 | (4CH) Turn relay4 power On +Light4 off | 3.1.1 | (4CH) Turn relay4 power Off +Light4 toggle | 3.1.1 | (4CH) Toggle relay4 power +Light4 blink | 3.1.6 | (4CH) Blink relay4 power +Light4 blinkoff | 3.1.6 | (4CH) Stop blinking relay4 power +Light4 1 | 3.1.1 | (4CH) Turn relay4 power On +Light4 0 | 3.1.1 | (4CH) Turn relay4 power Off +Light4 2 | 3.1.1 | (4CH) Toggle relay4 power +Light4 3 | 3.1.6 | (4CH) Blink relay4 power +Light4 4 | 3.1.6 | (4CH) Stop blinking relay4 power +MessageFormat | 2.0.7 | (Until 4.0.0) Show current MQTT message format (0 = Legacy, 1 = JSON) +MessageFormat 0 | 2.0.7 | (Until 4.0.0) (default) Send legacy messages +MessageFormat 1 | 2.0.7 | (Until 4.0.0) Send JSON messages and Legacy power state message +Power | | Show current power state as On or Off +Power on | | Turn power On +Power off | | Turn power Off +Power toggle | | Toggle power +Power blink | 3.1.6 | Blink power +Power blinkoff | 3.1.6 | Stop blinking power +Power 1 | | Turn power On +Power 0 | | Turn power Off +Power 2 | | Toggle power +Power 3 | 3.1.6 | Blink power +Power 4 | 3.1.6 | Stop blinking power +Power1 | 3.0.0 | (Dual/Dragon/4CH) Show current power state of relay1 +Power1 on | 3.0.0 | (Dual/Dragon/4CH) Turn relay1 power On +Power1 off | 3.0.0 | (Dual/Dragon/4CH) Turn relay1 power Off +Power1 toggle | 3.0.0 | (Dual/Dragon/4CH) Toggle relay1 power +Power1 blink | 3.1.6 | (Dual/Dragon/4CH) Blink relay1 power +Power1 blinkoff | 3.1.6 | (Dual/Dragon/4CH) Stop blinking relay1 power +Power1 1 | 3.0.0 | (Dual/Dragon/4CH) Turn relay1 power On +Power1 0 | 3.0.0 | (Dual/Dragon/4CH) Turn relay1 power Off +Power1 2 | 3.0.0 | (Dual/Dragon/4CH) Toggle relay1 power +Power1 3 | 3.1.6 | (Dual/Dragon/4CH) Blink relay1 power +Power1 4 | 3.1.6 | (Dual/Dragon/4CH) Stop blinking relay1 power +Power2 | 3.0.0 | (Dual/Dragon/4CH) Show current power state of relay2 +Power2 on | 3.0.0 | (Dual/Dragon/4CH) Turn relay2 power On +Power2 off | 3.0.0 | (Dual/Dragon/4CH) Turn relay2 power Off +Power2 toggle | 3.0.0 | (Dual/Dragon/4CH) Toggle relay2 power +Power2 blink | 3.1.6 | (Dual/Dragon/4CH) Blink relay2 power +Power2 blinkoff | 3.1.6 | (Dual/Dragon/4CH) Stop blinking relay2 power +Power2 1 | 3.0.0 | (Dual/Dragon/4CH) Turn relay2 power On +Power2 0 | 3.0.0 | (Dual/Dragon/4CH) Turn relay2 power Off +Power2 2 | 3.0.0 | (Dual/Dragon/4CH) Toggle relay2 power +Power2 3 | 3.1.6 | (Dual/Dragon/4CH) Blink relay2 power +Power2 4 | 3.1.6 | (Dual/Dragon/4CH) Stop blinking relay2 power +Power3 | 3.1.1 | (4CH) Show current power state of relay3 +Power3 on | 3.1.1 | (4CH) Turn relay3 power On +Power3 off | 3.1.1 | (4CH) Turn relay3 power Off +Power3 toggle | 3.1.1 | (4CH) Toggle relay3 power +Power3 blink | 3.1.6 | (4CH) Blink relay3 power +Power3 blinkoff | 3.1.6 | (4CH) Stop blinking relay3 power +Power3 1 | 3.1.1 | (4CH) Turn relay3 power On +Power3 0 | 3.1.1 | (4CH) Turn relay3 power Off +Power3 2 | 3.1.1 | (4CH) Toggle relay3 power +Power3 3 | 3.1.6 | (4CH) Blink relay3 power +Power3 4 | 3.1.6 | (4CH) Stop blinking relay3 power +Power4 | 3.1.1 | (4CH) Show current power state of relay4 +Power4 on | 3.1.1 | (4CH) Turn relay4 power On +Power4 off | 3.1.1 | (4CH) Turn relay4 power Off +Power4 toggle | 3.1.1 | (4CH) Toggle relay4 power +Power4 blink | 3.1.6 | (4CH) Blink relay4 power +Power4 blinkoff | 3.1.6 | (4CH) Stop blinking relay4 power +Power4 1 | 3.1.1 | (4CH) Turn relay4 power On +Power4 0 | 3.1.1 | (4CH) Turn relay4 power Off +Power4 2 | 3.1.1 | (4CH) Toggle relay4 power +Power4 3 | 3.1.6 | (4CH) Blink relay4 power +Power4 4 | 3.1.6 | (4CH) Stop blinking relay4 power +PowerOnState | 3.1.1 | Show current relay power on state +PowerOnState 0 | 3.1.1 | Keep relay(s) off after power on +PowerOnState 1 | 3.1.1 | Turn relay(s) on after power on +PowerOnState 2 | 3.1.2 | Toggle relay(s) on from last saved +PowerOnState 3 | 3.1.2 | (default) Turn relay(s) on as last saved +PowerRetain | 3.0.0 | Show current MQTT power retain state +PowerRetain on | 3.0.0 | Enable MQTT power retain on status update +PowerRetain off | 3.0.0 | (default) Disable MQTT power retain on status update +PowerRetain 1 | 3.0.0 | Enable MQTT power retain on status update +PowerRetain 0 | 3.0.0 | (default) Disable MQTT power retain on status update +PulseTime | 3.0.6 | Show current PulseTime in 0.1 seconds +PulseTime off | 3.0.6 | (Default) Disable use of PulseTime +PulseTime 0 | 3.0.6 | (Default) Disable use of PulseTime +PulseTime 1 .. 111 | 3.0.6 | Set PulseTime with 0.1 seconds increment +PulseTime 112 .. 64900 | 3.1.9 | Set PulseTime with 1 seconds increment starting with 12 seconds (113 = 13 seconds etc.) + +### Management +Command | Version | Description +------- | ------- | ----------- +FriendlyName | 3.1.16 | Show friendly name as used by Alexa +FriendlyName 1 | 3.1.16 | Reset friendly name to ```user_config.h``` value (FRIENDLY_NAME) +FriendlyName \ | 3.1.16 | Set friendly name +OtaUrl | | Show current otaurl +OtaUrl 1 | | Reset otaurl to ```user_config.h``` value +OtaUrl \ | | Set otaurl +Reset 1 | | Reset sonoff parameters to ```user_config.h``` values and restart +Reset 2 | 1.0.9 | Erase flash, reset sonoff parameters to ```user_config.h``` values and restart +Restart 1 | | Restart sonoff +Restart 99 | 1.0.23 | Force restart sonoff without config save +SaveData | 1.0.35 | Save parameter changes and show current state as Manual, On or every x seconds +SaveData on | 1.0.35 | (default) Save parameter changes every second +SaveData off | 1.0.35 | Save parameter changes only manually +SaveData 1 | 1.0.35 | (default) Save parameter changes every second +SaveData 0 | 1.0.35 | Save parameter changes only manually +SaveData \ | 1.0.35 | Save parameter changes between every 2 and 3600 seconds +SaveState | 2.0.3 | Show current SaveState state +SaveState on | 2.0.3 | (default) Save power changes and set relay after restart +SaveState off | 2.0.3 | Do not save power changes and do not set relay after restart +SaveState 1 | 2.0.3 | (default) Save power changes and set relay after restart +SaveState 0 | 2.0.3 | Do not save power changes and do not set relay after restart +Sleep | 3.2.12 | Show current sleep state as 0 (Off) or duration of up to 250 mSec +Sleep off | 3.2.12 | (default) Turn sleep off +Sleep 0 | 3.2.12 | (default) Turn sleep off +Sleep 1 - 250 | 3.2.12 | Set sleep duration from 1 to 250 mSec to enable energy saving +Status | | Show abbreviated status information +Status 0 | 1.0.15 | Show all status information +Status 1 | | Show more status information +Status 2 | | Show firmware information +Status 3 | 1.0.8 | Show syslog information +Status 4 | 1.0.8 | Show memory information +Status 5 | 1.0.9 | Show network information +Status 6 | 1.0.14 | Show MQTT information +Status 7 | 1.0.20 | Show Real Time Clock information +Status 8 | 2.0.5 | (Sonoff Pow only) Show Power usage +Status 9 | 2.0.6 | (Sonoff Pow only) Show Power thresholds +Timezone | | Show current timezone +Timezone -12 .. 12 | | Set timezone +Timezone 99 | 1.0.20 | Use Daylight Saving parameters from ```user_config.h``` +Upgrade 1 | | Download ota firmware from your web server and restart +Upload 1 | 1.0.23 | Download ota firmware from your web server and restart + +### Wifi +Command | Version | Description +------- | ------- | ----------- +AP | 2.1.2 | Show current selected Wifi Access Point (AP) +AP 0 | 2.1.2 | Switch to other Wifi Access Point (AP) +AP 1 | 2.1.2 | Select Wifi Access Point 1 (AP) +AP 2 | 2.1.2 | Select Wifi Access Point 2 (AP) +Hostname | 1.0.26 | Show current hostname +Hostname 1 | 1.0.26 | Reset hostname to ```user_config.h``` value and restart +Hostname \ | 1.0.26 | Set hostname and restart +Password | | Show AP1 current Wifi password +Password 1 | | Reset AP1 Wifi password to ```user_config.h``` value and restart +Password \ | | Set AP1 Wifi password and restart +Password1 | 2.1.2 | Show AP1 current Wifi password +Password1 1 | 2.1.2 | Reset AP1 Wifi password to ```user_config.h``` value and restart +Password1 \ | 2.1.2 | Set AP1 Wifi password and restart +Password2 | 2.1.2 | Show AP2 current Wifi password +Password2 1 | 2.1.2 | Reset AP2 Wifi password to ```user_config.h``` value and restart +Password2 \ | 2.1.2 | Set AP2 Wifi password and restart +SmartConfig 1 | | (Deprecated - use wificonfig) Start smart config for 1 minute +SmartConfig 2 | 1.0.22 | (Deprecated - use wificonfig) Start wifi manager (web server at 192.168.4.1) +SSId | | Show AP1 current Wifi SSId +SSId 1 | | Reset AP1 Wifi SSId to ```user_config.h``` value and restart +SSId \ | | Set AP1 Wifi SSId and restart +SSId1 | 2.1.2 | Show AP1 current Wifi SSId +SSId1 1 | 2.1.2 | Reset AP1 Wifi SSId to ```user_config.h``` value and restart +SSId1 \ | 2.1.2 | Set AP1 Wifi SSId and restart +SSId2 | 2.1.2 | Show AP2 current Wifi SSId +SSId2 1 | 2.1.2 | Reset AP2 Wifi SSId to ```user_config.h``` value and restart +SSId2 \ | 2.1.2 | Set AP2 Wifi SSId and restart +WebServer | 1.0.23 | Show current web server state +WebServer 0 | 1.0.23 | Stop web server +WebServer 1 | 1.0.23 | Start web server in user mode +WebServer 2 | 1.0.23 | Start web server in admin mode +WifiConfig | 1.0.32 | Show current config tool +WifiConfig 0 | 1.0.32 | (Deprecated) Start current config tool +WifiConfig 0 | 2.1.2 | Disable wifi config but restart (used with alternate AP) +WifiConfig 1 | 1.0.32 | Start smart config for 1 minute and set as current config tool +WifiConfig 2 | 1.0.32 | Start wifi manager (web server at 192.168.4.1) and set as current config tool +WifiConfig 3 | 1.0.32 | Start WPS config for 1 minute and set as current config tool +WifiConfig 4 | 3.0.5 | Disable wifi config but retry other AP without restart + +### MQTT +Command | Version | Description +------- | ------- | ----------- +ButtonRetain | 2.0.3 | Show current button MQTT retain flag state +ButtonRetain on | 2.0.3 | Set ButtonTopic to Topic and enable MQTT retain flag on button press +ButtonRetain off | 2.0.3 | (default) Disable use of MQTT retain flag +ButtonRetain 1 | 2.0.3 | Set ButtonTopic to Topic and enable MQTT retain flag on button press +ButtonRetain 0 | 2.0.3 | (default) Disable use of MQTT retain flag +ButtonTopic | 1.0.10 | Show current MQTT button topic +ButtonTopic 0 | 1.0.10 | Disable use of MQTT button topic +ButtonTopic 1 | 1.0.10 | Set MQTT button topic to Topic +ButtonTopic \ | 1.0.10 | Set MQTT button topic +GroupTopic | | Show current MQTT group topic +GroupTopic 1 | | Reset MQTT group topic to ```user_config.h``` value and restart +GroupTopic \ | | Set MQTT group topic and restart +MessageFormat | 2.0.7 | (Until 4.0.0) Show current MQTT message format (0 = Legacy, 1 = JSON) +MessageFormat 0 | 2.0.7 | (Until 4.0.0) (default) Send legacy messages +MessageFormat 1 | 2.0.7 | (Until 4.0.0) Send JSON messages and Legacy power state message +MqttClient | 1.0.22 | Show current MQTT client +MqttClient 1 | 1.0.22 | Reset MQTT client to ```user_config.h``` value and restart +MqttClient \ | 1.0.22 | Set MQTT client and restart. May use wildcard %06X to be replaced by last six characters of MAC address +MqttHost | | Show current MQTT host +MqttHost 1 | | Reset MQTT host to ```user_config.h``` value and restart +MqttHost \ | | Set MQTT host and restart +MqttPassword | 1.0.22 | Show current MQTT password +MqttPassword 1 | 1.0.22 | Reset MQTT password to ```user_config.h``` value and restart +MqttPassword \ | 1.0.22 | Set MQTT password and restart +MqttPort | 1.0.22 | Show current MQTT port +MqttPort 1 | 1.0.22 | Reset MQTT port to ```user_config.h``` value and restart +MqttPort \ | 1.0.22 | Set MQTT port between 2 and 32766 and restart +MqttUser | 1.0.22 | (Until 4.0.0) Show current MQTT user name +MqttUser 1 | 1.0.22 | (Until 4.0.0) Reset MQTT user name to ```user_config.h``` value and restart +MqttUser \ | 1.0.22 | (Until 4.0.0) Set MQTT user name and restart +MqttUnits | 2.0.5 | (Until 4.0.0) Show current MqttUnits state +MqttUnits on | 2.0.5 | (Until 4.0.0) Add units to MQTT messages +MqttUnits off | 2.0.5 | (Until 4.0.0) (default) Do not show units to MQTT messages +Units 1 | 4.0.0 | Add units to messages +Units 0 | 4.0.0 | (default) Do not show units to messages +Units | 4.0.0 | Show current Units state +Units on | 4.0.0 | Add units to messages +Units off | 4.0.0 | (default) Do not show units to messages +Units 1 | 4.0.0 | Add units to messages +Units 0 | 4.0.0 | (default) Do not show units to messages +PowerRetain | 3.0.0 | Show current MQTT power retain state +PowerRetain on | 3.0.0 | Enable MQTT power retain on status update +PowerRetain off | 3.0.0 | (default) Disable MQTT power retain on status update +PowerRetain 1 | 3.0.0 | Enable MQTT power retain on status update +PowerRetain 0 | 3.0.0 | (default) Disable MQTT power retain on status update +SwitchRetain | 3.2.9 | Show current button MQTT retain flag state +SwitchRetain on | 3.2.9 | Set ButtonTopic to Topic and enable MQTT retain flag on button press +SwitchRetain off | 3.2.9 | (default) Disable use of MQTT retain flag +SwitchRetain 1 | 3.2.9 | Set ButtonTopic to Topic and enable MQTT retain flag on button press +SwitchRetain 0 | 3.2.9 | (default) Disable use of MQTT retain flag +SwitchTopic | 3.2.9 | Show current MQTT button topic +SwitchTopic 0 | 3.2.9 | Disable use of MQTT button topic +SwitchTopic 1 | 3.2.9 | Set MQTT button topic to Topic +SwitchTopic \ | 3.2.9 | Set MQTT button topic +TelePeriod | 1.0.28 | Show current telemetry period in seconds +TelePeriod off | 1.0.28 | Disable telemetry messages +TelePeriod 0 | 1.0.28 | Disable telemetry messages +TelePeriod 1 | 1.0.28 | Reset telemetry period to ```user_config.h``` value +TelePeriod \ | 1.0.28 | Set telemetry period between 2 and 3600 seconds +Topic | | Show current MQTT topic +Topic 1 | | Reset MQTT topic to ```user_config.h``` value and restart +Topic \ | | Set MQTT topic AND button topic and restart + +### Logging +Command | Version | Description +------- | ------- | ----------- +LogHost | 1.0.7 | Show current syslog host +LogHost 1 | 1.0.7 | Reset syslog host to ```user_config.h``` value +LogHost \ | 1.0.7 | Set syslog host +LogPort | 1.0.26 | Show current syslog port +LogPort 1 | 1.0.26 | Reset syslog port to ```user_config.h``` value +LogPort \ | 1.0.26 | Set syslog port between 2 and 32766 +SerialLog 0 | 1.0.7 | Disable serial logging +SerialLog 1 | 1.0.7 | Show only error messages +SerialLog 2 | 1.0.7 | Show error and info messages +SerialLog 3 | 1.0.7 | Show error, info and debug messages +SerialLog 4 | 1.0.7 | Show all messages +SysLog 0 | 1.0.7 | Disable syslog logging +SysLog 1 | 1.0.7 | Show only error messages +SysLog 2 | 1.0.7 | Show error and info messages +SysLog 3 | 1.0.7 | Show error, info and debug messages +SysLog 4 | 1.0.7 | Show all messages +WebLog 0 | 1.0.27 | Disable web logging +WebLog 1 | 1.0.27 | Show only error messages +WebLog 2 | 1.0.27 | Show error and info messages +WebLog 3 | 1.0.27 | Show error, info and debug messages +WebLog 4 | 1.0.27 | Show all messages + +### Sonoff Pow +Command | Version | Description +------- | ------- | ----------- +CurrentHigh | 2.0.6 | Show current current high threshold value +CurrentHigh off | 2.0.6 | (default) Disable current high threshold +CurrentHigh 0 | 2.0.6 | (default) Disable current high threshold +CurrentHigh \ | 2.0.6 | Set current high threshold value +CurrentLow | 2.0.6 | Show current current low threshold value +CurrentLow off | 2.0.6 | (default) Disable current low threshold +CurrentLow 0 | 2.0.6 | (default) Disable current low threshold +CurrentLow \ | 2.0.6 | Set current low threshold value +PowerHigh | 2.0.6 | Show current power high threshold value +PowerHigh off | 2.0.6 | (default) Disable power high threshold +PowerHigh 0 | 2.0.6 | (default) Disable power high threshold +PowerHigh \ | 2.0.6 | Set power high threshold value +PowerLow | 2.0.6 | Show current power low threshold value +PowerLow off | 2.0.6 | (default) Disable power low threshold +PowerLow 0 | 2.0.6 | (default) Disable power low threshold +PowerLow \ | 2.0.6 | Set power low threshold value +Status 8 | 2.0.5 | Show Power usage +Status 9 | 2.0.6 | Show Power thresholds +VoltageHigh | 2.0.6 | Show current voltage high threshold value +VoltageHigh off | 2.0.6 | (default) Disable voltage high threshold +VoltageHigh 0 | 2.0.6 | (default) Disable voltage high threshold +VoltageHigh \ | 2.0.6 | Set voltage high threshold value +VoltageLow | 2.0.6 | Show current voltage low threshold value +VoltageLow off | 2.0.6 | (default) Disable voltage low threshold +VoltageLow 0 | 2.0.6 | (default) Disable voltage low threshold +VoltageLow \ | 2.0.6 | Set voltage low threshold value + +### Domoticz +Command | Version | Description +------- | ------- | ----------- +DomoticzIdx | 2.0.7 | Show current Domoticz relay1 index +DomoticzIdx off | 2.0.7 | (default) Disable use of Domoticz +DomoticzIdx 0 | 2.0.7 | (default) Disable use of Domoticz +DomoticzIdx \ | 2.0.7 | Set Domoticz relay1 index +DomoticzIdx\ | 3.1.1 | Show current Domoticz relay1 to relay4 index +DomoticzIdx\ off | 3.1.1 | (default) Disable use of Domoticz +DomoticzIdx\ 0 | 3.1.1 | (default) Disable use of Domoticz +DomoticzIdx\ \ | 3.1.1 | Set Domoticz relay1 to relay4 index +DomoticzInTopic | 2.0.7 | Show current Domoticz MQTT In Topic +DomoticzInTopic 1 | 2.0.7 | Reset Domoticz MQTT In Topic to ```user_config.h``` value and restart +DomoticzInTopic \ | 2.0.7 | Set Domoticz MQTT In Topic and restart +DomoticzKeyIdx | 2.0.7 | Show current Domoticz key1 index +DomoticzKeyIdx 0 | 2.0.7 | (default) Disable use of key1 index +DomoticzKeyIdx \ | 2.0.7 | Set Domoticz key1 index. To use it you'll need to enable ButtonTopic too +DomoticzKeyIdx\ | 3.1.1 | Show current Domoticz key1 to key4 index +DomoticzKeyIdx\ 0 | 3.1.1 | (default) Disable use of key1 to key4 index +DomoticzKeyIdx\ \ | 3.1.1 | Set Domoticz key1 to key4 index. To use it you'll need to enable ButtonTopic too +DomoticzOutTopic | 2.0.7 | Show current Domoticz MQTT Out Topic +DomoticzOutTopic 1 | 2.0.7 | Reset Domoticz MQTT Out Topic to ```user_config.h``` value and restart +DomoticzOutTopic \ | 2.0.7 | Set Domoticz MQTT Out Topic and restart +DomoticzSensorIdx | 3.9.3 | Show current Domoticz sensor1 index +DomoticzSensorIdx 0 | 3.9.3 | (default) Disable use of sensor1 index +DomoticzSensorIdx \ | 3.9.3 | Set Domoticz sensor1 index. +DomoticzSensorIdx\ | 3.9.3 | Show current Domoticz sensor1 to sensor5 index +DomoticzSensorIdx\ 0 | 3.9.3 | (default) Disable use of sensor1 to sensor5 index +DomoticzSensorIdx\ \ | 3.9.3 | Set Domoticz sensor1 to sensor5 index. +DomoticzSwitchIdx | 3.9.3 | Show current Domoticz switch1 index +DomoticzSwitchIdx 0 | 3.9.3 | (default) Disable use of switch1 index +DomoticzSwitchIdx \ | 3.9.3 | Set Domoticz switch1 index. To use it you'll need to enable SwitchTopic too +DomoticzSwitchIdx\ | 3.9.3 | Show current Domoticz switch1 to switch4 index +DomoticzSwitchIdx\ 0 | 3.9.3 | (default) Disable use of switch1 to switch4 index +DomoticzSwitchIdx\ \ | 3.9.3 | Set Domoticz switch1 to switch4 index. To use it you'll need to enable SwitchTopic too +DomoticzUpdateTimer | 2.0.7 | Show current Domoticz update timer value in seconds +DomoticzUpdateTimer off | 2.0.7 | (default) Disable sending interrim Domoticz status +DomoticzUpdateTimer 0 | 2.0.7 | (default) Disable sending interrim Domoticz status +DomoticzUpdateTimer \ | 2.0.7 | Send status to Domoticz between every 1 and 3600 seconds + +### WS2812 Led string +Command | Version | Description +------- | ------- | ----------- +Color | 3.2.9 | Show current strip/ring color setting as RRGGBB +Color \ | 3.2.9 | Set strip/ring color to RRGGBB hexadecimal value +Dimmer | 3.2.9 | Show current dimmer setting from 0 to 100% +Dimmer 0 - 100 | 3.2.9 | Set dimmer value from 0 to 100% +Fade | 3.2.9 | Show current color fade state +Fade Off | 3.2.9 | (default) Do not use fade while changing colors +Fade On | 3.2.9 | Use fade while changing colors +Fade 0 | 3.2.9 | (default) Do not use fade while changing colors +Fade 1 | 3.2.9 | Use fade while changing colors +Led1 - Led\ | 3.2.9 | Show specific led current color as RRGGBB +Led1 - Led\ \ | 3.2.9 | Set specific led to desired color RRGGBB +LedTable | 3.2.9 | Show current Led table color correction state +LedTable Off | 3.2.9 | (default) Do not use Led table for color correction +LedTable On | 3.2.9 | Use Led table for color correction +LedTable 0 | 3.2.9 | (default) Do not use Led table for color correction +LedTable 1 | 3.2.9 | Use Led table for color correction +Pixels | 3.2.9 | Show current pixel count +Pixels \ | 3.2.9 | Set amount of pixels in strip or ring up to 256 +Scheme | 3.2.9 | Show current selected scheme +Scheme 0 | 3.2.9 | (default) Use single color for all leds in strip/ring +Scheme 1 | 3.2.10 | Start wakeup light +Scheme 2 | 3.2.10 | Show clock +Scheme 3 | 3.2.10 | Show incandescent pattern +Scheme 4 | 3.2.10 | Show rgb pattern +Scheme 5 | 3.2.10 | Show Christmas pattern +Scheme 6 | 3.2.10 | Show Hanukkah pattern +Scheme 7 | 3.2.10 | Show Kwanzaa pattern +Scheme 8 | 3.2.10 | Show rainbow pattern +Scheme 9 | 3.2.10 | Show fire pattern +Speed | 3.2.9 | Show current fade speed selection +Speed 1 - 5 | 3.2.9 | Select desired fade speed from 1 = fast to 5 = slow +Wakeup | 3.2.10 | Show current wake up light duration in seconds +Wakeup 1 - 3600 | 3.2.10 | Set wake up light duration in seconds +Width | 3.2.10 | Show current led group width +Width 0 - 4 | 3.2.10 | Set led group width used by Schemes 3 - 9 + +### Next Generation +Command | Version | Description +------- | ------- | ----------- +Modules | 4.0.0 | Show available modules by name and index +Module | 4.0.0 | Show active module by name and index +Module \ | 4.0.0 | Switch to selected module and restart +Gpios | 4.0.0 | Show available sensors and devices by name and index for user selection +Gpio | 4.0.0 | Show current GPIO usage for current module +Gpio\ \ | 4.0.0 | Select sensor to be connected to \ + +### Optional +Command | Version | Description +------- | ------- | ----------- +I2Cscan | 2.0.20 | Scan I2C bus and show device addresses found +SwitchMode | 2.0.18 | Show current external switch mode +SwitchMode 0 | 2.0.18 | (default) Set switch mode to TOGGLE +SwitchMode 1 | 2.0.18 | Set switch mode to FOLLOW (0 = Off, 1 = On) +SwitchMode 2 | 2.0.18 | Set switch mode to inverted FOLLOW (0 = On, 1 = Off) +SwitchMode 3 | 3.0.2 | Set switch mode to PUSHBUTTON (Normally 1, 0 = toggle) +SwitchMode 4 | 3.0.2 | Set switch mode to inverted PUSHBUTTON (Normally 0, 1 = toggle) diff --git a/Compile-and-Upload.md b/Compile-and-Upload.md new file mode 100644 index 00000000..7ded255f --- /dev/null +++ b/Compile-and-Upload.md @@ -0,0 +1,84 @@ +In the Arduino IDE for sonoff select from ```Tools Board Generic ESP8266 Module``` and set the following options: + +- Flash Mode: DIO +- Flash Frequency: 40MHz +- Upload Using: Serial +- CPU Frequency: 80MHz +- Flash Size: 1M (64K SPIFFS) +- Debug Port: Disabled +- Debug Level: None +- Reset Method: ck +- Upload Speed: 115200 +- Port: Your COM port connected to sonoff + +Load the file ```sonoff.ino``` into the IDE. + +Update ```user_config.h``` with your specific MODULE (SONOFF, SONOFF_2, SONOFF_POW, MOTOR_CAC or ELECTRO_DRAGON) until version 4, Wifi and MQTT parameters. + +Verify and/or compile the project and upload once to sonoff using the serial connection as shown in [Peter Scargill's blog](http://tech.scargill.net/itead-slampher-and-sonoff). See below for specific Sonoff Module information. +Connection diagram
+ +**Do not connect AC power during the flash cable connection**. + +### Sonoff RF +S20 Smart Socket +The Sonoff RF needs some tweeking as the connection needed during programming between the button and GPIO0 might not be present. + +[Phalox](http://phalox.be/wp/electronics/itead-sonoff-slampher-custom-firmware-fix/) explains the case with a picture where you have to install a jumper wire for R21. I received the same result using a small screwdriver and shorting both solder pads of R21 while holding down the button during programming. + +Pairing a RF remote is the same as with iTead software: +- two short button presses will blink a red led shortly and start RF signal recognition. Three longer blinks signal RF reception. +- three short button presses will keep the red led on for some seconds and erase the known RF code. + +I was unable to pair the Sonoff RF 434MHz receiver with any of my KaKu switches so to me the RF functionality is a bit disappointing. + +### Sonoff Dual +Dual GPIO0 grounded +Programming the Sonoff Dual is also more difficult as the button is not connected to GPIO0 which is needed to put the ESP8266 in programming mode during power up. + +I suggest to solder a 4 pin header for the serial interface as shown in the image on the right (the vertical connector) and use the small inter layer VIA to ground GPIO0 using the GND pin from the button 0 and button 1 header. + +The 4 pin header in the middle, which is normally not present, is not needed but might be used in programming the ESP8266 as there must be a better way for itead to get the initial code loaded ... + +### S20 Smart Socket +S20 Smart Socket +The picture on the right, provided by ThomDietrich, shows how to program the S20 Smart Socket powered by the FTDI USB converter. + +Remember that during programming the Smart Socket is **NOT** connected to mains. + +### Sonoff Pow - WARNING +Trying to program the Sonoff Pow [comrade MySKU](http://mysku.ru/blog/china-stores/45762.html) learned the hard way how to brick it. + +Sonoff Pow Bricked +As the Sonoff Pow power monitoring hardware connects AC power to the logic ground of the ESP8266 it is utterly mandatory to **NOT CONNECT AC POWER WHILE SERIAL CONNECTION IS BEING USED**. + +During both AC connection and Serial connection you may connect the life AC wire with your PC's DC ground leading to a power short, broken Sonoff Pow and laptop Power Supply as MySKU has experienced. + +### Sonoff Touch +Sonoff Touch EU +As the Sonoff Touch is based on the ESP8285 using Flash Mode DOUT you will have to make some changes to the proposed Arduino IDE settings as follows: + +- Tools Board Generic ESP8285 Module +- Flash Size: 1M (64K SPIFFS) + +Programming the Sonoff touch is as easy as the Sonoff Basic. + +Sonoff Touch US +Remove the top PCA containing the ESP8285 from the assembly as shown in the pictures on the right. + +The pictures show for both the EU version (top) and the US version (bottom) where to connect your FTDI cable (Gnd, TxD, RxD and 3.3V). The GPIO0 pin needs to be connected to Ground to put the Sonoff Touch in programming mode. + +Remember that during programming the Sonoff Touch is **NOT** connected to mains. + +### iTead Motor Clockwise/Anticlockwise +MotorCAC +This USB powered or external powered board provides one GPIO controlling two alternating relays with Normally Open (NO) and Normally Closed (NC) contacts. It can be used for changing directions of a connected motor. + +Programming the onboard 3.3V [PSA-B](https://www.itead.cc/psa-01.html) is possible when Rx (pin7), Tx (pin8) and Gnd (pin9) are connected to the FTDI interface, the button is pressed and (USB) power is provided. + +### Upload image +Verify and upload an OTA image to your web server with option ```Upload Using: OTA_upload```. + +Since version 1.0.26 you may also use sonoffs web server and upload the file directly. + +Enable debug messages with command ```seriallog 3```. \ No newline at end of file diff --git a/Control-a-Sonoff-using-a-remote-button.md b/Control-a-Sonoff-using-a-remote-button.md new file mode 100644 index 00000000..ff6b8c22 --- /dev/null +++ b/Control-a-Sonoff-using-a-remote-button.md @@ -0,0 +1,23 @@ +### REMOTE BUTTON + +I have a cabin that is remote from my house, and I'm using a Sonoff to turn on/off the heaters remotely, so the place can be warm when I get there. The Sonoff(heater control) is located near the fuse box, and it controls a relay which switches the 120V/30A to the heaters. + +It's awkward to get at the Sonoff(heater control) to physically press the toggle button, so when I'm using it, I use MQTT commands to control the heaters. But I have some family members that are not comfortable with MQTT usage and certainly don't want to open the fuse box. + +So I built a small ESP-01 and a DHT22 and a push button, and used this project code to drive it (>rev 1.0.30). I use the `cmnd/my_DHT/buttontopic` to set the mqtt command to control the heaters. Yes, you can program a sonoff so that the button sends out any arbitrary command. In this case, I'm using the button to control the other sonoff. This ESP+DHT device is in the common area of the cabin, so my family members can simply push the button to toggle the heater. + +In other words, I'm using _one_ trivial (DHT+button) wifi device to control the _other_ (sonoff+heater relay). This technique uses Theo's flexible design, since _buttontopic_ can be made different from _topic_. + +### Schematic ![schematic of trivial DHT + ESP01](http://alt.pbeirne.com/images/esp_dht2.png) +NOTE: with this schematic, the DHT sensor is on GPIO2. You'll have to change the` #define DHT_PIN ` in this project's source code from 14 to 2. Also, make sure you use the `black` ESP01 with 1MB of flash; most 2016 purchases should be ok. Of course you can use an ESP12 if you wish. + +The optional block shown attaches an LED to the DHT data line, so you can watch when the data is being fetched from the DHT device. + +Power regulator, 5V to 3.3V: search eBay for `5v/3.3v power 1117`
+ESP: search eBay for `esp-01` and pick a black one
+DHT22: search eBay for `dht22` ; any AM2302, DHT11 or DHT12 will do in its place; or you can omit the DHT and just use the button
+Cost (2016-09-05) USB-5V-adapter: CAD$1 + DC5V->3.3V: CAD$1 + ESP01: CAD$2.62 + DHT12: CAD$1.50 = CAD$6.12 = EUR 4.25 + +This little device has two _inputs_ (DHT & button), and no _output_. You can use either the Sonoff or the ElectroDragon version of this project, but because this has no output, the following commands don't make any sense: `power, light, ledstate`. You may also want to change the `#define APP_NAME` and `#define PROJECT` to reflect that this isn't a real Sonoff. + +Pat B \ No newline at end of file diff --git a/Domoticz.md b/Domoticz.md new file mode 100644 index 00000000..a64535eb --- /dev/null +++ b/Domoticz.md @@ -0,0 +1,50 @@ +Sonoff +Sonoff supports Domoticz MQTT 'out of the box'. Find below the procedure to start using it. + +## Assumptions +The following servers should be made available: + +- You have installed/access to a MQTT server and made contact with your sonoff +- You have installed Domoticz + +## Domoticz +Configure MQTT and Virtual Sensor hardware + +1. On the hardware page add Type ```MQTT Client Gateway with LAN interface``` + 1. Give it a name + 2. Configure the interface with access to your MQTT server (```Remote Address```, ```Port```, ```Username``` and ```Password```) + 3. Set the ```Public Topic``` to flat (which seems to relate to ```out``` in the select field) +2. On the hardware page add Type ```Dummy (used for virtual switches)``` + 1. Give it a name +3. Make a new virtual switch to be used with Sonoff by clicking ```Create Virtual Sensors``` + 1. Give it a name + 2. Select ```Sensor Type Switch``` +4. On the Devices page find the new switch by it's name + 1. Remember it's Idx number + +## Sonoff +Sonoff +Sonoff provides several ways of configuring Domoticz parameters. + +- Make updates to the Domoticz section of ```user_config.h``` but remember that these changes are only propagated if you also change the CFG_HOLDER define. This is NOT my preferred way of configuring. + 1. Set ```DOMOTICZ_IN_TOPIC``` to ```domoticz/in``` as hardcoded in Domoticz + 2. Set ```DOMOTICZ_OUT_TOPIC``` to ```domoticz/out``` as hardcoded in Domoticz + 3. Configure ```DOMOTICZ_RELAY_IDX1``` to the value read in step 4.1 +- Use the webinterface and select ```Configuration - Configure Domoticz``` + 1. Set ```In topic``` to ```domoticz/in``` as hardcoded in Domoticz + 2. Set ```Out topic``` to ```domoticz/out``` as hardcoded in Domoticz + 3. Configure ```Idx 1``` to the value read in step 4.1 +- Use MQTT and execute commands + 1. ```cmnd/sonoff/DomoticzInTopic``` with payload ```domoticz/in``` as hardcoded in Domoticz + 2. ```cmnd/sonoff/DomoticzOutTopic``` with payload ```domoticz/out``` as hardcoded in Domoticz + 3. ```cmnd/sonoff/DomoticzIdx1``` with payload value read in step 4.1 +- Use the serial interface and execute commands + 1. ```DomoticzInTopic``` with ```domoticz/in``` as hardcoded in Domoticz + 2. ```DomoticzOutTopic``` with ```domoticz/out``` as hardcoded in Domoticz + 3. ```DomoticzIdx1``` with the value read in step 4.1 + +## Domoticz +That's it! You can now switch Sonoff from the Domoticz user interface. + +- On the Switches page scroll down and find your Switch as configured in step 3 + - Toggle the light bulb; Sonoff should respond \ No newline at end of file diff --git a/Home.md b/Home.md index 369701f0..222be487 100644 --- a/Home.md +++ b/Home.md @@ -1 +1,43 @@ -Welcome to the Sonoff-Tasmota wiki! +## Sonoff-Tasmota +Sonoff +Provide ESP8266 based Sonoff by [iTead Studio](https://www.itead.cc/) and ElectroDragon IoT Relay with Serial, Web and MQTT control allowing 'Over the Air' or OTA firmware updates using Arduino IDE. + +## Supported devices +The following devices are supported with Serial, Web and MQTT control: +- [iTead Sonoff Basic](http://sonoff.itead.cc/en/products/sonoff/sonoff-basic) +Sonoff +- [iTead Sonoff RF](http://sonoff.itead.cc/en/products/sonoff/sonoff-rf) +- [iTead Sonoff SV](https://www.itead.cc/sonoff-sv.html) +- [iTead Sonoff TH10/TH16 with temperature sensor](http://sonoff.itead.cc/en/products/sonoff/sonoff-th) +- [iTead Sonoff Dual](http://sonoff.itead.cc/en/products/sonoff/sonoff-dual) +- [iTead Sonoff Pow](http://sonoff.itead.cc/en/products/sonoff/sonoff-pow) +- [iTead Sonoff 4CH](http://sonoff.itead.cc/en/products/sonoff/sonoff-4ch) +- [iTead S20 Smart Socket](http://sonoff.itead.cc/en/products/residential/s20-socket) +- [iTead Slampher](http://sonoff.itead.cc/en/products/residential/slampher-rf) +- [iTead Sonoff Touch](http://sonoff.itead.cc/en/products/residential/sonoff-touch) +- [iTead Sonoff Led](http://sonoff.itead.cc/en/products/appliances/sonoff-led) +- [iTead 1 Channel Switch 5V / 12V](https://www.itead.cc/smart-home/inching-self-locking-wifi-wireless-switch.html) +- [iTead Motor Clockwise/Anticlockwise](https://www.itead.cc/smart-home/motor-reversing-wifi-wireless-switch.html) +- [Electrodragon IoT Relay Board](http://www.electrodragon.com/product/wifi-iot-relay-board-based-esp8266/) + +## Planned support +- [iTead Sonoff SC](http://sonoff.itead.cc/en/products/residential/sonoff-sc) + +## Features +Sonoff +The following features are available: +- Multiple devices can be addressed by MQTT ```GroupTopic``` +- Firmware upload by OTA or via web page upload +- Expanded Status messages +- UDP syslog messages can be filtered on program name starting with ```ESP-``` +- The button can send a different MQTT message defined with ```ButtonTopic``` +- Initial Wifi setup by user_config.h, Serial, Smartconfig, Wifi manager or WPS config +- A web server provides control of Sonoff and contains a firmware upload facility +- Support for DHTxx, AM2301 or DS18B20 temperature sensors as used in Sonoff TH10/TH16 +- Support for I2C sensors like BH1750, BME280 and HTU21 +- Telemetry data can be send using optional different prefix from status messages +- Native Domoticz MQTT support +- Wemo and Hue emulation for Amazon Echo (Alexa) support + +## Community +See [Community](https://groups.google.com/d/forum/sonoffusers) for forum and additional user experience diff --git a/MQTT-Features.md b/MQTT-Features.md new file mode 100644 index 00000000..5ca59981 --- /dev/null +++ b/MQTT-Features.md @@ -0,0 +1,25 @@ +Sonoff responds to the following MQTT commands using MQTT Topic for ```cmnd/sonoff/``` and MQTT Message/Payload for ``````: + +- the relay can be controlled with ```cmnd/sonoff/power on```, ```cmnd/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```. + +- starting with version 3.0.0 the power state message can be sent with the retain flag set. Enable this with ```cmnd/sonoff/PowerRetain on```. + +- starting with version 3.0.0 for sonoff dual the relays need to be addressed with ```cmnd/sonoff/power1 toggle``` and ```cmnd/sonoff/power2 toggle```. From version 2.0.0 until version 3.0.0 the relays could be addressed with ```cmnd/sonoff/1/power toggle``` and ```cmnd/sonoff/2/power toggle```. + +- the MQTT topic can be changed with ```cmnd/sonoff/topic sonoff1``` which reboots sonoff and makes it available for MQTT commands like ```cmnd/sonoff1/power on```. + +- the OTA firmware location can be made known to sonoff with ```cmnd/sonoff/otaurl http://domus1:80/api/sonoff/user1.bin``` where domus1 is your webserver hosting the firmware. Reset to default with ```cmnd/sonoff/otaurl 1```. + +- upgrade OTA firmware with ```cmnd/sonoff/upgrade 1```. + +- show all status information with ```cmnd/sonoff/status 0```. + +- The button can send a MQTT message to the broker that in turn will switch the relay. To configure this you need to perform ```cmnd/sonoff/ButtonTopic sonoff``` where sonoff equals to Topic. The message can also be provided with the retain flag by ```cmnd/sonoff/ButtonRetain on```. + +- Sonoff Pow status can be retreived with ```cmnd/sonoff/status 8``` or periodically every 5 minutes using ```cmnd/sonoff/TelePeriod 300```. If units appended to the message are needed execute command ```cmnd/sonoff/MqttUnits on```. + +- When a Sonoff Pow threshold like PowerLow has been met a message ```tele/sonoff/POWER_LOW ON``` will be sent. When the error is corrected a message ```tele/sonoff/POWER_LOW OFF``` will be sent. + +Most MQTT commands will result in a status feedback like ```stat/sonoff/POWER ON``` and/or {"POWER":"ON"} depending of ```cmnd/sonoff/MessageFormat Legacy|JSON```. The power state will ALWAYS be returned in Legacy mode (for easy triggering by home automation tool) and optionally in JSON. + +Telemetry data will be sent by prefix ```tele``` like ```tele/sonoff/TEMPERATURE 24.7``` diff --git a/MQTT-for-Newbies.md b/MQTT-for-Newbies.md new file mode 100644 index 00000000..1d349629 --- /dev/null +++ b/MQTT-for-Newbies.md @@ -0,0 +1,205 @@ +# Notes on MQTT for Newbies + +## MQTT Message flow + +Here is a diagram showing the connection phase and the 4 network transactions required to turn a sonoff device on. + +![mqtt flow](http://alt.pbeirne.com/images/sonoff_cmnd_flow.jpg) + +In a typical setup, you'll have multiple Sonoff's (or other devices using this project's code) on the left hand side. +![mqtt flow multiple devices](http://alt.pbeirne.com/images/sonoff_cmnd_flow2.png) + + +There are lots of ways to control your devices. One typically uses a laptop/desktop to configure and test your Sonoffs and perhaps a smartphone to keep track of what's happening. In the long run you might want to integrate your device in a home-automation system like node-RED, openHAB, HomeAssistant, HomeBridge, Domoticz, ... + +|Message|Issued by|Intent +|---|---|--- +|`cmnd`|devices shown on the right hand side|control the Sonoff; set configuration; ask for status| +|`stat`|the Sonoffs|report back status or configuration message} +|`tele`|some Sonoffs (like temperature measuring devices)|report unsolicited telemetry info at periodic intervals| + + + +## Programming examples for the Sonoff-MQTT-OTA-Arduino + +### TL;DR + mosquitto_sub -h mqtt_server_name.com -t stat/my_sonoff/POWER -v # listen for status + mosquitto_pub -h mqtt_server_name.com -t cmnd/my_sonoff/power -m 1 # turn on the light + +### General + +See the wiki's [Command List](https://github.com/arendst/Sonoff-MQTT-OTA-Arduino/wiki/Commands) +for the definitive list of operations that you can perform. The first word in the column marked +`Command` is the text that +you need to put at the end of a `cmnd` string when you issue a publication message. The 2nd word +is the contents of the payload. If there is no 2nd word, you +can simply send an empty payload. For example, the first line on the Commands page reads + +Command|Version|Description +-----|---|------ +Power | | Show current power state as On or Off +Power on | | Turn power On +Power off | | Turn power Off + +To execute these, issue (publish) these MQTT requests + + MQTT topic MQTT payload + cmnd/my_device/power + cmnd/my_device/power on + cmnd/my_device/power off + +The sonoff will respond with these publications: + + MQTT topic MQTT payload + stat/my_device/POWER ON + stat/my_device/POWER ON + stat/my_device/POWER OFF + +If you have subscribed to these `stat` messages, you can be informed of changes on the device. + + +#### Connecting to MQTT +You'll need an MQTT server somewhere to communicate with your Sonoff. Some people use publicly available servers, such as iot.eclipse.org. There's a list at http://moxd.io/2015/10/public-mqtt-brokers/ + +Other people think the MQTT server should reside inside your private LAN. You could use a Raspberry/Orange Pi, or just about any Linux machine as the server/broker; you might even squeeze it into your router if you're using OpenWRT. + +#### Creating your own MQTT server/broker +See these sites: [Rufio howto](https://github.com/arendst/Sonoff-MQTT-OTA-Arduino/wiki/Commands) +[Wingsquare howto](https://github.com/arendst/Sonoff-MQTT-OTA-Arduino/wiki/Commands) +[Instructables howto on Raspberry Pi](https://github.com/arendst/Sonoff-MQTT-OTA-Arduino/wiki/Commands) + + +### Linux/Cygwin command line + +You can install the mosquitto client system using either + + [Cygwin] setup mosquitto_client + [Ubuntu/Debian] apt install mosquitto_client + [Centos/Fedora] yum install mosquitto_client + +#### Controlling (Publishing) + +You can control the relay in your Sonoff with mosquitto_pub. Suppose your Sonoff topic is "my_house_living_room" and your mqtt broker is "control_central". To turn on the Sonoff, type this on the command line: + + mosquitto_pub -h control_central -t cmnd/my_house_living_room/power -m 1 + +You can turn the Sonoff back off again with: + + mosquitto_pub -h control_central -t cmnd/my_house_living_room/power -m 0 + +If you want to found out what state your sonoff is, issue this command with an empty payload to trigger a status response (see below for how to listen): + + mosquitto_pub -h control_central -t cmnd/my_house_living_room/status -n + +#### Listening (Subscribing) +To keep track of your sonoff, just subscribe to messages starting with `stat`, followed by your topic. For example, to pick up status messages from your sonoff, use + + mosquitto_sub -h control_central -t stat/my_house_living_room/STATUS -v + +The optional `-v` will show you the topic _and_ payload. + +These Sonoffs can provide specific information if you wish. To just monitor the relay state, try + + mosquitto_sub -h control_central -t stat/my_house_living_room/POWER + +You can also use wildcards in your subscription. To pick up _every_ message from this sonoff, you can use + + mosquitto_sub -h control_central -t stat/my_house_living_room/+ + +and then some some other code to just pick out the messages you want. If you have a collection of sonoffs, you can listen to them all by either using the group topic + + mosquitto_sub -h control_central -t stat/my_house_collection/POWER + +or by using a wildcard in the 2nd position + + mosquitto_sub -h control_central -t stat/+/POWER + + + +### Python +Of course you can always call `system()` or `subprocess()` to run the `mosquitto_pub` and `mosquitto_sub` command lines as shown above. But if you wish, you can install the paho-mqtt package and communicate with MQTT using Python objects. + +Let's turn the lights on, wait a few seconds, turn them off, check the status and wait for a time stamp + +``` +import paho.mqtt.client as mqtt, time, sys + +last_topic = "" +lasy_payload = "" + +# main +def on_connect(client, userdata, flags, rc): + print("Connected") + client.is_connected = True + +def on_message(client, userdata, message): + ''' note: message is a tuple of (topic, payload, qos, retain)''' + global last_topic, last_payload + last_topic = message.topic + last_payload = message.payload + print("Got a message with topic: [" + last_topic + "] and payload [" + last_payload + "]") + +client = mqtt.Client() +client.on_connect = on_connect +client.on_message = on_message + +client.is_connected = False +client.loop_start() +client.connect("control_central") + +time.sleep(6) +if not client.is_connected: + print("problem connecting to the MQTT server; please check your settings") + sys.exit(1) + +client.subscribe("stat/my_house_living_room/POWER") +client.publish("cmnd/my_house_living_room/power","1") + +# wait a little bit +time.sleep(15) +client.publish("cmnd/my_house_living_room/power","0") + +# ask for system status +time.sleep(1) +client.subscribe("stat/my_house_living_room/STATUS") +client.publish("cmnd/my_house_living_room/status",None) + +# now wait for a time stamp from the sonoff; this could take an hour +client.subscribe("tele/my_house_living_room/+") + +while 1: + if last_topic.startswith("tele/") and last_topic.endswith("TIME"): + print("the sonoff thinks the time is: "+last_payload) + break + time.sleep(5) + +client.loop_stop() +client.disconnect() + + +``` + +Ref: [Python MQTT](https://pypi.python.org/pypi/paho-mqtt/1.1) + +### JavaScript +...is anyone interested in writing this section?... + +### Android phone MQTT Dashboard +The [MQTT Dashboard](https://play.google.com/store/apps/details?id=com.thn.iotmqttdashboard) +provides the ability to connect and control Sonoff devices directly. + +On the first page, enter the details of how your phone should connect to the MQTT broker. On the SUBSCRIBE page, you +can create widgets which listen for publications from the Sonoff. A typical subscription for a power controller might be +`stat/my_device/POWER` + +You could also pick up _all_ your devices with +`stat/+/POWER` + +On the PUBLISH page you can create widgets to toggle or on/off your Sonoff. Typically you'd send a +`cmnd/my_device/power` as the topic, and `on` or `off` as the _publish value_. Note that you can also have separate words +on the app's user interface, such as `illuminated` and `extinguished`; these are _not_ sent out via MQTT, they're just +user interface. + +Alternatively, if you're using a home automation system, there may be an Andriod/iOS app to link to your home automation. +That's not covered in this how-to. + diff --git a/Modify-KaKu-to-WKaKu-Power-Socket.md b/Modify-KaKu-to-WKaKu-Power-Socket.md new file mode 100644 index 00000000..6a25aa06 --- /dev/null +++ b/Modify-KaKu-to-WKaKu-Power-Socket.md @@ -0,0 +1,29 @@ +Exterior +Kaku +The Dutch Klik Aan Klik Uit PAR-1000 434MHz Power socket might suffer from Capacitor degeneration. In effect the power needed to engage the relay is to low. Replacing the Yellow Capacitor often solves the problem. +
+
+I have several of these lying around and they can be used very well with sonoff functionality. As the sonoff PCA is a bit too large I decided to design my own PCA using kicad. +
+
+wKaku prototype +wKaku v1.3 +During Proof of Concept I used 5V power supplies from itead. After three units were built one crashed caused by debris on the PS PCA resulting in an AC short which in turn blew the large resistor. As the selected Songle relay has the control leads close to the AC leads I also changed the relay. +
+
+I decided to select the HiLink 5V power supply as it was also favourable on other sites. The relay now has the same connections as the one used in sonoff. +
+
+wKaku parts +wKaku pca +The parts used are:
+= HiLink 5V power supply HLK-PM01 (aliexpress)
+= 5V to 3V3 step down (aliexpress)
+= 5V relay OJE-SH-105DM (ebay)
+= ESP12-F (aliexpress)
+= Capacitors and led from kaku PCA
+= 2 x 1k and 1 x 10k Resistors + +The image on the right shows how I mounted the ESP12-F vertically. Notice the 10k resistor from GPIO15 to the board. + +The firmware used is sonoff without modification! diff --git a/Prerequisite.md b/Prerequisite.md new file mode 100644 index 00000000..ebdd767b --- /dev/null +++ b/Prerequisite.md @@ -0,0 +1,18 @@ +Install the ESP8266 Arduino development environment from [esp8266 Arduino](https://github.com/esp8266/Arduino). The software is supported with Arduino IDE versions 1.6.10 until 1.8.1 and esp8266 Arduino stable version 2.3.0. + +- I prefer a standalone version of the IDE allowing easy ESP8266 file manipulation. This can be achieved by downloading the Arduino IDE ZIP file for non admin install. After unzipping and before executing ```arduino.exe``` add an empty directory called ```portable``` +- Follow the procedure from the ESP8266 Arduino README.md to install the development environment using the Arduino IDE Board Manager +- Copy the ```sonoff``` directory to your sketchfolder + +Download and unzip the [pubsubclient](https://github.com/knolleary/pubsubclient) MQTT library into directory ```portable\sketchbook\libraries``` and rename to pubsubclient. Update default value in file ```pubsubclient\src\PubSubClient.h``` +- Change ```MQTT_MAX_PACKET_SIZE``` from 128 to at least 400 + +Optionally install php and a local web server (ie apache) for OTA and copy directory ```api``` in webroot. + +### "Over The Air" updates +If you want to be able to upload the OTA file from the IDE to your web server perform the following changes to the Arduino IDE environment: + +- Copy file ```espupload.py``` to directory ```portable\packages\esp8266\hardware\esp8266\2.3.0\tools``` and change HOST_ADDR to refer to your web server +- Replace files ```boards.txt``` and ```platform.txt``` in directory ```portable\packages\esp8266\hardware\esp8266\2.3.0``` + +This will provide an additional option ```Tools - Upload Using: OTA_upload```. diff --git a/Sonoff-Dual.md b/Sonoff-Dual.md new file mode 100644 index 00000000..4f407c37 --- /dev/null +++ b/Sonoff-Dual.md @@ -0,0 +1,10 @@ +## Solving intermittent relay switch errors +Where most Sonoff's use GPIO to control one or more relays the Sonoff Dual and 4 Channel Inching Relay Assy do use the standard SERIAL interface to control the relays. + +Commands are send from the ESP8266 via a 19200 baud serial connection to a dedicated chip that controls the relays. + +It is therefore important to disable any serial communication to and from the device once you have debugged any anomalies. + +To assist easy installation serial logging is enabled by default in user_config.h for all Sonoffs. Once in production it's wise to turn it off for all Sonoffs. For the Dual it is almost mandatory to turn it off. + +Execute command ```seriallog 0``` once to turn all communication on the serial port off. \ No newline at end of file diff --git a/Sonoff-Pow.md b/Sonoff-Pow.md new file mode 100644 index 00000000..47600517 --- /dev/null +++ b/Sonoff-Pow.md @@ -0,0 +1,77 @@ +## Calibration +Sonoff Pow might need calibration as correct measurements are influenced by hardware and timing differences. + +I used the following procedure to calibrate. + +1. Prerequisites + - Calibrated multimeter ;-) + - Optional calibrated power meter ;-) + - 60W light bulb +2. Enable the calibration commands by updating define ```USE_POWERCALIBRATION``` in ```user_config.h``` +3. Recompile and upload to Sonoff Pow +4. Connect the Pow to the optional power meter. +5. Connect the 60W light bulb +6. Open a webbrowser to Pow showing the main page and another webbrowser showing the Console +7. Turn power on and wait a few seconds for the pow to settle on a stable power reading +8. Verify the power reading with the power meter or expected 60W and if needed change the power offset value with command ```HLWPcal``` +9. Verify the voltage reading with the multimeter and if needed change the voltage offset value with command ```HLWUcal``` +10. Verify the current reading with the calculated value of P (step 8) / U (step 9) and if needed change the current offset with command ```HLWIcal``` +11. Optionally disable the calibration commands by recompiling and uploading the firmware + +## Result explanation +The Sonoff Pow can provide Energy, Power, Voltage and Current information in different ways. + +### Push result using Telemetry +The preffered way is using the periodic telemetry data. Setting ```teleperiod 300``` will send telemetry data every 5 minutes. Depending on messageformat and mqttunits the result would be: + +- Result when ```messageformat 0``` (Legacy) and ```mqttunits 0```: +``` +tele/pow1/YESTERDAY_ENERGY 0.234 +tele/pow1/TODAY_ENERGY 0.016 +tele/pow1/PERIOD_ENERGY 5 +tele/pow1/CURRENT_POWER 53 +tele/pow1/POWER_FACTOR 1.00 +tele/pow1/VOLTAGE 214 +tele/pow1/CURRENT 0.247 +tele/pow1/TIME 2017-01-01T13:50:17 +``` +- Result when ```messageformat 0``` (Legacy) and ```mqttunits 1```: +``` +tele/pow1/YESTERDAY_ENERGY 0.234 kWh +tele/pow1/TODAY_ENERGY 0.016 kWh +tele/pow1/PERIOD_ENERGY 5 Wh +tele/pow1/CURRENT_POWER 53 W +tele/pow1/POWER_FACTOR 1.00 +tele/pow1/VOLTAGE 214 V +tele/pow1/CURRENT 0.247 A +tele/pow1/TIME 2017-01-01T13:50:17 +``` +- Result when ```messageformat 1``` (JSON): +``` +tele/pow1/TELEMETRY {"Time":"2017-01-01T13:50:17", "Energy":{"Yesterday":"0.234", "Today":"0.016", "Period":5, "Power":53, "Factor":"1.00", "Voltage":214, "Current":"0.247"}} +``` + +### Pull result using status message 8 +To request information you can use command ```status 8``` which results in one of the following messages: + +- Result when ```messageformat 0``` (Legacy): +``` +stat/pow1/RESULT PWR: Voltage 214 V, Current 0.247 A, Power 53 W, Today 0.016 kWh, Factor 1.00 +``` +- Result when ```messageformat 1``` (JSON): +``` +stat/pow1/RESULT {"StatusPWR":{"Voltage":214, "Current":"0.247", "Power":53, "Today":"0.016", "Factor":"1.00"}} +``` + +### Meaning +The presented information has the following meaning: + +Legacy | JSON | Unit | Description +------ | ---- | ---- | ----------- +YESTERDAY_ENERGY | Yesterday | kWh | Total Energy usage between 00:00 and 24:00 yesterday +TODAY_ENERGY | Today | kWh | Total Energy usage today from 00:00 until now +PERIOD_ENERGY | Period | Wh | Energy usage between previous message and now +CURRENT_POWER | Power | W | Current power load +VOLTAGE | Voltage | V | Current line voltage +CURRENT | Current | A | Current line current +POWER_FACTOR | Factor | | The ratio of the real power flowing to the load to the apparent power in the circuit diff --git a/Sonoff-RF.md b/Sonoff-RF.md new file mode 100644 index 00000000..a0ec884b --- /dev/null +++ b/Sonoff-RF.md @@ -0,0 +1,8 @@ +## Pairing a RF remote control +During programming a connection for R21 is needed in order to use a button press to ground GPIO0. + +To pair a RF remote control with the Sonoff RF it is important that there is NO connection made for R21. + +User [gadjet](https://github.com/gadjet) installed a jumper in place of R21 allowing easy programming (jumper in), pairing (jumper out) and normal use (jumper out). + +RF jumper diff --git a/Tips.md b/Tips.md new file mode 100644 index 00000000..b7611f58 --- /dev/null +++ b/Tips.md @@ -0,0 +1,22 @@ +Find below some background and other information. + +### Topic, GroupTopic and FallBack Topic +Initially I had one MQTT configurable topic planned called TOPIC but soon found out that when two sonoffs come online with the same topic this would be a challenge at least... + +I then introduced a unique, non-configurable topic which I call fallback topic that allows me to always change the MQTT configurable topic to a new unique topic. This fallback topic is just what it is meant to be: A FALLBACK TOPIC in case of emergency. + +All MQTT status messages will be sent using the configurable TOPIC which should be made unique by the user. It might be called bedroom but it could also have been called titanic10 as long as the user knows what it is and where to find it. + +Having two sonoffs with the same topic allowed for MQTT commands to be sent once to make them act in sono. That inspired me to add a third topic to subscribe to which I call GROUPTOPIC. Sonoffs with the same GROUPTOPIC will react to the same MQTT command. I use it to update firmware to all my sonoffs using separate groups for plain sonoff, pow sonoffs and th sonoffs. + +BTW changing TOPIC can be done online using the fallback topic and is only needed once. There is no need to change user_config.h all the time, as many users seem to think they have to do with any new release. All changes are stored in flash and I make a lot of effort to keep these changes available between versions. + +### For Flash afficionados +- To stop saving parameter changes to Flash or Spiffs use command ```SaveData off```. + +- To stop saving power changes only to Flash or Spiffs use command ```SaveState off```. This will disable the relay from returning to the same state after power on UNLESS you use the MQTT retain flag in which case the MQTT broker will send the last known MQTT state on restart or power on. The command ```ButtonRetain on``` will configure the button to send a MQTT command with Topic and the MQTT retain flag set. + +### Debugging +- For debugging purposes you can use the serial interface with command ```SerialLog 4``` and the Arduino IDE set to 115200 baud (19200 for Sonoff Dual) and both NL & CR or the web console with command ```WebLog 4```. + +- To aid in finding the IP address of sonoff the network name will be ```-```. So the default name is ```sonoff-1234```. Another option is MQTT command ```Status 5```. diff --git a/_Sidebar.md b/_Sidebar.md new file mode 100644 index 00000000..f60a1e6b --- /dev/null +++ b/_Sidebar.md @@ -0,0 +1,22 @@ +[**Home**](https://github.com/arendst/Sonoff-MQTT-OTA-Arduino/wiki) + +**Getting Started** +- [**Prerequisite**](https://github.com/arendst/Sonoff-MQTT-OTA-Arduino/wiki/Prerequisite) +- [**Compile and Upload**](https://github.com/arendst/Sonoff-MQTT-OTA-Arduino/wiki/Compile-and-Upload) + +**Usage** +- [**Button**](https://github.com/arendst/Sonoff-MQTT-OTA-Arduino/wiki/Button-usage) +- [**MQTT Features**](https://github.com/arendst/Sonoff-MQTT-OTA-Arduino/wiki/MQTT-Features) +- [**Commands**](https://github.com/arendst/Sonoff-MQTT-OTA-Arduino/wiki/Commands) + +**Tips** +- [**MQTT for Newbies**](https://github.com/arendst/Sonoff-MQTT-OTA-Arduino/wiki/MQTT-for-Newbies) +- [**General**](https://github.com/arendst/Sonoff-MQTT-OTA-Arduino/wiki/Tips) +- [**Sonoff Dual**](https://github.com/arendst/Sonoff-MQTT-OTA-Arduino/wiki/Sonoff-Dual) +- [**Sonoff Pow**](https://github.com/arendst/Sonoff-MQTT-OTA-Arduino/wiki/Sonoff-Pow) +- [**Sonoff RF**](https://github.com/arendst/Sonoff-MQTT-OTA-Arduino/wiki/Sonoff-RF) +- [**Domoticz**](https://github.com/arendst/Sonoff-MQTT-OTA-Arduino/wiki/Domoticz) + +**User Experience** +- [**Remote Button**](https://github.com/arendst/Sonoff-MQTT-OTA-Arduino/wiki/Control-a-Sonoff-using-a-remote-button) +- [**Modified Kaku**](https://github.com/arendst/Sonoff-MQTT-OTA-Arduino/wiki/Modify-KaKu-to-WKaKu-Power-Socket)