Both sides previous revision Previous revision Next revision | Previous revision Next revisionBoth sides next revision |
sonoff [25.01.2018 05:39] – [Rules Engine - node-red] Pascal Suter | sonoff [08.12.2018 09:54] – [retention and QoS] Pascal Suter |
---|
===== alternative firmware ===== | ===== alternative firmware ===== |
* [[https://github.com/arendst/Sonoff-Tasmota|Tasmota]] | * [[https://github.com/arendst/Sonoff-Tasmota|Tasmota]] |
* works also on some other ESP based devices | * works also on lots of ESP based devices and can be easily adopted to support even more. for example [[MagicHome|MagicHome RGB LED Controllers]] |
* provides control via serial / web / MQTT | * provides control via serial / web / MQTT |
===== What I intend to do with it ===== | ===== What I intend to do with it ===== |
| |
Here are the steps it took to flash the stock sonoff (current and more detailed instructions can be found in the [[https://github.com/arendst/Sonoff-Tasmota/wiki/Arduino-IDE|Tasmota wiki]] | Here are the steps it took to flash the stock sonoff (current and more detailed instructions can be found in the [[https://github.com/arendst/Sonoff-Tasmota/wiki/Arduino-IDE|Tasmota wiki]] |
- download the latest [[https://www.arduino.cc/en/Main/Software|Arduino IDE]] and unpack it. | - [[setup arduino IDE for ESP8266]] |
- create a subdirectory called ''portable'' | |
- start your arduino IDE and go to ''File->preferences'' and add this to //Additional Boards Manger URLs//: ''http://arduino.esp8266.com/stable/package_esp8266com_index.json'' | |
- select OK and go to ''Tools-Boards...-Boards Manager...'' and enter ''ESP'' into the search. now install the ''esp8266'' module and close that window. | |
- download the sourcecode tar.gz or zip package from the [[https://github.com/arendst/Sonoff-Tasmota/releases|Tasmota releases page]] | - download the sourcecode tar.gz or zip package from the [[https://github.com/arendst/Sonoff-Tasmota/releases|Tasmota releases page]] |
- extract the contents of the ''lib'' directory into your arduino ide's ''portable/sketchbook/libraries'' directory and extract the entire ''sonoff'' directory into your arduin IDE's ''portable/sketchbook/'' directory | - extract the contents of the ''lib'' directory into your arduino ide's ''portable/sketchbook/libraries'' directory and extract the entire ''sonoff'' directory into your arduin IDE's ''portable/sketchbook/'' directory |
- verify your settings under Tools are like these: <code> | |
Board: "Generic ESP8266 Module" <<<<!!!! | |
Flash Mode: "DOUT" <<<<!!!! | |
Flash Size: "1M (no SPIFFS)" <<<<!!!! | |
Debug Port: "Disabled" | |
Debug Level: "None" | |
LwIP Variant: "v2 Prebuilt (MSS=536)" | |
Reset Method: "ck" | |
Crystal Frequency: "26 MHz" | |
Flash Frequency: "40MHz" | |
Upload Using: "Serial" | |
CPU Frequency: "80 MHz" | |
Upload Speed: "115200" | |
Port: Your COM port connected to sonoff | |
</code> | |
- edit ''user_config.h'' and enter your wifi name and password. all other settings can be changed later once the device is booted, but you can of course set them here if you want. this will make it much faster if you flash alot of these devices and want the same settings on all of them. | - edit ''user_config.h'' and enter your wifi name and password. all other settings can be changed later once the device is booted, but you can of course set them here if you want. this will make it much faster if you flash alot of these devices and want the same settings on all of them. |
- **make sure your sonoff is disconnected from the AC power lines*** | - **make sure your sonoff is disconnected from the AC power lines*** |
In order to turn the lights on in a room, you can publish to the topic ''set/dss/apartment/zones/Garden/groups/1/lastCalledScene'' and set the value to ''5'' or ''0''. here is an example using ''mosquitto_pub'': | In order to turn the lights on in a room, you can publish to the topic ''set/dss/apartment/zones/Garden/groups/1/lastCalledScene'' and set the value to ''5'' or ''0''. here is an example using ''mosquitto_pub'': |
mosquitto_pub -h mqtt.psuter.ch -u sonoffs -P sonoff -t set/dss/apartment/zones/Garden/groups/1/lastCalledScene -m 5 | mosquitto_pub -h mqtt.psuter.ch -u sonoffs -P sonoff -t set/dss/apartment/zones/Garden/groups/1/lastCalledScene -m 5 |
| |
| |
===== Rules Engine - node-red ===== | ===== Rules Engine - node-red ===== |
[Unit] | [Unit] |
Description=Node.js MQTT DSS Bridge | Description=Node.js MQTT DSS Bridge |
Requires=After=mosquitto.service # Requires the mosquitto service to run first | Requires=mosquitto.service # starts mosquitto first when this service is started manually |
| After=mosquitto.service # starts this after mosquitto on boot |
| |
[Service] | [Service] |
[Unit] | [Unit] |
Description=Node.js Node-RED | Description=Node.js Node-RED |
Requires=After=node-red.service # Requires the mosquitto service to run first | Requires=node-red.service # starts node-red first when this service is started manually |
| After=node-red.service # starts this after node-red on boot |
| |
[Service] | [Service] |
===== Future projects ===== | ===== Future projects ===== |
eventually I'd like to write a script that uses the [[https://github.com/plan44/vdcd|plan44 vdcd]] external device API to integrate a sonoff device into a digitalSTROM setup as an emulated digitalstorm device. this will overcome the lag that is generated by querying the Web-API. we could then also create a dummy light bulb which will just publish its state to MQTT. by assigning it a different value for all of the scenes it is in, we can pass the room-state to MQTT with almost no lag. This will enable other devices like the sonoff to react immediately and not just during the next poll-interval. | eventually I'd like to write a script that uses the [[https://github.com/plan44/vdcd|plan44 vdcd]] external device API to integrate a sonoff device into a digitalSTROM setup as an emulated digitalstorm device. this will overcome the lag that is generated by querying the Web-API. we could then also create a dummy light bulb which will just publish its state to MQTT. by assigning it a different value for all of the scenes it is in, we can pass the room-state to MQTT with almost no lag. This will enable other devices like the sonoff to react immediately and not just during the next poll-interval. |
| |
| see my progress on that at [[MQTT for digitalSTROM]] |