The purpose of the EEBUS SPINE HDM Adapter Core is to:
provide integration of the EEBus SPINE devices with the Home Device Manager so that EEBus SPINE devices can be managed trough the abstraction layer of HDM;
define pluggable model for DCO Providers so that third parties can provide support for new EEBus SPINE features and new device classes with steps below:
When a new SPINE device is available, EEBUS SPINE Controller fires an event that is processed by the EEBUS SPINE HDM Adapter.
The adapter creates a root HomeDeviceSpi for new the SPINE device.
Then it iterates through all the top-level entities from SPINE device.
For each entity a new child HomeDeviceSpi is created.
For each feature of the corresponding entity, the adapter calls the match method (DeviceClassProvider.getDeviceClassMatches) of each DCO provider service.
The adapter compares the returned results from the providers, those who returns the highest match value wins. If there is more than one with the same result, the first one wins.
The adapter judges whether there is a need for new fictitious child devices due to HDM constraints. If necessary, it creates a new instance of HomeDeviceSpi, which is a child of HomeDeviceSpi entity.
The adapter calls create method of the selected DCO provider. The provider must create and return a new instance of DeviceClassObjectSpi.
Repeats the same steps for all nested entities within the current entity.
Finally, the root HomeDeviceSpi and its children are registered as HomeDevice in the HDM core.
HDM Adapter also pays special attention to the DeviceClassification feature if it is present inside the entities of the SPINE device.
If there is a feature and it supports DeviceClassificationManufacturerData function, then these manufacturer data are read and mapped as device properties of the corresponding HomeDeviceSpi object.
EEBus SPINE Standard Classes DCO Provider
Below is the list of implemented device classes (com.prosyst.mbs.services.spine.hdm.deviceclasses.standardclasses package):
Bill
DeviceConfiguration
DeviceDiagnosis
ElectricalConnection, ElectricalConnections
Identification
IncentiveTable
LoadControlLimit, LoadControlLimits
Measurement, Measurements
TimeSeries
EEBus SPINE Smart Energy DCO Provider
The EEBus SPINE Smart Energy DCO Provider is a DCO provider implementation for EEBus SPINE Smart Energy Management Power Sequences and white goods appliances.
Below is the list of implemented device classes:
Smart Energy (package com.prosyst.mbs.services.spine.hdm.deviceclasses.smartenergy):
SmartEnergyManagementPs
White Goods (package com.prosyst.mbs.services.spine.hdm.deviceclasses.whitegoods, extension of WhiteGoodsDeviceClass API)
Dishwasher
TumbleDryer
WashingMachine
ProgrammableAppliance
StartStopActuator
All DCO providers are implemented as separate bundles and can be plugged within the EEBus SPINE HDM Adapter.