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.
Four steps, once
After this your coordinator is a card in FairGrow, like any other.
Download the bridge
An installer for Windows, macOS or your Raspberry Pi. It sits right below and handles the rest itself.
Get a pairing code
An eight-character code from the Show devices panel, good once and for fifteen minutes. See how, below.
Enter the code once
The bridge swaps it for a key that stays on your own machine. The code expires straight after.
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.
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.
curl -fsSL https://fairgrow.eu/wp-json/fg-zb/v1/brug/fairgrow-brug.sh -o fairgrow-brug.sh && sh fairgrow-brug.shcurl -fsSL https://fairgrow.eu/wp-json/fg-zb/v1/brug/fairgrow-brug.sh -o fairgrow-brug.sh && sh fairgrow-brug.shRunning 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
- Checks whether Python 3 is on your machine, and tells you where to get it if not.
- Creates its own folder with its own Python environment, separate from your system.
- Downloads the bridge and compares the fingerprint against what the platform says. If it differs, nothing starts.
- Asks for your pairing code and where your Zigbee2MQTT or Home Assistant runs.
- 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.
How you get your pairing code
Three clicks in FairGrow. The code works once and lasts fifteen minutes.
1. Show devices panel
2. Choose your coordinator
3. Your code
Where your readings travel
Every connection is made from your side outwards. Nothing reaches in.
Every arrow points outwards. Your coordinator and your devices stay on your own network.
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.
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.
- A Home Assistant Yellow has one Zigbee radio. One, not two.
- ZHA is usually already using that radio. That is the normal state of things.
- Zigbee2MQTT asks for the same radio and does not get it.
- That is why Zigbee2MQTT stops again immediately, with an error about the serial port.
- Nothing is broken. The radio is taken.
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.
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.
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-zigbee2mqttAfter 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.
- Search the add-on store for zigbee2mqtt and you find nothing.
- Click the three dots at the top right, choose Repositories and paste https://github.com/zigbee2mqtt/hassio-zigbee2mqtt there.
- Now the Mosquitto broker and Zigbee2MQTT are in the list. Install Mosquitto first and start it.
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.
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.
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.
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
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.
