Add possibility to define group id manually for ZHA (#18932)

Co-authored-by: Bram Kragten <mail@bramkragten.nl>
This commit is contained in:
Dmitry Tsydzik 2023-12-18 17:37:57 +03:00 committed by GitHub
parent 325ad6f721
commit d77ce721e3
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 27 additions and 1 deletions

View File

@ -383,11 +383,13 @@ export const removeMembersFromGroup = (
export const addGroup = (
hass: HomeAssistant,
groupName: string,
groupId?: number,
membersToAdd?: ZHAGroupMember[]
): Promise<ZHAGroup> =>
hass.callWS({
type: "zha/group/add",
group_name: groupName,
group_id: groupId,
members: membersToAdd,
});

View File

@ -30,6 +30,8 @@ export class ZHAAddGroupPage extends LitElement {
@state() private _groupName = "";
@state() private _groupId?: string;
@query("zha-device-endpoint-data-table", true)
private _zhaDevicesDataTable!: ZHADeviceEndpointDataTable;
@ -74,6 +76,15 @@ export class ZHAAddGroupPage extends LitElement {
)}
></ha-textfield>
<ha-textfield
type="number"
.value=${this._groupId}
@change=${this._handleGroupIdChange}
.placeholder=${this.hass!.localize(
"ui.panel.config.zha.groups.group_id_placeholder"
)}
></ha-textfield>
<div class="header">
${this.hass.localize("ui.panel.config.zha.groups.add_members")}
</div>
@ -130,7 +141,15 @@ export class ZHAAddGroupPage extends LitElement {
const memberParts = member.split("_");
return { ieee: memberParts[0], endpoint_id: memberParts[1] };
});
const group: ZHAGroup = await addGroup(this.hass, this._groupName, members);
const groupId = this._groupId
? parseInt(this._groupId as string, 10)
: undefined;
const group: ZHAGroup = await addGroup(
this.hass,
this._groupName,
groupId,
members
);
this._selectedDevicesToAdd = [];
this._processingAdd = false;
this._groupName = "";
@ -138,6 +157,10 @@ export class ZHAAddGroupPage extends LitElement {
navigate(`/config/zha/group/${group.group_id}`, { replace: true });
}
private _handleGroupIdChange(event) {
this._groupId = event.target.value;
}
private _handleNameChange(event) {
this._groupName = event.target.value || "";
}

View File

@ -4039,6 +4039,7 @@
"removing_members": "Removing devices",
"create_group_details": "Enter the required details to create a new Zigbee group",
"group_name_placeholder": "Group name",
"group_id_placeholder": "Group ID (optional)",
"create_group": "Create group",
"create": "Create group",
"creating_group": "Creating group",