Help with 4-button remote Lidl-Silvercrest HG06323 (_TYZB01_bngwdjsr) DDF file

Can somebody offer some help and/or explanation with creating a DDF file for this device?
I am willing and able to try to get a working DDF.
With the current docs and explanation of DDF I am not getting anything which remotely works (pun intended).

Moved to General Support.

Hello it’s same issue than here https://github.com/dresden-elektronik/deconz-rest-plugin/pull/6071
So can try with this DDF

{
  "schema": "devcap1.schema.json",
  "manufacturername": "_TYZB01_bngwdjsr",
  "modelid": "TS1001",
  "product": "Silvercrest Lux Remote Control",
  "sleeper": true,
  "status": "Gold",
  "subdevices": [
    {
      "type": "$TYPE_SWITCH",
      "restapi": "/sensors",
      "uuid": [
        "$address.ext",
        "0x01",
        "0x0004"
      ],
      "items": [
        {
          "name": "attr/id"
        },
        {
          "name": "attr/lastannounced"
        },
        {
          "name": "attr/lastseen"
        },
        {
          "name": "attr/manufacturername"
        },
        {
          "name": "attr/modelid"
        },
        {
          "name": "attr/name"
        },
        {
          "name": "attr/swversion"
        },
        {
          "name": "attr/type"
        },
        {
          "name": "attr/uniqueid"
        },
        {
          "name": "config/on"
        },
        {
          "name": "config/reachable"
        },
        {
          "name": "state/buttonevent"
        },
        {
          "name": "state/lastupdated"
        }
      ]
    }
  ],
  "bindings": [
    {
      "bind": "unicast",
      "src.ep": 1,
      "dst.ep": 1,
      "cl": "0x0006"
    },
    {
      "bind": "unicast",
      "src.ep": 1,
      "dst.ep": 1,
      "cl": "0x0008"
    }
  ]
}

Then you need to edit the button_maps.json file (the one in the “devices” directory too.

        "lidlMap": {
            "vendor": "LIDL Livarno Lux",
            "doc": "LIDL / Livarno Lux Remote Control (_TYZB01_bngwdjsr)",
            "modelids": ["HG06323", "_TYZB01_bngwdjsr"],
            "buttons": [

But you can have as issue after that

Edit:
Oups, sorry the DDF is not yet in deconz, still in waiting list, you have it here https://github.com/dresden-elektronik/deconz-rest-plugin/blob/131e846d2c583c927de6ab0816cc2d8280ea4c2c/devices/tuya/_TZ3000_ygvf9xzp_4gang_remote.json

Thanks for your reply.
I added your DDF example. An entry lidlMap was already in button_maps.json.

As you predicted the remote is now doing something, but only for two buttons and it’s like the problem before you solved it a while ago for this remote but in the Deconz code. one button switches on all other lamps, the other switches them off.
Shall I try the ‘bindings’ part from the Tuya example instead of the bindings part in your _TYZB01_bngwdjsr example?
Actually the only thing I need is that every button when pushed changes it’s state.
I use Domoticz to act on a ‘ON’ or 'OFF" state. So I don’t need dimming, or long-button-pressed, etc.

An entry lidlMap was already in button_maps.json

Yes, but this one is not working ATM because the code try to change the model id, just need to make a smal change on the code (but useless in reality now, see below)

For the missing button, you have it on the issue, now I remember, sorry you need to make a rollback.
Remove the last change (where you just added “_TYZB01_bngwdjsr” and create a full part.

        "lidlMap": {
            "vendor": "LIDL Livarno Lux",
            "doc": "LIDL / Livarno Lux Remote Control (_TYZB01_bngwdjsr)",
            "modelids": ["HG06323"],
            "buttons": [
              {"S_BUTTON_1": "On"},
              {"S_BUTTON_2": "Dim Up"},
              {"S_BUTTON_3": "Dim Down"},
              {"S_BUTTON_4": "Off"}
            ],
            "map": [
                [1, "0x01", "ONOFF", "ON", "0", "S_BUTTON_1", "S_BUTTON_ACTION_SHORT_RELEASED", "On"],
                [1, "0x01", "ONOFF", "LIDL", "0", "S_BUTTON_1", "S_BUTTON_ACTION_SHORT_RELEASED", "On (0)"],
                [1, "0x01", "ONOFF", "LIDL", "1", "S_BUTTON_1", "S_BUTTON_ACTION_SHORT_RELEASED", "On (1)"],
                [1, "0x01", "ONOFF", "LIDL", "2", "S_BUTTON_1", "S_BUTTON_ACTION_SHORT_RELEASED", "On (2)"],
                [1, "0x01", "ONOFF", "LIDL", "3", "S_BUTTON_1", "S_BUTTON_ACTION_SHORT_RELEASED", "On (3)"],
                [1, "0x01", "LEVEL_CONTROL", "STEP", "0", "S_BUTTON_2", "S_BUTTON_ACTION_SHORT_RELEASED", "DimUp Press"],
                [1, "0x01", "LEVEL_CONTROL", "MOVE", "0", "S_BUTTON_2", "S_BUTTON_ACTION_HOLD", "DimUp Hold"],
                [1, "0x01", "LEVEL_CONTROL", "STOP", "0", "S_BUTTON_2", "S_BUTTON_ACTION_LONG_RELEASED", "DimUp Release"],
                [1, "0x01", "LEVEL_CONTROL", "STEP", "1", "S_BUTTON_3", "S_BUTTON_ACTION_SHORT_RELEASED", "DimDown Press"],
                [1, "0x01", "LEVEL_CONTROL", "MOVE", "1", "S_BUTTON_3", "S_BUTTON_ACTION_HOLD", "DimDown Hold"],
                [1, "0x01", "LEVEL_CONTROL", "STOP", "1", "S_BUTTON_3", "S_BUTTON_ACTION_LONG_RELEASED", "DimDown Release"],
                [1, "0x01", "ONOFF", "OFF", "0", "S_BUTTON_4", "S_BUTTON_ACTION_SHORT_RELEASED", "Off"]
            ]
        },
        "lidlMap2": {
            "vendor": "Tuya",
            "doc": "LIDL / Livarno Lux Remote Control (_TYZB01_bngwdjsr)",
            "modelids": ["_TYZB01_bngwdjsr"],
            "buttons": [
              {"S_BUTTON_1": "On"},
              {"S_BUTTON_2": "Dim Up"},
              {"S_BUTTON_3": "Dim Down"},
              {"S_BUTTON_4": "Off"}
            ],
            "map": [
                [1, "0x01", "ONOFF", "ON", "0", "S_BUTTON_1", "S_BUTTON_ACTION_SHORT_RELEASED", "On"],
                [1, "0x01", "ONOFF", "LIDL", "0", "S_BUTTON_1", "S_BUTTON_ACTION_SHORT_RELEASED", "On (0)"],
                [1, "0x01", "ONOFF", "LIDL", "1", "S_BUTTON_1", "S_BUTTON_ACTION_SHORT_RELEASED", "On (1)"],
                [1, "0x01", "ONOFF", "LIDL", "2", "S_BUTTON_1", "S_BUTTON_ACTION_SHORT_RELEASED", "On (2)"],
                [1, "0x01", "ONOFF", "LIDL", "3", "S_BUTTON_1", "S_BUTTON_ACTION_SHORT_RELEASED", "On (3)"],
                [1, "0x01", "LEVEL_CONTROL", "STEP", "0", "S_BUTTON_2", "S_BUTTON_ACTION_SHORT_RELEASED", "DimUp Press"],
                [1, "0x01", "LEVEL_CONTROL", "MOVE", "0", "S_BUTTON_2", "S_BUTTON_ACTION_HOLD", "DimUp Hold"],
                [1, "0x01", "LEVEL_CONTROL", "STOP", "0", "S_BUTTON_2", "S_BUTTON_ACTION_LONG_RELEASED", "DimUp Release"],
                [1, "0x01", "LEVEL_CONTROL", "STEP", "1", "S_BUTTON_3", "S_BUTTON_ACTION_SHORT_RELEASED", "DimDown Press"],
                [1, "0x01", "LEVEL_CONTROL", "MOVE", "1", "S_BUTTON_3", "S_BUTTON_ACTION_HOLD", "DimDown Hold"],
                [1, "0x01", "LEVEL_CONTROL", "STOP", "1", "S_BUTTON_3", "S_BUTTON_ACTION_LONG_RELEASED", "DimDown Release"],
                [1, "0x01", "ONOFF", "OFF", "0", "S_BUTTON_4", "S_BUTTON_ACTION_SHORT_RELEASED", "Off"]
            ]
        },

lidlmap will work for old code and lidlmap2 for you.

For the broadcast issue, I don’t know the exact code but can try

{
  "schema": "devcap1.schema.json",
  "manufacturername": "_TYZB01_bngwdjsr",
  "modelid": "TS1001",
  "product": "Silvercrest Lux Remote Control",
  "sleeper": true,
  "status": "Gold",
  "subdevices": [
    {
      "type": "$TYPE_SWITCH",
      "restapi": "/sensors",
      "uuid": [
        "$address.ext",
        "0x01",
        "0x0004"
      ],
      "items": [
        {
          "name": "attr/id"
        },
        {
          "name": "attr/lastannounced"
        },
        {
          "name": "attr/lastseen"
        },
        {
          "name": "attr/manufacturername"
        },
        {
          "name": "attr/modelid"
        },
        {
          "name": "attr/name"
        },
        {
          "name": "attr/swversion"
        },
        {
          "name": "attr/type"
        },
        {
          "name": "attr/uniqueid"
        },
        {
          "name": "config/on"
        },
        {
          "name": "config/group",
          "default": "auto"
        },
        {
          "name": "config/reachable"
        },
        {
          "name": "state/buttonevent"
        },
        {
          "name": "state/lastupdated"
        }
      ]
    }
  ],
  "bindings": [
    {
      "bind": "groupcast",
      "src.ep": 1,
      "cl": "0x0006",
      "config.group": 0
    },
    {
      "bind": "groupcast",
      "src.ep": 1,
      "cl": "0x0008",
      "config.group": 0
    },
    {
      "bind": "unicast",
      "src.ep": 1,
      "dst.ep": 1,
      "cl": "0x0006"
    },
    {
      "bind": "unicast",
      "src.ep": 1,
      "dst.ep": 1,
      "cl": "0x0008"
    }
  ]
}

On the code there is written

                // Binding of client clusters doesn't work for endpoint 0x01.
                // Need to add the group to the server Groups cluster instead.

But don’t understand exactly what it mean (but I m trying to bind client cluster, and for endpoint 01 …)

No issue with “double command” ?

Added the lidlMap2 in button_maps.jsom
And used your new DDF example.
restarted deconz

1 button set all lights to ON in Domoticz (but does not switch the lamps really on)
1 button set all lights to OFF in Domoticz.

But… the switch device (selector) in Domoticz shows the correct button push.

So the only issue is the broadcast.
@Smanar: Don’t know if you remember, but you fixed this exact problem a couple of months ago when repairing this remote in the Deconz code. I still have your Github copy of the working version.

Should the Modelid in the DDF file and the Modelid in the button_maps.json not be the same?

Opus sorry Have missed your answer

Should the Modelid in the DDF file and the Modelid in the button_maps.json not be the same?

I m using same : _TYZB01_bngwdjsr

About the modification on the code, it create a config/group field (I think the new DDF too ?)
But after there is this part


                // Binding of client clusters doesn't work for endpoint 0x01.
                // Need to add the group to the server Groups cluster instead.
                TaskItem task;

                // set destination parameters
                task.req.dstAddress() = sensor->address();
                task.req.setTxOptions(deCONZ::ApsTxAcknowledgedTransmission);
                task.req.setDstEndpoint(0x01);
                task.req.setSrcEndpoint(getSrcEndpoint(sensor, task.req));
                task.req.setDstAddressMode(deCONZ::ApsExtAddress);

                addTaskAddToGroup(task, group->id().toInt());

And IDK how to reproduce it using DDF, I will try to ask to other devs.

1 button set all lights to ON in Domoticz (but does not switch the lamps really on)
1 button set all lights to OFF in Domoticz.

But… the switch device (selector) in Domoticz shows the correct button push.

I m not sure to understand, lamps don’t react ? it s just the showed state in domoticz that is bad ?

No problem, very glad you’re trying to help.

In your latest DDF the ‘modelid’ was TS1001. Changed it to “_TYZB01_bngwdjsr” but no change.

“schema”: “devcap1.schema.json”,
“manufacturername”: “_TYZB01_bngwdjsr”,
“modelid”: “TS1001”,

You understand correctly.
When pushing the ON button on the remote, lamps and switches go ‘ON’ in Domoticz.
But in reality they do not switch on. Pushing the OFF button on the remote switches lamps and switches to OFF in Domoticz. Just checked, same behavior in Phoscon.
You fixed it here:

But then I updated from your/my self compiled Beta to the latest public Beta and lost the remote.
Now with your latest DDF it’s working again but still has the ‘ghost’ lamps/switches to ON/OFF.

“modelid”: “TS1001”

This is the real model id, my bad “_TYZB01_bngwdjsr” is the manufacture name, there is something special in deconz code because al tuya device have the same model id, so the code use the manufacture name for them…

If I m correclty understand, the device don’t make visible broadcast request, lamps don’t react when using the remote, only the status in the API/domoticz ?
So It was not working before adding this part ?

        {
          "name": "config/group",
          "default": "auto"
        },

Because without this part the device don’t use group api feature.

I’ll try to explain the timeline:

When the TS1001 was sold at Lidl for the first time. A device request was made and it was added in the Deconz code. It worked then correctly (without the ‘ghosting’ problem).

After a few months, probably after a update in the original Beta, suddenly the ghosting issue appeared.

Several threads appeared in the forum about this issue. I shared my experiences in #5574. You helped and eventually fixed the ghosting in your own build. I used that build. This change was not merged in the original Beta since it was frozen.

A few weeks back I updated to the latest original Beta and I was back to square zero.

So now we are here. We have a working DDF. But with the ghosting issue again.

I have tried the DDF with and without the part:

    {
      "name": "config/group",
      "default": "auto"
    },

There is no change in behavior.

You understand correctly. When pushing the ON button on the remote the status of all lamps and switches change to ON in Phoscon and Domoticz. But the lamps and switches do NOT turn ON in real live. Same for the OFF button. I call this the ghosting issue.

And at this step Help with 4-button remote Lidl-Silvercrest HG06323 (_TYZB01_bngwdjsr) DDF file - #4 by Element2

The device had effect on lamps ? or was just the state too ?

Not sure I understand your question.

I have added the lidlMap2 part (changed modelids to TS1001) in button_maps.json
With this entry the Buttons work in Domoticz, but with ghosting.

I have removed the lidlMap part in button_maps.json
This makes no difference. Buttons work but with ghosting.

It’s because I m a little lost ^^.
The normal way is the device that make native broadcast request, it mean it turn realy all bulbs natively when the remote is included.
In this situation we need to create a group and make all bind to this group, so the remote don’t disturb all others bulbs in the network.

But in your situation, you only have “some zigbee group request” detected by deconz, so the API is updated, but nothing happen in reality, so I realy don’t see what it can be.

This step (the link on previous post) is before and after I have tried to make the “group feature”, the important thing is not if you have the issue or not, but if this one is only software but hardware too.

Removed the switch (remote) in Phoscon.
Checked via Help->API Information->switches that the entry was indeed gone

Added the DDF part:
{
“name”: “config/group”,
“default”: “auto”
},

Rediscovered the switch in Phoscon.

In Phoscon->Help->API Information I see these two new entries under swtiches:

"40": {
    "config": {
        "battery": null,
        "on": true,
        "reachable": true
    },
    "ep": 1,
    "etag": "742a5bbf446059922374ab5c6cbf26cd",
    "lastannounced": null,
    "lastseen": "2022-07-11T19:16Z",
    "manufacturername": "LIDL Livarno Lux",
    "mode": 1,
    "modelid": "TS1001",
    "name": "Switch",
    "state": {
        "buttonevent": null,
        "lastupdated": "none"
    },
    "type": "ZHASwitch",
    "uniqueid": "bc:33:ac:ff:fe:1e:2e:5a-01-1000"
},
"41": {
    "config": {
        "group": "20000",
        "on": true,
        "reachable": true
    },
    "etag": "b57af7cef6fb94d1c17f74a7ae976543",
    "lastannounced": null,
    "lastseen": "2022-07-11T19:16Z",
    "manufacturername": "_TYZB01_bngwdjsr",
    "mode": 1,
    "modelid": "TS1001",
    "name": "Switch 41",
    "state": {
        "buttonevent": null,
        "lastupdated": "none"
    },
    "type": "ZHASwitch",
    "uniqueid": "bc:33:ac:ff:fe:1e:2e:5a-01-0004"
}

In Domoticz under Custom->Deconz there is a new group with name “switch 0” and ID with the same uniqueid.

Although the 4 buttons of the switch work in Domoticz, the gosthing ON/OFF is still happening.

Ok so first, bad news, I have confirmation from manup, the “magic” we need to do for this device during the inclusion is not yet possible using DDF.

But perhaps a last chance, on your last post we can see you have 2 entries :

  • the DDF one > “uniqueid”: “bc:33:ac:ff:fe:1e:2e:5a-01-0004”
  • the legacy one > “uniqueid”: “bc:33:ac:ff:fe:1e:2e:5a-01-1000”

If we can mix them replacing in DDF

      "uuid": [
        "$address.ext",
        "0x01",
        "0x0004"
      ],

by

      "uuid": [
        "$address.ext",
        "0x01",
        "0x1000"
      ],

We will have the same uniqueID, so perhaps at some moment deconz will switch core. Else the only way will be with editing c++ code.

I don’t understand this:

I changed the DDF as you proposed.
Restarted Deconz
Same behavior.

Changed 0x0004 to 0x0000.
Restarted Deconz
Same behavior.

Removed the DDF file from /home/mydir/.local/share/dresden-elektronik/deConz/devices/ts1001.json
Restarted Deconz
Same behavior

With same behavior I mean the buttons still work in Domoticz.
It seems the DDF in ./local does nothing?

Nope, it s 0x1000 to have the same uniqueID created with the legacy code.

You need to delete the device, and re-include it, the device will be recreated by the both core but the DDF core will use the same uniqueid than the legacy code but idk what will happen …
Restarting deconz don’t remove previous entry in database

Ok, got it, for changes in the DDF I have to re-include it.

I decided to start from scratch.

  • Stopped Deconz
  • With SQlite I removed al occurences of TS1001 and _TYZB01_bngwdjsr in zll.db (in the groups and sensors table)
  • Removed the switch and group in Domoticz
  • Started Deconz
  • Checked Phoscon API Information, the switch and group are gone.

But now if I push the ON/OFF button on the remote, I still have the gosthing thing in Phoscon and Domoticz.

How is this possible?

Magic ^^.

The device is still included in the network, so it still sending his broadcast request, if you enable logs you can seee requests.
When you remove it from SQL, you just remove it from deconz, not from the zigbee network.

And BTW I have perhaps an idea, a workaround to wait for the DDF support this device.

The only missing part not possible with DDF is possible using the GUI. So you can use the previous DDF, and configure the “magic” using the GUI.

From the explanation I have you need to select the “group cluster” from the remote and on the cluster panel use “add group”

But idk if you need to use the group created using the DDF (and idk how to find it, perhaps a command in the same cluster).
Or if it s better to use the first DDF without “group feature” …

How do I remove it from the Zigbee network?

I only need the 4 buttons of the remote to be active in Domoticz.
I do not use the group(s) at all. So tell me what to do to test your idea.
Do I just add any group? or should it have a specific ‘Group ID’ or ‘Group Name’ ?
Must the DDF also be changed?