Saturday, January 17, 2026

Alexa Controls Domoticz via Philips Hue Emulator

If you run Domoticz and have an Amazon Echo, this is one of the simplest ways to get voice control while keeping device commands on your local network — no cloud subscriptions, no Alexa skills, no Philips account.

Last updated: January 18, 2026

Note: Alexa still uses the internet for speech recognition, but device control stays on your LAN.

Domoticz Hue Emulator architecture: Echo -> Hue Emulator -> Domoticz -> devices (local network)

Architecture overview: voice command → Echo discovers a Hue-bridge emulator → commands are translated to Domoticz API calls → devices respond (locally).

What you get

  • No Philips Hue cloud — emulates a Hue Bridge locally
  • No third-party Alexa skills — Echo's native Hue support handles discovery
  • No subscriptions — runs on any Raspberry Pi or Linux box you already own
  • Local device control — commands stay on your LAN (Echo → Emulator → Domoticz)

The problem with typical Alexa integrations

A lot of smart-home voice control flows through vendor clouds and Alexa skills: you install a skill, link accounts, and every action takes a detour through the internet. That can add latency, create privacy concerns, and introduce dependencies on services that can change, break, or become paid.

If you already run Domoticz, the question is natural: why can't Alexa talk to your system directly? The answer is: it can — if you present your devices in a way Alexa already understands.

What is Domoticz Hue Emulator?

Domoticz Hue Emulator is a lightweight Python service that emulates a Philips Hue Bridge on your local network. Amazon Echo devices have native support for Hue bridges, which means Alexa can discover and control devices without an Alexa skill.

The emulator makes Alexa believe it's talking to a Hue bridge, but behind the scenes it translates those requests into Domoticz API calls for your switches, dimmers, RGB lights, and scenes/groups.

How it fits together

Voice Command
   →
Amazon Echo
   →  (local Hue protocol)
Hue Emulator (Python)
   →
Domoticz API
   →
Switches / Dimmers / RGB Lights / Scenes

Features at a glance

  • On/Off control for switches
  • Dimming (brightness control) for dimmers and RGB lights
  • RGB color control (e.g., "set lamp to red", "warm white")
  • Scenes/Groups support for controlling multiple devices at once
  • Easy YAML configuration
  • Runs as a systemd service (auto-start)

Voice command examples

Basic on/off

  • "Alexa, turn on Living Room Light"
  • "Alexa, turn off Kitchen Light"

Dimming (dimmer/rgb types)

  • "Alexa, set Bedroom Light to 50 percent"
  • "Alexa, dim Living Room Light"
  • "Alexa, brighten Bedroom Light"

Colors (rgb type only)

  • "Alexa, set Lamp to red"
  • "Alexa, set Lamp to blue"
  • "Alexa, set Lamp to warm white"

Scenes and groups

  • "Alexa, turn on All Lights"
  • "Alexa, turn off All Lights" (groups only)

Requirements

  • Raspberry Pi or any Linux server on the same network as your Echo
  • Domoticz running with devices configured
  • Python 3.7+
  • Port 80 available (required by the Hue Bridge protocol)

Tip: if port 80 is in use by Apache, Nginx, or another service, you must stop or reconfigure it for the emulator to work.

Installation & setup

1) Clone the repository

git clone https://github.com/hackboxguy/domoticz-hue-emulator.git
cd domoticz-hue-emulator

2) Install (or test with a dry run)

# Test installation (dry run)
sudo ./install.sh --domoticz-user=YOUR_USER --domoticz-pw=YOUR_PW --dryrun

# Install
sudo ./install.sh --domoticz-user=YOUR_USER --domoticz-pw=YOUR_PW

3) Configure your devices in alexa-devices.yaml

Add your Domoticz devices by name, IDX, and type (switch, dimmer, rgb). You can find IDX values in Domoticz under Setup > Devices.

domoticz:
  url: "http://localhost:8080"
  username: "admin"
  password: "yourpassword"
devices:
  - name: "Living Room Light"
    idx: 10
    type: dimmer

  - name: "RGB Lamp"
    idx: 30
    type: rgb

4) Restart the service

sudo systemctl restart domoticz-hue-emulator

5) Discover devices

Now the fun part:

"Alexa, discover devices"

Within seconds, your Domoticz devices should appear inside Alexa as controllable lights.

Scenes vs groups: In Domoticz, Scenes only support ON (activate), while Groups support ON and OFF. If you need voice control to turn devices both on and off, create a Domoticz group.

Scenes, groups, and routines

The emulator supports Domoticz scenes/groups so you can control multiple devices with a single command. It also pairs nicely with Alexa Routines for custom phrases like "Alexa, let's start the party" — mapped to a Domoticz scene or group.

Troubleshooting

Alexa doesn't discover devices

  • Confirm the service is running: sudo systemctl status domoticz-hue-emulator
  • Verify port 80 is available: sudo ss -tlnp | grep :80
  • Check logs for SSDP activity: sudo journalctl -u domoticz-hue-emulator -f

Device shows "not responding"

  • Verify Domoticz is reachable: curl http://localhost:8080
  • Confirm the device IDX is correct in alexa-devices.yaml
  • Review logs for API errors: sudo journalctl -u domoticz-hue-emulator -f

Port 80 already in use

Stop or reconfigure the conflicting service (often Apache, Nginx, or another bridge).

How it works (under the hood)

  1. SSDP discovery: the emulator answers Alexa's UPnP/SSDP discovery requests (UDP 1900), announcing itself as a Hue Bridge.
  2. Hue API emulation: Alexa reads Hue-compatible JSON describing your Domoticz devices as "lights".
  3. Command translation: Alexa commands are translated into Domoticz API calls (on/off, brightness, color).
  4. Local device control: commands stay on your LAN (Echo → Emulator → Domoticz). Alexa still uses the internet for speech recognition.

No comments: