HUE Bridge Emulator: Bifrost-HASS: Expose Home Assistant lights/switches to the Hue app

Hi all,

I built a Docker-first fork of Bifrost focused on Home Assistant users who want local Hue Bridge emulation, with Home Assistant as backend.

What it does

  • Exposes HA light and switch entities to the Hue app
  • Optional binary_sensor mapping (motion/contact)
  • Home Assistant area → Hue room sync
  • Web UI for configuration (no manual YAML editing needed in normal use)
  • Runtime HA URL/token config from the UI
  • Bridge reset / link-button actions from UI
  • Improved persistence of room/device preferences across restarts
  • Switch mode control (light vs plug)
  • Light icon/archetype selection in UI

Quick start (Docker Compose)

Replace the LAN IPs with your own free/static address values.

services: bifrost-hass: image: ghcr.io/joeblack2k/bifrost-hass-ha-bridge:latest container_name: bifrost-hass restart: unless-stopped env_file: - ./bifrost-hass.env volumes: - ./config.yaml:/app/config.yaml:ro - ./hass-ui.yaml:/app/hass-ui.yaml - ./data:/app/data networks: lan_macvlan: ipv4_address: 192.168.2.6 networks: lan_macvlan: external: true name: macvlan_network 

config.yaml example:

bifrost: state_file: "data/state.yaml" cert_file: "data/cert.pem" hass_ui_file: "hass-ui.yaml" hass_runtime_file: "hass-runtime.yaml" bridge: name: Bifrost mac: 02:42:c0:a8:02:06 ipaddress: 192.168.2.6 netmask: 255.255.255.0 gateway: 192.168.2.1 timezone: Europe/Amsterdam hass: homeassistant: url: http://192.168.2.5:8123 token_env: HASS_TOKEN 

bifrost-hass.env:

HASS_TOKEN=your_long_lived_access_token_here 

Then start:

docker compose up -d 

Open UI:

http://192.168.2.6/bifrost/ui

Pairing in Hue app

  1. Add bridge in Hue app
  2. Use “press bridge button” in web UI (or physical-like link action)
  3. Select which entities should be added to Hue
  4. Assign rooms and switch mode (plug or light) as desired

Notes

  • This is local/LAN focused
  • “Cloud-like” behavior is optional and intended for compatibility testing
  • Group behavior in Hue is app/bridge logic dependent; plug mode helps avoid undesired light-group actions

Credits

Huge thanks to the original Bifrost project by chrivers:

https://github.com/chrivers/bifrost

My fork/work:

https://github.com/joeblack2k/bifrost-hass-ha-bridge