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.32.tar.gz (36.7 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.32-py3-none-any.whl (28.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: solem_blip_ble-0.1.32.tar.gz
  • Upload date:
  • Size: 36.7 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.32.tar.gz
Algorithm Hash digest
SHA256 39538a02080cc892844a57467fbc71e4574bdf3f9f762dc2c1561bba41f58f99
MD5 6eb4c6e3362f4d6a161accf5a0c5c2b1
BLAKE2b-256 2160d0b324f5d52e8c6db207c84f25a1211d13bec73b80a0bb622d8a281ae9fa

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for solem_blip_ble-0.1.32-py3-none-any.whl
Algorithm Hash digest
SHA256 bb5575e2d8ba098aab906fd82039483bf24a018224950789a3a1951299489875
MD5 23c9d7ffc42568c09da0da8daed61c12
BLAKE2b-256 69526e170e40000be66bdf2ee80f03cd4c239b5db1720fc6611ccc347f2e3e89

See more details on using hashes here.

Provenance

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