This commit is contained in:
pdxlocations
2025-07-26 22:20:19 -07:00
parent 172c123990
commit 885eb4898d
2 changed files with 31 additions and 0 deletions

View File

@@ -1122,11 +1122,31 @@ def subscribe() -> None:
# pub.subscribe(onNode, "meshtastic.node")
def ensure_true_defaults(config_dict: dict, true_defaults: set[tuple[str, ...]]) -> None:
"""Ensure that default=True keys are present in the config_dict and set to True."""
for path in true_defaults:
d = config_dict
for key in path[:-1]:
if key not in d or not isinstance(d[key], dict):
d[key] = {}
d = d[key]
if path[-1] not in d:
d[path[-1]] = True
def export_config(interface) -> str:
"""used in --export-config"""
configObj = {}
true_defaults = {
("bluetooth", "enabled"),
("lora", "sx126xRxBoostedGain"),
("lora", "txEnabled"),
("lora", "usePreset"),
("position", "positionBroadcastSmartEnabled"),
("security", "serialEnabled"),
("mqtt", "encryptionEnabled"),
}
owner = interface.getLongName()
owner_short = interface.getShortName()
channel_url = interface.localNode.getURL()
@@ -1185,6 +1205,8 @@ def export_config(interface) -> str:
else:
configObj["config"] = config
ensure_true_defaults(configObj["config"], true_defaults)
module_config = MessageToDict(interface.localNode.moduleConfig)
if module_config:
# Convert inner keys to correct snake/camelCase