From 8e16b3e7b2de44d25e34580f41d1da67a963c079 Mon Sep 17 00:00:00 2001 From: technyon Date: Fri, 10 Feb 2023 16:43:08 +0100 Subject: [PATCH] only publish config and battery state if successfully queried --- NukiOpenerWrapper.cpp | 17 +++++++++++++---- NukiWrapper.cpp | 17 +++++++++++++---- 2 files changed, 26 insertions(+), 8 deletions(-) diff --git a/NukiOpenerWrapper.cpp b/NukiOpenerWrapper.cpp index a549220..0b1ab4a 100644 --- a/NukiOpenerWrapper.cpp +++ b/NukiOpenerWrapper.cpp @@ -304,8 +304,11 @@ void NukiOpenerWrapper::updateKeyTurnerState() void NukiOpenerWrapper::updateBatteryState() { - _nukiOpener.requestBatteryReport(&_batteryReport); - _network->publishBatteryReport(_batteryReport); + Nuki::CmdResult result = _nukiOpener.requestBatteryReport(&_batteryReport); + if(result == Nuki::CmdResult::Success) + { + _network->publishBatteryReport(_batteryReport); + } postponeBleWatchdog(); } @@ -315,8 +318,14 @@ void NukiOpenerWrapper::updateConfig() readAdvancedConfig(); _configRead = true; _hasKeypad = _nukiConfig.hasKeypad > 0; - _network->publishConfig(_nukiConfig); - _network->publishAdvancedConfig(_nukiAdvancedConfig); + if(_nukiConfigValid) + { + _network->publishConfig(_nukiConfig); + } + if(_nukiAdvancedConfigValid) + { + _network->publishAdvancedConfig(_nukiAdvancedConfig); + } } void NukiOpenerWrapper::updateAuthData() diff --git a/NukiWrapper.cpp b/NukiWrapper.cpp index e32c6a0..54b351d 100644 --- a/NukiWrapper.cpp +++ b/NukiWrapper.cpp @@ -304,8 +304,11 @@ void NukiWrapper::updateKeyTurnerState() void NukiWrapper::updateBatteryState() { - _nukiLock.requestBatteryReport(&_batteryReport); - _network->publishBatteryReport(_batteryReport); + Nuki::CmdResult result = _nukiLock.requestBatteryReport(&_batteryReport); + if(result == Nuki::CmdResult::Success) + { + _network->publishBatteryReport(_batteryReport); + } postponeBleWatchdog(); } @@ -315,8 +318,14 @@ void NukiWrapper::updateConfig() readAdvancedConfig(); _configRead = true; _hasKeypad = _nukiConfig.hasKeypad > 0; - _network->publishConfig(_nukiConfig); - _network->publishAdvancedConfig(_nukiAdvancedConfig); + if(_nukiConfigValid) + { + _network->publishConfig(_nukiConfig); + } + if(_nukiAdvancedConfigValid) + { + _network->publishAdvancedConfig(_nukiAdvancedConfig); + } } void NukiWrapper::updateAuthData()