Skip to content

Commit

Permalink
Release 2.0.18
Browse files Browse the repository at this point in the history
  • Loading branch information
Luligu committed Jun 18, 2024
1 parent 8e0a6b9 commit 9de8622
Showing 1 changed file with 7 additions and 3 deletions.
10 changes: 7 additions & 3 deletions src/entity.ts
Original file line number Diff line number Diff line change
Expand Up @@ -731,20 +731,23 @@ export class ZigbeeDevice extends ZigbeeEntity {
});
if (this.bridgedDevice.hasClusterServer(OnOff.Complete) || this.bridgedDevice.hasEndpoints) {
this.bridgedDevice.addCommandHandler('on', async (data) => {
if (!data.endpoint.number) return;
this.log.debug(`Command on called for ${this.ien}${device.friendly_name}${rs}${db} endpoint: ${data.endpoint.number} onOff: ${data.attributes.onOff.getLocal()}`);
const payload: Payload = {};
const label = this.bridgedDevice?.getEndpointLabel(data.endpoint.number);
label === undefined ? (payload['state'] = 'ON') : (payload['state_' + label] = 'ON');
this.publishCommand('on', device.friendly_name, payload);
});
this.bridgedDevice.addCommandHandler('off', async (data) => {
if (!data.endpoint.number) return;
this.log.debug(`Command off called for ${this.ien}${device.friendly_name}${rs}${db} endpoint: ${data.endpoint.number} onOff: ${data.attributes.onOff.getLocal()}`);
const payload: Payload = {};
const label = this.bridgedDevice?.getEndpointLabel(data.endpoint.number);
label === undefined ? (payload['state'] = 'OFF') : (payload['state_' + label] = 'OFF');
this.publishCommand('off', device.friendly_name, payload);
});
this.bridgedDevice.addCommandHandler('toggle', async (data) => {
if (!data.endpoint.number) return;
this.log.debug(`Command toggle called for ${this.ien}${device.friendly_name}${rs}${db} endpoint: ${data.endpoint.number} onOff: ${data.attributes.onOff.getLocal()}`);
const payload: Payload = {};
const label = this.bridgedDevice?.getEndpointLabel(data.endpoint.number);
Expand All @@ -754,20 +757,20 @@ export class ZigbeeDevice extends ZigbeeEntity {
}
if (this.bridgedDevice.hasClusterServer(LevelControl.Complete) || this.bridgedDevice.hasEndpoints) {
this.bridgedDevice.addCommandHandler('moveToLevel', async ({ request: { level, transitionTime }, attributes: { currentLevel }, endpoint: { number } }) => {
if (!number) return;
this.log.debug(`Command moveToLevel called for ${this.ien}${device.friendly_name}${rs}${db} endpoint: ${number} request: ${level} transition: ${transitionTime} attributes: ${currentLevel.getLocal()}`);
const payload: Payload = {};
const label = this.bridgedDevice?.getEndpointLabel(number);
label === undefined ? (payload['brightness'] = level) : (payload['brightness_' + label] = level);
// transitionTime = 100;
if (this.transition && transitionTime && transitionTime / 10 >= 1) payload['transition'] = Math.round(transitionTime / 10);
this.publishCommand('moveToLevel', device.friendly_name, payload);
});
this.bridgedDevice.addCommandHandler('moveToLevelWithOnOff', async ({ request: { level, transitionTime }, attributes: { currentLevel }, endpoint: { number } }) => {
if (!number) return;
this.log.debug(`Command moveToLevelWithOnOff called for ${this.ien}${device.friendly_name}${rs}${db} endpoint: ${number} request: ${level} transition: ${transitionTime} attributes: ${currentLevel.getLocal()}`);
const payload: Payload = {};
const label = this.bridgedDevice?.getEndpointLabel(number);
label === undefined ? (payload['brightness'] = level) : (payload['brightness_' + label] = level);
// transitionTime = 100;
if (this.transition && transitionTime && transitionTime / 10 >= 1) payload['transition'] = Math.round(transitionTime / 10);
this.publishCommand('moveToLevelWithOnOff', device.friendly_name, payload);
});
Expand Down Expand Up @@ -916,9 +919,10 @@ export class BridgedBaseDevice extends MatterbridgeDevice {
constructor(entity: ZigbeeEntity, definition: AtLeastOne<DeviceTypeDefinition>, includeServerList: ClusterId[] = [], includeClientList?: ClusterId[]) {
super(definition[0]);
this.log = entity.log;
this.log.debug(`new BridgedBaseDevice ${entity.isDevice ? entity.device?.friendly_name : entity.group?.friendly_name}${db}`);
definition.forEach((deviceType) => {
this.addDeviceType(deviceType);
this.log.debug(`new BridgedBaseDevice ${entity.isDevice ? entity.device?.friendly_name : entity.group?.friendly_name} deviceType: ${hk}${deviceType.name}${db}`);
this.log.debug(`- with deviceType: ${hk}${deviceType.code}${db}-${hk}${deviceType.name}${db}`);
});

// Log all server clusters in the includelist
Expand Down

0 comments on commit 9de8622

Please sign in to comment.