explaingit

itskenny0/rabbit-r1-ha

11KotlinAudience · developerComplexity · 3/5ActiveSetup · moderate

TLDR

Native Android client for Home Assistant, built for the Rabbit R1's scroll wheel but also working on Android 11+ phones and tablets.

Mindmap

mindmap
  root((Rabbit-R1-HA))
    Inputs
      Home Assistant server
      Scroll wheel
      Touch input
    Outputs
      Native dashboards
      Entity controls
      Service calls
    Use Cases
      Smart home remote
      Quick entity control
      Energy and history view
    Tech Stack
      Kotlin
      Jetpack Compose
      Android
      Home Assistant

Things people build with this

USE CASE 1

Control Home Assistant entities from the Rabbit R1 scroll wheel

USE CASE 2

Replace the web-wrapped Companion app with a native dashboard

USE CASE 3

Bind an Android quick-settings tile to a single Home Assistant entity

USE CASE 4

Evaluate Jinja templates and call services from a mobile power-tools view

Tech stack

KotlinJetpack ComposeAndroidHome Assistant

Getting it running

Difficulty · moderate Time to first run · 1h+

Needs Android 11 or newer plus a reachable Home Assistant URL and long-lived token.

In plain English

R1HA is a native Android app for controlling a Home Assistant setup, the open source software many people use to run their smart home. It was originally built for the Rabbit R1, a small handheld device with a physical scroll wheel, and works equally well on Android 11 or newer phones and tablets. On the R1 the scroll wheel adjusts any numeric thing in Home Assistant, such as light brightness, fan speed, cover position, or media volume. On a touch screen the same controls respond to drag and tap. The official Home Assistant Companion app is mostly a web browser wrapped around the existing Home Assistant interface. R1HA takes a different approach: it draws most screens natively using Jetpack Compose, and only falls back to the web view for parts that do not fit, such as the automation editor or HACS cards. The trade-off is that R1HA needs Android 11 or newer, while the Companion app goes back to Android 8. The app is organised into three areas. Awareness screens show at-a-glance information: a TODAY dashboard with weather, time of day, who is home, current media, power draw, and battery alerts; a quick search across every entity; live camera snapshots; weather details; calendar events; recent logbook activity; persistent notifications; rooms and zones; energy production and consumption; and full history charts for any entity. Control screens are for taking action. A card stack with swipeable tabs holds favourite entities. There is a launcher for scenes and scripts, a list of automations with run and toggle buttons, helpers like input booleans and timers, a master OFF for all lights or switches, an Assist conversation entry, and an Android quick-settings tile bound to a single entity. Power tools cover the long tail: a Jinja template evaluator, a service caller, a service browser, a system health view, and the Lovelace web view as a fallback.

Copy-paste prompts

Prompt 1
Build and sideload R1HA onto my Rabbit R1 and connect it to my local Home Assistant instance
Prompt 2
Add a new favourite entity card to R1HA's swipeable control stack for my office lights
Prompt 3
Show me how R1HA wires the scroll wheel into numeric Home Assistant entities like brightness and volume
Prompt 4
Extend R1HA with a custom Jetpack Compose screen for my solar production data
Open on GitHub → Explain another repo

Generated 2026-05-22 · Model: sonnet-4-6 · Verify against the repo before relying on details.