Zigbee2mqtt: getting rid of your proprietary Zigbee bridges (Xiaomi, Hue, TRADFRI)

I’m trying to add a new device.

in the readme on how to do that it says:

"2. Adding your device

The next step is the to add an entry of your device to node_modules/zigbee-shepherd-converters/devices.js"

I’m running Zigbee2MQTT in docker.

Where are the referenced files that I need to modify located?

And while we’re here I tried to console into the container but using “/bin/bash” in the command line (using Portainer) gives me a “executable file not found in $PATH”: unknown" error. How do I interact with the container?

EDIT: Nevermind on the second part…I had to use “/bin/sh” in Portainer…

my devices.js resides at /app/node_modules/zigbee-shepherd-converters/devices.js

Thanks for the info but I don’t have an “/app/” directory anywhere.

It is inside the docker container. I am using koenkk/zigbee2mqtt:arm32v6.
You should be able to use portainer to start a console session using /bin/sh like you said.
When I do that, it starts in the /app folder.

OK, thanks. I found it.

I got the file edited with the basic information from step 2 above but I’m not able to test it yet to see what the next reported converters that might be required are.

I found some other information online about the device (a Bosch ISW-ZPR1-WP13 Motion sensor) that indicates it is an IAS device. There is a mention of that at the end of step 2 with a link to an “example configuration” but I’m not sure how to proceed to find the specific information to fill in the additional configuration that may be required.

Here is a link to a SmartThings configuration for the device:

https://raw.githubusercontent.com/tomasaxerot/SmartThings/master/devicetypes/tomasaxerot/bosch-motion-detector.src/bosch-motion-detector.groovy

Can anyone help with how I need to configure this from this point on?

Can I use this addon to add Visonic MCT 340E (or is it currently or soon to be supported).

HassIO version 0.84.5, offers native integration via zha.permit to let me add it directly. It shows as two sensors (binary and temperature). However like a lot of people I am unable to get any temperature reading from it, and the temp keeps on showing “unknown”.

Just wanted to understand what is the benefit or difference of connecting Zigbee device via native integration versus Zigbee2mqtt. Would I be able to get the temperature reading.

Reading over here seems like it can be added using this add-on as well.

Thanks for the guidance.

I think I’ve correctly added the device to devices.js successfully but I’m still not sure how to continue.

Here is the log:

2018-12-22 18:26:05 - info: Device incoming...
2018-12-22 18:26:05 - info: MQTT publish, topic: 'zigbee2mqtt/bridge/log', payload: '{"type":"pairing","message":"device incoming"}'
2018-12-22 18:26:19 - warn: Message without device!
2018-12-22 18:26:47 - info: Device incoming...
2018-12-22 18:26:47 - info: MQTT publish, topic: 'zigbee2mqtt/bridge/log', payload: '{"type":"pairing","message":"device incoming"}'
2018-12-22 18:27:00 - warn: Message without device!
2018-12-22 18:27:28 - info: Device incoming...
2018-12-22 18:27:28 - info: MQTT publish, topic: 'zigbee2mqtt/bridge/log', payload: '{"type":"pairing","message":"device incoming"}'
2018-12-22 18:27:48 - error: Cannot get the Node Descriptor of the Device: 0x00155f00782d174a (Error: Timed out after 10000 ms)
2018-12-22 18:27:51 - warn: Message without device!
2018-12-22 18:28:25 - info: Device incoming...
2018-12-22 18:28:25 - info: MQTT publish, topic: 'zigbee2mqtt/bridge/log', payload: '{"type":"pairing","message":"device incoming"}'
2018-12-22 18:28:45 - error: Cannot get the Node Descriptor of the Device: 0x00155f00782d174a (Error: Timed out after 10000 ms)
2018-12-22 18:35:59 - warn: Message without device!
2018-12-22 18:36:25 - info: Device incoming...
2018-12-22 18:36:25 - info: MQTT publish, topic: 'zigbee2mqtt/bridge/log', payload: '{"type":"pairing","message":"device incoming"}'
2018-12-22 18:36:39 - warn: Message without device!
2018-12-22 18:37:06 - info: Device incoming...
2018-12-22 18:37:06 - info: MQTT publish, topic: 'zigbee2mqtt/bridge/log', payload: '{"type":"pairing","message":"device incoming"}'
2018-12-22 18:37:50 - warn: Message without device!
2018-12-22 18:38:16 - info: Device incoming...
2018-12-22 18:38:16 - info: MQTT publish, topic: 'zigbee2mqtt/bridge/log', payload: '{"type":"pairing","message":"device incoming"}'
2018-12-22 18:38:36 - error: Cannot get the Node Descriptor of the Device: 0x00155f00782d174a (Error: Timed out after 10000 ms)

What next, please?

is there any guide on how to repair the mess which appears after upgrade and make everything friendly again?
I tried to read the info here but it looks like I’m too stupid to understand which steps I should make now… my entity_ids are unusable, but looks like just partly… some of the names are in the system, some are not. but ok, let’s try anyway…

I’m lost at the “Fix the device_id of your devices via the Home Assistant web interface.”
first: I totally hate making changes via web interface. configuring entities via web is just bad [IMO], I’ve got all in the yaml config/packages for easy backup/edit/restore etc. but ok, if it will help, I’ll bite the bullet [but still think it’s bad]
second: I changed one of my sensors via web. and? and it shows why I hate web edits: sure, it helped, my sensor showed up, but now in the integrations, this sensor is “unavailable”, so I can’t change it’s id anymore. and now I don’t know where I should change it if I want to make some edits… where is it stored? which yaml file?

It’s stored in the /config/.storage/core.entity_registry file.

Make sure you don’t use any capital letters in the entity_id name or it will break it.

thanks for the location!
hah, that’s a handy tip, right after I already used capital letters :wink:

I guess, that system will broke after reboot? or I can just edit the file by hand now, change the name to small letters and reboot keeping my fingers crossed?

No it shouldn’t break the system. It only prevents you from being able to edit that specific entity in the GUI.

Yes, you can (and I think you have to?) edit the file by hand. Make a backup copy first in case something gets jacked up.

:crossed_fingers: :smiley:

1 Like

phew! thanks.
I can confirm: it worked :slight_smile:
and yes, after changing the name to all-small-letters, entity again is editable via web.

editing via web and “hiding” it in hidden folders/system files sucks anyway :frowning:

1 Like

The least they could do is implement some sort of error checking. Since capital letters aren’t ever allowed it should be pretty easy to just auto convert capitals to lower case and move on. They do that with all kinds of things in different circumstances so why not here?

they don’t want us editing those files but then give us no way to fix things if we make a simple typing error aside from editing those files. :roll_eyes:

2 Likes

exactly!
I love editing files by hand, because if I fail, I know I can manage to fix it. I feel like I’m in the control. if someone takes it from me, I must relay on the system, which never is perfect… and if I or what’s worse: if system fails, then all is gone for good…

anyway, enough off topic from me :wink: thanks again. merry xmas!

1 Like

@kitus I have shelly1, works great and support mqtt

@Koenkk,

Do you have any advice on this, please?

How about writing it and submitting it?

I don’t know what to write.

I thought that it had to be working to submit it to be entered in the current version.

Can you open an issue here: https://github.com/Koenkk/zigbee2mqtt/issues ?

will do.

Thanks.