@alteriom/painlessmesh 1.9.18 → 1.9.20
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/CHANGELOG.md +62 -0
- package/README.md +82 -63
- package/examples/alteriom/README.md +4 -4
- package/examples/alteriom/alteriom_custom_package_template.hpp +320 -0
- package/examples/alteriom/alteriom_sensor_package.hpp +1 -1
- package/examples/alteriom/mppt_example/alteriom_mppt_example.ino +208 -0
- package/examples/bridge_failover/bridge_failover.ino +17 -0
- package/examples/sendToInternet/CMakeLists.txt +54 -0
- package/examples/sendToInternet/PC_NODE_README.md +517 -0
- package/examples/sendToInternet/README.md +39 -1
- package/examples/sendToInternet/build.sh +153 -0
- package/examples/sendToInternet/mock_server_test.ino +361 -0
- package/examples/sendToInternet/pc_mesh_node.cpp +361 -0
- package/library.json +4 -1
- package/library.properties +1 -1
- package/package.json +3 -3
- package/src/AlteriomPainlessMesh.h +5 -13
- package/src/arduino/wifi.hpp +306 -100
- package/src/connection.cpp +10 -0
- package/src/painlessMesh.h +1 -14
- package/src/painlessmesh/connection.hpp +11 -16
- package/src/painlessmesh/gateway.hpp +0 -1061
- package/src/painlessmesh/mesh.hpp +58 -86
- package/src/painlessmesh/message_queue.hpp +1 -2
- package/src/painlessmesh/metrics.hpp +2 -262
- package/src/painlessmesh/validation.hpp +0 -143
- package/docs/README.md +0 -132
- package/docs/alteriom/overview.md +0 -531
- package/docs/api/core-api.md +0 -607
- package/docs/api/shared-gateway.md +0 -1207
- package/docs/architecture/mesh-architecture.md +0 -399
- package/docs/architecture/plugin-system.md +0 -517
- package/docs/getting-started/arduino-manual-install.md +0 -313
- package/docs/getting-started/first-mesh.md +0 -410
- package/docs/getting-started/installation.md +0 -275
- package/docs/getting-started/quickstart.md +0 -158
- package/docs/troubleshooting/common-issues.md +0 -679
- package/docs/troubleshooting/debugging.md +0 -455
- package/docs/troubleshooting/external-device-connection.md +0 -283
- package/docs/troubleshooting/faq.md +0 -574
- package/docs/tutorials/basic-examples.md +0 -718
|
@@ -1,313 +0,0 @@
|
|
|
1
|
-
# Manual Arduino IDE Installation (ZIP Import)
|
|
2
|
-
|
|
3
|
-
This guide explains how to manually install painlessMesh in Arduino IDE using a ZIP file. This method is useful when:
|
|
4
|
-
- The Arduino Library Manager hasn't indexed the latest version yet
|
|
5
|
-
- You want to test unreleased versions from GitHub
|
|
6
|
-
- You need a specific version that's not in the Library Manager
|
|
7
|
-
|
|
8
|
-
## Quick Start
|
|
9
|
-
|
|
10
|
-
### Method 1: Download Release ZIP
|
|
11
|
-
|
|
12
|
-
1. **Download** the latest release ZIP from:
|
|
13
|
-
- [GitHub Releases](https://github.com/Alteriom/painlessMesh/releases)
|
|
14
|
-
- Look for `painlessMesh-vX.X.X.zip`
|
|
15
|
-
|
|
16
|
-
2. **Install in Arduino IDE**:
|
|
17
|
-
- Open Arduino IDE
|
|
18
|
-
- Go to **Sketch → Include Library → Add .ZIP Library...**
|
|
19
|
-
- Select the downloaded `painlessMesh-vX.X.X.zip` file
|
|
20
|
-
- Wait for "Library installed" message
|
|
21
|
-
|
|
22
|
-
3. **Install Dependencies**:
|
|
23
|
-
- Go to **Sketch → Include Library → Manage Libraries...**
|
|
24
|
-
- Search and install:
|
|
25
|
-
- **ArduinoJson** (v6.21.x or v7.x)
|
|
26
|
-
- **TaskScheduler** (v3.7.0+)
|
|
27
|
-
|
|
28
|
-
4. **Verify Installation**:
|
|
29
|
-
- Go to **File → Examples → painlessMesh**
|
|
30
|
-
- Open any example (e.g., `basic`)
|
|
31
|
-
- Verify it compiles
|
|
32
|
-
|
|
33
|
-
### Method 2: Create ZIP from Repository
|
|
34
|
-
|
|
35
|
-
If you need to create a ZIP file from the repository source:
|
|
36
|
-
|
|
37
|
-
```bash
|
|
38
|
-
# Clone the repository
|
|
39
|
-
git clone https://github.com/Alteriom/painlessMesh.git
|
|
40
|
-
cd painlessMesh
|
|
41
|
-
|
|
42
|
-
# Create Arduino IDE compatible ZIP
|
|
43
|
-
./scripts/create-arduino-zip.sh
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
This creates `dist/painlessMesh-vX.X.X.zip` ready for Arduino IDE import.
|
|
47
|
-
|
|
48
|
-
## What's Included in the ZIP
|
|
49
|
-
|
|
50
|
-
The ZIP file contains:
|
|
51
|
-
- ✅ `src/` - Complete library source code
|
|
52
|
-
- ✅ `examples/` - All Arduino examples (19+ sketches)
|
|
53
|
-
- ✅ `library.properties` - Arduino library metadata
|
|
54
|
-
- ✅ `README.md` - Documentation
|
|
55
|
-
- ✅ `LICENSE` - LGPL-3.0 license
|
|
56
|
-
- ✅ `CHANGELOG.md` - Version history
|
|
57
|
-
- ✅ `keywords.txt` - Syntax highlighting
|
|
58
|
-
|
|
59
|
-
## Directory Structure
|
|
60
|
-
|
|
61
|
-
After installation, the library will be in:
|
|
62
|
-
- **Windows**: `Documents\Arduino\libraries\painlessMesh\`
|
|
63
|
-
- **macOS**: `~/Documents/Arduino/libraries/painlessMesh/`
|
|
64
|
-
- **Linux**: `~/Arduino/libraries/painlessMesh/`
|
|
65
|
-
|
|
66
|
-
```
|
|
67
|
-
painlessMesh/
|
|
68
|
-
├── src/ # Library source files
|
|
69
|
-
│ ├── painlessMesh.h # Main header
|
|
70
|
-
│ ├── painlessmesh/ # Core implementation
|
|
71
|
-
│ └── arduino/ # Arduino-specific code
|
|
72
|
-
├── examples/ # Example sketches
|
|
73
|
-
│ ├── basic/
|
|
74
|
-
│ ├── bridge/
|
|
75
|
-
│ ├── mqtt/
|
|
76
|
-
│ └── ...
|
|
77
|
-
├── library.properties # Library metadata
|
|
78
|
-
├── README.md
|
|
79
|
-
├── LICENSE
|
|
80
|
-
└── keywords.txt
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
## Creating ZIP Files
|
|
84
|
-
|
|
85
|
-
### Automated Script
|
|
86
|
-
|
|
87
|
-
Use the provided script for consistent ZIP creation:
|
|
88
|
-
|
|
89
|
-
```bash
|
|
90
|
-
# From repository root
|
|
91
|
-
./scripts/create-arduino-zip.sh
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
**Output**: `dist/painlessMesh-vX.X.X.zip`
|
|
95
|
-
|
|
96
|
-
**Features**:
|
|
97
|
-
- ✅ Proper directory structure for Arduino IDE
|
|
98
|
-
- ✅ Includes all required files
|
|
99
|
-
- ✅ Excludes development files (.git, test/, .github/)
|
|
100
|
-
- ✅ Matches GitHub release format
|
|
101
|
-
- ✅ Version number from library.properties
|
|
102
|
-
|
|
103
|
-
### Manual ZIP Creation
|
|
104
|
-
|
|
105
|
-
If you need to create a ZIP manually:
|
|
106
|
-
|
|
107
|
-
1. **Create directory structure**:
|
|
108
|
-
```bash
|
|
109
|
-
mkdir -p painlessMesh-package/painlessMesh
|
|
110
|
-
cd painlessMesh-package/painlessMesh
|
|
111
|
-
```
|
|
112
|
-
|
|
113
|
-
2. **Copy required files**:
|
|
114
|
-
```bash
|
|
115
|
-
# From your painlessMesh repository
|
|
116
|
-
cp -r src examples library.properties README.md LICENSE .
|
|
117
|
-
```
|
|
118
|
-
|
|
119
|
-
3. **Optional additions**:
|
|
120
|
-
```bash
|
|
121
|
-
cp CHANGELOG.md keywords.txt .
|
|
122
|
-
```
|
|
123
|
-
|
|
124
|
-
4. **Create ZIP**:
|
|
125
|
-
```bash
|
|
126
|
-
cd ..
|
|
127
|
-
zip -r painlessMesh-v1.8.3.zip painlessMesh/
|
|
128
|
-
```
|
|
129
|
-
|
|
130
|
-
5. **Important**: The ZIP must contain a folder named `painlessMesh` with the library files inside. Do NOT zip the files directly.
|
|
131
|
-
|
|
132
|
-
## Verification
|
|
133
|
-
|
|
134
|
-
After installation, verify it works:
|
|
135
|
-
|
|
136
|
-
### Test Compilation
|
|
137
|
-
|
|
138
|
-
```cpp
|
|
139
|
-
#include "painlessMesh.h"
|
|
140
|
-
|
|
141
|
-
painlessMesh mesh;
|
|
142
|
-
|
|
143
|
-
void setup() {
|
|
144
|
-
Serial.begin(115200);
|
|
145
|
-
Serial.println("painlessMesh test");
|
|
146
|
-
|
|
147
|
-
mesh.init("TestNetwork", "password", 5555);
|
|
148
|
-
Serial.println("Initialized successfully!");
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
void loop() {
|
|
152
|
-
mesh.update();
|
|
153
|
-
}
|
|
154
|
-
```
|
|
155
|
-
|
|
156
|
-
If this compiles without errors, installation is successful!
|
|
157
|
-
|
|
158
|
-
### Check Examples
|
|
159
|
-
|
|
160
|
-
The examples should appear in:
|
|
161
|
-
**File → Examples → painlessMesh**
|
|
162
|
-
|
|
163
|
-
Available examples:
|
|
164
|
-
- basic - Simple mesh network
|
|
165
|
-
- bridge - Internet bridge mode
|
|
166
|
-
- startHere - Quick start template
|
|
167
|
-
- namedMesh - Named mesh networks
|
|
168
|
-
- And 15+ more examples
|
|
169
|
-
|
|
170
|
-
## Troubleshooting
|
|
171
|
-
|
|
172
|
-
### "Library not found" Error
|
|
173
|
-
|
|
174
|
-
**Problem**: Arduino IDE can't find the library after installation.
|
|
175
|
-
|
|
176
|
-
**Solutions**:
|
|
177
|
-
1. Restart Arduino IDE
|
|
178
|
-
2. Check installation directory:
|
|
179
|
-
- Windows: `Documents\Arduino\libraries\`
|
|
180
|
-
- macOS: `~/Documents/Arduino/libraries/`
|
|
181
|
-
- Linux: `~/Arduino/libraries/`
|
|
182
|
-
3. Verify folder name is exactly `painlessMesh` (case-sensitive on Linux/macOS)
|
|
183
|
-
4. Check that `library.properties` exists in the painlessMesh folder
|
|
184
|
-
|
|
185
|
-
### "No such file or directory" Compilation Error
|
|
186
|
-
|
|
187
|
-
**Problem**: Missing dependency headers like `ArduinoJson.h` or `TaskScheduler.h`.
|
|
188
|
-
|
|
189
|
-
**Solution**:
|
|
190
|
-
Install dependencies via Library Manager:
|
|
191
|
-
1. **Sketch → Include Library → Manage Libraries...**
|
|
192
|
-
2. Search for:
|
|
193
|
-
- **ArduinoJson** → Install version 6.21.x or 7.x
|
|
194
|
-
- **TaskScheduler** → Install version 3.7.0+
|
|
195
|
-
|
|
196
|
-
### Version Mismatch
|
|
197
|
-
|
|
198
|
-
**Problem**: Old version still being used after installing new ZIP.
|
|
199
|
-
|
|
200
|
-
**Solution**:
|
|
201
|
-
1. Delete old version:
|
|
202
|
-
- Go to `Arduino/libraries/` folder
|
|
203
|
-
- Delete `painlessMesh` folder
|
|
204
|
-
2. Restart Arduino IDE
|
|
205
|
-
3. Install new ZIP file
|
|
206
|
-
|
|
207
|
-
### ZIP Structure Error
|
|
208
|
-
|
|
209
|
-
**Problem**: "Invalid library" error when importing ZIP.
|
|
210
|
-
|
|
211
|
-
**Cause**: Incorrect ZIP structure.
|
|
212
|
-
|
|
213
|
-
**Solution**:
|
|
214
|
-
Ensure ZIP contains:
|
|
215
|
-
```
|
|
216
|
-
painlessMesh-v1.8.3.zip
|
|
217
|
-
└── painlessMesh/ ← Must have this folder
|
|
218
|
-
├── src/
|
|
219
|
-
├── examples/
|
|
220
|
-
└── library.properties ← Must have this file
|
|
221
|
-
```
|
|
222
|
-
|
|
223
|
-
**Common mistake**: Zipping files directly without the `painlessMesh` folder.
|
|
224
|
-
|
|
225
|
-
## Comparing with Library Manager
|
|
226
|
-
|
|
227
|
-
| Feature | Manual ZIP Install | Library Manager |
|
|
228
|
-
|---------|-------------------|-----------------|
|
|
229
|
-
| **Latest Version** | ✅ Immediate | ⏱️ 24-48h delay |
|
|
230
|
-
| **Pre-release Testing** | ✅ Yes | ❌ No |
|
|
231
|
-
| **Custom Versions** | ✅ Yes | ❌ No |
|
|
232
|
-
| **Ease of Use** | ⚠️ Manual | ✅ Automatic |
|
|
233
|
-
| **Updates** | ⚠️ Manual | ✅ One-click |
|
|
234
|
-
| **Dependencies** | ⚠️ Manual | ✅ Auto-install |
|
|
235
|
-
|
|
236
|
-
## When to Use Each Method
|
|
237
|
-
|
|
238
|
-
### Use Manual ZIP Installation When:
|
|
239
|
-
- 🔧 Testing unreleased features from GitHub
|
|
240
|
-
- 🚀 Need the absolute latest version immediately
|
|
241
|
-
- 🐛 Testing a bug fix before official release
|
|
242
|
-
- 📦 Library Manager hasn't indexed latest version
|
|
243
|
-
- 🔬 Developing or contributing to painlessMesh
|
|
244
|
-
|
|
245
|
-
### Use Library Manager When:
|
|
246
|
-
- 📱 Installing for the first time
|
|
247
|
-
- 🔄 Need easy updates
|
|
248
|
-
- 👥 Stable production deployments
|
|
249
|
-
- 🎓 Learning or following tutorials
|
|
250
|
-
- 📚 Standard development workflow
|
|
251
|
-
|
|
252
|
-
## Automated Releases
|
|
253
|
-
|
|
254
|
-
The repository automatically creates proper ZIP files on each release:
|
|
255
|
-
|
|
256
|
-
1. **GitHub Actions** workflow builds ZIP on every release
|
|
257
|
-
2. **ZIP file** uploaded to GitHub Releases page
|
|
258
|
-
3. **Format** matches Arduino IDE requirements exactly
|
|
259
|
-
4. **Naming**: `painlessMesh-vX.X.X.zip`
|
|
260
|
-
|
|
261
|
-
Download from: https://github.com/Alteriom/painlessMesh/releases
|
|
262
|
-
|
|
263
|
-
## For Library Maintainers
|
|
264
|
-
|
|
265
|
-
### Creating Release ZIPs
|
|
266
|
-
|
|
267
|
-
The release workflow automatically creates proper ZIP files:
|
|
268
|
-
|
|
269
|
-
```yaml
|
|
270
|
-
# .github/workflows/release.yml
|
|
271
|
-
- name: Prepare library package
|
|
272
|
-
run: |
|
|
273
|
-
mkdir -p package/painlessMesh
|
|
274
|
-
cp -r src examples library.properties README.md LICENSE package/painlessMesh/
|
|
275
|
-
cd package
|
|
276
|
-
zip -r ../painlessMesh-v${{ steps.version.outputs.version }}.zip painlessMesh/
|
|
277
|
-
```
|
|
278
|
-
|
|
279
|
-
### Script Usage
|
|
280
|
-
|
|
281
|
-
For local testing before release:
|
|
282
|
-
|
|
283
|
-
```bash
|
|
284
|
-
# Create ZIP for current version
|
|
285
|
-
./scripts/create-arduino-zip.sh
|
|
286
|
-
|
|
287
|
-
# Output: dist/painlessMesh-vX.X.X.zip
|
|
288
|
-
# Ready for testing in Arduino IDE
|
|
289
|
-
```
|
|
290
|
-
|
|
291
|
-
### Testing Installation
|
|
292
|
-
|
|
293
|
-
Before releasing:
|
|
294
|
-
|
|
295
|
-
1. Create ZIP with script
|
|
296
|
-
2. Install in fresh Arduino IDE
|
|
297
|
-
3. Test compilation of examples
|
|
298
|
-
4. Verify examples menu shows all sketches
|
|
299
|
-
5. Check dependency resolution
|
|
300
|
-
|
|
301
|
-
## Additional Resources
|
|
302
|
-
|
|
303
|
-
- 📚 [Full Installation Guide](../../website/docs/getting-started/installation.md)
|
|
304
|
-
- 🎯 [Quick Start Tutorial](../../website/docs/getting-started/quickstart.md)
|
|
305
|
-
- 🔧 [PlatformIO Installation](../../website/docs/getting-started/installation.md#platformio-installation)
|
|
306
|
-
- 🐛 [Troubleshooting Guide](../../website/docs/troubleshooting/common-issues.md)
|
|
307
|
-
- 📖 [API Reference](https://alteriom.github.io/painlessMesh/#/api/doxygen)
|
|
308
|
-
|
|
309
|
-
## Questions or Issues?
|
|
310
|
-
|
|
311
|
-
- 💬 [GitHub Discussions](https://github.com/Alteriom/painlessMesh/discussions)
|
|
312
|
-
- 🐛 [Report Issues](https://github.com/Alteriom/painlessMesh/issues)
|
|
313
|
-
- 📚 [Documentation](https://alteriom.github.io/painlessMesh/)
|