Skip to content

[FR] 1-Wire slave output after successful HomeKey auth (Loxone iButton integration) #283

Description

@MadeInHelpup

Use case

My ESP32 HomeKey installation is mounted at a door where WiFi reception is poor. Depending on MQTT or Home Assistant automations for the actual door trigger introduces latency and a failure mode: if the broker is unreachable, the door doesn't open — even though the HomeKey tap was valid.

Loxone is a common building automation system that uses a dedicated 1-Wire Extension for iButton (DS1990A) readers. The 1-Wire bus is wired directly to the controller — no network hop, no broker, no automation rules. Everything that works with a physical iButton key fob works with a virtual one.

Proposed feature

After a successful HomeKey authentication, the ESP32 emulates a DS1990A iButton on a configurable open-drain GPIO pin for a short window (default 3 s). The Loxone 1-Wire Extension polls the bus, detects the virtual iButton, and triggers access — exactly as it would with a physical key fob.

The ROM code is derived deterministically from the HomeKey issuerId via SHA-256, so:

  • No manual mapping table needed
  • One Apple ID (iPhone + Watch + iPad) always maps to the same ROM
  • The Loxone assignment survives firmware updates

Optionally, ROM derivation can be switched to endpointId (per device instead of per Apple ID), giving per-device access granularity — useful if different family members should have different access levels in Loxone.

Key design points

  • Physical iButtons and HomeKey coexist — the virtual iButton appears on the same 1-Wire bus alongside any existing physical key fobs. No migration required.
  • Access control stays in Loxone — schedules, time windows, user logs, and access logic all remain in the Loxone controller. HomeKey acts purely as a protocol converter: NFC tap → iButton presence. No access decisions happen on the ESP32.
  • No dependency on MQTT or Home Assistant — the integration works standalone. If the network is down, HomeKey auth + door trigger still work.

Why not MQTT?

MQTT/HA 1-Wire
Network dependency Yes No
Latency 100–500 ms <10 ms
Broker required Yes No
Works without WiFi No Yes (auth is local)
Existing Loxone setup Parallel system Native integration
Access logs & schedules In HA/broker In Loxone (unchanged)

Implementation

Working implementation exists in a fork: https://github.com/MadeInHelpup/HomeKey-ESP32-1wire-lox

  • LoxoneOneWireManager — FreeRTOS task, GPIO polling, handles reset/presence/ReadROM/SearchROM
  • Disabled by default, enabled via Kconfig + Web UI
  • No new library dependencies — pure ESP-IDF GPIO
  • Loxone 1-Wire Extension documentation: https://www.loxone.com/enen/kb/1-wire-extension/

Happy to submit a PR if there's interest. The feature is fully opt-in and adds no overhead when disabled.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions