/python-mihome

Library to use the Xiaomi Mi Home zigbee hub (receive paquets, events for now).

Primary LanguagePython

Library to use the Xiaomi Mi Home zigbee hub (receive paquets, events for now).

Example of usage as a simple mqtt relay:

pio install paho-mqqt
pio install future
import paho.mqtt.client as mqtt
from mihome import XiaomiConnector

MQTT_SERVER = "192.168.100.16"
MQTT_PORT = 1883

PATH_FMT = "xiaomi/{model}/{sid}/{prop}"  # short_id or sid ?


def prepare_mqtt():
    client = mqtt.Client()
    client.connect(MQTT_SERVER, MQTT_PORT, 60)

    return client


def push_data(client, model, sid, cmd, data):
    for key, value in data.items():
        path = PATH_FMT.format(model=model, sid=sid, cmd=cmd, prop=key)
        client.publish(path, payload=value, qos=0)


client = prepare_mqtt()
cb = lambda m, s, c, d: push_data(client, m, s, c, d)
connector = XiaomiConnector(data_callback=cb)

while True:
    connector.check_incoming()

For more information on the protocol and devices, see my notes: https://notes.jmsinfor.com/blog/post/admin/Xiaomi-Hub