{"adoption": {"forks": 100, "observed_at": "2026-08-28T04:03:20.452194+00:00", "stars": 1040}, "canonical_url": "https://ross.abutalabs.com/products/ha-firemote", "card": {"archived": false, "artifact_type": "plugin", "description": "Apple TV, Amazon Fire TV, Chromecast, Homatics, NVIDIA Shield, onn., Roku, Xiaomi Mi, and Android TV remote control card for Home Assistant", "domain": ["self-hosted", "media"], "enriched": true, "function": ["ui-components", "developer-tools"], "health_score": 78, "homepage": null, "language": null, "license": "GPL-3.0", "license_family": "copyleft", "maturity": "active", "member_repos": ["PRProd/HA-Firemote"], "name": "PRProd/HA-Firemote", "platform": ["self-hosted"], "pushed_at": "2026-03-08T06:20:31+00:00", "repo": "PRProd/HA-Firemote", "stars": 1040, "tags": ["home-assistant", "hacs", "lovelace-card", "remote-control", "apple-tv", "fire-tv", "roku", "android-tv", "chromecast", "nvidia-shield", "home-automation", "web-server"], "topics": ["amazon-fire", "home-assistant", "home-automation", "android", "nvidia", "nvidia-shield", "shield", "xiaomi", "xiaomi-mi", "android-tv", "android-debug-bridge", "chromecast", "apple-tv", "roku", "roku-tv", "onn", "remote-control", "amazon-fire-tv", "google-tv", "homatics"], "urls": [], "use_cases": ["control my fire tv from home assistant dashboard", "add an apple tv remote card to lovelace", "remote control roku tv in home assistant", "send adb commands to android tv from home assistant", "nvidia shield remote card for home assistant", "replace physical remotes with home assistant dashboard buttons"], "what_it_is": "HA-Firemote is a Home Assistant custom Lovelace card that renders on-screen remote controls for streaming devices like Apple TV, Amazon Fire TV, Roku, Chromecast, NVIDIA Shield, Xiaomi Mi, onn., and Homatics Android TV boxes. It is distributed via HACS and lets users control their media devices directly from Home Assistant dashboards.", "when_to_avoid": ["you don't use Home Assistant or Lovelace dashboards", "your streaming device model is not among the supported brands", "you need a standalone mobile remote app rather than a dashboard card"], "when_to_choose": ["you use Home Assistant and want a visual remote for supported streaming devices", "you want device-styled remote cards matching Apple TV, Fire TV, Roku, and Android TV hardware", "you install custom cards via HACS and want an actively maintained option"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/ha-firemote", "repo": "PRProd/HA-Firemote", "role": "main", "score": 70}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:03:20.452194+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:03:07.418139+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "57f2a97e0a0c9252617845e043c09e57d98383411da010b5561a4180d85aaab7", "fetched_at": "2026-08-28T04:03:20.452194+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PRProd/HA-Firemote"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:03:20.452194+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:03:07.418139+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "57f2a97e0a0c9252617845e043c09e57d98383411da010b5561a4180d85aaab7", "fetched_at": "2026-08-28T04:03:20.452194+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PRProd/HA-Firemote"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:03:07.418139+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "57f2a97e0a0c9252617845e043c09e57d98383411da010b5561a4180d85aaab7", "fetched_at": "2026-08-28T04:03:20.452194+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PRProd/HA-Firemote"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:03:20.452194+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:03:20.452194+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:03:20.452194+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:03:07.418139+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "57f2a97e0a0c9252617845e043c09e57d98383411da010b5561a4180d85aaab7", "fetched_at": "2026-08-28T04:03:20.452194+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PRProd/HA-Firemote"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:03:20.452194+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:03:20.452194+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:03:07.418139+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "57f2a97e0a0c9252617845e043c09e57d98383411da010b5561a4180d85aaab7", "fetched_at": "2026-08-28T04:03:20.452194+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PRProd/HA-Firemote"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:03:20.452194+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:03:20.452194+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:03:20.452194+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:03:07.418139+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "57f2a97e0a0c9252617845e043c09e57d98383411da010b5561a4180d85aaab7", "fetched_at": "2026-08-28T04:03:20.452194+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PRProd/HA-Firemote"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:03:20.452194+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:03:20.452194+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:03:07.418139+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "57f2a97e0a0c9252617845e043c09e57d98383411da010b5561a4180d85aaab7", "fetched_at": "2026-08-28T04:03:20.452194+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PRProd/HA-Firemote"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:03:07.418139+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "57f2a97e0a0c9252617845e043c09e57d98383411da010b5561a4180d85aaab7", "fetched_at": "2026-08-28T04:03:20.452194+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PRProd/HA-Firemote"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:03:07.418139+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "57f2a97e0a0c9252617845e043c09e57d98383411da010b5561a4180d85aaab7", "fetched_at": "2026-08-28T04:03:20.452194+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PRProd/HA-Firemote"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:03:07.418139+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "57f2a97e0a0c9252617845e043c09e57d98383411da010b5561a4180d85aaab7", "fetched_at": "2026-08-28T04:03:20.452194+00:00", "kind": "readme", "missing": false, "url": "https://github.com/PRProd/HA-Firemote"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 71, "longevity": 100, "rhythm": 53}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 1450, "days_push": 178, "days_rel": 315, "gap_med": 8, "n_releases_24m": 14}, "score": 70, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}