Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
## Unreleased
_Changes in the next release_

### Added
- Google Cast for media info & seeking support. Contributed by @albaintor, thanks! ([#57](https://github.com/unfoldedcircle/integration-androidtv/pull/57))
- This is currently a preview feature and must be enabled in the device configuration of the integration setup.
- myCANAL application ([#55](https://github.com/unfoldedcircle/integration-androidtv/pull/55))

### Changed
- Add support article link and change setup description in first setup flow screen.

---

## v0.6.3 - 2024-12-08
Expand Down
9 changes: 6 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,17 @@
Using [androidtvremote2](https://github.com/tronikos/androidtvremote2), [uc-integration-api](https://github.com/aitatoi/integration-python-library) and [pychromecast](https://github.com/home-assistant-libs/pychromecast).

The integration currently supports almost all features that the androidtvremote2 library provides.
Button control and ON/OFF states are supported. Unfortunately media image and playing information are not retrievable.
Source list is limited to a predefined list as retrieving a list of installed apps is not possible.
Button control and ON/OFF states are supported. With the optional Google Cast support, media playing information can be
retrieved from supported apps.
The application source list is limited to a predefined list, as retrieving the installed apps is not possible.

This integration is included in the Remote Two and Remote 3 firmware and no external service must be run to connect with
Android TV devices. A standalone service can be used for development or connecting multiple devices.
Android TV devices. It can be run as an external integration for development

- [Requirements and setting](docs/settings.md).
- Multiple Android TV devices are supported with version 0.5.0 and newer.
- A [media player entity](https://github.com/unfoldedcircle/core-api/blob/main/doc/entities/entity_media_player.md)
is exposed per Android TV device to the Remote.
- Device profiles allow device specific support and custom key bindings, for example double-click or long-press actions.
See [command mappings](docs/command_mapping.md) for more information.

Expand Down
9 changes: 8 additions & 1 deletion docs/command_mapping.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,13 @@ in the default device profile:
| previous | previous | MEDIA_PREVIOUS | |
| fast_forward | fast_forward | MEDIA_FAST_FORWARD | |
| rewind | rewind | MEDIA_REWIND | |
| media_title | - | - | Returned attribute |
| media_duration | - | - | Only with Google Cast enabled and supported applications. |
| media_position | - | - | Only with Google Cast enabled and supported applications. |
| media_title | - | - | Returned attribute, usually the running application ID or friendly name if available. With Google Cast enabled: media title if supported. |
| media_artist | - | - | Only with Google Cast enabled and supported applications. |
| media_album | - | - | Only with Google Cast enabled and supported applications. |
| media_image_url | - | - | Only with Google Cast enabled and supported applications. |
| media_type | - | - | Only with Google Cast enabled and supported applications. |
| dpad | cursor_up, cursor_down,<br>cursor_left, cursor_right,<br>cursor_enter | DPAD_UP, DPAD_DOWN,<br>DPAD_LEFT, DPAD_RIGHT,<br>DPAD_CENTER | |
| numpad | digit_0 ... digit_9 | 0 ... 9 | |
| home | home, back | HOME, BACK | |
Expand All @@ -34,6 +40,7 @@ in the default device profile:
| record | record | MEDIA_RECORD | |
| settings | settings | SETTINGS | Profile mapping for Chromecast: MENU long-press, Shield: BACK long-press |
| search | search | SEARCH | Limited usability without keyboard or voice input |
| seek | seek | - | Only available with Google Cast. |

- Available Android remote keycodes are defined in: https://github.com/tronikos/androidtvremote2/blob/v0.0.14/src/androidtvremote2/remotemessage.proto#L90

Expand Down
4 changes: 4 additions & 0 deletions docs/settings.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@
- When using mesh networking or professional networking gear, mDNS may be disabled or only specific mDNS services may
be allowed.
In such cases, please check the manufacturer's documentation on how to enable mDNS or specific mDNS services.
- When using DHCP: a static IP address reservation for the Android TV devices is recommended.
A fixed IP address can speed up reconnection after the Remote wakes up from standby.

## Limitations and Known Issues

Expand All @@ -24,6 +26,8 @@
- If these don't work, neither will this integration.
- Not every app will work or supports all keycodes.
- For example, some IP-TV apps don't support channel-up & down commands.
- Retrieving the installed applications is not supported.
- The shown apps in the input selection list are a pre-defined list of common applications.
- Some devices, like TCL, become unavailable after they are turned off, unless you activate the `Screenless service`.
- Activate it under: Settings, System, Power and energy: Screenless service

Expand Down
8 changes: 4 additions & 4 deletions driver.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
"developer": {
"name": "Unfolded Circle ApS",
"email": "hello@unfoldedcircle.com",
"url": "https://www.unfoldedcircle.com"
"url": "https://support.unfoldedcircle.com/hc/en-us/articles/19479709099804"
},
"home_page": "https://www.unfoldedcircle.com",
"setup_data_schema": {
Expand All @@ -32,9 +32,9 @@
"field": {
"label": {
"value": {
"en": "The integration will discover your Android TV on your network. Only devices running the [Android TV Remote Service](https://play.google.com/store/apps/details?id=com.google.android.tv.remote.service) are supported.\nDuring the process, you might need to enter a PIN that is shown on your Android TV. Please make sure that your Android TV is powered on and that no old pairing request is shown.\nIf pairing continuously fails, reboot your Android TV device and try again.",
"de": "Diese Integration wird deine Android TV Geräte in deinem Netzwerk erkennen. Nur Geräte auf denen [Android TV Remote Service](https://play.google.com/store/apps/details?id=com.google.android.tv.remote.service) läuft werden unterstützt.\nWährend der Einrichtung der Integration wird ein PIN abgefragt der auf deinem Android TV angezeigt wird. Bitte stelle sicher, dass dein Android TV eingeschaltet ist und keine alte Pairing Anforderung gezeigt wird.\nWenn das Pairen wiederholt fehlschlägt, starte dein Android TV Gerät neu und versuche es erneut.",
"fr": "L'intégration découvrira votre Android TV sur votre réseau. Seuls les appareils faisant tourner le [Android TV Remote Service](https://play.google.com/store/apps/details?id=com.google.android.tv.remote.service) sont supportés.\nDurant la procédure, vous devrez saisir un code PIN qui sera affiché sur votre Android TV. Assurez-vous que votre Android TV est allumée et qu'aucune ancienne requête d'apparaige est affichée.\nSi l'appairage échoue systématiquement, redémarrez votre Android TV et réessayez"
"en": "The integration discovers Android TV devices on the network. Only devices running the [Android TV Remote Service](https://play.google.com/store/apps/details?id=com.google.android.tv.remote.service) are supported.\nDuring the process, you might need to enter a PIN that is shown on your Android TV. Please make sure that your Android TV is powered on and that no old pairing request is shown.\nIf pairing continuously fails, reboot your Android TV device and try again.\n\nPlease see our [support article](https://support.unfoldedcircle.com/hc/en-us/articles/19479709099804) for requirements, features and restrictions.",
"de": "Die Integration findet Android TV Geräte im Netzwerk. Nur Geräte auf denen [Android TV Remote Service](https://play.google.com/store/apps/details?id=com.google.android.tv.remote.service) läuft werden unterstützt.\nWährend der Einrichtung der Integration wird ein PIN abgefragt der auf deinem Android TV angezeigt wird. Bitte stelle sicher, dass dein Android TV eingeschaltet ist und keine alte Pairing Anforderung gezeigt wird.\nWenn das Pairen wiederholt fehlschlägt, starte dein Android TV Gerät neu und versuche es erneut.\n\nBitte beachte unseren [Support-Artikel](https://support.unfoldedcircle.com/hc/en-us/articles/19479709099804) zu Anforderungen, unterstützten Funktionen und Einschränkungen.",
"fr": "Lintégration détecte les appareils Android TV sur le réseau. Seuls les appareils faisant tourner le [Android TV Remote Service](https://play.google.com/store/apps/details?id=com.google.android.tv.remote.service) sont supportés.\nDurant la procédure, vous devrez saisir un code PIN qui sera affiché sur votre Android TV. Assurez-vous que votre Android TV est allumée et qu'aucune ancienne requête d'apparaige est affichée.\nSi l'appairage échoue systématiquement, redémarrez votre Android TV et réessayez.\n\nVeuillez consulter [l’article de support](https://support.unfoldedcircle.com/hc/en-us/articles/19479709099804) pour connaître les exigences, les fonctionnalités prises en charge et les restrictions."
}
}
}
Expand Down
3 changes: 0 additions & 3 deletions intg-androidtv/profiles.py
Original file line number Diff line number Diff line change
Expand Up @@ -81,9 +81,6 @@
media_player.Features.MEDIA_DURATION,
media_player.Features.MEDIA_TYPE,
media_player.Features.SEEK,
media_player.Features.VOLUME,
media_player.Features.VOLUME_UP_DOWN,
media_player.Features.MUTE_TOGGLE,
]


Expand Down