Triggering scene/effect modes of Tint ZigBee color light bulbs (Müller Licht)

I am using a couple of ZigBee RGB lights by tint in my OpenHab setup for a couple of years now. The starter kit came with a remote which also has buttons for certain effects of the lights like “party”, “sunset” etc. The effects are triggered by the remote, but generated in the light bulbs themselves (they continue working even if I take out the batteries of the remote).

After a bit of searching, I found this thread on GitHub about integrating support for the remote into deCONZ. This post details the finding about remote including the effect buttons. The essence is this, I think:

The six scene buttons send a Write Attributes to manufacturer-specific (0x121b) uint8 attribute 0x4005 of the Basic cluster. The value indicates the scene, although the order is a bit odd: Read: 3, Day: 1, Disco: 2, Night: 6, Fire: 4, Love: 5.

I don’t want to control anything with the remote via OpenHab, but I would like to be able to trigger the effect modes on my Tint light bulbs via OpenHab. In OpenHab, I can only see the two channels “Color Temperature” and “Color”, but nothing to trigger the effect. Is there any way to achieve that?

I am using the Bitron AV 2010/10 ZigBee coordinator, if that matters.

Please raise this as an issue on the zigbee binding issues list. I’m quite busy at the moment but if I can find time I will take a look.

Please also provide the XML file for this device - OH will create it in the userdata/zigbee network folder and it will be named after the devices address.

Thanks for your reply. I opened an issue on the tracker:

Do you happen to know whether the tint Globe supports the 6 effects?

To answer my question: yes, it does: “Über die tint-Fernbedienung wählst Du ganz bequem zwischen sechs voreingestellten Lichtszenen:” (You can conveniently choose between six preset light scenes via the tint remote control). I’ll test it using zigbee write and report back.

So I probably misunderstood this. I though that you wanted to send the commands to OH, but I think now that’s not the case and you want to directly send the commands from the remote, to the bulb?

If so, there’s probably nothing that the binding can do, but you ought to be able to configure this using the console. What I think you need to do is to use the “bind and reporting” configuration. As per the docs -:

The binding table is used within ZigBee to configure devices to send reports to the binding when their state changes. The binding will attempt to set the required ZigBee bindings during device initialisation, but sometimes this can fail. Often this may occur on older devices that have limited memory, and only have a small number of entries in the binding table, and then manual manipulation of the table may be required.

The binding table for a node can be displayed with the bindtable command. It can then be updated with the bind command, and bindings can be removed with the unbind command.

A second part to the binding and reporting system is the reporting. The binding table tells the device where it should send reports, but the actual reports must be configured as well. Many attributes in a ZigBee cluster can be configured to send reports if their state changes, or at a periodical rate if there have been no state updates within a certain time. Analogue values can be configured so that they report if the value changes by a certain amount so that the reports do not flood the system. Care must be exercised when changing this configuration as it may interfere with the binding operation.

The exact command required to configure reporting can depend on whether the attribute is a binary or analogue type. The console commands subscribe and unsubscribe allow the user to manipulate the reporting of an attribute, and the reportcfg command can be used to display the current configuration.

So I could guess that you need to set up a bind command so that the remote sends the reports to the bulb. Then configure the reporting for this attribute.

IIUC, @porst17 would like to have an additional channel for tint devices that can be used to set the manufacturer specific modes (Read: 3, Day: 1, Disco: 2, Night: 6, Fire: 4, Love: 5).

Unfortunately, my translation of

The six scene buttons [of the tint remote] send a Write Attributes to manufacturer-specific (0x121b) uint8 attribute 0x4005 of the Basic cluster. The value indicates the scene, although the order is a bit odd: Read: 3, Day: 1, Disco: 2, Night: 6, Fire: 4, Love: 5.

to a Karaf command for Fire mode (4) doesn’t work:

openhab> zigbee write 49940/1 0x0 0x4005 4 UNSIGNED_8_BIT_INTEGER
Attribute value write error: UNSUPPORTED_ATTRIBUTE

DUT is a tint Globe:

 49940  C314  00158D00012E5426  ROUTER        ONLINE      1  ZIGBEE_HOME_AUTOMATION     EXTENDED_COLOR_LIGHT       MLI              tint-ExtendedColor
                                                         242  ZIGBEE_GREEN_POWER         0061
openhab> zigbee node 49940
IEEE Address     : 00158D00012E5426
Network Address  : 49940
Node Descriptor  : NodeDescriptor [apsFlags=0, bufferSize=127, complexDescriptorAvailable=false, manufacturerCode=1029, logicalType=ROUTER, serverCapabilities=[], incomingTransferSize=90, outgoingTransferSize=90, userDescriptorAvailable=false, frequencyBands=[FREQ_2400_MHZ], macCapabilities=[FULL_FUNCTION_DEVICE, MAINS_POWER, RECEIVER_ON_WHEN_IDLE], extendedEndpointListAvailable=false, extendedSimpleDescriptorListAvailable=false, stackCompliance=22]
Power Descriptor : PowerDescriptor [currentPowerMode=RECEIVER_ON_IDLE, availablePowerSources=[MAINS], currentPowerSource=MAINS, powerLevel=FULL]
Associations     : []
Endpoints        :
            1    : Profile     ZIGBEE_HOME_AUTOMATION
                 : Device Type EXTENDED_COLOR_LIGHT
                   -> BASIC
                   -> IDENTIFY
                   -> GROUPS
                   -> SCENES
                   -> ON_OFF
                   -> LEVEL_CONTROL
                   -> COLOR_CONTROL
                   -> 0x1000
            242  : Profile     ZIGBEE_GREEN_POWER
                 : Device Type 0061
                   <- GREEN_POWER
Neighbors        :
Routes           :
openhab> zigbee fingerprint 00158D00012E5426
|>| Node Descriptor
| |> Logical Type               ROUTER
| |> MAC Capabilities           [FULL_FUNCTION_DEVICE, MAINS_POWER, RECEIVER_ON_WHEN_IDLE]
| |> Stack Compliance           22
| |> Server Capabilities        []
| |> Buffer Size                127
| |> Incoming Transfer Size     90
| |> Outgoing Transfer Size     90
|
|>| Power Descriptor
| |> Available Power Sources    [MAINS]
| |> Current Power Source       MAINS
| |> Current Power Mode         RECEIVER_ON_IDLE
| |> Power Level                FULL
|
|>| ZDO
| |> ManagementBindRequest      SUCCESS
| |> IeeeAddressRequest         SUCCESS
| |> ManagementLqiRequest       SUCCESS
| |> ManagementRoutingRequest   SUCCESS
|
|>| Basic Information
| |> Generic Device Class
| |> Generic Device Type
| |> Manufacturer Name          MLI
| |> Model Indentifier          tint-ExtendedColor
| |> Product Code
| |> Product URL
| |> Date Code
| |> Application Version        1
| |> Software Build ID          TDU50D01
| |> Hardware Version           1
| |> Zcl Version                2
| |> Stack Version              1
| |
| |>| Endpoint 1
| | |> Profile                  0104  ZIGBEE_HOME_AUTOMATION
| | |> Device Type              010D  EXTENDED_COLOR_LIGHT
| | |> Device Version           1
| | |
| | |>| Input Clusters
| | | |
| | | |>| Cluster 0000 Basic
| | | | |> Type                 Server [Input]
| | | | |> Manufacturer Spec.   No
| | | | |
| | | | |>| Commands Generated
| | | | | |> FAILURE
| | | | |
| | | | |>| Commands Received
| | | | |> FAILURE
| | | | |
| | | | |>| Attributes Supported
| | | | | |> FAILURE
| | | |
| | | |>| Cluster 0003 Identify
| | | | |> Type                 Server [Input]
| | | | |> Manufacturer Spec.   No
| | | | |> Unsupported locally
| | | |
| | | |>| Cluster 0004 Groups
| | | | |> Type                 Server [Input]
| | | | |> Manufacturer Spec.   No
| | | | |> Unsupported locally
| | | |
| | | |>| Cluster 0005 Scenes
| | | | |> Type                 Server [Input]
| | | | |> Manufacturer Spec.   No
| | | | |
| | | | |>| Commands Generated
| | | | | |> FAILURE
| | | | |
| | | | |>| Commands Received
| | | | |> FAILURE
| | | | |
| | | | |>| Attributes Supported
| | | | | |> FAILURE
| | | |
| | | |>| Cluster 0006 On/Off
| | | | |> Type                 Server [Input]
| | | | |> Manufacturer Spec.   No
| | | | |
| | | | |>| Commands Generated
| | | | | |> FAILURE
| | | | |
| | | | |>| Commands Received
| | | | |> FAILURE
| | | | |
| | | | |>| Attributes Supported
| | | | | |> FAILURE
| | | |
| | | |>| Cluster 0008 Level Control
| | | | |> Type                 Server [Input]
| | | | |> Manufacturer Spec.   No
| | | | |
| | | | |>| Commands Generated
| | | | | |> FAILURE
| | | | |
| | | | |>| Commands Received
| | | | |> FAILURE
| | | | |
| | | | |>| Attributes Supported
| | | | | |> FAILURE
| | | |
| | | |>| Cluster 0300 Color Control
| | | | |> Type                 Server [Input]
| | | | |> Manufacturer Spec.   No
| | | | |> Unsupported locally
| | | |
| | | |>| Cluster 1000
| | | | |> Type                 Server [Input]
| | | | |> Manufacturer Spec.   No
| | | | |> Unsupported locally
| | |
| | |>| Output Clusters
| |
| |>| Endpoint 242
| | |> Profile                  A1E0  ZIGBEE_GREEN_POWER
| | |> Device Type              0061
| | |> Device Version           0
openhab> zigbee endpoint  49940/1
IEEE Address      : 00158D00012E5426
Network Address   : 49940
Endpoint          : 1
Device Profile    : 0x0104, ZIGBEE_HOME_AUTOMATION
Device Type       : 0x010D, EXTENDED_COLOR_LIGHT
Device Version    : 1
Input Clusters    : (Server)
   0000 Basic
     - APS Security disabled
        S       0 r-- UNSIGNED_8_BIT_INTEGER    ZCL Version                              Tue Jan 11 01:45:49 CET 2022 2
        S       1 r-- UNSIGNED_8_BIT_INTEGER    Application Version                      Tue Jan 11 01:45:48 CET 2022 1
        S       2 r-- UNSIGNED_8_BIT_INTEGER    Stack Version                            Tue Jan 11 01:45:49 CET 2022 1
        S       3 r-- UNSIGNED_8_BIT_INTEGER    HW Version                               Tue Jan 11 01:45:48 CET 2022 1
        S       4 r-- CHARACTER_STRING          Manufacturer Name                        Tue Jan 11 01:45:48 CET 2022 MLI
        S       5 r-- CHARACTER_STRING          Model Identifier                         Tue Jan 11 01:45:48 CET 2022 tint-ExtendedColor
        S       6 r-- CHARACTER_STRING          Date Code                                Tue Jan 11 01:45:48 CET 2022
        S       7 r-- ENUMERATION_8_BIT         Power Source
        S       8 r-- ENUMERATION_8_BIT         Generic Device Class
        S       9 r-- ENUMERATION_8_BIT         Generic Device Type
        S      10 r-- CHARACTER_STRING          Product Code
        S      11 r-- CHARACTER_STRING          Product URL
        S      16 rw- CHARACTER_STRING          Location Description
        S      17 rw- ENUMERATION_8_BIT         Physical Environment
        S      18 rw- BOOLEAN                   Device Enabled
        S      19 rw- BITMAP_8_BIT              Alarm Mask
        S      20 rw- BITMAP_8_BIT              Disable Local Config
        S   16384 r-- CHARACTER_STRING          SW Build ID                              Tue Jan 11 01:45:48 CET 2022 TDU50D01
   0003 Identify
     - APS Security disabled
        S       0 rw- UNSIGNED_16_BIT_INTEGER   Identify Time
   0004 Groups
     - APS Security disabled
        S       0 r-- BITMAP_8_BIT              Name Support
   0005 Scenes
     - APS Security disabled
        S       0 r-- UNSIGNED_8_BIT_INTEGER    Scene Count
        S       1 r-- UNSIGNED_8_BIT_INTEGER    Current Scene
        S       2 r-- UNSIGNED_16_BIT_INTEGER   Current Group
        S       3 r-- BOOLEAN                   Scene Valid
        S       4 r-- BITMAP_8_BIT              Name Support
        S       5 r-- IEEE_ADDRESS              Last Configured By
   0006 On/Off
     - APS Security disabled
        S       0 r-s BOOLEAN                   On Off                                   Tue Jan 11 01:21:04 CET 2022 true
        S   16384 r-- BOOLEAN                   Global Scene Control
        S   16385 rw- UNSIGNED_16_BIT_INTEGER   On Time
        S   16386 rw- UNSIGNED_16_BIT_INTEGER   Off Wait Time
        S   16387 rw- ENUMERATION_8_BIT         Start Up On Off
   0008 Level Control
     - APS Security disabled
        S       0 r-s UNSIGNED_8_BIT_INTEGER    Current Level                            Tue Jan 11 01:22:09 CET 2022 61
        S       1 r-- UNSIGNED_16_BIT_INTEGER   Remaining Time
        S       2 r-- UNSIGNED_8_BIT_INTEGER    Minimum Level
        S       3 r-- UNSIGNED_8_BIT_INTEGER    Maximum Level
        S       4 r-s UNSIGNED_16_BIT_INTEGER   Current Frequency
        S       5 r-- UNSIGNED_16_BIT_INTEGER   Minimum Frequency
        S       6 r-- UNSIGNED_16_BIT_INTEGER   Maximum Frequency
        S      15 r-- BITMAP_8_BIT              Options
        S      16 rw- UNSIGNED_16_BIT_INTEGER   On Off Transition Time
        S      17 rw- UNSIGNED_8_BIT_INTEGER    On Level
        S      18 rw- UNSIGNED_16_BIT_INTEGER   On Transition Time
        S      19 rw- UNSIGNED_16_BIT_INTEGER   Off Transition Time
        S      20 rw- UNSIGNED_16_BIT_INTEGER   Default Move Rate
        S   16384 rw- UNSIGNED_8_BIT_INTEGER    Start Up Current Level
   0300 Color Control
     - APS Security disabled
        S       0 r-s UNSIGNED_8_BIT_INTEGER    Current Hue                              Tue Jan 11 01:22:12 CET 2022 1
        S       1 r-s UNSIGNED_8_BIT_INTEGER    Current Saturation                       Tue Jan 11 01:22:09 CET 2022 203
        S       2 r-- UNSIGNED_16_BIT_INTEGER   Remaining Time
        S       3 r-s UNSIGNED_16_BIT_INTEGER   Current X                                Tue Jan 11 01:48:13 CET 2022 34803
        S       4 r-s UNSIGNED_16_BIT_INTEGER   Current Y                                Tue Jan 11 01:48:23 CET 2022 21013
        S       5 r-- ENUMERATION_8_BIT         Drift Compensation
        S       6 r-- CHARACTER_STRING          Compensation Text
        S       7 r-s UNSIGNED_16_BIT_INTEGER   Color Temperature                        Tue Jan 11 01:22:12 CET 2022 509
        S       8 r-- ENUMERATION_8_BIT         Color Mode                               Tue Jan 11 01:20:04 CET 2022 0
        S   16384 r-s UNSIGNED_16_BIT_INTEGER   Enhanced Current Hue
        S   16385 r-- ENUMERATION_8_BIT         Enhanced Color Mode
        S   16386 r-- UNSIGNED_8_BIT_INTEGER    Color Loop Active
        S   16387 r-- UNSIGNED_8_BIT_INTEGER    Color Loop Direction
        S   16388 r-- UNSIGNED_16_BIT_INTEGER   Color Loop Time
        S   16389 r-- UNSIGNED_16_BIT_INTEGER   Color Loop Start Hue
        S   16390 r-- UNSIGNED_16_BIT_INTEGER   Color Loop Stored Hue
        S   16394 r-- BITMAP_16_BIT             Color Capabilities                       Tue Jan 11 01:16:05 CET 2022 31
        S   16395 r-- UNSIGNED_16_BIT_INTEGER   Color Temperature Min                    Tue Jan 11 01:16:57 CET 2022 153
        S   16396 r-- UNSIGNED_16_BIT_INTEGER   Color Temperature Max                    Tue Jan 11 01:16:57 CET 2022 555
   1000
     - APS Security disabled
Output Clusters   : (Client)
Groups Supported  : 10
Groups Configured : 0

Ok, that’s what I first thought, then I re-read it and thought that he wanted to control the devices direct with the remote…

I need to check this. It should be possible to write unknown attributes if you define the data type (which you have). I’ll take a look later.

Just one point to note - this list will only list the standard attributes, so it will not show anything manufacturer specific that the device implements. It also won’t normally differentiate if the standard attributes are supported since in most cases they are optional.

Just to confirm: @anon71759204 is correct. I would like to set the effect mode through OpenHab (mobile app), not via the tint remote control.

Wireshark capture:

I tried the same things on the Karaf console with similar results (UNSUPPORTED_ATTRIBUTE). The attribute 0x4005 also isn’t listed in the “Basic” cluster of the endpoint info on my side.

Anything else I could try?

That’s correct - it won’t be listed. This is a manufacturer specific attribute so the binding has no way to know it is there or what it does.

Is there a possibility of adding these manufacturer specific attributes to the binding somehow now that they are known (to us). I am just asking if this is going to happen eventually once you have some free time for it or should I just give up on the idea?

¥es, it is possible to do this. I’ve been quite busy over the past week or two and have not had much time to focus on openHAB - sorry.