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_action_command_result "/lock/commandResult"
|
||||||
#define mqtt_topic_lock_door_sensor_state "/lock/doorSensorState"
|
#define mqtt_topic_lock_door_sensor_state "/lock/doorSensorState"
|
||||||
#define mqtt_topic_lock_action "/lock/action"
|
#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_button_enabled "/configuration/buttonEnabled"
|
||||||
#define mqtt_topic_config_led_enabled "/configuration/ledEnabled"
|
#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);
|
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)
|
void NetworkLock::publishKeypad(const std::list<NukiLock::KeypadEntry>& entries, uint maxKeypadCodeCount)
|
||||||
{
|
{
|
||||||
uint index = 0;
|
uint index = 0;
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ public:
|
|||||||
void publishBatteryReport(const NukiLock::BatteryReport& batteryReport);
|
void publishBatteryReport(const NukiLock::BatteryReport& batteryReport);
|
||||||
void publishConfig(const NukiLock::Config& config);
|
void publishConfig(const NukiLock::Config& config);
|
||||||
void publishAdvancedConfig(const NukiLock::AdvancedConfig& 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 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 removeHASSConfig(char* uidString);
|
||||||
void publishKeypad(const std::list<NukiLock::KeypadEntry>& entries, uint maxKeypadCodeCount);
|
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);
|
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)
|
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);
|
_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);
|
buildMqttPath(subPath, prefixedPath);
|
||||||
return strcmp(fullPath, prefixedPath) == 0;
|
return strcmp(fullPath, prefixedPath) == 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ public:
|
|||||||
void publishBatteryReport(const NukiOpener::BatteryReport& batteryReport);
|
void publishBatteryReport(const NukiOpener::BatteryReport& batteryReport);
|
||||||
void publishConfig(const NukiOpener::Config& config);
|
void publishConfig(const NukiOpener::Config& config);
|
||||||
void publishAdvancedConfig(const NukiOpener::AdvancedConfig& 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 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 removeHASSConfig(char* uidString);
|
||||||
|
|
||||||
|
|||||||
@@ -104,6 +104,17 @@ void NukiOpenerWrapper::update()
|
|||||||
_nextConfigUpdateTs = ts + _intervalConfig * 1000;
|
_nextConfigUpdateTs = ts + _intervalConfig * 1000;
|
||||||
updateConfig();
|
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)
|
if(_nextLockAction != (NukiOpener::LockAction)0xff)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -73,5 +73,7 @@ private:
|
|||||||
unsigned long _nextBatteryReportTs = 0;
|
unsigned long _nextBatteryReportTs = 0;
|
||||||
unsigned long _nextConfigUpdateTs = 0;
|
unsigned long _nextConfigUpdateTs = 0;
|
||||||
unsigned long _nextPairTs = 0;
|
unsigned long _nextPairTs = 0;
|
||||||
|
unsigned long _nextRssiTs = 0;
|
||||||
|
unsigned long _lastRssi = 0;
|
||||||
NukiOpener::LockAction _nextLockAction = (NukiOpener::LockAction)0xff;
|
NukiOpener::LockAction _nextLockAction = (NukiOpener::LockAction)0xff;
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -114,6 +114,17 @@ void NukiWrapper::update()
|
|||||||
_nextConfigUpdateTs = ts + _intervalConfig * 1000;
|
_nextConfigUpdateTs = ts + _intervalConfig * 1000;
|
||||||
updateConfig();
|
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))
|
if(_hasKeypad && _keypadEnabled && (_nextKeypadUpdateTs == 0 || ts > _nextKeypadUpdateTs))
|
||||||
{
|
{
|
||||||
_nextKeypadUpdateTs = ts + _intervalKeypad * 1000;
|
_nextKeypadUpdateTs = ts + _intervalKeypad * 1000;
|
||||||
|
|||||||
@@ -84,5 +84,7 @@ private:
|
|||||||
unsigned long _nextBatteryReportTs = 0;
|
unsigned long _nextBatteryReportTs = 0;
|
||||||
unsigned long _nextConfigUpdateTs = 0;
|
unsigned long _nextConfigUpdateTs = 0;
|
||||||
unsigned long _nextKeypadUpdateTs = 0;
|
unsigned long _nextKeypadUpdateTs = 0;
|
||||||
|
unsigned long _nextRssiTs = 0;
|
||||||
|
unsigned long _lastRssi = 0;
|
||||||
NukiLock::LockAction _nextLockAction = (NukiLock::LockAction)0xff;
|
NukiLock::LockAction _nextLockAction = (NukiLock::LockAction)0xff;
|
||||||
};
|
};
|
||||||
|
|||||||
Submodule lib/nuki_ble updated: 0205191ceb...24794a348b
Reference in New Issue
Block a user