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 (°C or °F) - 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
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
anova-cli --config /path/to/config.yaml status
anova-cli -c /path/to/config.yaml status

# Enable debug logging
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.5.0.tar.gz (14.2 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.5.0-py3-none-any.whl (13.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: matonb_anovable-1.5.0.tar.gz
  • Upload date:
  • Size: 14.2 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.5.0.tar.gz
Algorithm Hash digest
SHA256 b3779af32d3226636cf861740676d32ebacfeffd02ed6905c4b17b3638277fb3
MD5 7c0152654fc54cacec5a5850e3719315
BLAKE2b-256 45adb1a19739fb80d43d2bbc91ee49c506ed8a0441a3831aad2203f3c170e2d3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for matonb_anovable-1.5.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d450a395d33fca35e33f94af9ab495e9dbf2aa3b863e08f2888a597899235a76
MD5 5a8b0eeb9d7fcfa3adf954d3811e850d
BLAKE2b-256 8ea9fb01dcff6b6588f26284330fda55bcd8f8785e0e76e24c58871b21895a25

See more details on using hashes here.

Provenance

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