homebridge-eosstb 2.2.4 → 2.2.5

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/CHANGELOG.md CHANGED
@@ -10,6 +10,12 @@ Please restart Homebridge after every plugin update.
10
10
  * Implement refreshToken capabilities
11
11
 
12
12
 
13
+ ## 2.2.5 (2023-03-28)
14
+ * Improved robustness when no set-top boxes detected in the user profile
15
+ * Updated iOS version references
16
+ * Minor improvements to the Readme
17
+
18
+
13
19
  ## 2.2.4 (2023-03-11)
14
20
  * Bumped dependency "qs": "^6.11.1",
15
21
  * Bumped dependency "node": ">=16.19.1"
package/README.md CHANGED
@@ -72,7 +72,7 @@ In January 2023, an ARRIS VIP5002W appeared, which identifies itself as an APLST
72
72
  This plugin is not provided by Magenta or Telenet or Sunrise or Virgin Media or Ziggo any other affiliate of [UPC](https://en.wikipedia.org/wiki/UPC_Broadband). It is neither endorsed nor supported nor developed by [UPC](https://en.wikipedia.org/wiki/UPC_Broadband) or any affiliates. [UPC](https://en.wikipedia.org/wiki/UPC_Broadband) can change their systems at any time and that might break this plugin. But I hope not.
73
73
 
74
74
  ## Requirements
75
- * An Apple iPhone or iPad with iOS/iPadOS 14.0 (or later). Developed on iOS 14.1...16.3, earlier versions not tested.
75
+ * An Apple iPhone or iPad with iOS/iPadOS 14.0 (or later). Developed on iOS 14.1...16.4, earlier versions not tested.
76
76
  * [Homebridge](https://homebridge.io/) v1.1.116 (or later). Developed on Homebridge 1.1.116....1.6.0, earlier versions not tested.
77
77
  * A TV subscription from one of the supported countries and TV providers.
78
78
  * An online account for viewing TV in the web app (often part of your TV package), see the table above.
@@ -115,7 +115,7 @@ This plugin is not provided by Magenta or Telenet or Sunrise or Virgin Media or
115
115
 
116
116
  * **Fully Configurable**: A large amount of configuration items exist to allow you to configure your plugin the way you want.
117
117
 
118
- * **Future Feature Support**: The plugin also supports current and target media state as well as closed captions, even though the Home app accessory cannot currently display or control this data in the home app (as at iOS 16.3). Hopefully, Apple will add support for these features in the future. You can however use this data in Home Automations or the Shortcuts app.
118
+ * **Future Feature Support**: The plugin also supports current and target media state as well as closed captions, even though the Home app accessory cannot currently display or control this data in the home app (as at iOS 16.4). Hopefully, Apple will add support for these features in the future. You can however use this data in Home Automations or the Shortcuts app.
119
119
 
120
120
 
121
121
 
@@ -204,13 +204,13 @@ Services used in this set-top box accessory are:
204
204
  4. Input service. The input (TV channels) utilises one service per input. The maximum possible channels (inputs) are thus 100 - 3 = 97. I have limited the inputs to maximum 95, but you can override this in the config (helpful to reduce log entries when debugging). The inputs are hard limited to 95 inputs.
205
205
 
206
206
  ### Media State (Play/Pause) Limitations
207
- The eosstb plugin can detect the target and current media state and shows STOP, PLAY, PAUSE or LOADING (loading is displayed only for current media state when fast-forwarding or rewinding) in the Homebridge logs. Unfortunately, the Apple Home app cannot do anything with the media state (as at iOS 16.3) apart from allow you to read it in Shortcuts or Automations. Hopefully this will improve in the future.
207
+ The eosstb plugin can detect the target and current media state and shows STOP, PLAY, PAUSE or LOADING (loading is displayed only for current media state when fast-forwarding or rewinding) in the Homebridge logs. Unfortunately, the Apple Home app cannot do anything with the media state (as at iOS 16.4) apart from allow you to read it in Shortcuts or Automations. Hopefully this will improve in the future.
208
208
 
209
209
  ### Recording State Limitations
210
210
  The eosstb plugin can detect the current recording state of the set-top box, both for local HDD-based recording (for boxes that have a HDD fitted) and for network recording. The plugin shows IDLE, ONGOING_NDVR or ONGOING_LOCALDVR in the Homebridge logs. DVR means digital video recorder; N for network and LOCAL for local HDD based recording. The Apple Home app cannot natively do anything with the recording state but the eosstb plugin uses it to set the inUse charateristic if the set-top box is turned on or is recording to the local HDD. This is useful in Shortcuts or Automations.
211
211
 
212
212
  ### Closed Captions Limitations
213
- The eosstb plugin can detect the closed captions state (**Subtitle options** in the set-top box menu) and shows ENABLED or DISABLED in the Homebridge logs. Unfortunately, the Apple Home app cannot do anything with the closed captions state (as at iOS 16.3) apart from allow you to read it in Shortcuts or Automations. Hopefully this will improve in the future.
213
+ The eosstb plugin can detect the closed captions state (**Subtitle options** in the set-top box menu) and shows ENABLED or DISABLED in the Homebridge logs. Unfortunately, the Apple Home app cannot do anything with the closed captions state (as at iOS 16.4) apart from allow you to read it in Shortcuts or Automations. Hopefully this will improve in the future.
214
214
 
215
215
  ## Configuration
216
216
  Add a new platform to the platforms section of your homebridge `config.json`.
@@ -285,7 +285,7 @@ Mandatory config items must always exist. These are used to establish the sessio
285
285
 
286
286
  + **country**: Your country. Must be one of ch, nl, be-nl, be-fr, at or gb. Not case sensitive. This controls the country-specific logon sequence and the mqtt sessions. Mandatory.
287
287
 
288
- * **username**: Your login username for your TV account. Normally an email address. Mandatory.
288
+ * **username**: Your login username for your TV account, same as used in the TV app on your iOS device. Often an email address, but some providers use a mobile phone number. Mandatory.
289
289
 
290
290
  * **password**: Your password associated with your TV account. Mandatory.
291
291
 
package/index.js CHANGED
@@ -602,7 +602,6 @@ class stbPlatform {
602
602
  if (!this.devices || !this.devices[0].settings) {
603
603
  this.currentStatusFault = Characteristic.StatusFault.GENERAL_FAULT;
604
604
  this.sessionWatchdogRunning = false;
605
- if (this.config.debugLevel > 2) { this.log.warn('%s: session connected but no devices found. Exiting %s with sessionWatchdogRunning=%s', watchdogInstance, watchdogInstance, this.sessionWatchdogRunning); }
606
605
  //this.log('Failed to find any devices. The backend systems may be down, or you have no supported devices on your customer account')
607
606
  reject('No devices found. The backend systems may be down, or you have no supported devices on your customer account')
608
607
 
@@ -1499,23 +1498,26 @@ class stbPlatform {
1499
1498
 
1500
1499
  // update all the devices in the array. Don't trust the index order in the Personalization Data message
1501
1500
  //this.log('getPersonalizationData: this.stbDevices.length:', this.stbDevices.length)
1502
- this.devices.forEach((device) => {
1503
- if (this.config.debugLevel > 2) { // DEBUG
1504
- this.log.warn('getPersonalizationData: device settings for device %s:', device.deviceId);
1505
- this.log.warn(device.settings);
1506
- this.log.warn('getPersonalizationData: device capabilities for device %s:', device.deviceId);
1507
- this.log.warn(device.capabilities);
1508
- }
1509
- const deviceId = device.deviceId;
1510
- const deviceIndex = this.devices.findIndex(device => device.deviceId == deviceId)
1511
- if (deviceIndex > -1 && this.stbDevices[deviceIndex]) {
1512
- this.stbDevices[deviceIndex].device = device;
1513
- this.stbDevices[deviceIndex].customer = this.customer; // store entire customer object
1514
-
1515
- // mqttDeviceStateHandler(deviceId, powerState, mediaState, recordingState, channelId, eventId, sourceType, profileDataChanged, statusFault, programMode, statusActive, currInputDeviceType, currInputSourceType) {
1516
- this.mqttDeviceStateHandler(device.deviceId, null, null, null, null, null, null, true, Characteristic.StatusFault.NO_FAULT ); // update this device
1517
- }
1518
- });
1501
+ if (this.stbDevices.length > 0) {
1502
+ this.devices.forEach((device) => {
1503
+ if (this.config.debugLevel > 2) { // DEBUG
1504
+ this.log.warn('getPersonalizationData: device settings for device %s:', device.deviceId);
1505
+ this.log.warn(device.settings);
1506
+ this.log.warn('getPersonalizationData: device capabilities for device %s:', device.deviceId);
1507
+ this.log.warn(device.capabilities);
1508
+ }
1509
+ const deviceId = device.deviceId;
1510
+ const deviceIndex = this.devices.findIndex(device => device.deviceId == deviceId)
1511
+ if (deviceIndex > -1 && this.stbDevices[deviceIndex]) {
1512
+ this.stbDevices[deviceIndex].device = device;
1513
+ this.stbDevices[deviceIndex].customer = this.customer; // store entire customer object
1514
+
1515
+ // mqttDeviceStateHandler(deviceId, powerState, mediaState, recordingState, channelId, eventId, sourceType, profileDataChanged, statusFault, programMode, statusActive, currInputDeviceType, currInputSourceType) {
1516
+ this.mqttDeviceStateHandler(device.deviceId, null, null, null, null, null, null, true, Characteristic.StatusFault.NO_FAULT ); // update this device
1517
+ }
1518
+ });
1519
+
1520
+ }
1519
1521
 
1520
1522
 
1521
1523
  // profiles are an array named profiles, store entire array in this.profiles
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "displayName": "Homebridge EOSSTB",
4
4
  "description": "homebridge-plugin - Add your set-top box to Homekit (for Magenta AT, Telenet BE, Sunrise CH, Virgin Media GB & IE, Ziggo NL)",
5
5
  "author": "Jochen Siegenthaler (https://github.com/jsiegenthaler/)",
6
- "version": "2.2.4",
6
+ "version": "2.2.5",
7
7
  "platformname": "eosstb",
8
8
  "dependencies": {
9
9
  "axios-cookiejar-support": "^4.0.6",