publish ble address via mqtt
This commit is contained in:
@@ -20,6 +20,7 @@
|
|||||||
#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_lock_rssi "/lock/rssi"
|
||||||
|
#define mqtt_topic_lock_address "/lock/address"
|
||||||
|
|
||||||
#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"
|
||||||
|
|||||||
@@ -388,6 +388,11 @@ void NetworkLock::publishRssi(const int& rssi)
|
|||||||
publishInt(mqtt_topic_lock_rssi, rssi);
|
publishInt(mqtt_topic_lock_rssi, rssi);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void NetworkLock::publishBleAddress(const std::string &address)
|
||||||
|
{
|
||||||
|
publishString(mqtt_topic_lock_address, address.c_str());
|
||||||
|
}
|
||||||
|
|
||||||
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;
|
||||||
|
|||||||
@@ -28,6 +28,7 @@ public:
|
|||||||
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 publishRssi(const int& rssi);
|
||||||
|
void publishBleAddress(const std::string& address);
|
||||||
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);
|
||||||
|
|||||||
@@ -367,6 +367,11 @@ void NetworkOpener::publishRssi(const int &rssi)
|
|||||||
publishInt(mqtt_topic_lock_rssi, rssi);
|
publishInt(mqtt_topic_lock_rssi, rssi);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void NetworkOpener::publishBleAddress(const std::string &address)
|
||||||
|
{
|
||||||
|
publishString(mqtt_topic_lock_address, address.c_str());
|
||||||
|
}
|
||||||
|
|
||||||
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);
|
||||||
@@ -449,4 +454,3 @@ 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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ public:
|
|||||||
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 publishRssi(const int& rssi);
|
||||||
|
void publishBleAddress(const std::string& address);
|
||||||
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);
|
||||||
|
|
||||||
|
|||||||
@@ -75,6 +75,7 @@ void NukiOpenerWrapper::update()
|
|||||||
if (!_paired)
|
if (!_paired)
|
||||||
{
|
{
|
||||||
Log->println(F("Nuki opener start pairing"));
|
Log->println(F("Nuki opener start pairing"));
|
||||||
|
_network->publishBleAddress("");
|
||||||
|
|
||||||
Nuki::AuthorizationIdType idType = _preferences->getBool(preference_register_as_app) ?
|
Nuki::AuthorizationIdType idType = _preferences->getBool(preference_register_as_app) ?
|
||||||
Nuki::AuthorizationIdType::App :
|
Nuki::AuthorizationIdType::App :
|
||||||
@@ -83,6 +84,7 @@ void NukiOpenerWrapper::update()
|
|||||||
if (_nukiOpener.pairNuki(idType) == NukiOpener::PairingResult::Success) {
|
if (_nukiOpener.pairNuki(idType) == NukiOpener::PairingResult::Success) {
|
||||||
Log->println(F("Nuki opener paired"));
|
Log->println(F("Nuki opener paired"));
|
||||||
_paired = true;
|
_paired = true;
|
||||||
|
_network->publishBleAddress(_nukiOpener.getBleAddress().toString());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -94,6 +94,7 @@ void NukiWrapper::update()
|
|||||||
if (!_paired)
|
if (!_paired)
|
||||||
{
|
{
|
||||||
Log->println(F("Nuki start pairing"));
|
Log->println(F("Nuki start pairing"));
|
||||||
|
_network->publishBleAddress("");
|
||||||
|
|
||||||
Nuki::AuthorizationIdType idType = _preferences->getBool(preference_register_as_app) ?
|
Nuki::AuthorizationIdType idType = _preferences->getBool(preference_register_as_app) ?
|
||||||
Nuki::AuthorizationIdType::App :
|
Nuki::AuthorizationIdType::App :
|
||||||
@@ -102,6 +103,7 @@ void NukiWrapper::update()
|
|||||||
if (_nukiLock.pairNuki(idType) == Nuki::PairingResult::Success) {
|
if (_nukiLock.pairNuki(idType) == Nuki::PairingResult::Success) {
|
||||||
Log->println(F("Nuki paired"));
|
Log->println(F("Nuki paired"));
|
||||||
_paired = true;
|
_paired = true;
|
||||||
|
_network->publishBleAddress(_nukiLock.getBleAddress().toString());
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user