Fix settings opener config; add confguring sound level
This commit is contained in:
@@ -23,5 +23,6 @@
|
||||
#define mqtt_topic_config_auto_unlock "/configuration/autoUnlock"
|
||||
#define mqtt_topic_config_auto_lock "/configuration/autoLock"
|
||||
#define mqtt_topic_config_single_lock "/configuration/singleLock"
|
||||
#define mqtt_topic_config_sound_level "/configuration/soundLevel"
|
||||
|
||||
#define mqtt_topic_presence "/presence/devices"
|
||||
|
||||
@@ -10,11 +10,11 @@ NetworkOpener::NetworkOpener(Network* network, Preferences* preferences)
|
||||
_network(network)
|
||||
{
|
||||
_configTopics.reserve(5);
|
||||
// _configTopics.push_back(mqtt_topic_config_button_enabled);
|
||||
// _configTopics.push_back(mqtt_topic_config_led_enabled);
|
||||
// _configTopics.push_back(mqtt_topic_config_led_brightness);
|
||||
// _configTopics.push_back(mqtt_topic_config_auto_unlock);
|
||||
// _configTopics.push_back(mqtt_topic_config_auto_lock);
|
||||
_configTopics.push_back(mqtt_topic_config_button_enabled);
|
||||
_configTopics.push_back(mqtt_topic_config_led_enabled);
|
||||
_configTopics.push_back(mqtt_topic_config_sound_level);
|
||||
|
||||
_network->registerMqttReceiver(this);
|
||||
}
|
||||
|
||||
void NetworkOpener::initialize()
|
||||
@@ -35,7 +35,10 @@ void NetworkOpener::initialize()
|
||||
}
|
||||
|
||||
_network->subscribe(_mqttPath, mqtt_topic_lock_action);
|
||||
_network->registerMqttReceiver(this);
|
||||
for(const auto& topic : _configTopics)
|
||||
{
|
||||
_network->subscribe(_mqttPath, topic);
|
||||
}
|
||||
}
|
||||
|
||||
void NetworkOpener::onMqttDataReceived(char *&topic, byte *&payload, unsigned int &length)
|
||||
@@ -139,8 +142,7 @@ void NetworkOpener::publishConfig(const NukiOpener::Config &config)
|
||||
|
||||
void NetworkOpener::publishAdvancedConfig(const NukiOpener::AdvancedConfig &config)
|
||||
{
|
||||
// publishBool(mqtt_topic_config_auto_unlock, config.autoUnLockDisabled == 0);
|
||||
// publishBool(mqtt_topic_config_auto_lock, config.autoLockEnabled == 1);
|
||||
publishUInt(mqtt_topic_config_sound_level, config.soundLevel);
|
||||
}
|
||||
|
||||
void NetworkOpener::publishHASSConfig(char* deviceType, const char* baseTopic, char* name, char* uidString, char* lockAction, char* unlockAction, char* openAction, char* lockedState, char* unlockedState)
|
||||
|
||||
@@ -260,6 +260,13 @@ void NukiOpenerWrapper::onConfigUpdateReceived(const char *topic, const char *va
|
||||
_nukiOpener.enableLedFlash(newValue);
|
||||
_nextConfigUpdateTs = millis() + 300;
|
||||
}
|
||||
if(strcmp(topic, mqtt_topic_config_sound_level) == 0)
|
||||
{
|
||||
uint8_t newValue = atoi(value);
|
||||
if(!_nukiAdvancedConfigValid || _nukiAdvancedConfig.soundLevel == newValue) return;
|
||||
_nukiOpener.setSoundLevel(newValue);
|
||||
_nextConfigUpdateTs = millis() + 300;
|
||||
}
|
||||
}
|
||||
|
||||
const NukiOpener::OpenerState &NukiOpenerWrapper::keyTurnerState()
|
||||
|
||||
Reference in New Issue
Block a user