ring-client-api
Version:
Unofficial API for Ring doorbells, cameras, security alarm system and smart lighting
192 lines (191 loc) • 6.48 kB
JavaScript
export const RingDeviceType = {
BaseStation: 'hub.redsky',
BaseStationPro: 'hub.kili',
Keypad: 'security-keypad',
SecurityPanel: 'security-panel',
ContactSensor: 'sensor.contact',
MotionSensor: 'sensor.motion',
FloodFreezeSensor: 'sensor.flood-freeze',
FreezeSensor: 'sensor.freeze',
TemperatureSensor: 'sensor.temperature',
WaterSensor: 'sensor.water',
TiltSensor: 'sensor.tilt',
GlassbreakSensor: 'sensor.glassbreak',
RangeExtender: 'range-extender.zwave',
ZigbeeAdapter: 'adapter.zigbee',
AccessCodeVault: 'access-code.vault',
AccessCode: 'access-code',
SmokeAlarm: 'alarm.smoke',
CoAlarm: 'alarm.co',
SmokeCoListener: 'listener.smoke-co',
MultiLevelSwitch: 'switch.multilevel',
Fan: 'switch.multilevel',
MultiLevelBulb: 'switch.multilevel.bulb',
Switch: 'switch',
BeamsMotionSensor: 'motion-sensor.beams',
BeamsSwitch: 'switch.beams',
BeamsMultiLevelSwitch: 'switch.multilevel.beams',
BeamsLightGroupSwitch: 'group.light-group.beams',
BeamsTransformerSwitch: 'switch.transformer.beams',
BeamsDevice: 'device.beams',
RetrofitBridge: 'bridge.flatline',
RetrofitZone: 'sensor.zone',
Thermostat: 'temperature-control.thermostat',
Sensor: 'sensor',
RingNetAdapter: 'adapter.ringnet',
CodeVault: 'access-code.vault',
SecurityAccessCode: 'access-code',
ZWaveAdapter: 'adapter.zwave',
ZWaveExtender: 'range-extender.zwave',
PanicButton: 'security-panic',
UnknownZWave: 'unknown.zwave',
OnvifCamera: 'onvif_camera',
ThirdPartyGarageDoorOpener: 'third_party_gdo',
IntercomHandsetAudio: 'intercom_handset_audio',
WaterValve: 'valve.water',
};
export const RingDeviceCategory = {
Outlets: 1,
Lights: 2,
Sensors: 5,
Appliances: 7,
Locks: 10,
Thermostats: 11,
Cameras: 12,
Alarms: 15,
Fans: 17,
Security: 22,
Unknown: 29,
SensorsMotion: 30,
Controller: 31,
RangeExtenders: 32,
Keypads: 33,
Sirens: 34,
PanicButtons: 35,
WaterValves: 37,
};
export const RingCameraKind = {
doorbot: 'doorbot',
doorbell: 'doorbell',
doorbell_v3: 'doorbell_v3',
doorbell_v4: 'doorbell_v4',
doorbell_v5: 'doorbell_v5',
doorbell_oyster: 'doorbell_oyster', // used for the Ring Video Doorbell 4
doorbell_portal: 'doorbell_portal',
doorbell_scallop: 'doorbell_scallop',
doorbell_scallop_lite: 'doorbell_scallop_lite',
doorbell_graham_cracker: 'doorbell_graham_cracker',
lpd_v1: 'lpd_v1',
lpd_v2: 'lpd_v2',
lpd_v4: 'lpd_v4',
jbox_v1: 'jbox_v1',
stickup_cam: 'stickup_cam',
stickup_cam_v3: 'stickup_cam_v3',
stickup_cam_elite: 'stickup_cam_elite',
stickup_cam_longfin: 'stickup_cam_longfin',
stickup_cam_lunar: 'stickup_cam_lunar',
spotlightw_v2: 'spotlightw_v2',
hp_cam_v1: 'hp_cam_v1',
hp_cam_v2: 'hp_cam_v2',
stickup_cam_v4: 'stickup_cam_v4',
floodlight_v1: 'floodlight_v1',
floodlight_v2: 'floodlight_v2',
floodlight_pro: 'floodlight_pro',
cocoa_camera: 'cocoa_camera', // appears to be used for all next gen stickup cams (wired/battery/solar)
cocoa_doorbell: 'cocoa_doorbell',
cocoa_doorbell_v2: 'cocoa_doorbell_v2',
cocoa_doorbell_v3: 'cocoa_doorbell_v3',
cocoa_floodlight: 'cocoa_floodlight',
cocoa_spotlight: 'cocoa_spotlight', // used for the Spotlight Cam Plus (potentially other Spotlight models)
stickup_cam_mini: 'stickup_cam_mini',
onvif_camera: 'onvif_camera',
};
export const RingCameraModel = {
doorbot: 'Doorbell',
doorbell: 'Doorbell',
doorbell_v3: 'Doorbell',
doorbell_v4: 'Doorbell 2',
doorbell_v5: 'Doorbell 2',
doorbell_oyster: 'Doorbell 4',
doorbell_portal: 'Door View Cam',
doorbell_scallop: 'Doorbell 3 Plus',
doorbell_scallop_lite: 'Doorbell 3',
doorbell_graham_cracker: 'Doorbell Wired',
lpd_v1: 'Doorbell Pro',
lpd_v2: 'Doorbell Pro',
lpd_v4: 'Doorbell Pro 2',
jbox_v1: 'Doorbell Elite',
stickup_cam: 'Stick Up Cam',
stickup_cam_v3: 'Stick Up Cam',
stickup_cam_elite: 'Stick Up Cam',
stickup_cam_longfin: 'Spotlight Cam Pro',
stickup_cam_lunar: 'Stick Up Cam',
spotlightw_v2: 'Spotlight Cam',
hp_cam_v1: 'Floodlight Cam',
hp_cam_v2: 'Spotlight Cam',
stickup_cam_v4: 'Spotlight Cam',
floodlight_v1: 'Floodlight Cam',
floodlight_v2: 'Floodlight Cam',
floodlight_pro: 'Floodlight Pro',
cocoa_camera: 'Stick Up Cam',
cocoa_doorbell: 'Doorbell Gen 2',
cocoa_doorbell_v2: 'Battery Doorbell Plus',
cocoa_doorbell_v3: 'Battery Doorbell Pro',
cocoa_floodlight: 'Floodlight Cam Plus',
cocoa_spotlight: 'Spotlight Cam Plus',
stickup_cam_mini: 'Indoor Cam',
onvif_camera: 'ONVIF Camera',
};
export const allAlarmStates = [
'burglar-alarm',
'entry-delay',
'fire-alarm',
'co-alarm',
'panic',
'user-verified-burglar-alarm',
'user-verified-co-or-fire-alarm',
'burglar-accelerated-alarm',
'fire-accelerated-alarm',
];
export const deviceTypesWithVolume = [
RingDeviceType.BaseStation,
RingDeviceType.Keypad,
];
export const ChimeModel = {
chime: 'Chime',
chime_pro: 'Chime Pro',
chime_v2: 'Chime v2',
chime_pro_v2: 'Chime Pro v2',
};
export const DoorbellType = {
Mechanical: 0,
Digital: 1,
None: 2,
};
export const NotificationDetectionType = {
// Note, this list may not be complete
Human: 'human',
Loitering: 'loitering',
Motion: 'motion',
OtherMotion: 'other_motion',
NotAvailable: 'null',
StreamBroken: 'stream_broken',
};
export const PushNotificationAction = {
Ding: 'com.ring.pn.live-event.ding',
Motion: 'com.ring.pn.live-event.motion',
IntercomDing: 'com.ring.pn.live-event.intercom',
IntercomUnlock: 'com.ring.push.INTERCOM_UNLOCK_FROM_APP',
AlarmModeNone: 'com.ring.push.HANDLE_NEW_SECURITY_PANEL_MODE_NONE_NOTICE',
AlarmModeSome: 'com.ring.push.HANDLE_NEW_SECURITY_PANEL_MODE_SOME_NOTICE',
AlarmSoundSiren: 'com.ring.push.HANDLE_NEW_USER_SOUND_SIREN',
AlarmSilenceSiren: 'com.ring.push.HANDLE_NEW_NON_ALARM_SIREN_SILENCED',
};
export const DispatchSignalType = {
Burglar: 'user-verified-burglar-xa',
Fire: 'user-verified-fire-xa',
};
export const disabledLocationModes = ['disabled', 'unset'];
export function isWebSocketSupportedAsset({ kind }) {
return kind.startsWith('base_station') || kind.startsWith('beams_bridge');
}