2025-07-24 16:34:58 +02:00

39 lines
1.1 KiB
TypeScript

/// Returns the adapter address of the device associated with the given service address.
/// The service address may belong to any service on the device.
export function adapterAddressFromServiceAddress(
serviceAddress: string,
): string {
const parts = serviceAddress.split('/');
if (parts.length < 4) {
throw new Error('Invalid address format');
}
const adapterPart = parts[2]; // e.g., "rn:zigbee"
const adapterName = adapterPart.split(':')[1]; // "zigbee"
const adPart = parts[3]; // e.g., "ad:1"
return `/rt:ad/rn:${adapterName}/${adPart}`;
}
/// Returns the adapter service name of the device associated with the given service address.
/// The service address may belong to any service on the device.
export function adapterServiceFromServiceAddress(
serviceAddress: string,
): string {
const parts = serviceAddress.split('/');
if (parts.length < 3) {
throw new Error('Invalid address format');
}
const adapterPart = parts[2]; // e.g., "rn:zigbee"
const adapterName = adapterPart.split(':')[1]; // "zigbee"
if (adapterName === 'zw') {
return 'zwave-ad';
}
return adapterName;
}