Inspiration

A household robot should be reachable through an ordinary phone call. The goal is to notice lights left on, request a callback, give Unitree G1 an instruction, and check progress through a home camera.

What it does

The public CALL-E integration requests a callback, collects an explicit instruction to turn off a designated light, and extracts a structured instruction after the conversation. It keeps the phone workflow separate from the robot controller.

The physical workflow is built around the participant's Unitree G1 and a private API interface connected to the robot and home Wi-Fi camera. The intended sequence is light-on notification, a requested callback, a physical switch press, and return to the starting position. Robot perception, motion, and navigation code remain private. The public contribution implements the callback and instruction contract; end-to-end dispatch and live robot feedback within one continuous call are not yet verified.

How we built it

Python's standard library talks to CALL-E's create-call and read-call endpoints. A persisted idempotency key protects call-creation retries. The integration checks the completed call's structured result and final confirmation before returning a generic instruction. A no-call preview lets reviewers inspect the request without credentials or robot hardware.

Codex helped implement the public integration and tests. CALL-E supplies the AI phone conversation and structured result extraction.

Accomplishments and learning

We built a small public integration without exposing the private robot controller. All six synthetic contract tests and CALL-E's contribution repository validator pass. A real CALL-E outbound call was exercised during development; the final hardware sequence is not represented as a verified test result.

Challenges

Phone-call intent and physical completion are separate facts. The integration returns an advisory instruction with execution_status set to not_dispatched. It never treats a successful call as proof that a light switched off. The public API used here does not expose a way to inject live hardware status into an ongoing call.

What's next

Connect the private controller through its API contract, verify switch pressing and return-to-position, and add continuous-call status feedback through a supported CALL-E mechanism.

Try it

The contribution PR includes setup and testing instructions. Run python3 calle_light.py preview and python3 -m unittest -v from the app directory. Both work without credentials or hardware. An authorized live callback is explicitly opt-in; follow the README with your own API key and phone number.

Hackathon contribution

New work includes the CALL-E callback integration, generic instruction format, explicit live-call opt-in, saved request recovery, no-call preview, and synthetic tests. The pre-existing private robot system is separate from the public contribution.

Built With

Share this project:

Updates

Submission history