Zigbee dimmer in Fibaro HC3 shows up as ON/OFF in HA through Fibaro integration

Hi all,

My HA system (version 2025.5.0 on RPi5 with OS 15.2) is configured to use a HC3 homecenter as a bridge to Zigbee (and partly Z-wave).

Philips Hue (Zigbee directly, no Hue bridge) works incl color and dimming, Z-wave works incl dimming, but my (first and currently only) Zigbee dimmer shows up as only ON/OFF in HA. Even though dimming works fine in Fibaro homecenter.

It does see the setValue action in the device info downloaded from the Fibaro plugin in HA:

      {
        "id": 40,
        "name": "Dimmable light",
        "roomID": 220,
        "view": [
          {
            "assetsPath": "dynamic-plugins/com.fibaro.multilevelSwitch",
            "name": "com.fibaro.multilevelSwitch",
            "translatesPath": "/assets/i18n/com.fibaro.multilevelSwitch",
            "type": "ts"
          },
          {
            "assetsPath": "dynamic-plugins/favorite-positions",
            "name": "favorite-positions",
            "translatesPath": "/assets/i18n/favorite-positions",
            "type": "ts"
          }
        ],
        "type": "com.fibaro.multilevelSwitch",
        "baseType": "com.fibaro.binarySwitch",
        "enabled": true,
        "visible": true,
        "isPlugin": false,
        "parentId": 39,
        "viewXml": false,
        "hasUIView": true,
        "configXml": false,
        "interfaces": [
          "autoTurnOff",
          "favoritePosition",
          "light",
          "zigbee"
        ],
        "properties": {
          "autoOffDefaultTime": 900,
          "autoOffTimestamp": 0,
          "categories": [
            "lights"
          ],
          "configured": true,
          "dead": false,
          "deadReason": "",
          "deviceControlType": 2,
          "deviceIcon": 582,
          "deviceRole": "Light",
          "favoritePositions": [
            {
              "label": "Favourite position",
              "name": "FavoritePosition1",
              "value": 50
            }
          ],
          "favoritePositionsNativeSupport": false,
          "icon": {
            "path": "/assets/icon/fibaro/LightBulbV3/LightBulbV30.svg",
            "source": "HC"
          },
          "ieeeAddress": "xxxxxxxxxxxxxx",
          "isLight": true,
          "log": "",
          "logTemp": "",
          "manufacturer": "",
          "model": "",
          "networkAddress": xxxx,
          "saveLogs": true,
          "state": false,
          "supportedDeviceRoles": [
            "Other",
            "GarageDoor",
            "OuterBlind",
            "InnerBlind",
            "Light"
          ],
          "userDescription": "",
          "value": 0
        },
        "actions": {
          "configureFavoritePositions": 1,
          "setAutoOff": 0,
          "setFavoritePosition": 1,
          "setValue": 1,
          "toggle": 0,
          "turnOff": 0,
          "turnOn": 0
        },
        "created": 1746767834,
        "modified": 1746773062,
        "sortOrder": 17
      }

Note: it also says:
“type”: “com.fibaro.multilevelSwitch”,
“baseType”: “com.fibaro.binarySwitch”,
, but it ends up as a light because of this part in the python code of the integration:

        # Switches that control lights should show up as lights
        if platform == Platform.SWITCH and device.properties.get("isLight", False):
            platform = Platform.LIGHT
        return platform

Through the API (http://[servername]/api/devices/40/action/setValue) in postmaster, dimming works fine, but in HA it has created an entity that does not support dimming (info from states page):

lights.dimmable_light
supported_color_modes: onoff
color_mode: null
fibaro_id: 40
friendly_name: Light
supported_features: 0

Where I would expect to see supported_color_modes: brightness.

Is there something I can do to change this entity so HA knows it supports dimming? Because then I would expect the Fibaro integration to take care of the mapping between HA brightness control in the entity card and the setValue action and my problem would be solved.

Found it in the source of the fibaro integration (light.py):

        supports_dimming = (
            fibaro_device.has_interface("levelChange")
            and "setValue" in fibaro_device.actions
        )

This device does not have a “levelChange” interface.

For now, I installed the Fibaro integration as a custom component and changed that code to:

        supports_dimming = (
            fibaro_device.has_interface("levelChange")
            or fibaro_device.has_interface("zigbee")
        ) and (
            "setValue" in fibaro_device.actions
        )

Works for now.

I am fairly new to HA and this community. What would be a good way to proceed to see if this can be resolved in the official source code (or potentially the Fibaro API, which is then not something for this forum)?