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

Uploaded Python 3

File details

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

File metadata

  • Download URL: solem_blip_ble-0.1.33.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.33.tar.gz
Algorithm Hash digest
SHA256 de8d86e414e48bf840d5b979ea52c0c554939270d5983738416a808f93506c67
MD5 6673799831cce1e840f14f9cf3434bc7
BLAKE2b-256 f859cde0d2cfabb3aa6f250bd08eb988167dcce218c33e9812d5692ccaba7d89

See more details on using hashes here.

Provenance

The following attestation bundles were made for solem_blip_ble-0.1.33.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.33-py3-none-any.whl.

File metadata

File hashes

Hashes for solem_blip_ble-0.1.33-py3-none-any.whl
Algorithm Hash digest
SHA256 6a6898c5837f4fc913e3a1d8ad89af8a49463f468f36af6c7dcd9261bb673891
MD5 5bced101ea9bbaebf30caa74109532f6
BLAKE2b-256 be99f9ed6226a18a517cc62d2f02d3e61f700cbb820486941fb24210c84c731c

See more details on using hashes here.

Provenance

The following attestation bundles were made for solem_blip_ble-0.1.33-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