Skip to content

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.