@alteriom/painlessmesh 1.8.14 → 1.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/BRIDGE_TO_INTERNET.md +229 -0
- package/CHANGELOG.md +89 -1
- package/CONTRIBUTING.md +79 -0
- package/README.md +70 -143
- package/docs/README.md +1 -0
- package/docs/api/shared-gateway.md +1207 -0
- package/docs/troubleshooting/common-issues.md +28 -0
- package/docs/troubleshooting/faq.md +113 -12
- package/examples/basic/test/simulator/CMakeLists.txt +40 -0
- package/examples/basic/test/simulator/README.md +149 -0
- package/examples/basic/test/simulator/firmware/basic_firmware.hpp +117 -0
- package/examples/basic/test/simulator/scenarios/basic_mesh_test.yaml +81 -0
- package/examples/bridge/bridge.ino +17 -4
- package/examples/bridge_failover/README.md +81 -0
- package/examples/bridge_failover/bridge_failover.ino +51 -6
- package/examples/sharedGateway/README.md +235 -0
- package/examples/{meshCommandNode → sharedGateway}/platformio.ini +3 -2
- package/examples/sharedGateway/sharedGateway.ino +303 -0
- package/library.json +3 -22
- package/library.properties +1 -1
- package/package.json +3 -3
- package/src/arduino/wifi.hpp +380 -13
- package/src/painlessmesh/gateway.hpp +2120 -0
- package/src/painlessmesh/mesh.hpp +1034 -6
- package/src/painlessmesh/message_tracker.hpp +311 -0
- package/src/painlessmesh/protocol.hpp +6 -0
- package/DOCUMENTATION_INDEX.md +0 -146
- package/docs/API_DESIGN_GUIDELINES.md +0 -414
- package/docs/ARDUINO_LIBRARY_MANAGER_SUBMISSION.md +0 -331
- package/docs/BOOLEAN_NAMING_CONVENTION.md +0 -235
- package/docs/BRIDGE_FAILOVER.md +0 -512
- package/docs/BRIDGE_HEALTH_MONITORING.md +0 -293
- package/docs/CHANNEL_SYNCHRONIZATION.md +0 -209
- package/docs/CREATE_MISSING_RELEASES.md +0 -321
- package/docs/DOCUMENTATION_MIGRATION_PLAN.md +0 -176
- package/docs/FAQ_VERSION_NUMBERS.md +0 -152
- package/docs/IMPLEMENTATION_PLAN_MESH_TOPOLOGY.md +0 -1062
- package/docs/MESH_TOPOLOGY_GUIDE.md +0 -992
- package/docs/MESH_TOPOLOGY_PROGRESS.md +0 -422
- package/docs/MQTT_BRIDGE_COMMANDS.md +0 -894
- package/docs/MQTT_BRIDGE_IMPLEMENTATION_SUMMARY.md +0 -324
- package/docs/MQTT_COMMAND_SCHEMA_PROPOSAL.md +0 -576
- package/docs/MQTT_SCHEMA_COMPLIANCE.md +0 -340
- package/docs/MQTT_SCHEMA_PROPOSALS.md +0 -446
- package/docs/MQTT_SCHEMA_REVIEW.md +0 -690
- package/docs/OTA_COMMANDS_REFERENCE.md +0 -554
- package/docs/PHASE1_GUIDE.md +0 -349
- package/docs/PHASE2_GUIDE.md +0 -543
- package/docs/QUICK_REFERENCE_VERSIONING.md +0 -127
- package/docs/RELEASE_AGENT_SUMMARY.md +0 -386
- package/docs/SCHEMA_VALIDATION_CHECKLIST.md +0 -222
- package/docs/VERSION_MANAGEMENT.md +0 -213
- package/docs/archive/DOCUSAURUS_DEPLOYMENT.md +0 -166
- package/docs/archive/FEATURE_PROPOSALS.md +0 -337
- package/docs/archive/LIBRARY_JSON_FIX.md +0 -98
- package/docs/archive/LIBRARY_STRUCTURE_FIX.md +0 -215
- package/docs/archive/PHASE1_IMPLEMENTATION.md +0 -325
- package/docs/archive/PHASE2_IMPLEMENTATION.md +0 -567
- package/docs/archive/RELEASE_SUMMARY.md +0 -173
- package/docs/archive/SCONS_BUILD_FIX.md +0 -313
- package/docs/archive/TRIGGER_RELEASE.md +0 -280
- package/docs/archive/VECTOR_INCLUDE_FIX.md +0 -129
- package/docs/archive/ota-and-status-enhancements.md +0 -911
- package/docs/archive/ota-status-architecture-diagrams.md +0 -658
- package/docs/archive/ota-status-quick-reference.md +0 -284
- package/docs/design/.gitkeep +0 -1
- package/docs/design/STATION_CREDENTIALS_DESIGN.md +0 -182
- package/docs/development/ARDUINO_COMPLIANCE_SUMMARY.md +0 -71
- package/docs/development/CODE_REFACTORING_RECOMMENDATIONS.md +0 -1011
- package/docs/development/DOCKER_TESTING.md +0 -196
- package/docs/development/PLATFORMIO_USAGE.md +0 -180
- package/docs/development/TESTING_SUMMARY.md +0 -126
- package/docs/development/contributing.md +0 -301
- package/docs/development/documentation.md +0 -583
- package/docs/features/DIAGNOSTICS_API.md +0 -534
- package/docs/implementation/BRIDGE_ARCHITECTURE_IMPLEMENTATION.md +0 -340
- package/docs/implementation/BRIDGE_HEALTH_MONITORING_IMPLEMENTATION.md +0 -213
- package/docs/implementation/BRIDGE_STATUS_FEATURE.md +0 -635
- package/docs/implementation/DIAGNOSTICS_API_IMPLEMENTATION.md +0 -232
- package/docs/implementation/IMPLEMENTATION_COMPLETE.md +0 -228
- package/docs/implementation/IMPLEMENTATION_NTP_TIME_SYNC.md +0 -325
- package/docs/implementation/IMPLEMENTATION_SUMMARY.md +0 -316
- package/docs/implementation/MESSAGE_QUEUE_IMPLEMENTATION.md +0 -405
- package/docs/implementation/MULTI_BRIDGE_IMPLEMENTATION.md +0 -520
- package/docs/implementation/NTP_TIME_SYNC_FEATURE.md +0 -392
- package/docs/improvements/FUTURE_PROPOSALS.md +0 -1016
- package/docs/improvements/IMPLEMENTATION_HISTORY.md +0 -1091
- package/docs/improvements/OTA_STATUS_ENHANCEMENTS.md +0 -709
- package/docs/improvements/README.md +0 -212
- package/docs/internal/CUSTOM_AGENT_ANALYSIS.md +0 -391
- package/docs/internal/ISSUE_65_VERIFICATION.md +0 -947
- package/docs/internal/ISSUE_66_CLOSURE.md +0 -249
- package/docs/internal/ISSUE_66_STATUS.md +0 -316
- package/docs/internal/PR_SUMMARY.md +0 -315
- package/docs/internal/REVIEW_SUMMARY.md +0 -332
- package/docs/multi-bridge-setup.md +0 -1025
- package/docs/platformio-publishing.md +0 -255
- package/docs/platformio-setup-summary.md +0 -121
- package/docs/releases/ANNOUNCEMENT_v1.8.6.md +0 -63
- package/docs/releases/ANNOUNCEMENT_v1.8.7.md +0 -113
- package/docs/releases/BRIDGE_STATUS_SELF_REGISTRATION_FIX.md +0 -221
- package/docs/releases/FEATURE_HISTORY.md +0 -543
- package/docs/releases/GITHUB_RELEASE_v1.8.6.md +0 -71
- package/docs/releases/GITHUB_RELEASE_v1.8.7.md +0 -90
- package/docs/releases/PATCH_v1.7.2.md +0 -262
- package/docs/releases/PATCH_v1.7.3.md +0 -262
- package/docs/releases/PATCH_v1.7.4.md +0 -219
- package/docs/releases/PHASE1_SUMMARY.md +0 -246
- package/docs/releases/PHASE2_SUMMARY.md +0 -499
- package/docs/releases/PUBLISH_v1.8.0_INSTRUCTIONS.md +0 -163
- package/docs/releases/QUICK_START_RELEASES.md +0 -113
- package/docs/releases/RELEASE_CHECKLIST_1.8.10.md +0 -331
- package/docs/releases/RELEASE_CHECKLIST_1.8.9.md +0 -207
- package/docs/releases/RELEASE_CHECKLIST_v1.7.4.md +0 -253
- package/docs/releases/RELEASE_CHECKLIST_v1.7.5.md +0 -315
- package/docs/releases/RELEASE_CHECKLIST_v1.7.6.md +0 -389
- package/docs/releases/RELEASE_CHECKLIST_v1.8.0.md +0 -331
- package/docs/releases/RELEASE_CHECKLIST_v1.8.2.md +0 -309
- package/docs/releases/RELEASE_NOTES_1.7.0.md +0 -539
- package/docs/releases/RELEASE_NOTES_1.8.10.md +0 -239
- package/docs/releases/RELEASE_NOTES_1.8.9.md +0 -213
- package/docs/releases/RELEASE_NOTES_v1.8.0.md +0 -685
- package/docs/releases/RELEASE_NOTES_v1.8.1.md +0 -221
- package/docs/releases/RELEASE_NOTES_v1.8.2.md +0 -421
- package/docs/releases/RELEASE_NOTES_v1.8.3.md +0 -292
- package/docs/releases/RELEASE_NOTES_v1.8.4.md +0 -277
- package/docs/releases/RELEASE_NOTES_v1.8.6.md +0 -205
- package/docs/releases/RELEASE_NOTES_v1.8.7.md +0 -184
- package/docs/releases/RELEASE_PLAN_v1.7.6.md +0 -816
- package/docs/releases/RELEASE_SUMMARY_1.8.10.md +0 -193
- package/docs/releases/RELEASE_SUMMARY_v1.7.4.md +0 -276
- package/docs/releases/RELEASE_SUMMARY_v1.7.5.md +0 -322
- package/docs/releases/RELEASE_SUMMARY_v1.7.6.md +0 -436
- package/docs/releases/RELEASE_SUMMARY_v1.7.7.md +0 -391
- package/docs/releases/RELEASE_SUMMARY_v1.7.8.md +0 -523
- package/docs/releases/RELEASE_SUMMARY_v1.7.9.md +0 -542
- package/docs/troubleshooting/ARDUINO_IDE_VERSION_FIX_SUMMARY.md +0 -229
- package/docs/troubleshooting/ARDUINO_LIBRARY_NAME_FIX.md +0 -197
- package/docs/troubleshooting/CRASH_QUICK_REF.md +0 -93
- package/docs/troubleshooting/ESP32_C6_COMPATIBILITY.md +0 -157
- package/docs/troubleshooting/FREERTOS_ASSERTION_FAILURE.md +0 -288
- package/docs/troubleshooting/FREERTOS_FIX_IMPLEMENTATION.md +0 -267
- package/docs/troubleshooting/NPM_PUBLISHING_ISSUE_SUMMARY.md +0 -110
- package/docs/troubleshooting/PAINLESSMESH_V1.7.4_COMPILATION_ISSUES.md +0 -547
- package/docs/troubleshooting/QUICK_FIX_FREERTOS.md +0 -164
- package/docs/troubleshooting/SENSOR_NODE_CONNECTION_CRASH.md +0 -264
- package/docs/troubleshooting/station-reconnection-issues.md +0 -172
- package/docs/v1.7.7_MQTT_IMPROVEMENTS.md +0 -794
- package/docs/wiki/API-Reference.md +0 -246
- package/docs/wiki/Complete-Documentation.md +0 -123
- package/examples/alteriomImproved/alteriom_sensor_package.hpp +0 -224
- package/examples/alteriomImproved/improved_sensor_node.ino +0 -248
- package/examples/alteriomImproved/platformio.ini +0 -32
- package/examples/alteriomMetricsHealth/alteriom_sensor_package.hpp +0 -796
- package/examples/alteriomMetricsHealth/metrics_health_node.ino +0 -429
- package/examples/alteriomMetricsHealth/platformio.ini +0 -26
- package/examples/alteriomPhase1/alteriom_sensor_package.hpp +0 -224
- package/examples/alteriomPhase1/phase1_features.ino +0 -242
- package/examples/alteriomPhase1/platformio.ini +0 -26
- package/examples/alteriomPhase2/alteriom_sensor_package.hpp +0 -224
- package/examples/alteriomPhase2/phase2_features.ino +0 -186
- package/examples/alteriomPhase2/platformio.ini +0 -26
- package/examples/alteriomSensorNode/alteriom_sensor_node.ino +0 -186
- package/examples/alteriomSensorNode/alteriom_sensor_package.hpp +0 -1227
- package/examples/alteriomSensorNode/platformio.ini +0 -26
- package/examples/bridge/alteriom_sensor_package.hpp +0 -1170
- package/examples/bridge/bridge_health_monitoring_example.ino +0 -188
- package/examples/bridge/enhanced_mqtt_bridge.hpp +0 -610
- package/examples/bridge/enhanced_mqtt_bridge_example.ino +0 -226
- package/examples/bridge/mesh_event_publisher.hpp +0 -253
- package/examples/bridge/mesh_topology_reporter.hpp +0 -303
- package/examples/bridge/mqtt_command_bridge.hpp +0 -459
- package/examples/bridge/mqtt_status_bridge.hpp +0 -519
- package/examples/bridgeAwareSensorNode/alteriom_sensor_package.hpp +0 -1227
- package/examples/bridgeAwareSensorNode/bridgeAwareSensorNode.ino +0 -342
- package/examples/bridgeAwareSensorNode/platformio.ini +0 -26
- package/examples/diagnosticsExample/diagnosticsExample.ino +0 -171
- package/examples/diagnosticsExample/platformio.ini +0 -26
- package/examples/echoNode/echoNode.ino +0 -33
- package/examples/echoNode/platformio.ini +0 -26
- package/examples/meshCommandNode/alteriom_sensor_package.hpp +0 -235
- package/examples/meshCommandNode/meshCommandNode.ino +0 -265
- package/examples/mqttCommandBridge/alteriom_sensor_package.hpp +0 -235
- package/examples/mqttCommandBridge/mesh_event_publisher.hpp +0 -253
- package/examples/mqttCommandBridge/mesh_topology_reporter.hpp +0 -303
- package/examples/mqttCommandBridge/mqttCommandBridge.ino +0 -254
- package/examples/mqttCommandBridge/mqtt_command_bridge.hpp +0 -462
- package/examples/mqttCommandBridge/platformio.ini +0 -27
- package/examples/mqttStatusBridge/mqttStatusBridge.ino +0 -218
- package/examples/mqttStatusBridge/mqtt_status_bridge.hpp +0 -522
- package/examples/mqttStatusBridge/platformio.ini +0 -27
- package/examples/mqttTopologyTest/README.md +0 -467
- package/examples/mqttTopologyTest/mqttTopologyTest.ino +0 -754
- package/examples/mqttTopologyTest/platformio.ini +0 -27
- package/examples/multi_bridge/README.md +0 -346
- package/examples/multi_bridge/primary_bridge.ino +0 -96
- package/examples/multi_bridge/regular_node.ino +0 -141
- package/examples/multi_bridge/secondary_bridge.ino +0 -111
- package/examples/ntpTimeSyncBridge/alteriom_sensor_package.hpp +0 -1383
- package/examples/ntpTimeSyncBridge/ntpTimeSyncBridge.ino +0 -86
- package/examples/ntpTimeSyncNode/alteriom_sensor_package.hpp +0 -1383
- package/examples/ntpTimeSyncNode/ntpTimeSyncNode.ino +0 -109
- package/examples/queued_alarms/README.md +0 -390
- package/examples/queued_alarms/queued_alarms.ino +0 -265
- package/examples/routing_demo/README.md +0 -172
- package/examples/routing_demo/routing_demo.ino +0 -102
- package/examples/rtcIntegration/README.md +0 -294
- package/examples/rtcIntegration/rtcIntegration.ino +0 -210
|
@@ -1,213 +0,0 @@
|
|
|
1
|
-
# Version Management in AlteriomPainlessMesh
|
|
2
|
-
|
|
3
|
-
This document explains how versioning works in the AlteriomPainlessMesh library and clarifies common questions about version numbers in different files.
|
|
4
|
-
|
|
5
|
-
## 📋 Version Number Locations
|
|
6
|
-
|
|
7
|
-
The library version is maintained in multiple files across the repository:
|
|
8
|
-
|
|
9
|
-
### 1. **Official Version Files** (Source of Truth)
|
|
10
|
-
|
|
11
|
-
These files define the official library version:
|
|
12
|
-
|
|
13
|
-
- **`library.properties`** - Arduino Library Manager version
|
|
14
|
-
- **`library.json`** - PlatformIO Library Registry version
|
|
15
|
-
- **`package.json`** - NPM package version
|
|
16
|
-
|
|
17
|
-
**All three files must always have the same version number.**
|
|
18
|
-
|
|
19
|
-
### 2. **Header File Version Comments** (Documentation)
|
|
20
|
-
|
|
21
|
-
These are **documentation comments** that indicate when the header file documentation was last updated:
|
|
22
|
-
|
|
23
|
-
- **`src/painlessMesh.h`** - `@version` in header comment
|
|
24
|
-
- **`src/AlteriomPainlessMesh.h`** - `ALTERIOM_PAINLESS_MESH_VERSION` defines
|
|
25
|
-
|
|
26
|
-
**Important:** Version numbers in header file comments reflect the overall library version at the time the header was documented, not file-specific versioning.
|
|
27
|
-
|
|
28
|
-
## ❓ Common Questions
|
|
29
|
-
|
|
30
|
-
### Q: Does the version in `painlessMesh.h` mean the file hasn't changed since that version?
|
|
31
|
-
|
|
32
|
-
**A: No.** The version comment in header files indicates the library version when the header documentation was last reviewed/updated, not the last time the file was modified.
|
|
33
|
-
|
|
34
|
-
**Example:**
|
|
35
|
-
```cpp
|
|
36
|
-
/**
|
|
37
|
-
* @file painlessMesh.h
|
|
38
|
-
* @version 1.8.7
|
|
39
|
-
* @date 2025-11-12
|
|
40
|
-
*/
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
This means:
|
|
44
|
-
- ✅ The library version is 1.8.7
|
|
45
|
-
- ✅ The header documentation is current as of version 1.8.7
|
|
46
|
-
- ❌ It does NOT mean the file hasn't been modified since 1.8.7
|
|
47
|
-
|
|
48
|
-
### Q: Why might header version comments be out of sync?
|
|
49
|
-
|
|
50
|
-
**A:** During rapid development, header file documentation may not be updated every release. The comments are updated when:
|
|
51
|
-
- Significant API changes are made
|
|
52
|
-
- Documentation requires updating
|
|
53
|
-
- Major version milestones are reached
|
|
54
|
-
- Version consistency review is performed
|
|
55
|
-
|
|
56
|
-
### Q: Which version number should I trust?
|
|
57
|
-
|
|
58
|
-
**A:** Always refer to the official version files:
|
|
59
|
-
1. `library.properties` - Official Arduino version
|
|
60
|
-
2. `library.json` - Official PlatformIO version
|
|
61
|
-
3. `package.json` - Official NPM version
|
|
62
|
-
4. GitHub releases - Tagged release versions
|
|
63
|
-
|
|
64
|
-
Header file comments are for documentation reference only.
|
|
65
|
-
|
|
66
|
-
## 🔄 Version Update Process
|
|
67
|
-
|
|
68
|
-
### When Releasing a New Version:
|
|
69
|
-
|
|
70
|
-
1. **Update Official Version Files** (required)
|
|
71
|
-
```bash
|
|
72
|
-
./scripts/bump-version.sh patch # or minor, major
|
|
73
|
-
```
|
|
74
|
-
This updates: `library.properties`, `library.json`, `package.json`
|
|
75
|
-
|
|
76
|
-
2. **Update CHANGELOG.md** (required)
|
|
77
|
-
- Move items from `[Unreleased]` to new version section
|
|
78
|
-
- Add release date
|
|
79
|
-
|
|
80
|
-
3. **Update Header File Comments** (recommended)
|
|
81
|
-
- Update `@version` in `src/painlessMesh.h`
|
|
82
|
-
- Update version defines in `src/AlteriomPainlessMesh.h`
|
|
83
|
-
|
|
84
|
-
4. **Commit and Tag** (required)
|
|
85
|
-
```bash
|
|
86
|
-
git commit -m "release: vX.Y.Z - Brief description"
|
|
87
|
-
git push origin main
|
|
88
|
-
```
|
|
89
|
-
GitHub Actions will automatically create the tag.
|
|
90
|
-
|
|
91
|
-
## 📝 Version Comment Best Practices
|
|
92
|
-
|
|
93
|
-
### In Header Files:
|
|
94
|
-
|
|
95
|
-
**Good Practice:**
|
|
96
|
-
```cpp
|
|
97
|
-
/**
|
|
98
|
-
* @file painlessMesh.h
|
|
99
|
-
* @brief Main header file for Alteriom painlessMesh library
|
|
100
|
-
*
|
|
101
|
-
* @version 1.8.7
|
|
102
|
-
* @date 2025-11-12
|
|
103
|
-
*
|
|
104
|
-
* painlessMesh is a user-friendly library for creating mesh networks...
|
|
105
|
-
*/
|
|
106
|
-
```
|
|
107
|
-
|
|
108
|
-
**What This Means:**
|
|
109
|
-
- The library is at version 1.8.7
|
|
110
|
-
- Header documentation was reviewed/updated on 2025-11-12
|
|
111
|
-
- Always synchronized with library version during releases
|
|
112
|
-
|
|
113
|
-
### In Implementation Files:
|
|
114
|
-
|
|
115
|
-
Implementation files (`.cpp`, `.hpp`) typically do not need version comments. Version information in these files can be misleading and is unnecessary since:
|
|
116
|
-
- Git history tracks all changes with timestamps
|
|
117
|
-
- Version is centrally managed in the official version files
|
|
118
|
-
- Per-file versioning creates maintenance overhead
|
|
119
|
-
|
|
120
|
-
## 🎯 Version Management Workflow
|
|
121
|
-
|
|
122
|
-
### Developer Workflow:
|
|
123
|
-
|
|
124
|
-
1. **Check Current Version**
|
|
125
|
-
```bash
|
|
126
|
-
grep "version=" library.properties
|
|
127
|
-
```
|
|
128
|
-
|
|
129
|
-
2. **Make Changes**
|
|
130
|
-
- Implement features/fixes
|
|
131
|
-
- Update documentation as needed
|
|
132
|
-
- Add entries to CHANGELOG.md under `[Unreleased]`
|
|
133
|
-
|
|
134
|
-
3. **Prepare Release**
|
|
135
|
-
```bash
|
|
136
|
-
./scripts/release-agent.sh # Validate release readiness
|
|
137
|
-
./scripts/bump-version.sh patch # Update version
|
|
138
|
-
```
|
|
139
|
-
|
|
140
|
-
4. **Update Documentation**
|
|
141
|
-
- Review and update header file version comments
|
|
142
|
-
- Ensure CHANGELOG.md has the new version section
|
|
143
|
-
- Verify all documentation references are current
|
|
144
|
-
|
|
145
|
-
5. **Release**
|
|
146
|
-
```bash
|
|
147
|
-
git add library.properties library.json package.json CHANGELOG.md src/*.h
|
|
148
|
-
git commit -m "release: v1.8.7 - Brief description"
|
|
149
|
-
git push origin main
|
|
150
|
-
```
|
|
151
|
-
|
|
152
|
-
### Automated Process:
|
|
153
|
-
|
|
154
|
-
GitHub Actions automatically handles:
|
|
155
|
-
- ✅ Git tag creation
|
|
156
|
-
- ✅ GitHub release with notes
|
|
157
|
-
- ✅ NPM publishing
|
|
158
|
-
- ✅ PlatformIO registry update
|
|
159
|
-
- ✅ Documentation deployment
|
|
160
|
-
|
|
161
|
-
## 🔍 Version History Tracking
|
|
162
|
-
|
|
163
|
-
### To Check File History:
|
|
164
|
-
|
|
165
|
-
Use Git to see actual file modification history:
|
|
166
|
-
|
|
167
|
-
```bash
|
|
168
|
-
# See all commits that modified a file
|
|
169
|
-
git log --oneline -- src/painlessMesh.h
|
|
170
|
-
|
|
171
|
-
# See detailed changes to a file
|
|
172
|
-
git log -p -- src/painlessMesh.h
|
|
173
|
-
|
|
174
|
-
# See when a file was last modified
|
|
175
|
-
git log -1 --format="%ai %an" -- src/painlessMesh.h
|
|
176
|
-
```
|
|
177
|
-
|
|
178
|
-
### To Check Version History:
|
|
179
|
-
|
|
180
|
-
```bash
|
|
181
|
-
# List all version tags
|
|
182
|
-
git tag -l "v*"
|
|
183
|
-
|
|
184
|
-
# See changes in a specific version
|
|
185
|
-
git show v1.8.7
|
|
186
|
-
|
|
187
|
-
# Compare two versions
|
|
188
|
-
git diff v1.8.6..v1.8.7
|
|
189
|
-
```
|
|
190
|
-
|
|
191
|
-
## 📚 Related Documentation
|
|
192
|
-
|
|
193
|
-
- **[CHANGELOG.md](../CHANGELOG.md)** - Complete version history with changes
|
|
194
|
-
- **[RELEASE_GUIDE.md](../RELEASE_GUIDE.md)** - Detailed release process
|
|
195
|
-
- **[GitHub Releases](https://github.com/Alteriom/painlessMesh/releases)** - Official release notes
|
|
196
|
-
|
|
197
|
-
## 🎓 Summary
|
|
198
|
-
|
|
199
|
-
**Key Takeaways:**
|
|
200
|
-
|
|
201
|
-
1. **Official version** = `library.properties` / `library.json` / `package.json`
|
|
202
|
-
2. **Header comments** = Documentation reference, not file-specific versions
|
|
203
|
-
3. **Git history** = Actual source of truth for file modifications
|
|
204
|
-
4. **CHANGELOG.md** = Human-readable version history
|
|
205
|
-
5. **GitHub releases** = Tagged versions with release notes
|
|
206
|
-
|
|
207
|
-
**When in doubt:** Check `library.properties` for the official library version, and use `git log` to see actual file modification history.
|
|
208
|
-
|
|
209
|
-
---
|
|
210
|
-
|
|
211
|
-
**Version Management Process Owner:** @Alteriom
|
|
212
|
-
**Last Updated:** 2025-11-12
|
|
213
|
-
**Document Version:** 1.0
|
|
@@ -1,166 +0,0 @@
|
|
|
1
|
-
# GitHub Pages Deployment Guide
|
|
2
|
-
|
|
3
|
-
This guide explains how to deploy the Docusaurus documentation site to GitHub Pages.
|
|
4
|
-
|
|
5
|
-
## 🚀 Deployment Steps
|
|
6
|
-
|
|
7
|
-
### 1. Enable GitHub Pages
|
|
8
|
-
|
|
9
|
-
1. Go to your repository on GitHub: `https://github.com/Alteriom/painlessMesh`
|
|
10
|
-
2. Click **Settings** tab
|
|
11
|
-
3. Scroll down to **Pages** section
|
|
12
|
-
4. Under **Source**, select **GitHub Actions**
|
|
13
|
-
5. Save the changes
|
|
14
|
-
|
|
15
|
-
### 2. Commit and Push Changes
|
|
16
|
-
|
|
17
|
-
```bash
|
|
18
|
-
# Add all changes
|
|
19
|
-
git add .
|
|
20
|
-
|
|
21
|
-
# Commit the Docusaurus setup
|
|
22
|
-
git commit -m "feat: Add Docusaurus documentation site
|
|
23
|
-
|
|
24
|
-
- Replace basic HTML generation with modern Docusaurus
|
|
25
|
-
- Add GitHub Actions workflow for automated deployment
|
|
26
|
-
- Include Alteriom package documentation
|
|
27
|
-
- Integrate Doxygen API docs with user guides
|
|
28
|
-
- Enable responsive design and built-in search
|
|
29
|
-
|
|
30
|
-
Closes: Documentation modernization initiative"
|
|
31
|
-
|
|
32
|
-
# Push to trigger deployment
|
|
33
|
-
git push origin main
|
|
34
|
-
```
|
|
35
|
-
|
|
36
|
-
### 3. Monitor Deployment
|
|
37
|
-
|
|
38
|
-
1. Go to **Actions** tab in your repository
|
|
39
|
-
2. Watch the **Documentation** workflow run
|
|
40
|
-
3. When complete, your site will be available at:
|
|
41
|
-
- **URL**: `https://alteriom.github.io/painlessMesh/`
|
|
42
|
-
|
|
43
|
-
## 🛠️ Local Development
|
|
44
|
-
|
|
45
|
-
### Start Development Server
|
|
46
|
-
|
|
47
|
-
```bash
|
|
48
|
-
cd website
|
|
49
|
-
npm start
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
Visit: `http://localhost:3000/painlessMesh/`
|
|
53
|
-
|
|
54
|
-
### Build for Production
|
|
55
|
-
|
|
56
|
-
```bash
|
|
57
|
-
cd website
|
|
58
|
-
npm run build
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
### Test Production Build
|
|
62
|
-
|
|
63
|
-
```bash
|
|
64
|
-
cd website
|
|
65
|
-
npm run serve
|
|
66
|
-
```
|
|
67
|
-
|
|
68
|
-
## 📁 Documentation Structure
|
|
69
|
-
|
|
70
|
-
```
|
|
71
|
-
website/
|
|
72
|
-
├── docs/ # Main documentation
|
|
73
|
-
│ ├── intro.md # Homepage content
|
|
74
|
-
│ ├── getting-started/ # Installation & quickstart
|
|
75
|
-
│ ├── api/ # API reference
|
|
76
|
-
│ ├── alteriom/ # Alteriom extensions
|
|
77
|
-
│ ├── tutorials/ # Usage examples
|
|
78
|
-
│ ├── architecture/ # Technical details
|
|
79
|
-
│ ├── advanced/ # Advanced topics
|
|
80
|
-
│ └── troubleshooting/ # Help & FAQ
|
|
81
|
-
├── static/ # Static assets
|
|
82
|
-
│ └── api/ # Doxygen API docs (auto-generated)
|
|
83
|
-
├── docusaurus.config.ts # Main configuration
|
|
84
|
-
└── sidebars.ts # Navigation structure
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
## 🔄 Workflow Overview
|
|
88
|
-
|
|
89
|
-
The GitHub Actions workflow:
|
|
90
|
-
|
|
91
|
-
1. **Checkout** repository code
|
|
92
|
-
2. **Setup Node.js** for Docusaurus
|
|
93
|
-
3. **Install Doxygen** for API documentation
|
|
94
|
-
4. **Generate API docs** using existing Doxygen config
|
|
95
|
-
5. **Install dependencies** for Docusaurus
|
|
96
|
-
6. **Integrate Doxygen** output with Docusaurus
|
|
97
|
-
7. **Build site** for production
|
|
98
|
-
8. **Deploy** to GitHub Pages
|
|
99
|
-
|
|
100
|
-
## 🎯 Benefits Over Previous System
|
|
101
|
-
|
|
102
|
-
| Feature | Old System | **New Docusaurus** |
|
|
103
|
-
|---------|------------|-------------------|
|
|
104
|
-
| **Search** | ❌ None | ✅ Built-in Algolia search |
|
|
105
|
-
| **Mobile** | ❌ Poor responsive | ✅ Perfect mobile experience |
|
|
106
|
-
| **Navigation** | ❌ Manual links | ✅ Auto-generated sidebar |
|
|
107
|
-
| **Performance** | ❌ Slow page loads | ✅ Single-page app speed |
|
|
108
|
-
| **Maintenance** | ❌ Manual HTML generation | ✅ Pure Markdown workflow |
|
|
109
|
-
| **Link validation** | ❌ Broken links undetected | ✅ Automatic validation |
|
|
110
|
-
| **Versioning** | ❌ Not supported | ✅ Multiple library versions |
|
|
111
|
-
| **API integration** | ❌ Separate Doxygen site | ✅ Seamless integration |
|
|
112
|
-
|
|
113
|
-
## 🔧 Customization
|
|
114
|
-
|
|
115
|
-
### Adding New Pages
|
|
116
|
-
|
|
117
|
-
1. Create `.md` files in appropriate `docs/` subdirectory
|
|
118
|
-
2. Update `sidebars.ts` to include in navigation
|
|
119
|
-
3. Commit and push - automatic deployment
|
|
120
|
-
|
|
121
|
-
### Modifying Branding
|
|
122
|
-
|
|
123
|
-
Edit `docusaurus.config.ts`:
|
|
124
|
-
- `title`: Site title
|
|
125
|
-
- `tagline`: Site description
|
|
126
|
-
- `favicon`: Icon file
|
|
127
|
-
- `themeConfig.navbar`: Navigation menu
|
|
128
|
-
- `themeConfig.footer`: Footer content
|
|
129
|
-
|
|
130
|
-
### Custom Styling
|
|
131
|
-
|
|
132
|
-
Edit `src/css/custom.css` for custom styles and branding.
|
|
133
|
-
|
|
134
|
-
## 🚨 Troubleshooting
|
|
135
|
-
|
|
136
|
-
### Build Fails
|
|
137
|
-
|
|
138
|
-
1. Check **Actions** tab for error details
|
|
139
|
-
2. Verify all referenced files exist in sidebars
|
|
140
|
-
3. Ensure Markdown syntax is valid
|
|
141
|
-
|
|
142
|
-
### Pages Not Deploying
|
|
143
|
-
|
|
144
|
-
1. Verify **GitHub Pages** is set to **GitHub Actions**
|
|
145
|
-
2. Check repository permissions
|
|
146
|
-
3. Ensure workflow has **Pages write** permission
|
|
147
|
-
|
|
148
|
-
### Links Broken
|
|
149
|
-
|
|
150
|
-
1. Use relative paths: `../other-page`
|
|
151
|
-
2. Verify file extensions: `.md` files become `.html`
|
|
152
|
-
3. Check sidebar configuration matches file structure
|
|
153
|
-
|
|
154
|
-
## 📞 Support
|
|
155
|
-
|
|
156
|
-
For issues with:
|
|
157
|
-
- **Docusaurus**: See [Docusaurus docs](https://docusaurus.io/)
|
|
158
|
-
- **GitHub Actions**: Check workflow logs in Actions tab
|
|
159
|
-
- **Content**: Create issues in repository
|
|
160
|
-
|
|
161
|
-
## 🎉 Next Steps
|
|
162
|
-
|
|
163
|
-
1. **Enable search**: Configure Algolia search index
|
|
164
|
-
2. **Add analytics**: Integrate Google Analytics
|
|
165
|
-
3. **Custom domain**: Set up custom domain if desired
|
|
166
|
-
4. **Content migration**: Move remaining docs from `/docs` folder
|
|
@@ -1,337 +0,0 @@
|
|
|
1
|
-
# Feature Proposals: OTA and Status Enhancements
|
|
2
|
-
|
|
3
|
-
**Status:** 📋 Proposal - Awaiting Review
|
|
4
|
-
**Type:** Enhancement
|
|
5
|
-
**Impact:** High
|
|
6
|
-
**Effort:** Medium-High
|
|
7
|
-
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
## 🎯 Overview
|
|
11
|
-
|
|
12
|
-
This proposal explores comprehensive enhancements to painlessMesh for production IoT deployments, focusing on two critical areas:
|
|
13
|
-
|
|
14
|
-
1. **Enhanced OTA Distribution** - More efficient, reliable, and scalable firmware updates across mesh networks
|
|
15
|
-
2. **Mesh Network Status Monitoring** - Comprehensive health monitoring and diagnostic capabilities
|
|
16
|
-
|
|
17
|
-
---
|
|
18
|
-
|
|
19
|
-
## 📚 Documentation Index
|
|
20
|
-
|
|
21
|
-
### Quick Start
|
|
22
|
-
- **[Quick Reference Guide](ota-status-quick-reference.md)** ⚡ - Start here for TL;DR with decision matrices
|
|
23
|
-
- **[Architecture Diagrams](ota-status-architecture-diagrams.md)** 📊 - Visual understanding of each option
|
|
24
|
-
|
|
25
|
-
### Complete Analysis
|
|
26
|
-
- **[Full Proposal](ota-and-status-enhancements.md)** 📖 - Comprehensive 50+ page analysis with:
|
|
27
|
-
- Detailed examination of current implementation
|
|
28
|
-
- 5 OTA enhancement options with pros/cons
|
|
29
|
-
- 5 status monitoring options with pros/cons
|
|
30
|
-
- Implementation details and code examples
|
|
31
|
-
- Risk assessment and mitigation strategies
|
|
32
|
-
- Phased rollout recommendations
|
|
33
|
-
|
|
34
|
-
---
|
|
35
|
-
|
|
36
|
-
## 🚀 At a Glance
|
|
37
|
-
|
|
38
|
-
### OTA Enhancement Options
|
|
39
|
-
|
|
40
|
-
| Option | Description | Speed | Memory | Best For |
|
|
41
|
-
|--------|-------------|-------|--------|----------|
|
|
42
|
-
| **1E: Compression** ⭐⭐⭐⭐⭐ | Gzip firmware transfers | ⭐⭐⭐⭐ | +4-8KB | Everyone (start here) |
|
|
43
|
-
| **1A: Broadcast** ⭐⭐⭐⭐ | Mesh-wide simultaneous distribution | ⭐⭐⭐⭐⭐ | +2-5KB | Medium-large meshes |
|
|
44
|
-
| **1B: Progressive** ⭐⭐⭐⭐ | Phased rollout with safety checks | ⭐⭐ | +3-7KB | Production safety |
|
|
45
|
-
| 1C: Peer-to-Peer | Viral propagation via updated nodes | ⭐⭐⭐⭐⭐ | +200KB | Very large meshes |
|
|
46
|
-
| 1D: MQTT Bridge | Cloud-managed OTA via MQTT | ⭐⭐⭐ | +5-10KB | MQTT infrastructure |
|
|
47
|
-
|
|
48
|
-
### Status Monitoring Options
|
|
49
|
-
|
|
50
|
-
| Option | Description | Real-time | Overhead | Best For |
|
|
51
|
-
|--------|-------------|-----------|----------|----------|
|
|
52
|
-
| **2A: Enhanced Package** ⭐⭐⭐⭐⭐ | Extended Alteriom StatusPackage | ⭐⭐⭐ | Low | Simple integration |
|
|
53
|
-
| **2E: MQTT Bridge** ⭐⭐⭐⭐⭐ | Publish status to MQTT topics | ⭐⭐⭐ | Low | Cloud integration |
|
|
54
|
-
| **2B: Status Service** ⭐⭐⭐⭐ | Query-based status collection | ⭐⭐⭐ | Medium | Centralized control |
|
|
55
|
-
| 2C: Telemetry Stream | Continuous low-bandwidth updates | ⭐⭐⭐⭐⭐ | Very Low | Real-time critical |
|
|
56
|
-
| 2D: Health Dashboard | Complete web-based monitoring | ⭐⭐⭐⭐⭐ | Medium | User-facing apps |
|
|
57
|
-
|
|
58
|
-
---
|
|
59
|
-
|
|
60
|
-
## 🎯 Recommended Path
|
|
61
|
-
|
|
62
|
-
### ✅ Phase 1: Quick Wins (Weeks 3-4)
|
|
63
|
-
**Implement:** Options 1E + 2A
|
|
64
|
-
**Effort:** 3-4 weeks
|
|
65
|
-
**Value:** Immediate 40-60% OTA speed improvement + standardized status
|
|
66
|
-
|
|
67
|
-
```cpp
|
|
68
|
-
// Compressed OTA
|
|
69
|
-
mesh.offerOTA("sensor", "ESP32", md5, parts, false, false, true);
|
|
70
|
-
|
|
71
|
-
// Enhanced Status
|
|
72
|
-
alteriom::EnhancedStatusPackage status;
|
|
73
|
-
status.uptime = millis() / 1000;
|
|
74
|
-
status.freeMemory = ESP.getFreeHeap() / 1024;
|
|
75
|
-
mesh.sendBroadcast(status.toJsonString());
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
**Benefits:**
|
|
79
|
-
- ✅ Faster OTA distribution
|
|
80
|
-
- ✅ Lower network bandwidth usage
|
|
81
|
-
- ✅ Standardized status reporting
|
|
82
|
-
- ✅ Minimal risk, high reward
|
|
83
|
-
|
|
84
|
-
---
|
|
85
|
-
|
|
86
|
-
### ✅ Phase 2: Production Ready (Weeks 6-8)
|
|
87
|
-
**Implement:** Options 1A + 2E
|
|
88
|
-
**Effort:** 6-8 weeks
|
|
89
|
-
**Value:** Scalable OTA + professional monitoring
|
|
90
|
-
|
|
91
|
-
```cpp
|
|
92
|
-
// Broadcast OTA
|
|
93
|
-
mesh.offerOTA("sensor", "ESP32", md5, parts, false, true);
|
|
94
|
-
|
|
95
|
-
// MQTT Status
|
|
96
|
-
MqttStatusBridge bridge(mesh, mqttClient);
|
|
97
|
-
bridge.setPublishInterval(30000);
|
|
98
|
-
bridge.begin();
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
**Benefits:**
|
|
102
|
-
- ✅ Scales to large meshes (50+ nodes)
|
|
103
|
-
- ✅ Cloud integration via MQTT
|
|
104
|
-
- ✅ Professional monitoring tools (Grafana, InfluxDB)
|
|
105
|
-
- ✅ Enterprise-ready features
|
|
106
|
-
|
|
107
|
-
---
|
|
108
|
-
|
|
109
|
-
### ✅ Phase 3: Advanced (Months 3-4)
|
|
110
|
-
**Implement:** Options 1B + 2C
|
|
111
|
-
**Effort:** 3-4 months
|
|
112
|
-
**Value:** Production-safe updates + real-time monitoring
|
|
113
|
-
|
|
114
|
-
```cpp
|
|
115
|
-
// Progressive Rollout
|
|
116
|
-
ProgressiveOTA ota(mesh);
|
|
117
|
-
ota.setPhases({0.05, 0.20, 1.0}); // 5%, 20%, 100%
|
|
118
|
-
ota.setHealthCheck(checkNodeHealth);
|
|
119
|
-
ota.begin("sensor", "ESP32", md5);
|
|
120
|
-
|
|
121
|
-
// Telemetry Stream
|
|
122
|
-
TelemetryStream telemetry(mesh);
|
|
123
|
-
telemetry.setInterval(60000); // 60s
|
|
124
|
-
telemetry.begin();
|
|
125
|
-
```
|
|
126
|
-
|
|
127
|
-
**Benefits:**
|
|
128
|
-
- ✅ Zero-downtime updates
|
|
129
|
-
- ✅ Early failure detection
|
|
130
|
-
- ✅ Real-time anomaly detection
|
|
131
|
-
- ✅ Proactive alerting
|
|
132
|
-
|
|
133
|
-
---
|
|
134
|
-
|
|
135
|
-
## 📊 Expected Results
|
|
136
|
-
|
|
137
|
-
### OTA Improvements
|
|
138
|
-
|
|
139
|
-
**Current State:**
|
|
140
|
-
- Update time: 60-120s for 10 nodes
|
|
141
|
-
- Network usage: N × Firmware_Size
|
|
142
|
-
- Success rate: ~85%
|
|
143
|
-
|
|
144
|
-
**After Phase 1 (Compression):**
|
|
145
|
-
- Update time: 35-70s (40% faster)
|
|
146
|
-
- Network usage: 0.5 × N × Firmware_Size
|
|
147
|
-
- Success rate: ~90%
|
|
148
|
-
|
|
149
|
-
**After Phase 2 (Broadcast + Compression):**
|
|
150
|
-
- Update time: 15-30s (75% faster)
|
|
151
|
-
- Network usage: 1 × Firmware_Size (regardless of node count)
|
|
152
|
-
- Success rate: ~95%
|
|
153
|
-
|
|
154
|
-
### Status Monitoring
|
|
155
|
-
|
|
156
|
-
**Current State:**
|
|
157
|
-
- Manual status collection
|
|
158
|
-
- No standardization
|
|
159
|
-
- Application-specific implementation
|
|
160
|
-
|
|
161
|
-
**After Phase 1 (Enhanced Package):**
|
|
162
|
-
- Standardized status format
|
|
163
|
-
- Integration with metrics system
|
|
164
|
-
- 500 bytes overhead per update
|
|
165
|
-
|
|
166
|
-
**After Phase 2 (MQTT Bridge):**
|
|
167
|
-
- Cloud integration
|
|
168
|
-
- Integration with standard tools
|
|
169
|
-
- Historical data tracking
|
|
170
|
-
- Alert management
|
|
171
|
-
|
|
172
|
-
---
|
|
173
|
-
|
|
174
|
-
## 🎓 Decision Guide
|
|
175
|
-
|
|
176
|
-
### "Which OTA option should I choose?"
|
|
177
|
-
|
|
178
|
-
**Start with:** 1E (Compression)
|
|
179
|
-
- Universal benefit (40-60% faster)
|
|
180
|
-
- Low complexity
|
|
181
|
-
- Works with existing infrastructure
|
|
182
|
-
|
|
183
|
-
**Add 1A (Broadcast) if:**
|
|
184
|
-
- Mesh has 10+ nodes
|
|
185
|
-
- Frequent OTA updates
|
|
186
|
-
- Network congestion is an issue
|
|
187
|
-
|
|
188
|
-
**Add 1B (Progressive) if:**
|
|
189
|
-
- Production deployment
|
|
190
|
-
- Cannot afford downtime
|
|
191
|
-
- Need safety guarantees
|
|
192
|
-
|
|
193
|
-
**Consider 1C (P2P) if:**
|
|
194
|
-
- Very large mesh (50+ nodes)
|
|
195
|
-
- Nodes have sufficient flash (ESP32)
|
|
196
|
-
- Need fastest possible distribution
|
|
197
|
-
|
|
198
|
-
**Use 1D (MQTT) if:**
|
|
199
|
-
- Already using MQTT infrastructure
|
|
200
|
-
- Need cloud-based management
|
|
201
|
-
- External OTA tools required
|
|
202
|
-
|
|
203
|
-
### "Which status option should I choose?"
|
|
204
|
-
|
|
205
|
-
**Start with:** 2A (Enhanced StatusPackage)
|
|
206
|
-
- Easiest integration
|
|
207
|
-
- Builds on existing Alteriom packages
|
|
208
|
-
- Minimal changes required
|
|
209
|
-
|
|
210
|
-
**Add 2E (MQTT Bridge) if:**
|
|
211
|
-
- Need cloud monitoring
|
|
212
|
-
- Using monitoring tools (Grafana, etc.)
|
|
213
|
-
- Want historical data
|
|
214
|
-
|
|
215
|
-
**Use 2B (Status Service) if:**
|
|
216
|
-
- Need centralized aggregation
|
|
217
|
-
- On-demand queries preferred
|
|
218
|
-
- RESTful API required
|
|
219
|
-
|
|
220
|
-
**Use 2C (Telemetry) if:**
|
|
221
|
-
- Real-time monitoring critical
|
|
222
|
-
- Large-scale deployment (50+ nodes)
|
|
223
|
-
- Proactive alerting needed
|
|
224
|
-
|
|
225
|
-
**Use 2D (Dashboard) if:**
|
|
226
|
-
- User-facing application
|
|
227
|
-
- Need visual interface
|
|
228
|
-
- Web-based monitoring required
|
|
229
|
-
|
|
230
|
-
---
|
|
231
|
-
|
|
232
|
-
## ⚠️ Important Notes
|
|
233
|
-
|
|
234
|
-
### For OTA Implementation
|
|
235
|
-
|
|
236
|
-
**Always remember:**
|
|
237
|
-
- ✅ Include OTA support in updated firmware (prevents bricking)
|
|
238
|
-
- ✅ Test on single node before mesh-wide deployment
|
|
239
|
-
- ✅ Implement rollback mechanism for failures
|
|
240
|
-
- ✅ Use MD5 validation for firmware integrity
|
|
241
|
-
- ✅ Consider progressive rollout for production
|
|
242
|
-
|
|
243
|
-
**Common pitfalls:**
|
|
244
|
-
- ❌ Updating all nodes simultaneously without testing
|
|
245
|
-
- ❌ Forgetting OTA support in new firmware
|
|
246
|
-
- ❌ Skipping MD5 validation
|
|
247
|
-
- ❌ No rollback plan
|
|
248
|
-
|
|
249
|
-
### For Status Monitoring
|
|
250
|
-
|
|
251
|
-
**Always remember:**
|
|
252
|
-
- ✅ Choose appropriate update intervals (30-60s typical)
|
|
253
|
-
- ✅ Implement timeout handling for non-responsive nodes
|
|
254
|
-
- ✅ Monitor memory usage to prevent exhaustion
|
|
255
|
-
- ✅ Set up alerts for critical conditions
|
|
256
|
-
|
|
257
|
-
**Common pitfalls:**
|
|
258
|
-
- ❌ Polling status too frequently (causes congestion)
|
|
259
|
-
- ❌ Ignoring memory warnings (causes crashes)
|
|
260
|
-
- ❌ Assuming all nodes respond (timeouts happen)
|
|
261
|
-
- ❌ No historical data retention
|
|
262
|
-
|
|
263
|
-
---
|
|
264
|
-
|
|
265
|
-
## 🔄 Current Status
|
|
266
|
-
|
|
267
|
-
### Completed
|
|
268
|
-
- ✅ Analysis of current implementation
|
|
269
|
-
- ✅ Research of enhancement options
|
|
270
|
-
- ✅ Detailed proposal documentation
|
|
271
|
-
- ✅ Architecture diagrams
|
|
272
|
-
- ✅ Quick reference guide
|
|
273
|
-
|
|
274
|
-
### Next Steps
|
|
275
|
-
1. ⏳ Review proposal with team
|
|
276
|
-
2. ⏳ Approve Phase 1 features
|
|
277
|
-
3. ⏳ Create detailed design documents
|
|
278
|
-
4. ⏳ Set up test infrastructure
|
|
279
|
-
5. ⏳ Begin Phase 1 implementation
|
|
280
|
-
|
|
281
|
-
### Timeline
|
|
282
|
-
- **Weeks 1-2:** Review and approval
|
|
283
|
-
- **Weeks 3-6:** Phase 1 implementation
|
|
284
|
-
- **Weeks 7-12:** Phase 2 implementation
|
|
285
|
-
- **Months 4-6:** Phase 3 implementation
|
|
286
|
-
|
|
287
|
-
---
|
|
288
|
-
|
|
289
|
-
## 🤝 Contributing
|
|
290
|
-
|
|
291
|
-
Interested in implementing these features?
|
|
292
|
-
|
|
293
|
-
1. Read the full proposal: [ota-and-status-enhancements.md](ota-and-status-enhancements.md)
|
|
294
|
-
2. Review architecture: [ota-status-architecture-diagrams.md](ota-status-architecture-diagrams.md)
|
|
295
|
-
3. Check quick reference: [ota-status-quick-reference.md](ota-status-quick-reference.md)
|
|
296
|
-
4. Open a GitHub issue to discuss
|
|
297
|
-
5. Submit a pull request with implementation
|
|
298
|
-
|
|
299
|
-
---
|
|
300
|
-
|
|
301
|
-
## 📖 Related Resources
|
|
302
|
-
|
|
303
|
-
### In This Repository
|
|
304
|
-
- [Library Improvements Overview](README.md)
|
|
305
|
-
- [Metrics System](../../src/painlessmesh/metrics.hpp)
|
|
306
|
-
- [Alteriom Packages](../../examples/alteriom/alteriom_sensor_package.hpp)
|
|
307
|
-
- [OTA Sender Example](../../examples/otaSender/otaSender.ino)
|
|
308
|
-
- [OTA Receiver Example](../../examples/otaReceiver/otaReceiver.ino)
|
|
309
|
-
- [MQTT Bridge Example](../../examples/mqttBridge/mqttBridge.ino)
|
|
310
|
-
|
|
311
|
-
### Documentation
|
|
312
|
-
- [painlessMesh Architecture](../architecture/mesh-architecture.md)
|
|
313
|
-
- [Plugin System](../architecture/plugin-system.md)
|
|
314
|
-
- [API Reference](../api/core-api.md)
|
|
315
|
-
- [Troubleshooting](../troubleshooting/common-issues.md)
|
|
316
|
-
|
|
317
|
-
### External References
|
|
318
|
-
- ESP-IDF OTA Documentation
|
|
319
|
-
- ArduinoOTA Library
|
|
320
|
-
- MQTT Protocol Specification
|
|
321
|
-
- InfluxDB/Grafana Integration
|
|
322
|
-
|
|
323
|
-
---
|
|
324
|
-
|
|
325
|
-
## 📞 Contact
|
|
326
|
-
|
|
327
|
-
Questions or feedback?
|
|
328
|
-
|
|
329
|
-
- **GitHub Issues:** https://github.com/Alteriom/painlessMesh/issues
|
|
330
|
-
- **Discussions:** https://github.com/Alteriom/painlessMesh/discussions
|
|
331
|
-
- **Email:** See CONTRIBUTING.md
|
|
332
|
-
|
|
333
|
-
---
|
|
334
|
-
|
|
335
|
-
**Last Updated:** December 2024
|
|
336
|
-
**Proposal Version:** 1.0
|
|
337
|
-
**Status:** Ready for Review
|