iobroker.device-watcher 2.10.5 → 2.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/arrApart.js CHANGED
@@ -430,6 +430,19 @@ const arrApart = {
430
430
  reach: '.status',
431
431
  isLowBat: 'none',
432
432
  },
433
+ ring: {
434
+ Selektor: 'ring.*.latest_signal_strength',
435
+ timeSelector: '.latest_signal_strength',
436
+ adapterID: 'ring',
437
+ adapter: 'Ring',
438
+ rssiState: '.latest_signal_strength',
439
+ battery: '.battery_percentage',
440
+ charger: '.external_connection',
441
+ reach: 'none',
442
+ isLowBat: 'none',
443
+ id: 'none',
444
+ upgrade: '.firmware',
445
+ },
433
446
  roomba: {
434
447
  Selektor: 'roomba.*.signal',
435
448
  timeSelector: '.signal',
package/main.js CHANGED
@@ -151,6 +151,7 @@ class DeviceWatcher extends utils.Adapter {
151
151
  nut: this.config.nutDevices,
152
152
  ping: this.config.pingDevices,
153
153
  proxmox: this.config.proxmoxDevices,
154
+ ring: this.config.ringDevices,
154
155
  roomba: this.config.roombaDevices,
155
156
  shelly: this.config.shellyDevices,
156
157
  smartgarden: this.config.smartgardenDevices,
@@ -212,6 +213,7 @@ class DeviceWatcher extends utils.Adapter {
212
213
  nut: this.config.nutMaxMinutes,
213
214
  ping: this.config.pingMaxMinutes,
214
215
  proxmox: this.config.proxmoxMaxMinutes,
216
+ ring: this.config.ringMaxMinutes,
215
217
  roomba: this.config.roombaMaxMinutes,
216
218
  shelly: this.config.shellyMaxMinutes,
217
219
  smartgarden: this.config.smartgardenMaxMinutes,
@@ -997,6 +999,7 @@ class DeviceWatcher extends utils.Adapter {
997
999
  case 'loqedSmartLock':
998
1000
  case 'viessmann':
999
1001
  case 'homekitController':
1002
+ case 'ring':
1000
1003
  if (shortDeviceObject && typeof shortDeviceObject === 'object' && shortDeviceObject.common) {
1001
1004
  deviceName = shortDeviceObject.common.name;
1002
1005
  }
@@ -1138,41 +1141,44 @@ class DeviceWatcher extends utils.Adapter {
1138
1141
  let batteryHealthRaw;
1139
1142
  let batteryHealthUnitRaw;
1140
1143
 
1141
- if (adapterID === 'hmrpc') {
1142
- if (deviceBatteryState === undefined) {
1143
- if (faultReportingState !== undefined && faultReportingState !== 6) {
1144
- batteryHealth = 'ok';
1145
- isBatteryDevice = true;
1146
- } else if (deviceLowBatState !== undefined && deviceLowBatState !== 1) {
1147
- batteryHealth = 'ok';
1148
- isBatteryDevice = true;
1149
- } else if (deviceLowBatState !== undefined) {
1150
- batteryHealth = 'low';
1151
- isBatteryDevice = true;
1152
- }
1153
- } else if (deviceBatteryState !== 0 && deviceBatteryState < 6) {
1154
- batteryHealth = `${deviceBatteryState}V`;
1155
- batteryHealthRaw = deviceBatteryState;
1156
- batteryHealthUnitRaw = 'V';
1157
- isBatteryDevice = true;
1158
- }
1159
- } else {
1160
- if (deviceBatteryState === undefined) {
1161
- if (deviceLowBatState !== undefined) {
1162
- if (deviceLowBatState !== true && deviceLowBatState !== 'NORMAL' && deviceLowBatState !== 1) {
1144
+ switch (adapterID) {
1145
+ case 'hmrpc':
1146
+ if (deviceBatteryState === undefined) {
1147
+ if (faultReportingState !== undefined && faultReportingState !== 6) {
1163
1148
  batteryHealth = 'ok';
1164
1149
  isBatteryDevice = true;
1165
- } else if (deviceLowBatState !== true) {
1150
+ } else if (deviceLowBatState !== undefined && deviceLowBatState !== 1) {
1151
+ batteryHealth = 'ok';
1152
+ isBatteryDevice = true;
1153
+ } else if (deviceLowBatState !== undefined) {
1166
1154
  batteryHealth = 'low';
1167
1155
  isBatteryDevice = true;
1168
1156
  }
1157
+ } else if (deviceBatteryState !== 0 && deviceBatteryState < 6) {
1158
+ batteryHealth = `${deviceBatteryState}V`;
1159
+ batteryHealthRaw = deviceBatteryState;
1160
+ batteryHealthUnitRaw = 'V';
1161
+ isBatteryDevice = true;
1169
1162
  }
1170
- } else {
1171
- batteryHealth = `${deviceBatteryState}%`;
1172
- batteryHealthRaw = deviceBatteryState;
1173
- batteryHealthUnitRaw = '%';
1174
- isBatteryDevice = true;
1175
- }
1163
+ break;
1164
+ default:
1165
+ if (deviceBatteryState === undefined) {
1166
+ if (deviceLowBatState !== undefined) {
1167
+ if (deviceLowBatState !== true && deviceLowBatState !== 'NORMAL' && deviceLowBatState !== 1) {
1168
+ batteryHealth = 'ok';
1169
+ isBatteryDevice = true;
1170
+ } else if (deviceLowBatState !== true) {
1171
+ batteryHealth = 'low';
1172
+ isBatteryDevice = true;
1173
+ }
1174
+ }
1175
+ } else {
1176
+ batteryHealth = `${deviceBatteryState}%`;
1177
+ batteryHealthRaw = deviceBatteryState;
1178
+ batteryHealthUnitRaw = '%';
1179
+ isBatteryDevice = true;
1180
+ }
1181
+ break;
1176
1182
  }
1177
1183
 
1178
1184
  return [batteryHealth, isBatteryDevice, batteryHealthRaw, batteryHealthUnitRaw];
@@ -1459,6 +1465,13 @@ class DeviceWatcher extends utils.Adapter {
1459
1465
  isUpgradable = false;
1460
1466
  }
1461
1467
  break;
1468
+ case 'ring':
1469
+ if (deviceUpdateSelector !== 'Up to Date') {
1470
+ isUpgradable = true;
1471
+ } else {
1472
+ isUpgradable = false;
1473
+ }
1474
+ break;
1462
1475
  default:
1463
1476
  if (deviceUpdateSelector !== null && typeof deviceUpdateSelector === 'boolean') {
1464
1477
  if (deviceUpdateSelector) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iobroker.device-watcher",
3
- "version": "2.10.5",
3
+ "version": "2.11.0",
4
4
  "description": "Watchdog for devices",
5
5
  "author": {
6
6
  "name": "Christian Behrends",
@@ -37,22 +37,22 @@
37
37
  "@types/chai": "^4.3.11",
38
38
  "@types/chai-as-promised": "^7.1.8",
39
39
  "@types/mocha": "^10.0.6",
40
- "@types/node": "^20.11.14",
41
- "@types/node-schedule": "^2.1.5",
40
+ "@types/node": "^20.11.24",
41
+ "@types/node-schedule": "^2.1.6",
42
42
  "@types/proxyquire": "^1.3.31",
43
43
  "@types/sinon": "^17.0.3",
44
44
  "@types/sinon-chai": "^3.2.12",
45
- "@typescript-eslint/eslint-plugin": "^6.20.0",
45
+ "@typescript-eslint/eslint-plugin": "^7.0.0",
46
46
  "@typescript-eslint/parser": "^6.20.0",
47
47
  "chai": "^4.4.1",
48
48
  "chai-as-promised": "^7.1.1",
49
49
  "cron-parser": "^4.9.0",
50
- "eslint": "^8.56.0",
50
+ "eslint": "^8.57.0",
51
51
  "eslint-config-prettier": "^9.1.0",
52
52
  "eslint-plugin-prettier": "^5.1.3",
53
- "mocha": "^10.2.0",
53
+ "mocha": "^10.3.0",
54
54
  "node-schedule": "^2.1.1",
55
- "prettier": "^3.2.4",
55
+ "prettier": "^3.2.5",
56
56
  "proxyquire": "^2.1.3",
57
57
  "sinon": "^17.0.1",
58
58
  "sinon-chai": "^3.7.0",