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.0.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.0-py3-none-any.whl (12.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: matonb_anovable-1.4.0.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.0.tar.gz
Algorithm Hash digest
SHA256 a861f63ff79f98d54e0a63f64b4b5d4e2cd90e3dbdff1f128f09e49cbe95adfa
MD5 d5fd00ac3a7fe4ecce8dcff55ef3937b
BLAKE2b-256 cb9b53047c5173e48d7ee857452e1bd5b53c116c8d43426d0c9f1e9b3a46ebf0

See more details on using hashes here.

Provenance

The following attestation bundles were made for matonb_anovable-1.4.0.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.0-py3-none-any.whl.

File metadata

File hashes

Hashes for matonb_anovable-1.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 be0c1f15b0965c1ca9b9334452788208b520aecc6cf544225f11e154a0ad556c
MD5 95a87724c6147d4772aff23609b7690d
BLAKE2b-256 13121aab78e7980d06cd3dc0cb4e7fa2f82e37f5ba82c1ce9b837da07358f8ff

See more details on using hashes here.

Provenance

The following attestation bundles were made for matonb_anovable-1.4.0-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