dresden-elektronik / deconz-rest-plugin

deCONZ REST-API plugin to control ZigBee devices
BSD 3-Clause "New" or "Revised" License
1.9k stars 498 forks source link

Müller-Licht tint remote control 404049 #5841

Closed kayhannay closed 1 year ago

kayhannay commented 2 years ago

Device

This remote seems to be very similar to the one from #1209.

Screenshots

Cluster

image

Basic

image

Identify

image

Node Info

image

github-actions[bot] commented 2 years ago

As there has not been any response in 21 days, this issue has been automatically marked as stale. At OP: Please either close this issue or keep it active It will be closed in 7 days if no further activity occurs.

github-actions[bot] commented 2 years ago

As there has not been any response in 28 days, this issue will be closed. @ OP: If this issue is solved post what fixed it for you. If it is not solved, request to get this opened again.

PXLCoarl commented 2 years ago

I have been scratching my head for weeks now why this wouldnt work when other people in the home assistant forum were abled to add their remotes. Now i find out that the specific remote im using is not supported? Wow.

heinrich-foto commented 2 years ago

is there any plan to add support for the remote control?

Mimiix commented 2 years ago

A dev needs to pick this up. I'm happy to re open, but if nobody wants to do it it can take a while

Smanar commented 2 years ago

Hello can you try this DDF

{
  "schema": "devcap1.schema.json",
  "manufacturername": "MLI",
  "modelid": "tint-Remote-white",
  "vendor": "Muller-Licht",
  "product": "Tint remote control",
  "sleeper": true,
  "status": "Gold",
  "subdevices": [
    {
      "type": "$TYPE_SWITCH",
      "restapi": "/sensors",
      "uuid": [
        "$address.ext",
        "0x01",
        "0x0006"
      ],
      "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": "config/battery",
          "awake": true
        },
        {
          "name": "state/buttonevent"
        },
        {
          "name": "state/lastupdated"
        }
      ]
    }
  ]
}

Then enable logs in deconz (help / debug view) and press buttons, you will have different error message, can you share them ?

PXLCoarl commented 2 years ago

-----I did that, there are no errors in debug view, but now home assistant says the light entities are unavailable (still abled to control them via phoscon)-----

Update: So now it properly took the ddf, shows up as switch 2 in phoscon and deconz, but there are no error messages whatsoever when i press buttons.

Smanar commented 2 years ago

Yes the light entry need to be not present, it s a battery remote so only sensor entry, can have some synchronisation issue.

Ok if you don't have error message, (they ara about button or button map) It probably mean the device need binding.

BTW how are you so fast on HA to install a DDF, you know docker or have a tuto ?

DDF with binding enabled to a group, to use this switch with a zigbee group

{
  "schema": "devcap1.schema.json",
  "manufacturername": "MLI",
  "modelid": "tint-Remote-white",
  "vendor": "Muller-Licht",
  "product": "Tint remote control",
  "sleeper": true,
  "status": "Gold",
  "subdevices": [
    {
      "type": "$TYPE_SWITCH",
      "restapi": "/sensors",
      "uuid": [
        "$address.ext",
        "0x01",
        "0x0006"
      ],
      "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": "config/battery",
          "awake": true
        },
        {
          "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": "groupcast",
      "src.ep": 1,
      "cl": "0x0300",
      "config.group": 0
    }
  ]
}

If you still have no error message, we will try with unicast binding, but it will be strange. BTW need to enable "info" "info_l2" and "DDF" as flag for debug (the checkbox).

heinrich-foto commented 2 years ago

My Setting is a Home-Assistant based one, with deconz as Docker Addon. Actually I don't know how to place your DDF directly into the DDF Editor, but I configured it manually, as "ZHASwitch", actually I removed the battery stuff, and configured only the button state.

With Debug Mode INFO_2 and DDF, I get eg the following message:

11:33:35:885 Websocket 172.30.32.1:49602 send message: {"attr":{"id":"12","lastannounced":null,"lastseen":"2022-06-06T09:33Z","manufacturername":"MLI","modelid":"tint-Remote-white","name":"Switch 12","swversion":"MRM001","type":"ZHASwitch","uniqueid":"a4:c1:38:00:aa:10:33:47-01-0006"},"e":"changed","id":"12","r":"sensors","t":"event","uniqueid":"a4:c1:38:00:aa:10:33:47-01-0006"} (ret = 2125881528)
11:33:35:923 APS-DATA.indication from child 0x8D1C
11:33:35:933 [INFO] - No button map for: tint-Remote-white, broadcast to: 0x4005, endpoint: 0x01, cluster: ONOFF (0x0006), command: OFF (0x00), payload: None, zclSeq: 203

And it was the ONOFF Switch pressed. If I press some different switches, It is named appropriate.

So the question is, how can I configure a Button Map for those messages?

heinrich-foto commented 2 years ago
11:33:35:885 Websocket 172.30.32.1:49602 send message: {"attr":{"id":"12","lastannounced":null,"lastseen":"2022-06-06T09:33Z","manufacturername":"MLI","modelid":"tint-Remote-white","name":"Switch 12","swversion":"MRM001","type":"ZHASwitch","uniqueid":"a4:c1:38:00:aa:10:33:47-01-0006"},"e":"changed","id":"12","r":"sensors","t":"event","uniqueid":"a4:c1:38:00:aa:10:33:47-01-0006"} (ret = 2125881528)
11:33:35:933 [INFO] - No button map for: tint-Remote-white, broadcast to: 0x4005, endpoint: 0x01, cluster: ONOFF (0x0006), command: OFF (0x00), payload: None, zclSeq: 203
11:40:15:685 [INFO] - No button map for: tint-Remote-white, broadcast to: 0x4005, endpoint: 0x01, cluster: ONOFF (0x0006), command: OFF (0x00), payload: None, zclSeq: 73
11:40:16:598 [INFO] - No button map for: tint-Remote-white, broadcast to: 0x4005, endpoint: 0x01, cluster: COLOR_CONTROL (0x0300), command: MOVE_TO_COLOR (0x07), payload: 126A408D0000, zclSeq: 74
11:40:17:090 [INFO] - No button map for: tint-Remote-white, broadcast to: 0x4005, endpoint: 0x01, cluster: COLOR_CONTROL (0x0300), command: MOVE_TO_COLOR (0x07), payload: 645FAA960000, zclSeq: 75
11:40:17:497 [INFO] - No button map for: tint-Remote-white, broadcast to: 0x4005, endpoint: 0x01, cluster: COLOR_CONTROL (0x0300), command: MOVE_TO_COLOR (0x07), payload: 126A408D0000, zclSeq: 76
11:40:17:929 [INFO] - No button map for: tint-Remote-white, broadcast to: 0x4005, endpoint: 0x01, cluster: COLOR_CONTROL (0x0300), command: MOVE_TO_COLOR (0x07), payload: 645FAA960000, zclSeq: 77
11:40:18:807 [INFO] - No button map for: tint-Remote-white, broadcast to: 0x4005, endpoint: 0x01, cluster: COLOR_CONTROL (0x0300), command: MOVE_TO_COLOR_TEMPERATURE (0x0A), payload: 2B020A00, zclSeq: 78
11:40:19:324 [INFO] - No button map for: tint-Remote-white, broadcast to: 0x4005, endpoint: 0x01, cluster: COLOR_CONTROL (0x0300), command: MOVE_TO_COLOR_TEMPERATURE (0x0A), payload: DC010A00, zclSeq: 79
11:40:19:917 [INFO] - No button map for: tint-Remote-white, broadcast to: 0x4005, endpoint: 0x01, cluster: COLOR_CONTROL (0x0300), command: MOVE_TO_COLOR_TEMPERATURE (0x0A), payload: 2B020A00, zclSeq: 80
11:40:20:528 [INFO] - No button map for: tint-Remote-white, broadcast to: 0x4005, endpoint: 0x01, cluster: LEVEL_CONTROL (0x0008), command: STEP (0x02), payload: 012B0A00, zclSeq: 81
11:40:20:956 [INFO] - No button map for: tint-Remote-white, broadcast to: 0x4005, endpoint: 0x01, cluster: LEVEL_CONTROL (0x0008), command: STEP (0x02), payload: 002B0A00, zclSeq: 82
11:40:21:438 [INFO] - No button map for: tint-Remote-white, broadcast to: 0x4005, endpoint: 0x01, cluster: BASIC (0x0000), command: 0x02, payload: 05402003, zclSeq: 83
11:40:21:797 [INFO] - No button map for: tint-Remote-white, broadcast to: 0x4005, endpoint: 0x01, cluster: BASIC (0x0000), command: 0x02, payload: 05402001, zclSeq: 84
11:40:22:143 [INFO] - No button map for: tint-Remote-white, broadcast to: 0x4005, endpoint: 0x01, cluster: BASIC (0x0000), command: 0x02, payload: 05402002, zclSeq: 85
11:40:22:501 [INFO] - No button map for: tint-Remote-white, broadcast to: 0x4005, endpoint: 0x01, cluster: BASIC (0x0000), command: 0x02, payload: 05402006, zclSeq: 86
11:40:22:812 [INFO] - No button map for: tint-Remote-white, broadcast to: 0x4005, endpoint: 0x01, cluster: BASIC (0x0000), command: 0x02, payload: 05402004, zclSeq: 87
11:40:23:284 [INFO] - No button map for: tint-Remote-white, broadcast to: 0x4005, endpoint: 0x01, cluster: BASIC (0x0000), command: 0x02, payload: 05402005, zclSeq: 88

Those should be all available buttons on the remote control.

The Remote Control has a center Button, to address 3(-4) Groups. Every group has its own Color Level, Temperatur level and basic buttons set. (broadcast-to: [4003, 4004, 4005, 4006])

broadcast to: 0x4004, endpoint: 0x01, cluster: COLOR_CONTROL (0x0300), command: MOVE_TO_COLOR (0x07), payload: 3565372F0000, zclSeq: 70
broadcast to: 0x4004, endpoint: 0x01, cluster: COLOR_CONTROL (0x0300), command: MOVE_TO_COLOR (0x07), payload: 985EB52C0000, zclSeq: 71
broadcast to: 0x4004, endpoint: 0x01, cluster: COLOR_CONTROL (0x0300), command: MOVE_TO_COLOR (0x07), payload: 3565372F0000, zclSeq: 72
broadcast to: 0x4004, endpoint: 0x01, cluster: COLOR_CONTROL (0x0300), command: MOVE_TO_COLOR (0x07), payload: 0F6CD0310000, zclSeq: 73

broadcast to: 0x4005, endpoint: 0x01, cluster: COLOR_CONTROL (0x0300), command: MOVE_TO_COLOR (0x07), payload: A850A6A30000, zclSeq: 74
broadcast to: 0x4005, endpoint: 0x01, cluster: COLOR_CONTROL (0x0300), command: MOVE_TO_COLOR (0x07), payload: 672B2EB60000, zclSeq: 75
broadcast to: 0x4005, endpoint: 0x01, cluster: COLOR_CONTROL (0x0300), command: MOVE_TO_COLOR (0x07), payload: A850A6A30000, zclSeq: 76
broadcast to: 0x4005, endpoint: 0x01, cluster: COLOR_CONTROL (0x0300), command: MOVE_TO_COLOR (0x07), payload: 645FAA960000, zclSeq: 77

broadcast to: 0x4006, endpoint: 0x01, cluster: COLOR_CONTROL (0x0300), command: MOVE_TO_COLOR (0x07), payload: 2E7EB0380000, zclSeq: 78
broadcast to: 0x4006, endpoint: 0x01, cluster: COLOR_CONTROL (0x0300), command: MOVE_TO_COLOR (0x07), payload: 2B74E4340000, zclSeq: 79
broadcast to: 0x4006, endpoint: 0x01, cluster: COLOR_CONTROL (0x0300), command: MOVE_TO_COLOR (0x07), payload: 2E7EB0380000, zclSeq: 80
broadcast to: 0x4006, endpoint: 0x01, cluster: COLOR_CONTROL (0x0300), command: MOVE_TO_COLOR (0x07), payload: 318BA03D0000, zclSeq: 81

broadcast to: 0x4003, endpoint: 0x01, cluster: COLOR_CONTROL (0x0300), command: MOVE_TO_COLOR (0x07), payload: 2299C6630000, zclSeq: 82
broadcast to: 0x4003, endpoint: 0x01, cluster: COLOR_CONTROL (0x0300), command: MOVE_TO_COLOR (0x07), payload: C8A481590000, zclSeq: 83
broadcast to: 0x4003, endpoint: 0x01, cluster: COLOR_CONTROL (0x0300), command: MOVE_TO_COLOR (0x07), payload: 33B3CC4C0000, zclSeq: 84
broadcast to: 0x4003, endpoint: 0x01, cluster: COLOR_CONTROL (0x0300), command: MOVE_TO_COLOR (0x07), payload: C8A481590000, zclSeq: 85

broadcast to: 0x4004, endpoint: 0x01, cluster: COLOR_CONTROL (0x0300), command: MOVE_TO_COLOR (0x07), payload: 3565372F0000, zclSeq: 86
broadcast to: 0x4004, endpoint: 0x01, cluster: COLOR_CONTROL (0x0300), command: MOVE_TO_COLOR (0x07), payload: 985EB52C0000, zclSeq: 87
broadcast to: 0x4004, endpoint: 0x01, cluster: COLOR_CONTROL (0x0300), command: MOVE_TO_COLOR (0x07), payload: 3565372F0000, zclSeq: 88
broadcast to: 0x4004, endpoint: 0x01, cluster: COLOR_CONTROL (0x0300), command: MOVE_TO_COLOR (0x07), payload: 0F6CD0310000, zclSeq: 89
broadcast to: 0x4004, endpoint: 0x01, cluster: COLOR_CONTROL (0x0300), command: MOVE_TO_COLOR_TEMPERATURE (0x0A), payload: A1010A00, zclSeq: 90
broadcast to: 0x4004, endpoint: 0x01, cluster: COLOR_CONTROL (0x0300), command: MOVE_TO_COLOR_TEMPERATURE (0x0A), payload: 72010A00, zclSeq: 91
broadcast to: 0x4004, endpoint: 0x01, cluster: LEVEL_CONTROL (0x0008), command: STEP (0x02), payload: 012B0A00, zclSeq: 92
broadcast to: 0x4004, endpoint: 0x01, cluster: LEVEL_CONTROL (0x0008), command: STEP (0x02), payload: 002B0A00, zclSeq: 93

broadcast to: 0x4005, endpoint: 0x01, cluster: COLOR_CONTROL (0x0300), command: MOVE_TO_COLOR_TEMPERATURE (0x0A), payload: 2B020A00, zclSeq: 94
broadcast to: 0x4005, endpoint: 0x01, cluster: COLOR_CONTROL (0x0300), command: MOVE_TO_COLOR_TEMPERATURE (0x0A), payload: DC010A00, zclSeq: 95
broadcast to: 0x4005, endpoint: 0x01, cluster: LEVEL_CONTROL (0x0008), command: STEP (0x02), payload: 012B0A00, zclSeq: 96
broadcast to: 0x4005, endpoint: 0x01, cluster: LEVEL_CONTROL (0x0008), command: STEP (0x02), payload: 002B0A00, zclSeq: 97

broadcast to: 0x4006, endpoint: 0x01, cluster: COLOR_CONTROL (0x0300), command: MOVE_TO_COLOR_TEMPERATURE (0x0A), payload: C8000A00, zclSeq: 98
broadcast to: 0x4006, endpoint: 0x01, cluster: COLOR_CONTROL (0x0300), command: MOVE_TO_COLOR_TEMPERATURE (0x0A), payload: 99000A00, zclSeq: 99
broadcast to: 0x4006, endpoint: 0x01, cluster: LEVEL_CONTROL (0x0008), command: STEP (0x02), payload: 012B0A00, zclSeq: 100
broadcast to: 0x4006, endpoint: 0x01, cluster: LEVEL_CONTROL (0x0008), command: STEP (0x02), payload: 002B0A00, zclSeq: 101

broadcast to: 0x4003, endpoint: 0x01, cluster: COLOR_CONTROL (0x0300), command: MOVE_TO_COLOR_TEMPERATURE (0x0A), payload: C8000A00, zclSeq: 102
broadcast to: 0x4003, endpoint: 0x01, cluster: COLOR_CONTROL (0x0300), command: MOVE_TO_COLOR_TEMPERATURE (0x0A), payload: 99000A00, zclSeq: 103
broadcast to: 0x4003, endpoint: 0x01, cluster: LEVEL_CONTROL (0x0008), command: STEP (0x02), payload: 012B0A00, zclSeq: 104
broadcast to: 0x4003, endpoint: 0x01, cluster: LEVEL_CONTROL (0x0008), command: STEP (0x02), payload: 002B0A00, zclSeq: 105

tint_404049C

Smanar commented 2 years ago

Actually I don't know how to place your DDF directly into the DDF Editor, but I configured it manually, as "ZHASwitch", actually I removed the battery stuff, and configured only the button state.

Ha ok, so you are using the editor to have same result. Because HA users have so much problem to create/edit DDF, perhaps this link can help you https://forum.phoscon.de/t/how-to-add-edit-a-ddf-on-home-assistant-using-text-editor/1839

So the question is, how can I configure a Button Map for those messages?

It's the second part ^^. But the problem will be the same, you need to access docker file. You need to edit the button_maps.json file in the "devices" folder (the same than for DDF) and add this part

        "tint-Remote-white_Map": {
            "vendor": "MLI",
            "doc": "Mueller-Licht tint remote",
            "modelids": ["tint-Remote-white"],
            "map": [
                [1, "0x01", "ONOFF", "ON", "0", "S_BUTTON_1", "S_BUTTON_ACTION_SHORT_RELEASED", "On"],
                [1, "0x01", "ONOFF", "OFF", "0", "S_BUTTON_1", "S_BUTTON_ACTION_SHORT_RELEASED", "Off"],
                [1, "0x01", "LEVEL_CONTROL", "STEP", "0", "S_BUTTON_2", "S_BUTTON_ACTION_SHORT_RELEASED", "Step up"],
                [1, "0x01", "LEVEL_CONTROL", "STEP", "1", "S_BUTTON_3", "S_BUTTON_ACTION_SHORT_RELEASED", "Step down"],
                [1, "0x01", "COLOR_CONTROL", "MOVE_TO_COLOR", "XX", "S_BUTTON_4", "S_BUTTON_ACTION_SHORT_RELEASED", "Color 1"],
                [1, "0x01", "COLOR_CONTROL", "MOVE_TO_COLOR", "XX", "S_BUTTON_5", "S_BUTTON_ACTION_SHORT_RELEASED", "Color 2"],
                [1, "0x01", "COLOR_CONTROL", "MOVE_TO_COLOR_TEMPERATURE", "XX", "S_BUTTON_6", "S_BUTTON_ACTION_SHORT_RELEASED", "Color 3"],
                [1, "0x01", "COLOR_CONTROL", "MOVE_TO_COLOR_TEMPERATURE", "XX", "S_BUTTON_7", "S_BUTTON_ACTION_SHORT_RELEASED", "Color 4"] 
            ]
        },

The problem is with XX part, I m searching in the code, but I don't think it's present on legacy code. I m searching more informations. But I think we will need to edit the c++ code or make a big JS code part to be used by DDF.

heinrich-foto commented 2 years ago

Thanks for the Link. It was helpful to find the default configs within the container.

I was only looking into /data/.local/share/dreseden-electronik/deCONZ/devices/ there was the default path for my custom DDF json file. But there was no button_map file.

In the system button Map file, I found a good looking part:

"tintMap": {
            "vendor": "Tint",
            "doc": "Remote",
            "modelids": ["ZBT-Remote-ALL-RGBW"],
            "map": [
                [1, "0x01", "ONOFF", "OFF", "0", "S_BUTTON_1", "S_BUTTON_ACTION_SHORT_RELEASED", "Off"],
                [1, "0x01", "ONOFF", "ON", "0", "S_BUTTON_1", "S_BUTTON_ACTION_SHORT_RELEASED", "On"],
                [1, "0x01", "LEVEL_CONTROL", "STEP", "0", "S_BUTTON_2", "S_BUTTON_ACTION_SHORT_RELEASED", "Step Up"],
                [1, "0x01", "LEVEL_CONTROL", "MOVE", "0", "S_BUTTON_2", "S_BUTTON_ACTION_HOLD", "Move Up"],
                [1, "0x01", "LEVEL_CONTROL", "STOP", "0", "S_BUTTON_2", "S_BUTTON_ACTION_LONG_RELEASED", "Stop"],
                [1, "0x01", "LEVEL_CONTROL", "STEP", "1", "S_BUTTON_3", "S_BUTTON_ACTION_SHORT_RELEASED", "Step Down"],
                [1, "0x01", "LEVEL_CONTROL", "MOVE", "1", "S_BUTTON_3", "S_BUTTON_ACTION_HOLD", "Move Down"],
                [1, "0x01", "LEVEL_CONTROL", "STOP", "1", "S_BUTTON_3", "S_BUTTON_ACTION_LONG_RELEASED", "Stop"],
                [1, "0x01", "COLOR_CONTROL", "MOVE_TO_COLOR_TEMPERATURE", "0", "S_BUTTON_4", "S_BUTTON_ACTION_SHORT_RELEASED", "Move to Color Temperature (Up)"],
                [1, "0x01", "COLOR_CONTROL", "MOVE_TO_COLOR_TEMPERATURE", "1", "S_BUTTON_5", "S_BUTTON_ACTION_SHORT_RELEASED", "Move to Color Temperature (Down)"],
                [1, "0x01", "COLOR_CONTROL", "MOVE_TO_COLOR", "0", "S_BUTTON_6", "S_BUTTON_ACTION_SHORT_RELEASED", "Move to Color"],
                [1, "0x01", "BASIC", "0x02", "3", "S_BUTTON_7", "S_BUTTON_ACTION_SHORT_RELEASED", "Work Light"],
                [1, "0x01", "BASIC", "0x02", "1", "S_BUTTON_8", "S_BUTTON_ACTION_SHORT_RELEASED", "Sunset"],
                [1, "0x01", "BASIC", "0x02", "2", "S_BUTTON_9", "S_BUTTON_ACTION_SHORT_RELEASED", "Party"],
                [1, "0x01", "BASIC", "0x02", "6", "S_BUTTON_10", "S_BUTTON_ACTION_SHORT_RELEASED", "Night Light"],
                [1, "0x01", "BASIC", "0x02", "4", "S_BUTTON_11", "S_BUTTON_ACTION_SHORT_RELEASED", "Campfire"],
                [1, "0x01", "BASIC", "0x02", "5", "S_BUTTON_12", "S_BUTTON_ACTION_SHORT_RELEASED", "Romance"]
            ]
        },
Smanar commented 2 years ago

Take a look in /usr/share/deCONZ/devices

                [1, "0x01", "LEVEL_CONTROL", "MOVE", "0", "S_BUTTON_2", "S_BUTTON_ACTION_HOLD", "Move Up"],
                [1, "0x01", "LEVEL_CONTROL", "STOP", "0", "S_BUTTON_2", "S_BUTTON_ACTION_LONG_RELEASED", "Stop"],

But on your logs you don't have thoses request ?

The json can work natively for ONOFF and LEVEL_CONTROL but not other, because of the value used from the payload. And for that the easy solution is editing the c++ code, but will be hard for you to test the code and not sure I will have the permission, the other solution is making a JS code to handle all button value, but need to make a complete code.

PXLCoarl commented 2 years ago

ah i just "sshed" into the docker and loaded the ddf manually :D

Smanar commented 2 years ago

This method can work for the DDF but not for the button_map file ^^.

PXLCoarl commented 2 years ago

So, i just added the part into the button_map file.

btw if i enable Info2 this is spammed alot:


17:10:52:720 Force binding of attribute reporting for node Müller Licht Remote
17:10:52:841 Poll APS request to 0xA4C13800AC60157F cluster: 0x0006 dropped, values are fresh enough
17:10:53:716 poll node a4:c1:38:00:ac:60:26:0f-01
17:10:53:717 Poll light node Livingroom
17:10:53:719 Idle timer triggered
17:10:53:720 Force read attributes for ZHASwitch SensorNode Müller Licht Remote
17:10:53:722 Force binding of attribute reporting for node Müller Licht Remote

17:21:07:718 Force read attributes for ZHASwitch SensorNode Müller Licht Remote
17:21:07:719 Force binding of attribute reporting for node Müller Licht Remote
17:21:07:723 Poll APS request to 0xA4C13800AC60260F cluster: 0x0006 dropped, values are fresh enough
17:21:08:694 Websocket 172.30.32.1:35928 send message: {"attr":{"id":"2","lastannounced":"2022-06-06T13:00:49Z","lastseen":"2022-06-06T15:21Z","manufacturername":"MLI","modelid":"tint-Remote-white","name":"Müller Licht Remote","swversion":"MRM001","type":"ZHASwitch","uniqueid":"a4:c1:38:00:aa:10:20:54-01-0006"},"e":"changed","id":"2","r":"sensors","t":"event","uniqueid":"a4:c1:38:00:aa:10:20:54-01-0006"} (ret = 353)
17:21:08:706 APS-DATA.indication from child 0xC31B
17:21:08:708 [INFO] - No button map for: tint-Remote-white, broadcast to: 0x4003, endpoint: 0x01, cluster: ONOFF (0x0006), command: OFF (0x00), payload: None, zclSeq: 42
17:21:08:718 poll node a4:c1:38:00:ac:60:15:7f-01
17:21:08:719 Poll light node Diningroom
17:21:08:720 Idle timer triggered
17:21:08:721 Force read attributes for ZHASwitch SensorNode Müller Licht Remote
17:21:08:722 Force binding of attribute reporting for node Müller Licht Remote
Smanar commented 2 years ago

There is nothing to see with the button_map file. For me it s deconz that try to configure the device, and as it's a sleeping device, can time some time to finish.

17:21:08:708 [INFO] - No button map for: tint-Remote-white, broadcast to: 0x4003, endpoint: 0x01, cluster: ONOFF (0x0006), command: OFF (0x00), payload: None, zclSeq: 42

but this line is not normal, this command need to work.

[1, "0x01", "ONOFF", "OFF", "0", "S_BUTTON_1", "S_BUTTON_ACTION_SHORT_RELEASED", "Off"],

You are using my code ?


        "tint-Remote-white_Map": {
            "vendor": "MLI",
            "doc": "Mueller-Licht tint remote",
            "modelids": ["tint-Remote-white"],
            "map": [
                [1, "0x01", "ONOFF", "ON", "0", "S_BUTTON_1", "S_BUTTON_ACTION_SHORT_RELEASED", "On"],
                [1, "0x01", "ONOFF", "OFF", "0", "S_BUTTON_1", "S_BUTTON_ACTION_SHORT_RELEASED", "Off"],
                [1, "0x01", "LEVEL_CONTROL", "STEP", "0", "S_BUTTON_2", "S_BUTTON_ACTION_SHORT_RELEASED", "Step up"],
                [1, "0x01", "LEVEL_CONTROL", "STEP", "1", "S_BUTTON_3", "S_BUTTON_ACTION_SHORT_RELEASED", "Step down"],
                [1, "0x01", "COLOR_CONTROL", "MOVE_TO_COLOR", "XX", "S_BUTTON_4", "S_BUTTON_ACTION_SHORT_RELEASED", "Color 1"],
                [1, "0x01", "COLOR_CONTROL", "MOVE_TO_COLOR", "XX", "S_BUTTON_5", "S_BUTTON_ACTION_SHORT_RELEASED", "Color 2"],
                [1, "0x01", "COLOR_CONTROL", "MOVE_TO_COLOR_TEMPERATURE", "XX", "S_BUTTON_6", "S_BUTTON_ACTION_SHORT_RELEASED", "Color 3"],
                [1, "0x01", "COLOR_CONTROL", "MOVE_TO_COLOR_TEMPERATURE", "XX", "S_BUTTON_7", "S_BUTTON_ACTION_SHORT_RELEASED", "Color 4"] 
            ]
        },
heinrich-foto commented 2 years ago

Get the /usr/share/...button_maps.json get extended by the $home/.local/... one?

So do i have to place your provided json fragment into the $home file? and trigger some reload? Or do I need to rewrite the entire /usr/share/...file?

I did the following, but actually with no success:

docker cp addon_core_deconz:/usr/share/deCONZ/devices/button_maps.json ./button_maps.json

modified the button_maps file with the tint-Remote-white_Map Code Fragment you provided. And cp it back...

docker cp ./button_maps.json addon_core_deconz:/usr/share/deCONZ/devices/button_maps.json

But no changes: 17:35:28:138 [INFO] - No button map for: tint-Remote-white, broadcast to: 0x4004, endpoint: 0x01, cluster: ONOFF (0x0006), command: ON (0x01), payload: None, zclSeq: 103

(and now I can't restart the container) but that's a different error...

Can't create container from addon_core_deconz: 409 Client Error for http+docker://localhost/v1.41/containers/create?name=addon_core_deconz: Conflict ("Conflict. The container name "/addon_core_deconz" is already in use by container "af74eed9767ad44982e7cac15f58b57d3aee5806dfa16cbb391d104bbdd688c9". You have to remove (or rename) that container to be able to reuse that name.")
PXLCoarl commented 2 years ago

I still get this:

17:48:41:549 [INFO] - No button map for: tint-Remote-white, broadcast to: 0x4003, endpoint: 0x01, cluster: ONOFF (0x0006), command: ON

PXLCoarl commented 2 years ago

interestingly, tho the switch shows up in phoscon, i cant actually add it to any groups

heinrich-foto commented 2 years ago

Its showed in phoscon in cause of the added DDF. The appropriate key map is missing, that's why nothing happens, but visible.

How can I trigger a reload of the button_maps.json. Is it possible for test purposes to cp in a modified version of the maps.json file? For me I had to restart everything, because the docker image couldn't be removed on reload of the docker container (it already exist,,,)

For a progress on this do we need some more debug infos? e.g. long and short press sequences with the corresponding buttons?! In my first test the payload was not so clear on the color change stuff. A good starting point would be the device support for the basic buttons, the color stuff is the second part.

The ONOFF has no long/shortpress function. It has only a ON (0x01) or OFF (0x00) state.

Smanar commented 2 years ago

modified the button_maps file with the tint-Remote-white_Map Code Fragment you provided. And cp it back

For me it's the good method, you just need to add the code fragment to the complete file. But something is bad on the procedure.

Using the cat command is not working like https://github.com/dresden-elektronik/deconz-rest-plugin/issues/5917#issuecomment-1121061491

Here a way to found the file https://github.com/dresden-elektronik/deconz-rest-plugin/issues/3670#issuecomment-734652340

You don't have vi nano or vim as usable command ?

PXLCoarl commented 2 years ago

you can install it in the docker with apt-get update and then apt-get install vim but u'll have to do it everytime you exec into the container

Smanar commented 2 years ago

There is no command pre-installed (native) in the docker ?

heinrich-foto commented 2 years ago

what command pre installed? yes there is no editor pre installed in this container. It is not to good way to change files inside the docker container.

The way to do those hot fix stuff is via docker cp command. With this I can change the file on the host (via vim, or other ways) and then copy it into the container. But actually I didn't find a correct way to restart the phoscon service.

Or do i not need to restart the service? otherwise Is the json file parsed on every event?

Now with the changed file, I don't get any response inside the debug monitor. (and with the original file... so I don't know what's going wrong at this point with my setup...)

Smanar commented 2 years ago

Or do i not need to restart the service? otherwise Is the json file parsed on every event?

This file is only parsed on deconz start. There is no way to chnage this file definitively ?

And I have my answer, I need to make a JS code to handle all button event. Not so hard but need some time, and need first to found a way to add/edit file definitively on dockers.

heinrich-foto commented 2 years ago

actually no reload functionality. (maybe for test purposes a separate setup would be good... with only a small set of test devices... next item on my shopping list..)

in the home assistant add-on (https://github.com/home-assistant/addons/tree/master/deconz), there is also no functionality to expose the $home config files to the host. https://community.home-assistant.io/t/deconz-support-management-of-ddf-files-through-ha-config/370331

Additionally for the COLOR_CONTRO -> MOVE_TO_COLOR command, there is no separate key code, the remote calculates the next value and sends it inside the payload, the following 19 values I have seen in a sequence of a lot up presses and a lot down presses:

C8A481590000
33B3CC4C0000
DA9BF1430000
318BA03D0000
2E7EB0380000
0F4D0E260000
8C56A7290000
985EB52C0000
3565372F0000
0F6CD0310000
2B74E4340000
2299C6630000
198F9E6C0000
BD86FC730000
5A7F7E7A0000
117909800000
5672F7850000
126A408D0000
645FAA960000

with the [0F4D0E260000; 645FAA960000] max, min values.

following the order, with round about 20 up presses, down presses, up presses.

C8A481590000
33B3CC4C0000
DA9BF1430000
318BA03D0000
2E7EB0380000
0F4D0E260000
0F4D0E260000
0F4D0E260000
0F4D0E260000
0F4D0E260000
0F4D0E260000
0F4D0E260000
0F4D0E260000
0F4D0E260000
0F4D0E260000
0F4D0E260000
0F4D0E260000
0F4D0E260000
0F4D0E260000
0F4D0E260000
0F4D0E260000
0F4D0E260000
8C56A7290000
985EB52C0000
3565372F0000
0F6CD0310000
2B74E4340000
2E7EB0380000
318BA03D0000
DA9BF1430000
33B3CC4C0000
DA9BF1430000
318BA03D0000
2E7EB0380000
2B74E4340000
985EB52C0000
8C56A7290000
0F4D0E260000
8C56A7290000
985EB52C0000
3565372F0000
0F6CD0310000
2B74E4340000
2E7EB0380000
318BA03D0000
DA9BF1430000
33B3CC4C0000
C8A481590000
2299C6630000
198F9E6C0000
BD86FC730000
5A7F7E7A0000
117909800000
5672F7850000
126A408D0000
645FAA960000
645FAA960000
645FAA960000
645FAA960000
645FAA960000
645FAA960000
645FAA960000
645FAA960000
645FAA960000
645FAA960000
645FAA960000
645FAA960000
645FAA960000
645FAA960000
645FAA960000
645FAA960000
126A408D0000
5672F7850000
117909800000
5A7F7E7A0000
BD86FC730000
198F9E6C0000
2299C6630000
C8A481590000
C8A481590000
2299C6630000
198F9E6C0000
BD86FC730000
5A7F7E7A0000
117909800000
5672F7850000
126A408D0000
heinrich-foto commented 2 years ago

docker cp is not as good... It brings the container in a not removable state...

If I try to restart the add-on via web ui, I get the following error message:

Can't create container from addon_core_deconz: 409 Client Error for http+docker://localhost/v1.41/containers/create?name=addon_core_deconz: Conflict ("Conflict. The container name "/addon_core_deconz" is already in use by container "9190593f81d0ca92e6f2bcafe795c9044b8baa7ddae5d5ee6a18c1fe3cfaab46". You have to remove (or rename) that container to be able to reuse that name.")

via terminal I get the following from docker:

docker ps -a | grep deco
9190593f81d0   homeassistant/armhf-addon-deconz:6.14.1                      "/init"   2 hours ago    Removal In Progress  

a force remove doesn't work. My fix in this situation is to restart the entire host. (or maybe https://github.com/moby/moby/issues/22312#issuecomment-358519539)

Smanar commented 2 years ago

Sorry, I realy can't help you for docker, I totaly hates this working mode and don't know how it work at all.

For the move to color, you are right :( I have just read the doc, and first 2 bytes are X color, then Y color and transition time. And I don't see logic in order, so to detect if you press a side or the reverse need to check this list ....

But need to memorise the last action to compare. Seriously it s realy too much work without using c++ code.

heinrich-foto commented 2 years ago

docker is not the scope of this issue ☺

where did you find a documentation of this remote?

The order in my prev post was not the right order, only the (sorted) unique values.

too much work, sounds not so good...

Smanar commented 2 years ago

Not remote documentation, but zigbee one ^^

5.2.2.3.10 Move to Color Command 5.2.2.3.10.1 Payload Format The Move to Color command payload SHALL be formatted as illustrated in Figure 5-9. Figure 5-9. Format of the Move to Color Command Payload Bits 16 16 16 Data Type uint16 uint16 uint16 Field Name ColorX ColorY Transition Time 5.2.2.3.10.2 Ef fect on Receipt On receipt of this command, a device SHALL set the value of the ColorMode attribute, where implemented, to 0x01, and SHALL then move from its current color to the color given in the ColorX and ColorY fields. The movement SHALL be continuous, i.e., not a step function, and the time taken to move to the new color SHALL be equal to the Transition Time field, in 1/10ths of a second. The path through color space taken during the transition is not specified, but it is recommended that the shortest path is taken though color space, i.e., movement is 'in a straight line' across the CIE xyY Color Space

https://zigbeealliance.org/wp-content/uploads/2019/12/07-5123-06-zigbee-cluster-library-specification.pdf

Thomas-Vos commented 2 years ago

Hi @Smanar, I am not sure if you noticed already, but another version of this remote which is very similar (maybe identical?) is already supported in deCONZ. Erik added support for it in https://github.com/dresden-elektronik/deconz-rest-plugin/pull/2849. The original issue is https://github.com/dresden-elektronik/deconz-rest-plugin/issues/1209.

I know that this old version also has the color change stuff, and Erik hard coded the colors in de_web_plugin.cpp (see linked PR above).

If it is possible, it would be nice to expose this new remote exactly the same (or similar) to the old one. That would make it easier for third party app developers (like me) to add support for it. So the same button events, etc. Maybe you can even reuse the existing code if it is the same.

Smanar commented 2 years ago

The problem is it's no more possible, ATM adding new device using c++ is forbidden, can add them only using DDF. And yes I know will be faster using c++ code, but deconz is moving all old device from c++ code to DDF version.

But ATM I think we can use the "move to color tezmperature" if we can store the previous value somewhere (and compare it with the new one) but I don't see how to use the "move to color" only with values returned by the device.

github-actions[bot] commented 2 years ago

As there has not been any response in 21 days, this issue has been automatically marked as stale. At OP: Please either close this issue or keep it active It will be closed in 7 days if no further activity occurs.

github-actions[bot] commented 2 years ago

As there has not been any response in 28 days, this issue will be closed. @ OP: If this issue is solved post what fixed it for you. If it is not solved, request to get this opened again.

rweise commented 1 year ago

Is there a final solution, to bring this remote control to work?

Mimiix commented 1 year ago

@Smanar ?

Smanar commented 1 year ago

This device can only work partially. Not possible to mix c++ and DDF stuff. And I don't see how to make with DDF for the 2 lasts commands.

rweise commented 1 year ago

Can someone provide the partially working ddf? I use some stuff from above and i can see the device but there are no working things in iobroker :-(

Smanar commented 1 year ago

The orignal one is here https://github.com/dresden-elektronik/deconz-rest-plugin/issues/5841#issuecomment-1147160045 And for the button map file https://github.com/dresden-elektronik/deconz-rest-plugin/issues/5841#issuecomment-1147578019 (the DDF alone is not enought, if you can see it, I think you already have a partial DDF))

But what is your model id ?

github-actions[bot] commented 1 year ago

As there has not been any response in 21 days, this issue has been automatically marked as stale. At OP: Please either close this issue or keep it active It will be closed in 7 days if no further activity occurs.

github-actions[bot] commented 1 year ago

As there has not been any response in 28 days, this issue will be closed. @ OP: If this issue is solved post what fixed it for you. If it is not solved, request to get this opened again.

nook24 commented 5 months ago

Is this device now supported or not?

Smanar commented 5 months ago

Nothing more since https://github.com/dresden-elektronik/deconz-rest-plugin/issues/5841#issuecomment-1491789810