In the standalone Zigbee2Mqtt application, we can define additional devices if they are not yet supported. Is there a way to do the same for some devices in Gladys? I want to use my entire setup within Gladys without adding a separate standalone Zigbee2Mqtt instance. I’m satisfied with my Gladys setup and would feel even better if we could dynamically extend device support in this way. Thank you, Gladys team!
My device: Simon switch
I mean, if I use it with Gladys’ Docker container, it connects to the MQTT broker on port 1884. How can I change it to port 1883 with such a simulated device? If so, all devices from Zigbee2MQTT will switch to port 1883.
If we use a standalone app, we can change it, but I prefer using the internal feature from Gladys’ app—something like binding or extending new devices within the app or configuring it directly. That would be much better.
I understand your point, meaning that from the MQTT service, I will connect to port 1884.
Additionally, I am facing some issues with the Zigbee2MQTT container. I triggered an event to install Zigbee2MQTT. On the server side, I checked the logs and saw that the Zigbee2MQTT image was pulled, but it failed to start. After the pull was complete, my Raspberry Pi froze. I am using the device "usb-Texas_Instruments_TI_CC2531_USB_CDC___0X00124B0014D949B5-if00" and Pi 3+. If I unplug the USB device and restart, the server can boot up. Sometimes, the Zigbee2MQTT service starts successfully.
When running the docker ps command right after the Pi boots up, I can see the gladys-z2m-zigbee2mqtt container. However, about 30 seconds later, the Pi freezes.
Can you check the logs of the Zigbee2MQTT container?
docker logs gladys-z2m-zigbee2mqtt
In the long run, I wouldn’t recommend using a Raspberry Pi 3+ for your smart home setup. If you’re relying on a microSD card for storage, you’ll likely run into corrupted sectors within weeks or months. And if you’re using an external SSD via USB, you may face power stability issues since both the SSD and the Zigbee stick draw too much power from the Pi.
My recommendation: switch to a mini-PC like the Beelink Mini S12 Pro. It’s affordable, highly reliable, and far more powerful than a Pi 3!
Hi @pierre-gilles
I have figured out the cause of the issue, but it still doesn’t seem entirely right if someone else encounters the same problem. It looks like my Zigbee USB stick has connectivity issues or some kind of malfunction, or it is unresponsive in relation to the zigbee2mqtt library. As a result, it stops running, and it seems that somewhere we are awaiting it, which ends up blocking the entire Raspberry Pi. This is just my assumption because when I run standalone zigbee2mqtt, I encounter a similar issue.
Additionally, I have another problem: I don’t know why, but when I run standalone zigbee2mqtt and bind it to Gladys, I don’t see any device list. I checked the logs from Gladys and saw something like this (as shown in the image here).
2025-02-28T16:43:00+0100 <warn> handleMqttMessage.js:115 (Zigbee2mqttManager.handleMqttMessage) Zigbee2mqtt device PhongNguChienLinh2 not configured in Gladys.
2025-02-28T16:43:02+0100 <warn> handleMqttMessage.js:115 (Zigbee2mqttManager.handleMqttMessage) Zigbee2mqtt device PhongNguChienLinh not configured in Gladys.
2025-02-28T16:44:14+0100 <warn> handleMqttMessage.js:115 (Zigbee2mqttManager.handleMqttMessage) Zigbee2mqtt device PhongKhach3Gang not configured in Gladys.
2025-02-28T16:44:14+0100 <warn> handleMqttMessage.js:115 (Zigbee2mqttManager.handleMqttMessage) Zigbee2mqtt device PhongKhach3Gang not configured in Gladys.
2025-02-28T16:44:14+0100 <warn> handleMqttMessage.js:115 (Zigbee2mqttManager.handleMqttMessage) Zigbee2mqtt device PhongKhach3Gang not configured in Gladys.
2025-02-28T16:44:15+0100 <warn> handleMqttMessage.js:115 (Zigbee2mqttManager.handleMqttMessage) Zigbee2mqtt device PhongKhach3Gang not configured in Gladys.
2025-02-28T16:44:15+0100 <warn> handleMqttMessage.js:115 (Zigbee2mqttManager.handleMqttMessage) Zigbee2mqtt device PhongKhach3Gang not configured in Gladys.
2025-02-28T16:44:15+0100 <warn> handleMqttMessage.js:115 (Zigbee2mqttManager.handleMqttMessage) Zigbee2mqtt device PhongKhach3Gang not configured in Gladys.
2025-02-28T16:44:16+0100 <warn> handleMqttMessage.js:115 (Zigbee2mqttManager.handleMqttMessage) Zigbee2mqtt device PhongKhach3Gang not configured in Gladys.
2025-02-28T16:44:16+0100 <warn> handleMqttMessage.js:115 (Zigbee2mqttManager.handleMqttMessage) Zigbee2mqtt device PhongKhach3Gang not configured in Gladys.
2025-02-28T16:44:16+0100 <warn> handleMqttMessage.js:115 (Zigbee2mqttManager.handleMqttMessage) Zigbee2mqtt device PhongKhach3Gang not configured in Gladys.
2025-02-28T16:44:16+0100 <warn> handleMqttMessage.js:115 (Zigbee2mqttManager.handleMqttMessage) Zigbee2mqtt device PhongKhach3Gang not configured in Gladys.
2025-02-28T16:44:16+0100 <warn> handleMqttMessage.js:115 (Zigbee2mqttManager.handleMqttMessage) Zigbee2mqtt device PhongKhach3Gang not configured in Gladys.
2025-02-28T16:44:17+0100 <warn> handleMqttMessage.js:115 (Zigbee2mqttManager.handleMqttMessage) Zigbee2mqtt device PhongKhach3Gang not configured in Gladys.
2025-02-28T16:44:17+0100 <warn> handleMqttMessage.js:115 (Zigbee2mqttManager.handleMqttMessage) Zigbee2mqtt device PhongKhach3Gang not configured in Gladys.
2025-02-28T16:44:17+0100 <warn> handleMqttMessage.js:115 (Zigbee2mqttManager.handleMqttMessage) Zigbee2mqtt device PhongKhach3Gang not configured in Gladys.
2025-02-28T16:44:17+0100 <warn> handleMqttMessage.js:115 (Zigbee2mqttManager.handleMqttMessage) Zigbee2mqtt device PhongKhach3Gang not configured in Gladys.
2025-02-28T16:44:17+0100 <warn> handleMqttMessage.js:115 (Zigbee2mqttManager.handleMqttMessage) Zigbee2mqtt device PhongKhach3Gang not configured in Gladys.
2025-02-28T16:44:18+0100 <warn> handleMqttMessage.js:115 (Zigbee2mqttManager.handleMqttMessage) Zigbee2mqtt device PhongKhach3Gang not configured in Gladys.
2025-02-28T16:44:18+0100 <warn> handleMqttMessage.js:115 (Zigbee2mqttManager.handleMqttMessage) Zigbee2mqtt device PhongKhach3Gang not configured in Gladys.
2025-02-28T17:15:31+0100 <warn> handleMqttMessage.js:115 (Zigbee2mqttManager.handleMqttMessage) Zigbee2mqtt device PhongKhach3Gang not configured in Gladys.
2025-02-28T17:15:31+0100 <warn> handleMqttMessage.js:115 (Zigbee2mqttManager.handleMqttMessage) Zigbee2mqtt device PhongKhach3Gang not configured in Gladys.
2025-02-28T17:15:31+0100 <warn> handleMqttMessage.js:115 (Zigbee2mqttManager.handleMqttMessage) Zigbee2mqtt device PhongKhach3Gang not configured in Gladys.
2025-02-28T17:15:32+0100 <warn> handleMqttMessage.js:115 (Zigbee2mqttManager.handleMqttMessage) Zigbee2mqtt device PhongKhach3Gang not configured in Gladys.
2025-02-28T17:15:32+0100 <warn> handleMqttMessage.js:115 (Zigbee2mqttManager.handleMqttMessage) Zigbee2mqtt device PhongKhach3Gang not configured in Gladys.
2025-02-28T17:15:32+0100 <warn> handleMqttMessage.js:115 (Zigbee2mqttManager.handleMqttMessage) Zigbee2mqtt device PhongKhach3Gang not configured in Gladys.
Is it in the list of recommended adapters of Zigbee2mqtt ?
Any logs in Zigbee2mqtt container?
It could be a Raspberry Pi issue. Pi are notoriously bad for running this, because the USB port does not guarantee that the power supplied to the USB stick is enough over time. You’ll likely run into weird issues forever…
What about switching to a more reliable mini-PC? There are many great options!
Those logs are quite “normal”, nothing to worry about
Thank you @pierre-gilles ,
I want to ask a bit about servers because I want to use a Raspberry Pi for cost savings and compactness instead of a mini PC. Is there a way to optimize it or an alternative solution to avoid increasing data in the database or file logs? Or any other approach to make it work efficiently with the Pi while keeping costs low and making the most of what I already have?
I am considering switching to a mini PC. I am from Vietnam. Currently, I am using two types of devices: the cheaper one has too many issues, so I bought an additional [
Zigbee 3.0 USB Dongle Plus - E.
Just a quick note that Zigbee2MQTT has been updated to version 2.1.3. I have updated it and found it to be quite fast, stable, and smooth, while also consuming less RAM. Additionally, I made some updates to enable Gladys to support the Sonoff adapter “Ember.”
Moreover, I have added some improvements to support a few more devices for Zigbee2MQTT. Due to budget constraints, I have not yet been able to implement support for the Modbus and KNX services. I will create a pull request for these updates once I have thoroughly tested them.
When I have the budget to purchase devices such as air conditioners that use Modbus and KNX, I will add these services to this repository.
An external powered USB hub can resolve a lot of raspberry pi USB power and radio issues if you have one. There used to be recommended models I had a 7 port Anker one that came with I think a 3.5A psu.
I gave up on my raspberry pi and I’m using a HP thin client i paid €10 for. I’ve since bought two more for friends. It’s been faster and far more stable than the raspberry pi and cost a fraction of what I paid for case, cables, sd cads, usb hubs etc for raspberry pi.
The only thing the pi gets used for now is programming eeproms accessing debugging ports that sort of thing
Hi @pierre-gilles
I encountered this error when executing the function of the scene.
2025-03-07T08:27:51+0100 <info> subscribe.js:12 (Zigbee2mqttManager.subscribe) Subscribing to MQTT topic zigbee2mqtt/#
2025-03-07T08:28:11+0100 <warn> functionsWrapper.js:15 (EventEmitter.<anonymous>) Error while executing function () { [native code] }
2025-03-07T08:28:11+0100 <warn> functionsWrapper.js:16 (EventEmitter.<anonymous>) Error: Operator undefined not found
at compare (/src/server/utils/compare.js:25:13)
at Object.device.new-state (/src/server/lib/scene/scene.triggers.js:15:34)
at /src/server/lib/scene/scene.checkTrigger.js:33:61
at Array.forEach (<anonymous>)
at /src/server/lib/scene/scene.checkTrigger.js:27:43
at Array.forEach (<anonymous>)
at SceneManager.checkTrigger (/src/server/lib/scene/scene.checkTrigger.js:19:18)
at EventEmitter.<anonymous> (/src/server/utils/functionsWrapper.js:13:13)
at EventEmitter.emit (node:events:530:35)
at Event.emit (/src/server/lib/event/index.js:18:16)
2025-03-07T08:28:13+0100 <warn> functionsWrapper.js:15 (EventEmitter.<anonymous>) Error while executing function () { [native code] }
2025-03-07T08:28:13+0100 <warn> functionsWrapper.js:16 (EventEmitter.<anonymous>) Error: Operator undefined not found
at compare (/src/server/utils/compare.js:25:13)
at Object.device.new-state (/src/server/lib/scene/scene.triggers.js:15:34)
at /src/server/lib/scene/scene.checkTrigger.js:33:61
at Array.forEach (<anonymous>)
at /src/server/lib/scene/scene.checkTrigger.js:27:43
at Array.forEach (<anonymous>)
at SceneManager.checkTrigger (/src/server/lib/scene/scene.checkTrigger.js:19:18)
at EventEmitter.<anonymous> (/src/server/utils/functionsWrapper.js:13:13)
at EventEmitter.emit (node:events:530:35)
at Event.emit (/src/server/lib/event/index.js:18:16)
2025-03-07T08:28:13+0100 <warn> functionsWrapper.js:15 (EventEmitter.<anonymous>) Error while executing function () { [native code] }
2025-03-07T08:28:13+0100 <warn> functionsWrapper.js:16 (EventEmitter.<anonymous>) Error: Operator undefined not found
at compare (/src/server/utils/compare.js:25:13)
at Object.device.new-state (/src/server/lib/scene/scene.triggers.js:15:34)
at /src/server/lib/scene/scene.checkTrigger.js:33:61
at Array.forEach (<anonymous>)
at /src/server/lib/scene/scene.checkTrigger.js:27:43
at Array.forEach (<anonymous>)
at SceneManager.checkTrigger (/src/server/lib/scene/scene.checkTrigger.js:19:18)
at EventEmitter.<anonymous> (/src/server/utils/functionsWrapper.js:13:13)
at EventEmitter.emit (node:events:530:35)
at Event.emit (/src/server/lib/event/index.js:18:16)
2025-03-07T08:28:13+0100 <warn> functionsWrapper.js:15 (EventEmitter.<anonymous>) Error while executing function () { [native code] }
2025-03-07T08:28:13+0100 <warn> functionsWrapper.js:16 (EventEmitter.<anonymous>) Error: Operator undefined not found
at compare (/src/server/utils/compare.js:25:13)
at Object.device.new-state (/src/server/lib/scene/scene.triggers.js:15:34)
at /src/server/lib/scene/scene.checkTrigger.js:33:61
at Array.forEach (<anonymous>)
at /src/server/lib/scene/scene.checkTrigger.js:27:43
at Array.forEach (<anonymous>)
at SceneManager.checkTrigger (/src/server/lib/scene/scene.checkTrigger.js:19:18)
at EventEmitter.<anonymous> (/src/server/utils/functionsWrapper.js:13:13)
at EventEmitter.emit (node:events:530:35)
at Event.emit (/src/server/lib/event/index.js:18:16)
2025-03-07T08:28:15+0100 <warn> functionsWrapper.js:15 (EventEmitter.<anonymous>) Error while executing function () { [native code] }
2025-03-07T08:28:15+0100 <warn> functionsWrapper.js:16 (EventEmitter.<anonymous>) Error: Operator undefined not found
at compare (/src/server/utils/compare.js:25:13)
at Object.device.new-state (/src/server/lib/scene/scene.triggers.js:15:34)
at /src/server/lib/scene/scene.checkTrigger.js:33:61
at Array.forEach (<anonymous>)
at /src/server/lib/scene/scene.checkTrigger.js:27:43
at Array.forEach (<anonymous>)
at SceneManager.checkTrigger (/src/server/lib/scene/scene.checkTrigger.js:19:18)
at EventEmitter.<anonymous> (/src/server/utils/functionsWrapper.js:13:13)
at EventEmitter.emit (node:events:530:35)
at Event.emit (/src/server/lib/event/index.js:18:16)
2025-03-07T08:28:15+0100 <warn> functionsWrapper.js:15 (EventEmitter.<anonymous>) Error while executing function () { [native code] }
2025-03-07T08:28:15+0100 <warn> functionsWrapper.js:16 (EventEmitter.<anonymous>) Error: Operator undefined not found
at compare (/src/server/utils/compare.js:25:13)
at Object.device.new-state (/src/server/lib/scene/scene.triggers.js:15:34)
at /src/server/lib/scene/scene.checkTrigger.js:33:61
at Array.forEach (<anonymous>)
at /src/server/lib/scene/scene.checkTrigger.js:27:43
at Array.forEach (<anonymous>)
at SceneManager.checkTrigger (/src/server/lib/scene/scene.checkTrigger.js:19:18)
at EventEmitter.<anonymous> (/src/server/utils/functionsWrapper.js:13:13)
at EventEmitter.emit (node:events:530:35)
at Event.emit (/src/server/lib/event/index.js:18:16)
2025-03-07T08:28:15+0100 <warn> functionsWrapper.js:15 (EventEmitter.<anonymous>) Error while executing function () { [native code] }
2025-03-07T08:28:15+0100 <warn> functionsWrapper.js:16 (EventEmitter.<anonymous>) Error: Operator undefined not found
at compare (/src/server/utils/compare.js:25:13)
at Object.device.new-state (/src/server/lib/scene/scene.triggers.js:15:34)
at /src/server/lib/scene/scene.checkTrigger.js:33:61
at Array.forEach (<anonymous>)
at /src/server/lib/scene/scene.checkTrigger.js:27:43
at Array.forEach (<anonymous>)
at SceneManager.checkTrigger (/src/server/lib/scene/scene.checkTrigger.js:19:18)
at EventEmitter.<anonymous> (/src/server/utils/functionsWrapper.js:13:13)
at EventEmitter.emit (node:events:530:35)
at Event.emit (/src/server/lib/event/index.js:18:16)
Additionally, when I trigger the scene, it seems like the server stops running. It looks like it’s stuck. I checked the logs and didn’t see anything unusual, but API calls remain in a pending state.
@vule That does seem quite unusual. All these actions work perfectly fine, and we have hundreds of users using them daily.
It really looks like a hardware issue… Are you still running on a microSD card? If so, I’d highly recommend switching to more durable storage. Unfortunately, microSD cards aren’t designed for this kind of usage, and I don’t think there’s much choice here. Let me know if I can help!