59 lines
1.6 KiB
Python
59 lines
1.6 KiB
Python
"""
|
|
Support for VOC.
|
|
|
|
For more details about this platform, please refer to the documentation at
|
|
https://home-assistant.io/components/sensor.volvooncall/
|
|
|
|
"""
|
|
import logging
|
|
|
|
from homeassistant.components.volvooncall import VolvoEntity
|
|
|
|
_LOGGER = logging.getLogger(__name__)
|
|
|
|
SENSORS = [('odometer', 'Odometer', 'km', 'mdi:speedometer'),
|
|
('fuel_amount', 'Fuel', 'L', 'mdi:gas-station'),
|
|
('fuel_amount_level', 'Fuel', '%', 'mdi:water-percent'),
|
|
('distance_to_empty', 'Range', 'km', 'mdi:ruler')]
|
|
|
|
|
|
def setup_platform(hass, config, add_devices, discovery_info=None):
|
|
"""Setup Volvo sensors."""
|
|
if discovery_info is None:
|
|
return
|
|
add_devices(VolvoSensor(hass, discovery_info, sensor)
|
|
for sensor in SENSORS)
|
|
|
|
|
|
class VolvoSensor(VolvoEntity):
|
|
"""Representation of a Volvo sensor."""
|
|
|
|
def __init__(self, hass, vehicle, sensor):
|
|
"""Initialize sensor."""
|
|
super().__init__(hass, vehicle)
|
|
self._sensor = sensor
|
|
|
|
@property
|
|
def state(self):
|
|
"""Return the state of the sensor."""
|
|
attr = self._sensor[0]
|
|
val = getattr(self.vehicle, attr)
|
|
if attr == 'odometer':
|
|
return round(val / 1000) # km
|
|
else:
|
|
return val
|
|
|
|
@property
|
|
def _name(self):
|
|
"""Name of quantity."""
|
|
return self._sensor[1]
|
|
|
|
@property
|
|
def unit_of_measurement(self):
|
|
"""Return the unit of measurement."""
|
|
return self._sensor[2]
|
|
|
|
@property
|
|
def icon(self):
|
|
"""Return the icon."""
|
|
return self._sensor[3]
|