LUKE SPOONER · THE BROADCAST CONTACTING
← Projects

Penduline

Home intelligence for Home Assistant, built on Umwelt: a model of a household’s state over the home’s own event log, suggesting first and acting only when a named output is allowed. A dummy house runs in CI; the first real house will be a studio.

IN BUILD

What it is

Penduline connects Umwelt to Home Assistant in both directions. Readings come in from Home Assistant; the engine keeps one belief per room and role; recommendations go back out as shadow entities that show what it would have done. Physical devices stay still until a named output is explicitly un-shadowed. Locks never dispatch; cameras and face identity never enter the field.

Version 0 is a dummy house: a sandbox Home Assistant in Docker whose toggles map onto occupancy, with the honest rule that a sensor going quiet means not observed, never absent. The first real instance is a studio, a separate Home Assistant from the family house, run in three stages: watch, with no writes; advisory, with would-entities; then run, for one named light you can see, with a manual restore path. The family house stays watch-only.

It is being built from scratch on Umwelt. No earlier home deployment is claimed as its evidence; what Penduline proves, it will prove in its own environment.

Before a real house

  • A census of every entity, each one bound, ignored with a reason, or marked actuator or sense-only; the count must add up, nothing silently omitted.
  • A watch receipt with zero service calls, then advisory output reviewed, then one named light with before-and-after readback.
  • An echo from its own action never earns evidence credit.

What exists today

Private repository, last pushed 22 September 2026, pinned to one Umwelt commit with 56 tests passing at that pin. The dummy house runs in CI. No studio census has been taken yet, so no real device is connected.

Not done

No real house connected; the studio’s entities and zones are not yet inventoried.

CI needs a token that can read the private engine repository.

Next

Take the studio census through the existing adapter, classify every entity, then a watch receipt. Advisory and a named-light run come after.

Built with

Python Umwelt Home Assistant Docker (sandbox)

Connections

evidences Strand Theory
built-on Umwelt

Discuss this project →