API Reference HAP v0.1.0

Modules

HAP

Provides a high-level interface to an implementation of the HomeKit Accessory Protocol, allowing an application to present any number of services & characteristics of those services to an iOS HomeKit controller

Represents a single accessory object, containing a number of services

Represents a top-level HAP instance configuration

Holds the top-level state of a HAP accessory server

Represents a single characteristic optionally backed by an instance of ValueStore

Factory for the public.hap.characteristic.firmware.revision characteristic

Factory for the public.hap.characteristic.identify characteristic

Factory for the public.hap.characteristic.manufacturer characteristic

Factory for the public.hap.characteristic.model characteristic

Factory for the public.hap.characteristic.name characteristic

Factory for the public.hap.characteristic.on characteristic

Factory for the public.hap.characteristic.serial-number characteristic

Factory for the public.hap.characteristic.version characteristic

Defines the HTTP interface for a HomeKit Accessory which may only be accseed over a non-encrpyted channel

A simple console based implementation of the HAP.Display behaviour

Functions to encrypt/tag and decrypt/verify using the chacha20_poly1305 cipher

Functions to work with Elliptic Curve Diffie-Hellman shared secret generation

Functions to generate keys, sign & verify messages using Elliptic Curve Signatures

Functions to help with key derivation

Simple wrapper around Erlang's :crypto.hash() function

Implements the various steps within the Stanford Remote Password (version 6a) flow

Provides functions to define & update a HAP.Accessory advertisement via multicast DNS according to Section 6 of Apple's HomeKit Accessory Protocol Specification.

Centralized functions for non-logging related display functionality. Applications which use HAP may provide their own implementation of this behaviour as an argument to HAP.build_accessory_server/1. If no such implementation is provided HAP uses a default console based implementation found at HAP.ConsoleDisplay

Defines the HTTP interface for a HomeKit Accessory which may only be accessed over a secure channel

Implements cleartext TCP transport with optional chacha20_poly1305 encryption as mandated by section 6.5.2 of the HomeKit Accessory Protocol specification

Defines the HTTP interface for a HomeKit Accessory

Functions to map IIDs to/from service and characteristic indexes.

Implements the Pair Setup flow described in Apple's HomeKit Accessory Protocol Specification.

Implements the Pair Verify flow described in Apple's HomeKit Accessory Protocol Specification.

Implements the Add / Remove / List Pairings flows described in Apple's HomeKit Accessory Protocol Specification.

Encapsulates a simple persistent key-value store

Represents a single service, containing a number of characteristics

Factory for the public.hap.service.accessory-information service

Factory for the public.hap.service.lightbulb service

Factory for the public.hap.service.protocol.information.service service

Provides functions to encode a map or keyword list into a TLV binary as described in Apple's HomeKit Accessory Protocol Specification.

A Plug.Parsers compliant parser for TLV payloads as described in the Appendix of Apple's HomeKit Accessory Protocol Specification.

Defines the behaviour required of a module that wishes to act as the backing data store for a given HomeKit characteristic