Idea
The eisy exposes an /api/groups endpoint that expands what /rest/nodes <group> carries. It lists each group's controllers and, per controller, the full member link records — including the link's target parameters (on-level/ramp the scene drives each member to), not just membership.
Captured shape (anonymised structure):
{ successful, data: { groups: [ { id, ctl: [ { id, links: [ { linkdef, node, params, type } ] } ] } ] } }
(93 groups in the sample capture.) links[].params carries the per-member target state the scene sets — which /rest/nodes does not provide.
Why it's useful
Today Group.group_all_on / group_any_on are coarse aggregates over member ST (non-zero = on). With link target data we could offer a much better scene status:
- any-on / all-on (as today, but membership sourced more reliably),
scene_matches_target — every member's live ST equals the level the scene's link would set → "the scene is actually active as programmed", vs. partially/manually diverged.
That matches-target signal is what consumers really want for a scene switch's is_on and for follower/"chaser" automations, instead of inferring from a single representative member.
Scope / notes
Filed as a separate enhancement (not blocking #173).
Idea
The eisy exposes an
/api/groupsendpoint that expands what/rest/nodes<group>carries. It lists each group's controllers and, per controller, the full member link records — including the link's target parameters (on-level/ramp the scene drives each member to), not just membership.Captured shape (anonymised structure):
(93 groups in the sample capture.)
links[].paramscarries the per-member target state the scene sets — which/rest/nodesdoes not provide.Why it's useful
Today
Group.group_all_on/group_any_onare coarse aggregates over memberST(non-zero = on). With link target data we could offer a much better scene status:scene_matches_target— every member's liveSTequals the level the scene's link would set → "the scene is actually active as programmed", vs. partially/manually diverged.That
matches-targetsignal is what consumers really want for a scene switch'sis_onand for follower/"chaser" automations, instead of inferring from a single representative member.Scope / notes
/api/groupsalongside the existing/rest/nodesgroup parse, attach link/target data toGroupRecord, expose a derivedscene_matches_target(computed-on-access like the current aggregates).~/src/.devcontainer_shared/home-assistant-core/isy994_stashed/eisy_api_data/api_groups.json.Filed as a separate enhancement (not blocking #173).