This plugin allows you to expose all Shelly Gen 1, Gen 2, Gen 3, Gen 4 and BLU devices to Matter.
Features:
If you like this project and find it useful, please consider giving it a star on GitHub at https://github.com/Luligu/matterbridge-shelly and sponsoring it.
This project is proudly sponsored by:
I would like to express my appreciation to Tamer Salah for his invaluable contribution to this project. His expertise and assistance have been instrumental in its success. You can sponsor Tamer here https://buymeacoffee.com/6sjde6vkzl.
See the complete guidelines on Matterbridge for more information.
A shelly device gen. 1 or 2 or 3 or 4 or BLU.
Verify that enableMdnsDiscover and enableStorageDiscover are selected in the plugin configuration. Restart matterbridge in case these options were not flagged and the devices will be discovered.
When all the devices have been discovered and stored, I suggest to unselect enableMdnsDiscover.
Follow these guidelines for specific devices.
<matterbridge-ipv4>:5683 (where <matterbridge-ipv4> is the ipv4 address of Matterbridge e.g. 192.168.1.100:5683). You can find the matterbridge ipv4Address address in the frontend or in the log. Multicast may not work for all networks due to router or access point configuration or network topology (I cannot help you on this, just check your router or access point configuration). If CoIoT is not configured correctly you will not receive any update from the device.ws://<matterbridge-ipv4>:8485 (where <matterbridge-ipv4> is the ipv4 address of Matterbridge e.g. ws://192.168.1.100:8485). You can find the matterbridge ipv4Address address in the frontend or in the log. It is also possible, when "Outbound websocket" is configured correctly, to just wait for the device to awake and it will be registered automatically.There are two ways to have the wifi device IP stable:
A stable IP address is mandatory for battery powered devices. I suggest to set it for all the other devices too.
Just open the frontend, select the matterbridge-shelly plugin and click on install. If you are using Matterbridge with Docker (I suggest you do it), all plugins are already loaded in the container image so you just need to select and add it.
On windows:
cd $HOME\Matterbridge
npm install -g matterbridge-shelly --omit=dev
matterbridge -add matterbridge-shelly
On linux:
cd ~/Matterbridge
sudo npm install -g matterbridge-shelly --omit=dev
matterbridge -add matterbridge-shelly
Then start Matterbridge from a terminal
matterbridge
You may need to set some config values in the frontend.
Changing configuration after the controller is already paired may cause the controller to see the device as new devices and reset their configuration. You may need to wait a few minutes that the controller reads again all endpoints.
Wait that the plugin has been configured before changing the config.
If your devices are password protected put here the username. It must be unique for all the devices.
It is only used for gen 1 devices. Gen 2 and 3 devices have always admin.
If your devices are password protected put here the password. It must be unique for all the devices.
The devices in the list will be exposed as switches (don't use it for Alexa).
The devices in the list will be exposed as lights.
The devices in the list will expose the Input component as a contact sensor.
The devices in the list will expose the Input component as a momentary switch.
In Matter a momentary switch is button that can be pressed or released.
The devices in the list will expose the Input component as a latching switch (latching switches are not supported by all controllers).
In Matter a latching switch is a switch that keeps its position open or closed.
If the blackList is defined the devices included in the list will not be exposed to Matter.
For shelly wifi devices use the device name (i.e. the name defined in the device web UI), the device id (i.e. shellyplus2pm-5443B23D81F8) or the device mac (i.e. 5443B23D81F8).
For shelly BLU devices use the device name (i.e. the name defined in the device gateway web UI) or the device mac addr (i.e. 7c:c6:b6:65:2d:87).
If the whiteList is defined only the devices included in the list are exposed to Matter.
For shelly wifi devices use the device name (i.e. the name defined in the device web UI), the device id (i.e. shellyplus2pm-5443B23D81F8) or the device mac (i.e. 5443B23D81F8).
For shelly BLU devices use the device name (i.e. the name defined in the device gateway web UI) or the device mac addr (i.e. 7c:c6:b6:65:2d:87).
The components in the list will not be exposed for all devices. Use the component name (i.e. Temperature).
For detailed examples, refer to the COMPONENTS.md documentation.
The deviceEntityBlackList is a list of components that should not be exposed for a specific device.
In the first field, enter the device ID (e.g., shellyplus2pm-5443B23D81F8 for Wi-Fi Shelly devices or 7c:c6:b6:65:2d:87 for BLU Shelly devices). In the second field, list all the component names (e.g., Temperature) or component IDs (e.g., temperature:0) you want to exclude for that device.
For detailed examples, refer to the COMPONENTS.md documentation.
The devices in the list will not be loaded from the cache. Use the device id (e.g. shellyplus2pm-5443B23D81F8). This is only usefull if you change the device configuration from the device web ui or from the Shelly app (e.g. changing from color to white or from switch to cover or adding other BLU devices to a ble gateway) and don't want to wait the plugin to detect the change. In this case put the device id in the list and restart.
You can put there one of more of your devices if they have problem with mdns. Don't use it unless is needed cause the IP address you add here is static. Don't use it for battery powered device that go in sleepmode. You also need to enable the enableConfigDiscover option. E.g. "shelly1minig3-543204547478": "192.168.1.221".
Should always be enabled to discover new devices.
Once a device is discovered, it is added to the shelly storage.
Once all the devices are loaded and stored, it is possible to disable this setting to reduce the network traffic.
Should always be enable
$ claude mcp add matterbridge-shelly \
-- python -m otcore.mcp_server <graph>