Capture from Scout
Module · Stable
Capture a photo through a paired Scout device; the frame lands in Memory.
Sends a ‘capture’ command to a Scout physical device, asking it to take a photo and upload the frame. The device must be paired and have ‘capture’ in its capabilities. When device_id is omitted the step auto-selects the first available device. Optional resolution (default 1080p; the device returns its sensor max if you ask for more), camera (back default / front), and zoom_ratio (default 1.0 = no zoom, e.g. 2.0 zooms in 2× — the device clamps it to what its lens supports and reports the applied zoom) tune the shot. This step only ENQUEUES the request and returns immediately (enqueued=True + the command identifiers); the photo arrives asynchronously and is stored as a first-class Memory artefact. To use the image, add a Wait step after this one with event=‘scout.observed’ — its payload carries memory_item_id (the stored photo) plus width/height, which downstream steps reference.
When to use
Section titled “When to use”Use when a flow needs a photo from the physical world — a snapshot of the loading bay, a shelf, a delivered package, a meter reading. Pair with a following Wait step on event ‘scout.observed’ to block until the image is in Memory, then read {{ wait_event_payload.memory_item_id }} downstream (the photo is OCR’d / EXIF-tagged automatically, like any upload). Branch on enqueued to handle the ‘no device available’ case.
When not to use
Section titled “When not to use”Do not use to accept a file a human uploads — that already flows into Memory directly. Do not expect the image inline in this step’s output: capture is a read that completes asynchronously, so you MUST add a Wait step on ‘scout.observed’ to get the memory_item_id. If no Scout device with ‘capture’ capability is paired, this step returns enqueued=False (it does not raise).
Inputs
Section titled “Inputs”Configured per use: device_id, reason, resolution, camera, flash, zoom_ratio, keep, ttl.
Outputs
Section titled “Outputs”Auto-generated from the skill registry (load_skills()). Do not edit by hand.