Skip to main content

Library implementing Zigpy quirks for ZHA in Home Assistant

Project description

Build Status

ZHA Device Handlers For Home Assistant

ZHA Device Handlers are custom quirks implementations for Zigpy, the library that provides the Zigbee support for the ZHA component in Home Assistant.

ZHA device handlers bridge the functionality gap created when manufacturers deviate from the ZCL specification, handling deviations and exceptions by parsing custom messages to and from Zigbee devices. Zigbee devices that deviate from or do not fully conform to the standard specifications set by the Zigbee Alliance may require the development of custom ZHA Device Handlers (ZHA custom quirks handler implementation) to for all their functions to work properly with the ZHA component in Home Assistant.

Custom quirks implementations for zigpy implemented as ZHA Device Handlers are a similar concept to that of Hub-connected Device Handlers for the SmartThings Classics platform as well that of Zigbee-Shepherd Converters as used by Zigbee2mqtt, meaning they are virtual representation of a physical device that expose additional functionality that is not provided out-of-the-box by the existing integration between these platforms. See Device Specifics for details.

Contributing

guidelines

Currently Supported Devices:

CentraLite

Xiaomi Aqara

Osram

SmartThings

Keen Home

Lutron

WAXMANN

Digi

Yale

Configuration:

  1. Update Home Assistant to 0.85.1 or a later version.

NOTE: Some devices will need to be unpaired and repaired in order to see sensor values populate in Home Assistant.

Device Specifics:

Centralite

  • All supported devices report battery level
  • Dimmer Switch publishes events to Home Assistant
  • Dimmer Switch temperature sensor is removed because it is non functional
  • 3321-S reports acceleration
  • 3310-S reports humidity

Osram

  • Dimmer Switch publishes events to Home Assistant and reports battery level
  • Dimmer Switch temperature sensor is removed because it is non functional

Xiaomi Aqara

  • All supported devices report battery level
  • All supported devices report temperature but I am unsure if it is correct or accurate
  • Vibration sensor exposes a binary sensor in Home Assistant that reports current vibration state
  • Vibration sensor sends tilt and drop events to Home Assistant
  • Cube sends the following events: flip (90 and 180 degrees), rotate_left, rotate_right, knock, drop, slide and shake
  • Motion sensor exposes binary sensors for motion and occupancy.
  • Button sends events to Home Assistant

SmartThings

  • All supported devices report battery level
  • tagV4 exposed as a device tracker in Home Assistant. The current implementation will use batteries rapidly
  • MultiV4 reports acceleration

Lutron

  • Connected bulb remote publishes events to Home Assistant

WAXMANN

  • leakSMART water sensor is exposed as a binary_sensor with DEVICE_CLASS_MOISTURE

Digi XBee

  • Some functionality requires a coordinator device to be XBee as well
  • GPIO pins are exposed to Home Assistant as switches
  • Outgoing UART data can be sent with zha.issue_zigbee_cluster_command service
  • Incoming UART data will generate zha_event event.

For example, the following script replies with an Assistant string to the device once it receives a Home string from it (replace ieee with your actual endpoint device ieee):

automation:
  - alias: XBee UART Test
    trigger:
      platform: event
      event_type: zha_event
      event_data:
        device_ieee: 00:13:a2:00:12:34:56:78
        command: receive_data
        args: Home
    action:
      service: zha.issue_zigbee_cluster_command
      data:
        ieee: 00:13:a2:00:12:34:56:78
        endpoint_id: 232
        cluster_id: 17
        cluster_type: in
        command: 0
        command_type: server
        args: Assistant

Yale

  • All supported devices report battery level

Thanks

  • Special thanks to damarco for the majority of the device tracker code
  • Special thanks to Yoda-x for the Xioami attribute parsing code
  • Special thanks to damarco and Adminiuga for allowing me to bounce ideas off of them and for listening to me ramble

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

zha-quirks-0.0.25.tar.gz (32.8 kB view details)

Uploaded Source

Built Distribution

zha_quirks-0.0.25-py3-none-any.whl (85.8 kB view details)

Uploaded Python 3

File details

Details for the file zha-quirks-0.0.25.tar.gz.

File metadata

  • Download URL: zha-quirks-0.0.25.tar.gz
  • Upload date:
  • Size: 32.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.3

File hashes

Hashes for zha-quirks-0.0.25.tar.gz
Algorithm Hash digest
SHA256 38503f9a98a6ad1f71b236df7e6ad6cca44db7517a97b8d2cdfda0b62720ac43
MD5 577a3a311107a9488eeca116498f0d5a
BLAKE2b-256 79d3a1e363f39fab9b5cb896e86bfa4627b2218c4c8e8d07bb83868516d92804

See more details on using hashes here.

File details

Details for the file zha_quirks-0.0.25-py3-none-any.whl.

File metadata

  • Download URL: zha_quirks-0.0.25-py3-none-any.whl
  • Upload date:
  • Size: 85.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/1.13.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.31.1 CPython/3.7.3

File hashes

Hashes for zha_quirks-0.0.25-py3-none-any.whl
Algorithm Hash digest
SHA256 88d6e74499c38ad8926081b4e33c7569b9f7cfbb3b9d19e1ac01232afc924124
MD5 e89a662289881db03331572fd77f248c
BLAKE2b-256 cf51a590841723fa8fac7b328bc03fbf9e06ed07ee6593ab55904468f5dd428d

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page