From 3dadfa606d0c96fe9336ef08996b427a97ca49f3 Mon Sep 17 00:00:00 2001 From: fvanroie <15969459+fvanroie@users.noreply.github.com> Date: Sat, 29 May 2021 23:37:59 +0200 Subject: [PATCH] Use brightness for dimmable lights --- src/hasp/hasp_dispatch.cpp | 8 ++++++-- src/sys/gpio/hasp_gpio.cpp | 6 ++++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/hasp/hasp_dispatch.cpp b/src/hasp/hasp_dispatch.cpp index 57820dbb..59715458 100644 --- a/src/hasp/hasp_dispatch.cpp +++ b/src/hasp/hasp_dispatch.cpp @@ -200,8 +200,9 @@ static void dispatch_output(const char* topic, const char* payload) return; } - JsonVariant state = json[F("state")]; - JsonVariant value = json[F("val")]; + JsonVariant state = json[F("state")]; + JsonVariant value = json[F("val")]; + JsonVariant brightness = json[F("brightness")]; // Check if the state needs to change if(!state.isNull() && power_state != state.as()) { @@ -212,6 +213,9 @@ static void dispatch_output(const char* topic, const char* payload) if(!value.isNull() && state_value != value.as()) { state_value = value.as(); updated = true; + } else if(!brightness.isNull() && state_value != brightness.as()) { + state_value = brightness.as(); + updated = true; } // Set new state diff --git a/src/sys/gpio/hasp_gpio.cpp b/src/sys/gpio/hasp_gpio.cpp index 49ee68ee..c4a74dba 100644 --- a/src/sys/gpio/hasp_gpio.cpp +++ b/src/sys/gpio/hasp_gpio.cpp @@ -393,6 +393,12 @@ void gpio_output_state(hasp_gpio_config_t* gpio) case POWER_RELAY: snprintf_P(payload, sizeof(payload), PSTR("{\"state\":\"%s\"}"), statename); break; + case LED: + case SERIAL_DIMMER: + case SERIAL_DIMMER_AU: + case SERIAL_DIMMER_EU: + snprintf_P(payload, sizeof(payload), PSTR("{\"state\":\"%s\",\"brightness\":%d}"), statename, gpio->val); + break; default: snprintf_P(payload, sizeof(payload), PSTR("{\"state\":\"%s\",\"val\":%d}"), statename, gpio->val); }