expose sensor with remaining timer
This commit is contained in:
parent
e6ef1bb8b9
commit
67355c7122
@ -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());
|
||||
};
|
||||
}
|
||||
}
|
||||
@ -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();
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user