Standard Devices
Gridone is designed to drive any device through its extensible driver system. However, some device categories are so common in buildings (thermostats, heat pumps, weather stations...) that they deserve first-class support.
Standard devices are devices whose driver declares a type matching one of the registered standard schemas. When a driver has a type, Gridone enforces that its attributes conform to the expected schema — giving you a consistent data model and a purpose-built UI out of the box.
How it works
Driver type declaration
A driver opts into a standard type by setting the type field:
id: my-thermostat-driver
vendor: Acme
model: T-1000
transport: mqtt
type: thermostat # ← declares this driver as a standard thermostat
attributes:
- name: temperature
data_type: float
# ...
Schema validation
When a driver is registered with a type, Gridone validates its attributes against the corresponding standard schema:
- Required attributes must be present with the correct name and data type.
- Optional attributes may be omitted, but if present they must match the expected data type.
- Drivers may define additional attributes beyond the standard schema — the schema only constrains what must exist, not what can exist.
A schema only ever imposes attribute names and data types — never physical units or value ranges. Gridone is unit-agnostic: it makes no assumption about the unit a device reports for a given attribute. Any unit shown in the tables below is purely illustrative (e.g. a temperature is a float, whether the device reports °C or °F).
Validation runs at driver registration time. If an attribute is missing or has the wrong type, the driver is rejected with a clear error message.
Multiple-instance attributes
Some standard schemas support multiple-instance attributes — useful for devices with repeated components (e.g., multiple compressors in a heat pump). These attributes use a suffix convention:
- Numeric suffix:
compressor_suction_temperature_1,compressor_suction_temperature_2 - Alphabetic suffix:
compressor_suction_temperature_A,compressor_suction_temperature_B
The schema field defines the base name; the driver provides suffixed variants.
Built-in UI
Standard devices get dedicated graphical representations in the Gridone UI, with both a preview card (shown in device lists) and a control panel (shown in device detail). These display device data using domain-specific visuals rather than generic attribute tables.
Non-standard attributes are still accessible through the generic attribute view.
Standard values
Gridone is by default agnostic of which values device attributes take. However, some standard devices take the same set of values — like a thermostat's operating mode (heat, cool, …). To improve user experience and extensibility, we define recommended (standard) values on some attributes for standard devices.
Note: These are recommended values, not hard-enforced (a driver can still use arbitrary values). But standard values get a custom, meaningful rendering in the UI, and make reuse easier: users know what values to expect for an attribute based on the device type.
Standard device types
The following standard types are currently registered.
Thermostat
Key: thermostat
A climate control device that reads ambient temperature and allows setting a target temperature within configurable bounds.
| Attribute | Data type | Required | Description |
|---|---|---|---|
temperature |
float | yes | Current ambient temperature |
temperature_setpoint |
float | yes | Desired target temperature |
temperature_setpoint_min |
float | yes | Minimum allowed setpoint |
temperature_setpoint_max |
float | yes | Maximum allowed setpoint |
onoff_state |
bool | yes | Power on/off state |
mode |
string | yes | Operating mode (Standard values: heat, cool, fan, auto) |
fan_speed |
string | no | Fan speed (Standard values: low, medium, high, auto) |
UI behavior: The control panel displays the current temperature and setpoint, with increment/decrement controls that respect the min/max bounds. Mode and power state are also shown and controllable.
Air-to-Water Heat Pump (AWHP)
Key: awhp
An air-to-water heat pump with water-side metrics and optional refrigerant circuit monitoring.
| Attribute | Data type | Required | Multiple | Description |
|---|---|---|---|---|
onoff_state |
bool | yes | no | Operating state |
unit_run_status |
string | yes | no | Run status (e.g., running, idle) |
mode |
string | yes | no | Operating mode (Standard values: heat, cool, fan, auto) |
inlet_temperature |
float | yes | no | Water inlet temperature |
outlet_temperature |
float | yes | no | Water outlet temperature |
setpoint_temperature |
float | yes | no | Target water temperature |
outdoor_temperature |
float | no | no | Ambient outside temperature |
compressor_suction_temperature |
float | no | yes | Refrigerant suction temperature |
compressor_suction_pressure |
float | no | yes | Refrigerant suction pressure |
compressor_discharge_temperature |
float | no | yes | Refrigerant discharge temperature |
compressor_discharge_pressure |
float | no | yes | Refrigerant discharge pressure |
condenser_saturated_refrigerant_temperature |
float | no | yes | Condenser saturated temperature |
condenser_refrigerant_pressure |
float | no | yes | Condenser pressure |
evaporator_saturated_refrigerant_temperature |
float | no | yes | Evaporator saturated temperature |
evaporator_refrigerant_pressure |
float | no | yes | Evaporator pressure |
Attributes marked Multiple = yes support suffixed instances (e.g., compressor_suction_temperature_1, compressor_suction_temperature_A) for multi-circuit or multi-compressor units.
UI behavior: The control panel displays a schematic of the refrigerant circuit (evaporator, compressor, condenser, expansion valve) with live temperature and pressure values, plus water-side metrics (inlet, outlet, setpoint).
Weather Sensor
Key: weather_sensor
An outdoor weather station providing ambient conditions data.
| Attribute | Data type | Required | Description |
|---|---|---|---|
temperature |
float | yes | Ambient temperature |
weather_code |
int | yes | WMO weather interpretation code |
wind_speed |
float | yes | Wind speed |
wind_direction |
int | yes | Wind direction |
humidity |
float | yes | Relative humidity |
UI behavior: The control panel displays the weather condition with an icon derived from the WMO code, a prominent temperature reading, wind speed with compass direction, and humidity.
Air Extractor
Key: air_extractor
An air extraction unit (extracteur / tourelle) that removes stale air from a space.
| Attribute | Data type | Required | Description |
|---|---|---|---|
onoff_state |
bool | no | Power on/off state (running/stopped) |
fan_speed |
float | no | Fan speed — variable-speed units |
flow_switch |
bool | no | Air-flow proven by a differential-pressure switch |
flow_switch is a flow-proving status, not a measurement: it confirms the fan is actually moving air, catching a broken belt, seized motor, or fully blocked filter even when commanded on. Running state is derived from fan_speed (> 0) or onoff_state when present.
Faults (e.g. a general fault synthesis) are not part of the standard schema yet; drivers declare them as non-standard attributes for now.
UI behavior: The control panel shows the running state, plus the fan speed when available.
Single-Flux Air Handling Unit (CTA simple flux)
Key: ahu_single_flux
An air handling unit with a single supply air-treatment train (filter, coil, fan) and no heat recovery.
| Attribute | Data type | Required | Description |
|---|---|---|---|
supply_air_temperature |
float | yes | Supply air temperature |
supply_air_temperature_setpoint |
float | yes | Supply air temperature setpoint |
supply_fan_speed |
float | yes | Supply fan speed |
onoff_state |
bool | no | Power on/off state |
hvac_mode |
string | no | Operating mode |
supply_air_pressure |
float | no | Supply duct pressure |
supply_air_pressure_setpoint |
float | no | Supply duct pressure setpoint |
outdoor_air_temperature |
float | no | Fresh/outdoor air temperature |
extract_air_temperature |
float | no | Return air temperature, if fitted |
extract_air_pressure |
float | no | Return duct pressure |
extract_fan_speed |
float | no | Return fan speed |
heating_valve |
float | no | Heating coil valve opening |
cooling_valve |
float | no | Cooling coil valve opening |
Faults and alarms (frost, filter, fan, pressure, general fault synthesis) are not part of the standard schema yet; drivers declare them as non-standard attributes for now.
UI behavior: The control panel displays the supply air temperature and setpoint, fan speed, and coil valve positions.
Double-Flux Air Handling Unit (CTA double flux)
Key: ahu_double_flux
An air handling unit with both supply and extract air trains and an energy-recovery exchanger. A superset of ahu_single_flux; the required extract_air_temperature and extract_fan_speed distinguish it from the single-flux type.
| Attribute | Data type | Required | Description |
|---|---|---|---|
supply_air_temperature |
float | yes | Supply air temperature |
supply_air_temperature_setpoint |
float | yes | Supply air temperature setpoint |
supply_fan_speed |
float | yes | Supply fan speed |
extract_air_temperature |
float | yes | Extract/return air temperature |
extract_fan_speed |
float | yes | Extract fan speed |
onoff_state |
bool | no | Power on/off state |
hvac_mode |
string | no | Operating mode |
supply_air_pressure |
float | no | Supply duct pressure |
supply_air_pressure_setpoint |
float | no | Supply duct pressure setpoint |
extract_air_pressure |
float | no | Extract duct pressure |
extract_air_pressure_setpoint |
float | no | Extract duct pressure setpoint |
outdoor_air_temperature |
float | no | Fresh/outdoor air temperature |
exhaust_air_temperature |
float | no | Exhaust (rejected) air temperature |
heating_valve |
float | no | Heating coil valve opening |
cooling_valve |
float | no | Cooling coil valve opening |
exchanger_utilization |
float | no | Energy exchanger utilization — heat and cool recovery |
exchanger_utilization is a reported value (e.g. recovery wheel speed or bypass position), never computed by Gridone. The exchanger recovers energy in both directions — heat in winter and coolth (free-cooling) in summer — so the name is direction-neutral.
Faults and alarms (frost, filters, fans, pressure, general fault synthesis) are not part of the standard schema yet; drivers declare them as non-standard attributes for now.
UI behavior: The control panel displays both supply and extract air temperatures, fan speeds, coil valve positions, and exchanger utilization.