Skip to main content

Async client for Grilla Grills Alpha Connect smokers (unofficial)

Project description

aiogrilla

PyPI version Python versions CI License Ruff

Unofficial async Python client for Grilla Grills Alpha Connect smokers. It provides read-only access to live grill and probe temperatures, cook status, cook mode, and the cook timer via the vendor's cloud service.

Disclaimer

aiogrilla is an unofficial, third-party library. It is not affiliated with, endorsed by, or supported by Grilla Grills or Fahrenheit Technologies, Inc. "Grilla" is used here as a nominative reference to identify the product this library works with. This library is provided as-is and may stop working at any time if the vendor changes their cloud service. Use is entirely at your own risk, with no warranty of any kind.

Install

pip install aiogrilla

From source

git clone https://github.com/zwrose/aiogrilla.git
cd aiogrilla
pip install -e .

Usage

Run the bundled example — it prompts for your password and never stores it:

export GRILLA_EMAIL="your@email.com"   # optional; the example prompts if unset
python examples/dump_state.py

Or use the library directly. Log in once with your password to obtain a refresh token, then persist and reuse that token — the password is never needed again and never has to be stored:

import asyncio
import getpass
from aiogrilla import GrillaClient


async def main(email: str, password: str) -> None:
    client = GrillaClient()
    refresh = await client.async_login_with_password(email, password)
    # Persist `refresh` securely (e.g. a secrets manager) and reconnect later with
    # GrillaClient(refresh_token=refresh) — no password storage required.
    grills = await client.async_get_grills()
    print("grills:", grills)
    if not grills:
        return
    grill = grills[0]
    client.on_state(grill.id, lambda s: print("state:", s.mode, s.grill_temp, s.probe_temp))
    client.on_availability(grill.id, lambda a: print("available:", a))
    await client.async_connect()
    await asyncio.sleep(30)
    await client.async_disconnect()


asyncio.run(main(input("Grilla email: "), getpass.getpass("Grilla password: ")))

What it does / v1 scope

aiogrilla is intentionally read-only in its first release:

  • Live grill temperature and target temperature
  • Probe temperature(s) and target probe temperature(s)
  • Cook status / operating mode (off, igniting, running, hold, shutdown, etc.)
  • Cook timer (total and remaining seconds)
  • Grill availability (connected / disconnected)

Write operations (set temperature, start/stop cook, etc.) are out of scope for v1.

Tested hardware

aiogrilla has so far been verified against a single grill:

Model Controller Firmware
Grilla Silverbac 2.0 XL Built-In Alpha Connect 2.0 1.0.70

Other Alpha Connect grills share the same cloud API and should work, but are unverified. If you have a different model, please try it and open an issue with your findings — model, firmware, and any fields that look off (a redacted state sample helps — see Caveats). Other owners' reports are how compatibility gets confirmed.

Caveats

The field mapping is best-effort and validated against a limited set of devices and firmware. Some fields (probe 2, turntable, alarm range) may not apply to all grill models or firmware versions. If you observe unexpected parsing behavior, please open an issue with a redacted (no credentials or tokens) sample.

Contributing

Contributions are welcome — see CONTRIBUTING.md. This project uses Conventional Commits and release-please, so commit messages drive versioning and the changelog.

License

Apache-2.0. See LICENSE and NOTICE.

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

aiogrilla-0.2.3.tar.gz (39.0 kB view details)

Uploaded Source

Built Distribution

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

aiogrilla-0.2.3-py3-none-any.whl (21.6 kB view details)

Uploaded Python 3

File details

Details for the file aiogrilla-0.2.3.tar.gz.

File metadata

  • Download URL: aiogrilla-0.2.3.tar.gz
  • Upload date:
  • Size: 39.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for aiogrilla-0.2.3.tar.gz
Algorithm Hash digest
SHA256 746b2f652b3d1acc2882d8fcbfb6b4a091b9ff7e2c01b6a642bb8a53041cc74a
MD5 d5edcb5a191ed06038ea2d59e37964a5
BLAKE2b-256 f5c40e2a30a97734587b18d8346397d26c9529fd87256111909b5e7e7e720613

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiogrilla-0.2.3.tar.gz:

Publisher: publish.yml on zwrose/aiogrilla

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

File details

Details for the file aiogrilla-0.2.3-py3-none-any.whl.

File metadata

  • Download URL: aiogrilla-0.2.3-py3-none-any.whl
  • Upload date:
  • Size: 21.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for aiogrilla-0.2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 238dd3b2fae70668951992fad830782b2e7e76ad34a830a424695ff6d1aacbe7
MD5 d15d1757d06a22baded5a5b5b8ab959e
BLAKE2b-256 6a5f25d771702b0697c458d80481a38245d6e74cd710f55207112b72106449a6

See more details on using hashes here.

Provenance

The following attestation bundles were made for aiogrilla-0.2.3-py3-none-any.whl:

Publisher: publish.yml on zwrose/aiogrilla

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