An Arduino for ESP8266 implementation of Homie, an MQTT convention for the IoT.
The new documentation and Web configurator are only for the v2.
- The docs for the v1.5 is available at https://github.com/marvinroger/homie-esp8266/blob/528a4f77c6371366847ebf4def6aba942dfd0c4c/docs/index.md
- The Web configurator for v1.5 is available at http://marvinroger.github.io/homie-esp8266/
The Git repository contains the development version of Homie for ESP8266. Stable releases are available on the releases page.
- Automatic connection/reconnection to Wi-Fi/MQTT
- JSON configuration file to configure the device
- Cute HTTP API / Web UI / App to remotely send the configuration to the device and get information about it
- Custom settings
- OTA over MQTT
- Magic bytes
- Available in the PlatformIO registry
- Pretty straightforward sketches, a simple light for example:
#include <Homie.h>
const int PIN_RELAY = 5;
HomieNode lightNode("light", "switch");
bool lightOnHandler(const HomieRange& range, const String& value) {
if (value != "true" && value != "false") return false;
bool on = (value == "true");
digitalWrite(PIN_RELAY, on ? HIGH : LOW);
lightNode.setProperty("on").send(value);
Homie.getLogger() << "Light is " << (on ? "on" : "off") << endl;
return true;
}
void setup() {
Serial.begin(115200);
Serial << endl << endl;
pinMode(PIN_RELAY, OUTPUT);
digitalWrite(PIN_RELAY, LOW);
Homie_setFirmware("awesome-relay", "1.0.0");
lightNode.advertise("on").settable(lightOnHandler);
Homie.setup();
}
void loop() {
Homie.loop();
}
The project is documented on https://homie-esp8266.readme.io with a Getting started guide and every piece of information you will need.
I am a student and maintaining Homie for ESP8266 takes time. I am not in need and I will continue to maintain this project as much as I can even without donations. Consider this as a way to tip the project if you like it. 😉