From 227ed1de75bd5de741682ffee62e67902887ab56 Mon Sep 17 00:00:00 2001 From: Koushik Dutta Date: Thu, 27 Jan 2022 19:12:59 -0800 Subject: [PATCH] homekit: add more supported sensors --- plugins/homekit/package-lock.json | 4 ++-- plugins/homekit/package.json | 2 +- plugins/homekit/src/types/sensor.ts | 12 +++++++----- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/plugins/homekit/package-lock.json b/plugins/homekit/package-lock.json index be30bf7ca..158064204 100644 --- a/plugins/homekit/package-lock.json +++ b/plugins/homekit/package-lock.json @@ -1,12 +1,12 @@ { "name": "@scrypted/homekit", - "version": "0.0.173", + "version": "0.0.174", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@scrypted/homekit", - "version": "0.0.173", + "version": "0.0.174", "dependencies": { "hap-nodejs": "file:../../external/HAP-NodeJS", "lodash": "^4.17.21", diff --git a/plugins/homekit/package.json b/plugins/homekit/package.json index 68e4ac8a1..4c46bf227 100644 --- a/plugins/homekit/package.json +++ b/plugins/homekit/package.json @@ -40,5 +40,5 @@ "@types/qrcode": "^1.4.1", "@types/url-parse": "^1.4.3" }, - "version": "0.0.173" + "version": "0.0.174" } diff --git a/plugins/homekit/src/types/sensor.ts b/plugins/homekit/src/types/sensor.ts index 39e5806c6..27b225551 100644 --- a/plugins/homekit/src/types/sensor.ts +++ b/plugins/homekit/src/types/sensor.ts @@ -1,5 +1,5 @@ -import { MotionSensor, BinarySensor, ScryptedDevice, ScryptedDeviceType, ScryptedInterface, Thermometer } from '@scrypted/sdk' +import { MotionSensor, BinarySensor, ScryptedDevice, ScryptedDeviceType, ScryptedInterface, Thermometer, HumiditySensor } from '@scrypted/sdk' import { addSupportedType, bindCharacteristic, DummyDevice } from '../common' import { Characteristic, Service } from '../hap'; import { makeAccessory } from './common'; @@ -9,20 +9,17 @@ addSupportedType({ probe(device: DummyDevice) { return device.interfaces.includes(ScryptedInterface.Thermometer) || device.interfaces.includes(ScryptedInterface.BinarySensor) || device.interfaces.includes(ScryptedInterface.MotionSensor); }, - getAccessory: async (device: ScryptedDevice & BinarySensor & MotionSensor & Thermometer) => { + getAccessory: async (device: ScryptedDevice & BinarySensor & MotionSensor & Thermometer & HumiditySensor) => { const accessory = makeAccessory(device); if (device.interfaces.includes(ScryptedInterface.BinarySensor)) { const contactSensorService = accessory.addService(Service.ContactSensor, device.name); - contactSensorService.getCharacteristic(Characteristic.ContactSensorState) - bindCharacteristic(device, ScryptedInterface.BinarySensor, contactSensorService, Characteristic.ContactSensorState, () => !!device.binaryState); } if (device.interfaces.includes(ScryptedInterface.MotionSensor)) { const motionSensorService = accessory.addService(Service.MotionSensor, device.name); - bindCharacteristic(device, ScryptedInterface.MotionSensor, motionSensorService, Characteristic.MotionDetected, () => !!device.motionDetected, true); } @@ -31,7 +28,12 @@ addSupportedType({ const service = accessory.addService(Service.TemperatureSensor, device.name); bindCharacteristic(device, ScryptedInterface.Thermometer, service, Characteristic.CurrentTemperature, () => device.temperature || 0); + } + if (device.interfaces.includes(ScryptedInterface.HumiditySensor)) { + const service = accessory.addService(Service.HumiditySensor, device.name); + bindCharacteristic(device, ScryptedInterface.HumiditySensor, service, Characteristic.CurrentRelativeHumidity, + () => device.humidity || 0); } // todo: more sensors.