@meri-imperiumi/signalk-meshtastic 1.2.4 → 1.3.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/.editorconfig +5 -0
- package/.eslintrc.json +3 -0
- package/.github/workflows/publish.yml +2 -2
- package/.github/workflows/signalk-ci.yml +11 -0
- package/.github/workflows/test.yml +1 -1
- package/CHANGELOG.md +27 -0
- package/README.md +4 -28
- package/doc/mpwrd.png +0 -0
- package/package.json +13 -5
- package/plugin/index.js +1 -13
package/.editorconfig
ADDED
package/.eslintrc.json
CHANGED
|
@@ -12,7 +12,7 @@ jobs:
|
|
|
12
12
|
- uses: actions/checkout@v3.0.2
|
|
13
13
|
- uses: actions/setup-node@v3.1.1
|
|
14
14
|
with:
|
|
15
|
-
node-version:
|
|
15
|
+
node-version: 24
|
|
16
16
|
- run: npm install
|
|
17
17
|
- run: npm test
|
|
18
18
|
|
|
@@ -23,7 +23,7 @@ jobs:
|
|
|
23
23
|
- uses: actions/checkout@v3.0.2
|
|
24
24
|
- uses: actions/setup-node@v3.1.1
|
|
25
25
|
with:
|
|
26
|
-
node-version:
|
|
26
|
+
node-version: 24
|
|
27
27
|
registry-url: https://registry.npmjs.org/
|
|
28
28
|
- run: npm publish
|
|
29
29
|
env:
|
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
* 1.3.0 (2026-06-16)
|
|
2
|
+
- Removed support for serial connections as they require post-install scripts
|
|
3
|
+
* 1.2.4 (2026-02-15)
|
|
4
|
+
- Corrupted Node DB file should no longer crash the plugin
|
|
5
|
+
* 1.2.3 (2025-10-15)
|
|
6
|
+
- Nodes that haven't been seen in last two days are no longer registered to Signal K data structure
|
|
7
|
+
- Added safeties for various non-numeric telemetry and coordinate values
|
|
8
|
+
* 1.2.2 (2025-10-01)
|
|
9
|
+
- Set "last seen" timestamp of nodes based on packet payloads, not the time they're received
|
|
10
|
+
- Send timestamp with telemetry
|
|
11
|
+
- Fixed issue with persising node-to-vessel matches from `DE <callsign>`
|
|
12
|
+
* 1.2.1 (2025-09-28)
|
|
13
|
+
- Fixed issue with Signal K servers that don't have navigation.position set
|
|
14
|
+
* 1.2.0 (2025-09-28)
|
|
15
|
+
- Support for Node.js older than 22.x, for example as seen in Venus OS Large
|
|
16
|
+
- Safety for nodes in DB that don't have a "last seen" timestamp
|
|
17
|
+
- Made connection status notifications clearer
|
|
18
|
+
* 1.1.2 (2025-09-25)
|
|
19
|
+
- Added support for the new roles from Meshtastic 2.7 (`ROUTER_LATE` and `CLIENT_BASE`)
|
|
20
|
+
- Fixed issue with sending a bell with alerts that have sound enabled
|
|
21
|
+
* 1.1.1 (2025-09-18)
|
|
22
|
+
- Fixed empty response text message to digital switching actions
|
|
23
|
+
- Added support for the proposed Signal K MOB position specification
|
|
24
|
+
* 1.1.0 (2025-09-11)
|
|
25
|
+
- Added support for Serial transport with the Meshtastic device
|
|
26
|
+
* 1.0.0 (2025-09-11)
|
|
27
|
+
- Initial release with HTTP and TCP transports
|
package/README.md
CHANGED
|
@@ -29,8 +29,9 @@ In production use on several boats.
|
|
|
29
29
|
|
|
30
30
|
## Features
|
|
31
31
|
|
|
32
|
-
* Connect to a Meshtastic node via HTTP
|
|
32
|
+
* Connect to a Meshtastic node via HTTP or TCP
|
|
33
33
|
* Keep a persistent database of all seen Meshtastic nodes
|
|
34
|
+
* Note: Serial transport support was removed in 1.3.0 to comply with [postinstall deprecation](https://demo.signalk.org/documentation/Developing/Plugins/Publishing_to_The_AppStore.html#important-avoid-install-time-scripts)
|
|
34
35
|
* Update Meshtastic node position from Signal K GNSS position
|
|
35
36
|
* Send Signal K alerts as Meshtastic text messages to crew
|
|
36
37
|
* MOB alerts (for example from [signalk-mob-notifier](https://github.com/meri-imperiumi/signalk-mob-notifier)) also send a waypoint to the MOB beacon
|
|
@@ -50,8 +51,7 @@ In production use on several boats.
|
|
|
50
51
|
## Requirements
|
|
51
52
|
|
|
52
53
|
* This plugin running inside your Signal K installation
|
|
53
|
-
* One [Meshtastic device](https://meshtastic.org/docs/hardware/devices/) running and connected to the same network (typically boat WiFi) as Signal K. This should be an [ESP32 based](https://meshtastic.org/docs/hardware/devices/heltec-automation/lora32/?heltec=v3) device for WiFi connectivity
|
|
54
|
-
If using Serial connection, it can also be a nRF52 device
|
|
54
|
+
* One [Meshtastic device](https://meshtastic.org/docs/hardware/devices/) running and connected to the same network (typically boat WiFi) as Signal K. This should be an [ESP32 based](https://meshtastic.org/docs/hardware/devices/heltec-automation/lora32/?heltec=v3) device for WiFi connectivity.
|
|
55
55
|
* At least one additional Meshtastic device for the crew ashore. [Seeed T1000-e](https://meshtastic.org/docs/hardware/devices/seeed-studio/sensecap/card-tracker/) is a great option, but any battery-powered Meshtastic device will work. Having a device for each crew member is even better. In busy areas these should be set to [`CLIENT_MUTE` role](https://meshtastic.org/blog/choosing-the-right-device-role/)
|
|
56
56
|
* Optionally, a Meshtastic GPS tracker device installed in the dinghy
|
|
57
57
|
* Optionally, a [Meshtastic mast-top repeater](https://www.printables.com/model/1396221-meshtastic-boat-module-masthead) for greatly increased communications range
|
|
@@ -91,28 +91,4 @@ Metrics used:
|
|
|
91
91
|
|
|
92
92
|
## Changes
|
|
93
93
|
|
|
94
|
-
|
|
95
|
-
- Corrupted Node DB file should no longer crash the plugin
|
|
96
|
-
* 1.2.3 (2025-10-15)
|
|
97
|
-
- Nodes that haven't been seen in last two days are no longer registered to Signal K data structure
|
|
98
|
-
- Added safeties for various non-numeric telemetry and coordinate values
|
|
99
|
-
* 1.2.2 (2025-10-01)
|
|
100
|
-
- Set "last seen" timestamp of nodes based on packet payloads, not the time they're received
|
|
101
|
-
- Send timestamp with telemetry
|
|
102
|
-
- Fixed issue with persising node-to-vessel matches from `DE <callsign>`
|
|
103
|
-
* 1.2.1 (2025-09-28)
|
|
104
|
-
- Fixed issue with Signal K servers that don't have navigation.position set
|
|
105
|
-
* 1.2.0 (2025-09-28)
|
|
106
|
-
- Support for Node.js older than 22.x, for example as seen in Venus OS Large
|
|
107
|
-
- Safety for nodes in DB that don't have a "last seen" timestamp
|
|
108
|
-
- Made connection status notifications clearer
|
|
109
|
-
* 1.1.2 (2025-09-25)
|
|
110
|
-
- Added support for the new roles from Meshtastic 2.7 (`ROUTER_LATE` and `CLIENT_BASE`)
|
|
111
|
-
- Fixed issue with sending a bell with alerts that have sound enabled
|
|
112
|
-
* 1.1.1 (2025-09-18)
|
|
113
|
-
- Fixed empty response text message to digital switching actions
|
|
114
|
-
- Added support for the proposed Signal K MOB position specification
|
|
115
|
-
* 1.1.0 (2025-09-11)
|
|
116
|
-
- Added support for Serial transport with the Meshtastic device
|
|
117
|
-
* 1.0.0 (2025-09-11)
|
|
118
|
-
- Initial release with HTTP and TCP transports
|
|
94
|
+
See <CHANGELOG.md>
|
package/doc/mpwrd.png
ADDED
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@meri-imperiumi/signalk-meshtastic",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.0",
|
|
4
4
|
"description": "Signal K plugin for interfacing with the Meshtastic LoRa mesh network",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"test": "eslint ."
|
|
@@ -16,11 +16,20 @@
|
|
|
16
16
|
"keywords": [
|
|
17
17
|
"meshtastic",
|
|
18
18
|
"signalk-node-server-plugin",
|
|
19
|
-
"signalk-category-
|
|
20
|
-
"signalk-category-
|
|
19
|
+
"signalk-category-hardware",
|
|
20
|
+
"signalk-category-notifications"
|
|
21
21
|
],
|
|
22
22
|
"main": "plugin/index.js",
|
|
23
23
|
"signalk-plugin-enabled-by-default": false,
|
|
24
|
+
"signalk": {
|
|
25
|
+
"appIcon": "./doc/mpwrd.png",
|
|
26
|
+
"displayName": "Meshtastic Integration",
|
|
27
|
+
"screenshots": [
|
|
28
|
+
"./doc/meshtastic-bequia.png",
|
|
29
|
+
"./doc/config-crew-role.png",
|
|
30
|
+
"./doc/telemetry.png"
|
|
31
|
+
]
|
|
32
|
+
},
|
|
24
33
|
"author": "Henri Bergius <henri.bergius@iki.fi>",
|
|
25
34
|
"license": "GPLV3",
|
|
26
35
|
"publishConfig": {
|
|
@@ -30,8 +39,7 @@
|
|
|
30
39
|
"@bufbuild/protobuf": "^2.6.0",
|
|
31
40
|
"@meshtastic/core": "^2.6.7",
|
|
32
41
|
"@meshtastic/transport-http": "^0.2.5",
|
|
33
|
-
"@meshtastic/transport-node": "^0.0.2"
|
|
34
|
-
"@meshtastic/transport-node-serial": "^0.0.2"
|
|
42
|
+
"@meshtastic/transport-node": "^0.0.2"
|
|
35
43
|
},
|
|
36
44
|
"devDependencies": {
|
|
37
45
|
"eslint": "^8.57.1",
|
package/plugin/index.js
CHANGED
|
@@ -16,7 +16,6 @@ if (!global.crypto) {
|
|
|
16
16
|
let MeshDevice;
|
|
17
17
|
let TransportHTTP;
|
|
18
18
|
let TransportNode;
|
|
19
|
-
let TransportNodeSerial;
|
|
20
19
|
let create;
|
|
21
20
|
let toBinary;
|
|
22
21
|
let Protobuf;
|
|
@@ -237,10 +236,6 @@ module.exports = (app) => {
|
|
|
237
236
|
})
|
|
238
237
|
.then((lib) => {
|
|
239
238
|
TransportNode = lib.TransportNode;
|
|
240
|
-
return import('@meshtastic/transport-node-serial');
|
|
241
|
-
})
|
|
242
|
-
.then((lib) => {
|
|
243
|
-
TransportNodeSerial = lib.TransportNodeSerial;
|
|
244
239
|
return import('@bufbuild/protobuf');
|
|
245
240
|
})
|
|
246
241
|
.then((lib) => {
|
|
@@ -530,9 +525,6 @@ module.exports = (app) => {
|
|
|
530
525
|
if (settings.device && settings.device.transport === 'http') {
|
|
531
526
|
return TransportHTTP.create(settings.device.address);
|
|
532
527
|
}
|
|
533
|
-
if (settings.device && settings.device.transport === 'serial') {
|
|
534
|
-
return TransportNodeSerial.create(settings.device.address);
|
|
535
|
-
}
|
|
536
528
|
return TransportNode.create(settings.device.address);
|
|
537
529
|
})
|
|
538
530
|
.then((transport) => {
|
|
@@ -992,7 +984,7 @@ module.exports = (app) => {
|
|
|
992
984
|
plugin.schema = () => {
|
|
993
985
|
function nodeList() {
|
|
994
986
|
if (Object.keys(nodes).length === 0) {
|
|
995
|
-
return
|
|
987
|
+
return [];
|
|
996
988
|
}
|
|
997
989
|
return Object.keys(nodes)
|
|
998
990
|
.filter((nodeId) => {
|
|
@@ -1029,10 +1021,6 @@ module.exports = (app) => {
|
|
|
1029
1021
|
const: 'http',
|
|
1030
1022
|
title: 'HTTP (nodes connected to same network, typically ESP32)',
|
|
1031
1023
|
},
|
|
1032
|
-
{
|
|
1033
|
-
const: 'serial',
|
|
1034
|
-
title: 'Serial port (use full path to serial device as "address")',
|
|
1035
|
-
},
|
|
1036
1024
|
],
|
|
1037
1025
|
},
|
|
1038
1026
|
address: {
|