Skip to content

Releases: Nerwyn/android-tv-card

4.3.3 - Jellyfin, Unified Remote, LG webOS Keyboard, and Touchpad Drag Actions

29 Dec 09:37
Compare
Choose a tag to compare

Jellyfin, Unified Remote, LG webOS Keyboard, and Touchpad Drag Actions

Changes in 4.3.3

  • Use --lovelace-background for touchpad and slider backgrounds before --primary-background-color, as a bug in Home Assistant causes the default theme primary background color to be prioritized over the current theme value.
  • Fix horizontal slider swipe detection when used with mouse.

New Platforms - Jellyfin #165 and Unified Remote #124

This release adds two new default platforms - Jellyfin and Unified Remote!

Jellyfin uses its Home Assistant integration (no keyboard support, although the underlying library used by Home Assistant seems to support it).

Unified Remote uses this custom integration, which requires more advanced setup as described in its README. Once setup you'll be able to control computers running Windows, macOS, or Linux using Unified Remote via Home Assistant and this card. The Unified Remote platform has both keyboard and mouse support (see below)! This custom integration does not provide any entity IDs for your Unified Remote hosts. Instead, you should provide the configured host name or IP address in the configuration UI remote and keyboard fields. Make sure it doesn't autofill with an entity ID! You may have to change it back to the host name/IP address using the configuration code editor.

Expanded Keyboard Support - LG webOS #161 and Unified Remote #124

Keyboard support has been added for LG webOS! You can now send text to LG webOS TVs either seamlessly or in bulk (search not available). I do not own an LG webOS TV, so if you run into issues please let me know! Keyboard support for this platform is untested, and I rely on users to validate behavior on most of the platforms this card supports.

The new platform Unified Remote also has keyboard support! You can now seamlessly or in bulk send text to your personal computers.

New Touchpad Interactions - Drag Mode #124

Touchpads now support a new drag interaction mode! Instead of sending different actions based on the direction you swipe, you can alternatively define a single action that will fire any time movement is detected on the touchpad. Combine this with templates and the internal values deltaX, and deltaY, and you can now send accurate drag movements to a platform. This is especially useful for the new Unified Remote platform, as it gives you the ability to use this card's touchpad as a mousepad for your computers! You can also use it with all existing platforms using the default key dragpad if you want to try a different navigation method, just know that it's sensitive! You can increase the interval between mouse actions in the configuration UI if it's too sensitive for you.

The drag interaction is also available as a multi-touch interaction. Note that enabling drag interactions disables touchpad swipe actions, but not tap, double tap, and hold actions.

Other Changes

  • Add more LG webOS default keys using its commands list.
  • Add play_pause, play, and pause default keys to all platforms using media player actions if integration specific ones were not available.
  • Add separate enter and delete default keys to all platforms that support them.
  • Add dragpad to all platforms as an alternative to the normal touchpad swipe navigation mode.
  • For platforms that do not have default sources, the layout tab default keys list will use two columns like custom actions.
  • Custom action names no longer autofill, as it can cause problems with default key/source autofilling.

Patch Version Changes

  • Fix touchpad double tap actions.
  • CSS tweaks for better user styling.
  • Use --lovelace-background for touchpad and slider backgrounds before --primary-background-color, as a bug in Home Assistant causes the default theme primary background color to be prioritized over the current theme value.
  • Fix horizontal slider swipe detection when used with mouse.

Full Changelog: 4.2.1...4.3.3

4.3.2 - Jellyfin, Unified Remote, LG webOS Keyboard, and Touchpad Drag Actions

29 Dec 08:40
Compare
Choose a tag to compare

Jellyfin, Unified Remote, LG webOS Keyboard, and Touchpad Drag Actions

Changes in 4.3.2

  • CSS tweaks for better user styling.

New Platforms - Jellyfin #165 and Unified Remote #124

This release adds two new default platforms - Jellyfin and Unified Remote!

Jellyfin uses its Home Assistant integration (no keyboard support, although the underlying library used by Home Assistant seems to support it).

Unified Remote uses this custom integration, which requires more advanced setup as described in its README. Once setup you'll be able to control computers running Windows, macOS, or Linux using Unified Remote via Home Assistant and this card. The Unified Remote platform has both keyboard and mouse support (see below)! This custom integration does not provide any entity IDs for your Unified Remote hosts. Instead, you should provide the configured host name or IP address in the configuration UI remote and keyboard fields. Make sure it doesn't autofill with an entity ID! You may have to change it back to the host name/IP address using the configuration code editor.

Expanded Keyboard Support - LG webOS #161 and Unified Remote #124

Keyboard support has been added for LG webOS! You can now send text to LG webOS TVs either seamlessly or in bulk (search not available). I do not own an LG webOS TV, so if you run into issues please let me know! Keyboard support for this platform is untested, and I rely on users to validate behavior on most of the platforms this card supports.

The new platform Unified Remote also has keyboard support! You can now seamlessly or in bulk send text to your personal computers.

New Touchpad Interactions - Drag Mode #124

Touchpads now support a new drag interaction mode! Instead of sending different actions based on the direction you swipe, you can alternatively define a single action that will fire any time movement is detected on the touchpad. Combine this with templates and the internal values deltaX, and deltaY, and you can now send accurate drag movements to a platform. This is especially useful for the new Unified Remote platform, as it gives you the ability to use this card's touchpad as a mousepad for your computers! You can also use it with all existing platforms using the default key dragpad if you want to try a different navigation method, just know that it's sensitive! You can increase the interval between mouse actions in the configuration UI if it's too sensitive for you.

The drag interaction is also available as a multi-touch interaction. Note that enabling drag interactions disables touchpad swipe actions, but not tap, double tap, and hold actions.

Other Changes

  • Add more LG webOS default keys using its commands list.
  • Add play_pause, play, and pause default keys to all platforms using media player actions if integration specific ones were not available.
  • Add separate enter and delete default keys to all platforms that support them.
  • Add dragpad to all platforms as an alternative to the normal touchpad swipe navigation mode.
  • For platforms that do not have default sources, the layout tab default keys list will use two columns like custom actions.
  • Custom action names no longer autofill, as it can cause problems with default key/source autofilling.

Patch Version Changes

  • Fix touchpad double tap actions.
  • CSS tweaks for better user styling.

Full Changelog: 4.2.1...4.3.2

4.3.1 - Jellyfin, Unified Remote, LG webOS Keyboard, and Touchpad Drag Actions

14 Dec 20:03
Compare
Choose a tag to compare

Jellyfin, Unified Remote, LG webOS Keyboard, and Touchpad Drag Actions

Changes in 4.3.1

  • Fix touchpad double tap actions.

New Platforms - Jellyfin #165 and Unified Remote #124

This release adds two new default platforms - Jellyfin and Unified Remote!

Jellyfin uses its Home Assistant integration (no keyboard support, although the underlying library used by Home Assistant seems to support it).

Unified Remote uses this custom integration, which requires more advanced setup as described in its README. Once setup you'll be able to control computers running Windows, macOS, or Linux using Unified Remote via Home Assistant and this card. The Unified Remote platform has both keyboard and mouse support (see below)! This custom integration does not provide any entity IDs for your Unified Remote hosts. Instead, you should provide the configured host name or IP address in the configuration UI remote and keyboard fields. Make sure it doesn't autofill with an entity ID! You may have to change it back to the host name/IP address using the configuration code editor.

Expanded Keyboard Support - LG webOS #161 and Unified Remote #124

Keyboard support has been added for LG webOS! You can now send text to LG webOS TVs either seamlessly or in bulk (search not available). I do not own an LG webOS TV, so if you run into issues please let me know! Keyboard support for this platform is untested, and I rely on users to validate behavior on most of the platforms this card supports.

The new platform Unified Remote also has keyboard support! You can now seamlessly or in bulk send text to your personal computers.

New Touchpad Interactions - Drag Mode #124

Touchpads now support a new drag interaction mode! Instead of sending different actions based on the direction you swipe, you can alternatively define a single action that will fire any time movement is detected on the touchpad. Combine this with templates and the internal values deltaX, and deltaY, and you can now send accurate drag movements to a platform. This is especially useful for the new Unified Remote platform, as it gives you the ability to use this card's touchpad as a mousepad for your computers! You can also use it with all existing platforms using the default key dragpad if you want to try a different navigation method, just know that it's sensitive! You can increase the interval between mouse actions in the configuration UI if it's too sensitive for you.

The drag interaction is also available as a multi-touch interaction. Note that enabling drag interactions disables touchpad swipe actions, but not tap, double tap, and hold actions.

Other Changes

  • Add more LG webOS default keys using its commands list.
  • Add play_pause, play, and pause default keys to all platforms using media player actions if integration specific ones were not available.
  • Add separate enter and delete default keys to all platforms that support them.
  • Add dragpad to all platforms as an alternative to the normal touchpad swipe navigation mode.
  • For platforms that do not have default sources, the layout tab default keys list will use two columns like custom actions.
  • Custom action names no longer autofill, as it can cause problems with default key/source autofilling.

Patch Version Changes

  • Fix touchpad double tap actions.

Full Changelog: 4.2.1...4.3.1

4.3.0 - Jellyfin, Unified Remote, LG webOS Keyboard, and Touchpad Drag Actions

11 Dec 23:05
Compare
Choose a tag to compare

Jellyfin, Unified Remote, LG webOS Keyboard, and Touchpad Drag Actions

New Platforms - Jellyfin #165 and Unified Remote #124

This release adds two new default platforms - Jellyfin and Unified Remote!

Jellyfin uses its Home Assistant integration (no keyboard support, although the underlying library used by Home Assistant seems to support it).

Unified Remote uses this custom integration, which requires more advanced setup as described in its README. Once setup you'll be able to control computers running Windows, macOS, or Linux using Unified Remote via Home Assistant and this card. The Unified Remote platform has both keyboard and mouse support (see below)! This custom integration does not provide any entity IDs for your Unified Remote hosts. Instead, you should provide the configured host name or IP address in the configuration UI remote and keyboard fields. Make sure it doesn't autofill with an entity ID! You may have to change it back to the host name/IP address using the configuration code editor.

Expanded Keyboard Support - LG webOS #161 and Unified Remote #124

Keyboard support has been added for LG webOS! You can now send text to LG webOS TVs either seamlessly or in bulk (search not available). I do not own an LG webOS TV, so if you run into issues please let me know! Keyboard support for this platform is untested, and I rely on users to validate behavior on most of the platforms this card supports.

The new platform Unified Remote also has keyboard support! You can now seamlessly or in bulk send text to your personal computers.

New Touchpad Interactions - Drag Mode #124

Touchpads now support a new drag interaction mode! Instead of sending different actions based on the direction you swipe, you can alternatively define a single action that will fire any time movement is detected on the touchpad. Combine this with templates and the internal values deltaX, and deltaY, and you can now send accurate drag movements to a platform. This is especially useful for the new Unified Remote platform, as it gives you the ability to use this card's touchpad as a mousepad for your computers! You can also use it with all existing platforms using the default key dragpad if you want to try a different navigation method, just know that it's sensitive! You can increase the interval between mouse actions in the configuration UI if it's too sensitive for you.

The drag interaction is also available as a multi-touch interaction. Note that enabling drag interactions disables touchpad swipe actions, but not tap, double tap, and hold actions.

Other Changes

  • Add more LG webOS default keys using its commands list.
  • Add play_pause, play, and pause default keys to all platforms using media player actions if integration specific ones were not available.
  • Add separate enter and delete default keys to all platforms that support them.
  • Add dragpad to all platforms as an alternative to the normal touchpad swipe navigation mode.
  • For platforms that do not have default sources, the layout tab default keys list will use two columns like custom actions.
  • Custom action names no longer autofill, as it can cause problems with default key/source autofilling.

Full Changelog: 4.2.1...4.3.0

4.2.1 - Sony BRAVIA and Custom Actions From File

17 Nov 20:51
Compare
Choose a tag to compare

Sony BRAVIA and Custom Actions From File

Changes in 4.2.1

  • Include the entire card config in sub-element configs via config.card #157.
  • Fix the Android TV max default source to use the old deep link as it now seems to work #77.

New Platform - Sony BRAVIA #141

Thanks to the hard work of @alex4108, this remote card now supports a new default platform, Sony BRAVIA! Sony BRAVIA TVs run Android TV, but use a different API and Home Assistant integration. Because it runs Android TV, the Sony BRAVIA platform has keyboard support via the Home Assistant Android Debug Bridge integration.

Custom Actions From File #157

If you have multiple remote cards that use the same custom actions, you can now place these custom actions in a JSON or YAML file on your Home Assistant server and have the remote cards fetch the custom actions from this file. These actions can be added to your remote layout, appear under custom actions in the layout editor, and will be used to autofill new custom actions that share their name.

Other Changes

  • Added more Samsung TV default sources.
  • Added the Peacock TV default source and icon to several platforms.

Patch Version Changes

  • Include the entire card config in sub-element configs via config.card #157.
  • Fix the Android TV max default source to use the old deep link as it now seems to work #77.

Full Changelog: 4.1.2...4.2.1

4.2.0 - Sony BRAVIA and Custom Actions From File

09 Nov 23:27
Compare
Choose a tag to compare

Sony BRAVIA and Custom Actions From File

New Platform - Sony BRAVIA #141

Thanks to the hard work of @alex4108, this remote card now supports a new default platform, Sony BRAVIA! Sony BRAVIA TVs run Android TV, but use a different API and Home Assistant integration. Because it runs Android TV, the Sony BRAVIA platform has keyboard support via the Home Assistant Android Debug Bridge integration.

Custom Actions From File #157

If you have multiple remote cards that use the same custom actions, you can now place these custom actions in a JSON or YAML file on your Home Assistant server and have the remote cards fetch the custom actions from this file. These actions can be added to your remote layout, appear under custom actions in the layout editor, and will be used to autofill new custom actions that share their name.

Other Changes

  • Added more Samsung TV default sources.
  • Added the Peacock TV default source and icon to several platforms.

Full Changelog: 4.1.2...4.2.0

4.1.3 - Templating Overhaul and A New Action

05 Nov 01:42
Compare
Choose a tag to compare

Templating Overhaul and A New Action

Changes in 4.1.3

  • Fix keyboard dialog force cursor to end only for seamless input (excluding Kodi).
  • Fix keyboard dialog seamless input enter command was not platform specific.

Templating Overhaul

Technical Info Dump

Home Assistant's templating is powered by jinja2, a templating engine for Python. Traditional frontend templates in Home Assistant are sent from the frontend to the backend core, where they are processed and then sent back to the frontend. This entire process can take up to a second or more, which can cause frontend elements to appear incorrect for few seconds on page load or when entities change. If you use templates in card-mod styles on other cards or themes you've probably experienced this.

To eliminate the latency of templates being processed in the backend, I developed ha-nunjucks - an alternate synchronous instantaneous frontend only templating system for Home Assistant. Nunjucks is a templating engine for JavaScript maintained by Mozilla that is heavily inspired by jinja2 and shares the same syntax with very few exceptions. With ha-nunjucks templates can be processed instantaneously before your dashboard renders! But there's a catch - all Home Assistant template extensions had to be reimplemented in ha-nunjucks. When I initially developed ha-nunjucks, I only included a handful of extensions like states and attributes, leading to many questions from users as to why things like datetime functions weren't working.

Parity With Backend Templates

As of ha-nunjucks 1.3.0 I've reimplemented almost all of the template extensions listed on the Home Assistant templating page. This includes datetime extensions, courtesy of ts-py-datetime. All but a few obscure templating extensions have been reimplemented in ha-nunjucks. See the ha-nunjucks documentation for more information on how to use all of the new template extensions. While the syntax is mostly the same, there were some limitations I had to work around which may cause slightly different behavior for some of the extensions.

New Action - Evaluate JS

You can now execute JavaScript as an action using Evaluate JS. This action calls the eval function on a code string you write, and can be used to execute blocks of JavaScript code.

⚠️ Warning ⚠️. Executing JavaScript from a string in browser is considered extremely insecure. While this shouldn't be an issue for Home Assistant, I'm trusting that users are not going to use this in a public facing context where someone can modify custom features to execute arbitrary code.

Other Changes

  • Confirmation failure triggers a value and render update, which helps reset styles on action cancellation.
  • Confirmation haptics now fire when box appears.
  • Added more sources using the HA-Firemote launcher list #127 #144.

Patch Version Changes

  • Add default keys for play, pause, and play_pause for Roku and Kodi.
  • Change the Roku default key info icon to asterisk to match the Roku remote.
  • Add default sources waiputv and wow to Android TV, Apple TV, Fire TV, and LG webOS.
  • Add more default sources to various platforms.
  • Add support for all platforms to actions key and source.
  • Fix configuration UI autofill when clearing fields.
  • Fix more-info default target should be the element entity ID.
  • Fix keyboard dialog force cursor to end only for seamless input (excluding Kodi).
  • Fix keyboard dialog seamless input enter command was not platform specific.

Full Changelog: 4.0.6...4.1.3

4.1.2 - Templating Overhaul and A New Action

23 Oct 23:02
Compare
Choose a tag to compare

Templating Overhaul and A New Action

Changes in 4.1.2

  • Fix more-info default target should be the element entity ID.

Templating Overhaul

Technical Info Dump

Home Assistant's templating is powered by jinja2, a templating engine for Python. Traditional frontend templates in Home Assistant are sent from the frontend to the backend core, where they are processed and then sent back to the frontend. This entire process can take up to a second or more, which can cause frontend elements to appear incorrect for few seconds on page load or when entities change. If you use templates in card-mod styles on other cards or themes you've probably experienced this.

To eliminate the latency of templates being processed in the backend, I developed ha-nunjucks - an alternate synchronous instantaneous frontend only templating system for Home Assistant. Nunjucks is a templating engine for JavaScript maintained by Mozilla that is heavily inspired by jinja2 and shares the same syntax with very few exceptions. With ha-nunjucks templates can be processed instantaneously before your dashboard renders! But there's a catch - all Home Assistant template extensions had to be reimplemented in ha-nunjucks. When I initially developed ha-nunjucks, I only included a handful of extensions like states and attributes, leading to many questions from users as to why things like datetime functions weren't working.

Parity With Backend Templates

As of ha-nunjucks 1.3.0 I've reimplemented almost all of the template extensions listed on the Home Assistant templating page. This includes datetime extensions, courtesy of ts-py-datetime. All but a few obscure templating extensions have been reimplemented in ha-nunjucks. See the ha-nunjucks documentation for more information on how to use all of the new template extensions. While the syntax is mostly the same, there were some limitations I had to work around which may cause slightly different behavior for some of the extensions.

New Action - Evaluate JS

You can now execute JavaScript as an action using Evaluate JS. This action calls the eval function on a code string you write, and can be used to execute blocks of JavaScript code.

⚠️ Warning ⚠️. Executing JavaScript from a string in browser is considered extremely insecure. While this shouldn't be an issue for Home Assistant, I'm trusting that users are not going to use this in a public facing context where someone can modify custom features to execute arbitrary code.

Other Changes

  • Confirmation failure triggers a value and render update, which helps reset styles on action cancellation.
  • Confirmation haptics now fire when box appears.
  • Added more sources using the HA-Firemote launcher list #127 #144.

Patch Version Changes

  • Add default keys for play, pause, and play_pause for Roku and Kodi.
  • Change the Roku default key info icon to asterisk to match the Roku remote.
  • Add default sources waiputv and wow to Android TV, Apple TV, Fire TV, and LG webOS.
  • Add more default sources to various platforms.
  • Add support for all platforms to actions key and source.
  • Fix configuration UI autofill when clearing fields.
  • Fix more-info default target should be the element entity ID.

Full Changelog: 4.0.6...4.1.2

4.1.1 - Templating Overhaul and A New Action

19 Oct 00:08
Compare
Choose a tag to compare

Templating Overhaul and A New Action

Changes in 4.11

  • Add default keys for play, pause, and play_pause for Roku and Kodi.
  • Change the Roku default key info icon to asterisk to match the Roku remote.
  • Add default sources waiputv and wow to Android TV, Apple TV, Fire TV, and LG webOS.
  • Add more default sources to various platforms.
  • Add support for all platforms to actions key and source.
  • Fix configuration UI autofill when clearing fields.

Templating Overhaul

Technical Info Dump

Home Assistant's templating is powered by jinja2, a templating engine for Python. Traditional frontend templates in Home Assistant are sent from the frontend to the backend core, where they are processed and then sent back to the frontend. This entire process can take up to a second or more, which can cause frontend elements to appear incorrect for few seconds on page load or when entities change. If you use templates in card-mod styles on other cards or themes you've probably experienced this.

To eliminate the latency of templates being processed in the backend, I developed ha-nunjucks - an alternate synchronous instantaneous frontend only templating system for Home Assistant. Nunjucks is a templating engine for JavaScript maintained by Mozilla that is heavily inspired by jinja2 and shares the same syntax with very few exceptions. With ha-nunjucks templates can be processed instantaneously before your dashboard renders! But there's a catch - all Home Assistant template extensions had to be reimplemented in ha-nunjucks. When I initially developed ha-nunjucks, I only included a handful of extensions like states and attributes, leading to many questions from users as to why things like datetime functions weren't working.

Parity With Backend Templates

As of ha-nunjucks 1.3.0 I've reimplemented almost all of the template extensions listed on the Home Assistant templating page. This includes datetime extensions, courtesy of ts-py-datetime. All but a few obscure templating extensions have been reimplemented in ha-nunjucks. See the ha-nunjucks documentation for more information on how to use all of the new template extensions. While the syntax is mostly the same, there were some limitations I had to work around which may cause slightly different behavior for some of the extensions.

New Action - Evaluate JS

You can now execute JavaScript as an action using Evaluate JS. This action calls the eval function on a code string you write, and can be used to execute blocks of JavaScript code.

⚠️ Warning ⚠️. Executing JavaScript from a string in browser is considered extremely insecure. While this shouldn't be an issue for Home Assistant, I'm trusting that users are not going to use this in a public facing context where someone can modify custom features to execute arbitrary code.

Other Changes

  • Confirmation failure triggers a value and render update, which helps reset styles on action cancellation.
  • Confirmation haptics now fire when box appears.
  • Added more sources using the HA-Firemote launcher list #127 #144.

Patch Version Changes

  • Add default keys for play, pause, and play_pause for Roku and Kodi.
  • Change the Roku default key info icon to asterisk to match the Roku remote.
  • Add default sources waiputv and wow to Android TV, Apple TV, Fire TV, and LG webOS.
  • Add more default sources to various platforms.
  • Add support for all platforms to actions key and source.
  • Fix configuration UI autofill when clearing fields.

Full Changelog: 4.0.6...4.1.1