Home automation by iotemi

Your home, with a brain of its own.

EZHome runs on a hub the size of a picture frame, with sensor nodes that cost about as much as a sandwich. It works on its own at home, with no cloud account. When you're away, the relay connects your phone to it.

  • 1 Main Brain
  • Every node is also a relay
  • 0 cloud accounts needed at home

How it works

Four pieces. One home.

Each piece does one job. Click a piece to see what it does and how it connects to the others.

The Main Brain

A touchscreen hub with an ESP32-P4 processor and an ESP32-C6 radio. It keeps track of every device in your home, runs your automations, talks to your Philips Hue lights, and serves the iotemi:home web app on your network.

  • Knows every node, sensor and switch, and remembers names, rooms and groups
  • Runs your rules locally, so they keep working when the internet is down
  • Controls Philips Hue lights through the bridge's local API
  • One documented REST API and a live event stream, which every client uses

Serial EZH·xxxxxxxxxxxx, based on its factory MAC address

Sensor nodes

Small ESP32-C6 or ESP32-S3 boards that you connect to sensors and switches: temperature, doors, buttons, LEDs, fans, relays. Each node joins a Bluetooth mesh and reports to the Main Brain.

  • Every node is a relay. A node out of the Brain's range passes its messages through its neighbours.
  • Describe a node in a short YAML file. The Brain needs no code for new device types.
  • Add nodes while the system is running: power one on and tap Add in the app.
  • Hold BOOT for 5 seconds and the node leaves the mesh by itself.

Serial EZN·xxxxxxxxxxxx, one per node

The app

The EZHome app for Android shows your home as room cards. iOS is on the way. Tap a room to control it, or drag the cards into your own order. Values update live while the app is open.

  • Home: room cards with your lights, switches and sensors
  • Devices: view by node, by room or by group
  • Automations: build "when this, then that" rules
  • Settings: time zone, theme, Hue pairing, rooms, groups, remote access

Pairs with your Main Brain once. After that it sends a token with every request.

The relay

When you leave home, your phone can no longer reach the Main Brain on your Wi-Fi. The Brain keeps an outbound connection open to the EZHome relay, and your phone reaches the Brain through it, from anywhere.

  • No port forwarding and no router setup, because the Brain dials out
  • The relay only passes messages along. Your Brain checks every token, as it does at home.
  • Both connections, phone to relay and relay to Brain, are encrypted with TLS
  • Each Brain is pinned by its serial number and secret key, so nobody else can pose as it

Your phone's remote address: /h/EZH…

Try it

Play with a (pretend) home.

Use the phone to switch things on. Click the garage door to open it, or turn up the heat in the kitchen. Then leave home and do the same again. Each dot shows a message travelling between the phone, the Brain and the nodes.

the internet outbound tunnel: the Brain dials out Relay iotemi.com Living room Kitchen Bedroom Garage click to open out of range fan 22 °C Hue bridge kitchen node bedroom node garage node Main Brain you
  • Home Wi-Fi
  • Bluetooth mesh
  • Internet, through the relay
EZHome Home Wi-Fi

Living room

Floor lamp Philips Hue
Brightness

Kitchen

Temperature22.0 °C
Ceiling fan
LED color

Bedroom

Ceiling light

Garage

DoorClosed
Light

Automation armed

When Kitchen temperature > 28 °C
then Ceiling fan → on, LED color → red

Activity

    The mesh

    Every node makes the network stronger.

    Wi-Fi gets weaker the further a device is from the router. EZHome nodes use a Bluetooth mesh instead, and each node passes on its neighbours' messages. A node at the far end of the garden reaches the Main Brain through the node in the shed, which reaches it through the one in the kitchen.

    Adding a node also extends the network. You don't need range extenders or a mesh router, and your Wi-Fi password stays off the nodes.

    ≤ 96 Bper message, so it crosses the mesh quickly
    150 mschanges are batched, then sent
    5 minheartbeat, so the Brain knows a node is still there

    Sensor nodes

    Describe it. Flash it. It shows up.

    A sensor node is a few lines of YAML. The node tells the Main Brain what it has, so the Brain doesn't need code for each kind of device. If you edit the file and reflash the node, the Brain reads the new list by itself.

    KitchenEZN·3C84 27A1 90F2

      Appears in the app under Devices waiting to be added. Tap Add and it's in.

      Away from home

      Your home goes with you.

      At home, the app talks to the Main Brain directly. When you leave, it switches to the relay, and the same buttons keep working.

      📱Your phoneon 5G, at the office, anywhere
      🛰️EZHome relaypasses messages along and makes no decisions
      🧠Main Brainbehind your home router, checks every token

      Nothing to open up

      The Main Brain connects out to the relay, the way your browser connects to a website. Your router needs no forwarded ports, so nothing in your home is open to the internet.

      Your Brain decides who gets in

      Each request from your phone goes through the tunnel and is checked by your Main Brain, just as it would be at home. The relay never decides who can use your hub.

      Nobody can pretend to be your hub

      The first time your Main Brain connects, the relay records its serial number and key. From then on, only that Brain can answer for that serial.

      What's inside

      Small hardware, a lot of features.

      ⚡

      Local first

      Lights, sensors and rules all run inside your home. If the internet goes down, your home keeps working.

      🧩

      Rules that fire once

      "When the temperature goes over 28 °C, turn on the fan and make the LED red." A rule runs up to four actions in order. It fires once when its condition becomes true and resets when the condition clears.

      🏠

      Rooms & groups

      Every light, switch and sensor goes in one room and in as many groups as you like. These settings stay put after restarts, and after you re-add a node.

      💡

      Philips Hue built in

      Pair your Hue bridge from the app. Your Hue lights then appear next to everything else and work in your rules.

      🔌

      Add devices while it runs

      Power on a new node and it appears in the app under waiting to be added. You don't need to restart or re-pair anything.

      🔐

      Paired clients only

      Every phone and browser pairs with your Main Brain and sends a token with each request. You add new devices with a pairing code.

      🕰️

      Keeps good time

      The Brain sets its clock from internet time servers and handles your time zone and daylight saving.

      🛠️

      Open API

      The app and web app use a documented REST API and a live WebSocket event stream. You can use them for your own scripts and dashboards too.

      💸

      Low-cost hardware

      Built on ESP32 microcontrollers that cost a few dollars each, so you can put a node in every room.

      Where we are

      Built in the open, piece by piece.

      1. Main Brain firmwareDevice registry, mesh, rules, Hue, rooms & groups, REST API, iotemi:home web app
      2. Sensor nodesESP32-C6 and ESP32-S3, configured in YAML, with serial numbers
      3. Android appRoom cards, devices, automations, settings, live updates
      4. RelayRemote access through iotemi.com
      5. iOS appComing next
      6. Touchscreen interface on the Main BrainControl your home from the Brain itself
      EZHome logo

      Home automation that's easy to start and easy to grow.

      Start with one Main Brain and one node. Add another node whenever you want to sense or switch something new.

      Play with the demo again