No module Published on Offcanvas position

Adding new device support in Domoticz

Recently i've bought myself some Fibaro Heat Controllers to control my radiators based on the temperature for each section in the house, all automated.
Sadly after buying my second one, I found out Fibaro rolled out firmware version 4.7 and this was not compatible with latest (2020.2) version of Domoticz.

The moment you try to add them, it shows up in Domoticz as a Unknown device and you can't control anything nor do values report back.
This is what happens when Domoticz isn't able to find a xml config file for your device. Either the device is:

  1. Brand new product that's just been released
  2. Firmware for the product has been changed in such a way the config files don't recognize it anymore

In my case it was the second one. Older firmware reported the ID of 1000, the 4.7 firmware reports 1001.

Now onto the fun part, how do you fix this?

What do you need?

  • Putty (https://www.putty.org/) or alternatively WinSCP (https://winscp.net/eng/download.php)
    Both work fine, Putty is just more command-line heavy and I just assume you have the basic knowledge to change directories, copy and create file/folder if you decide to use this otherwise just use WinSCP, it has a GUI.
  • XML file from the OpenZWave Github for your device (https://github.com/OpenZWave/open-zwave/tree/master/config)
    This is VERY important! If your device isn't listed here or they haven't updated the XML for your device then there is no point continuing this.
    Wait for them to update or add the XML. You can check this by going into the folder of the manufacturer of your device and check for any new additions to the XML list or if an existing one has a very recent history count.
    Click on the XML to see what the latest commit has added, like for example support for the latest firmware version.

    How can you tell which XML file you need?
    All XML file names are based off the modelname of their respective devices. The Fibaro Heat Controller for example has FGT001. You can find it in the manual most of the time.
    You can always check each XML file, the name of the device as they are known in stores and to be displayed in Domoticz is also in there.

If you meet both requirements, follow the steps below to add your new device to Domoticz!

  1. Login to your Domoticz using Putty or WinSCP
  2. Go the installation directory of your Domoticz installation and then the Config folder, by default this is usually /home/<username>/domoticz/Config
  3. You'll find a list with a lot names looking like the manufacturer's of all kinds of devices, find the one for your manufacturer's and open it.
  4. You'll find a bunch of XML files for all the supported devices in here. Find the one you need and make a backup of it just in case.
    Then take the XML file you downloaded from Github and replace it with the existing one in Domoticz or copy file contents from Github in the original Domoticz file if you are strictly using Putty.
  5. Now, go one directory back (Putting you back in /home/<username>/domoticz/Config when using defaults)
    Find the manufacturer_specific.xml file and make a backup of this one too.
  6. Now open the manufacturer_specific.xml file. This file is meant to direct devices to the correct config files for domoticz to properly add them.
    Find section for your manufacturer, for Fibaro for example you'll have to find the line:
    <Manufacturer id="010f" name"FIBARO System">​
    They all start something like that and end with a </Manufacturer> tag.
  7. Starting from this point, depending on the device adding it varies as not all values are the same. This step is very generic and should apply for most devices
    To add a device a new line needs to be entered that looks like this:
    <Product config="<manufacturer folder>/<xmlfilename.xml> id="<devicespecific>" name="<Modename + name of device>" type="<depends on device type>"

    Example:
    <Product config="fibaro/fgt001.xml" id="1001" name="FGT001 Heat Controller" type="1301"/>
    But how do you get these values? Some are easy... some not so much... depends if the device is very new or just an upgrade to a existing one
    • Product Config: It's basically the path after config <manufacturerfolder>/<devicexmlfile.xml>
    • ID: Remember when you add the device for the first time in Domoticz  and you find out it's listed as Unknown Device because there's no support? The ID is named as the device name, re-add it to domoticz to get the ID
    • Name: If it's a update to a existing device, just use the same name, otherwise it's most likely <modelname> + <name of device>
    • Type: This is easier to find if it's a update to an existing device because the types are already listed in the same file. If it's a new device, I have no idea to be honest where to get this besides contacting the support desk of the manufacturer.
      So far i've only dealt with Fibaro and Aeotec support and they have been very helpful, considering Fibaro has their own ecosystem with their Fibaro Home Center devices and don't seem to mind people using their devices with Domoticz. Then again... you can't update their devices without a Home Center... so... yeah...
  8. After you've saved your changes, reboot your Domoticz server
  9. Once the reboot is completed, exclude your device from Domoticz should you haven't done so yet and then include it.
    Domoticz should now recognize the name and not show Unknown device anymore and you should be able to fully control all settings.