expose sensor with remaining timer

This commit is contained in:
Nicu Hodos 2025-02-07 13:23:13 +01:00
parent e6ef1bb8b9
commit 67355c7122
2 changed files with 9 additions and 0 deletions

View File

@ -53,6 +53,8 @@ namespace Devices {
displayTimerMqtt->updateState(value);
}
}).withMin(0).withMax(90).withStep(5).restoreStateFromCommand().build();
Sensor* timerRemainingMqtt = Builder<Sensor>::instance(new Sensor("Timer remaining", "timer_remaining"))
.withUnitMeasure("min").withPrecision(0).build();
Switch* timerMqtt = Builder<Switch>::instance(new Switch{"Timer", "timer",
[](const char* msg) {
if (strcmp("ON", msg) == 0) {
@ -101,6 +103,7 @@ namespace Devices {
)
.addSecondary(ledMqtt)
.addSecondary(timerMqtt)
.addSecondary(timerRemainingMqtt)
.addConfiguration(brightnessMqtt)
.addConfiguration(hourFormatMqtt)
.addConfiguration(displayTimerMqtt)
@ -125,5 +128,8 @@ namespace Devices {
Display::Brightness::brightnessChangedCallback = []{
brightnessMqtt->updateState(Display::Brightness::current);
};
Display::Timer::timerCallback = []{
timerRemainingMqtt->updateState(to_string(Display::Timer::current).c_str());
};
}
}

View File

@ -79,6 +79,8 @@ namespace Display {
namespace Timer {
int8 timer = 0, current = 0;
void (*timerCallback)();
Task tDisplayTimer(SECONDS(10), 2,
[]{
if (current >= 0) {
@ -101,6 +103,7 @@ namespace Display {
tDisplayTimer.setIterations(TASK_FOREVER);
tDisplayTimer.restart();
}
if (timerCallback) timerCallback();
}, &ts, false, nullptr,
[]{
tDisplayTimer.disable();