matterbridge 3.2.0-dev-20250801-f7eb2a2 → 3.2.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.
Files changed (252) hide show
  1. package/dist/cli.d.ts +26 -0
  2. package/dist/cli.d.ts.map +1 -0
  3. package/dist/cli.js +91 -2
  4. package/dist/cli.js.map +1 -0
  5. package/dist/cliEmitter.d.ts +34 -0
  6. package/dist/cliEmitter.d.ts.map +1 -0
  7. package/dist/cliEmitter.js +30 -0
  8. package/dist/cliEmitter.js.map +1 -0
  9. package/dist/clusters/export.d.ts +2 -0
  10. package/dist/clusters/export.d.ts.map +1 -0
  11. package/dist/clusters/export.js +2 -0
  12. package/dist/clusters/export.js.map +1 -0
  13. package/dist/defaultConfigSchema.d.ts +28 -0
  14. package/dist/defaultConfigSchema.d.ts.map +1 -0
  15. package/dist/defaultConfigSchema.js +24 -0
  16. package/dist/defaultConfigSchema.js.map +1 -0
  17. package/dist/deviceManager.d.ts +112 -0
  18. package/dist/deviceManager.d.ts.map +1 -0
  19. package/dist/deviceManager.js +94 -1
  20. package/dist/deviceManager.js.map +1 -0
  21. package/dist/devices/batteryStorage.d.ts +48 -0
  22. package/dist/devices/batteryStorage.d.ts.map +1 -0
  23. package/dist/devices/batteryStorage.js +48 -1
  24. package/dist/devices/batteryStorage.js.map +1 -0
  25. package/dist/devices/dishwasher.d.ts +91 -0
  26. package/dist/devices/dishwasher.d.ts.map +1 -0
  27. package/dist/devices/dishwasher.js +78 -3
  28. package/dist/devices/dishwasher.js.map +1 -0
  29. package/dist/devices/evse.d.ts +75 -0
  30. package/dist/devices/evse.d.ts.map +1 -0
  31. package/dist/devices/evse.js +74 -10
  32. package/dist/devices/evse.js.map +1 -0
  33. package/dist/devices/export.d.ts +11 -0
  34. package/dist/devices/export.d.ts.map +1 -0
  35. package/dist/devices/export.js +2 -0
  36. package/dist/devices/export.js.map +1 -0
  37. package/dist/devices/extractorHood.d.ts +46 -0
  38. package/dist/devices/extractorHood.d.ts.map +1 -0
  39. package/dist/devices/extractorHood.js +42 -0
  40. package/dist/devices/extractorHood.js.map +1 -0
  41. package/dist/devices/heatPump.d.ts +47 -0
  42. package/dist/devices/heatPump.d.ts.map +1 -0
  43. package/dist/devices/heatPump.js +50 -2
  44. package/dist/devices/heatPump.js.map +1 -0
  45. package/dist/devices/laundryDryer.d.ts +87 -0
  46. package/dist/devices/laundryDryer.d.ts.map +1 -0
  47. package/dist/devices/laundryDryer.js +83 -6
  48. package/dist/devices/laundryDryer.js.map +1 -0
  49. package/dist/devices/laundryWasher.d.ts +242 -0
  50. package/dist/devices/laundryWasher.d.ts.map +1 -0
  51. package/dist/devices/laundryWasher.js +91 -7
  52. package/dist/devices/laundryWasher.js.map +1 -0
  53. package/dist/devices/roboticVacuumCleaner.d.ts +112 -0
  54. package/dist/devices/roboticVacuumCleaner.d.ts.map +1 -0
  55. package/dist/devices/roboticVacuumCleaner.js +93 -7
  56. package/dist/devices/roboticVacuumCleaner.js.map +1 -0
  57. package/dist/devices/solarPower.d.ts +40 -0
  58. package/dist/devices/solarPower.d.ts.map +1 -0
  59. package/dist/devices/solarPower.js +38 -0
  60. package/dist/devices/solarPower.js.map +1 -0
  61. package/dist/devices/waterHeater.d.ts +111 -0
  62. package/dist/devices/waterHeater.d.ts.map +1 -0
  63. package/dist/devices/waterHeater.js +82 -2
  64. package/dist/devices/waterHeater.js.map +1 -0
  65. package/dist/dgram/coap.d.ts +205 -0
  66. package/dist/dgram/coap.d.ts.map +1 -0
  67. package/dist/dgram/coap.js +126 -13
  68. package/dist/dgram/coap.js.map +1 -0
  69. package/dist/dgram/dgram.d.ts +140 -0
  70. package/dist/dgram/dgram.d.ts.map +1 -0
  71. package/dist/dgram/dgram.js +113 -2
  72. package/dist/dgram/dgram.js.map +1 -0
  73. package/dist/dgram/mb_coap.d.ts +24 -0
  74. package/dist/dgram/mb_coap.d.ts.map +1 -0
  75. package/dist/dgram/mb_coap.js +41 -3
  76. package/dist/dgram/mb_coap.js.map +1 -0
  77. package/dist/dgram/mb_mdns.d.ts +24 -0
  78. package/dist/dgram/mb_mdns.d.ts.map +1 -0
  79. package/dist/dgram/mb_mdns.js +51 -13
  80. package/dist/dgram/mb_mdns.js.map +1 -0
  81. package/dist/dgram/mdns.d.ts +288 -0
  82. package/dist/dgram/mdns.d.ts.map +1 -0
  83. package/dist/dgram/mdns.js +298 -137
  84. package/dist/dgram/mdns.js.map +1 -0
  85. package/dist/dgram/multicast.d.ts +65 -0
  86. package/dist/dgram/multicast.d.ts.map +1 -0
  87. package/dist/dgram/multicast.js +60 -1
  88. package/dist/dgram/multicast.js.map +1 -0
  89. package/dist/dgram/unicast.d.ts +56 -0
  90. package/dist/dgram/unicast.d.ts.map +1 -0
  91. package/dist/dgram/unicast.js +54 -0
  92. package/dist/dgram/unicast.js.map +1 -0
  93. package/dist/frontend.d.ts +313 -0
  94. package/dist/frontend.d.ts.map +1 -0
  95. package/dist/frontend.js +448 -23
  96. package/dist/frontend.js.map +1 -0
  97. package/dist/globalMatterbridge.d.ts +59 -0
  98. package/dist/globalMatterbridge.d.ts.map +1 -0
  99. package/dist/globalMatterbridge.js +47 -0
  100. package/dist/globalMatterbridge.js.map +1 -0
  101. package/dist/helpers.d.ts +48 -0
  102. package/dist/helpers.d.ts.map +1 -0
  103. package/dist/helpers.js +53 -0
  104. package/dist/helpers.js.map +1 -0
  105. package/dist/index.d.ts +33 -0
  106. package/dist/index.d.ts.map +1 -0
  107. package/dist/index.js +30 -1
  108. package/dist/index.js.map +1 -0
  109. package/dist/logger/export.d.ts +2 -0
  110. package/dist/logger/export.d.ts.map +1 -0
  111. package/dist/logger/export.js +1 -0
  112. package/dist/logger/export.js.map +1 -0
  113. package/dist/matter/behaviors.d.ts +2 -0
  114. package/dist/matter/behaviors.d.ts.map +1 -0
  115. package/dist/matter/behaviors.js +2 -0
  116. package/dist/matter/behaviors.js.map +1 -0
  117. package/dist/matter/clusters.d.ts +2 -0
  118. package/dist/matter/clusters.d.ts.map +1 -0
  119. package/dist/matter/clusters.js +2 -0
  120. package/dist/matter/clusters.js.map +1 -0
  121. package/dist/matter/devices.d.ts +2 -0
  122. package/dist/matter/devices.d.ts.map +1 -0
  123. package/dist/matter/devices.js +2 -0
  124. package/dist/matter/devices.js.map +1 -0
  125. package/dist/matter/endpoints.d.ts +2 -0
  126. package/dist/matter/endpoints.d.ts.map +1 -0
  127. package/dist/matter/endpoints.js +2 -0
  128. package/dist/matter/endpoints.js.map +1 -0
  129. package/dist/matter/export.d.ts +5 -0
  130. package/dist/matter/export.d.ts.map +1 -0
  131. package/dist/matter/export.js +3 -0
  132. package/dist/matter/export.js.map +1 -0
  133. package/dist/matter/types.d.ts +3 -0
  134. package/dist/matter/types.d.ts.map +1 -0
  135. package/dist/matter/types.js +3 -0
  136. package/dist/matter/types.js.map +1 -0
  137. package/dist/matterbridge.d.ts +463 -0
  138. package/dist/matterbridge.d.ts.map +1 -0
  139. package/dist/matterbridge.js +802 -50
  140. package/dist/matterbridge.js.map +1 -0
  141. package/dist/matterbridgeAccessoryPlatform.d.ts +42 -0
  142. package/dist/matterbridgeAccessoryPlatform.d.ts.map +1 -0
  143. package/dist/matterbridgeAccessoryPlatform.js +36 -0
  144. package/dist/matterbridgeAccessoryPlatform.js.map +1 -0
  145. package/dist/matterbridgeBehaviors.d.ts +1351 -0
  146. package/dist/matterbridgeBehaviors.d.ts.map +1 -0
  147. package/dist/matterbridgeBehaviors.js +65 -5
  148. package/dist/matterbridgeBehaviors.js.map +1 -0
  149. package/dist/matterbridgeDeviceTypes.d.ts +709 -0
  150. package/dist/matterbridgeDeviceTypes.d.ts.map +1 -0
  151. package/dist/matterbridgeDeviceTypes.js +579 -15
  152. package/dist/matterbridgeDeviceTypes.js.map +1 -0
  153. package/dist/matterbridgeDynamicPlatform.d.ts +42 -0
  154. package/dist/matterbridgeDynamicPlatform.d.ts.map +1 -0
  155. package/dist/matterbridgeDynamicPlatform.js +36 -0
  156. package/dist/matterbridgeDynamicPlatform.js.map +1 -0
  157. package/dist/matterbridgeEndpoint.d.ts +1354 -0
  158. package/dist/matterbridgeEndpoint.d.ts.map +1 -0
  159. package/dist/matterbridgeEndpoint.js +1224 -55
  160. package/dist/matterbridgeEndpoint.js.map +1 -0
  161. package/dist/matterbridgeEndpointHelpers.d.ts +406 -0
  162. package/dist/matterbridgeEndpointHelpers.d.ts.map +1 -0
  163. package/dist/matterbridgeEndpointHelpers.js +344 -12
  164. package/dist/matterbridgeEndpointHelpers.js.map +1 -0
  165. package/dist/matterbridgePlatform.d.ts +310 -0
  166. package/dist/matterbridgePlatform.d.ts.map +1 -0
  167. package/dist/matterbridgePlatform.js +243 -0
  168. package/dist/matterbridgePlatform.js.map +1 -0
  169. package/dist/matterbridgeTypes.d.ts +197 -0
  170. package/dist/matterbridgeTypes.d.ts.map +1 -0
  171. package/dist/matterbridgeTypes.js +25 -0
  172. package/dist/matterbridgeTypes.js.map +1 -0
  173. package/dist/pluginManager.d.ts +270 -0
  174. package/dist/pluginManager.d.ts.map +1 -0
  175. package/dist/pluginManager.js +249 -3
  176. package/dist/pluginManager.js.map +1 -0
  177. package/dist/shelly.d.ts +174 -0
  178. package/dist/shelly.d.ts.map +1 -0
  179. package/dist/shelly.js +168 -7
  180. package/dist/shelly.js.map +1 -0
  181. package/dist/storage/export.d.ts +2 -0
  182. package/dist/storage/export.d.ts.map +1 -0
  183. package/dist/storage/export.js +1 -0
  184. package/dist/storage/export.js.map +1 -0
  185. package/dist/update.d.ts +75 -0
  186. package/dist/update.d.ts.map +1 -0
  187. package/dist/update.js +69 -0
  188. package/dist/update.js.map +1 -0
  189. package/dist/utils/colorUtils.d.ts +117 -0
  190. package/dist/utils/colorUtils.d.ts.map +1 -0
  191. package/dist/utils/colorUtils.js +263 -2
  192. package/dist/utils/colorUtils.js.map +1 -0
  193. package/dist/utils/commandLine.d.ts +59 -0
  194. package/dist/utils/commandLine.d.ts.map +1 -0
  195. package/dist/utils/commandLine.js +54 -0
  196. package/dist/utils/commandLine.js.map +1 -0
  197. package/dist/utils/copyDirectory.d.ts +33 -0
  198. package/dist/utils/copyDirectory.d.ts.map +1 -0
  199. package/dist/utils/copyDirectory.js +38 -1
  200. package/dist/utils/copyDirectory.js.map +1 -0
  201. package/dist/utils/createDirectory.d.ts +34 -0
  202. package/dist/utils/createDirectory.d.ts.map +1 -0
  203. package/dist/utils/createDirectory.js +33 -0
  204. package/dist/utils/createDirectory.js.map +1 -0
  205. package/dist/utils/createZip.d.ts +39 -0
  206. package/dist/utils/createZip.d.ts.map +1 -0
  207. package/dist/utils/createZip.js +47 -2
  208. package/dist/utils/createZip.js.map +1 -0
  209. package/dist/utils/deepCopy.d.ts +32 -0
  210. package/dist/utils/deepCopy.d.ts.map +1 -0
  211. package/dist/utils/deepCopy.js +39 -0
  212. package/dist/utils/deepCopy.js.map +1 -0
  213. package/dist/utils/deepEqual.d.ts +54 -0
  214. package/dist/utils/deepEqual.d.ts.map +1 -0
  215. package/dist/utils/deepEqual.js +72 -1
  216. package/dist/utils/deepEqual.js.map +1 -0
  217. package/dist/utils/error.d.ts +44 -0
  218. package/dist/utils/error.d.ts.map +1 -0
  219. package/dist/utils/error.js +41 -0
  220. package/dist/utils/error.js.map +1 -0
  221. package/dist/utils/export.d.ts +12 -0
  222. package/dist/utils/export.d.ts.map +1 -0
  223. package/dist/utils/export.js +1 -0
  224. package/dist/utils/export.js.map +1 -0
  225. package/dist/utils/hex.d.ts +89 -0
  226. package/dist/utils/hex.d.ts.map +1 -0
  227. package/dist/utils/hex.js +123 -0
  228. package/dist/utils/hex.js.map +1 -0
  229. package/dist/utils/isvalid.d.ts +103 -0
  230. package/dist/utils/isvalid.d.ts.map +1 -0
  231. package/dist/utils/isvalid.js +101 -0
  232. package/dist/utils/isvalid.js.map +1 -0
  233. package/dist/utils/network.d.ts +84 -0
  234. package/dist/utils/network.d.ts.map +1 -0
  235. package/dist/utils/network.js +94 -7
  236. package/dist/utils/network.js.map +1 -0
  237. package/dist/utils/spawn.d.ts +33 -0
  238. package/dist/utils/spawn.d.ts.map +1 -0
  239. package/dist/utils/spawn.js +40 -0
  240. package/dist/utils/spawn.js.map +1 -0
  241. package/dist/utils/wait.d.ts +56 -0
  242. package/dist/utils/wait.d.ts.map +1 -0
  243. package/dist/utils/wait.js +62 -9
  244. package/dist/utils/wait.js.map +1 -0
  245. package/docs/README-DEV.md +377 -0
  246. package/docs/README-DOCKER.md +208 -0
  247. package/docs/README-NGINX.md +235 -0
  248. package/docs/README-PODMAN.md +109 -0
  249. package/docs/README-SERVICE.md +212 -0
  250. package/docs/README.md +618 -0
  251. package/npm-shrinkwrap.json +2 -2
  252. package/package.json +2 -1
@@ -0,0 +1,212 @@
1
+ # <img src="frontend/public/matterbridge.svg" alt="Matterbridge Logo" width="64px" height="64px">&nbsp;&nbsp;&nbsp;Matterbridge systemd configuration
2
+
3
+ [![npm version](https://img.shields.io/npm/v/matterbridge.svg)](https://www.npmjs.com/package/matterbridge)
4
+ [![npm downloads](https://img.shields.io/npm/dt/matterbridge.svg)](https://www.npmjs.com/package/matterbridge)
5
+ [![Docker Version](https://img.shields.io/docker/v/luligu/matterbridge?label=docker%20version&sort=semver)](https://hub.docker.com/r/luligu/matterbridge)
6
+ [![Docker Pulls](https://img.shields.io/docker/pulls/luligu/matterbridge.svg)](https://hub.docker.com/r/luligu/matterbridge)
7
+ ![Node.js CI](https://github.com/Luligu/matterbridge/actions/workflows/build.yml/badge.svg)
8
+ ![CodeQL](https://github.com/Luligu/matterbridge/actions/workflows/codeql.yml/badge.svg)
9
+ [![codecov](https://codecov.io/gh/Luligu/matterbridge/branch/main/graph/badge.svg)](https://codecov.io/gh/Luligu/matterbridge)
10
+
11
+ [![power by](https://img.shields.io/badge/powered%20by-matter--history-blue)](https://www.npmjs.com/package/matter-history)
12
+ [![power by](https://img.shields.io/badge/powered%20by-node--ansi--logger-blue)](https://www.npmjs.com/package/node-ansi-logger)
13
+ [![power by](https://img.shields.io/badge/powered%20by-node--persist--manager-blue)](https://www.npmjs.com/package/node-persist-manager)
14
+
15
+ ---
16
+
17
+ # Advanced configuration
18
+
19
+ ## Run matterbridge as a daemon with systemctl (Linux only)
20
+
21
+ The easiest way to add systemctl is to use [Matterbridge service cli for linux](https://github.com/Luligu/mb-service-linux).
22
+
23
+ If your setup is too complex or you prefer to do it manually follow this method. You can still use mb-service to manage systemd after.
24
+
25
+ ### First create the Matterbridge directories
26
+
27
+ This will create the required directories if they don't exist
28
+
29
+ ```bash
30
+ cd ~
31
+ mkdir -p ./Matterbridge
32
+ mkdir -p ./.matterbridge
33
+ sudo chown -R $USER:$USER ./Matterbridge ./.matterbridge
34
+ ```
35
+
36
+ ### Then create a systemctl configuration file for Matterbridge
37
+
38
+ Create a systemctl configuration file for Matterbridge
39
+
40
+ ```bash
41
+ sudo nano /etc/systemd/system/matterbridge.service
42
+ ```
43
+
44
+ Add the following to this file, replacing 3 times (!) USER with your user name (e.g. WorkingDirectory=/home/pi/Matterbridge, User=pi and Group=pi):
45
+
46
+ You may need to adapt the configuration to your setup:
47
+
48
+ - execStart on some linux distribution can also be ExecStart==/usr/bin/matterbridge -service
49
+
50
+ ```
51
+ [Unit]
52
+ Description=matterbridge
53
+ After=network-online.target
54
+
55
+ [Service]
56
+ Type=simple
57
+ ExecStart=matterbridge -service
58
+ WorkingDirectory=/home/<USER>/Matterbridge
59
+ StandardOutput=inherit
60
+ StandardError=inherit
61
+ Restart=always
62
+ User=<USER>
63
+ Group=<USER>
64
+
65
+ [Install]
66
+ WantedBy=multi-user.target
67
+ ```
68
+
69
+ If you use the frontend with -ssl -frontend 443 and get an error message: "Port 443 requires elevated privileges",
70
+ add this:
71
+
72
+ ```
73
+ [Service]
74
+ AmbientCapabilities=CAP_NET_BIND_SERVICE
75
+ ```
76
+
77
+ If you use the matterbridge-bthome plugin add this:
78
+
79
+ ```
80
+ [Service]
81
+ AmbientCapabilities=CAP_NET_BIND_SERVICE CAP_NET_RAW CAP_NET_ADMIN
82
+ ```
83
+
84
+ If you modify matterbridge.service after, then run:
85
+
86
+ ```bash
87
+ sudo systemctl daemon-reload
88
+ sudo systemctl restart matterbridge.service
89
+ ```
90
+
91
+ ### Start Matterbridge
92
+
93
+ ```bash
94
+ sudo systemctl start matterbridge
95
+ ```
96
+
97
+ ### Stop Matterbridge
98
+
99
+ ```bash
100
+ sudo systemctl stop matterbridge
101
+ ```
102
+
103
+ ### Show Matterbridge status
104
+
105
+ ```bash
106
+ sudo systemctl status matterbridge.service
107
+ ```
108
+
109
+ ### Enable Matterbridge to start automatically on boot
110
+
111
+ ```bash
112
+ sudo systemctl enable matterbridge.service
113
+ ```
114
+
115
+ ### Disable Matterbridge from starting automatically on boot
116
+
117
+ ```bash
118
+ sudo systemctl disable matterbridge.service
119
+ ```
120
+
121
+ ### View the log of Matterbridge in real time (this will show the log with colors)
122
+
123
+ ```bash
124
+ sudo journalctl -u matterbridge.service -n 1000 -f --output cat
125
+ ```
126
+
127
+ ### Delete the logs older then 3 days (all of them not only the ones of Matterbridge!)
128
+
129
+ Check the space used
130
+
131
+ ```bash
132
+ sudo journalctl --disk-usage
133
+ ```
134
+
135
+ remove all log older then 3 days
136
+
137
+ ```bash
138
+ sudo journalctl --rotate
139
+ sudo journalctl --vacuum-time=3d
140
+ ```
141
+
142
+ ## Prevent the journal logs to grow
143
+
144
+ If you want to make the setting permanent to prevent the journal logs to grow too much, run
145
+
146
+ ```bash
147
+ sudo nano /etc/systemd/journald.conf
148
+ ```
149
+
150
+ add
151
+
152
+ ```bash
153
+ Compress=yes # Compress logs
154
+ MaxRetentionSec=3days # Keep logs for a maximum of 3 days.
155
+ MaxFileSec=1day # Rotate logs daily within the 3-day retention period.
156
+ ForwardToSyslog=no # Disable forwarding to syslog to prevent duplicate logging.
157
+ SystemMaxUse=100M # Limit persistent logs in /var/log/journal to 100 MB.
158
+ RuntimeMaxUse=100M # Limit runtime logs in /run/log/journal to 100 MB.
159
+ ```
160
+
161
+ save it and run
162
+
163
+ ```bash
164
+ sudo systemctl restart systemd-journald
165
+ ```
166
+
167
+ ## Verify that with your distro you can run sudo npm install -g matterbridge without the password
168
+
169
+ Run the following command to verify if you can install Matterbridge globally without being prompted for a password:
170
+
171
+ ```bash
172
+ sudo npm install -g matterbridge
173
+ ```
174
+
175
+ If you are not prompted for a password, no further action is required.
176
+
177
+ If that is not the case, open the sudoers file for editing using visudo
178
+
179
+ ```bash
180
+ sudo visudo
181
+ ```
182
+
183
+ verify the presence of of a line
184
+
185
+ ```
186
+ @includedir /etc/sudoers.d
187
+ ```
188
+
189
+ exit and create a configuration file for sudoers
190
+
191
+ ```bash
192
+ sudo nano /etc/sudoers.d/matterbridge
193
+ ```
194
+
195
+ add this line replacing USER with your user name (e.g. radxa ALL=(ALL) NOPASSWD: ALL)
196
+
197
+ ```
198
+ <USER> ALL=(ALL) NOPASSWD: ALL
199
+ ```
200
+
201
+ or if you prefers to only give access to npm without password try with (e.g. radxa ALL=(ALL) NOPASSWD: /usr/bin/npm)
202
+
203
+ ```
204
+ <USER> ALL=(ALL) NOPASSWD: /usr/bin/npm
205
+ ```
206
+
207
+ save the file and reload the settings with:
208
+
209
+ ```bash
210
+ sudo chmod 0440 /etc/sudoers.d/matterbridge
211
+ sudo visudo -c
212
+ ```