Skip to content

Commit

Permalink
Merge pull request #115 from jsiegenthaler/Add-auto-endpoint-detection
Browse files Browse the repository at this point in the history
Add auto endpoint detection
  • Loading branch information
jsiegenthaler committed Jan 25, 2024
2 parents 725512b + 7aea211 commit ab45e8d
Show file tree
Hide file tree
Showing 6 changed files with 538 additions and 248 deletions.
17 changes: 16 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,27 @@ Please restart Homebridge after every plugin update.
## Current To-Do and In-Work List (For Future Releases, in rough order of priority):
* Add ability to log and read current program name


## 2.3.0-beta.8 (2024-01-25)
* Added auto endpoint detection for all services, this fixes connection issues in many countries
* Added ability to set authentication method. You must select the method in the plugin config. If none set, logon method falls back to using country code
* Added Disable Session Watchdog to config.schema to make it easier to debug by turning off the session watchdog
* Fixed issue connecting to mqtt broker (issue started ca. 23 Jan 2024) by adding extra subprotocol headers
* Fixed bug in getMostWatchedChannels where the endpoint was incorrect
* Updated Readme plugin status for various countries
* Updated iOS version references in Readme
* Bumped dependency "axios": "^1.6.6"
* Bumped dependency "mqtt": "^5.3.5"
* IN WORK: Reworking GB authentication methods. NOT YET WORKING, PLEASE BE PATIENT


## 2.2.16 (2024-01-16)
* Removed AZ, CZ, DE, HU, RO from config.json and Readme. These countries no longer offer UPC TV.


## 2.2.15 (2024-01-14)
* Fixed issue with MQTT connection failure in CH due to change of MQTT endpoint
* Bumped dependency "axios-cookiejar-support": "^5.0.0",
* Bumped dependency "axios-cookiejar-support": "^5.0.0"


## 2.2.14 (2024-01-06)
Expand Down
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ In January 2023, an ARRIS VIP5002W appeared, which identifies itself as an APLST
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.

## Requirements
* An Apple iPhone or iPad with iOS/iPadOS 14.0 (or later). Developed on iOS 14.1...17.2, earlier versions not tested.
* An Apple iPhone or iPad with iOS/iPadOS 14.0 (or later). Developed on iOS 14.1...17.3, earlier versions not tested.
* [Homebridge](https://homebridge.io/) v1.1.116 (or later). Developed on Homebridge 1.1.116....1.7.0, earlier versions not tested.
* A TV subscription from one of the supported countries and TV providers.
* An online account for viewing TV in the web app (often part of your TV package), see the table above.
Expand Down Expand Up @@ -113,7 +113,7 @@ This plugin is not provided by Magenta or Telenet or Sunrise or Virgin Media or

* **Fully Configurable**: A large amount of configuration items exist to allow you to configure your plugin the way you want.

* **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 17.2). Hopefully, Apple will add support for these features in the future. You can however use this data in Home Automations or the Shortcuts app.
* **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 17.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.



Expand Down Expand Up @@ -171,7 +171,7 @@ The following keys are supported by in the **Apple TV Remote** in the Control Ce
| Volume Up | volUpCommand | - |
| Volume Down | volDownCommand | 3 clicks = mute |

NOTE: The Mute and Power buttons appear in the Remote Control as of iOS 17.2, however they are disabled. Currently, I do not know how to enable these buttons. If you have any information about these buttons, please get in touch with me.
NOTE: The Mute and Power buttons appear in the Remote Control as of iOS 17.3, however they are disabled. Currently, I do not know how to enable these buttons. If you have any information about these buttons, please get in touch with me.

The table shows the default key mappings. You can map any Apple TV Remote button to any set-top box remote control button, see the Wiki for all of the known [KeyEvents](https://github.com/jsiegenthaler/homebridge-eosstb/wiki/KeyEvents).

Expand Down Expand Up @@ -206,13 +206,13 @@ Services used in this set-top box accessory are:
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.

### Media State (Play/Pause) Limitations
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 17.2) apart from allow you to read it in Shortcuts or Automations. Hopefully this will improve in the future.
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 17.3) apart from allow you to read it in Shortcuts or Automations. Hopefully this will improve in the future.

### Recording State Limitations
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.

### Closed Captions Limitations
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 17.2) apart from allow you to read it in Shortcuts or Automations. Hopefully this will improve in the future.
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 17.3) apart from allow you to read it in Shortcuts or Automations. Hopefully this will improve in the future.

## Configuration
Add a new platform to the platforms section of your homebridge `config.json`.
Expand Down
28 changes: 25 additions & 3 deletions config.schema.json
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,27 @@
"placeholder": "yourTvProviderPassword",
"required": true
},

"authmethod": {
"title": "Authentication Method",
"type": "string",
"description": "The authentication method. Select the option for your country. If it doesn't work, try another method.",
"default": "A",
"required": true,
"oneOf": [
{ "title": "Method A: CH, NL, IE", "enum": ["A"] },
{ "title": "Method B: BE", "enum": ["B"] },
{ "title": "Method C: GB", "enum": ["C"] },
{ "title": "Method D: OAuth 2.0 PKCE EXPERIMENTAL", "enum": ["D"] }
]
},

"watchdogDisabled": {
"title": "Disable Session Watchdog",
"type": "boolean",
"description": "Disables the session watchdog to assist with debugging. Default: false",
"default": false
},

"doublePressTime": {
"title": "Double-Press Time",
"type": "integer",
Expand Down Expand Up @@ -841,8 +861,10 @@
"type": "flex",
"flex-flow": "column",
"items": [
"country"
]
"country",
"authmethod",
"watchdogDisabled"
]
},
{
"type": "flex",
Expand Down
Loading

0 comments on commit ab45e8d

Please sign in to comment.