expose sensor with remaining timer
This commit is contained in:
parent
e6ef1bb8b9
commit
67355c7122
@ -53,6 +53,8 @@ namespace Devices {
|
|||||||
displayTimerMqtt->updateState(value);
|
displayTimerMqtt->updateState(value);
|
||||||
}
|
}
|
||||||
}).withMin(0).withMax(90).withStep(5).restoreStateFromCommand().build();
|
}).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",
|
Switch* timerMqtt = Builder<Switch>::instance(new Switch{"Timer", "timer",
|
||||||
[](const char* msg) {
|
[](const char* msg) {
|
||||||
if (strcmp("ON", msg) == 0) {
|
if (strcmp("ON", msg) == 0) {
|
||||||
@ -101,6 +103,7 @@ namespace Devices {
|
|||||||
)
|
)
|
||||||
.addSecondary(ledMqtt)
|
.addSecondary(ledMqtt)
|
||||||
.addSecondary(timerMqtt)
|
.addSecondary(timerMqtt)
|
||||||
|
.addSecondary(timerRemainingMqtt)
|
||||||
.addConfiguration(brightnessMqtt)
|
.addConfiguration(brightnessMqtt)
|
||||||
.addConfiguration(hourFormatMqtt)
|
.addConfiguration(hourFormatMqtt)
|
||||||
.addConfiguration(displayTimerMqtt)
|
.addConfiguration(displayTimerMqtt)
|
||||||
@ -125,5 +128,8 @@ namespace Devices {
|
|||||||
Display::Brightness::brightnessChangedCallback = []{
|
Display::Brightness::brightnessChangedCallback = []{
|
||||||
brightnessMqtt->updateState(Display::Brightness::current);
|
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 {
|
namespace Timer {
|
||||||
int8 timer = 0, current = 0;
|
int8 timer = 0, current = 0;
|
||||||
|
void (*timerCallback)();
|
||||||
|
|
||||||
Task tDisplayTimer(SECONDS(10), 2,
|
Task tDisplayTimer(SECONDS(10), 2,
|
||||||
[]{
|
[]{
|
||||||
if (current >= 0) {
|
if (current >= 0) {
|
||||||
@ -101,6 +103,7 @@ namespace Display {
|
|||||||
tDisplayTimer.setIterations(TASK_FOREVER);
|
tDisplayTimer.setIterations(TASK_FOREVER);
|
||||||
tDisplayTimer.restart();
|
tDisplayTimer.restart();
|
||||||
}
|
}
|
||||||
|
if (timerCallback) timerCallback();
|
||||||
}, &ts, false, nullptr,
|
}, &ts, false, nullptr,
|
||||||
[]{
|
[]{
|
||||||
tDisplayTimer.disable();
|
tDisplayTimer.disable();
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user