Add continuous mode binary sensor

This commit is contained in:
iranl
2024-02-09 21:12:40 +01:00
parent 2c5ae46b78
commit a3b1ef7753
4 changed files with 30 additions and 1 deletions

View File

@@ -17,6 +17,7 @@
#define mqtt_topic_query_battery "/lock/query/battery"
#define mqtt_topic_query_lockstate_command_result "/lock/query/lockstateCommandResult"
#define mqtt_topic_lock_binary_state "/lock/binaryState"
#define mqtt_topic_lock_continous_mode "/lock/continousMode"
#define mqtt_topic_lock_trigger "/lock/trigger"
#define mqtt_topic_lock_last_lock_action "/lock/lastLockAction"
#define mqtt_topic_lock_log "/lock/log"

View File

@@ -1084,6 +1084,30 @@ void Network::publishHASSConfigDoorSensor(char *deviceType, const char *baseTopi
}
}
void Network::publishHASSConfigContinuousMode(char *deviceType, const char *baseTopic, char *name, char *uidString)
{
String discoveryTopic = _preferences->getString(preference_mqtt_hass_discovery);
if (discoveryTopic != "")
{
publishHassTopic("binary_sensor",
"continuous_mode",
uidString,
"_continuous_mode",
"Continuous mode",
name,
baseTopic,
String("~") + mqtt_topic_lock_continous_mode,
deviceType,
"lock",
"",
"",
"",
{{"pl_on", "on"},
{"pl_off", "off"}});
}
}
void Network::publishHASSConfigRingDetect(char *deviceType, const char *baseTopic, char *name, char *uidString)
{
String discoveryTopic = _preferences->getString(preference_mqtt_hass_discovery);
@@ -1108,7 +1132,6 @@ void Network::publishHASSConfigRingDetect(char *deviceType, const char *baseTopi
}
}
void Network::publishHASSConfigLedBrightness(char *deviceType, const char *baseTopic, char *name, char *uidString)
{
publishHassTopic("number",

View File

@@ -48,6 +48,7 @@ public:
void publishHASSConfigBatLevel(char* deviceType, const char* baseTopic, char* name, char* uidString);
void publishHASSConfigDoorSensor(char* deviceType, const char* baseTopic, char* name, char* uidString);
void publishHASSConfigRingDetect(char* deviceType, const char* baseTopic, char* name, char* uidString);
void publishHASSConfigContinuousMode(char* deviceType, const char* baseTopic, char* name, char* uidString);
void publishHASSConfigLedBrightness(char* deviceType, const char* baseTopic, char* name, char* uidString);
void publishHASSConfigSoundLevel(char* deviceType, const char* baseTopic, char* name, char* uidString);
void publishHASSConfigAccessLog(char* deviceType, const char* baseTopic, char* name, char* uidString);

View File

@@ -266,9 +266,12 @@ void NetworkOpener::publishState(NukiOpener::OpenerState lockState)
{
publishString(mqtt_topic_lock_ha_state, "unlocked");
publishString(mqtt_topic_lock_binary_state, "unlocked");
publishString(mqtt_topic_lock_continous_mode, "on");
}
else
{
publishString(mqtt_topic_lock_continous_mode, "off");
switch (lockState.lockState)
{
case NukiOpener::LockState::Locked:
@@ -511,6 +514,7 @@ void NetworkOpener::publishHASSConfig(char* deviceType, const char* baseTopic, c
_network->publishHASSConfig(deviceType, baseTopic, name, uidString, availabilityTopic.c_str(), false, lockAction, unlockAction, openAction);
_network->publishHASSConfigRingDetect(deviceType, baseTopic, name, uidString);
_network->publishHASSConfigContinuousMode(deviceType, baseTopic, name, uidString);
_network->publishHASSConfigSoundLevel(deviceType, baseTopic, name, uidString);
_network->publishHASSBleRssiConfig(deviceType, baseTopic, name, uidString);
}