node-red-contrib-3dm-space 0.0.3 → 0.0.6
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/README.md +139 -0
- package/package.json +2 -1
- package/readme.md +0 -0
package/README.md
ADDED
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
# node-red-contrib-3dm-space
|
|
2
|
+
|
|
3
|
+
Node-RED nodes for sending telemetry data to **3DM.space SCADA Cloud** and receiving cloud attribute commands.
|
|
4
|
+
|
|
5
|
+
This package is designed for Smithtek PassPort gateways and provides simple 3DM Cloud communication without exposing MQTT details to the user.
|
|
6
|
+
|
|
7
|
+
## Nodes Included
|
|
8
|
+
|
|
9
|
+
### 3DM Cloud Login
|
|
10
|
+
|
|
11
|
+
Shared configuration node used by the 3DM input and output nodes.
|
|
12
|
+
|
|
13
|
+
The user only needs to enter:
|
|
14
|
+
|
|
15
|
+
* Name
|
|
16
|
+
* Username
|
|
17
|
+
* Password
|
|
18
|
+
* Optional Client ID
|
|
19
|
+
|
|
20
|
+
Connection details are handled internally.
|
|
21
|
+
|
|
22
|
+
### 3DM Out
|
|
23
|
+
|
|
24
|
+
Sends JSON telemetry data to 3DM.space SCADA Cloud.
|
|
25
|
+
|
|
26
|
+
The node automatically:
|
|
27
|
+
|
|
28
|
+
* Adds a timestamp
|
|
29
|
+
* Formats the payload for 3DM Cloud time-series data
|
|
30
|
+
* Publishes to the correct cloud endpoint
|
|
31
|
+
* Applies a publish rate limit
|
|
32
|
+
* Stores messages locally if the cloud connection is offline
|
|
33
|
+
* Replays stored messages when the connection returns
|
|
34
|
+
|
|
35
|
+
Example input:
|
|
36
|
+
|
|
37
|
+
```json
|
|
38
|
+
{
|
|
39
|
+
"pump_run": true,
|
|
40
|
+
"flow_lpm": 125.5,
|
|
41
|
+
"tank_level_percent": 64,
|
|
42
|
+
"dc_voltage": 24.1
|
|
43
|
+
}
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### 3DM In
|
|
47
|
+
|
|
48
|
+
Receives cloud attribute updates from 3DM.space.
|
|
49
|
+
|
|
50
|
+
The node can:
|
|
51
|
+
|
|
52
|
+
* Allow all incoming attributes through
|
|
53
|
+
* Filter by a single key
|
|
54
|
+
* Output the selected value only
|
|
55
|
+
* Output an object containing the selected key and value
|
|
56
|
+
|
|
57
|
+
Example cloud attribute:
|
|
58
|
+
|
|
59
|
+
```json
|
|
60
|
+
{
|
|
61
|
+
"pump_cmd": 1
|
|
62
|
+
}
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## Store and Forward
|
|
66
|
+
|
|
67
|
+
The 3DM Out node includes built-in store and forward.
|
|
68
|
+
|
|
69
|
+
If the cloud connection is lost, valid telemetry messages are stored locally using a persistent queue. Each message is timestamped when it arrives at the node, not when it is replayed.
|
|
70
|
+
|
|
71
|
+
When the cloud connection returns, stored messages are replayed automatically.
|
|
72
|
+
|
|
73
|
+
Default replay speed:
|
|
74
|
+
|
|
75
|
+
```text
|
|
76
|
+
250 ms per packet
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
This equals approximately:
|
|
80
|
+
|
|
81
|
+
```text
|
|
82
|
+
4 packets per second
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## Rate Limiting
|
|
86
|
+
|
|
87
|
+
The 3DM Out node includes a live publish throttle to prevent users from publishing too quickly.
|
|
88
|
+
|
|
89
|
+
Default live publish limit:
|
|
90
|
+
|
|
91
|
+
```text
|
|
92
|
+
1 message every 10 seconds
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
If valid telemetry arrives faster than the live publish limit, it is queued rather than discarded.
|
|
96
|
+
|
|
97
|
+
## Hidden Cloud Settings
|
|
98
|
+
|
|
99
|
+
The following settings are handled internally and are not shown to the user:
|
|
100
|
+
|
|
101
|
+
```text
|
|
102
|
+
Host: 3dm.space
|
|
103
|
+
Port: 1883
|
|
104
|
+
Keepalive: 60
|
|
105
|
+
Clean Session: true
|
|
106
|
+
QoS: 1
|
|
107
|
+
Telemetry Topic: v1/devices/me/telemetry
|
|
108
|
+
Attributes Topic: v1/devices/me/attributes
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
## Installation
|
|
112
|
+
|
|
113
|
+
From the Node-RED user directory:
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
cd ~/.node-red
|
|
117
|
+
npm install ./node-red-contrib-3dm-space
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
Or from inside the development folder:
|
|
121
|
+
|
|
122
|
+
```bash
|
|
123
|
+
cd ~/.node-red/node-red-contrib-3dm-space
|
|
124
|
+
npm install
|
|
125
|
+
```
|
|
126
|
+
|
|
127
|
+
Restart Node-RED after installation:
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
node-red-restart
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
## License
|
|
134
|
+
|
|
135
|
+
GPL-3.0-or-later
|
|
136
|
+
|
|
137
|
+
## Author
|
|
138
|
+
|
|
139
|
+
Smithtek
|
package/package.json
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "node-red-contrib-3dm-space",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.6",
|
|
4
4
|
"description": "Node-RED nodes for 3DM.space SCADA Cloud telemetry and attributes",
|
|
5
5
|
"main": "3dm-cloud-config.js",
|
|
6
|
+
"license": "GPL-3.0-or-later",
|
|
6
7
|
"keywords": [
|
|
7
8
|
"node-red",
|
|
8
9
|
"3dm",
|
package/readme.md
DELETED
|
File without changes
|