|
|
- /*
-
- HOME ASSISTANT MODULE
-
- Copyright (C) 2017 by Xose Pérez <xose dot perez at gmail dot com>
-
- */
-
- #if HOMEASSISTANT_SUPPORT
-
- #include <ArduinoJson.h>
-
- void haSend() {
-
- DEBUG_MSG_P(PSTR("[HA] Sending autodiscovery MQTT message\n"));
-
- String component = String("light");
-
- DynamicJsonBuffer jsonBuffer;
- JsonObject& root = jsonBuffer.createObject();
-
- root["name"] = getSetting("hostname");
- root["platform"] = "mqtt";
-
- if (relayCount()) {
- root["state_topic"] = getTopic(MQTT_TOPIC_RELAY, 0, false);
- root["command_topic"] = getTopic(MQTT_TOPIC_RELAY, 0, true);
- }
-
- #if LIGHT_PROVIDER != LIGHT_PROVIDER_NONE
-
- if (lightHasColor()) {
- root["brightness"] = 1;
- root["brightness_state_topic"] = getTopic(MQTT_TOPIC_BRIGHTNESS, false);
- root["brightness_command_topic"] = getTopic(MQTT_TOPIC_BRIGHTNESS, true);
- root["rgb"] = 1;
- root["rgb_state_topic"] = getTopic(MQTT_TOPIC_COLOR, false);
- root["rgb_command_topic"] = getTopic(MQTT_TOPIC_COLOR, true);
- root["color_temp"] = 1;
- root["color_temp_command_topic"] = getTopic(MQTT_TOPIC_MIRED, true);
- }
-
- if (lightChannels() > 3) {
- root["white_value"] = 1;
- root["white_value_state_topic"] = getTopic(MQTT_TOPIC_CHANNEL, 3, false);
- root["white_value_command_topic"] = getTopic(MQTT_TOPIC_CHANNEL, 3, true);
- }
-
- #endif // LIGHT_PROVIDER != LIGHT_PROVIDER_NONE
-
- String output;
- root.printTo(output);
-
- String topic = getSetting("haPrefix", HOMEASSISTANT_PREFIX)
- + String("/") + component + "/" + getSetting("hostname");
-
- mqttSendRaw(topic.c_str(), output.c_str());
-
- }
-
-
- #endif // HOMEASSISTANT_SUPPORT
|