@alteriom/painlessmesh 1.8.15 → 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 +61 -1
- package/CONTRIBUTING.md +79 -0
- package/README.md +69 -144
- package/docs/README.md +1 -0
- package/docs/api/shared-gateway.md +1207 -0
- package/examples/bridge_failover/README.md +81 -0
- package/examples/bridge_failover/bridge_failover.ino +35 -4
- 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 -6
- package/src/arduino/wifi.hpp +342 -4
- 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/RELEASE_NOTES_1.8.15.md +0 -160
- package/RELEASE_READINESS_PLAN.md +0 -323
- package/TESTING_WITH_SIMULATOR.md +0 -259
- 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/BRIDGE_INITIALIZATION_FALLBACK.md +0 -357
- 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/SIMULATOR_TESTING.md +0 -408
- 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/common-architecture-mistakes.md +0 -438
- package/docs/troubleshooting/internet-access-faq.md +0 -299
- 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 -108
- package/examples/multi_bridge/regular_node.ino +0 -141
- package/examples/multi_bridge/secondary_bridge.ino +0 -123
- 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,123 +0,0 @@
|
|
|
1
|
-
//************************************************************
|
|
2
|
-
// Multi-Bridge Example: Secondary Bridge Node
|
|
3
|
-
//
|
|
4
|
-
// This example demonstrates a secondary bridge (priority 5) in a
|
|
5
|
-
// multi-bridge deployment. This provides hot standby redundancy
|
|
6
|
-
// and can handle load if the primary bridge is busy.
|
|
7
|
-
//
|
|
8
|
-
// Features demonstrated:
|
|
9
|
-
// - Secondary bridge with medium priority
|
|
10
|
-
// - Hot standby mode (always ready)
|
|
11
|
-
// - Automatic failover if primary fails
|
|
12
|
-
// - Load balancing support
|
|
13
|
-
//************************************************************
|
|
14
|
-
|
|
15
|
-
#include "painlessMesh.h"
|
|
16
|
-
|
|
17
|
-
#define MESH_PREFIX "MultiBridgeMesh"
|
|
18
|
-
#define MESH_PASSWORD "meshpassword"
|
|
19
|
-
#define MESH_PORT 5555
|
|
20
|
-
|
|
21
|
-
// Secondary router connection (backup Internet or different ISP)
|
|
22
|
-
#define ROUTER_SSID "SecondaryRouter"
|
|
23
|
-
#define ROUTER_PASSWORD "routerpass2"
|
|
24
|
-
|
|
25
|
-
Scheduler userScheduler;
|
|
26
|
-
painlessMesh mesh;
|
|
27
|
-
|
|
28
|
-
// Task to display bridge coordination status
|
|
29
|
-
Task taskBridgeStatus(10000, TASK_FOREVER, [](){
|
|
30
|
-
Serial.println("\n=== Secondary Bridge Status ===");
|
|
31
|
-
Serial.printf("Node ID: %u\n", mesh.getNodeId());
|
|
32
|
-
Serial.printf("Connected Nodes: %d\n", mesh.getNodeList().size());
|
|
33
|
-
|
|
34
|
-
// Show all active bridges in the mesh
|
|
35
|
-
auto activeBridges = mesh.getActiveBridges();
|
|
36
|
-
Serial.printf("Active Bridges: %d\n", activeBridges.size());
|
|
37
|
-
for (auto bridgeId : activeBridges) {
|
|
38
|
-
Serial.printf(" - Bridge: %u%s\n", bridgeId,
|
|
39
|
-
(bridgeId == mesh.getNodeId()) ? " (ME)" : "");
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
// Show recommended bridge for next message
|
|
43
|
-
uint32_t recommended = mesh.getRecommendedBridge();
|
|
44
|
-
Serial.printf("Recommended Bridge: %u\n", recommended);
|
|
45
|
-
|
|
46
|
-
if (recommended == mesh.getNodeId()) {
|
|
47
|
-
Serial.println("⚠️ I AM THE ACTIVE BRIDGE (primary likely failed!)");
|
|
48
|
-
} else {
|
|
49
|
-
Serial.println("✓ Standby mode - primary bridge is active");
|
|
50
|
-
}
|
|
51
|
-
Serial.println("=============================\n");
|
|
52
|
-
});
|
|
53
|
-
|
|
54
|
-
void receivedCallback(uint32_t from, String& msg) {
|
|
55
|
-
Serial.printf("Received from %u: %s\n", from, msg.c_str());
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
void newConnectionCallback(uint32_t nodeId) {
|
|
59
|
-
Serial.printf("New Connection, nodeId = %u\n", nodeId);
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
void changedConnectionCallback() {
|
|
63
|
-
Serial.printf("Changed connections. Node count: %d\n", mesh.getNodeList().size());
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
void bridgeStatusCallback(uint32_t bridgeNodeId, bool hasInternet) {
|
|
67
|
-
if (hasInternet) {
|
|
68
|
-
Serial.printf("✓ Bridge %u: Internet connected\n", bridgeNodeId);
|
|
69
|
-
} else {
|
|
70
|
-
Serial.printf("⚠️ Bridge %u: Internet OFFLINE\n", bridgeNodeId);
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
void setup() {
|
|
75
|
-
Serial.begin(115200);
|
|
76
|
-
delay(2000);
|
|
77
|
-
|
|
78
|
-
Serial.println("\n\n=== Multi-Bridge: SECONDARY BRIDGE ===\n");
|
|
79
|
-
|
|
80
|
-
// Initialize mesh as secondary bridge with priority 5
|
|
81
|
-
mesh.setDebugMsgTypes(ERROR | STARTUP | CONNECTION);
|
|
82
|
-
|
|
83
|
-
// Enable multi-bridge coordination mode
|
|
84
|
-
mesh.enableMultiBridge(true);
|
|
85
|
-
|
|
86
|
-
// Set bridge selection strategy (PRIORITY_BASED is default)
|
|
87
|
-
mesh.setBridgeSelectionStrategy(painlessMesh::PRIORITY_BASED);
|
|
88
|
-
|
|
89
|
-
// Initialize as bridge with priority 5 (secondary)
|
|
90
|
-
bool bridgeSuccess = mesh.initAsBridge(MESH_PREFIX, MESH_PASSWORD,
|
|
91
|
-
ROUTER_SSID, ROUTER_PASSWORD,
|
|
92
|
-
&userScheduler, MESH_PORT, 5); // Priority 5 = Secondary
|
|
93
|
-
|
|
94
|
-
if (!bridgeSuccess) {
|
|
95
|
-
Serial.println("✗ Failed to initialize as secondary bridge!");
|
|
96
|
-
Serial.println("Router unreachable - falling back to regular mesh node");
|
|
97
|
-
|
|
98
|
-
// Fallback: Initialize as regular node
|
|
99
|
-
// Device will still participate in mesh, relying on other bridges
|
|
100
|
-
mesh.init(MESH_PREFIX, MESH_PASSWORD, &userScheduler, MESH_PORT);
|
|
101
|
-
|
|
102
|
-
Serial.println("✓ Running as regular node - relying on other bridges for connectivity");
|
|
103
|
-
Serial.println("Note: Fix router connectivity and restart to resume bridge role");
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
mesh.onReceive(&receivedCallback);
|
|
107
|
-
mesh.onNewConnection(&newConnectionCallback);
|
|
108
|
-
mesh.onChangedConnections(&changedConnectionCallback);
|
|
109
|
-
mesh.onBridgeStatusChanged(&bridgeStatusCallback);
|
|
110
|
-
|
|
111
|
-
// Add status reporting task
|
|
112
|
-
userScheduler.addTask(taskBridgeStatus);
|
|
113
|
-
taskBridgeStatus.enable();
|
|
114
|
-
|
|
115
|
-
Serial.println("\n=== Secondary Bridge Ready ===");
|
|
116
|
-
Serial.println("This node is the SECONDARY bridge (Priority 5)");
|
|
117
|
-
Serial.println("It operates in hot standby mode");
|
|
118
|
-
Serial.println("Will take over if primary bridge fails\n");
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
void loop() {
|
|
122
|
-
mesh.update();
|
|
123
|
-
}
|