node-red-contrib-knx-ultimate 4.3.15 → 4.3.17
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 +10 -0
- package/examples/Alerter - Device Alert Aggregation.json +196 -0
- package/examples/Auto Responder - Read Request Defaults.json +43 -0
- package/examples/Garage - Door Controller.json +132 -0
- package/examples/Global Context - Expose KNX Values.json +45 -0
- package/examples/HA Translator - Payload Conversion.json +118 -0
- package/examples/Hue Area Motion - Zone Presence.json +77 -0
- package/examples/Hue Battery - Level Status.json +77 -0
- package/examples/Hue Button - Short and Dim Commands.json +83 -0
- package/examples/Hue Camera Motion - Presence.json +77 -0
- package/examples/Hue Config - Bridge Template.json +27 -0
- package/examples/Hue Contact Sensor - Open Closed.json +75 -0
- package/examples/Hue Device Software Update - Availability.json +77 -0
- package/examples/Hue Humidity Sensor - Relative Humidity.json +77 -0
- package/examples/Hue Light - Switch and Brightness.json +67 -0
- package/examples/Hue Light Sensor - Lux to KNX.json +77 -0
- package/examples/Hue Motion - Presence Sensor.json +76 -0
- package/examples/Hue Plug - Switch and State.json +63 -0
- package/examples/Hue Scene - Recall from KNX.json +63 -0
- package/examples/Hue Tap Dial - Relative Dimming.json +76 -0
- package/examples/Hue Temperature Sensor - Celsius to KNX.json +77 -0
- package/examples/Hue Zigbee Connectivity - Online Status.json +77 -0
- package/examples/IoT Bridge - MQTT Bidirectional Mapping.json +132 -0
- package/examples/Load Control - Manual Shedding Mode.json +174 -0
- package/examples/Staircase - Timer, Override and Block.json +305 -0
- package/img/readmemain.png +0 -0
- package/nodes/locales/en/knxUltimateDateTime.html +13 -1
- package/nodes/locales/it/knxUltimateDateTime.html +13 -1
- package/package.json +3 -3
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"id": "lc_tab",
|
|
4
|
+
"type": "tab",
|
|
5
|
+
"label": "KNX Load Control",
|
|
6
|
+
"disabled": false,
|
|
7
|
+
"info": ""
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
"id": "lc_cfg",
|
|
11
|
+
"type": "knxUltimate-config",
|
|
12
|
+
"z": "",
|
|
13
|
+
"host": "224.0.23.12",
|
|
14
|
+
"port": "3671",
|
|
15
|
+
"physAddr": "15.15.216",
|
|
16
|
+
"suppressACKRequest": false,
|
|
17
|
+
"csv": "",
|
|
18
|
+
"KNXEthInterface": "Auto",
|
|
19
|
+
"KNXEthInterfaceManuallyInput": "",
|
|
20
|
+
"autoReconnect": "no"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"id": "lc_c",
|
|
24
|
+
"type": "comment",
|
|
25
|
+
"z": "lc_tab",
|
|
26
|
+
"name": "Manual shedding/unshedding with 5 priority loads",
|
|
27
|
+
"info": "",
|
|
28
|
+
"x": 430,
|
|
29
|
+
"y": 60,
|
|
30
|
+
"wires": []
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"id": "lc_node",
|
|
34
|
+
"type": "knxUltimateLoadControl",
|
|
35
|
+
"z": "lc_tab",
|
|
36
|
+
"server": "lc_cfg",
|
|
37
|
+
"name": "Load Control",
|
|
38
|
+
"controlMode": "msg",
|
|
39
|
+
"topic": "4/0/1",
|
|
40
|
+
"dpt": "14.056",
|
|
41
|
+
"wattLimit": 3000,
|
|
42
|
+
"sheddingCheckInterval": 15,
|
|
43
|
+
"sheddingRestoreDelay": 60,
|
|
44
|
+
"GA1": "4/1/1",
|
|
45
|
+
"DPT1": "1.001",
|
|
46
|
+
"Name1": "Water Heater",
|
|
47
|
+
"autoRestore1": true,
|
|
48
|
+
"MonitorGA1": "4/2/1",
|
|
49
|
+
"MonitorDPT1": "14.056",
|
|
50
|
+
"MonitorName1": "Water Heater W",
|
|
51
|
+
"GA2": "4/1/2",
|
|
52
|
+
"DPT2": "1.001",
|
|
53
|
+
"Name2": "EV Charger",
|
|
54
|
+
"autoRestore2": true,
|
|
55
|
+
"MonitorGA2": "4/2/2",
|
|
56
|
+
"MonitorDPT2": "14.056",
|
|
57
|
+
"MonitorName2": "EV Charger W",
|
|
58
|
+
"GA3": "4/1/3",
|
|
59
|
+
"DPT3": "1.001",
|
|
60
|
+
"Name3": "Boiler",
|
|
61
|
+
"autoRestore3": true,
|
|
62
|
+
"MonitorGA3": "4/2/3",
|
|
63
|
+
"MonitorDPT3": "14.056",
|
|
64
|
+
"MonitorName3": "Boiler W",
|
|
65
|
+
"GA4": "4/1/4",
|
|
66
|
+
"DPT4": "1.001",
|
|
67
|
+
"Name4": "Dryer",
|
|
68
|
+
"autoRestore4": true,
|
|
69
|
+
"MonitorGA4": "4/2/4",
|
|
70
|
+
"MonitorDPT4": "14.056",
|
|
71
|
+
"MonitorName4": "Dryer W",
|
|
72
|
+
"GA5": "4/1/5",
|
|
73
|
+
"DPT5": "1.001",
|
|
74
|
+
"Name5": "Oven",
|
|
75
|
+
"autoRestore5": true,
|
|
76
|
+
"MonitorGA5": "4/2/5",
|
|
77
|
+
"MonitorDPT5": "14.056",
|
|
78
|
+
"MonitorName5": "Oven W",
|
|
79
|
+
"x": 690,
|
|
80
|
+
"y": 240,
|
|
81
|
+
"wires": [
|
|
82
|
+
[
|
|
83
|
+
"lc_dbg"
|
|
84
|
+
]
|
|
85
|
+
]
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"id": "lc_shed",
|
|
89
|
+
"type": "inject",
|
|
90
|
+
"z": "lc_tab",
|
|
91
|
+
"name": "msg.shedding = shed",
|
|
92
|
+
"props": [
|
|
93
|
+
{
|
|
94
|
+
"p": "shedding",
|
|
95
|
+
"v": "shed",
|
|
96
|
+
"vt": "str"
|
|
97
|
+
}
|
|
98
|
+
],
|
|
99
|
+
"repeat": "",
|
|
100
|
+
"crontab": "",
|
|
101
|
+
"once": false,
|
|
102
|
+
"onceDelay": 0.1,
|
|
103
|
+
"x": 210,
|
|
104
|
+
"y": 200,
|
|
105
|
+
"wires": [
|
|
106
|
+
[
|
|
107
|
+
"lc_node"
|
|
108
|
+
]
|
|
109
|
+
]
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
"id": "lc_unshed",
|
|
113
|
+
"type": "inject",
|
|
114
|
+
"z": "lc_tab",
|
|
115
|
+
"name": "msg.shedding = unshed",
|
|
116
|
+
"props": [
|
|
117
|
+
{
|
|
118
|
+
"p": "shedding",
|
|
119
|
+
"v": "unshed",
|
|
120
|
+
"vt": "str"
|
|
121
|
+
}
|
|
122
|
+
],
|
|
123
|
+
"repeat": "",
|
|
124
|
+
"crontab": "",
|
|
125
|
+
"once": false,
|
|
126
|
+
"onceDelay": 0.1,
|
|
127
|
+
"x": 220,
|
|
128
|
+
"y": 240,
|
|
129
|
+
"wires": [
|
|
130
|
+
[
|
|
131
|
+
"lc_node"
|
|
132
|
+
]
|
|
133
|
+
]
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
"id": "lc_auto",
|
|
137
|
+
"type": "inject",
|
|
138
|
+
"z": "lc_tab",
|
|
139
|
+
"name": "msg.shedding = auto",
|
|
140
|
+
"props": [
|
|
141
|
+
{
|
|
142
|
+
"p": "shedding",
|
|
143
|
+
"v": "auto",
|
|
144
|
+
"vt": "str"
|
|
145
|
+
}
|
|
146
|
+
],
|
|
147
|
+
"repeat": "",
|
|
148
|
+
"crontab": "",
|
|
149
|
+
"once": false,
|
|
150
|
+
"onceDelay": 0.1,
|
|
151
|
+
"x": 210,
|
|
152
|
+
"y": 280,
|
|
153
|
+
"wires": [
|
|
154
|
+
[
|
|
155
|
+
"lc_node"
|
|
156
|
+
]
|
|
157
|
+
]
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
"id": "lc_dbg",
|
|
161
|
+
"type": "debug",
|
|
162
|
+
"z": "lc_tab",
|
|
163
|
+
"name": "Load control output",
|
|
164
|
+
"active": true,
|
|
165
|
+
"tosidebar": true,
|
|
166
|
+
"console": false,
|
|
167
|
+
"tostatus": true,
|
|
168
|
+
"complete": "true",
|
|
169
|
+
"targetType": "full",
|
|
170
|
+
"x": 950,
|
|
171
|
+
"y": 240,
|
|
172
|
+
"wires": []
|
|
173
|
+
}
|
|
174
|
+
]
|
|
@@ -0,0 +1,305 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"id": "stair_flow_1",
|
|
4
|
+
"type": "tab",
|
|
5
|
+
"label": "KNX Staircase",
|
|
6
|
+
"disabled": false,
|
|
7
|
+
"info": ""
|
|
8
|
+
},
|
|
9
|
+
{
|
|
10
|
+
"id": "stair_cfg_1",
|
|
11
|
+
"type": "knxUltimate-config",
|
|
12
|
+
"z": "",
|
|
13
|
+
"host": "224.0.23.12",
|
|
14
|
+
"port": "3671",
|
|
15
|
+
"physAddr": "15.15.210",
|
|
16
|
+
"suppressACKRequest": false,
|
|
17
|
+
"csv": "",
|
|
18
|
+
"KNXEthInterface": "Auto",
|
|
19
|
+
"KNXEthInterfaceManuallyInput": "",
|
|
20
|
+
"autoReconnect": "no"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"id": "stair_comment_1",
|
|
24
|
+
"type": "comment",
|
|
25
|
+
"z": "stair_flow_1",
|
|
26
|
+
"name": "Staircase timer with Trigger/Output/Status + Override + Block",
|
|
27
|
+
"info": "Use the inject nodes to test trigger/cancel. Override and Block are sent on KNX bus via the two knxUltimate helper nodes.",
|
|
28
|
+
"x": 430,
|
|
29
|
+
"y": 60,
|
|
30
|
+
"wires": []
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"id": "stair_node_1",
|
|
34
|
+
"type": "knxUltimateStaircase",
|
|
35
|
+
"z": "stair_flow_1",
|
|
36
|
+
"server": "stair_cfg_1",
|
|
37
|
+
"name": "Staircase Light",
|
|
38
|
+
"outputtopic": "events/staircase",
|
|
39
|
+
"gaTrigger": "1/1/1",
|
|
40
|
+
"nameTrigger": "Trigger pushbutton",
|
|
41
|
+
"dptTrigger": "1.001",
|
|
42
|
+
"gaOutput": "1/1/2",
|
|
43
|
+
"nameOutput": "Light actuator",
|
|
44
|
+
"dptOutput": "1.001",
|
|
45
|
+
"gaStatus": "1/1/3",
|
|
46
|
+
"nameStatus": "Staircase status",
|
|
47
|
+
"dptStatus": "1.001",
|
|
48
|
+
"gaOverride": "1/1/4",
|
|
49
|
+
"nameOverride": "Maintenance override",
|
|
50
|
+
"dptOverride": "1.001",
|
|
51
|
+
"gaBlock": "1/1/5",
|
|
52
|
+
"nameBlock": "Activation block",
|
|
53
|
+
"dptBlock": "1.001",
|
|
54
|
+
"timerSeconds": 45,
|
|
55
|
+
"extendMode": "restart",
|
|
56
|
+
"triggerOffCancels": "yes",
|
|
57
|
+
"preWarnEnable": true,
|
|
58
|
+
"preWarnSeconds": 10,
|
|
59
|
+
"preWarnMode": "status",
|
|
60
|
+
"preWarnFlashMs": 400,
|
|
61
|
+
"blockAction": "off",
|
|
62
|
+
"emitEvents": true,
|
|
63
|
+
"x": 700,
|
|
64
|
+
"y": 260,
|
|
65
|
+
"wires": [
|
|
66
|
+
[
|
|
67
|
+
"stair_dbg_1"
|
|
68
|
+
]
|
|
69
|
+
]
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"id": "stair_inj_on",
|
|
73
|
+
"type": "inject",
|
|
74
|
+
"z": "stair_flow_1",
|
|
75
|
+
"name": "Trigger ON",
|
|
76
|
+
"props": [
|
|
77
|
+
{
|
|
78
|
+
"p": "payload",
|
|
79
|
+
"v": "true",
|
|
80
|
+
"vt": "bool"
|
|
81
|
+
}
|
|
82
|
+
],
|
|
83
|
+
"repeat": "",
|
|
84
|
+
"crontab": "",
|
|
85
|
+
"once": false,
|
|
86
|
+
"onceDelay": 0.1,
|
|
87
|
+
"topic": "",
|
|
88
|
+
"x": 170,
|
|
89
|
+
"y": 220,
|
|
90
|
+
"wires": [
|
|
91
|
+
[
|
|
92
|
+
"stair_node_1"
|
|
93
|
+
]
|
|
94
|
+
]
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
"id": "stair_inj_off",
|
|
98
|
+
"type": "inject",
|
|
99
|
+
"z": "stair_flow_1",
|
|
100
|
+
"name": "Trigger OFF (cancel)",
|
|
101
|
+
"props": [
|
|
102
|
+
{
|
|
103
|
+
"p": "payload",
|
|
104
|
+
"v": "false",
|
|
105
|
+
"vt": "bool"
|
|
106
|
+
}
|
|
107
|
+
],
|
|
108
|
+
"repeat": "",
|
|
109
|
+
"crontab": "",
|
|
110
|
+
"once": false,
|
|
111
|
+
"onceDelay": 0.1,
|
|
112
|
+
"topic": "",
|
|
113
|
+
"x": 190,
|
|
114
|
+
"y": 260,
|
|
115
|
+
"wires": [
|
|
116
|
+
[
|
|
117
|
+
"stair_node_1"
|
|
118
|
+
]
|
|
119
|
+
]
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
"id": "stair_inj_toggle",
|
|
123
|
+
"type": "inject",
|
|
124
|
+
"z": "stair_flow_1",
|
|
125
|
+
"name": "Trigger command (string)",
|
|
126
|
+
"props": [
|
|
127
|
+
{
|
|
128
|
+
"p": "payload",
|
|
129
|
+
"v": "trigger",
|
|
130
|
+
"vt": "str"
|
|
131
|
+
}
|
|
132
|
+
],
|
|
133
|
+
"repeat": "",
|
|
134
|
+
"crontab": "",
|
|
135
|
+
"once": false,
|
|
136
|
+
"onceDelay": 0.1,
|
|
137
|
+
"topic": "",
|
|
138
|
+
"x": 190,
|
|
139
|
+
"y": 300,
|
|
140
|
+
"wires": [
|
|
141
|
+
[
|
|
142
|
+
"stair_node_1"
|
|
143
|
+
]
|
|
144
|
+
]
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
"id": "stair_dbg_1",
|
|
148
|
+
"type": "debug",
|
|
149
|
+
"z": "stair_flow_1",
|
|
150
|
+
"name": "Staircase events",
|
|
151
|
+
"active": true,
|
|
152
|
+
"tosidebar": true,
|
|
153
|
+
"console": false,
|
|
154
|
+
"tostatus": true,
|
|
155
|
+
"complete": "true",
|
|
156
|
+
"targetType": "full",
|
|
157
|
+
"x": 940,
|
|
158
|
+
"y": 260,
|
|
159
|
+
"wires": []
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
"id": "stair_override_node",
|
|
163
|
+
"type": "knxUltimate",
|
|
164
|
+
"z": "stair_flow_1",
|
|
165
|
+
"server": "stair_cfg_1",
|
|
166
|
+
"topic": "1/1/4",
|
|
167
|
+
"dpt": "1.001",
|
|
168
|
+
"initialread": false,
|
|
169
|
+
"notifyreadrequest": false,
|
|
170
|
+
"notifyresponse": true,
|
|
171
|
+
"notifywrite": false,
|
|
172
|
+
"notifyreadrequestalsorespondtobus": true,
|
|
173
|
+
"notifyreadrequestalsorespondtobusdefaultvalueifnotinitialized": "0",
|
|
174
|
+
"listenallga": false,
|
|
175
|
+
"name": "Override command GA",
|
|
176
|
+
"outputtype": "write",
|
|
177
|
+
"outputRBE": false,
|
|
178
|
+
"inputRBE": false,
|
|
179
|
+
"x": 690,
|
|
180
|
+
"y": 420,
|
|
181
|
+
"wires": [
|
|
182
|
+
[]
|
|
183
|
+
]
|
|
184
|
+
},
|
|
185
|
+
{
|
|
186
|
+
"id": "stair_override_on",
|
|
187
|
+
"type": "inject",
|
|
188
|
+
"z": "stair_flow_1",
|
|
189
|
+
"name": "Override ON (GA 1/1/4)",
|
|
190
|
+
"props": [
|
|
191
|
+
{
|
|
192
|
+
"p": "payload",
|
|
193
|
+
"v": "true",
|
|
194
|
+
"vt": "bool"
|
|
195
|
+
}
|
|
196
|
+
],
|
|
197
|
+
"repeat": "",
|
|
198
|
+
"crontab": "",
|
|
199
|
+
"once": false,
|
|
200
|
+
"onceDelay": 0.1,
|
|
201
|
+
"x": 210,
|
|
202
|
+
"y": 400,
|
|
203
|
+
"wires": [
|
|
204
|
+
[
|
|
205
|
+
"stair_override_node"
|
|
206
|
+
]
|
|
207
|
+
]
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
"id": "stair_override_off",
|
|
211
|
+
"type": "inject",
|
|
212
|
+
"z": "stair_flow_1",
|
|
213
|
+
"name": "Override OFF (GA 1/1/4)",
|
|
214
|
+
"props": [
|
|
215
|
+
{
|
|
216
|
+
"p": "payload",
|
|
217
|
+
"v": "false",
|
|
218
|
+
"vt": "bool"
|
|
219
|
+
}
|
|
220
|
+
],
|
|
221
|
+
"repeat": "",
|
|
222
|
+
"crontab": "",
|
|
223
|
+
"once": false,
|
|
224
|
+
"onceDelay": 0.1,
|
|
225
|
+
"x": 210,
|
|
226
|
+
"y": 440,
|
|
227
|
+
"wires": [
|
|
228
|
+
[
|
|
229
|
+
"stair_override_node"
|
|
230
|
+
]
|
|
231
|
+
]
|
|
232
|
+
},
|
|
233
|
+
{
|
|
234
|
+
"id": "stair_block_node",
|
|
235
|
+
"type": "knxUltimate",
|
|
236
|
+
"z": "stair_flow_1",
|
|
237
|
+
"server": "stair_cfg_1",
|
|
238
|
+
"topic": "1/1/5",
|
|
239
|
+
"dpt": "1.001",
|
|
240
|
+
"initialread": false,
|
|
241
|
+
"notifyreadrequest": false,
|
|
242
|
+
"notifyresponse": true,
|
|
243
|
+
"notifywrite": false,
|
|
244
|
+
"notifyreadrequestalsorespondtobus": true,
|
|
245
|
+
"notifyreadrequestalsorespondtobusdefaultvalueifnotinitialized": "0",
|
|
246
|
+
"listenallga": false,
|
|
247
|
+
"name": "Block command GA",
|
|
248
|
+
"outputtype": "write",
|
|
249
|
+
"outputRBE": false,
|
|
250
|
+
"inputRBE": false,
|
|
251
|
+
"x": 680,
|
|
252
|
+
"y": 520,
|
|
253
|
+
"wires": [
|
|
254
|
+
[]
|
|
255
|
+
]
|
|
256
|
+
},
|
|
257
|
+
{
|
|
258
|
+
"id": "stair_block_on",
|
|
259
|
+
"type": "inject",
|
|
260
|
+
"z": "stair_flow_1",
|
|
261
|
+
"name": "Block ON (GA 1/1/5)",
|
|
262
|
+
"props": [
|
|
263
|
+
{
|
|
264
|
+
"p": "payload",
|
|
265
|
+
"v": "true",
|
|
266
|
+
"vt": "bool"
|
|
267
|
+
}
|
|
268
|
+
],
|
|
269
|
+
"repeat": "",
|
|
270
|
+
"crontab": "",
|
|
271
|
+
"once": false,
|
|
272
|
+
"onceDelay": 0.1,
|
|
273
|
+
"x": 190,
|
|
274
|
+
"y": 500,
|
|
275
|
+
"wires": [
|
|
276
|
+
[
|
|
277
|
+
"stair_block_node"
|
|
278
|
+
]
|
|
279
|
+
]
|
|
280
|
+
},
|
|
281
|
+
{
|
|
282
|
+
"id": "stair_block_off",
|
|
283
|
+
"type": "inject",
|
|
284
|
+
"z": "stair_flow_1",
|
|
285
|
+
"name": "Block OFF (GA 1/1/5)",
|
|
286
|
+
"props": [
|
|
287
|
+
{
|
|
288
|
+
"p": "payload",
|
|
289
|
+
"v": "false",
|
|
290
|
+
"vt": "bool"
|
|
291
|
+
}
|
|
292
|
+
],
|
|
293
|
+
"repeat": "",
|
|
294
|
+
"crontab": "",
|
|
295
|
+
"once": false,
|
|
296
|
+
"onceDelay": 0.1,
|
|
297
|
+
"x": 190,
|
|
298
|
+
"y": 540,
|
|
299
|
+
"wires": [
|
|
300
|
+
[
|
|
301
|
+
"stair_block_node"
|
|
302
|
+
]
|
|
303
|
+
]
|
|
304
|
+
}
|
|
305
|
+
]
|
package/img/readmemain.png
CHANGED
|
Binary file
|
|
@@ -10,6 +10,9 @@ It can send:
|
|
|
10
10
|
|
|
11
11
|
You can configure one or more group addresses and the node will write to all configured outputs.
|
|
12
12
|
|
|
13
|
+
Note about **DPT 19.001**:
|
|
14
|
+
- the node starts from a JavaScript `Date` and converts it to KNX DateTime via the KNX engine.
|
|
15
|
+
|
|
13
16
|
## When it sends
|
|
14
17
|
|
|
15
18
|
- **On deploy/startup** (optional, with delay).
|
|
@@ -26,6 +29,10 @@ Supported payloads:
|
|
|
26
29
|
- a timestamp number (milliseconds since epoch)
|
|
27
30
|
- a string accepted by `new Date("...")`
|
|
28
31
|
- `"now"`
|
|
32
|
+
- an object with one of these fields:
|
|
33
|
+
- `msg.payload.dateTime`
|
|
34
|
+
- `msg.payload.timestamp`
|
|
35
|
+
- `msg.payload.epoch`
|
|
29
36
|
|
|
30
37
|
Example:
|
|
31
38
|
|
|
@@ -34,12 +41,17 @@ msg.payload = new Date();
|
|
|
34
41
|
return msg;
|
|
35
42
|
```
|
|
36
43
|
|
|
44
|
+
## Gateway disconnected
|
|
45
|
+
|
|
46
|
+
If the KNX gateway is disconnected, the send is queued and sent automatically when the connection comes back.
|
|
47
|
+
The node keeps **only one pending request** (the latest one).
|
|
48
|
+
|
|
37
49
|
## Output
|
|
38
50
|
|
|
39
51
|
The node emits one message per send:
|
|
40
52
|
- `msg.payload`: the `Date` that has been written
|
|
41
53
|
- `msg.sent`: array of `{ ga, dpt, name }`
|
|
42
54
|
- `msg.reason`: `input`, `startup`, `periodic` or `button`
|
|
55
|
+
- `msg.knxUltimateDateTime.date`: date/time in ISO format (`toISOString()`)
|
|
43
56
|
|
|
44
57
|
</script>
|
|
45
|
-
|
|
@@ -10,6 +10,9 @@ Può inviare:
|
|
|
10
10
|
|
|
11
11
|
Puoi configurare uno o più indirizzi di gruppo: il nodo scrive su tutti quelli configurati.
|
|
12
12
|
|
|
13
|
+
Nota su **DPT 19.001**:
|
|
14
|
+
- il nodo parte da una `Date` JavaScript e la converte in telegramma KNX DateTime tramite l'engine KNX.
|
|
15
|
+
|
|
13
16
|
## Quando invia
|
|
14
17
|
|
|
15
18
|
- **Al deploy/avvio** (opzionale, con ritardo).
|
|
@@ -26,6 +29,10 @@ Payload supportati:
|
|
|
26
29
|
- numero timestamp (millisecondi dall'epoch)
|
|
27
30
|
- stringa accettata da `new Date("...")`
|
|
28
31
|
- `"now"`
|
|
32
|
+
- oggetto con uno di questi campi:
|
|
33
|
+
- `msg.payload.dateTime`
|
|
34
|
+
- `msg.payload.timestamp`
|
|
35
|
+
- `msg.payload.epoch`
|
|
29
36
|
|
|
30
37
|
Esempio:
|
|
31
38
|
|
|
@@ -34,12 +41,17 @@ msg.payload = new Date();
|
|
|
34
41
|
return msg;
|
|
35
42
|
```
|
|
36
43
|
|
|
44
|
+
## Gateway non connesso
|
|
45
|
+
|
|
46
|
+
Se il gateway KNX non è connesso, l'invio viene messo in coda e parte appena torna la connessione.
|
|
47
|
+
Il nodo mantiene **una sola richiesta pendente** (l'ultima ricevuta).
|
|
48
|
+
|
|
37
49
|
## Output
|
|
38
50
|
|
|
39
51
|
Il nodo emette un messaggio ad ogni invio:
|
|
40
52
|
- `msg.payload`: la `Date` inviata
|
|
41
53
|
- `msg.sent`: array di `{ ga, dpt, name }`
|
|
42
54
|
- `msg.reason`: `input`, `startup`, `periodic` o `button`
|
|
55
|
+
- `msg.knxUltimateDateTime.date`: data/ora in formato ISO (`toISOString()`)
|
|
43
56
|
|
|
44
57
|
</script>
|
|
45
|
-
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"engines": {
|
|
4
4
|
"node": ">=20.18.1"
|
|
5
5
|
},
|
|
6
|
-
"version": "4.3.
|
|
6
|
+
"version": "4.3.17",
|
|
7
7
|
"description": "Control your KNX and KNX Secure intallation via Node-Red! A bunch of KNX nodes, with integrated Philips HUE control, ETS group address importer, KNX AI for diagnosticsand KNX routing between interfaces. Easy to use and highly configurable.",
|
|
8
8
|
"files": [
|
|
9
9
|
"nodes/",
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"dns-sync": "0.2.1",
|
|
20
20
|
"google-translate-tts": "^0.3.0",
|
|
21
21
|
"js-yaml": "4.1.1",
|
|
22
|
-
"knxultimate": "5.5.
|
|
22
|
+
"knxultimate": "5.5.7",
|
|
23
23
|
"lodash": "4.18.1",
|
|
24
24
|
"node-color-log": "12.0.1",
|
|
25
25
|
"ping": "0.4.4",
|
|
@@ -117,4 +117,4 @@
|
|
|
117
117
|
"vite": "^7.1.3",
|
|
118
118
|
"vue": "^3.5.21"
|
|
119
119
|
}
|
|
120
|
-
}
|
|
120
|
+
}
|