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_unlock "/configuration/autoUnlock"
|
||||||
#define mqtt_topic_config_auto_lock "/configuration/autoLock"
|
#define mqtt_topic_config_auto_lock "/configuration/autoLock"
|
||||||
#define mqtt_topic_config_single_lock "/configuration/singleLock"
|
#define mqtt_topic_config_single_lock "/configuration/singleLock"
|
||||||
|
#define mqtt_topic_config_sound_level "/configuration/soundLevel"
|
||||||
|
|
||||||
#define mqtt_topic_presence "/presence/devices"
|
#define mqtt_topic_presence "/presence/devices"
|
||||||
|
|||||||
@@ -10,11 +10,11 @@ NetworkOpener::NetworkOpener(Network* network, Preferences* preferences)
|
|||||||
_network(network)
|
_network(network)
|
||||||
{
|
{
|
||||||
_configTopics.reserve(5);
|
_configTopics.reserve(5);
|
||||||
// _configTopics.push_back(mqtt_topic_config_button_enabled);
|
_configTopics.push_back(mqtt_topic_config_button_enabled);
|
||||||
// _configTopics.push_back(mqtt_topic_config_led_enabled);
|
_configTopics.push_back(mqtt_topic_config_led_enabled);
|
||||||
// _configTopics.push_back(mqtt_topic_config_led_brightness);
|
_configTopics.push_back(mqtt_topic_config_sound_level);
|
||||||
// _configTopics.push_back(mqtt_topic_config_auto_unlock);
|
|
||||||
// _configTopics.push_back(mqtt_topic_config_auto_lock);
|
_network->registerMqttReceiver(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
void NetworkOpener::initialize()
|
void NetworkOpener::initialize()
|
||||||
@@ -35,7 +35,10 @@ void NetworkOpener::initialize()
|
|||||||
}
|
}
|
||||||
|
|
||||||
_network->subscribe(_mqttPath, mqtt_topic_lock_action);
|
_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)
|
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)
|
void NetworkOpener::publishAdvancedConfig(const NukiOpener::AdvancedConfig &config)
|
||||||
{
|
{
|
||||||
// publishBool(mqtt_topic_config_auto_unlock, config.autoUnLockDisabled == 0);
|
publishUInt(mqtt_topic_config_sound_level, config.soundLevel);
|
||||||
// publishBool(mqtt_topic_config_auto_lock, config.autoLockEnabled == 1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
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)
|
||||||
|
|||||||
@@ -260,6 +260,13 @@ void NukiOpenerWrapper::onConfigUpdateReceived(const char *topic, const char *va
|
|||||||
_nukiOpener.enableLedFlash(newValue);
|
_nukiOpener.enableLedFlash(newValue);
|
||||||
_nextConfigUpdateTs = millis() + 300;
|
_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()
|
const NukiOpener::OpenerState &NukiOpenerWrapper::keyTurnerState()
|
||||||
|
|||||||
Reference in New Issue
Block a user