Skip to content

ESP8266 framework for Homie, a lightweight MQTT convention for the IoT

License

Notifications You must be signed in to change notification settings

stutzlab/homie-esp8266

 
 

Repository files navigation

Homie for ESP8266

homie-esp8266

An Arduino for ESP8266 implementation of Homie, an MQTT convention for the IoT.

Features

#include <Homie.h>

const int PIN_RELAY = 5;

HomieNode lightNode("light", "switch");

bool lightOnHandler(String value) {
  if (value == "true") {
    digitalWrite(PIN_RELAY, HIGH);
    Homie.setNodeProperty(lightNode, "on", "true"); // Update the state of the light
    Serial.println("Light is on");
  } else if (value == "false") {
    digitalWrite(PIN_RELAY, LOW);
    Homie.setNodeProperty(lightNode, "on", "false");
    Serial.println("Light is off");
  } else {
    return false;
  }

  return true;
}

void setup() {
  pinMode(PIN_RELAY, OUTPUT);
  digitalWrite(PIN_RELAY, LOW);

  Homie.setFirmware("awesome-relay", "1.0.0");
  lightNode.subscribe("on", lightOnHandler);
  Homie.registerNode(lightNode);
  Homie.setup();
}

void loop() {
  Homie.loop();
}

Requirements, installation and usage

The project is documented on the /docs folder, with a Getting started guide and every piece of informations you will need.

About

ESP8266 framework for Homie, a lightweight MQTT convention for the IoT

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 99.9%
  • C 0.1%