WTH Tuya /SmartLife giving false info every reboot

Every time I reboot Tuya and SmartLife just reports a bad wattage … i have to restart every plug … can it not zero on reboot?

Most of the Tuya products are incredibly badly written firmware - mostly because Tuya provides a generally buggy firmware base, and most manufacturers are on the “release once and forget” ideology. It just has to work “well enough” to be released and that’s it.

My WiFi connected, Tuya based hydroponics system (Model name Z206, no specific manufacturer info, it appears as an ODM product with many brands slapping their logo on top) is very similar. It will report on/off states incorrectly. For example I can set it up to turn the lights on automatically at 4:30am and turn them off at 11:30pm, and it will turn off 20:30pm or somewhere around (anywhere inbetween 20:14 and 20:39), BUT it will report the light as being on until the timer runs off. Same goes for local API. It’s reporting is just broken, and this goes for the water circulation pump and fan as well.

I’d love to flash it with e.g. ESPHome, but alas, it’s some obscure Chinese WiFi chipset being used, with not even an SDK out there for it, let alone support in any of the big MCU-to-SmartHome projects.

Basically, if you buy Tuya products, either

  1. Don’t be afraid of REing the whole thing and slapping an ESP32 (or similar) module in place of the original controller
  2. Buy only ESP32 based Tuya products and reflash them with ESPHome

Otherwise you’re stuck in an ecosystem where you can expect no updates or support beyond the point of sale. Tuya as a platform is the IoT equivalent of late 00’d/early 2010’s crappy WYSIWYG website builders. And then we haven’t even touched on how Tuya seems to put all energy into making sure their end products are hard to RE and properly utilise by more adept users.

IMO publishing device details (or even forcing manufacturers to open source their code), and allowing custom firmwares like ESPHome would’ve been the saving grace of Tuya, but they instead chose the crappy “local API” approach (which comes with the same core firmware issues as their online API), and locking their hardware down even further.