Upgrading a Verve Design oyster light with Tasmota and connecting it to Apple HomeKit

Aren’t there already Tuya plugins for Homebridge?

Assumed knowledge

  • You have Homebridge setup and running.
  • I will be using Docker for my software deployments. You might face different issues if you choose not too.

Advantages of this solution

  • Tasmota is easy to use once you have it setup. If you replace the Tuya firmware with Tasmota, you will no longer have access to the light through the TuyaSmart app or the GRID Connect app, but it will work through Homebridge.
  • Security.


  • You’ll probably void warranty.
  • You might break something that’s unrepairable.


  • No Adaptive Lighting support (yet). Yeah, spoiler alert, I did all this work and didn’t achieve my primary goal.
  • HomeKit CT (colour temperature) values are non-linear from 153 to 500. The actual middle between cool white and warm white lies much closer to 153 in HomeKit leading to a mismatch between Home.app and what’s actually shown on the light.


  1. Flash the light’s microcontroller with Tasmota, replacing Tuya’s firmware.
  2. Configure Tasmota to correctly work with the Hana light.
  3. Setup an MQTT Broker on your local network.
  4. Setup homebridge-mqttthing, an MQTT plugin in Homebridge.

1. Flashing Tasmota onto the TYWE2L


Over-the-air firmware upgrade: fail.

Flashing the TYWE2L

RPi   /   TYWE2L
--- 3V3
  1. Connect GPIO0 to GND.
  2. Power up the TYWE2L by connecting 3V3.
  3. Wait a second or two.
  4. Disconnect GPIO0 from GND and leave it floating.
⚠️ Be extremely careful when soldering onto the TX, RX and IO0 pads on the back of the PCB. Handle the chip with care. These copper pads can be easily ripped off if you tug enough on the wire leaving you no other place to connect up to TX, RX or IO0.

2. Configure Tasmota for the Hana light

3. Set up an MQTT Broker

What is MQTT?

4. Setting up homebridge-mqttthing

"type": "lightbulb-ColTemp",
"name": "Bathroom Ceiling",
"username": "******",
"password": "******",
"mqttOptions": {
"keepalive": 30
"mqttPubOptions": {
"retain": true
"logMqtt": true,
"topics": {
"getOnline": "tele/tasmota_11B064/LWT",
"setOn": "cmnd/tasmota_11B064/POWER",
"getOn": {
"topic": "stat/tasmota_11B064/RESULT",
"apply": "return JSON.parse(message).POWER;"
"setBrightness": "cmnd/tasmota_11B064/Dimmer",
"getBrightness": {
"topic": "stat/tasmota_11B064/RESULT",
"apply": "return JSON.parse(message).Dimmer;"
"setColorTemperature": "cmnd/tasmota_11B064/CT",
"getColorTemperature": {
"topic": "stat/tasmota_11B064/RESULT",
"apply": "return JSON.parse(message).CT;"
"onlineValue": "Online",
"offlineValue": "Offline",
"onValue": "ON",
"offValue": "OFF",
"minColorTemperature": 153,
"maxColorTemperature": 500,
"accessory": "mqttthing"





Founder, Nuvoe.

Love podcasts or audiobooks? Learn on the go with our new app.

Recommended from Medium

Launching Our Third-Generation Self-Driving Test Vehicle in the Motor City

The Smartest Contact Manager

Don’t Buy the M1 Mac.

Winnovo VTab 10.1-inch Android Tablet REVIEW

What technologists can learn from the tragic Greek myth of Cassandra

Science Fiction or reality? What is the metaverse?

Anycubic Photon Zero 3D Printer Review

Atom Studios USB-C To Lightning Cable 2022 REVIEW — MacSources

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Michel Fathallah

Michel Fathallah

Founder, Nuvoe.

More from Medium

Testing vue + web3 and smart contract on localhost: Part1

How to Assign Static IP Address in Raspberry PI

How to Manage Passwords Safely Using Zoho Vault to Zoho CRM Integration?

FastTrack Clone