UNPKG

matterbridge-hass

Version:
21 lines (20 loc) 1.14 kB
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; }