Objectives & prerequisites
What Hello Pico on Home Assistant teaches and what you need before starting.
Learning objectives
NoteLearning objectives
- Explain, using Phase 7 vocabulary, why Home Assistant is a ControlSurface and not a runtime, ontology owner, or a bypass around Kubernetes, Manifold, Wrangler, or the Python CLI.
- Merge a small Home Assistant configuration snippet that adds exactly one observation surface (a
command_linesensor) and one safe control action (ashell_commandfired by aninput_button). - Route every Home Assistant read and write through the approved
pico runtimePython CLI ControlSurface so the graphical UI cannot drift from the declared runtime truth. - Observe the same one-event / one-response contract the underlying Hello Pico on Manifold lab proves, but this time triggered from a UI button in Home Assistant.
Prerequisites
NotePrerequisites
- Completion of the Hello Pico on Manifold lab so a working
manifoldNamespace,pico-enginePod,helloChannel Service, and topology ConfigMap all exist on your local minikube cluster. This lab observes and controls that runtime; it does not deploy it. - Familiarity with the
pico runtimesubcommands — this lab wires Home Assistant directly topico runtime inspectandpico runtime emit. - A working Home Assistant installation (Container, Supervised, or Core all work; HA OS also works if you can install
picoinside its container image). No specific HA version is pinned — Home Assistant’scommand_line,shell_command,input_button, andautomationprimitives are all stable and long-supported.
Environment
The Kubernetes side is unchanged from the underlying Manifold lab:
- Local minikube profile
manifold-lab(from the Kubernetes setup foundation). - The
pico-enginePod is single-shot; if you already ran the Manifold lab to completion, delete and reapply02-pico-engine.yamlbefore this lab so the Pod is Ready again and can accept exactly one event.
Home Assistant-side additions:
- The
picoexecutable frombin/picoin this repository must be on thePATHthe Home Assistant container sees. - A
kubeconfigpointing at the samemanifold-labminikube profile must be reachable from inside the HA container (typically by mounting~/.kube/config). - The helper script
hello-pico-ha-phase.shis expected at/config/hello-pico/hello-pico-ha-phase.shinside the HA container. Any equivalent path works — just adjust the sensorcommand:inconfiguration.yamlto match.
See downloads/README.md for the operator checklist that satisfies these three requirements.
One-time setup (optional)
If you prefer to keep the HA integration completely isolated from your host, run Home Assistant as a Docker container and mount both the pico executable and your kubeconfig into it read-only. The walkthrough is written to work regardless of which HA installation shape you use, because the shape of the on-cluster runtime state does not depend on how HA is packaged.