node-red-contrib-3dm-space 1.0.0 → 1.0.3

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 CHANGED
@@ -2,52 +2,238 @@
2
2
 
3
3
  Node-RED nodes for connecting Smithtek PassPort gateways to **3DM.space SCADA Cloud**.
4
4
 
5
- This package is designed to make 3DM.space cloud communication simple for users. The cloud connection, formatting, timing, storage and recovery handling are managed inside the nodes.
6
-
7
- Users only need to copy the device credentials from 3DM.space into Node-RED.
8
-
9
- ---
10
-
11
- ## What This Package Does
12
-
13
- This package allows a PassPort gateway to:
14
-
15
- - Send telemetry values to 3DM.space
16
- - Receive cloud commands or control updates from 3DM.space
17
- - Store telemetry locally if the cloud connection is unavailable
18
- - Automatically send stored telemetry when the connection returns
19
-
20
- ---
5
+ This package is designed to keep setup simple. Users copy the device details from 3DM.space into Node-RED, then use the nodes to send data, receive commands, store settings, and run local control logic.
21
6
 
22
7
  ## Nodes Included
23
8
 
24
9
  ### 3DM Cloud Login
25
10
 
26
- The shared login node used by the 3DM input and output nodes.
11
+ Stores the 3DM.space device login used by the 3DM nodes.
27
12
 
28
- The settings match the credential order shown in 3DM.space:
13
+ The fields match the order shown in 3DM.space:
29
14
 
30
15
  1. **Client ID**
31
16
  2. **User Name***
32
17
  3. **Password**
33
18
  4. **Node Name**
34
19
 
35
- The **Node Name** is only used inside Node-RED to make the login easier to identify.
36
-
37
- ---
20
+ **Node Name** is optional and is only used inside Node-RED to make the login easier to identify.
38
21
 
39
22
  ### 3DM Out
40
23
 
41
- Sends telemetry data from Node-RED to 3DM.space.
24
+ Sends telemetry from Node-RED to 3DM.space.
25
+
26
+ Use this node when the PassPort needs to send live values such as:
27
+
28
+ - Tank level
29
+ - Pump status
30
+ - Flow rate
31
+ - Pressure
32
+ - Battery voltage
33
+ - Fault status
34
+ - Run hours
35
+ - Totaliser values
36
+
37
+ The node automatically prepares the data for 3DM.space.
38
+
39
+ If the connection is unavailable, valid data is stored locally and sent later when the connection returns.
40
+
41
+ ### 3DM In
42
+
43
+ Receives values sent from 3DM.space to the PassPort.
44
+
45
+ Use this node when 3DM.space needs to send values down to Node-RED, such as:
46
+
47
+ - Pump commands
48
+ - Mode changes
49
+ - Reset commands
50
+ - Setpoints
51
+ - Scheduler updates
52
+ - Control settings
53
+ - Remote configuration values
54
+
55
+ The node can receive all values, or it can be filtered to only pass through one selected key.
56
+
57
+ ### 3DM Config Store
58
+
59
+ Stores settings sent from 3DM.space and uses them locally on the PassPort.
60
+
61
+ This node is normally placed after a **3DM In** node.
62
+
63
+ 3DM In → 3DM Config Store → Local Outputs
64
+
65
+ Use this node for settings that need to be remembered and used by the PassPort, such as:
66
+
67
+ - Pump schedules
68
+ - Irrigation schedules
69
+ - Start and stop levels
70
+ - Pressure setpoints
71
+ - Alarm settings
72
+ - Control limits
73
+ - Run time settings
74
+ - Site configuration values
75
+
76
+ The Config Store saves the latest settings locally.
77
+
78
+ If Node-RED restarts, the last saved settings are loaded again automatically.
79
+
80
+ The node has **24 outputs** that can be used for local control. You can turn outputs not used to minimize the node size saving flow editor space.
81
+
82
+ ## Basic Setup
83
+
84
+ ### 1. Create or Open a Device in 3DM.space
85
+
86
+ Log in to **3DM.space**.
87
+
88
+ Create a new device, or open the existing device you want the PassPort to connect to.
89
+
90
+ Open the device credentials section.
91
+
92
+ Copy these values:
93
+
94
+ - Client ID
95
+ - User Name*
96
+ - Password
97
+
98
+ ### 2. Add a 3DM Cloud Login in Node-RED
99
+
100
+ Open a **3DM Out** or **3DM In** node.
101
+
102
+ Create a new **3DM Cloud Login**.
103
+
104
+ Paste the values from 3DM.space into the matching fields.
105
+
106
+ | 3DM.space | Node-RED |
107
+ |---|---|
108
+ | Client ID | Client ID |
109
+ | User Name* | User Name* |
110
+ | Password | Password |
111
+
112
+ Give it a simple Node Name if needed, such as:
113
+
114
+ Main PassPort
115
+
116
+ ### 3. Send Telemetry
117
+
118
+ Add a **3DM Out** node.
119
+
120
+ Select the **3DM Cloud Login**.
121
+
122
+ Connect your live data into the node.
123
+
124
+ The values will appear against the selected device in 3DM.space.
125
+
126
+ ### 4. Receive Commands
127
+
128
+ Add a **3DM In** node.
129
+
130
+ Select the same **3DM Cloud Login**.
131
+
132
+ Leave **Attribute Key** blank to receive all incoming values.
133
+
134
+ Enter an **Attribute Key** if you only want one value to pass through.
135
+
136
+ For example, you may use a key such as:
137
+
138
+ pump_cmd
139
+
140
+ Only that value will then be passed through the node.
141
+
142
+ ### 5. Store Settings
143
+
144
+ Add a **3DM Config Store** node after a **3DM In** node.
145
+
146
+ Use this when settings from 3DM.space need to be saved on the PassPort.
147
+
148
+ This is useful for:
149
+
150
+ - Scheduler widgets
151
+ - Setpoint widgets
152
+ - Control widgets
153
+ - Site setup widgets
154
+ - Remote configuration screens
155
+
156
+ The Config Store saves the settings locally and keeps using them even after a restart.
157
+
158
+ ### 6. Run Local Outputs
159
+
160
+ The **3DM Config Store** node has 24 outputs.
161
+
162
+ These outputs can be used to control local logic in Node-RED. You can turn outputs not used off, the outputs will align with the 3DM scada canvas node and other schedule and control nodes that have reference to 24 outputs.
163
+
164
+ Typical uses include:
165
+
166
+ - Starting a pump on schedule
167
+ - Stopping a pump on level
168
+ - Running irrigation zones
169
+ - Enabling or disabling control logic
170
+ - Sending commands to a PLC
171
+ - Triggering local relays or outputs
172
+
173
+ ## Store and Forward
174
+
175
+ The **3DM Out** node includes built-in store and forward.
176
+
177
+ If the cloud connection is unavailable, valid telemetry is stored locally on the gateway.
178
+
179
+ When the connection returns, stored telemetry is sent automatically.
180
+
181
+ This helps prevent data loss during temporary connection outages.
182
+
183
+ ## Safe Sending Limits
184
+
185
+ The **3DM Out** node includes safe sending protection.
186
+
187
+ This helps prevent users from accidentally sending data too quickly.
188
+
189
+ Stored data is handled automatically when the connection returns.
190
+
191
+ ## Typical Flows
192
+
193
+ Sending telemetry:
194
+
195
+ Sensor / PLC Data
196
+ ↓
197
+ Function Node
198
+ ↓
199
+ 3DM Out
200
+ ↓
201
+ 3DM.space
202
+
203
+ Receiving commands:
204
+
205
+ 3DM.space
206
+ ↓
207
+ 3DM In
208
+ ↓
209
+ Function Node
210
+ ↓
211
+ PLC / Output Logic
212
+
213
+ Receiving saved settings:
214
+
215
+ 3DM.space
216
+ ↓
217
+ 3DM In
218
+ ↓
219
+ 3DM Config Store
220
+ ↓
221
+ 24 Local Outputs
222
+
223
+ ## Notes
224
+
225
+ - Use **3DM Out** to send live data to 3DM.space. This can be read on 3DM devices via "Latest telemetry" under the device properties
226
+ - Use **3DM In** to receive commands and settings from 3DM.space. Data can be sent from 3DM.space to the PassPort via "Attributes" under the device properties
227
+ - Use **3DM Config Store** to save settings and run local control logic.
228
+ - Device credentials should be copied directly from 3DM.space.
229
+ - Node Name fields are optional and are only used inside Node-RED.
230
+ - Store and forward is handled automatically.
231
+ - Saved settings are stored locally on the PassPort.
232
+
233
+ ## Author
42
234
 
43
- The input must be a JSON object.
235
+ Smithtek
44
236
 
45
- Example:
237
+ ## License
46
238
 
47
- ```json
48
- {
49
- "pump_run": true,
50
- "flow_lpm": 125.5,
51
- "tank_level_percent": 64,
52
- "dc_voltage": 24.1
53
- }
239
+ GPL-3.0-or-later
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "node-red-contrib-3dm-space",
3
- "version": "1.0.0",
4
- "description": "Node-RED nodes for 3DM.space SCADA Cloud telemetry and attributes",
3
+ "version": "1.0.3",
4
+ "description": "Node-RED nodes for 3DM.space SCADA Cloud telemetry, attributes, and local config storage",
5
5
  "main": "3dm-cloud-config.js",
6
6
  "license": "GPL-3.0-or-later",
7
7
  "keywords": [
@@ -12,13 +12,16 @@
12
12
  "smithtek",
13
13
  "scada",
14
14
  "telemetry",
15
- "store-and-forward"
15
+ "store-and-forward",
16
+ "config-store",
17
+ "scheduler"
16
18
  ],
17
19
  "node-red": {
18
20
  "nodes": {
19
21
  "3dm-cloud-config": "3dm-cloud-config.js",
20
22
  "3dm-cloud-out": "3dm-cloud-out.js",
21
- "3dm-cloud-in": "3dm-cloud-in.js"
23
+ "3dm-cloud-in": "3dm-cloud-in.js",
24
+ "3dm-config-store": "3dm-config-store.js"
22
25
  }
23
26
  },
24
27
  "dependencies": {
@@ -27,4 +30,4 @@
27
30
  "optionalDependencies": {
28
31
  "node-persistent-queue": "^0.3.1"
29
32
  }
30
- }
33
+ }