publish state of led

This commit is contained in:
Nicu Hodos 2023-07-11 13:14:57 +02:00
parent f237fba978
commit e8b8c42959
2 changed files with 15 additions and 6 deletions

View File

@ -55,11 +55,17 @@ namespace Mqtt {
new Ha::AltitudeSensor{"Living room Altitude", "altitude"} new Ha::AltitudeSensor{"Living room Altitude", "altitude"}
}; };
Ha::Command* ledMqtt = (new Ha::Switch{"ESP Clock Led", "led",
[](const char* msg) {
String{ "ON" }.equals(msg) ? digitalWrite(LED_BUILTIN, LOW) : digitalWrite(LED_BUILTIN, HIGH);
}
})->withStateTopic();
Ha::Command* brightnessMqtt = (new Ha::Brightness{ "ESP Clock Brightness", "brightness", Ha::Command* brightnessMqtt = (new Ha::Brightness{ "ESP Clock Brightness", "brightness",
[](const char* msg) { [](const char* msg) {
Display::Brightness::set(String{ msg }.toInt()); Display::Brightness::set(String{ msg }.toInt());
} }
})->withStateTopic(); })->withStateTopic();
Ha::Command* switches[] = { Ha::Command* switches[] = {
new Ha::Button{"ESP Clock Restart", "restart", new Ha::Button{"ESP Clock Restart", "restart",
@ -67,11 +73,7 @@ namespace Mqtt {
if (String { "PRESS" }.equals(msg)) ESP.restart(); if (String { "PRESS" }.equals(msg)) ESP.restart();
} }
}, },
new Ha::Switch{"ESP Clock Led", "led", ledMqtt,
[](const char* msg) {
String{ "ON" }.equals(msg) ? digitalWrite(LED_BUILTIN, LOW) : digitalWrite(LED_BUILTIN, HIGH);
}
},
new Ha::Switch{"ESP Clock Format 24h", "format_24h", new Ha::Switch{"ESP Clock Format 24h", "format_24h",
[](const char* msg) { [](const char* msg) {
if (String{ "ON" }.equals(msg)) { if (String{ "ON" }.equals(msg)) {

View File

@ -3,6 +3,7 @@
void checkWifiCallback(); void checkWifiCallback();
void onWifiConnected(); void onWifiConnected();
void onButtonPressed(); void onButtonPressed();
void onLed();
void onButtonCallback(); void onButtonCallback();
#include <TaskScheduler.h> #include <TaskScheduler.h>
@ -20,6 +21,7 @@ Task tButton(TASK_IMMEDIATE, TASK_ONCE, onButtonCallback, &ts);
#include "ir.h" #include "ir.h"
#define BUTTON D3 #define BUTTON D3
#define LED D4
void setup() { void setup() {
@ -40,6 +42,7 @@ void setup() {
pinMode(BUTTON, INPUT_PULLUP); pinMode(BUTTON, INPUT_PULLUP);
attachInterrupt(digitalPinToInterrupt(BUTTON), onButtonPressed, FALLING); attachInterrupt(digitalPinToInterrupt(BUTTON), onButtonPressed, FALLING);
attachInterrupt(digitalPinToInterrupt(LED), onLed, CHANGE);
} }
void loop() { void loop() {
@ -70,6 +73,10 @@ ICACHE_RAM_ATTR void onButtonPressed() {
tButton.restart(); tButton.restart();
} }
ICACHE_RAM_ATTR void onLed() {
Mqtt::publish(Mqtt::ledMqtt->stateTopic, digitalRead(LED) ? "OFF" : "ON");
}
void onButtonCallback() { void onButtonCallback() {
Display::displayTemp(Bmp::data.readTemp()); Display::displayTemp(Bmp::data.readTemp());
} }