matterbridge-hass
Version:
Matterbridge hass plugin
21 lines (20 loc) • 1.14 kB
JavaScript
import { onOffMountedSwitch, onOffOutlet } from 'matterbridge';
import { OnOff } from 'matterbridge/matter/clusters';
import { CYAN, db } from 'node-ansi-logger';
import { getDomain } from './helpers.js';
export function addButtonEntity(platform, mutableDevice, entity, _state) {
const endpointName = entity.entity_id;
const domain = getDomain(entity.entity_id);
if (domain !== 'button')
return undefined;
platform.log.debug(`- button domain platform "${entity.platform}" endpoint "${endpointName}" for entity ${CYAN}${entity.entity_id}${db}`);
mutableDevice.addDeviceTypes(endpointName, onOffMountedSwitch, onOffOutlet);
mutableDevice.addCommandHandler(endpointName, 'on', async (data) => {
await platform.ha.callService(domain, 'press', entity.entity_id);
setTimeout(() => {
void data.endpoint.setAttribute(OnOff.Cluster, 'onOff', false, data.endpoint.log).catch(() => { });
}, 500).unref();
});
platform.log.debug(`+ button domain platform "${entity.platform}" endpoint "${endpointName}" for entity ${CYAN}${entity.entity_id}${db}`);
return endpointName;
}