37
submitted 1 day ago* (last edited 1 day ago) by neon@sh.itjust.works to c/homeassistant@lemmy.world

Background: I used Tailscale for remote access to HA. It mostly worked well, but in the driveway the phone is half on cellular, half on wifi. The HA app keeps an old connection and hangs most of the time when I just quickly want to open the garage door. Kill, reopen, wait. That was annoying enough that I wrote something that fixes that over the weekend.

ha-iroh is a small Android app plus a HACS integration, built on iroh (p2p QUIC). Every phone has a keypair with HA, traffic is end-to-end encrypted, NAT hole punching is done automatically where possible, otherwise a relay is used that only sees ciphertext. Setup (one-time, first connection) is done by scanning a QR-Code.

There is no persistent tunnel. The app dials HA when you tap something and disconnects afterwards, so network switches don't matter and my in-front-of-the-garage-door wait is gone.

Features

  • Device Controls in the Android power menu / quick settings: lights, switches, fans, climate, covers, locks, scenes, scripts, buttons, with live state
  • Assist via quick settings tile or launcher shortcut (text only for now)
  • the normal HA dashboard in a WebView, login once, any auth provider incl. MFA
  • several HA instances in one app
  • pairing by QR code from the HA config flow. Delete the device in HA and the phone is out

Not included, on purpose Sensors, location, notifications, widgets, Wear OS, iOS. I still use the official app for all of that. ha-iroh only covers quick control when I'm not home.

Status

  • v0.2.x. I've not received any major bug reports yet, but DO expect rough edges. For me at least it currently works reliably enough.
  • Android 12+, arm64 APK via GitHub Releases or Obtainium. Not on Play.
  • HA 2026.3+, HACS custom repo. The integration starts a small Rust bridge as a subprocess, x86_64 and aarch64 bundled, so HA OS / Container / Supervised work.
  • Optional: forward one UDP port and iroh connects directly always instead of sometimes via relay. Not required.
  • Two HA settings to check, both in the README: ip_ban_enabled (the bridge connects from localhost, so wrong passwords from one phone can ban 127.0.0.1, i.e. all phones) and never put loopback into trusted_networks.

Disclosure

Large parts of this were built with an LLM. If that's a dealbreaker for you, this project is not for you.

Links

Bug reports welcome, especially from people behind CGNAT or on Fritz!Box / MikroTik.

top 24 comments
sorted by: hot top new old
[-] peregus@lemmy.world 2 points 15 hours ago

Cool! I'll try this. bout the garage door, I'd like to tell you how I do it: a car tracker (Teltonika FMB120 for about 45€), a small push button under the steering wheel, when I push it, it does a curl request to my Node Red instance that, based on the car location, opens the gate of my home, or office or parents. Bonus: the FMB120 can connect to the CAN bus and you can get some telemetry and you can also always locate your car (I use Traccar). It does need a data SIM card, but with 1NCE, you can get one that lasts 10 years and it only costs 10€ (not per month, not per year, for the whole 10 years.)

[-] keisatsu@infosec.pub 10 points 1 day ago

Although LLM-assisted projects are no bueno for me, I am upvoting for your transparency 👍 best of luck

[-] QuantumEraser@fedia.io 11 points 1 day ago

A cool project! Sure hope it's not AI slop!

em dashes in code comments

sigh

[-] 4am@lemmy.zip 3 points 23 hours ago

I mean, listen.

I am also against the slop machine. However this is the HA community and if you want to talk to other smart home enthusiasts without bumping into any AI glazers, you’re gonna have a bad time.

[-] treadful@lemmy.zip 1 points 4 hours ago

This is a security-important project though.

[-] Wxfisch@lemmy.world 8 points 1 day ago

Just to put this out there, a Nabu Casa sub directly supports the development of HA. For me the remote connectivity is just a bonus (that I honestly don’t need since I could easily put it through a cloudflared tunnel or set it up through NGINX proxy manager.

Not that this isn’t cool, having more ways to use HA is always great. Personally I expose my garage doors as Apple Home devices through HA and so get buttons on CarPlay that generally work well (as long as I have any signal which isn’t always the case in the driveway).

[-] claude_flammang@dju.social 2 points 14 hours ago

@Wxfisch
And the offsite backup.

[-] neon@sh.itjust.works 4 points 1 day ago

100% agree, nabu casa is worth it for the support alone, not trying to replace that! this is for the "i dont want HA reachable from the internet, period" crowd and me. the android power menu is my version of the carplay button. and my initial problem wasn't no signal, rather the opposite: coming home and my phone connecting to wifi outside the garage - and that messing up ha + tailscale's connection.

[-] mnemonicmonkeys@sh.itjust.works 6 points 1 day ago* (last edited 22 hours ago)

I get this is the HA community, but how is fumbling with a smartphone in your car more convenient than dedicated button built/clipped to your car's sun visor?

[-] wreckedcarzz@lemmy.world 0 points 23 hours ago* (last edited 22 hours ago)

Physical button: 1 action, no logic

Software button: infinite actions, complete logic over everything in HA

It's like 'why should I use HA, the light switch is right there' yes technically but you're missing the whole point. Why should you go on trips and see the sights of other places, Google Street View is right there.

E: real world example, though my network reaches far beyond my driveway so no button required:

Automation

alias: Midnight - Travel, Arriving Home
description: ''
triggers:
  - trigger: zone
    entity_id: person.midnight
    zone: zone.home
    event: enter
conditions:
  - condition: state
    entity_id: input_boolean.midnight_awake
    state:
      - 'on'
  - condition: time
    after: '10:00:00'
actions:
  - if:
      - condition: not
        conditions:
          - alias: Connected to home wifi network
            condition: state
            entity_id: sensor.midnights_phone_wi_fi_connection
            state:
              - input_text.home_network
    then:
      - wait_for_trigger:
          - trigger: state
            entity_id:
              - sensor.midnights_phone_wi_fi_connection
            to:
              - input_text.home_network
        timeout:
          hours: 0
          minutes: 1
          seconds: 0
          milliseconds: 0
        continue_on_timeout: true
  - if:
      - condition: state
        entity_id: light.midnight_s_bedroom
        state:
          - 'off'
    then:
      - action: light.turn_on
        metadata: {}
        target:
          entity_id: light.midnight_s_bedroom
        data:
          brightness_pct: 35
      - action: input_boolean.turn_on
        target:
          entity_id: input_boolean.midnight_s_light_override
        data: {}
      - if:
          - condition: numeric_state
            entity_id: light.midnight_s_bedroom
            attribute: brightness
            below: 35
        then:
          - action: light.turn_on
            metadata: {}
            target:
              entity_id: light.midnight_s_bedroom
            data:
              brightness_pct: 35
  - delay:
      hours: 0
      minutes: 0
      seconds: 15
      milliseconds: 0
    enabled: true
  - action: automation.trigger
    metadata: {}
    target:
      entity_id:
        - automation.battery_low
        - automation.midnight_s_bedroom_midnight_s_thermostat_outside_is_cooler
        - automation.midnight_s_bedroom_midnight_s_thermostat_outside_is_warmer
    data:
      skip_condition: false
  - action: tts.speak
    metadata: {}
    target:
      entity_id: tts.piper
    data:
      cache: false
      media_player_entity_id: media_player.midnight_s_bedroom_home_assistant_voice_media_player
      message: Welcome home, Midnight!
mode: single

[-] WhyJiffie@sh.itjust.works 1 points 3 hours ago

the physical button on the visor is much easier to press than unlocking your phone, finding the app, finding the right page, clicking the button, and checking if you pressed at the right place because it's not tactile. you press the normal button out of reflex and you immediately know it worked.

if you want to automate by that, do a trigger by door opening and time of day or whatever

[-] mnemonicmonkeys@sh.itjust.works 0 points 22 hours ago

Why should you go on trips and see the sights of other places, Google Street View is right there.

This is a terrible argument because it's the exact opposite of what you're trying to push. OP's spending all this time trying to optimize a garage door opener and it's not working, while they could have just gotten a basic button set up in 5 minutes and be done with it, giving them more time to do something they actually enjoy.

Home automation is supposed to save you time and make your life easier. Spending a bunch of time programming your house to greet you so you can cosplay as Tony Stark isn't that.

Maybe you don't care and you find enjoyment in the tinkering on it's own. That's valid, but don't get all defensive when other people don't value the same things.

OP is getting frustrated about an issue they're having with home automation that's easily bypassed with less tech. If they want to keep tinkering that's their right. But maybe they were considering cutting their losses already and wanted validation. Maybe they got caught up with automating everything that they never considered not automating everything. I don't know, I'm not psychic. But they can step back and make a conscious decision as to whether they keep going

[-] wreckedcarzz@lemmy.world -1 points 20 hours ago

...it's supposed to be a bad (sarcastic) argument, for the reader to see that it is bad and reflect on the rest of the argument, followed by a light-bulb moment.

crickets

But I digress. I stopped reading after you called me defensive - you asked a question, I gave you an answer. That you don't like the answer is your problem. Lead a horse to water but can't make it drink...

[-] mnemonicmonkeys@sh.itjust.works 2 points 19 hours ago* (last edited 19 hours ago)

...it's supposed to be a bad (sarcastic) argument

Sure it is. It's totally not a Schrödinger's Asshole /s

Also, I asked OP a question, not you.

[-] devaly@ani.social 6 points 1 day ago

When you have no internet, how does it work then? As far as I understood, if you have internet you can use nobu casa or tailscale.

[-] neon@sh.itjust.works -2 points 1 day ago

no internet = no remote access, same as everything else. on your home wifi it talks to HA directly, no internet needed. the difference to tailscale/nabu casa isnt "works offline", its no port forwarding, no vpn running, no cloud in the middle

[-] devaly@ani.social 4 points 1 day ago

Nobu casa is not like that either. I dont get the appeal here

[-] muusemuuse@sh.itjust.works 4 points 1 day ago* (last edited 1 day ago)

Automation trigger: I go off my home WiFi SSID

Action: activate WireGuard vpn to my home.

Trigger: I join home WiFi

Action: disconnect WireGuard VPN

This solved my garage problems without an app.

[-] neon@sh.itjust.works 0 points 1 day ago

nice! tried that too. does yours survive the handover? mine broke exactly there, phone grabs wifi at the gate, vpn drops, app stuck loading

[-] muusemuuse@sh.itjust.works 1 points 1 day ago

It depends. If it hands over at just the right money I have to drag down the screen to make it refresh otherwise it’s fine.

It doesn’t affect me enough to prioritize fixing since I use CarPlay controls to control the garage door so it’s relating a request to the app rather than taking an input to a UI with stale expectations. I suspect an Android shortcut would respond the same way.

[-] tempest@lemmy.ca 1 points 1 day ago

If you've already got a connection in your garage for your garage door opener, why not simply setup an AP in there as well so as soon as you hit your driveway you connect to the wireless?

I get wanting off site access, but consistent local access would be my main concern.

[-] clay_pidgin@sh.itjust.works 1 points 1 day ago

That's very cool, thank you for sharing.

[-] neon@sh.itjust.works 1 points 1 day ago

thanks! :-)

this post was submitted on 11 Oct 2026
37 points (79.4% liked)

homeassistant

20846 readers
51 users here now

Home Assistant is open source home automation that puts local control and privacy first.
Powered by a worldwide community of tinkerers and DIY enthusiasts.

Home Assistant can be self-installed on ProxMox, Raspberry Pi, or even purchased pre-installed: Home Assistant: Installation

Discussion of Home-Assistant adjacent topics is absolutely fine, within reason.
If you're not sure, DM @GreatAlbatross@feddit.uk

founded 3 years ago
MODERATORS