Enhance config and keyturner states

This commit is contained in:
iranl
2025-01-07 21:02:33 +01:00
parent ce2696b88e
commit 8f01ae2872
4 changed files with 65 additions and 21 deletions

View File

@@ -48,7 +48,7 @@ void NukiNetworkOpener::initialize()
_network->subscribe(_mqttPath, mqtt_topic_query_config);
_network->subscribe(_mqttPath, mqtt_topic_query_lockstate);
_network->subscribe(_mqttPath, mqtt_topic_query_battery);
_network->initTopic(_mqttPath, mqtt_topic_keypad_json_action, "--");
_network->initTopic(_mqttPath, mqtt_topic_timecontrol_action, "--");
_network->initTopic(_mqttPath, mqtt_topic_auth_action, "--");
@@ -400,17 +400,7 @@ void NukiNetworkOpener::publishKeyTurnerState(const NukiOpener::OpenerState& key
json["lock_completion_status"] = str;
memset(&str, 0, sizeof(str));
NukiOpener::doorSensorStateToString(keyTurnerState.doorSensorState, str);
if(_firstTunerStatePublish || keyTurnerState.doorSensorState != lastKeyTurnerState.doorSensorState)
{
_nukiPublisher->publishString(mqtt_topic_lock_door_sensor_state, str, true);
}
json["door_sensor_state"] = str;
bool critical = (keyTurnerState.criticalBatteryState & 0b00000001) > 0;
bool critical = (keyTurnerState.criticalBatteryState & 1);
jsonBattery["critical"] = critical ? "1" : "0";
if((_firstTunerStatePublish || keyTurnerState.criticalBatteryState != lastKeyTurnerState.criticalBatteryState) && !_disableNonJSON)
@@ -418,6 +408,14 @@ void NukiNetworkOpener::publishKeyTurnerState(const NukiOpener::OpenerState& key
_nukiPublisher->publishBool(mqtt_topic_battery_critical, critical, true);
}
bool keypadCritical = (keyTurnerState.accessoryBatteryState & 1) == 1 ? (keyTurnerState.accessoryBatteryState & 3) == 3 : false;
jsonBattery["keypadCritical"] = keypadCritical ? "1" : "0";
if((_firstTunerStatePublish || keyTurnerState.accessoryBatteryState != lastKeyTurnerState.accessoryBatteryState) && !_disableNonJSON)
{
_nukiPublisher->publishBool(mqtt_topic_battery_keypad_critical, keypadCritical, true);
}
json["auth_id"] = _authId;
json["auth_name"] = _authName;