Motion, the objects in view, snapshots, events and camera status, sent to your MQTT broker for Home Assistant, Node-RED, openHAB or anything else that reads MQTT. Home Assistant finds every camera by itself.
192.168.1.20 or homeassistant.local), the port (1883, or 8883 with TLS), and the username and password.lookout/test. Nothing else is sent.With Home Assistant discovery on (the default), each camera appears as a device under the recorder, with:
Every entity goes unavailable if the recorder stops or loses its network, so an automation never acts on a stale reading. Switching discovery off removes the entities again. Renaming a camera keeps its entities and their history.
The prefix is lookout unless you change it. Camera names become lowercase with underscores: Front Door is front_door.
| Topic | What it carries |
|---|---|
lookout/available | online or offline, kept by the broker |
lookout/front_door/motion | ON or OFF |
lookout/front_door/person | How many people are in view now: 0, 1, 2 |
lookout/front_door/person/snapshot | A JPEG of the latest person |
lookout/front_door/status | online or offline |
lookout/events | A JSON message as each event starts, changes and ends |
Everything except lookout/events is kept by the broker (retained), so anything that subscribes later sees the current state at once.
Every motion session is an event from its first moment, before anything has been named. Its type is new when motion starts, update when Lookout names what it is or sees more, and end when the motion stops.
{
"type": "update",
"id": "6f1c...",
"camera": "front_door",
"camera_name": "Front Door",
"label": "person",
"sub_label": null,
"score": 0.87,
"zones": ["Driveway"],
"objects": ["person"],
"start_time": 1791115200.0,
"end_time": null,
"has_snapshot": true,
"thumbnail": "/api/events/9a2e.../snapshot"
}
sub_label carries a name you have given an object in Lookout, such as a pet. thumbnail is a path on the recorder; fetching it needs an API key.
Subscribe to lookout/events for a message per event, or to lookout/+/motion and lookout/+/person for state. In openHAB, use the MQTT binding with a generic thing per camera and a channel per topic.