zorruno wikki: Kogan Smart Glass Kettle 1.7L Tasmota

Kogan Smart Glass Kettle 1.7L Tasmota

Why flash with Tasmota?


2021-10-21 V1 - Started Documenting
2021-10-24 V2 - The Tuya values to keep warm do not match other documentation on the internet. I've tested each and fixed it below. Also, I've having issues with the temp showing unknown in HA (it changes from the temp to 'unknown' every couple of seconds). This is obviously just a HA thing that I'll have to fix as TuyaReceived values come and goes from MQTT.
2021-10-24 V3 - Fixed the temp value showing unknown, my sensor value name wasn't exactly the same as the unique sensor ID in the Jinja2 template.

Product Info

Paid NZ$50 plus $19 Delivery (Originally sold for $160 but no one bought it). Be wary that they have a few smart kettles in their range, and not all of them with an ESP8266 inside.

Smart Features
- Remote on/off
- Read Temperature Remotely
- Keep warm (a few different temp options)

Product Notes

-- Delivery was a bit slow from Australia, about 6 weeks (took 4 weeks from order to actual shipping for some reason)
-- This isn't a high end kettle, it is a very plasic-y, light weight kettle. The top button sticker wasn't stuck on very straight (you can't really see this with the overall cover on though) and they didn't bother to stick down the buzzer to anything inside. Does the job though and a glass kettle is always more geeky. Having the ability to turn it on remotely is actually quite useful for me.
-- One thing that annoys me with the flashed Kettle is the controller goes offline when you remove the kettle from the base... I hate my controllers going offline. A small gripe though, and it would only be solved if the electronics were in the base.

Flashing Notes

-- Contains a TYWE3S (Tuya esp8266 module)
-- Tuyaconvert methods unlikely to work (Oct 2021) but I didn't try
-- Tuya modules like this have a partner MCU and the esp8266 uses the hardware serial to talk to it. You need to break the serial lines (or hold the MCU in a reset state)
-- everything is contained on a couple of boards (piggybacked) in the top of the handle, and it is relatively easily removed to work on. The MCU is on the top board with the touch switches, LEDs etc and TYWE3S on the bottom board. There is also a mains board with relay etc in the hangle, but you don't need to touch that.
-- I separated the two boards (which means desoldering 4 pins) so the serial to the MCU was broken then tacked wires on the TYWE3S to flash it. This I found was probably the easiest way, as the MCU wasn't easily accessible.


More Photos https://photos.app.goo.gl/XEkh5TK8HbocgaHz7
Desoldered thru pins
Working Kettle
Electronics Under Handle

Order of actions

1) Pry off the plastic handle cover (just needs a spudger, easy to remove)
2) Unplug the two plugs to the control board set
3) pry out the side clips and pull the board holder out (away from the jug) - it slides out once the clips are out of their holes
4) prise the two boards out of the plastic holder
5) desolder the 4 pins holding the two boards together (might take a bit of work with a solder sucker and/or desolder wick) Link: https://community.home-assistant.io/t/kogan-1-7l-smart-kettle/209527/19
6) solder some wires to the TYWE3S board (Tx,Rx,3.3V,GND,GPIO0) using this guide https://tasmota.github.io/docs/devices/TYWE3S/
7) Flash tasmota with an FTDI, Tasmotizer or similar method.
8) re-solder the pins between the two boards and reassemble.
9) note that the buzzer on mine had double sided tape on it, but they didn't bother sticking it to anything. Now is a good time to stick it to the back of the board somewhere (see pic)

Tasmota Config Information

This is the config I used:
{"NAME":"Kogan Kettle","GPIO":[255,107,255,108,255,255,0,0,255,255,255,255,255],"FLAG":0,"BASE":54}

The template here seems to be wrong as at Oct 2021, all the 1s should be 255s I suspect (255 is user, 1 is DHT11)

Home Assistant

Some of the templates found on the internet for HA were a bit confusing (especially having not used Jinja2 templating before, but this is what I eventually managed to get working for reading temp, switching on and off and keeping the kettle in its various warm modes.

Read Temperature

Be sure you have given the command setoption66 1 to publish all Tuyareceived data to topic. (configuration.yaml)
Also, in the value template , ensure the sensor name matches your sensor name/unique ID. If you don't it will try and read values from TuyaReceived and they won't match (and therefore show 'Unknown' every few seconds, rather than just reshow the current sensor value)
  - platform: mqtt
	unique_id: kettle.temp
	name: "Kettle Temperature"
	state_topic: "tele/kettle/RESULT"
	availability_topic: "tele/kettle/LWT"
	payload_available: "Online"
	payload_not_available: "Offline"
	value_template: >
	  {% if value_json.TuyaReceived['5'].DpIdData %}
		{{ value_json.TuyaReceived['5'].DpIdData | int(base=16) }}
	  {% else %}
		{{ states('sensor.kettle_temp') }}
	  {% endif %}
	unit_of_measurement: "°C"

Switch On and Off

Simple switch to turn it off and on (yes, the state is reflected back via MQTT)
Switch (configuration.yaml)
  - platform: mqtt
	name: kettle
	unique_id: kettle.power
	state_topic: "stat/kettle/POWER"
	command_topic: "cmnd/kettle/POWER"
	availability_topic: "tele/kettle/LWT"
	payload_on: "ON"
	payload_off: "OFF"
	payload_available: "Online"
	payload_not_available: "Offline"
	retain: false

Keep Kettle Warm

Input select and automation to set the TuyaSend4 values to keep the kettle warm. The payload command is mapped for each of the dropdown selects.
Input Select (configuration.yaml)
	name: Keep Kettle Warm
	  - "OFF"
	  - "40°C"
	  - "50°C"
	  - "60°C"
	  - "80°C"
	  - "90°C" 

Automation (automations.yaml)
Note the TuyaSend4 values listed elsewhere on the internet for the keep warm temps were one value out for each temperature (also not there is not a value for 70 degrees)
- id: set the kettle
  initial_state: true
  alias: Set the Kettle
	- entity_id: input_select.kettle_set
	  platform: state
	service: mqtt.publish
	  topic: "cmnd/tasmo-kkettle-3773-portable/TuyaSend4"
	  payload: >
		{% set mapping = { "OFF":"102,5", "40°C":"102,0", "50°C":"102,1", "60°C":"102,2", "80°C":"102,3", "90°C":"102,4" } %}
		{% set dta = trigger.to_state.state %}
		{{ mapping[dta] }}

Weirdly, I was a bit stumped when I copied some configuration from a HA post, and eventually thought there must have been a problem with the degree symbol. Looks like it was the capital C for celsius and was a different character set or symbol? This prevented the jina2 matching of the dropdown input selects with the automation to publish to MQTT. Coped below for reference in case I want to investigate more...


Last edited by ZorrUno
Sun, 24 Oct 2021 02:56 UTC [diff]