Merge pull request #373 from iranl/ha-opener-keypad
Add HA keypad for opener
This commit is contained in:
@@ -702,13 +702,23 @@ void NetworkOpener::publishBleAddress(const std::string &address)
|
|||||||
publishString(mqtt_topic_lock_address, address);
|
publishString(mqtt_topic_lock_address, address);
|
||||||
}
|
}
|
||||||
|
|
||||||
void NetworkOpener::publishHASSConfig(char* deviceType, const char* baseTopic, char* name, char* uidString, char* lockAction, char* unlockAction, char* openAction)
|
void NetworkOpener::publishHASSConfig(char* deviceType, const char* baseTopic, char* name, char* uidString, const bool& hasKeypad, char* lockAction, char* unlockAction, char* openAction)
|
||||||
{
|
{
|
||||||
String availabilityTopic = _preferences->getString("mqttpath");
|
String availabilityTopic = _preferences->getString("mqttpath");
|
||||||
availabilityTopic.concat("/maintenance/mqttConnectionState");
|
availabilityTopic.concat("/maintenance/mqttConnectionState");
|
||||||
|
|
||||||
_network->publishHASSConfig(deviceType, baseTopic, name, uidString, availabilityTopic.c_str(), false, lockAction, unlockAction, openAction);
|
_network->publishHASSConfig(deviceType, baseTopic, name, uidString, availabilityTopic.c_str(), hasKeypad, lockAction, unlockAction, openAction);
|
||||||
_network->publishHASSConfigAdditionalOpenerEntities(deviceType, baseTopic, name, uidString);
|
_network->publishHASSConfigAdditionalOpenerEntities(deviceType, baseTopic, name, uidString);
|
||||||
|
|
||||||
|
if(hasKeypad)
|
||||||
|
{
|
||||||
|
_network->publishHASSConfigKeypad(deviceType, baseTopic, name, uidString);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
_network->removeHASSConfigTopic((char*)"sensor", (char*)"keypad_status", uidString);
|
||||||
|
_network->removeHASSConfigTopic((char*)"binary_sensor", (char*)"keypad_battery_low", uidString);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void NetworkOpener::removeHASSConfig(char* uidString)
|
void NetworkOpener::removeHASSConfig(char* uidString)
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ public:
|
|||||||
void publishRssi(const int& rssi);
|
void publishRssi(const int& rssi);
|
||||||
void publishRetry(const std::string& message);
|
void publishRetry(const std::string& message);
|
||||||
void publishBleAddress(const std::string& address);
|
void publishBleAddress(const std::string& address);
|
||||||
void publishHASSConfig(char* deviceType, const char* baseTopic, char* name, char* uidString, char* lockAction, char* unlockAction, char* openAction);
|
void publishHASSConfig(char* deviceType, const char* baseTopic, char* name, char* uidString, const bool& hasKeypad, char* lockAction, char* unlockAction, char* openAction);
|
||||||
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);
|
||||||
void publishTimeControl(const std::list<NukiOpener::TimeControlEntry>& timeControlEntries);
|
void publishTimeControl(const std::list<NukiOpener::TimeControlEntry>& timeControlEntries);
|
||||||
|
|||||||
@@ -2073,11 +2073,11 @@ void NukiOpenerWrapper::setupHASS()
|
|||||||
|
|
||||||
if(_preferences->getBool(preference_opener_continuous_mode))
|
if(_preferences->getBool(preference_opener_continuous_mode))
|
||||||
{
|
{
|
||||||
_network->publishHASSConfig((char*)"Opener", baseTopic.c_str(), (char*)_nukiConfig.name, uidString, (char*)"deactivateCM", (char*)"activateCM", (char*)"electricStrikeActuation");
|
_network->publishHASSConfig((char*)"Opener", baseTopic.c_str(), (char*)_nukiConfig.name, uidString, _hasKeypad, (char*)"deactivateCM", (char*)"activateCM", (char*)"electricStrikeActuation");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
_network->publishHASSConfig((char*)"Opener", baseTopic.c_str(), (char*)_nukiConfig.name, uidString, (char*)"deactivateRTO", (char*)"activateRTO", (char*)"electricStrikeActuation");
|
_network->publishHASSConfig((char*)"Opener", baseTopic.c_str(), (char*)_nukiConfig.name, uidString, _hasKeypad, (char*)"deactivateRTO", (char*)"activateRTO", (char*)"electricStrikeActuation");
|
||||||
}
|
}
|
||||||
|
|
||||||
_hassSetupCompleted = true;
|
_hassSetupCompleted = true;
|
||||||
|
|||||||
Reference in New Issue
Block a user