package hu.gerviba.probe.util enum class SensorDeviceClass(val literal: String, val description: String) { // Non-numerical device classes DATE("date", "Date. Unit of measurement: None. ISO8601 format."), DURATION("duration", "Fixed duration. Unit of measurement: d, h, min, s, ms."), ENUM("enum", "Enumeration. Provides a fixed list of options the state of the sensor can be in. Unit of measurement: None."), TIMESTAMP("timestamp", "Timestamp. Unit of measurement: None. ISO8601 format."), // Numerical device classes APPARENT_POWER("apparent_power", "Apparent power. Unit of measurement: VA."), AQI("aqi", "Air Quality Index. Unit of measurement: None."), ATMOSPHERIC_PRESSURE("atmospheric_pressure", "Atmospheric pressure. Unit of measurement: UnitOfPressure units."), BATTERY("battery", "Percentage of battery that is left. Unit of measurement: %."), CO("carbon_monoxide", "Carbon Monoxide gas concentration. Unit of measurement: ppm."), CO2("carbon_dioxide", "Carbon Dioxide gas concentration. Unit of measurement: ppm."), CURRENT("current", "Current. Unit of measurement: A, mA."), DATA_RATE("data_rate", "Data rate. Unit of measurement: UnitOfDataRate."), DATA_SIZE("data_size", "Data size. Unit of measurement: UnitOfInformation."), DISTANCE("distance", "Generic distance. Unit of measurement: LENGTH_* units - SI /metric: mm, cm, m, km; USCS / imperial: in, ft, yd, mi."), ENERGY("energy", "Energy. Unit of measurement: Wh, kWh, MWh, MJ, GJ."), ENERGY_STORAGE("energy_storage", "Stored energy. Unit of measurement: Wh, kWh, MWh, MJ, GJ."), FREQUENCY("frequency", "Frequency. Unit of measurement: Hz, kHz, MHz, GHz."), GAS("gas", "Gas. Unit of measurement: SI / metric: m³; USCS / imperial: ft³, CCF."), HUMIDITY("humidity", "Relative humidity. Unit of measurement: %."), ILLUMINANCE("illuminance", "Illuminance. Unit of measurement: lx."), IRRADIANCE("irradiance", "Irradiance. Unit of measurement: SI / metric: W/m²; USCS / imperial: BTU/(h⋅ft²)."), MOISTURE("moisture", "Moisture. Unit of measurement: %."), MONETARY("monetary", "Amount of money. Unit of measurement: ISO4217 currency code."), NITROGEN_DIOXIDE("nitrogen_dioxide", "Amount of NO2. Unit of measurement: µg/m³."), NITROGEN_MONOXIDE("nitrogen_monoxide", "Amount of NO. Unit of measurement: µg/m³."), NITROUS_OXIDE("nitrous_oxide", "Amount of N2O. Unit of measurement: µg/m³."), OZONE("ozone", "Amount of O3. Unit of measurement: µg/m³."), PM1("pm1", "Particulate matter <= 0.1 μm. Unit of measurement: µg/m³."), PM10("pm10", "Particulate matter <= 10 μm. Unit of measurement: µg/m³."), PM25("pm25", "Particulate matter <= 2.5 μm. Unit of measurement: µg/m³."), POWER_FACTOR("power_factor", "Power factor. Unit of measurement: %, None."), POWER("power", "Power. Unit of measurement: W, kW."), PRECIPITATION("precipitation", "Accumulated precipitation. Unit of measurement: UnitOfPrecipitationDepth."), PRECIPITATION_INTENSITY("precipitation_intensity", "Precipitation intensity. Unit of measurement: UnitOfVolumetricFlux."), PRESSURE("pressure", "Pressure. Unit of measurement: mbar, cbar, bar, Pa, hPa, kPa, inHg, psi."), REACTIVE_POWER("reactive_power", "Reactive power. Unit of measurement: var."), SIGNAL_STRENGTH("signal_strength", "Signal strength. Unit of measurement: dB, dBm."), SOUND_PRESSURE("sound_pressure", "Sound pressure. Unit of measurement: dB, dBA."), SPEED("speed", "Generic speed. Unit of measurement: SPEED_* units or UnitOfVolumetricFlux."), SULPHUR_DIOXIDE("sulphur_dioxide", "Amount of SO2. Unit of measurement: µg/m³."), TEMPERATURE("temperature", "Temperature. Unit of measurement: °C, °F, K."), VOLATILE_ORGANIC_COMPOUNDS("volatile_organic_compounds", "Amount of VOC. Unit of measurement: µg/m³."), VOLATILE_ORGANIC_COMPOUNDS_PARTS("volatile_organic_compounds_parts", "Ratio of VOC. Unit of measurement: ppm, ppb."), VOLTAGE("voltage", "Voltage. Unit of measurement: V, mV."), VOLUME("volume", "Generic volume. Unit of measurement: VOLUME_* units."), VOLUME_STORAGE("volume_storage", "Generic stored volume. Unit of measurement: VOLUME_* units."), WATER("water", "Water. Unit of measurement: SI / metric: m³, L; USCS / imperial: ft³, CCF, gal."), WEIGHT("weight", "Generic weight, represents a measurement of an object's mass. Unit of measurement: MASS_* units."), WIND_SPEED("wind_speed", "Wind speed. Unit of measurement: SPEED_* units."), ; override fun toString(): String = literal }