| 188 | } |
| 189 | |
| 190 | private logDeviceInterview(data: eventdata.DeviceInterview): void { |
| 191 | const name = data.device.name; |
| 192 | if (data.status === "successful") { |
| 193 | logger.info(`Successfully interviewed '${name}', device has successfully been paired`); |
| 194 | |
| 195 | if (data.device.isSupported) { |
| 196 | // biome-ignore lint/style/noNonNullAssertion: valid from `isSupported` |
| 197 | const {vendor, description, model} = data.device.definition!; |
| 198 | logger.info(`Device '${name}' is supported, identified as: ${vendor} ${description} (${model})`); |
| 199 | } else { |
| 200 | logger.warning( |
| 201 | `Device '${name}' with Zigbee model '${data.device.zh.modelID}' and manufacturer name '${data.device.zh.manufacturerName}' is NOT supported, please follow https://www.zigbee2mqtt.io/advanced/support-new-devices/01_support_new_devices.html`, |
| 202 | ); |
| 203 | } |
| 204 | } else if (data.status === "failed") { |
| 205 | logger.error(`Failed to interview '${name}', device has not successfully been paired`); |
| 206 | } else { |
| 207 | // data.status === 'started' |
| 208 | logger.info(`Starting interview of '${name}'`); |
| 209 | } |
| 210 | } |
| 211 | |
| 212 | private generateNetworkKey(): number[] { |
| 213 | const key = Array.from({length: 16}, () => randomInt(256)); |