Hey everyone,
Just wanted to share my working setup for the Korex AX-WF306N (also sold under Kogan) smart kettle using LocalTuya. It’s working perfectly—and this kettle has become one of my favorite devices.
I did everything through the GUI, so you don’t need to touch YAML to make it work. But in case it helps someone or you want to mirror my config, I’ve included an equivalent configuration.yaml
and my full Lovelace card at the end. You can see the DPS mapping below.
This kettle has been rock solid since integrating it via localtuya
, and it’s 100% local with no weird workarounds. Hope this helps someone get theirs working too.
Integration: LocalTuya (HACS)
I added the kettle using the GUI:
What works
Everything you’d want:
- Power on/off
- Keep Warm mode toggle
- Real-time temperature updates
- Preset target boil temperature via
select
- There’s a function I’m not using to boil and then drop to a temp (like for baby formula)
Example configuration.yaml (if you’re not using the GUI)
yaml
CopyEdit
localtuya:
devices:
- host: 192.168.1.xxx # your kettle IP
device_id: !secret kettle_device_id
local_key: !secret kettle_local_key
friendly_name: Korex Smart Kettle
protocol_version: "3.3"
entities:
- platform: switch
friendly_name: Pot Power
id: 1
- platform: sensor
friendly_name: Pot Temperature
id: 5
unit_of_measurement: "°F"
device_class: temperature
- platform: switch
friendly_name: Pot Keep Warm
id: 103
- platform: select
friendly_name: Pot Boil To
id: 106
- platform: select
friendly_name: Pot Boil and Cool To
id: 107
Note: If you use the GUI like I did, you don’t need this. But this shows what’s going on behind the scenes.
My Lovelace Card
Here’s what I use to control it from the dashboard—includes temperature display, power control, and quick-access buttons for custom scripts:
yaml
title: Water Kettle
type: vertical-stack
cards:
- type: horizontal-stack
cards:
- type: custom:button-card
name: Make Coffee
icon: mdi:coffee
tap_action:
action: call-service
service: script.make_coffee
show_name: true
show_icon: true
styles:
icon:
- color: "#6f4e37"
- width: 110px
- height: 110px
- type: custom:button-card
name: Make Chai
icon: mdi:tea
tap_action:
action: call-service
service: script.make_chai
show_name: true
show_icon: true
styles:
icon:
- color: "#D2B48C"
- width: 110px
- height: 110px
- type: custom:button-card
entity: switch.pot_power
name: "[[[ return states[\"sensor.pot_temperature\"].state + \" °F\"; ]]]"
show_state: true
show_icon: true
styles:
icon:
- width: 130px
- height: 130px
card:
- height: 150px
- type: entities
state_color: true
entities:
- select.pot_boil_to
- switch.pot_keep_warm
These are the scripts I run from my Lovelace dashboard to make either coffee or chai. Each one turns on the kettle, sets the target temperature via select.pot_boil_to
, and enables Keep Warm mode:
yaml
make_coffee:
alias: Make Coffee
sequence:
- service: switch.turn_on
entity_id: switch.pot_power
- service: select.select_option
data:
entity_id: select.pot_boil_to
option: 203 coffee
- service: switch.turn_on
entity_id: switch.pot_keep_warm
make_chai:
alias: Make Chai
sequence:
- service: switch.turn_on
entity_id: switch.pot_power
- service: select.select_option
data:
entity_id: select.pot_boil_to
option: '158'
- service: switch.turn_on
entity_id: switch.pot_keep_warm