Skip to content

DDF for IKEA RODRET Dimmer - #7230

Merged
ebaauw merged 9 commits into
dresden-elektronik:masterfrom
ebaauw:master
Sep 16, 2023
Merged

ebaauw merged 9 commits into
dresden-elektronik:masterfrom
ebaauw:master

Conversation

@ebaauw

@ebaauw ebaauw commented Sep 16, 2023 •

Copy link
Copy Markdown
Collaborator

While this device looks like half a STYRBAR, it acts differently. It picks a group ID on reset, reports this through Touchpoint Commissioning, and creates a non-removable binding from the client On/Off cluster to this group. This means config.group should match this group ID, and we need to create a binding of the client Level Control cluster to this group as well.
Note that the device also sends an Add Group to the coordinator for the group it picked on reset.

Changes:

  • Renamed DDF;
  • Fixed indentation;
  • Add productid to show the product ID (Exxxx), sourced from 0x0000/0x000A.
  • Add config/alert;
  • config/battery:
    • Change reporting to 300/2700/0x01;
    • Changed "fn": "zcl" to "fn": "zcl:attr"l
    • Add read with refresh.interval of 86400;
    • Add awake;
  • state/buttonevent: add `awake;
  • Expose cap/group (to read the group from the Touchpoint Commissioning cluster and config/group (to create the group bindings). Through some C++ magic, the Get Group Identifier Response is used to populate config/group. While the API exposes this as read/write, changing it will not work, as the bindings to the Touchpoint Commissioning group cannot be removed.
  • Changed order of bindings to do the client clusters first. Device becomes incommunicado without any client cluster bindings.
  • Use group bindings for client clusters.
{
  "capabilities": {
    "group": "23998"
  },
  "config": {
    "alert": "none",
    "battery": 100,
    "group": "23998",
    "on": true,
    "reachable": true
  },
  "ep": 1,
  "etag": "96ae43c63f3bedd3685532de8bb2df5c",
  "lastannounced": null,
  "lastseen": "2023-09-16T09:44Z",
  "manufacturername": "IKEA of Sweden",
  "mode": 1,
  "modelid": "RODRET Dimmer",
  "name": "Rodret",
  "productid": "E2201",
  "state": {
    "buttonevent": 1002,
    "lastupdated": "2023-09-16T09:11:04.895"
  },
  "swversion": "1.0.47",
  "type": "ZHASwitch",
  "uniqueid": "b4:35:22:ff:fe:4b:b5:c1-01-1000"
}

Generic

  • Add cap_group_item.json;
  • Add touchlink_commissioning_cluster/1000_get_group_identifiers.js to parse the Get Group Identifiers Response into cap/group.

Legacy Code

  • binding.cpp: Bug fix: legacy code would still create a config/group item and corresponding groups resource on DDF managed devices.
  • resource.cpp, resource.h: Add RCapGroup;
  • rest_sensors.cpp: Expose capabilities and productid on sensors resources that support these;
  • general.xml: Rename ZLL Commissioning to Touchpoint Commissioning, in line with ZCL v8 spec.

This PR was part of #7218.

Rename _ZLL commissioning_ to _Touchlink Commissioning_, in line with ZCL v8 spec.
Add `RCapGroup`.
Add `RCapGroup`.
- Add `capabilities` to `sensors` resource.
- Expose `productid` on sensors (where defined).  Was already included in web socket notification.
Add `cap/group` to retrieve the group identifier(s) from the Touchlink Commissioning cluster.
Parse _Get Group Identifiers Response_ payload from _Touchlink Commissioning_ cluster.
Renamed to `rodret_dimmer.json`.
Legacy code still created `config.group` item and corresponding group on DDF exposed switches.
@ebaauw ebaauw added this to the v2.24.1-beta milestone Sep 16, 2023
@ebaauw ebaauw linked an issue Sep 16, 2023 that may be closed by this pull request
@ebaauw ebaauw added the Device Improvement Additional tag to attach to a existing issue. label Sep 16, 2023
@ebaauw
ebaauw merged commit 3f7092a into dresden-elektronik:master Sep 16, 2023
@ebaauw

ebaauw commented Sep 16, 2023

Copy link
Copy Markdown
Collaborator Author

Note config/alert was missing - fixed in #7238.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Device Improvement Additional tag to attach to a existing issue.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

IKEA RODRET Kabelloser Dimmer/Schalter

1 participant