Pulse: a zoomable radial interface for openHAB

Hi all,

I’ve been building Pulse, a radial interface for watching and controlling a home. Each system is a ring with layers for readings and controls: lights, climate, openings, security, media, energy, weather and people. You zoom into a system to use it and zoom out to see the whole house.

It reads your items through the semantic model. It only uses the REST API and the event stream: no binding, no add-on, nothing installed on the server.

Two ways to run it:

  • Served by openHAB: drop the folder into html in your config and open /static/pulse/. A Web Frame page puts it in the Main UI sidebar.
  • As an app: a standalone page that points at any openHAB by its address, with an API token if needed.

A few things I cared about:

  • Alerts are rules across systems (heating on with a window open, a room under 16 °C), and each one comes with a real command to fix it.
  • An alert raises its layer and colors only the part that’s failing. The rest stays calm.

I’ve been testing it against the openHAB demo house. It’s MIT, built on two libraries of mine: Orbit (radial layouts in CSS) and Zumly (zoom navigation).

Demo: Pulse · openHAB

openHAB page: openHAB · Pulse

Feedback from people with bigger or messier models than the demo house would help a lot, especially items that land in the wrong place.

tried 0.2.0 on openhab 5.2.3 (release zip, same-origin build), about 1250 items and 600 in the semantic model. it runs, no errors, live updates come through.

two things:

the first load is 34 MB. /rest/items?metadata=semantics&recursive=false returns every state, and the image items of our unifi protect cameras carry their snapshots inline, 2 to 5 MB each. on a wall tablet that reloads or reconnects often that is a lot for the browser and for openhab. maybe ask for fields=name,label,type,category,tags,groupNames,metadata,stateDescription,state only for non-image items, or fetch image states on demand when a player cover is shown.

navigation: for a real house i find it hard to get around, the orbit and rings look nice but i can’t quickly find a room or a device. the semantic model is already a tree (floor > room > equipment > point), a plain tree or breadcrumb view next to the board would make it much easier to use day to day.