publish lock and opener rssi
This commit is contained in:
@@ -18,6 +18,7 @@
|
||||
#define mqtt_topic_lock_action_command_result "/lock/commandResult"
|
||||
#define mqtt_topic_lock_door_sensor_state "/lock/doorSensorState"
|
||||
#define mqtt_topic_lock_action "/lock/action"
|
||||
#define mqtt_topic_lock_rssi "/lock/rssi"
|
||||
|
||||
#define mqtt_topic_config_button_enabled "/configuration/buttonEnabled"
|
||||
#define mqtt_topic_config_led_enabled "/configuration/ledEnabled"
|
||||
|
||||
@@ -364,6 +364,11 @@ void NetworkLock::publishAdvancedConfig(const NukiLock::AdvancedConfig &config)
|
||||
publishBool(mqtt_topic_config_auto_lock, config.autoLockEnabled == 1);
|
||||
}
|
||||
|
||||
void NetworkLock::publishRssi(const int& rssi)
|
||||
{
|
||||
publishInt(mqtt_topic_lock_rssi, rssi);
|
||||
}
|
||||
|
||||
void NetworkLock::publishKeypad(const std::list<NukiLock::KeypadEntry>& entries, uint maxKeypadCodeCount)
|
||||
{
|
||||
uint index = 0;
|
||||
|
||||
@@ -27,6 +27,7 @@ public:
|
||||
void publishBatteryReport(const NukiLock::BatteryReport& batteryReport);
|
||||
void publishConfig(const NukiLock::Config& config);
|
||||
void publishAdvancedConfig(const NukiLock::AdvancedConfig& config);
|
||||
void publishRssi(const int& rssi);
|
||||
void publishHASSConfig(char* deviceType, const char* baseTopic, char* name, char* uidString, char* lockAction, char* unlockAction, char* openAction, char* lockedState, char* unlockedState);
|
||||
void removeHASSConfig(char* uidString);
|
||||
void publishKeypad(const std::list<NukiLock::KeypadEntry>& entries, uint maxKeypadCodeCount);
|
||||
|
||||
@@ -360,6 +360,11 @@ void NetworkOpener::publishAdvancedConfig(const NukiOpener::AdvancedConfig &conf
|
||||
publishUInt(mqtt_topic_config_sound_level, config.soundLevel);
|
||||
}
|
||||
|
||||
void NetworkOpener::publishRssi(const int &rssi)
|
||||
{
|
||||
publishInt(mqtt_topic_lock_rssi, rssi);
|
||||
}
|
||||
|
||||
void NetworkOpener::publishHASSConfig(char* deviceType, const char* baseTopic, char* name, char* uidString, char* lockAction, char* unlockAction, char* openAction, char* lockedState, char* unlockedState)
|
||||
{
|
||||
_network->publishHASSConfig(deviceType, baseTopic, name, uidString, lockAction, unlockAction, openAction, lockedState, unlockedState);
|
||||
@@ -441,3 +446,4 @@ bool NetworkOpener::comparePrefixedPath(const char *fullPath, const char *subPat
|
||||
buildMqttPath(subPath, prefixedPath);
|
||||
return strcmp(fullPath, prefixedPath) == 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -28,6 +28,7 @@ public:
|
||||
void publishBatteryReport(const NukiOpener::BatteryReport& batteryReport);
|
||||
void publishConfig(const NukiOpener::Config& config);
|
||||
void publishAdvancedConfig(const NukiOpener::AdvancedConfig& config);
|
||||
void publishRssi(const int& rssi);
|
||||
void publishHASSConfig(char* deviceType, const char* baseTopic, char* name, char* uidString, char* lockAction, char* unlockAction, char* openAction, char* lockedState, char* unlockedState);
|
||||
void removeHASSConfig(char* uidString);
|
||||
|
||||
|
||||
@@ -104,6 +104,17 @@ void NukiOpenerWrapper::update()
|
||||
_nextConfigUpdateTs = ts + _intervalConfig * 1000;
|
||||
updateConfig();
|
||||
}
|
||||
if(_nextRssiTs == 0 || ts > _nextRssiTs)
|
||||
{
|
||||
_nextRssiTs = ts + 3000;
|
||||
|
||||
int rssi = _nukiOpener.getRssi();
|
||||
if(rssi != _lastRssi)
|
||||
{
|
||||
_network->publishRssi(rssi);
|
||||
_lastRssi = rssi;
|
||||
}
|
||||
}
|
||||
|
||||
if(_nextLockAction != (NukiOpener::LockAction)0xff)
|
||||
{
|
||||
|
||||
@@ -73,5 +73,7 @@ private:
|
||||
unsigned long _nextBatteryReportTs = 0;
|
||||
unsigned long _nextConfigUpdateTs = 0;
|
||||
unsigned long _nextPairTs = 0;
|
||||
unsigned long _nextRssiTs = 0;
|
||||
unsigned long _lastRssi = 0;
|
||||
NukiOpener::LockAction _nextLockAction = (NukiOpener::LockAction)0xff;
|
||||
};
|
||||
|
||||
@@ -114,6 +114,17 @@ void NukiWrapper::update()
|
||||
_nextConfigUpdateTs = ts + _intervalConfig * 1000;
|
||||
updateConfig();
|
||||
}
|
||||
if(_nextRssiTs == 0 || ts > _nextRssiTs)
|
||||
{
|
||||
_nextRssiTs = ts + 3000;
|
||||
|
||||
int rssi = _nukiLock.getRssi();
|
||||
if(rssi != _lastRssi)
|
||||
{
|
||||
_network->publishRssi(rssi);
|
||||
_lastRssi = rssi;
|
||||
}
|
||||
}
|
||||
if(_hasKeypad && _keypadEnabled && (_nextKeypadUpdateTs == 0 || ts > _nextKeypadUpdateTs))
|
||||
{
|
||||
_nextKeypadUpdateTs = ts + _intervalKeypad * 1000;
|
||||
|
||||
@@ -84,5 +84,7 @@ private:
|
||||
unsigned long _nextBatteryReportTs = 0;
|
||||
unsigned long _nextConfigUpdateTs = 0;
|
||||
unsigned long _nextKeypadUpdateTs = 0;
|
||||
unsigned long _nextRssiTs = 0;
|
||||
unsigned long _lastRssi = 0;
|
||||
NukiLock::LockAction _nextLockAction = (NukiLock::LockAction)0xff;
|
||||
};
|
||||
|
||||
Submodule lib/nuki_ble updated: 0205191ceb...24794a348b
Reference in New Issue
Block a user