diff --git a/src/mesh/NodeDB.cpp b/src/mesh/NodeDB.cpp index fa5c437c4..5678009c0 100644 --- a/src/mesh/NodeDB.cpp +++ b/src/mesh/NodeDB.cpp @@ -425,10 +425,14 @@ void NodeDB::installRoleDefaults(meshtastic_Config_DeviceConfig_Role role) void NodeDB::initModuleConfigIntervals() { - moduleConfig.telemetry.device_update_interval = default_broadcast_interval_secs; - moduleConfig.telemetry.environment_update_interval = default_broadcast_interval_secs; - moduleConfig.telemetry.air_quality_interval = default_broadcast_interval_secs; - moduleConfig.neighbor_info.update_interval = default_broadcast_interval_secs; + // Zero out telemetry intervals so that they coalesce to defaults in Default.h + moduleConfig.telemetry.device_update_interval = 0; + moduleConfig.telemetry.environment_update_interval = 0; + moduleConfig.telemetry.air_quality_interval = 0; + moduleConfig.telemetry.power_update_interval = 0; + moduleConfig.neighbor_info.update_interval = 0; + moduleConfig.paxcounter.paxcounter_update_interval = 0; + moduleConfig.neighbor_info.update_interval = 0; } void NodeDB::installDefaultChannels() @@ -648,6 +652,26 @@ void NodeDB::loadFromDisk() if (state == LoadFileResult::SUCCESS) { LOG_INFO("Loaded OEMStore\n"); } + + // 2.4.X - configuration migration to update new default intervals + if (moduleConfig.version < 23) { + LOG_DEBUG("ModuleConfig version %d is stale, upgrading to new default intervals\n", moduleConfig.version); + moduleConfig.version = DEVICESTATE_CUR_VER; + if (moduleConfig.telemetry.device_update_interval == 900) + moduleConfig.telemetry.device_update_interval = 0; + if (moduleConfig.telemetry.environment_update_interval == 900) + moduleConfig.telemetry.environment_update_interval = 0; + if (moduleConfig.telemetry.air_quality_interval == 900) + moduleConfig.telemetry.air_quality_interval = 0; + if (moduleConfig.telemetry.power_update_interval == 900) + moduleConfig.telemetry.power_update_interval = 0; + if (moduleConfig.neighbor_info.update_interval == 900) + moduleConfig.neighbor_info.update_interval = 0; + if (moduleConfig.paxcounter.paxcounter_update_interval == 900) + moduleConfig.paxcounter.paxcounter_update_interval = 0; + + saveToDisk(SEGMENT_MODULECONFIG); + } } /** Save a protobuf from a file, return true for success */ diff --git a/src/mesh/NodeDB.h b/src/mesh/NodeDB.h index 61bf90d4d..5207d8629 100644 --- a/src/mesh/NodeDB.h +++ b/src/mesh/NodeDB.h @@ -20,8 +20,8 @@ DeviceState versions used to be defined in the .proto file but really only this #define SEGMENT_DEVICESTATE 4 #define SEGMENT_CHANNELS 8 -#define DEVICESTATE_CUR_VER 22 -#define DEVICESTATE_MIN_VER DEVICESTATE_CUR_VER +#define DEVICESTATE_CUR_VER 23 +#define DEVICESTATE_MIN_VER 22 extern meshtastic_DeviceState devicestate; extern meshtastic_ChannelFile channelFile;