Skip to content

Commit 7e9421f

Browse files
authored
Release 2.0.5
* Update workflows * Improved change IP management * Dev 2.0.5-dev.1 * Update mdnsScanner to version 1.2.3 and enhance debug logging for mDNS queries and responses * Bump ShellyDevice version to 3.1.2 and update bthome_event type to ShellyData * Bump Shelly version to 2.2.3 and add getters/setters for network interface and IP addresses * Release 2.0.5 * Release 2.0.5 * Bump ShellyDevice version to 3.1.4 and update imports for better organization * Bump MdnsScanner version to 1.2.4 and add query event to MdnsScanner for enhanced device discovery * Release 2.0.5
1 parent 0fcad83 commit 7e9421f

15 files changed

Lines changed: 729 additions & 928 deletions

.github/workflows/build-matterbridge-plugin.yml

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,33 +9,33 @@ jobs:
99
strategy:
1010
fail-fast: false
1111
matrix:
12-
node-version: [18.x, 20.x, 22.x]
12+
node-version: [18.x, 20.x, 22.x, 23.x]
1313
os: [ubuntu-latest, windows-latest, macos-latest]
1414

1515
steps:
1616
- name: Checkout repository
1717
uses: actions/checkout@v4
1818

19-
- name: Use Node.js ${{ matrix.node-version }}
19+
- name: Use Node.js ${{ matrix.node-version }}
2020
uses: actions/setup-node@v4
2121
with:
2222
node-version: ${{ matrix.node-version }}
2323

2424
- name: Clean cache
2525
run: npm cache clean --force
26-
26+
2727
- name: Verify Node.js version
2828
run: node -v
2929

3030
- name: Verify Npm version
3131
run: npm -v
32-
32+
3333
- name: Install matterbridge
3434
run: npm install -g matterbridge --omit=dev
3535

3636
- name: Install dependencies
3737
run: npm ci
38-
38+
3939
- name: Link matterbridge
4040
run: npm link matterbridge
4141

@@ -47,4 +47,3 @@ jobs:
4747

4848
- name: Build the project
4949
run: npm run build
50-

.github/workflows/publish-matterbridge-plugin.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,32 +7,32 @@ on:
77
jobs:
88
publish:
99
runs-on: ubuntu-latest
10-
10+
1111
steps:
1212
- name: Checkout repository
1313
uses: actions/checkout@v4
1414

1515
- name: Setup Node.js
1616
uses: actions/setup-node@v4
1717
with:
18-
node-version: '20.x'
18+
node-version: '22.x'
1919
registry-url: 'https://registry.npmjs.org'
2020

2121
- name: Clean cache
2222
run: npm cache clean --force
23-
23+
2424
- name: Verify Node.js version
2525
run: node -v
2626

2727
- name: Verify Npm version
2828
run: npm -v
29-
29+
3030
- name: Install matterbridge
3131
run: npm install -g matterbridge --omit=dev
3232

3333
- name: Install dependencies
3434
run: npm ci
35-
35+
3636
- name: Link matterbridge
3737
run: npm link matterbridge
3838

.prettierignore

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,4 +11,6 @@ frontend
1111
docker
1212

1313
# Ignore all HTML files:
14-
**/*.html
14+
**/*.html
15+
16+
TODO.md

CHANGELOG.md

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,17 +21,47 @@ Removed options:
2121

2222
- exposePowerMeter: electrical sensors are enabled by default on existing setups. You can disable them globally or on a per-device basis adding "PowerMeter" to entityBlackList or deviceEntityBlackList, see [COMPONENTS.md documentation.](https://github.com/Luligu/matterbridge-shelly/blob/main/COMPONENTS.md). On new setups the "PowerMeter" components are already globally disabled by default.
2323

24+
- enableConfigDiscover and deviceIp: replaced by a config action in expert mode.
25+
2426
New setups:
2527

2628
- these components are blacklisted (with entityBlackList) by default: "PowerMeter", "Lux", "Illuminance", "Vibration", "Button". This allows to create simplified devices for the controllers that don't manage correctly composed devices (i.e. Alexa and SmartThings).
2729
- all switches are exposed like outlet (matter compliant).
2830
- shellyplusi4, shellyi4g3, shellyix3 and shellybutton1 are automatically added to inputMomentaryList when discovered.
29-
- expertMode is disabled. This makes the config showing only username, password and blackList.
31+
- expertMode is disabled. This makes the config showing only username, password, whitelist and blackList.
3032

3133
Expert mode:
3234

3335
The expertMode option has been added to show an advanced or simplified config.
3436

37+
## [2.0.5] - 2025-03-19
38+
39+
### Added
40+
41+
- [config] Added action: manually add a device with IP address. It allows to add the devices that are not discovered on the network with the mdns.
42+
- [config] Added action: remove a device from the storage with its device id. It allows to remove from the storage a single device when it has been removed from the network.
43+
- [config] Added action: scan network. It will send a mdns request on the network.
44+
- [mdns] Added a fully automatic IP change detection when the device is discovered on a different IP (no need to restart).
45+
- [shelly] Verified AZ Plug Gen3.
46+
- [shelly] Verified PlugSG3 Matter Gen3.
47+
- [BLU]: Verified new BLU firmware 1.0.22 on all BLU devices.
48+
- [TRV]: Verified new BLU TRV firmware 1.2.1.
49+
50+
### Removed
51+
52+
- [fetch]: Removed node-fetch package and use the global fetch.
53+
54+
### Changed
55+
56+
- [config] Removed enableConfigDiscover and deviceIp. Replaced by a config action (manually add a device with IP address).
57+
- [package]: Updated package.
58+
- [package]: Updated dependencies.
59+
- [plugin]: Requires Matterbridge 2.2.5.
60+
61+
<a href="https://www.buymeacoffee.com/luligugithub">
62+
<img src="bmc-button.svg" alt="Buy me a coffee" width="120">
63+
</a>
64+
3565
## [2.0.4] - 2025-03-13
3666

3767
### Added

matterbridge-shelly.schema.json

Lines changed: 54 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,23 @@
66
"name": {
77
"description": "Plugin name",
88
"type": "string",
9-
"readOnly": true
9+
"readOnly": true,
10+
"ui:widget": "hidden"
1011
},
1112
"type": {
1213
"description": "Plugin type",
1314
"type": "string",
14-
"readOnly": true
15+
"readOnly": true,
16+
"ui:widget": "hidden"
1517
},
1618
"username": {
17-
"description": "Username for password protected shelly devices (used only for gen 1 devices)",
19+
"description": "Username for password protected shelly devices (used only for gen 1 devices).",
1820
"type": "string"
1921
},
2022
"password": {
21-
"description": "Password for password protected shelly devices (must be unique for all the devices)",
22-
"type": "string"
23+
"description": "Password for password protected shelly devices (must be unique for all the devices).",
24+
"type": "string",
25+
"ui:widget": "password"
2326
},
2427
"switchList": {
2528
"description": "The devices in the list will be exposed as switches (don't use it for Alexa).",
@@ -66,8 +69,8 @@
6669
"uniqueItems": true,
6770
"selectFrom": "serial"
6871
},
69-
"blackList": {
70-
"description": "The devices in the list will not be exposed. Use the device id (e.g. shellyplus2pm-5443B23D81F8) or BLU addr (i.e. 7c:c6:b6:65:2d:87)",
72+
"nocacheList": {
73+
"description": "The devices in the list will not be loaded from the cache. Use the device id (e.g. shellyplus2pm-5443B23D81F8). If the list is empty, all the devices will be loaded from the cache.",
7174
"type": "array",
7275
"items": {
7376
"type": "string"
@@ -76,7 +79,16 @@
7679
"selectFrom": "serial"
7780
},
7881
"whiteList": {
79-
"description": "Only the devices in the list will be exposed. Use the device id (e.g. shellyplus2pm-5443B23D81F8) or BLU addr (i.e. 7c:c6:b6:65:2d:87).",
82+
"description": "Only the devices in the list will be exposed. Use the device id (e.g. shellyplus2pm-5443B23D81F8) or BLU addr (i.e. 7c:c6:b6:65:2d:87). If the list is empty, all the devices will be exposed.",
83+
"type": "array",
84+
"items": {
85+
"type": "string"
86+
},
87+
"uniqueItems": true,
88+
"selectFrom": "serial"
89+
},
90+
"blackList": {
91+
"description": "The devices in the list will not be exposed. Use the device id (e.g. shellyplus2pm-5443B23D81F8) or BLU addr (i.e. 7c:c6:b6:65:2d:87). If the list is empty, no devices will be excluded.",
8092
"type": "array",
8193
"items": {
8294
"type": "string"
@@ -85,7 +97,7 @@
8597
"selectFrom": "serial"
8698
},
8799
"entityBlackList": {
88-
"description": "The components in the list will not be exposed for all devices. Use the component name (i.e. Temperature)",
100+
"description": "The components in the list will not be exposed for all devices. Use the component name (i.e. Temperature).",
89101
"type": "array",
90102
"items": {
91103
"type": "string"
@@ -108,46 +120,23 @@
108120
"selectDeviceEntityFrom": "name"
109121
}
110122
},
111-
"nocacheList": {
112-
"description": "The devices in the list will not be loaded from the cache. Use the device id (e.g. shellyplus2pm-5443B23D81F8)",
113-
"type": "array",
114-
"items": {
115-
"type": "string"
116-
},
117-
"uniqueItems": true,
118-
"selectFrom": "serial"
119-
},
120-
"deviceIp": {
121-
"description": "Set the IP address for each device that is not discovered automatically. Enter in the first field the shelly ID of the device and in the second field the IP address. (e.g. shelly1minig3-543204547478: 192.168.1.221). Enable enableConfigDiscover to load the devices from this setting.",
122-
"type": "object",
123-
"uniqueItems": true,
124-
"selectFrom": "serial",
125-
"additionalProperties": {
126-
"type": "string"
127-
}
128-
},
129123
"enableMdnsDiscover": {
130-
"description": "Enable the mdns discovery for shelly devices. Once all the devices are loaded and stored, it is possible to disable this setting to reduce the network traffic.",
124+
"description": "Enable the mdns discovery for shelly devices. Once all the devices are discovered and stored, it is possible to disable this setting to reduce the network traffic.",
131125
"type": "boolean",
132126
"default": true
133127
},
134128
"enableStorageDiscover": {
135-
"description": "Enable storage discovery for shelly devices (it will load from the storage the devices already discovered)",
129+
"description": "Enable storage discovery for shelly devices (it will load from the storage the devices already discovered).",
136130
"type": "boolean",
137131
"default": true
138132
},
139133
"resetStorageDiscover": {
140-
"description": "Reset the storage on the next restart (it will clear the storage and the cache files)",
141-
"type": "boolean",
142-
"default": false
143-
},
144-
"enableConfigDiscover": {
145-
"description": "Enable config discovery for shelly devices (it will load the devices from deviceIp config setting). It is only needed if a device is not discovered on your network. Once they are loaded and stored, disable this setting.",
134+
"description": "Reset the storage on the next restart (it will clear the storage and the cache files).",
146135
"type": "boolean",
147136
"default": false
148137
},
149138
"enableBleDiscover": {
150-
"description": "Enable ble discovery for shelly BLU devices (it will register the BLU devices paired in each ble gateway, see the readme for more info)",
139+
"description": "Enable ble discovery for shelly BLU devices (it will register the BLU devices paired in each ble gateway, see the readme for more info).",
151140
"type": "boolean",
152141
"default": true
153142
},
@@ -166,6 +155,32 @@
166155
"type": "boolean",
167156
"default": false
168157
},
158+
"addDevice": {
159+
"description": "Manually add a device that has not been discovered with mdns:",
160+
"type": "boolean",
161+
"buttonField": "ADD",
162+
"buttonClose": false,
163+
"buttonSave": false,
164+
"textPlaceholder": "Enter the device IP address",
165+
"default": false
166+
},
167+
"removeDevice": {
168+
"description": "Remove a device and its cache file from the storage:",
169+
"type": "boolean",
170+
"buttonField": "REMOVE",
171+
"buttonClose": false,
172+
"buttonSave": false,
173+
"textPlaceholder": "Enter the device id",
174+
"default": false
175+
},
176+
"scanNetwork": {
177+
"description": "Scan the network with mdns for new devices:",
178+
"type": "boolean",
179+
"buttonText": "SCAN",
180+
"buttonClose": false,
181+
"buttonSave": false,
182+
"default": false
183+
},
169184
"debug": {
170185
"description": "Enable the debug for the plugin (development only)",
171186
"type": "boolean",
@@ -182,14 +197,15 @@
182197
"default": false
183198
},
184199
"debugWs": {
185-
"description": "Enable the debug for the shelly WsClient or WsServer (development only)",
200+
"description": "Enable the debug for the shelly WsClient and WsServer (development only)",
186201
"type": "boolean",
187202
"default": false
188203
},
189204
"unregisterOnShutdown": {
190205
"description": "Unregister all devices on shutdown (development only)",
191206
"type": "boolean",
192-
"default": false
207+
"default": false,
208+
"ui:widget": "hidden"
193209
}
194210
}
195211
}

0 commit comments

Comments
 (0)