diff --git a/examples/binary-sensor/binary-sensor.ino b/examples/binary-sensor/binary-sensor.ino new file mode 100644 index 0000000..89f878e --- /dev/null +++ b/examples/binary-sensor/binary-sensor.ino @@ -0,0 +1,40 @@ +#include +#include + +#define INPUT_PIN 9 + +byte mac[] = {0x00, 0x10, 0xFA, 0x6E, 0x38, 0x4A}; +unsigned long lastReadAt = millis(); +bool lastInputState = false; + +EthernetClient client; +HADevice device(mac, sizeof(mac)); +HAMqtt mqtt(client, device); +HABinarySensor sensor("input", "door", false, mqtt); + +void setup() { + pinMode(INPUT_PIN, INPUT_PULLUP); + lastInputState = digitalRead(INPUT_PIN); + + // you don't need to verify return status + Ethernet.begin(mac); + + // set device's details (optional) + device.setName("Arduino"); + device.setSoftwareVersion("1.0.0"); + + // please change IP address to yours + mqtt.begin(IPAddress(192,168,0,17)); +} + +void loop() { + Ethernet.maintain(); + mqtt.loop(); + + if ((millis() - lastReadAt) > 30) { // read in 30ms interval + // library produces MQTT message if a new state is different than the previous one + sensor.setState(digitalRead(INPUT_PIN)); + lastInputState = sensor.getState(); + lastReadAt = millis(); + } +}