Add sensor state class validation for device classes (#84402)
Co-authored-by: epenet <6771947+epenet@users.noreply.github.com>
This commit is contained in:
parent
8165f487c7
commit
0a367359f4
3 changed files with 130 additions and 52 deletions
|
@ -501,3 +501,64 @@ DEVICE_CLASS_UNITS: dict[SensorDeviceClass, set[type[StrEnum] | str | None]] = {
|
|||
SensorDeviceClass.WEIGHT: set(UnitOfMass),
|
||||
SensorDeviceClass.WIND_SPEED: set(UnitOfSpeed),
|
||||
}
|
||||
|
||||
DEVICE_CLASS_STATE_CLASSES: dict[SensorDeviceClass, set[SensorStateClass | None]] = {
|
||||
SensorDeviceClass.APPARENT_POWER: {SensorStateClass.MEASUREMENT},
|
||||
SensorDeviceClass.AQI: {SensorStateClass.MEASUREMENT},
|
||||
SensorDeviceClass.ATMOSPHERIC_PRESSURE: {SensorStateClass.MEASUREMENT},
|
||||
SensorDeviceClass.BATTERY: {SensorStateClass.MEASUREMENT},
|
||||
SensorDeviceClass.CO: {SensorStateClass.MEASUREMENT},
|
||||
SensorDeviceClass.CO2: {SensorStateClass.MEASUREMENT},
|
||||
SensorDeviceClass.CURRENT: {SensorStateClass.MEASUREMENT},
|
||||
SensorDeviceClass.DATA_RATE: {SensorStateClass.MEASUREMENT},
|
||||
SensorDeviceClass.DATA_SIZE: set(SensorStateClass),
|
||||
SensorDeviceClass.DATE: set(),
|
||||
SensorDeviceClass.DISTANCE: set(SensorStateClass),
|
||||
SensorDeviceClass.DURATION: set(),
|
||||
SensorDeviceClass.ENERGY: {
|
||||
SensorStateClass.TOTAL,
|
||||
SensorStateClass.TOTAL_INCREASING,
|
||||
},
|
||||
SensorDeviceClass.ENUM: set(),
|
||||
SensorDeviceClass.FREQUENCY: {SensorStateClass.MEASUREMENT},
|
||||
SensorDeviceClass.GAS: {SensorStateClass.TOTAL, SensorStateClass.TOTAL_INCREASING},
|
||||
SensorDeviceClass.HUMIDITY: {SensorStateClass.MEASUREMENT},
|
||||
SensorDeviceClass.ILLUMINANCE: {SensorStateClass.MEASUREMENT},
|
||||
SensorDeviceClass.IRRADIANCE: {SensorStateClass.MEASUREMENT},
|
||||
SensorDeviceClass.MOISTURE: {SensorStateClass.MEASUREMENT},
|
||||
SensorDeviceClass.MONETARY: {SensorStateClass.TOTAL},
|
||||
SensorDeviceClass.NITROGEN_DIOXIDE: {SensorStateClass.MEASUREMENT},
|
||||
SensorDeviceClass.NITROGEN_MONOXIDE: {SensorStateClass.MEASUREMENT},
|
||||
SensorDeviceClass.NITROUS_OXIDE: {SensorStateClass.MEASUREMENT},
|
||||
SensorDeviceClass.OZONE: {SensorStateClass.MEASUREMENT},
|
||||
SensorDeviceClass.PM1: {SensorStateClass.MEASUREMENT},
|
||||
SensorDeviceClass.PM10: {SensorStateClass.MEASUREMENT},
|
||||
SensorDeviceClass.PM25: {SensorStateClass.MEASUREMENT},
|
||||
SensorDeviceClass.POWER_FACTOR: {SensorStateClass.MEASUREMENT},
|
||||
SensorDeviceClass.POWER: {SensorStateClass.MEASUREMENT},
|
||||
SensorDeviceClass.PRECIPITATION: {
|
||||
SensorStateClass.TOTAL,
|
||||
SensorStateClass.TOTAL_INCREASING,
|
||||
},
|
||||
SensorDeviceClass.PRECIPITATION_INTENSITY: {SensorStateClass.MEASUREMENT},
|
||||
SensorDeviceClass.PRESSURE: {SensorStateClass.MEASUREMENT},
|
||||
SensorDeviceClass.REACTIVE_POWER: {SensorStateClass.MEASUREMENT},
|
||||
SensorDeviceClass.SIGNAL_STRENGTH: {SensorStateClass.MEASUREMENT},
|
||||
SensorDeviceClass.SOUND_PRESSURE: {SensorStateClass.MEASUREMENT},
|
||||
SensorDeviceClass.SPEED: {SensorStateClass.MEASUREMENT},
|
||||
SensorDeviceClass.SULPHUR_DIOXIDE: {SensorStateClass.MEASUREMENT},
|
||||
SensorDeviceClass.TEMPERATURE: {SensorStateClass.MEASUREMENT},
|
||||
SensorDeviceClass.TIMESTAMP: set(),
|
||||
SensorDeviceClass.VOLATILE_ORGANIC_COMPOUNDS: {SensorStateClass.MEASUREMENT},
|
||||
SensorDeviceClass.VOLTAGE: {SensorStateClass.MEASUREMENT},
|
||||
SensorDeviceClass.VOLUME: {
|
||||
SensorStateClass.TOTAL,
|
||||
SensorStateClass.TOTAL_INCREASING,
|
||||
},
|
||||
SensorDeviceClass.WATER: {
|
||||
SensorStateClass.TOTAL,
|
||||
SensorStateClass.TOTAL_INCREASING,
|
||||
},
|
||||
SensorDeviceClass.WEIGHT: {SensorStateClass.TOTAL},
|
||||
SensorDeviceClass.WIND_SPEED: {SensorStateClass.MEASUREMENT},
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue