Kogan Smart Kettle

Just Tasmota it


AND it works

  - platform: mqtt
    name: "Kettle Power"
    state_topic: "stat/Kettle/POWER"
    command_topic: "cmnd/Kettle/POWER"
    payload_on: "ON"
    payload_off: "OFF"
    optimistic: false
    qos: 0

now with MY DUM TV remote Pressing the record button

can toggle the the kettle

- id: IR remote Toggle Kettle
  alias: IR remote Toggle Kettle
  - entity_id: sensor.last_ir
    platform: state
    to: '190A332'
  condition: []
  - data:
      entity_id: switch.kettle_power
    service: switch.toggle

my only Question is …

how do i send the “TuyaSend4 102,0” in mqtt

Im a shift worker 4 days on 4 days off

so I wrote this

and with this automation

- id: 'Wake me up roster only morning'
  alias: Wake me up roster morning
  - at: '4:00:00'
    platform: time
    condition: and
    - condition: state
      entity_id: sensor.stephan_4x4x12
      state: 'on'
    - condition: template
      value_template: >-
        {{states.sensor.stephan_4x4x12.attributes["this_day"] == 'Day'}}
  - data:
      entity_id: switch.kettle_power
    service: switch.turn_on
  - data:
      entity_id: light.his_side
    service: light.turn_on
  - delay: '00:10:00'
  - data:
      entity_id: light.his_side
    service: light.turn_off    


Hope this helps someone

1 Like

I submitted this template :blush:
I have also mapped my TV remote to toggle it using an IR receiver I soldered onto a Sonoff 26 and put next to the TVs IR receiver. I use unused coloured buttons. The blue button for kettle, yellow for my lamp haha

To send TuyaSend4 102,0 via MQTT look into making a script and mapping to an entity button or automation.

For boiling the kettle before work, I have connected the kettle in HA to Google Home as a switch, then using assistant routines in the Google clock app, my work alarms will trigger the kettle. Makes it easy for me because I can change my alarm times depending on my variable shifts.

thanks @zacnut :beers: for working it out

This is some of my Lounge Setup

What would the payload be to send “TuyaSend4 102,0” and what topic do we seed it to.





of course didn’t think

Thanks Bro for pointing me down the right track

1 Like

I had no clue at first , trial and error got me to figure it out haha
Any time :smile:

That got me thinking

Why add a inputselect

    name: Set Kettle
      - 'Keepwarm off :102,0'
      - 'Keepwarm 40c :102,1'
      - 'Keepwarm 50c :102,2'
      - 'Keepwarm 60c :102,3'
      - 'Keepwarm 80c :102,4'
      - 'Keepwarm 90c :102,5'

now the automation

- id: set the kettle
  initial_state: true
  alias: Set the Kettle
  - entity_id: input_select.kettle_set
    platform: state
      service: mqtt.publish
        topic: 'Kogan/cmnd/TuyaSend4'
        payload: > 
          {% set dta = trigger.to_state.state %}

would love that Jinja on 1 line still getting head around it LOL


Does it work as desired? I don’t understand sorry :sweat_smile:

yes it does just trying to make it look nice ill work it out some day

how did you flash it? I noticed Tasmota says if the device uses the kuya app you may be able to flash it OTA… is that how you did it?


Plug it into powe run tuya-convert and it was done

1 Like

Hey guys,

I had issues with the temperature mqtt sensor provided on the blackadder template for the Kogan kettle. Not sure if it’s due to updates to hass or maybe with tasmota? To get this working I used the following code, I thought I’d share in case anyone else runs into this.

  - platform: mqtt
    name: "Kogan Temperature"
    state_topic: kogan/tele/RESULT
    value_template: >
      {% if value_json.TuyaReceived['5'].DpIdData %}
         {{ value_json.TuyaReceived['5'].DpIdData | int(base=16) }}
      {% else %}
        {{ states('sensor.kogan_temperature') }}
      {% endif %}
    unit_of_measurement: '°C'

here is mine

  - platform: mqtt
    name: "Kettle Temperature"
    state_topic: tele/Kettle/RESULT
    value_template: >
      {% if 5 == value_json.TuyaReceived.DpId %}
         {{ value_json.TuyaReceived.DpIdData | int(base=16) }}
      {% else %}
        {{ states('sensor.kettle_temperature') }}
      {% endif %}
    unit_of_measurement: '°C'

Im running tasmota

thanks @myle, that was the original code I had tried to use but it wouldn’t return any data for me it just showed “unknown”.

I’m running tasmota 8.3.1 on the kettle and Home Assistant 0.111.4 on HassOS 4.10.

@ruggj90 did you update

just to help out other user as they get the template from there not here.

mmmmm mite have look into what has change remember


Very new here but used the above code and had to change my state_topic to “tele/tasmota/RESULT” and now it shows the temperature :slight_smile: My first project so far is a minor success.

Hey, check out my post, I use 8.3.1 and i had the same issue. I was able to resolve it.


If you want to hide the payload in your dropdown options, you can have the mapping in Jinja2 like this:

{% set mapping = { "OFF": "102,0", "40": "102,1", ... } %}
{% set dta = trigger.to_state.state %}
{{ mapping[dta] }}
1 Like

Thanks bro like your thinking

dude you have no idea how long I have been trying to work on this stuff, your post made it so easy and wow helped me so much. I cannot express enough how helpful that all was!!!
I am only new to this stuff and this kettle was my first attempt at home automation and all the reading and videos didn’t really get me anywhere but this guide is a huge huge help!