# Name of the plugin.
name=Smart Energy Registration
category=Smart Energy

# Any string is allowable here.  Generally it is either: Production Ready, Test Tool, or Requires Extending
qualityString=Production Ready (Certifiable)
# This must be one of the following:  productionReady, testTool, extensionNeeded
quality=production

introducedIn=se-1.1-07-5356-16

# Description of the plugin.
description=Ember implementation of Smart Energy Registration.  The plugin will perform key establishment with the trust center when the node joins a network.  If the application implements Messaging, Price, or DRLC client clusters, the plugin will also discover ESIs on the network and perform partner link key exchange and binding with each ESI it discovers. ESI discovery requires the ESI Management plugin, in which the number of supported ESIs can be configured. The frequency with which ESIs are rediscovered is configurable. These options are ignored if the application does not implement Messaging, Price, or DRLC client clusters.  Registration is not required for trust centers, so this plugin should be disabled if the device is acting as the trust center.

# List of .c files that need to be compiled and linked in.
sourceFiles=smart-energy-registration.c,smart-energy-registration-cli.c

# List of callbacks implemented by this plugin
implementedCallbacks=emberAfRegistrationStartCallback,emberAfRegistrationAbortCallback,emberAfKeyEstablishmentCallback

# Turn this on by default
includedByDefault=true


# Which clusters does it depend on
dependsOnClusterClient=key establishment
dependsOnClusterServer=key establishment

#requiredApis=address-table
requiredPlugins=address-table

options=esiRediscovery,esiDiscoveryPeriod,allowNonEsiTimeServers

esiRediscovery.name=Rediscover ESIs periodically
esiRediscovery.description=If set, the plugin will periodically rediscover ESIs in the network.
esiRediscovery.type=BOOLEAN
esiRediscovery.default=true

esiDiscoveryPeriod.name=ESI discovery period (in hours)
esiDiscoveryPeriod.description=When ESI rediscovery is enabled, the plugin will rediscover ESIs in the network on this interval.
esiDiscoveryPeriod.type=NUMBER:3,24
esiDiscoveryPeriod.default=3

allowNonEsiTimeServers.name=Allow non-ESI time servers
allowNonEsiTimeServers.description=If set, any device with a time server can be considered as a time source candidate. Otherwise, only ESIs are considered.
allowNonEsiTimeServers.type=BOOLEAN
allowNonEsiTimeServers.default=true

events=tick
tick.type=network
