Bring your own Zigbee coordinator

Knowledge base

Bring your own Zigbee coordinator

Already running Zigbee2MQTT on your own stick? Connect it to FairGrow in four steps. Your hardware stays yours, and nothing in your firewall has to open.

Works with your own stickNo open portsYou approve every device
4
Steps from code to first reading
15 min
Time it takes
0
Ports opened in your firewall
You
Decide which device gets in
How it goes

Four steps, once

After this your coordinator is a card in FairGrow, like any other.

1

Download the bridge

An installer for Windows, macOS or your Raspberry Pi. It sits right below and handles the rest itself.

2

Get a pairing code

An eight-character code from the Show devices panel, good once and for fifteen minutes. See how, below.

3

Enter the code once

The bridge swaps it for a key that stays on your own machine. The code expires straight after.

4

Pair your first device

Open Network on your coordinator. There you find Open pairing window for a new device, and Adopt devices for the ones already on it.

The bridge

One minute to install

Pick your system and start the installer. It sets everything up, asks for your pairing code and makes sure the bridge starts along with your machine.

FairGrow bridge

Works with your own Zigbee2MQTT or directly with ZHA in Home Assistant. Talks to your coordinator and to FairGrow, and to nothing else.

version 1.21
Windows10 and 11
Download then double-click it
macOSVentura and newer
curl -fsSL https://fairgrow.eu/wp-json/fg-zb/v1/brug/fairgrow-brug.sh -o fairgrow-brug.sh && sh fairgrow-brug.sh
LinuxRaspberry Pi, NAS, server
curl -fsSL https://fairgrow.eu/wp-json/fg-zb/v1/brug/fairgrow-brug.sh -o fairgrow-brug.sh && sh fairgrow-brug.sh

Running Home Assistant? Read One radio, and only one thing may have it first. It explains why Zigbee2MQTT often refuses to start there, and what to do about it.

Note: the bridge does not belong on your Home Assistant itself. It is not an integration and not an add-on, and on Home Assistant OS you cannot add Python. Put it on another machine on the same network that stays on: your PC, a Raspberry Pi, a NAS or a virtual machine. With ZHA it reaches Home Assistant over the network from there.

What the installer actually does
  1. Checks whether Python 3 is on your machine, and tells you where to get it if not.
  2. Creates its own folder with its own Python environment, separate from your system.
  3. Downloads the bridge and compares the fingerprint against what the platform says. If it differs, nothing starts.
  4. Asks for your pairing code and where your Zigbee2MQTT or Home Assistant runs.
  5. Pairs once and makes sure the bridge comes up with your machine.

Everything lives in its own folder and your system Python is left alone. Remove it with fairgrow-brug.bat /verwijderen or sh fairgrow-brug.sh --verwijderen; the pairing itself you revoke on your own coordinator card. Rather do it by hand? The bare bridge is still there: fgzb_brug.py.

To update to a newer version, run fairgrow-brug.bat /bijwerken or sh fairgrow-brug.sh --bijwerken. Your pairing and your settings stay as they are, so you do not need a new pairing code.

Step 2

How you get your pairing code

Three clicks in FairGrow. The code works once and lasts fifteen minutes.

1. Show devices panel

Show devices
Devices
+Add datalogger
+Add coordinator
OfficeOnline
Living roomOnline

2. Choose your coordinator

Add coordinator
Which coordinator do you have?
Choose your coordinatorZigbee2MQTT ▾
Zigbee2MQTTfull control
Home Assistant ZHAnot yet established
deCONZ / Phosconnot yet established
Closed hub (observer)not yet established
Create pairing code

3. Your code

Enter this code in your bridge
7K4M‑2QP9
Expires in 14:52
Waiting for your bridge to report in…
Open Show devices, click Add coordinator, pick your type and you get an eight-character code. You enter that once in the installer.
The route

Where your readings travel

Every connection is made from your side outwards. Nothing reaches in.

Your devices sensors, valves Your coordinator your own stick The bridge on your machine FairGrow the platform

Every arrow points outwards. Your coordinator and your devices stay on your own network.

What you need

Three things

A supported coordinator

Any stick Zigbee2MQTT supports: SONOFF ZBDongle-E or P, SLZB-06, ConBee III.

Zigbee2MQTT running

Version 2.x with an MQTT server on your own network. Your existing setup keeps working as it is.

A machine that stays on

The bridge is a small Python program. A Raspberry Pi next to your coordinator is plenty.

Home Assistant

One radio, and only one thing may have it

Running Home Assistant, and a Yellow in particular? Then you will probably run into two things that have nothing to do with FairGrow. Here is what happens, and what to do about it.

Your Home Assistant Yellow has a Zigbee radio built in. That radio can only be used by one program at a time. For most people ZHA is already using it, because ZHA ships with Home Assistant.

If you then start Zigbee2MQTT, it asks for that same radio. It does not get it and stops again straight away. The log then has a line about the serial port: Error: Error while opening serialport. That reads like something is broken, but nothing is. The radio is taken.

ZHA already inside Home Assistant Home Assistant Yellow Zigbee radio there is only one /dev/ttyAMA1 where it is attached Zigbee2MQTT wants the same radio Error: Error while opening serialport had it first cannot get to it
Swipe sideways to see the whole drawing.
  1. A Home Assistant Yellow has one Zigbee radio. One, not two.
  2. ZHA is usually already using that radio. That is the normal state of things.
  3. Zigbee2MQTT asks for the same radio and does not get it.
  4. That is why Zigbee2MQTT stops again immediately, with an error about the serial port.
  5. Nothing is broken. The radio is taken.
What we do

We come to your setup

You should not have to tear up a working Zigbee network to make us fit. That is why our bridge talks to ZHA directly. You do not have to install Zigbee2MQTT at all, no second stick is needed, and nothing about your current setup changes.

During the install, pick ZHA in Home Assistant. It then asks for the address of your Home Assistant and for a long-lived access token. You create that token on your profile page, Security tab, and it has to belong to an account with administrator rights: ZHA allows a regular account no commands at all. The token stays on your machine.

One thing ZHA cannot do: keep a rejected device out. ZHA has no blocklist, so such a device does get removed but can come knocking again. We say so on the card rather than letting it fail quietly.

The other route

Alongside ZHA, with a second radio

If you would rather use Zigbee2MQTT, you can run it next to ZHA as long as it has a radio of its own. A separate Zigbee stick in a USB port of your Yellow is enough. Your existing devices stay where they are and do not have to be paired again.

This is a choice, not a requirement. For most people the ZHA bridge next to this one is the shorter road, because it means buying nothing and installing nothing.

Second stumbling block

Zigbee2MQTT is not in the store

You can search the Home Assistant add-on store all you like, you will not find it there. That is not your fault.

Home Assistant only shows add-ons from lists it already knows. Zigbee2MQTT lives in a list of its own that is not there yet. You add that list once, and after that the add-on is simply in there with the rest.

Go to Settings, then Add-ons, then Add-on store. Click the three dots at the top right, choose Repositories and paste this address:

https://github.com/zigbee2mqtt/hassio-zigbee2mqtt

After that, install the Mosquitto broker first and start it, because that is what Zigbee2MQTT talks to. Our installer does this whole list for you: it checks whether your Home Assistant is running, adds the list, installs the add-on and writes exactly what happened into installatie.log if something goes wrong anyway.

  1. Search the add-on store for zigbee2mqtt and you find nothing.
  2. Click the three dots at the top right, choose Repositories and paste https://github.com/zigbee2mqtt/hassio-zigbee2mqtt there.
  3. Now the Mosquitto broker and Zigbee2MQTT are in the list. Install Mosquitto first and start it.
After pairing

A new Zigbee device waits for you

Nothing is added to your dashboard on its own.

It waits in quarantine

The device is on hold. No readings, no dashboard, nothing yet.

We ask it who it is

Maker, model, what it can do. The card shows what we measured and what we looked up.

You decide

Add it, or refuse it. Refusing removes the device and blocks it from coming back.

Honest about limits

What your Zigbee coordinator can do here

A coordinator from another maker is not a lesser one. It is just built differently.

Works

  • Open the pairing window from FairGrow
  • Read maker, model and what a device offers
  • Tell us whether a device can relay traffic for others
  • Remove a device and block it from rejoining
  • Run a network scan: which devices route through which, and how strongly
  • Recognise your adapter and firmware, and warn you about combinations we know are broken

Does not work

  • Zigbee2MQTT cannot look up what a device refuses, so we lean on our device library for that.
  • Some devices do not offer a blink-to-find function through Zigbee2MQTT.

Whatever we could not measure ourselves says so on the device card. We never present a borrowed value as a reading.

Once it runs

See how your Zigbee network is holding up

Zigbee is a mesh: your devices talk through each other. From your coordinator you ask for a network scan and see what runs through what.

The layout

Every device, every link and how strong it is. You spot a weak link before a sensor drops out.

What is wrong with it

A device with just one neighbour, a link that is too weak, something hanging too far from the coordinator. With the rule that made us say so.

The history

We keep every scan. So you watch a link fade or a device hop between neighbours, instead of only noticing once it has gone quiet.

A scan asks every router for its neighbour table and costs radio time, so it never happens on its own. And a router that does not answer is never quietly called isolated: it says we do not know.

When something goes wrong

If it fails, we can see why

The installer measures your system and records what happens.

Measure first, pair second

Ports, permissions, drivers, the startup task. Almost everything that goes wrong, goes wrong outside the bridge.

We hold our own half

Every attempt gets a reference. Under it we keep what arrived from your side, even if the pairing never succeeded.

Sending is one button

Under Your coordinators you will find Send log. Passwords are masked the moment they arrive.

Which Zigbee hardware works. What breaks with off-the-shelf adapters and brands, and what we catch for you. See what works

Your Zigbee coordinator is paired. Here is what comes next. Adding a device, approving it and knowing where it ends up. And what we watch for you after that. Add your first device

FAQ

Questions we get

Which coordinators can I connect?

Zigbee2MQTT and Home Assistant ZHA, both today and both on your own: download the bridge, pick which of the two you have during installation, get a pairing code, done. If you run ZHA you do not need to install Zigbee2MQTT at all and nothing about your setup changes. For both we are still finishing the acceptance test on real hardware, so tell us if you run into anything. deCONZ / Phoscon is next in line; you cannot pick that one yet. Not on the list? Tell us which one you have.

What leaves my network?

The details of your coordinator, and the devices that pair during your session: address, maker, model and their readings. Devices already in your Zigbee2MQTT that do not pair stay out of it.

Do I have to open a port?

No. The bridge only makes connections outwards. Nothing from us reaches into your network.

How do I stop it?

Disconnect the coordinator in FairGrow. The key is dead immediately. Your devices stay in the list, they just stop receiving new readings.

What if my bridge is offline for a while?

Nothing breaks. Readings pause and pick up again when the bridge returns. You will see the last-seen time run up on the card.

What happens if a device drops out?

Your bridge reports every five minutes what your coordinator sees. If a device falls silent, that shows up at your coordinator with the reason next to it: the device itself, or the router it was hanging under. If the bridge stops reporting, we say that first, because then everything looks gone while only the bridge has stopped.

Bring your own coordinator

Tell us which stick you run and what you want to measure. We will walk you through connecting it.

✓

Thank you!

We've received your request and will be in touch soon.

➤ Personal contact within 1 business day

➤ A proposal tailored to your situation