I’ll take a stab at it:
First, there is a Glossary available.
A device is (typically) a physical thing. It’s the real-world equipment you are attempting to control and automate.
A component is an idealized model of a device. They are the ‘virtual building-blocks’ you will use to create a virtual representation of all the devices in your home. For example:
-
Switch
models a device that, minimally, can be turned on/off. This includes outlets, relays, light fixtures, etc. -
Light
models a device that, like aSwitch
, can be turned on/off and has other properties such as brightness and possibly color, transition, etc. This includes incandescent, (some) fluorescent, and LED lighting devices. -
Cover
models a device that can be opened/closed. This includes garage doors, awnings, shutters, blinds, etc. -
Climate
models a device that controls heating/cooling. Basically, we’re talking about a thermostat. -
Sensor
models a device that reports a value (numeric or text). This includes temperature sensors, humidity sensors, pressure sensors, weather monitors, etc. -
Binary Sensor
models a device that reports a binary state (on/off, open/closed, up/down, motion/no motion, etc). This includes a contact sensor for a door or window, a motion sensor, etc.
There are several others such as lock
, fan
, notification
, etc. A complex device may require several components to model it completely. For example, an Ecobee thermostat is represented by a climate
component (naturally) as well as sensor
, binary_sensor
, notification
, and weather
.
An integration provides the means of connecting to and controlling a device as well as modelling the device using one or more components. For example, the z-wave integration communicates with z-wave enabled devices and represents them using components such as light
, fan
, lock
, climate
, binary_sensor
, etc.
An entity is an instance of a component. If you have ten physical lights (devices), where each one is modeled as a light
component, then each instance is called an entity
.
Finally there is platform which is a term associated with entities. If you have a light bulb that is controlled via the Zigbee integration, the entity you create to represent that light is said to use the Zigbee platform. Frankly, I feel this should probably use the word ‘integration’ but that’s the way it is.