Everything Xbee

Ok here is a simple overview to setting up Xbee3
I will update the original post with it.

I found Zigbee channel 20 to work the best for all Zigbee devices

9 easy steps (you only have to make 2 manual edits ID and JV):
1. Purchase:

2. download and install

  • XTCU software
  • Xbee3 router settings
    created using firmware version 1008
    (most people will want this one it can also be used as an arrival sensor if used carefully you do not want to route any other devices through an arrival sensor)
    or
    End point settings (will not route other devices only used for arrival sensor mode)
    created using firmware version 1008
  • micro python code (both named Main.py so save them to separate folders)
    60 second reporting (default I use this for router settings)
    or
    10 second reporting (I use this for arrival sensor)
    (mainly used for end device arrival sensor you might not want it reporting this often)
  • Xbee3 DH download it and save it to the Hubitat "drivers code" as a "new driver"

3. Hubitat settings
Go to your Hubitat settings page and select "Zigbee Details" on that page you should see " Extended Pan ID: XXXXXXXXXXXXX" X being your Pan ID number copy it.

4. Attach your Xbee3 pro and DEV board to your computer and start XTCU s/w

  • select the top left corner + (add radio module) select your com port and set the baud rate to 115200 and uncheck "the radio module is programmable" (you would think it should be checked but it is not).
  • Select the new radio module in the left column and select "Update" (firmware)
    • product family should be XB3-24
    • function set should be Diji Xbee3 Zigbee 3.0 TH
    • firmware version select the one that says (Newest)
    • now select update and update the Xbee3 firmware
  • Select "Default" and "yes" then select "write"
    (to ensure all settings not used are set to default)
  • Select "Profile" and "Apply configuration profile"
    selecting the "Xbee3 router settings profile_1008.xpro" file
    or
    the "Xbee3 End Device settings profile_1008.xpro"
  • In XTCU you can find these settings easily by typing them in the magnifying glass at the top right (example type in Ky or ID)
    • paste your Hubitat Pan ID number in the XTCU ID settings
    • ensure KY is set to 5a6967426565416c6c69616e63653039
    • ensure JV is set to 1
    • (if adding more than 1 Xbee you must change each Xbee NI value to a different name for the identifier)
    • now select "Write"

5. Load the micro python code
(firmware updates may corrupt the micro python code you may have to do this step again if you update the firmware in the future)

In XTCU at the top of the page now select

  • "Tools"
  • "File system manager"
  • "open" (you will have to format it the first time)
  • In the left column you will have to find where you downloaded either the 60 second or 10 second "Main.py" file
  • drag that "Main.py" file to the right column (not into one of the folders)
  • Select "Closed"
  • Push the reset button on the Dev Board or power off then back on the Xbee3

6. Pair the Xbee3 to Hubitat

  • place Hubitat in Zigbee pairing mode
  • reset or power cycle the Xbee3
  • It should appear as a device save it with a name

7. Change DH type

  • In Hubitat go to the new device you just saved and change the DH type to "XBee Presence"
  • select save device
  • select configure
  • select save preferences

8. Hubitat logs
Check the log to make sure there are no errors for this device and it is reporting a battery mV every 60 or 10 seconds depending on which micro python code you loaded.
If you see errors in the logs remove the device from Hubitat and redo this from step 2.

9. Go back to XTCU

  • change JV to 0 and select write
    (to disable after pairing to the hub to keep the Xbee on the same channel after power cycling)
7 Likes