Skip to main content

Python library for controlling Anova Precision Cookers via Bluetooth LE

Project description

Anovable

Python library for controlling Anova Precision Cookers via Bluetooth LE.

Installation

pip install matonb-anovable

Configuration

Create an anovable.yaml configuration file (Home Assistant compatible format):

# Anovable Configuration File
anova:
  mac_address: "01:02:03:04:05:06"  # Your Anova device MAC address

  connection:
    timeout: 5.0
    retry_attempts: 3

  temperature:
    default_unit: "celsius"

  logging:
    level: "INFO"

Python Usage

import asyncio
from anovable import AnovaBLE

async def main():
    # Auto-discovers device or uses config file
    anova = AnovaBLE()

    if await anova.connect():
        # Get status
        status = await anova.get_status()
        print(f"Status: {status}")

        # Set temperature
        await anova.set_temperature(60.0)

        # Start cooking
        await anova.start_cooking()

        # Set timer (auto-starts by default, but only if cooker is running)
        await anova.set_timer(120)  # 120 minutes, auto-starts if cooker running

        # Or set timer without auto-starting
        await anova.set_timer(120, auto_start=False)

    await anova.disconnect()

asyncio.run(main())

CLI Usage

The CLI automatically uses your MAC address from anovable.yaml:

Status Commands

# Get comprehensive device status
anova-cli status
# or
anova-cli state

# Get current temperature
anova-cli temp

# Get target temperature
anova-cli target

# Get timer status
anova-cli timer

# Get temperature unit
anova-cli unit

Control Commands

# Typical workflow
anova-cli set-temp 60.0    # Set target temperature
anova-cli start            # Start cooking
anova-cli set-timer 120    # Set timer (auto-starts since cooker is running)

# Individual commands
anova-cli start            # Start cooking
anova-cli stop             # Stop cooking

# Set target temperature (Celsius) - uses positional argument
anova-cli set-temp 60.0

# Set timer (minutes) - automatically starts timer if cooker is running
anova-cli set-timer 120

# Set timer without auto-starting
anova-cli set-timer 120 --no-auto-start

# Manual timer control (requires cooker to be running)
anova-cli start-timer
anova-cli stop-timer

Options

# Override MAC address (short flag available)
anova-cli --mac-address aa:bb:cc:dd:ee:ff status
anova-cli -m aa:bb:cc:dd:ee:ff status

# Use custom config file (short flag available)
anova-cli --config /path/to/config.yaml status
anova-cli -c /path/to/config.yaml status

# Enable debug logging (short flag available)
anova-cli --debug status
anova-cli -d status

# Show version
anova-cli --version

# Get help for any command
anova-cli --help
anova-cli status --help

# Enable shell completion (bash, zsh, fish, PowerShell)
anova-cli --install-completion
anova-cli --show-completion  # Show completion script to copy manually

Device Discovery

If you don't know your Anova's MAC address:

import asyncio
from anovable import AnovaBLE

async def find_device():
    anova = AnovaBLE()
    mac_address = await anova.discover_device()
    if mac_address:
        print(f"Found Anova at: {mac_address}")
    else:
        print("No Anova device found")

asyncio.run(find_device())

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

matonb_anovable-1.4.1.tar.gz (13.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

matonb_anovable-1.4.1-py3-none-any.whl (12.8 kB view details)

Uploaded Python 3

File details

Details for the file matonb_anovable-1.4.1.tar.gz.

File metadata

  • Download URL: matonb_anovable-1.4.1.tar.gz
  • Upload date:
  • Size: 13.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for matonb_anovable-1.4.1.tar.gz
Algorithm Hash digest
SHA256 5387419c42589b0db8f2f0211d0f7f422221828a6cf33012abb6491e3c56f4e7
MD5 a5fbbdcbac111a326cfada0856f870a9
BLAKE2b-256 1c455e43eb5739aa7f618325fd93afefe35614b4ca35a0f66b18b5b50f63fe8e

See more details on using hashes here.

Provenance

The following attestation bundles were made for matonb_anovable-1.4.1.tar.gz:

Publisher: ci.yml on matonb/anovable

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file matonb_anovable-1.4.1-py3-none-any.whl.

File metadata

File hashes

Hashes for matonb_anovable-1.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 6859b4a252bcf905d24aa6f8e4e806183b016b0c818e1ea500a7b416fd99908d
MD5 3a368a6de1621951edee015372bd7cfd
BLAKE2b-256 d3074f9898aaba310a864c1d02629df3f206c91ed6b2c6a9fc475b04b257c3bf

See more details on using hashes here.

Provenance

The following attestation bundles were made for matonb_anovable-1.4.1-py3-none-any.whl:

Publisher: ci.yml on matonb/anovable

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page