mirror of
https://github.com/tsightler/ring-mqtt.git
synced 2025-09-27 05:05:54 +08:00
Release v5.6.3 (#736)
* Minor tweaks to IPC
* Suppress go2rtc hass config error
* Release v5.6.3
* Update go2rtc.js
* Revert "Update go2rtc.js"
This reverts commit 0da9cf33be
.
* Update HVAC to remove deprecated aux_heat
* Implement supported features for Alarm Control Panel
* Fix thermostat
* Bump got2rtc to v1.7.1
* Implrement locking/unlocking state
* Release v5.6.3
* Release v5.6.3
* Tweak variable names
* Release v5.6.3
This commit is contained in:
@@ -11,7 +11,7 @@ ENV LANG="C.UTF-8" \
|
||||
COPY . /app/ring-mqtt
|
||||
RUN S6_VERSION="v3.1.5.0" && \
|
||||
BASHIO_VERSION="v0.15.0" && \
|
||||
GO2RTC_VERSION="v1.7.0" && \
|
||||
GO2RTC_VERSION="v1.7.1" && \
|
||||
APK_ARCH="$(apk --print-arch)" && \
|
||||
apk add --no-cache tar xz git libcrypto3 libssl3 musl-utils musl bash curl jq tzdata nodejs npm mosquitto-clients && \
|
||||
curl -L -s "https://github.com/just-containers/s6-overlay/releases/download/${S6_VERSION}/s6-overlay-noarch.tar.xz" | tar -Jxpf - -C / && \
|
||||
|
@@ -71,37 +71,52 @@ export default class RingDevice {
|
||||
? { topic: entityStateTopic }
|
||||
: {},
|
||||
...entity.component.match(/^(switch|number|light|fan|lock|alarm_control_panel|select|button)$/)
|
||||
? { command_topic: `${entityTopic}/command` } : {},
|
||||
? { command_topic: `${entityTopic}/command` }
|
||||
: {},
|
||||
...entity.hasOwnProperty('device_class')
|
||||
? { device_class: entity.device_class } : {},
|
||||
? { device_class: entity.device_class }
|
||||
: {},
|
||||
...entity.hasOwnProperty('unit_of_measurement')
|
||||
? { unit_of_measurement: entity.unit_of_measurement } : {},
|
||||
? { unit_of_measurement: entity.unit_of_measurement }
|
||||
: {},
|
||||
...entity.hasOwnProperty('state_class')
|
||||
? { state_class: entity.state_class } : {},
|
||||
? { state_class: entity.state_class }
|
||||
: {},
|
||||
...entity.hasOwnProperty('value_template')
|
||||
? { value_template: entity.value_template } : {},
|
||||
? { value_template: entity.value_template }
|
||||
: {},
|
||||
...entity.hasOwnProperty('min')
|
||||
? { min: entity.min } : {},
|
||||
? { min: entity.min }
|
||||
: {},
|
||||
...entity.hasOwnProperty('max')
|
||||
? { max: entity.max } : {},
|
||||
? { max: entity.max }
|
||||
: {},
|
||||
...entity.hasOwnProperty('mode')
|
||||
? { mode: entity.mode } : {},
|
||||
? { mode: entity.mode }
|
||||
: {},
|
||||
...entity.hasOwnProperty('attributes')
|
||||
? { json_attributes_topic: `${entityTopic}/attributes` }
|
||||
: entityKey === "info"
|
||||
? { json_attributes_topic: `${entityStateTopic}` } : {},
|
||||
? { json_attributes_topic: `${entityStateTopic}` }
|
||||
: {},
|
||||
...entity.hasOwnProperty('icon')
|
||||
? { icon: entity.icon }
|
||||
: entityKey === "info"
|
||||
? { icon: 'mdi:information-outline' } : {},
|
||||
...entity.component === 'alarm_control_panel' && utils.config().disarm_code
|
||||
? { icon: 'mdi:information-outline' }
|
||||
: {},
|
||||
...entity.component === 'alarm_control_panel'
|
||||
? { supported_features: ['arm_home', 'arm_away'],
|
||||
...utils.config().disarm_code
|
||||
? { code: utils.config().disarm_code.toString(),
|
||||
code_arm_required: false,
|
||||
code_disarm_required: true } : {},
|
||||
code_disarm_required: true
|
||||
} : {} }
|
||||
: {},
|
||||
...entity.hasOwnProperty('brightness_scale')
|
||||
? { brightness_state_topic: `${entityTopic}/brightness_state`,
|
||||
brightness_command_topic: `${entityTopic}/brightness_command`,
|
||||
brightness_scale: entity.brightness_scale } : {},
|
||||
brightness_scale: entity.brightness_scale }
|
||||
: {},
|
||||
...entity.component === 'fan'
|
||||
? { percentage_state_topic: `${entityTopic}/percent_speed_state`,
|
||||
percentage_command_topic: `${entityTopic}/percent_speed_command`,
|
||||
@@ -109,31 +124,35 @@ export default class RingDevice {
|
||||
preset_mode_command_topic: `${entityTopic}/speed_command`,
|
||||
preset_modes: [ "low", "medium", "high" ],
|
||||
speed_range_min: 11,
|
||||
speed_range_max: 100 } : {},
|
||||
speed_range_max: 100 }
|
||||
: {},
|
||||
...entity.component === 'climate'
|
||||
? { action_topic: `${entityTopic}/action_state`,
|
||||
aux_state_topic: `${entityTopic}/aux_state`,
|
||||
aux_command_topic: `${entityTopic}/aux_command`,
|
||||
current_temperature_topic: `${entityTopic}/current_temperature_state`,
|
||||
fan_modes: entity.fan_modes,
|
||||
fan_mode_state_topic: `${entityTopic}/fan_mode_state`,
|
||||
fan_mode_command_topic: `${entityTopic}/fan_mode_command`,
|
||||
fan_mode_state_topic: `${entityTopic}/fan_mode_state`,
|
||||
fan_modes: entity.fan_modes,
|
||||
max_temp: 37,
|
||||
min_temp: 10,
|
||||
modes: entity.modes,
|
||||
mode_state_topic: `${entityTopic}/mode_state`,
|
||||
mode_command_topic: `${entityTopic}/mode_command`,
|
||||
temperature_state_topic: `${entityTopic}/temperature_state`,
|
||||
preset_mode_command_topic: `${entityTopic}/preset_mode_command`,
|
||||
preset_mode_state_topic: `${entityTopic}/preset_mode_state`,
|
||||
preset_modes: ['Auxillary'],
|
||||
temperature_command_topic: `${entityTopic}/temperature_command`,
|
||||
temperature_state_topic: `${entityTopic}/temperature_state`,
|
||||
...entity.modes.includes('auto')
|
||||
? { temperature_high_state_topic: `${entityTopic}/temperature_high_state`,
|
||||
temperature_high_command_topic: `${entityTopic}/temperature_high_command`,
|
||||
temperature_low_state_topic: `${entityTopic}/temperature_low_state`,
|
||||
? { temperature_high_command_topic: `${entityTopic}/temperature_high_command`,
|
||||
temperature_high_state_topic: `${entityTopic}/temperature_high_state`,
|
||||
temperature_low_command_topic: `${entityTopic}/temperature_low_command`,
|
||||
temperature_low_state_topic: `${entityTopic}/temperature_low_state`,
|
||||
} : {},
|
||||
temperature_unit: 'C' } : {},
|
||||
temperature_unit: 'C' }
|
||||
: {},
|
||||
...entity.component === 'select'
|
||||
? { options: entity.options } : {},
|
||||
? { options: entity.options }
|
||||
: {},
|
||||
availability_topic: this.availabilityTopic,
|
||||
payload_available: 'online',
|
||||
payload_not_available: 'offline',
|
||||
@@ -145,7 +164,7 @@ export default class RingDevice {
|
||||
this.debug(discoveryMessage, 'disc')
|
||||
this.mqttPublish(configTopic, JSON.stringify(discoveryMessage), false)
|
||||
|
||||
// On first publish store generated topics in entities object and subscribe to command topics
|
||||
// On first publish store generated topics in entities object and subscribe to command/debug topics
|
||||
if (!this.entity[entityKey].hasOwnProperty('published')) {
|
||||
this.entity[entityKey].published = true
|
||||
Object.keys(discoveryMessage).filter(property => property.match('topic')).forEach(topic => {
|
||||
@@ -160,13 +179,12 @@ export default class RingDevice {
|
||||
}
|
||||
})
|
||||
|
||||
// For camera stream entities subscribe to IPC broker topics as well
|
||||
if (entityKey === 'stream' || entityKey === 'event_stream') {
|
||||
// Entity uses internal MQTT broker for inter-process communications
|
||||
if (this.entity[entityKey]?.ipc) {
|
||||
const debugTopic = discoveryMessage[topic].split('/').slice(0,-1).join('/')+'/debug'
|
||||
utils.event.emit('mqtt_ipc_subscribe', discoveryMessage[topic])
|
||||
// Also subscribe to debug topic used to log debug messages from start-stream.sh script
|
||||
const streamDebugTopic = discoveryMessage[topic].split('/').slice(0,-1).join('/')+'/debug'
|
||||
utils.event.emit('mqtt_ipc_subscribe', streamDebugTopic)
|
||||
utils.event.on(streamDebugTopic, (command, message) => {
|
||||
utils.event.emit('mqtt_ipc_subscribe', debugTopic)
|
||||
utils.event.on(debugTopic, (command, message) => {
|
||||
if (message) {
|
||||
this.debug(message, 'rtsp')
|
||||
} else {
|
||||
|
@@ -124,12 +124,16 @@ export default class Camera extends RingPolledDevice {
|
||||
component: 'switch',
|
||||
attributes: true,
|
||||
name: 'Live Stream',
|
||||
icon: 'mdi:cctv'
|
||||
icon: 'mdi:cctv',
|
||||
// Use internal MQTT server for inter-process communications
|
||||
ipc: true
|
||||
},
|
||||
event_stream: {
|
||||
component: 'switch',
|
||||
attributes: true,
|
||||
icon: 'mdi:vhs'
|
||||
icon: 'mdi:vhs',
|
||||
// Use internal MQTT server for inter-process communications
|
||||
ipc: true
|
||||
},
|
||||
event_select: {
|
||||
component: 'select',
|
||||
|
@@ -45,6 +45,7 @@ export default class Lock extends RingSocketDevice {
|
||||
switch(command) {
|
||||
case 'lock':
|
||||
case 'unlock':
|
||||
this.mqttPublish(this.entity.lock.state_topic, `${command.toUpperCase()}ING`)
|
||||
this.device.sendCommand(`lock.${command}`)
|
||||
break;
|
||||
default:
|
||||
|
@@ -128,7 +128,9 @@ export default class SecurityPanel extends RingSocketDevice {
|
||||
}
|
||||
|
||||
async updateAlarmAttributes(message, mode) {
|
||||
let initiatingUser = message.context.initiatingEntityType
|
||||
let initiatingUser = message.context.initiatingEntityName
|
||||
? message.context.initiatingEntityName
|
||||
: message.context.initiatingEntityType
|
||||
|
||||
if (message.context.initiatingEntityType === 'user' && message.context.initiatingEntityId) {
|
||||
try {
|
||||
|
@@ -26,8 +26,8 @@ export default class Thermostat extends RingSocketDevice {
|
||||
fanMode: (() => {
|
||||
return this.device.data.fanMode.replace(/^./, str => str.toUpperCase())
|
||||
}),
|
||||
auxMode: (() => {
|
||||
return this.device.data.mode === 'aux' ? 'ON' : 'OFF'
|
||||
presetMode: (() => {
|
||||
return this.device.data.mode === 'aux' ? 'Auxillary' : 'None'
|
||||
}),
|
||||
setPoint: (() => {
|
||||
return this.device.data.setPoint
|
||||
@@ -75,7 +75,7 @@ export default class Thermostat extends RingSocketDevice {
|
||||
|
||||
this.publishModeAndSetpoints()
|
||||
this.mqttPublish(this.entity.thermostat.fan_mode_state_topic, this.data.fanMode())
|
||||
this.mqttPublish(this.entity.thermostat.aux_state_topic, this.data.auxMode())
|
||||
this.mqttPublish(this.entity.thermostat.preset_mode_state_topic, this.data.presetMode())
|
||||
this.publishOperatingMode()
|
||||
|
||||
if (isPublish) { this.publishTemperature() }
|
||||
@@ -150,8 +150,8 @@ export default class Thermostat extends RingSocketDevice {
|
||||
case 'thermostat/fan_mode_command':
|
||||
this.setFanMode(message)
|
||||
break;
|
||||
case 'thermostat/aux_command':
|
||||
this.setAuxMode(message)
|
||||
case 'thermostat/preset_mode_command':
|
||||
this.setPresetMode(message)
|
||||
break;
|
||||
default:
|
||||
this.debug(`Received message to unknown command topic: ${command}`)
|
||||
@@ -257,18 +257,18 @@ export default class Thermostat extends RingSocketDevice {
|
||||
}
|
||||
}
|
||||
|
||||
async setAuxMode(value) {
|
||||
this.debug(`Received set aux mode ${value}`)
|
||||
const auxMode = value.toLowerCase()
|
||||
switch(auxMode) {
|
||||
case 'on':
|
||||
case 'off':
|
||||
const mode = auxMode === 'on' ? 'aux' : 'heat'
|
||||
async setPresetMode(value) {
|
||||
this.debug(`Received set preset mode ${value}`)
|
||||
const presetMode = value.toLowerCase()
|
||||
switch(presetMode) {
|
||||
case 'auxillary':
|
||||
case 'none':
|
||||
const mode = presetMode === 'auxillary' ? 'aux' : 'heat'
|
||||
this.device.setInfo({ device: { v1: { mode } } })
|
||||
this.mqttPublish(this.entity.thermostat.aux_state_topic, auxMode.toUpperCase())
|
||||
this.mqttPublish(this.entity.thermostat.preset_mode_state_topic, presetMode.replace(/^./, str => str.toUpperCase()))
|
||||
break;
|
||||
default:
|
||||
this.debug('Received invalid aux mode command')
|
||||
this.debug('Received invalid preset mode command')
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@@ -1,3 +1,17 @@
|
||||
## v5.6.3
|
||||
**Minor Enhancements**
|
||||
- lastArmBy/lastDisarmBy now reports correct names for guest users as well as shared users
|
||||
- Locks now support "LOCKING" and "UNLOCKING" status which provides for a richer experience in the Home Assistant UI
|
||||
- HVAC enhanced to use new "supported_features" capability in Home Assistant >2023.9. This allows ring-mqtt to inform Home Assistant which arming modes are supported thus suppressing unavailable arming modes from being visible in the Home Assistant user interface.
|
||||
|
||||
**Other Changes**
|
||||
- Remove auxillary heat implementaion which was deprecated in Home Assistant 2023.9. Auxillary/emergency heat is still available but is now exposed as a preset mode instead (behavior is duplicated from the Z-wave thermostat implementation).
|
||||
- Suppress hass warnings from go2rtc (cosmetic only)
|
||||
|
||||
**Dependcy Updates**
|
||||
- go2rtc v1.7.1
|
||||
- ring-client-api v12.0.1
|
||||
|
||||
## v5.6.2
|
||||
**Bugs Fixed**
|
||||
- Fix crash when discovering Ring Bridge due to missing operator
|
||||
|
@@ -26,25 +26,26 @@ export default new class Go2RTC {
|
||||
|
||||
let config = {
|
||||
log: {
|
||||
level: "debug"
|
||||
level: 'debug',
|
||||
hass: 'info'
|
||||
},
|
||||
api: {
|
||||
listen: ""
|
||||
listen: ''
|
||||
},
|
||||
srtp: {
|
||||
listen: ""
|
||||
listen: ''
|
||||
},
|
||||
rtsp: {
|
||||
listen: ":8554",
|
||||
listen: ':8554',
|
||||
...(utils.config().livestream_user && utils.config().livestream_pass)
|
||||
? {
|
||||
username: utils.config().livestream_user,
|
||||
password: utils.config().livestream_pass
|
||||
} : {},
|
||||
default_query: "video&audio=aac&audio=opus"
|
||||
default_query: 'video&audio=aac&audio=opus'
|
||||
},
|
||||
webrtc: {
|
||||
listen: ""
|
||||
listen: ''
|
||||
}
|
||||
}
|
||||
|
||||
|
189
package-lock.json
generated
189
package-lock.json
generated
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "ring-mqtt",
|
||||
"version": "5.6.2",
|
||||
"version": "5.6.3",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "ring-mqtt",
|
||||
"version": "5.6.2",
|
||||
"version": "5.6.3",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"aedes": "0.50.0",
|
||||
@@ -19,10 +19,10 @@
|
||||
"is-online": "^10.0.0",
|
||||
"js-yaml": "^4.1.0",
|
||||
"minimist": "^1.2.8",
|
||||
"mqtt": "^5.0.3",
|
||||
"ring-client-api": "12.0.0",
|
||||
"mqtt": "^5.0.5",
|
||||
"ring-client-api": "12.0.1",
|
||||
"rxjs": "^7.8.1",
|
||||
"werift": "^0.18.5",
|
||||
"werift": "^0.18.7",
|
||||
"write-file-atomic": "^5.0.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
@@ -48,21 +48,21 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/helper-validator-identifier": {
|
||||
"version": "7.22.5",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.5.tgz",
|
||||
"integrity": "sha512-aJXu+6lErq8ltp+JhkJUfk1MTGyuA4v7f3pA+BJ5HLfNC6nAQ0Cpi9uOquUj8Hehg0aUiHzWQbOVJGao6ztBAQ==",
|
||||
"version": "7.22.20",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz",
|
||||
"integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==",
|
||||
"dev": true,
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/highlight": {
|
||||
"version": "7.22.13",
|
||||
"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.13.tgz",
|
||||
"integrity": "sha512-C/BaXcnnvBCmHTpz/VGZ8jgtE2aYlW4hxDhseJAWZb7gqGM/qtCK6iZUb0TyKFf7BOUsBH7Q7fkRsDRhg1XklQ==",
|
||||
"version": "7.22.20",
|
||||
"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.20.tgz",
|
||||
"integrity": "sha512-dkdMCN3py0+ksCgYmGG8jKeGA/8Tk+gJwSYYlFGxG5lmhfKNoAy004YpLxpS1W2J8m/EK2Ew+yOs9pVRwO89mg==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@babel/helper-validator-identifier": "^7.22.5",
|
||||
"@babel/helper-validator-identifier": "^7.22.20",
|
||||
"chalk": "^2.4.2",
|
||||
"js-tokens": "^4.0.0"
|
||||
},
|
||||
@@ -121,9 +121,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/runtime": {
|
||||
"version": "7.22.11",
|
||||
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.11.tgz",
|
||||
"integrity": "sha512-ee7jVNlWN09+KftVOu9n7S8gQzD/Z6hN/I8VBRXW4P1+Xe7kJGXMwu8vds4aGIMHZnNbdpSWCfZZtinytpcAvA==",
|
||||
"version": "7.22.15",
|
||||
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.22.15.tgz",
|
||||
"integrity": "sha512-T0O+aa+4w0u06iNmapipJXMV4HoUir03hpx3/YqXXhu9xim3w+dVphjFWl1OH8NbZHw5Lbm9k45drDkgq2VNNA==",
|
||||
"dependencies": {
|
||||
"regenerator-runtime": "^0.14.0"
|
||||
},
|
||||
@@ -262,15 +262,15 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@mswjs/interceptors": {
|
||||
"version": "0.17.9",
|
||||
"resolved": "https://registry.npmjs.org/@mswjs/interceptors/-/interceptors-0.17.9.tgz",
|
||||
"integrity": "sha512-4LVGt03RobMH/7ZrbHqRxQrS9cc2uh+iNKSj8UWr8M26A2i793ju+csaB5zaqYltqJmA2jUq4VeYfKmVqvsXQg==",
|
||||
"version": "0.17.10",
|
||||
"resolved": "https://registry.npmjs.org/@mswjs/interceptors/-/interceptors-0.17.10.tgz",
|
||||
"integrity": "sha512-N8x7eSLGcmUFNWZRxT1vsHvypzIRgQYdG0rJey/rZCy6zT/30qDt8Joj7FxzGNLSwXbeZqJOMqDurp7ra4hgbw==",
|
||||
"dependencies": {
|
||||
"@open-draft/until": "^1.0.3",
|
||||
"@types/debug": "^4.1.7",
|
||||
"@xmldom/xmldom": "^0.8.3",
|
||||
"debug": "^4.3.3",
|
||||
"headers-polyfill": "^3.1.0",
|
||||
"headers-polyfill": "3.2.5",
|
||||
"outvariant": "^1.2.1",
|
||||
"strict-event-emitter": "^0.2.4",
|
||||
"web-encoding": "^1.1.5"
|
||||
@@ -570,9 +570,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@types/http-cache-semantics": {
|
||||
"version": "4.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.1.tgz",
|
||||
"integrity": "sha512-SZs7ekbP8CN0txVG2xVRH6EgKmEm31BOxA07vkFaETzZz1xh+cbt8BcI0slpymvwhx5dlFnQG2rTlPVQn+iRPQ=="
|
||||
"version": "4.0.2",
|
||||
"resolved": "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.2.tgz",
|
||||
"integrity": "sha512-FD+nQWA2zJjh4L9+pFXqWOi0Hs1ryBCfI+985NjluQ1p8EYtoLvjLOKidXBtZ4/IcxDX4o8/E8qDS3540tNliw=="
|
||||
},
|
||||
"node_modules/@types/js-levenshtein": {
|
||||
"version": "1.1.1",
|
||||
@@ -593,9 +593,9 @@
|
||||
"integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA=="
|
||||
},
|
||||
"node_modules/@types/node": {
|
||||
"version": "20.5.9",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.5.9.tgz",
|
||||
"integrity": "sha512-PcGNd//40kHAS3sTlzKB9C9XL4K0sTup8nbG5lC14kzEteTNuAFh9u5nA0o5TWnSG2r/JNPRXFVcHJIIeRlmqQ=="
|
||||
"version": "20.6.3",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-20.6.3.tgz",
|
||||
"integrity": "sha512-HksnYH4Ljr4VQgEy2lTStbCKv/P590tmPe5HqOnv9Gprffgv5WXAY+Y5Gqniu0GGqeTCUdBnzC3QSrzPkBkAMA=="
|
||||
},
|
||||
"node_modules/@types/readable-stream": {
|
||||
"version": "4.0.2",
|
||||
@@ -1316,9 +1316,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/cli-spinners": {
|
||||
"version": "2.9.0",
|
||||
"resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.0.tgz",
|
||||
"integrity": "sha512-4/aL9X3Wh0yiMQlE+eeRhWP6vclO3QRtw1JHKIT0FFUs5FjpFmESqtMvYZ0+lbzBw900b95mS0hohy+qn2VK/g==",
|
||||
"version": "2.9.1",
|
||||
"resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.9.1.tgz",
|
||||
"integrity": "sha512-jHgecW0pxkonBJdrKsqxgRX9AcG+u/5k0Q7WPDfi8AogLAdwxEkyYYNWwZ5GvVFoFx2uiY1eNcSK00fh+1+FyQ==",
|
||||
"engines": {
|
||||
"node": ">=6"
|
||||
},
|
||||
@@ -2400,15 +2400,15 @@
|
||||
}
|
||||
},
|
||||
"node_modules/flatted": {
|
||||
"version": "3.2.7",
|
||||
"resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.7.tgz",
|
||||
"integrity": "sha512-5nqDSxl8nn5BSNxyR3n4I6eDmbolI6WT+QqR547RwxQapgjQBmtktdP+HTBb/a/zLsbzERTONyUB5pefh5TtjQ==",
|
||||
"version": "3.2.9",
|
||||
"resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.9.tgz",
|
||||
"integrity": "sha512-36yxDn5H7OFZQla0/jFJmbIKTdZAQHngCedGxiMmpNfEZM0sdEeT+WczLQrjK6D7o2aiyLYDnkw0R3JK0Qv1RQ==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/follow-redirects": {
|
||||
"version": "1.15.2",
|
||||
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz",
|
||||
"integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==",
|
||||
"version": "1.15.3",
|
||||
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.3.tgz",
|
||||
"integrity": "sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q==",
|
||||
"funding": [
|
||||
{
|
||||
"type": "individual",
|
||||
@@ -2610,9 +2610,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/globals": {
|
||||
"version": "13.21.0",
|
||||
"resolved": "https://registry.npmjs.org/globals/-/globals-13.21.0.tgz",
|
||||
"integrity": "sha512-ybyme3s4yy/t/3s35bewwXKOf7cvzfreG2lH0lZl0JB7I4GxRP2ghxOK/Nb9EkRXdbBXZLfq/p/0W2JUONB/Gg==",
|
||||
"version": "13.22.0",
|
||||
"resolved": "https://registry.npmjs.org/globals/-/globals-13.22.0.tgz",
|
||||
"integrity": "sha512-H1Ddc/PbZHTDVJSnj8kWptIRSD6AM3pK+mKytuIVF4uoBV7rshFlhhvA58ceJ5wp3Er58w6zj7bykMpYXt3ETw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"type-fest": "^0.20.2"
|
||||
@@ -2660,9 +2660,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/graphql": {
|
||||
"version": "16.8.0",
|
||||
"resolved": "https://registry.npmjs.org/graphql/-/graphql-16.8.0.tgz",
|
||||
"integrity": "sha512-0oKGaR+y3qcS5mCu1vb7KG+a89vjn06C7Ihq/dDl3jA+A8B3TKomvi3CiEcVLJQGalbu8F52LxkOym7U5sSfbg==",
|
||||
"version": "16.8.1",
|
||||
"resolved": "https://registry.npmjs.org/graphql/-/graphql-16.8.1.tgz",
|
||||
"integrity": "sha512-59LZHPdGZVh695Ud9lRzPBVTtlX9ZCV150Er2W43ro37wVof0ctenSaskPPjN7lVTIN8mSZt8PHUNKZuNQUuxw==",
|
||||
"engines": {
|
||||
"node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0"
|
||||
}
|
||||
@@ -2746,13 +2746,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/headers-polyfill": {
|
||||
"version": "3.2.1",
|
||||
"resolved": "https://registry.npmjs.org/headers-polyfill/-/headers-polyfill-3.2.1.tgz",
|
||||
"integrity": "sha512-jpY9fNMWPWwkqRN9CpSRNqL9svpiuSmg4CsbPl4s43KltIDIVHlPv75UOXVgc/PTP6BzHSUvd9UMdxSW1I+ETQ==",
|
||||
"dependencies": {
|
||||
"@types/set-cookie-parser": "^2.4.3",
|
||||
"set-cookie-parser": "^2.6.0"
|
||||
}
|
||||
"version": "3.2.5",
|
||||
"resolved": "https://registry.npmjs.org/headers-polyfill/-/headers-polyfill-3.2.5.tgz",
|
||||
"integrity": "sha512-tUCGvt191vNSQgttSyJoibR+VO+I6+iCHIUdhzEMJKE+EAL8BwCN7fUOZlY4ofOelNHsK+gEjxB/B+9N3EWtdA=="
|
||||
},
|
||||
"node_modules/help-me": {
|
||||
"version": "4.2.0",
|
||||
@@ -3572,9 +3568,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/mqtt": {
|
||||
"version": "5.0.4",
|
||||
"resolved": "https://registry.npmjs.org/mqtt/-/mqtt-5.0.4.tgz",
|
||||
"integrity": "sha512-Ao+DA4QYzIFXTQPIF0WKJfeHM2BV0kbP1xt/POPyJY2dQ02dscUJonh94NG9/aw0Fbk2L8Ex0YxobDSKUyQvcQ==",
|
||||
"version": "5.0.5",
|
||||
"resolved": "https://registry.npmjs.org/mqtt/-/mqtt-5.0.5.tgz",
|
||||
"integrity": "sha512-Ahbzk7nddvYg0aOezbYl/d9o8wcEbZw1NjiH+CmGObxiHsG4HgL7+IaRkph5yxwH679GVMAwtfsyUY2dFBSVSw==",
|
||||
"dependencies": {
|
||||
"@types/readable-stream": "^4.0.1",
|
||||
"@types/ws": "^8.5.5",
|
||||
@@ -3618,13 +3614,13 @@
|
||||
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
|
||||
},
|
||||
"node_modules/msw": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/msw/-/msw-1.3.0.tgz",
|
||||
"integrity": "sha512-nnWAZlQyQOKeYRblCpseT1kSPt1aF5e/jHz1hn/18IxbsMFreSVV1cJriT0uV+YG6+wvwFRMHXU3zVuMvuwERQ==",
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmjs.org/msw/-/msw-1.3.1.tgz",
|
||||
"integrity": "sha512-GhP5lHSTXNlZb9EaKgPRJ01YAnVXwzkvnTzRn4W8fxU2DXuJrRO+Nb6OHdYqB4fCkwSNpIJH9JkON5Y6rHqJMQ==",
|
||||
"hasInstallScript": true,
|
||||
"dependencies": {
|
||||
"@mswjs/cookies": "^0.2.2",
|
||||
"@mswjs/interceptors": "^0.17.5",
|
||||
"@mswjs/interceptors": "^0.17.10",
|
||||
"@open-draft/until": "^1.0.3",
|
||||
"@types/cookie": "^0.4.1",
|
||||
"@types/js-levenshtein": "^1.1.1",
|
||||
@@ -3632,7 +3628,7 @@
|
||||
"chokidar": "^3.4.2",
|
||||
"cookie": "^0.4.2",
|
||||
"graphql": "^15.0.0 || ^16.0.0",
|
||||
"headers-polyfill": "^3.2.0",
|
||||
"headers-polyfill": "3.2.5",
|
||||
"inquirer": "^8.2.0",
|
||||
"is-node-process": "^1.2.0",
|
||||
"js-levenshtein": "^1.1.6",
|
||||
@@ -4439,9 +4435,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/ring-client-api": {
|
||||
"version": "12.0.0",
|
||||
"resolved": "https://registry.npmjs.org/ring-client-api/-/ring-client-api-12.0.0.tgz",
|
||||
"integrity": "sha512-DbkuK6Za1/Oft7ZDjMukVlBDsya8/7YcYuInbaCIcMKQK8790hfET1qOvqzM9goBkJw2r4/UcSg8nCx8YDhNXA==",
|
||||
"version": "12.0.1",
|
||||
"resolved": "https://registry.npmjs.org/ring-client-api/-/ring-client-api-12.0.1.tgz",
|
||||
"integrity": "sha512-rfQYju0q6hje0DEIsr0k82mW15GAR4ZNQJz95UI4eZor9+XAqUVhtYJK/aeJKyRg6jKn/vSOpAY3EKHSc2fTtg==",
|
||||
"funding": [
|
||||
{
|
||||
"type": "paypal",
|
||||
@@ -4453,7 +4449,7 @@
|
||||
}
|
||||
],
|
||||
"dependencies": {
|
||||
"@eneris/push-receiver": "^3.1.4",
|
||||
"@eneris/push-receiver": "^3.1.5",
|
||||
"@homebridge/camera-utils": "^2.2.0",
|
||||
"@peculiar/asn1-schema": "^2.3.6",
|
||||
"@peculiar/webcrypto": "^1.4.3",
|
||||
@@ -4462,15 +4458,15 @@
|
||||
"debug": "^4.3.4",
|
||||
"got": "^11.8.5",
|
||||
"json-bigint": "^1.0.0",
|
||||
"msw": "^1.2.3",
|
||||
"msw": "^1.3.1",
|
||||
"pvtsutils": "^1.3.5",
|
||||
"rxjs": "^7.8.1",
|
||||
"socket.io-client": "^2.5.0",
|
||||
"systeminformation": "^5.18.15",
|
||||
"uuid": "^9.0.0",
|
||||
"systeminformation": "^5.21.5",
|
||||
"uuid": "^9.0.1",
|
||||
"webcrypto-core": "^1.7.7",
|
||||
"werift": "0.18.5",
|
||||
"ws": "^8.13.0"
|
||||
"werift": "0.18.6",
|
||||
"ws": "^8.14.1"
|
||||
},
|
||||
"bin": {
|
||||
"ring-auth-cli": "lib/ring-auth-cli.js",
|
||||
@@ -4615,6 +4611,37 @@
|
||||
"url": "https://github.com/sponsors/sindresorhus"
|
||||
}
|
||||
},
|
||||
"node_modules/ring-client-api/node_modules/werift": {
|
||||
"version": "0.18.6",
|
||||
"resolved": "https://registry.npmjs.org/werift/-/werift-0.18.6.tgz",
|
||||
"integrity": "sha512-VUeov7zt8g+9ZQDpanM7pxjwnDsN5PfkOhMQXXdCqapkrb2lJJuNSBMgIBmBFNsXvEOLNmA8YnxQJWZ7/4swNA==",
|
||||
"dependencies": {
|
||||
"@fidm/x509": "^1.2.1",
|
||||
"@minhducsun2002/leb128": "^1.0.0",
|
||||
"@peculiar/webcrypto": "^1.4.1",
|
||||
"@peculiar/x509": "^1.9.2",
|
||||
"@shinyoshiaki/ebml-builder": "^0.0.1",
|
||||
"aes-js": "^3.1.2",
|
||||
"binary-data": "^0.6.0",
|
||||
"buffer-crc32": "^0.2.13",
|
||||
"date-fns": "^2.29.3",
|
||||
"debug": "^4.3.4",
|
||||
"elliptic": "^6.5.4",
|
||||
"int64-buffer": "^1.0.1",
|
||||
"ip": "^1.1.8",
|
||||
"jspack": "^0.0.4",
|
||||
"lodash": "^4.17.21",
|
||||
"nano-time": "^1.0.0",
|
||||
"p-cancelable": "^2.1.1",
|
||||
"rx.mini": "^1.2.2",
|
||||
"turbo-crc32": "^1.0.1",
|
||||
"tweetnacl": "^1.0.3",
|
||||
"uuid": "^9.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=16"
|
||||
}
|
||||
},
|
||||
"node_modules/run-async": {
|
||||
"version": "2.4.1",
|
||||
"resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz",
|
||||
@@ -5000,9 +5027,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/systeminformation": {
|
||||
"version": "5.21.4",
|
||||
"resolved": "https://registry.npmjs.org/systeminformation/-/systeminformation-5.21.4.tgz",
|
||||
"integrity": "sha512-fLW6j47UoAJDlZPEqykkWTKxubxb8IFuow6pMQlqf4irZ2lBgCrCReavMkH2t8VxxjOcg6wBlZ2EPQcluAT6xg==",
|
||||
"version": "5.21.8",
|
||||
"resolved": "https://registry.npmjs.org/systeminformation/-/systeminformation-5.21.8.tgz",
|
||||
"integrity": "sha512-Xf1KDMUTQHLOT9Z7MjpSpsbaICOHcm4OZ9c9qqpkCoXuxq5MoyDrgu5GIQYpoiralXNPrqxDz3ND8MdllpXeQA==",
|
||||
"os": [
|
||||
"darwin",
|
||||
"linux",
|
||||
@@ -5063,9 +5090,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/tar": {
|
||||
"version": "6.1.15",
|
||||
"resolved": "https://registry.npmjs.org/tar/-/tar-6.1.15.tgz",
|
||||
"integrity": "sha512-/zKt9UyngnxIT/EAGYuxaMYgOIJiP81ab9ZfkILq4oNLPFX50qyYmu7jRj9qeXoxmJHjGlbH0+cm2uy1WCs10A==",
|
||||
"version": "6.2.0",
|
||||
"resolved": "https://registry.npmjs.org/tar/-/tar-6.2.0.tgz",
|
||||
"integrity": "sha512-/Wo7DcT0u5HUV486xg675HtjNd3BXZ6xDbzsCUZPt5iw8bTQ63bP0Raut3mvro9u+CUyq7YQd8Cx55fsZXxqLQ==",
|
||||
"dependencies": {
|
||||
"chownr": "^2.0.0",
|
||||
"fs-minipass": "^2.0.0",
|
||||
@@ -5252,9 +5279,13 @@
|
||||
}
|
||||
},
|
||||
"node_modules/uuid": {
|
||||
"version": "9.0.0",
|
||||
"resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.0.tgz",
|
||||
"integrity": "sha512-MXcSTerfPa4uqyzStbRoTgt5XIe3x5+42+q1sDuy3R5MDk66URdLMOZe5aPX/SQd+kuYAh0FdP/pO28IkQyTeg==",
|
||||
"version": "9.0.1",
|
||||
"resolved": "https://registry.npmjs.org/uuid/-/uuid-9.0.1.tgz",
|
||||
"integrity": "sha512-b+1eJOlsR9K8HJpow9Ok3fiWOWSIcIzXodvv0rQjVoOVNpWMpxf1wZNpt4y9h10odCNrqnYp1OBzRktckBe3sA==",
|
||||
"funding": [
|
||||
"https://github.com/sponsors/broofa",
|
||||
"https://github.com/sponsors/ctavan"
|
||||
],
|
||||
"bin": {
|
||||
"uuid": "dist/bin/uuid"
|
||||
}
|
||||
@@ -5315,9 +5346,9 @@
|
||||
"integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
|
||||
},
|
||||
"node_modules/werift": {
|
||||
"version": "0.18.5",
|
||||
"resolved": "https://registry.npmjs.org/werift/-/werift-0.18.5.tgz",
|
||||
"integrity": "sha512-uKHe6AulnWxmLjf6T3z54cEfuJxZuvzLocheY8LE5XLRGAsRGjd8Wk3MELEXOUXKhi0K1z5gvxR6CZ2KJY0mYw==",
|
||||
"version": "0.18.7",
|
||||
"resolved": "https://registry.npmjs.org/werift/-/werift-0.18.7.tgz",
|
||||
"integrity": "sha512-xlEna5/TIkDhtJ5a8CRXFlg23cgx6cUGaBZv2/u3Duae7bc9TY6R0mGGh6FM2IEB5/yCwUWu6jC7ZS3VFXlIMA==",
|
||||
"dependencies": {
|
||||
"@fidm/x509": "^1.2.1",
|
||||
"@minhducsun2002/leb128": "^1.0.0",
|
||||
@@ -5436,9 +5467,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/ws": {
|
||||
"version": "8.13.0",
|
||||
"resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz",
|
||||
"integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==",
|
||||
"version": "8.14.2",
|
||||
"resolved": "https://registry.npmjs.org/ws/-/ws-8.14.2.tgz",
|
||||
"integrity": "sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g==",
|
||||
"engines": {
|
||||
"node": ">=10.0.0"
|
||||
},
|
||||
|
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "ring-mqtt",
|
||||
"version": "5.6.2",
|
||||
"version": "5.6.3",
|
||||
"type": "module",
|
||||
"description": "Ring Devices via MQTT",
|
||||
"main": "ring-mqtt.js",
|
||||
@@ -15,10 +15,10 @@
|
||||
"is-online": "^10.0.0",
|
||||
"js-yaml": "^4.1.0",
|
||||
"minimist": "^1.2.8",
|
||||
"mqtt": "^5.0.3",
|
||||
"ring-client-api": "12.0.0",
|
||||
"mqtt": "^5.0.5",
|
||||
"ring-client-api": "12.0.1",
|
||||
"rxjs": "^7.8.1",
|
||||
"werift": "^0.18.5",
|
||||
"werift": "^0.18.7",
|
||||
"write-file-atomic": "^5.0.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
|
Reference in New Issue
Block a user