Files - thoukydides/homebridge-homeconnect GitHub Wiki

Files Storing Plugin State

This plugin stores state in a few different files within the ~/.homebridge directory (or whichever directory Homebridge has been configured to use via its -U option).

Homebridge

Platform Accessory

This plugin implements a dynamic platform plugin. Homebridge stores full details of all platform accessories (with their services and characteristics) in ~/.homebridge/accessories/cachedAccessories. A small amount of additional state is added to the context of each accessory to help clean-up unused services when the plugin configuration is changed.

Persistent Cache

Homebridge (or more specifically HAP-NodeJS which implements the HomeKit Accessory Protocol) creates two files in ~/.homebridge/persist (where XXXXXXXXXXXX is replaced by the Homebridge username specified in the config.json file):

  • AccessoryInfo.XXXXXXXXXXXX.json: Records internal HAP server information, such as encryption keys and the username.
  • IdentifierCache.XXXXXXXXXXXX.json: Records the HomeKit Accessory instance IDs (aid) and Service and Characteristic instance IDs (iid) that have been assigned.

These files store critical information about all plugins installed in the Homebridge instance.

Configuration Schema

This plugin dynamically generates a configuration schema in ~/.homebridge/.homebridge-homeconnect-v1.schema.json that is used by the homebridge-config-ui-x graphical settings editor.

This file can be safely deleted. It is regenerated when the plugin starts, when authorisation is required, and when the appliance capabilities change.

Plugin Persistent Cache

This plugin uses node-persist to store data in ~/.homebridge/homebridge-homeconnect/persist:

  • 94a08da1fecbb6e8b46990538c7b50b2 (MD5 hash of token): This file holds the OAuth tokens used to access the Home Connect API. The client will need to be re-authorised if this file is deleted.
  • 130b9cf2dc079eb8116e6fca2c2ec001 (MD5 hash of config.schema.json): This file is used to store the raw details used to construct the dynamic configuration schema. If it is removed then some options may be lost from the configuration schema until the appliance capabilities have been read again.
  • All other files in the directory are used to cache appliance capabilities. This avoids the need to request the information from the Home Connect API every time the plugin starts, making it less likely that the Home Connect Rate Limits will be exceeded. It also provides a fallback in case the appliance capabilities cannot be read for any reason (e.g. if the appliance is not currently connected or it is in an unsuitable state). Deleting these files forces the plugin to request the information from the appliances next time it starts; some functionality will be missing until this has happened.