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.
Log in or sign up for Devpost to join the conversation.