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

Really? Really?

Second paragaph of the installation instructions

You can also run Zigbee2mqtt in a Docker container, as the Hass.io Zigbee2mqtt add-on, in a Python Virtual Enviroment or even on Windows.

I did the same :slight_smile:

Plus my friend helped me to resolder the capacitor (rotate for 90°) so I can use external antena.
Second problem with the antena is that it requires SMA connector and not the much more common RP-SMA one (that one used widely by routers).

But once succeeded it looks quite powerfull:

Where did you get the sleek case?
I want one too :slight_smile:

I am using for 3D printing this site:

And 3D model can be acquired here:

1 Like

Great thanks, I will find someone to print that.

Does the “better” arise solely from the ability to plug in an antenna? Or are there other differences too?

(AKA did I buy the wrong thing again?)

The other difference is that the CC1352-P supports the ISM bands (sub-1 GHz, same bands as Z-Wave uses). These bands are supported by Zigbee Pro and Zigbee 3.0 (the new standard), but not yet by Zigbee2MQTT as far as I know.

Only time will tell whether this was the “wrong” choice, but I suspect that the practical result is that there will be a tiny number of devices you can’t use in the future.

I updated zigbee2mqtt recently to 1.12.2, and now I’m getting the following error when it tries to start (This worked on the old version I had)

I see a bit of old info on this, but cannot find the exact fix :frowning:

zigbee2mqtt:error 2020-04-26 16:16:00: Failed to start zigbee
zigbee2mqtt:error 2020-04-26 16:16:00: Exiting...
zigbee2mqtt:error 2020-04-26 16:16:00: Error: Failed to connect to the adapter (Error: SRSP - SYS - ping after 6000ms)
    at ZStackAdapter.<anonymous> (/zigbee2mqtt-1.12.2/node_modules/zigbee-herdsman/dist/adapter/z-stack/adapter/zStackAdapter.js:71:23)
    at Generator.throw (<anonymous>)
    at rejected (/zigbee2mqtt-1.12.2/node_modules/zigbee-herdsman/dist/adapter/z-stack/adapter/zStackAdapter.js:6:65)
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] start: `node index.js`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the [email protected] start script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
npm ERR! A complete log of this run can be found in:
npm ERR!     /root/.npm/_logs/2020-04-26T06_16_01_114Z-debug.log

What adapter are you using ? If usb, are you sure the port did not change while restarting ?

CC2530 (The one most people use)
Adapter is still located at /dev/ttyACM0, Ubuntu can still see ACM0

I guess it is a CC2531, a CC2530 does not have USB. Stop zigbee2mqtt, remove it, plug it in again and restart zigbee2mqtt. This might help.

CC2530 :
image

no change after rebooting

I guess its cc2531, it has usb but no external antenna

Have you tried to set log level to debug to see if you can get more information? Is MQTT running ok?

The other option might be to uninstall and re-install the addon (save the addon details first).

This is all that is in the log

info  2020-04-26 18:16:05: Logging to console and directory: '/share/zigbee2mqtt/log/2020-04-26.18-16-05' filename: log.txt
debug 2020-04-26 18:16:05: Removing old log directory '/share/zigbee2mqtt/log/2020-04-26.18-14-01'
debug 2020-04-26 18:16:05: Loaded state from file /share/zigbee2mqtt/state.json
info  2020-04-26 18:16:05: Starting zigbee2mqtt version 1.12.2 (commit #unknown)
info  2020-04-26 18:16:05: Starting zigbee-herdsman...
debug 2020-04-26 18:16:05: Using zigbee-herdsman with settings: '{"network":{"panID":6754,"extendedPanID":[221,221,221,221,221,221,221,221],"channelList":[11],"networkKey":"HIDDEN"},"databasePath":"/share/zigbee2mqtt/database.db","databaseBackupPath":"/share/zigbee2mqtt/database.db.backup","backupPath":"/share/zigbee2mqtt/coordinator_backup.json","serialPort":{"baudRate":115200,"rtscts":true,"path":"/dev/ttyACM0"},"adapter":{"concurrent":null}}'
error 2020-04-26 18:16:12: Error while starting zigbee-herdsman

SSH in, and run ls /dev/serial/by-id. Post what that returns.

ls: cannot access '/dev/serial/by-idls': No such file or directory
/dev/serial/by-id:
usb-Texas_Instruments_TI_CC2531_USB_CDC___0X00124B00193663EA-if00

That is what was needed :slight_smile:

Simply replace /dev/ttyACM0 in your current configuration with

/dev/serial/by-id/usb-Texas_Instruments_TI_CC2531_USB_CDC___0X00124B00193663EA-if00

and restart zigbee2mqtt

I’m having a hard time with Xiaomi buttons (wireless switch) and MQTT discovery. everything seems to work mostly well, but HASS does not recognise the “_click” entity and only sees “link_quality” and “battery”. I did have some luck with a couple of buttons initially, but had to restart Hass to get it to recognize them properly (i.e. MQTT discovery didn’t really work properly), and it won’t see the number of clicks it supports until i actually clicked that number of times and restarted hass. E.g it would only allow me to select “single” click in automation, but if i click twice and restart Hass then “double” would be available.
But now it is simply not working, those entities i had before are gone (unavailable) and i only see link and battery. Tried deleting mosquitto db, hass db and all config and starting from scratch, but same result - no click entity available for any of them.
Any ideas?

Hi Stan,
Buttons are different. I was able to add them through MQTT messaging. Example (change topic to your device)

- alias: Turn on standing lamp on-off with button
  initial_state: true
  trigger:
    - platform: mqtt
      topic: 'zigbee2mqtt/0x00158d0002b00e18'
  condition:
    condition: or
    conditions:
      - condition: template
        value_template: '{{ "single" == trigger.payload_json.click }}'
      - condition: template
        value_template: '{{ "double" == trigger.payload_json.click }}'
  action:
    service: light.toggle
    entity_id: light.entrance
1 Like

Thanks for replying, René.
Yes, mqtt topic and condition template is how i use those buttons currently with my old setup (hass 0.96 and z2m 1.3) But this way is awfully inconvenient and this is one of the main reasons i am looking to upgrade and rebuild my setup (scenes is another major one, but seems they are not usable yet)
Using ‘device’ object for a button in automations basically makes editing automations GUI and dropdown menu based so i won’t have to type in json code and manually find entity ids every time. it is the same problem with native aqara hub, making automations for event/xiaomi.aquara.click still needs manual entry of entity id and click type in a json construct.