Najprostsze rozwiązanie to okresowe (np. co 30 sekund) wywoływanie poniższego warunku:Maciek663 wrote: Mon Oct 27, 2025 8:20 am Dziękuję Wam za odpowiedzi!
Gdzie szukać tej zmiennej DEVICE STATUS CHANGE i jej stanów na githubie s-d?
Code: Select all
if (SuplaDevice.getCurrentStatus() == STATUS_REGISTERED_AND_READY) ...
vajera wrote: Mon Oct 27, 2025 7:50 am Po przykład zapraszam do kodu bramki Z2S.[uel]https://github.com/lsroka76/Z2S_Library[/url]Kolega prosi o link![]()
W bramce zrobiłem to trochę inaczej:
W setup() mam funkcję:
gdzie:Code: Select all
SuplaDevice.addAction(0x4010, AHwC, Supla::ON_DEVICE_STATUS_CHANGE, false);
ActionHandlerWithCallbacks to klasa (do pobrania z GitHub Z2S), która pozwala podłączyć pod akcje Supla własną funkcję (tzw. callback) - tutaj jest to poniższa funkcja:Code: Select all
auto AHwC = new Supla::ActionHandlerWithCallbacks(); AHwC->setActionHandlerCallback(supla_callback_bridge);
Zostanie ona wywołana wtedy i tylko wtedy, gdy wystąpi zdarzenie Supla::ON_DEVICE_STATUS_CHANGE, więc nie ma potrzeba ciągłego sprawdzania statusu w pętli.Code: Select all
void supla_callback_bridge(int event, int action) { /*......*/ case 0x4010: { if ((!Zigbee.started()) && (SuplaDevice.getCurrentStatus() == STATUS_REGISTERED_AND_READY)) {
