description: >
    Implement to provide sensor readings.  Objects implementing
    Sensor.Value must be instantiated in the correct
    hierarchy within the sensors namespace.  The following sensor
    hierarchies are recognized:
      airflow
      altitude
      current
      energy
      fan_tach
      humidity
      power
      pressure
      temperature
      utilization
      voltage

    Any service implementing Sensor.Value on one or more objects must
    implement org.freedesktop.DBus.ObjectManager on the sensors namespace root.

    All Sensor.Value properties are read-only.

properties:
    - name: Value
      type: double
      description: >
          The sensor reading.
    - name: MaxValue
      type: double
      default: infinity
      description: >
          The Maximum supported sensor reading.
    - name: MinValue
      type: double
      default: -infinity
      description: >
          The Minimum supported sensor reading.
    - name: Unit
      type: enum[self.Unit]
      description: >
          The unit of the reading.  Immutable once set for a sensor.
          For objects in the airflow namespace, Unit must be "CFM"
          For objects in the altitude namespace, Unit must be "Meters".
          For objects in the current namespace, Unit must be "Amperes".
          For objects in the energy namespace, Unit must be "Joules".
          For objects in the fan_tach namespace, Unit must be "RPMS".
          For objects in the humidity namespace, Unit must be "PercentRH"
          For objects in the power namespace, Unit must be "Watts".
          For objects in the pressure namespace, Unit must be "Pascals"
          For objects in the temperature namespace, Unit must be "DegreesC".
          For objects in the utilization namespace, Unit must be "Percent"
          For objects in the voltage namespace, Unit must be "Volts".

enumerations:
    - name: Unit
      description: >
        A sensor reading unit.
      values:
        - name: Amperes
          description: >
            Electrical charge flow rate as Amperes.
        - name: CFM
          description: >
            To calculate Air Flow in Cubic Feet per Minute
        - name: DegreesC
          description: >
            Temperature as degrees Celsius.
        - name: Joules
          description: >
            Energy transfer as Joules.
        - name: Meters
          description: >
            Length as meters.
        - name: Percent
          description: >
            Resource utilization as a percentage.
        - name: PercentRH
          description: >
            Relative humidity as a percentage.
        - name: Pascals
          description: >
            Pressure as pascals.
        - name: RPMS
          description: >
            Frequency of rotation as revolutions per minute.
        - name: Volts
          description: >
            Electomotive force as volts.
        - name: Watts
          description: >
            Rate of energy transfer as Watts.
