Table of Contents |
---|
Overview
We will detail the steps required to flash the open source Tasmota firmware on a Treatlife 3 way switch and configure it to work with Homebridge.
Hardware
GPIO | Details |
---|---|
4 | White LED |
5 | Red LED |
12 | Relay |
13 | Button |
14 | Sensor |
Install Tuya Convert on a Raspberry Pi
See https://github.com/ct-Open-Source/tuya-convert
Flash Device
Detailed instructions can be found: https://github.com/ct-Open-Source/tuya-convert
...
You will need to hold down the button to get this switch to flash.
> ./start_flash.sh
...
...
pi@raspberrypi:~/tuya-convert $ ./start_flash.sh
Checking for network interface wlan0... Found.
Checking UDP port 53... Available.
Checking UDP port 67... Available.
Checking TCP port 80... Available.
Checking TCP port 443... Available.
Checking UDP port 6666... Available.
Checking UDP port 6667... Available.
Checking TCP port 1883... Available.
Checking TCP port 8886... Available.
======================================================
Starting AP in a screen
Starting web server in a screen
Starting Mosquitto in a screen
Starting PSK frontend in a screen
Starting Tuya Discovery in a screen
======================================================
IMPORTANT
1. Connect any other device (a smartphone or something) to the WIFI vtrust-flash
This step is IMPORTANT otherwise the smartconfig may not work!
2. Put your IoT device in autoconfig/smartconfig/pairing mode (LED will blink fast). This is usually done by pressing and holding the primary button of the device
Make sure nothing else is plugged into your IoT device while attempting to flash.
3. Press ENTER to continue
======================================================
Starting smart config pairing procedure
Waiting for the device to install the intermediate firmware
Put device in EZ config mode (blinking fast)
Sending SSID vtrust-flash
Sending wifiPassword
Sending token 00000000
Sending secret 0101
................
SmartConfig complete.
Resending SmartConfig Packets
.......................
IoT-device is online with ip 10.42.42.42
Fetching firmware backup
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 1024k 100 1024k 0 0 29735 0 0:00:35 0:00:35 --:--:-- 28574
curl: Saved to filename 'firmware-703769.bin'
======================================================
Getting Info from IoT-device
VTRUST-FLASH 1.5
(c) VTRUST GMBH https://www.vtrust.de/35c3/
READ FLASH: http://10.42.42.42/backup
ChipID: 703769
MAC: 80:7D:3A:70:37:69
BootVersion: 4
BootMode: normal
FlashMode: 1M QIO @ 40MHz
FlashChipId: 1440c8
FlashChipRealSize: 1024K
Active Userspace: user2 0x81000
======================================================
Ready to flash third party firmware!
For your convenience, the following firmware images are already included in this repository:
Tasmota v7.0.0.3 (wifiman)
ESPurna 1.13.5 (base)
You can also provide your own image by placing it in the /files directory
Please ensure the firmware fits the device and includes the bootloader
MAXIMUM SIZE IS 512KB
Available options:
0) return to stock
1) flash espurna.bin
2) flash tasmota.bin
q) quit; do nothing
Please select 0-2: 2
Are you sure you want to flash tasmota.bin? This is the point of no return [y/N] y
Attempting to flash tasmota.bin, this may take a few seconds...
Flashed http://10.42.42.1/files/tasmota.bin successfully in 7835ms, rebooting...
Look for a tasmota-xxxx SSID to which you can connect and configure
Be sure to configure your device for proper function!
HAVE FUN!
======================================================
Do you want to flash another device? [y/N]
Configuring Switch
Configuring WIFI
Connect to the flashed device by looking for it's SSID - tasmota-####
...
The dimmer will reboot and connect to your wifi network. Check your router to find out it's IP address and connect to it via your browser.
Set the GPIOs
Issue the following from the console:
3 Way Setup
From the Configuration → Configure Other screen, input the template and friendly name:
Template:
{"NAME":"Treatlife 3-Way","GPIO":[0,0,0,0,21,158,0,0,22,18,9,0,0],"FLAG":0,"BASE":18}
You should end up with a configuration that looks like:
2 Way Setup
> > backlog module 18;gpio4 2152;gpio5 570;gpio12 3029;gpio13 1817;gpio14 9;switchtopic 0;switchmode1 0;buttontopic 0;rule1 on event#ON do power2 TOGGLE endon;rule1 1;rule2 on event#OFF do power2 TOGGLE endon;rule2 1
Should result in the following:
0;switchmode 1
Homebridge Config
For integration with Homebridge, we are going to use the mqttthing plugin and run all of the commands through an mqtt server.
Tasmota Setup:
Homebridge Config File
3-Way Setup:
Code Block |
---|
{ "accessory": "mqttthing", "type": "lightbulb", "name": "dimmer2garage-light", "url": "http://192.168.X1.X50:1883", "username": "homebridge", "password": "pass", "topics": { "getOn": "stat/dimmer2garage-light/POWERPOWER1", "setOn": "cmnd/dimmer2/POWER", "getBrightness": { "topic": "statcmnd/dimmer2garage-light/RESULTPOWER2", "apply": "return JSON.parse(message).Dimmer'toggle';" }, "setBrightness": "cmnd/dimmer2/Dimmer" }, "onValue": "ON", "offValue": "OFF", "startPub": { "cmnd/dimmer2garage-light/POWERPOWER1": "", "cmnd/dimmer2/Dimmer": ""}, }, "confirmationPeriodms": 1000 }, |
Out of Sync
Sometimes the switch may be out of sync with what it reports to homebridge. When you click Toggle 2, the Toggle1 should reflect the current state of the light. If this is not the case, click the Toggle 1 button.