diff --git a/src/devices/ewelink.ts b/src/devices/ewelink.ts index 1efe1a4fdc86a..a98afb338affb 100644 --- a/src/devices/ewelink.ts +++ b/src/devices/ewelink.ts @@ -1,7 +1,7 @@ import fz from '../converters/fromZigbee'; import * as exposes from '../lib/exposes'; import {logger} from '../lib/logger'; -import {deviceEndpoints, onOff} from '../lib/modernExtend'; +import {battery, deviceEndpoints, iasZoneAlarm, onOff} from '../lib/modernExtend'; import {DefinitionWithExtend, Fz} from '../lib/types'; const e = exposes.presets; @@ -156,6 +156,13 @@ const definitions: DefinitionWithExtend[] = [ toZigbee: [], exposes: [e.rain()], }, + { + zigbeeModel: ['SNZB-05'], + model: 'SNZB-05', + vendor: 'eWeLink', + description: 'Zigbee water sensor', + extend: [battery(), iasZoneAlarm({zoneType: 'water_leak', zoneAttributes: ['alarm_1', 'battery_low']})], + }, ]; export default definitions; diff --git a/src/devices/sonoff.ts b/src/devices/sonoff.ts index cb5263149b7a2..58ae7379efc30 100644 --- a/src/devices/sonoff.ts +++ b/src/devices/sonoff.ts @@ -750,15 +750,30 @@ const definitions: DefinitionWithExtend[] = [ zigbeeModel: ['DS01', 'SNZB-04'], model: 'SNZB-04', vendor: 'SONOFF', - whiteLabel: [{vendor: 'eWeLink', model: 'RHK06'}, tuya.whitelabel('Tuya', 'WL-19DWZ', 'Contact sensor', ['_TZ3000_n2egfsli'])], + whiteLabel: [ + {vendor: 'eWeLink', model: 'RHK06'}, + { + vendor: 'eWeLink', + model: 'SNZB-04', + fingerprint: [{modelID: 'SNZB-04', manufacturerName: 'eWeLink'}], + }, + tuya.whitelabel('Tuya', 'WL-19DWZ', 'Contact sensor', ['_TZ3000_n2egfsli']), + ], description: 'Contact sensor', extend: [ewelinkBattery(), iasZoneAlarm({zoneType: 'contact', zoneAttributes: ['alarm_1', 'battery_low']})], }, { - zigbeeModel: ['WB01', 'WB-01'], + zigbeeModel: ['WB01', 'WB-01', 'SNZB-01'], model: 'SNZB-01', vendor: 'SONOFF', - whiteLabel: [{vendor: 'eWeLink', model: 'RHK07'}], + whiteLabel: [ + {vendor: 'eWeLink', model: 'RHK07'}, + { + vendor: 'eWeLink', + model: 'SNZB-01', + fingerprint: [{modelID: 'SNZB-01', manufacturerName: 'eWeLink'}], + }, + ], description: 'Wireless button', extend: [ewelinkBattery()], exposes: [e.action(['single', 'double', 'long'])], @@ -806,10 +821,17 @@ const definitions: DefinitionWithExtend[] = [ endpoints: [{ID: 1, profileID: 260, deviceID: 770, inputClusters: [0, 3, 1026, 1029, 1], outputClusters: [3]}], }, ], - zigbeeModel: ['TH01'], + zigbeeModel: ['TH01', 'SNZB-02'], model: 'SNZB-02', vendor: 'SONOFF', - whiteLabel: [{vendor: 'eWeLink', model: 'RHK08'}], + whiteLabel: [ + {vendor: 'eWeLink', model: 'RHK08'}, + { + vendor: 'eWeLink', + model: 'SNZB-02', + fingerprint: [{modelID: 'SNZB-02', manufacturerName: 'eWeLink'}], + }, + ], description: 'Temperature and humidity sensor', exposes: [e.battery(), e.temperature(), e.humidity(), e.battery_voltage()], fromZigbee: [fz.SNZB02_temperature, fz.humidity, fz.battery], @@ -860,12 +882,31 @@ const definitions: DefinitionWithExtend[] = [ endpoints: [{ID: 1, profileID: 260, deviceID: 1026, inputClusters: [0, 3, 1, 1280, 32], outputClusters: [25]}], }, ], - zigbeeModel: ['MS01', 'MSO1'], + zigbeeModel: ['MS01', 'MSO1', 'SNZB-03'], model: 'SNZB-03', vendor: 'SONOFF', whiteLabel: [ {vendor: 'eWeLink', model: 'RHK09'}, {vendor: 'eWeLink', model: 'SQ510A'}, + { + vendor: 'eWeLink', + model: 'SNZB-03', + fingerprint: [ + { + // SNZB-O3 OUVOPO Wireless Motion Sensor (2023) + type: 'EndDevice', + manufacturerName: 'eWeLink', + modelID: 'SNZB-03', + endpoints: [{ID: 1, profileID: 260, deviceID: 1026, inputClusters: [0, 3, 1280, 1], outputClusters: [3]}], + }, + { + type: 'EndDevice', + manufacturerName: 'eWeLink', + modelID: 'SNZB-03', + endpoints: [{ID: 1, profileID: 260, deviceID: 1026, inputClusters: [0, 3, 1, 1280, 32], outputClusters: [25]}], + }, + ], + }, ], description: 'Motion sensor', extend: [ewelinkBattery(), iasZoneAlarm({zoneType: 'occupancy', zoneAttributes: ['alarm_1', 'battery_low']})], diff --git a/src/devices/tuya.ts b/src/devices/tuya.ts index 5ec69afc8dfda..56ad7ba7f5b6d 100644 --- a/src/devices/tuya.ts +++ b/src/devices/tuya.ts @@ -1944,7 +1944,7 @@ const definitions: DefinitionWithExtend[] = [ exposes: [], }, { - zigbeeModel: ['TS0207', 'FNB54-WTS08ML1.0', 'SNZB-05'], + zigbeeModel: ['TS0207', 'FNB54-WTS08ML1.0'], model: 'TS0207_water_leak_detector', vendor: 'Tuya', description: 'Water leak detector',