homebridge-mi-kettle

A homebridge plugin that exposes your Xiaomi Smart Kettle device(s) to HomeKit.

Usage no npm install needed!

<script type="module">
  import homebridgeMiKettle from 'https://cdn.skypack.dev/homebridge-mi-kettle';
</script>

README

Homebridge Mi Kettle

A homebridge plugin that exposes your Xiaomi Smart Kettle to HomeKit.

Overview

This plugin exposes the Xiaomi Smart Kettle as a switch device, with the switch power state representing the Kettle boile state. The current temperature is exposed through a linked Temperature Sensor.

Setup

Note: This plugin is dependent on the amazing [Cybele project]:https://github.com/Hypfer/Cybele by [Hypfer]:https://github.com/Hypfer.

Please follow the instructions provided by the project readme, or you can use the docker-compose setup that I am using, which can be found in the cybele-docker folder.

Configration

Configuration can be done using Homebridge Config UI X.

Configuration

Sample Configuration

"accessories": [
    {
      "accessory": "MiKettle",
      "debug": true,
      "name": "My Smart Kettle",
      "mac": "FF:FF:FF:FF:FF:FF",
      "mqtt": {
        "url": "mqtt://username:password@mqtthost:port"
      }
    }   
]

Configuration Definition

  • accessory: The identifier for the accessory (MiKettle).
  • debug [optional]: Enables limited debugging.
  • name: The name you would like to expose for the device.
  • mac: The mac address of your kettle. You can follow the
  • mqtt
    • url: The URL for the mqtt server that will be used.

Retrieving the MAC for the Kettle

This guide assumes that you are using a Raspberry Pi. These should apply to any linux based device with bluetooth capabilities.

In order to retrieve the MAC address for your Kettle, please follow these steps

  1. Place your Raspberry Pi near your kettle.
  2. Execute this command
sudo hcitool lescan
  1. You should see your kettle within the reuslt list
B8:**:5A:**:FB:** (unknown)
*E2:7C:**:45:**:12 MiKettle*
53:**:1A:**:39:** (unknown)
2A:D6:**:9A:**:23 (unknown)

If you get the error Set scan parameters failed: Input/output error try running

sudo hciconfig hci0 down
sudo hciconfig hci0 up