Skip to main content

BLE client for Solem BL-IP irrigation controllers

Project description

solem-blip-ble

Python library for the Solem BL-IP Bluetooth irrigation controller.

Protocol sources

Layer Source
Commands (turn on/off, sprinkle, stop, commit) pcman75/solem-blip-reverse-engineering — GATT write 108b0002-..., frame 3105 … + 3b00
Status polling (notify, seq 0x02, station, remaining time) Live testing on BL-IP hardware; see docs/ble_protocol.md

Turn-off-for-N-days is capped at 15 days per the pcman75 documentation.

Install

pip install solem-blip-ble
# or from GitHub:
pip install "solem-blip-ble @ git+https://github.com/beelzetron/solem-blip-ble.git@main"
# or editable for development:
pip install -e ".[dev]"

CI/CD

  • CI: GitHub Actions runs tests (Python 3.11–3.13) and verifies the package builds on every push/PR to main.
  • CD: Creating a GitHub Release publishes the package to PyPI via trusted publishing.

Configure PyPI trusted publishing for this repository: PyPI project → Publishing → Add GitHub Actions publisher (beelzetron/solem-blip-ble, workflow publish.yml, environment pypi).

Usage

from solem_blip_ble import SolemClient, SolemConnectionError

client = SolemClient("AA:BB:CC:DD:EE:FF", bluetooth_timeout=30)
await client.connect()
status = await client.get_status()
await client.sprinkle_station_x_for_y_minutes(1, 5)
await client.disconnect()
await client.stop_manual_sprinkle()

Documentation

Full BLE protocol notes: docs/ble_protocol.md

Validation CLI

The packaged debug tool is the single supported raw capture path:

validate-solem-blip AA:BB:CC:DD:EE:FF --capture --verbose
validate-solem-blip AA:BB:CC:DD:EE:FF --capture --only status
validate-solem-blip AA:BB:CC:DD:EE:FF --capture-off-days 3 --verbose
validate-solem-blip AA:BB:CC:DD:EE:FF --replay btsnoop/captures/capture.jsonl

Home Assistant

Used by the Solem BL-IP for Home Assistant integration (HACS).

Credits

Thanks to pcman75 for the original Solem BL-IP command reverse engineering.

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

solem_blip_ble-0.1.34.tar.gz (36.9 kB view details)

Uploaded Source

Built Distribution

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

solem_blip_ble-0.1.34-py3-none-any.whl (28.8 kB view details)

Uploaded Python 3

File details

Details for the file solem_blip_ble-0.1.34.tar.gz.

File metadata

  • Download URL: solem_blip_ble-0.1.34.tar.gz
  • Upload date:
  • Size: 36.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for solem_blip_ble-0.1.34.tar.gz
Algorithm Hash digest
SHA256 3a0737fc8094dbf370a7a5607c30ae6f433f5bcac96b0721b738a7563ff414b0
MD5 429de5782ce2e9d637ea10b5094f6e43
BLAKE2b-256 83f87436d03126ca43a2b8d7dfafece6147227b15491a597cd008deb1e439f60

See more details on using hashes here.

Provenance

The following attestation bundles were made for solem_blip_ble-0.1.34.tar.gz:

Publisher: publish.yml on beelzetron/solem-blip-ble

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

File details

Details for the file solem_blip_ble-0.1.34-py3-none-any.whl.

File metadata

File hashes

Hashes for solem_blip_ble-0.1.34-py3-none-any.whl
Algorithm Hash digest
SHA256 83bf34bd4b5850f2e55a05e4c83917662b03d2d54ecbe495b50c3c417042e7c0
MD5 d9573185c17a3fa11dec33f3b794cd5b
BLAKE2b-256 1f6d564b9d0ecd0dc674814ae9565b000e706d6338b8d7ee339e62df5916f97e

See more details on using hashes here.

Provenance

The following attestation bundles were made for solem_blip_ble-0.1.34-py3-none-any.whl:

Publisher: publish.yml on beelzetron/solem-blip-ble

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