Skip to content

v0.2.0

Choose a tag to compare

@mtheli mtheli released this 20 Feb 20:41

Highlights

  • 3-Step Config Flow — Discovery, confirmation, and connection test displaying HW version, FW version, and serial number during setup
  • Persistent BLE connection with automatic reconnect (replaces connect-per-poll)
  • Auto device model detection from BLE manufacturer data (C4 Air, NP2 Air, LP2 Air, K4, 608PD, …)

Features

  • Binary sensors for battery inserted (plug) and slot error (problem) per slot
  • Beep switch to toggle the charger alarm tone on/off
  • New sensors: Internal Resistance (mOhm), RSSI (dBm), Last Seen (timestamp), Energy Charged (Wh)
  • Live charge timer — "Charging Since" as timestamp sensor with real-time frontend updates
  • Slot status "empty" distinguishes between an empty slot and a slot with an idle battery
  • Options flow for configurable poll interval (10–300s, default: 10s)
  • Internationalization via translations/en.json with translation_key + has_entity_name

Improvements

  • One-time hardware/firmware info fetch via AF02 characteristic after connect
  • Slot sensors as sub-devices with via_device pointing to the main charger
  • BLE packet parsing extracted into dedicated parser.py module
  • Shared device info helpers in helpers.py (DRY)
  • async_create_background_task() for proper lifecycle management
  • capacity_done / energy_done changed from TOTAL_INCREASING to MEASUREMENT
  • Switch fix: async_set_alarm_tone() as public API on the coordinator

Documentation

  • README with sensor tables, setup guide, and BLE protocol description
  • Screenshots: Config Flow, Device Overview, Slot Detail