mirror of
https://github.com/tsightler/ring-mqtt.git
synced 2025-09-26 21:01:12 +08:00
Add support for Ring glassbreak sensors
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
const RingSocketDevice = require('./base-socket-device')
|
||||
const { RingDeviceType } = require('ring-client-api')
|
||||
|
||||
class ContactSensor extends RingSocketDevice {
|
||||
constructor(deviceInfo) {
|
||||
@@ -8,21 +9,25 @@ class ContactSensor extends RingSocketDevice {
|
||||
|
||||
// Override icons and and topics
|
||||
switch (this.device.deviceType) {
|
||||
case 'sensor.contact':
|
||||
case RingDeviceType.ContactSensor:
|
||||
this.entityName = 'contact'
|
||||
this.deviceData.mdl = 'Contact Sensor'
|
||||
device_class = (this.device.data.subCategoryId == 2) ? 'window' : 'door'
|
||||
break;
|
||||
case 'sensor.zone':
|
||||
case RingDeviceType.RetrofitZone:
|
||||
this.entityName = 'zone'
|
||||
this.deviceData.mdl = 'Retrofit Zone'
|
||||
device_class = 'safety'
|
||||
break;
|
||||
case 'sensor.tilt':
|
||||
case RingDeviceType.TiltSensor:
|
||||
this.entityName = 'tilt'
|
||||
this.deviceData.mdl = 'Tilt Sensor'
|
||||
device_class = 'garage_door'
|
||||
break;
|
||||
case RingDeviceType.GlassbreakSensor:
|
||||
this.entityName = 'glassbreak'
|
||||
this.deviceData.mdl = 'Glassbreak Sensor'
|
||||
device_class = 'safety'
|
||||
default:
|
||||
this.entityName = 'binary_sensor'
|
||||
this.deviceData.mdl = 'Generic Binary Sensor'
|
||||
|
@@ -103,6 +103,7 @@ async function getDevice(device, mqttClient, allDevices) {
|
||||
case RingDeviceType.ContactSensor:
|
||||
case RingDeviceType.RetrofitZone:
|
||||
case RingDeviceType.TiltSensor:
|
||||
case RingDeviceType.GlassbreakSensor:
|
||||
return new ContactSensor(deviceInfo)
|
||||
case RingDeviceType.MotionSensor:
|
||||
return new MotionSensor(deviceInfo)
|
||||
|
Reference in New Issue
Block a user