API Reference
This page describes the concepts and operations needed to implement a client application for the Anova Precision Cooker, independent of any specific programming language.
Core Components
Device Client
Any implementation should include a client component responsible for:
Functionality | Description |
---|---|
Device discovery | Scanning for and identifying compatible devices |
Connection management | Establishing and maintaining BLE connections |
Command transmission | Sending properly formatted commands to the device |
Response handling | Receiving and processing notification data |
Model detection | Determining the cooker model type (Wi-Fi or non-Wi-Fi) |
Basic Operations
Device Discovery
Your implementation should provide a way to:
- Scan for nearby BLE devices
- Filter devices by service UUID (
0000ffe0-0000-1000-8000-00805f9b34fb
) or by name containing "anova" - Return device identifiers for connection
Connection Management
Implement functions to:
- Establish connection to a device by address
- Enable notifications on the characteristic
- Properly disconnect from the device when finished
Command Handling
Create a system to:
- Format commands with appropriate carriage return (
\r
) - Send commands to the characteristic
- Implement timeouts for response waiting (recommended: 15 seconds)
Command Formatting
Commands should be properly formatted as ASCII strings with a carriage return appended:
Basic Commands
start\r
stop\r
status\r
Temperature Commands
read set temp\r
read temp\r
read unit\r
set temp <value>\r
set unit <unit>\r
Timer Commands
read timer\r
start time\r
stop time\r
set timer <minutes>\r
Model-Specific Commands
clear alarm\r # 900W only
version\r # 900W only
get id card\r
Response Processing
Your implementation should:
- Buffer incoming notification chunks
- Detect when a response is complete
- Decode and trim the assembled ASCII response
- Process or return the response
Error Handling
Implement appropriate error handling for:
- Connection failures
- Command timeouts
- Incomplete responses
- Disconnections
- Unsupported commands (based on model type)
Sample Workflow
A typical interaction with the device follows this pattern:
- Discover compatible devices
- Connect to selected device
- Subscribe to notifications
- Send
get id card
to determine model type - Send commands and process responses
- Properly disconnect when finished
Structure your code to properly handle asynchronous operations, as BLE communication typically involves callbacks or promises for event handling.
Your notification handler should accumulate data chunks until detecting a complete response (chunk less than 20 bytes or ending with null byte).