homieiot/convention

Implementations

The Homie convention differentiates between Devices and Controllers.
Device
An instance of a physical piece of hardware is called a device. For example, a car, an Arduino/ESP8266 or a coffee machine. It publishes Nodes and Properties to the MQTT broker.
Controller
A controller does not announce anything to the MQTT broker, but discovers and interacts with Devices. There can be more than one Controller interacting with the different devices on the same broker.

Device

Find software libraries and full firmware projects for Devices in this section.

Libraries

A library can be included in your own project to act as a Homie device.

Name Language Homie Version Website/Download Description
homie-cpp C++ 3.0 GitHub Homie C++ header only library
homie-python Python 2.1 GitHub Homie 3.0 as PR
Microhomie µPython 4.0.0 GitHub MicroPython implementation
homie-ESP32 C++ 2.0.1 GitHub An esp-idf component for the Homie convention.
kotlin-homieiot kotlin 3.0.1 GitHub Kotlin implementation for the Homie convention
node-red-homie Node-Red 2.1 GitHub unmaintained
HomieV3 Python 3.0.1 GitHub Easily build Homie 3.0 devices
HomieV4 Python 4.0.0 GitHub Easily build Homie 4.0 devices
homie_dart Dart 4.0.0 Pub.dev Implementation for dart (and flutter)
LeifHomieLib C++ 3.0.1 GitHub For ESP8266/ESP32 with Arduino
node-red-contrib-homie-convention Node-RED 4.0.0 GitHubnpmNode-RED Homie node with auto discovery for node red forum discussion
homie-for-esp32 C++ 3.0.1 GitHub For ESP32 with Arduino. Limitations: Broadcast is not supported.
homie-device Rust 4.0.0 crates.io Rust library for building Homie 4.0 devices
homie-mqtt Ruby 4.0.0 GitHub Ruby library for building Homie 4.0 devices

Firmware

A full featured firmware, ready to be flashed on a supported device type.

Name Language Homie Version Website/Download Description
homie-esp8266 C++ 2.0.1 GitHub
homie-esp8266 C++ 3.0.1 GitHub
ESPEasy C++ 4.0.0 GitHub Easy to use Firmware for ESP8266/ESP32. Choose dev builds like ESP_Easy_mega-yyyymmdd_dev_ESP8266_4M1M.bin or build your own

Software projects

A software application that speaks MQTT/Homie and acts as a Homie Device.

Name Language Homie Version Website/Download Description
miflora-mqtt-daemon Python 3.0 GitHub A Linux daemon to fetch and publish data from Mi Flora plant sensors
MBMD Go 4.0 GitHub A Linux daemon to fetch and publish data from ModBus devices like power meters and grid inverters
Somecomfort-Home Python 4.0 GitHub Homie implementation for Honeywell Total Comfort Thermostats using somecomefort
ISY-Home-Bridge Python 4.0 GitHub Homie implementation for Universal Devices ISY994 controller
mijia-homie Rust 4.0 GitHub A Linux daemon to fetch and publish data from Xiaomi Mijia v2 Bluetooth temperature and humidity sensors.

Controller

Find software libraries, administrative tools and home automation projects for Controllers in this section.

Libraries

A library can be included in your own project to act as a Controller for Homie devices.

Name Language Homie Version Website/Download
Homie-Device Node JS 3.0 npmjs
homie-cpp C++ 3.0 GitHub
homie-controller Rust 4.0.0 crates.io

Administration and utilities

Administrative tools usually allow you to detect, list and interact with Homie devices.

Name Homie Download Implementation notes
Hodmin 2.0 Website
Homie-ota 3.0 + Custom OTA GitHub OTA Server for devices running the homie-esp8266 firmware
HoDD 3.0.1 / 4.0.0 GitHub Browser based device discovery
FlutterHomie 3.0.1 GitHub A Flutter App used to discover and manage Homie devices.
homie-influx 4.0.0 GitHub A service to record property value changes to an InfluxDB database, with Homie metadata.

Home automation

Home automation software in this list allows you to detect and interact with Homie devices and integrate them into your automation plan.

Name Version Homie Download Implementation notes
openHAB 2.4+ 3.0 Website No node instances
HomeAssistant WIP 2.0 Website Module need to be installed into HA installation
Node-RED 0.20+ 4.0.0 Node-REDnode-red-contrib-homie-convention install node-red-contrib-homie-convention node with auto discovery forum discussion

Works with Homie

We recommendent all projects which are implementing Homie to refer to this convention using our label. Please refer on websites directly to these labels to use always current version.

SVG version

works with MQTT Homie

HTML snippet:

<a href="https://homieiot.github.io/">
  <object type="image/svg+xml" data="https://homieiot.github.io/img/works-with-homie.svg">
    works with MQTT Homie
  </object>
</a>

PNG version

works with MQTT Homie

HTML snippet:

<a href="https://homieiot.github.io/">
  <img src="https://homieiot.github.io/img/works-with-homie.png" alt="works with MQTT Homie">
</a>