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.
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 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 (e.g., heating, cooling, auto) |
fan_speed |
string | no | Fan speed setting |
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 |
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 (°C) |
weather_code |
int | yes | WMO weather interpretation code (0–99) |
wind_speed |
float | yes | Wind speed (km/h) |
wind_direction |
int | yes | Wind direction in degrees (0–360) |
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.