#pragma once #include "logic/display_controller.h" #include "logic/settings.h" // Home Assistant integration over MQTT (with discovery): // FlipDot Display Power switch: off = draw the off image and switch the display off // FlipDot Display Mode select: the page shown during the day (a dynamic page, e.g. // the built-in "Clock", or a bitmap) // FlipDot Display Off image select: left on the dots when the display switches off // ("Blank" or a bitmap) // FlipDot Display IP sensor: the IP address // FlipDot Display Firmware sensor: version and health, e.g. "2.1.0, ok, 0 crashes, ..." // FlipDot Display Recovery button: restart into the recovery app (for 10 minutes) // FlipDot Display Stopwatch switch: the stopwatch of the dynamic pages runs // FlipDot Display Stopwatch reset button: back to 0 // FlipDot Display Shown page sensor: the page or bitmap on the display now // FlipDot Display Back to schedule button: ends a manual pick (the Mode dropdown) // // The broker comes from the settings (web UI); an empty host means BROKER_ADDR, MQTT_USER // and MQTT_PASSWORD from secrets.h. Changes need a restart. void homeAssistantBegin(DisplayController &controller, const HomeAssistantSettings &settings); void homeAssistantLoop(); bool homeAssistantConnected(); // Publish the firmware status (only sent when it changes, and again after a reconnect) void homeAssistantSetFirmwareStatus(const char *status);