matterbridge 1.2.3 → 1.2.5

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 (45) hide show
  1. package/CHANGELOG.md +189 -171
  2. package/README.md +379 -297
  3. package/TODO.md +7 -0
  4. package/dist/AirQualityCluster.d.ts +134 -104
  5. package/dist/AirQualityCluster.d.ts.map +1 -1
  6. package/dist/AirQualityCluster.js +43 -26
  7. package/dist/AirQualityCluster.js.map +1 -1
  8. package/dist/EveHistoryCluster.d.ts +446 -0
  9. package/dist/EveHistoryCluster.d.ts.map +1 -0
  10. package/dist/EveHistoryCluster.js +170 -0
  11. package/dist/EveHistoryCluster.js.map +1 -0
  12. package/dist/TvocCluster.d.ts +364 -148
  13. package/dist/TvocCluster.d.ts.map +1 -1
  14. package/dist/TvocCluster.js +115 -32
  15. package/dist/TvocCluster.js.map +1 -1
  16. package/dist/cli.js +6 -1
  17. package/dist/cli.js.map +1 -1
  18. package/dist/index.d.ts +3 -0
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +3 -0
  21. package/dist/index.js.map +1 -1
  22. package/dist/matterbridge.d.ts +9 -1
  23. package/dist/matterbridge.d.ts.map +1 -1
  24. package/dist/matterbridge.js +338 -150
  25. package/dist/matterbridge.js.map +1 -1
  26. package/dist/matterbridgeController.d.ts.map +1 -1
  27. package/dist/matterbridgeController.js +9 -0
  28. package/dist/matterbridgeController.js.map +1 -1
  29. package/dist/matterbridgeDevice.d.ts +1254 -9
  30. package/dist/matterbridgeDevice.d.ts.map +1 -1
  31. package/dist/matterbridgeDevice.js +372 -91
  32. package/dist/matterbridgeDevice.js.map +1 -1
  33. package/frontend/build/asset-manifest.json +3 -3
  34. package/frontend/build/index.html +1 -1
  35. package/frontend/build/matterbridge 32x32.png +0 -0
  36. package/frontend/build/matterbridge 64x64.png +0 -0
  37. package/frontend/build/static/css/main.61f6cf42.css.map +1 -1
  38. package/frontend/build/static/js/main.6b861489.js +3 -0
  39. package/frontend/build/static/js/main.6b861489.js.map +1 -0
  40. package/matterbridge.service +18 -0
  41. package/package.json +88 -87
  42. package/frontend/build/Matterbridge.jpg +0 -0
  43. package/frontend/build/static/js/main.e3553a4d.js +0 -3
  44. package/frontend/build/static/js/main.e3553a4d.js.map +0 -1
  45. /package/frontend/build/static/js/{main.e3553a4d.js.LICENSE.txt → main.6b861489.js.LICENSE.txt} +0 -0
package/README.md CHANGED
@@ -1,298 +1,380 @@
1
- # <img src="https://github.com/Luligu/matterbridge/blob/main/frontend/public/matterbridge%2064x64.png" alt="Matterbridge Logo" width="64px" height="64px">&nbsp;&nbsp;&nbsp;Matterbridge
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
- ![Node.js CI](https://github.com/Luligu/matterbridge/actions/workflows/build.yml/badge.svg)
6
-
7
-
8
- [![power by](https://img.shields.io/badge/powered%20by-matter--history-blue)](https://www.npmjs.com/package/matter-history)
9
- [![power by](https://img.shields.io/badge/powered%20by-node--ansi--logger-blue)](https://www.npmjs.com/package/node-ansi-logger)
10
- [![power by](https://img.shields.io/badge/powered%20by-node--persist--manager-blue)](https://www.npmjs.com/package/node-persist-manager)
11
-
12
- ---
13
-
14
-
15
- Matterbridge is a matter.js plugin manager.
16
-
17
- It allows you to have all your Matter devices up and running in a couple of minutes without
18
- having to deal with the pairing process of each single device.
19
-
20
- The developer just focuses on the device development extending the provided classes.
21
-
22
- Just pair Matterbridge once, and it will load all your registered plugins.
23
-
24
- This project aims to allow the porting of homebridge plugins to matterbridge plugins without recoding everything.
25
-
26
- It creates a device to pair in any ecosystem like Apple Home, Google Home, Amazon Alexa, or
27
- any other ecosystem supporting Matter.
28
-
29
- The project is build on top of https://github.com/project-chip/matter.js.
30
-
31
- A special thank to Apollon77 for his incredible work.
32
-
33
- ## Installation
34
-
35
- Follow these steps to install Matterbridge:
36
-
37
- on Windows:
38
- ```
39
- npm install -g matterbridge
40
- ```
41
-
42
- on Linux (you need the necessary permissions):
43
- ```
44
- sudo npm install -g matterbridge
45
- ```
46
-
47
- Test the installation with:
48
- ```
49
- matterbridge -bridge
50
- ```
51
-
52
- Now it is possible to open the frontend at the link provided (default: http://localhost:3000)
53
-
54
- ## Usage
55
-
56
- ### mode bridge
57
-
58
- ```
59
- matterbridge -bridge
60
- ```
61
-
62
- Matterbridge only exposes itself, and you have to pair it scanning the QR code shown in the frontend or in the console.
63
-
64
- ### mode childbridge
65
-
66
- ```
67
- matterbridge -childbridge
68
- ```
69
-
70
- Matterbridge exposes each registered plugins, and you have to pair each one by scanning the QR code shown in the frontend or in the console.
71
-
72
- ### Use matterbridge -help to see the command line syntax
73
-
74
- ```
75
- matterbridge -help
76
- ```
77
-
78
-
79
- ## Frontend
80
-
81
- Matterbridge has a frontend available on http://localhost:3000
82
-
83
- You can change the default port by adding the frontend parameter when you launch it.
84
- Here's how to specify a different port number:
85
- ```
86
- matterbridge -bridge -frontend [port number]
87
- ```
88
- ```
89
- matterbridge -childbridge -frontend [port number]
90
- ```
91
-
92
- Home page:
93
- ![See the screenshot here](https://github.com/Luligu/matterbridge/blob/main/Screenshot%20home.jpg)
94
-
95
- Devices page:
96
- ![See the screenshot here](https://github.com/Luligu/matterbridge/blob/main/Screenshot%20devices.jpg)
97
-
98
- ## Plugins
99
-
100
- ### Accessory platform example
101
-
102
- This an example of an accessory platform plugin.
103
-
104
- It exposes a cover device that continuously moves position and shows how to use the command handlers (you can control the device).
105
-
106
- An Accessory platform plugin only exposes one device.
107
-
108
- [See the plugin homepage here](https://github.com/Luligu/matterbridge-example-accessory-platform)
109
-
110
- ### Dynamic platform example
111
-
112
- This an example of a dynamic platform plugin.
113
-
114
- It exposes a switch with onOff, a light with onOff-levelControl-colorControl, an outlet with onOff and a cover device.
115
-
116
- All these devices continuously change state and position. The plugin also shows how to use all the command handlers (you can control all the devices).
117
-
118
- A Dynamic platform plugin exposes as many devices as you need (the limit for the Home app is 150 accessories for bridge).
119
-
120
- Matterbridge can run as many plugins as you want.
121
-
122
- [See the plugin homepage here](https://github.com/Luligu/matterbridge-example-dynamic-platform)
123
-
124
- ### Example plugins to show the usage of history in matter
125
-
126
- [Door plugin with history](https://github.com/Luligu/matterbridge-eve-door)
127
-
128
- [Motion plugin with history](https://github.com/Luligu/matterbridge-eve-motion)
129
-
130
- [Energy plugin with history](https://github.com/Luligu/matterbridge-eve-energy)
131
-
132
- [Weather plugin with history](https://github.com/Luligu/matterbridge-eve-weather)
133
-
134
- [Room plugin with history](https://github.com/Luligu/matterbridge-eve-room)
135
-
136
- ### Production-level plugins
137
-
138
- [zigbee2mqtt](https://github.com/Luligu/matterbridge-zigbee2mqtt)
139
-
140
- ## How to install and register a production-level plugin (from npm)
141
-
142
- To install i.e. https://github.com/Luligu/matterbridge-zigbee2mqtt
143
-
144
- On windows:
145
- ```
146
- cd $HOME\Matterbridge
147
- npm install -g matterbridge-zigbee2mqtt
148
- matterbridge -add matterbridge-zigbee2mqtt
149
- ```
150
-
151
- On linux:
152
- ```
153
- cd ~/Matterbridge
154
- sudo npm install -g matterbridge-zigbee2mqtt
155
- matterbridge -add matterbridge-zigbee2mqtt
156
- ```
157
-
158
- ## How to install and register a plugin for development (from github)
159
-
160
- To install i.e. https://github.com/Luligu/matterbridge-example-accessory-platform
161
-
162
- On windows:
163
- ```
164
- cd $HOME\Matterbridge
165
- ```
166
-
167
- On linux:
168
- ```
169
- cd ~/Matterbridge
170
- ```
171
-
172
- then clone the plugin
173
-
174
- ```
175
- git clone https://github.com/Luligu/matterbridge-example-accessory-platform
176
- cd matterbridge-example-accessory-platform
177
- npm install
178
- npm run build
179
- ```
180
-
181
- then add the plugin to Matterbridge
182
- ```
183
- matterbridge -add .\
184
- ```
185
-
186
- ## How to add a plugin to Matterbridge
187
-
188
- ```
189
- matterbridge -add [plugin path]
190
- ```
191
-
192
- ## How to remove a plugin from Matterbridge
193
-
194
- ```
195
- matterbridge -remove [plugin path]
196
- ```
197
-
198
- ## How to disable a registered plugin
199
-
200
- ```
201
- matterbridge -disable [plugin path]
202
- ```
203
-
204
- ## How to enable a registered plugin
205
-
206
- ```
207
- matterbridge -enable [plugin path]
208
- ```
209
-
210
- ## How to create your plugin
211
-
212
- The easiest way is to clone:
213
-
214
- - https://github.com/Luligu/matterbridge-example-accessory-platform if you want to create an Accessory Platform Plugin.
215
-
216
-
217
- - https://github.com/Luligu/matterbridge-example-dynamic-platform if you want to create a Dynamic Platform Plugin.
218
-
219
- Then change the name, version, description and author in the package.json.
220
-
221
- Add your plugin logic in platform.ts.
222
-
223
- ## MatterbridgeDynamicPlatform and MatterbridgeAccessoryPlatform api
224
-
225
- ### name: string
226
- The plugin name.
227
-
228
- ### type: string
229
- The plugin platform type.
230
-
231
- ### config: object
232
- The plugin config (loaded before the platform constructor is called and saved after onShutdown() is called).
233
- Here you can store your plugin configuration (see matterbridge-zigbee2mqtt for example)
234
-
235
- ### async onStart(reason?: string)
236
- The method onStart() is where you have to create your MatterbridgeDevice and add all needed clusters and command handlers.
237
-
238
- The MatterbridgeDevice class has the create cluster methods already done and all command handlers needed (see plugin examples).
239
-
240
- The method is called when Matterbridge load the plugin.
241
-
242
- ### async onConfigure()
243
- The method onConfigure() is where you can configure or initialize your device.
244
-
245
- The method is called when the platform is commissioned.
246
-
247
- ### async onShutdown(reason?: string)
248
- The method onShutdown() is where you have to eventually cleanup some resources.
249
-
250
- The method is called when Matterbridge is shutting down.
251
-
252
- ### async registerDevice(device: MatterbridgeDevice)
253
- After you created your device, add it to the platform.
254
-
255
- ### async unregisterDevice(device: MatterbridgeDevice)
256
- You can unregister one or more device.
257
-
258
- ### async unregisterAllDevices()
259
- You can unregister all devices you added.
260
-
261
- It can be useful to call this method from onShutdown() if you don't want to keep all the devices during development.
262
-
263
- ## MatterbridgeDevice api
264
-
265
-
266
- # Contribution Guidelines
267
-
268
- Thank you for your interest in contributing to my project!
269
-
270
- I warmly welcome contributions to this project! Whether it's reporting bugs, proposing new features, updating documentation, or writing code, your help is greatly appreciated.
271
-
272
- ## Getting Started
273
-
274
- - Fork this repository to your own GitHub account and clone it to your local device.
275
- - Make the necessary changes and test them out
276
- - Commit your changes and push to your forked repository
277
-
278
- ## Submitting Changes
279
-
280
- - Create a new pull request from my repository and I'll be glad to check it out
281
- - Be sure to follow the existing code style
282
- - Add unit tests for any new or changed functionality if possible
283
- - In your pull request, do describe what your changes do and how they work
284
-
285
- ## Code of Conduct
286
-
287
- We believe in a welcoming and respectful community for all. Please make sure to follow our [Code of Conduct](LINK_TO_CODE_OF_CONDUCT) in all your interactions with the project.
288
-
289
- ## Support
290
-
291
- If you find this project helpful and you wish to support the ongoing development, you can do so by buying me a coffee.
292
- Click on the badge below to get started:
293
-
294
- <a href="https://www.buymeacoffee.com/luligugithub">
295
- <img src="./yellow-button.png" alt="Buy me a coffee" width="120">
296
- </a>
297
-
1
+ # <img src="https://github.com/Luligu/matterbridge/blob/main/frontend/public/matterbridge%2064x64.png" alt="Matterbridge Logo" width="64px" height="64px">&nbsp;&nbsp;&nbsp;Matterbridge
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
+ ![Node.js CI](https://github.com/Luligu/matterbridge/actions/workflows/build.yml/badge.svg)
6
+
7
+
8
+ [![power by](https://img.shields.io/badge/powered%20by-matter--history-blue)](https://www.npmjs.com/package/matter-history)
9
+ [![power by](https://img.shields.io/badge/powered%20by-node--ansi--logger-blue)](https://www.npmjs.com/package/node-ansi-logger)
10
+ [![power by](https://img.shields.io/badge/powered%20by-node--persist--manager-blue)](https://www.npmjs.com/package/node-persist-manager)
11
+
12
+ ---
13
+
14
+
15
+ Matterbridge is a matter.js plugin manager.
16
+
17
+ It allows you to have all your Matter devices up and running in a couple of minutes without
18
+ having to deal with the pairing process of each single device.
19
+
20
+ The developer just focuses on the device development extending the provided classes.
21
+
22
+ Just pair Matterbridge once, and it will load all your registered plugins.
23
+
24
+ This project aims to allow the porting of homebridge plugins to matterbridge plugins without recoding everything.
25
+
26
+ It creates a device to pair in any ecosystem like Apple Home, Google Home, Amazon Alexa, or
27
+ any other ecosystem supporting Matter like Home Assistant.
28
+
29
+ You don't need a hub or a dedicated new machine.
30
+
31
+ No complex setup just copa paste the installation scripts.
32
+
33
+ Matterbridge is light weight and run also on slow Linux machine with 512MB of memory.
34
+
35
+ It runs perfectly on Windows too.
36
+
37
+ The project is build on top of https://github.com/project-chip/matter.js.
38
+
39
+ A special thank to Apollon77 for his incredible work.
40
+
41
+ ## Installation
42
+
43
+ Follow these steps to install Matterbridge:
44
+
45
+ on Windows:
46
+ ```
47
+ npm install -g matterbridge
48
+ ```
49
+
50
+ on Linux (you need the necessary permissions):
51
+ ```
52
+ sudo npm install -g matterbridge
53
+ ```
54
+
55
+ Test the installation with:
56
+ ```
57
+ matterbridge -bridge
58
+ ```
59
+
60
+ Now it is possible to open the frontend at the link provided (default: http://localhost:3000)
61
+
62
+ ## Usage
63
+
64
+ ### mode bridge
65
+
66
+ ```
67
+ matterbridge -bridge
68
+ ```
69
+
70
+ Matterbridge only exposes itself, and you have to pair it scanning the QR code shown in the frontend or in the console.
71
+
72
+ ### mode childbridge
73
+
74
+ ```
75
+ matterbridge -childbridge
76
+ ```
77
+
78
+ Matterbridge exposes each registered plugins, and you have to pair each one by scanning the QR code shown in the frontend or in the console.
79
+
80
+ ### Use matterbridge -help to see the command line syntax
81
+
82
+ ```
83
+ matterbridge -help
84
+ ```
85
+
86
+ ## Frontend
87
+
88
+ Matterbridge has a frontend available on http://localhost:3000
89
+
90
+ You can change the default port by adding the frontend parameter when you launch it.
91
+
92
+ Here's how to specify a different port number:
93
+ ```
94
+ matterbridge -bridge -frontend [port number]
95
+ ```
96
+
97
+ ```
98
+ matterbridge -childbridge -frontend [port number]
99
+ ```
100
+
101
+ Home page:
102
+ ![See the screenshot here](https://github.com/Luligu/matterbridge/blob/main/Screenshot%20home.jpg)
103
+
104
+ Devices page:
105
+ ![See the screenshot here](https://github.com/Luligu/matterbridge/blob/main/Screenshot%20devices.jpg)
106
+
107
+ ## Plugins
108
+
109
+ ### Accessory platform example
110
+
111
+ This an example of an accessory platform plugin.
112
+
113
+ It exposes a virtual cover device that continuously moves position and shows how to use the command handlers (you can control the device).
114
+
115
+ An Accessory platform plugin only exposes one device.
116
+
117
+ [See the plugin homepage here](https://github.com/Luligu/matterbridge-example-accessory-platform)
118
+
119
+ ### Dynamic platform example
120
+
121
+ This an example of a dynamic platform plugin.
122
+
123
+ It exposes a switch with onOff, a light with onOff-levelControl-colorControl, an outlet with onOff and a WindoweCovering device.
124
+
125
+ All these virtual devices continuously change state and position. The plugin also shows how to use all the command handlers (you can control all the devices).
126
+
127
+ A Dynamic platform plugin exposes as many devices as you need (the limit for the Home app is 150 accessories for bridge).
128
+
129
+ Matterbridge can run as many plugins as you want.
130
+
131
+ [See the plugin homepage here](https://github.com/Luligu/matterbridge-example-dynamic-platform)
132
+
133
+ ### Example plugins to show the usage of history in matter
134
+
135
+ [Door plugin with history](https://github.com/Luligu/matterbridge-eve-door)
136
+
137
+ [Motion plugin with history](https://github.com/Luligu/matterbridge-eve-motion)
138
+
139
+ [Energy plugin with history](https://github.com/Luligu/matterbridge-eve-energy)
140
+
141
+ [Weather plugin with history](https://github.com/Luligu/matterbridge-eve-weather)
142
+
143
+ [Room plugin with history](https://github.com/Luligu/matterbridge-eve-room)
144
+
145
+ The history works in both bridge and childbridge mode.
146
+
147
+ The Eve app only shows the history when the plugins run like an AccessoryPlatform in childbridge mode (this means the plugin is paired directly).
148
+
149
+ ### Production-level plugins
150
+
151
+ [zigbee2mqtt](https://github.com/Luligu/matterbridge-zigbee2mqtt)
152
+
153
+ ## How to install and register a production-level plugin (from npm)
154
+
155
+ To install i.e. https://github.com/Luligu/matterbridge-zigbee2mqtt
156
+
157
+ On windows:
158
+ ```
159
+ cd $HOME\Matterbridge
160
+ npm install -g matterbridge-zigbee2mqtt
161
+ matterbridge -add matterbridge-zigbee2mqtt
162
+ ```
163
+
164
+ On linux:
165
+ ```
166
+ cd ~/Matterbridge
167
+ sudo npm install -g matterbridge-zigbee2mqtt
168
+ matterbridge -add matterbridge-zigbee2mqtt
169
+ ```
170
+
171
+ ## How to install and register a plugin for development (from github)
172
+
173
+ To install i.e. https://github.com/Luligu/matterbridge-example-accessory-platform
174
+
175
+ On windows:
176
+ ```
177
+ cd $HOME\Matterbridge
178
+ ```
179
+
180
+ On linux:
181
+ ```
182
+ cd ~/Matterbridge
183
+ ```
184
+
185
+ then clone the plugin
186
+
187
+ ```
188
+ git clone https://github.com/Luligu/matterbridge-example-accessory-platform
189
+ cd matterbridge-example-accessory-platform
190
+ npm install
191
+ npm run build
192
+ ```
193
+
194
+ then add the plugin to Matterbridge
195
+
196
+ ```
197
+ matterbridge -add .\
198
+ ```
199
+
200
+ ## How to add a plugin to Matterbridge
201
+
202
+ ```
203
+ matterbridge -add [plugin path or plugin name]
204
+ ```
205
+
206
+ ## How to remove a plugin from Matterbridge
207
+
208
+ ```
209
+ matterbridge -remove [plugin path or plugin name]
210
+ ```
211
+
212
+ ## How to disable a registered plugin
213
+
214
+ ```
215
+ matterbridge -disable [plugin path or plugin name]
216
+ ```
217
+
218
+ ## How to enable a registered plugin
219
+
220
+ ```
221
+ matterbridge -enable [plugin path or plugin name]
222
+ ```
223
+
224
+ ## How to create your plugin
225
+
226
+ The easiest way is to clone:
227
+
228
+ - https://github.com/Luligu/matterbridge-example-accessory-platform if you want to create an Accessory Platform Plugin.
229
+
230
+
231
+ - https://github.com/Luligu/matterbridge-example-dynamic-platform if you want to create a Dynamic Platform Plugin.
232
+
233
+ Then change the name, version, description and author in the package.json.
234
+
235
+ Add your plugin logic in platform.ts.
236
+
237
+ ## MatterbridgeDynamicPlatform and MatterbridgeAccessoryPlatform api
238
+
239
+ ### public name: string
240
+ The plugin name.
241
+
242
+ ### public type: string
243
+ The plugin platform type.
244
+
245
+ ### public config: object
246
+ The plugin config (loaded before the platform constructor is called and saved after onShutdown() is called).
247
+ Here you can store your plugin configuration (see matterbridge-zigbee2mqtt for example)
248
+
249
+ ### async onStart(reason?: string)
250
+ The method onStart() is where you have to create your MatterbridgeDevice and add all needed clusters and command handlers.
251
+
252
+ The MatterbridgeDevice class has the create cluster methods already done and all command handlers needed (see plugin examples).
253
+
254
+ The method is called when Matterbridge load the plugin.
255
+
256
+ ### async onConfigure()
257
+ The method onConfigure() is where you can configure or initialize your device.
258
+
259
+ The method is called when the platform is commissioned.
260
+
261
+ ### async onShutdown(reason?: string)
262
+ The method onShutdown() is where you have to eventually cleanup some resources.
263
+
264
+ The method is called when Matterbridge is shutting down.
265
+
266
+ ### async registerDevice(device: MatterbridgeDevice)
267
+ After you created your device, add it to the platform.
268
+
269
+ ### async unregisterDevice(device: MatterbridgeDevice)
270
+ You can unregister one or more device.
271
+
272
+ ### async unregisterAllDevices()
273
+ You can unregister all devices you added.
274
+
275
+ It can be useful to call this method from onShutdown() if you don't want to keep all the devices during development.
276
+
277
+ ## MatterbridgeDevice api
278
+
279
+ # Advanced configuration
280
+
281
+ ## Run matterbridge as a daemon with systemctl (Linux only)
282
+
283
+ Create a systemctl configuration file for Matterbridge
284
+
285
+ ```
286
+ sudo nano /etc/systemd/system/matterbridge.service
287
+ ```
288
+
289
+ Add the following to this file, replacing twice USER with your user name (e.g. pi):
290
+
291
+ ```
292
+ [Unit]
293
+ Description=matterbridge
294
+ After=network.target
295
+
296
+ [Service]
297
+ Type=simple
298
+ ExecStart=/usr/bin/matterbridge -bridge
299
+ WorkingDirectory=/home/<USER>/Matterbridge
300
+ StandardOutput=inherit
301
+ StandardError=inherit
302
+ Restart=always
303
+ RestartSec=10s
304
+ TimeoutStopSec=30s
305
+ User=<USER>
306
+
307
+ [Install]
308
+ WantedBy=multi-user.target
309
+ ```
310
+
311
+ If you modify it after, then run:
312
+ ```
313
+ sudo systemctl daemon-reload
314
+ ```
315
+
316
+ ### Start Matterbridge
317
+ ```
318
+ sudo systemctl start matterbridge
319
+ ```
320
+
321
+ ### Stop Matterbridge
322
+ ```
323
+ sudo systemctl stop matterbridge
324
+ ```
325
+
326
+ ### Show Matterbridge status
327
+ ```
328
+ sudo systemctl status matterbridge.service
329
+ ```
330
+
331
+ ### View the log of Matterbridge (this will keep the log colors)
332
+ ```
333
+ sudo journalctl -u matterbridge.service -f --output cat
334
+ ```
335
+
336
+ ### Enable Matterbridge to start automatically on boot
337
+
338
+ ```
339
+ sudo systemctl enable matterbridge.service
340
+ ```
341
+
342
+ ### Disable Matterbridge to start automatically on boot
343
+
344
+ ```
345
+ sudo systemctl disable matterbridge.service
346
+ ```
347
+
348
+ # Contribution Guidelines
349
+
350
+ Thank you for your interest in contributing to my project!
351
+
352
+ I warmly welcome contributions to this project! Whether it's reporting bugs, proposing new features, updating documentation, or writing code, your help is greatly appreciated.
353
+
354
+ ## Getting Started
355
+
356
+ - Fork this repository to your own GitHub account and clone it to your local device.
357
+ - Make the necessary changes and test them out
358
+ - Commit your changes and push to your forked repository
359
+
360
+ ## Submitting Changes
361
+
362
+ - Create a new pull request from my repository and I'll be glad to check it out
363
+ - Be sure to follow the existing code style
364
+ - Add unit tests for any new or changed functionality if possible
365
+ - In your pull request, do describe what your changes do and how they work
366
+
367
+ ## Code of Conduct
368
+
369
+ We believe in a welcoming and respectful community for all. Please make sure to follow our [Code of Conduct](LINK_TO_CODE_OF_CONDUCT) in all your interactions with the project.
370
+
371
+ ## Support
372
+
373
+ If you find this project helpful and you wish to support the ongoing development, you can do so by buying me a coffee.
374
+ Click on the badge below to get started:
375
+
376
+ <a href="https://www.buymeacoffee.com/luligugithub">
377
+ <img src="./yellow-button.png" alt="Buy me a coffee" width="120">
378
+ </a>
379
+
298
380
  Thank you for your support!