hub4.py 512 B

123456789101112131415161718
  1. """Hub4 advertisement parser."""
  2. from __future__ import annotations
  3. from typing import Any
  4. from .hub3 import process_hub3
  5. def process_hub4(data: bytes | None, mfr_data: bytes | None) -> dict[str, Any]:
  6. """Parse Hub4 sensor data and its 20-level light reading."""
  7. parsed = process_hub3(data, mfr_data)
  8. if not parsed:
  9. return {}
  10. parsed["lightLevel"] = mfr_data[12] & 0x1F
  11. # Hub4 has no documented lux mapping for its 20 light levels.
  12. parsed.pop("illuminance")
  13. return parsed