Add and use bunch of data size and rate related constants (#31781)

Also fix a few units to match the corresponding data.
This commit is contained in:
Ville Skyttä 2020-02-13 18:52:58 +02:00 committed by GitHub
parent 0173c61fee
commit 3e23a3a860
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
41 changed files with 349 additions and 223 deletions

View file

@ -1,6 +1,7 @@
"""Asuswrt status sensors.""" """Asuswrt status sensors."""
import logging import logging
from homeassistant.const import DATA_GIGABYTES, DATA_RATE_MEGABITS_PER_SECOND
from homeassistant.helpers.entity import Entity from homeassistant.helpers.entity import Entity
from . import DATA_ASUSWRT from . import DATA_ASUSWRT
@ -61,7 +62,7 @@ class AsuswrtRXSensor(AsuswrtSensor):
"""Representation of a asuswrt download speed sensor.""" """Representation of a asuswrt download speed sensor."""
_name = "Asuswrt Download Speed" _name = "Asuswrt Download Speed"
_unit = "Mbit/s" _unit = DATA_RATE_MEGABITS_PER_SECOND
@property @property
def unit_of_measurement(self): def unit_of_measurement(self):
@ -79,7 +80,7 @@ class AsuswrtTXSensor(AsuswrtSensor):
"""Representation of a asuswrt upload speed sensor.""" """Representation of a asuswrt upload speed sensor."""
_name = "Asuswrt Upload Speed" _name = "Asuswrt Upload Speed"
_unit = "Mbit/s" _unit = DATA_RATE_MEGABITS_PER_SECOND
@property @property
def unit_of_measurement(self): def unit_of_measurement(self):
@ -97,7 +98,7 @@ class AsuswrtTotalRXSensor(AsuswrtSensor):
"""Representation of a asuswrt total download sensor.""" """Representation of a asuswrt total download sensor."""
_name = "Asuswrt Download" _name = "Asuswrt Download"
_unit = "Gigabyte" _unit = DATA_GIGABYTES
@property @property
def unit_of_measurement(self): def unit_of_measurement(self):
@ -115,7 +116,7 @@ class AsuswrtTotalTXSensor(AsuswrtSensor):
"""Representation of a asuswrt total upload sensor.""" """Representation of a asuswrt total upload sensor."""
_name = "Asuswrt Upload" _name = "Asuswrt Upload"
_unit = "Gigabyte" _unit = DATA_GIGABYTES
@property @property
def unit_of_measurement(self): def unit_of_measurement(self):

View file

@ -11,6 +11,7 @@ from homeassistant.const import (
ATTR_ATTRIBUTION, ATTR_ATTRIBUTION,
CONF_MONITORED_VARIABLES, CONF_MONITORED_VARIABLES,
CONF_NAME, CONF_NAME,
DATA_RATE_MEGABITS_PER_SECOND,
DEVICE_CLASS_TIMESTAMP, DEVICE_CLASS_TIMESTAMP,
) )
import homeassistant.helpers.config_validation as cv import homeassistant.helpers.config_validation as cv
@ -20,8 +21,6 @@ from homeassistant.util.dt import utcnow
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
BANDWIDTH_MEGABITS_SECONDS = "Mb/s"
ATTRIBUTION = "Powered by Bouygues Telecom" ATTRIBUTION = "Powered by Bouygues Telecom"
DEFAULT_NAME = "Bbox" DEFAULT_NAME = "Bbox"
@ -32,22 +31,22 @@ MIN_TIME_BETWEEN_UPDATES = timedelta(seconds=60)
SENSOR_TYPES = { SENSOR_TYPES = {
"down_max_bandwidth": [ "down_max_bandwidth": [
"Maximum Download Bandwidth", "Maximum Download Bandwidth",
BANDWIDTH_MEGABITS_SECONDS, DATA_RATE_MEGABITS_PER_SECOND,
"mdi:download", "mdi:download",
], ],
"up_max_bandwidth": [ "up_max_bandwidth": [
"Maximum Upload Bandwidth", "Maximum Upload Bandwidth",
BANDWIDTH_MEGABITS_SECONDS, DATA_RATE_MEGABITS_PER_SECOND,
"mdi:upload", "mdi:upload",
], ],
"current_down_bandwidth": [ "current_down_bandwidth": [
"Currently Used Download Bandwidth", "Currently Used Download Bandwidth",
BANDWIDTH_MEGABITS_SECONDS, DATA_RATE_MEGABITS_PER_SECOND,
"mdi:download", "mdi:download",
], ],
"current_up_bandwidth": [ "current_up_bandwidth": [
"Currently Used Upload Bandwidth", "Currently Used Upload Bandwidth",
BANDWIDTH_MEGABITS_SECONDS, DATA_RATE_MEGABITS_PER_SECOND,
"mdi:upload", "mdi:upload",
], ],
"uptime": ["Uptime", None, "mdi:clock"], "uptime": ["Uptime", None, "mdi:clock"],

View file

@ -12,6 +12,7 @@ from homeassistant.const import (
CONF_PASSWORD, CONF_PASSWORD,
CONF_PORT, CONF_PORT,
CONF_USERNAME, CONF_USERNAME,
DATA_RATE_KILOBYTES_PER_SECOND,
STATE_IDLE, STATE_IDLE,
) )
from homeassistant.exceptions import PlatformNotReady from homeassistant.exceptions import PlatformNotReady
@ -27,8 +28,8 @@ DHT_UPLOAD = 1000
DHT_DOWNLOAD = 1000 DHT_DOWNLOAD = 1000
SENSOR_TYPES = { SENSOR_TYPES = {
"current_status": ["Status", None], "current_status": ["Status", None],
"download_speed": ["Down Speed", "kB/s"], "download_speed": ["Down Speed", DATA_RATE_KILOBYTES_PER_SECOND],
"upload_speed": ["Up Speed", "kB/s"], "upload_speed": ["Up Speed", DATA_RATE_KILOBYTES_PER_SECOND],
} }
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend( PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(

View file

@ -6,7 +6,7 @@ import re
import voluptuous as vol import voluptuous as vol
from homeassistant.components.sensor import PLATFORM_SCHEMA from homeassistant.components.sensor import PLATFORM_SCHEMA
from homeassistant.const import CONF_SENSORS from homeassistant.const import CONF_SENSORS, DATA_GIGABYTES
import homeassistant.helpers.config_validation as cv import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.entity import Entity from homeassistant.helpers.entity import Entity
@ -26,8 +26,13 @@ SENSORS = {
SENSOR_NETWORK: ("signal strength", "Network", None, "mdi:access-point-network"), SENSOR_NETWORK: ("signal strength", "Network", None, "mdi:access-point-network"),
SENSOR_SIGNAL: ("signal strength", "Signal Strength", "%", "mdi:signal"), SENSOR_SIGNAL: ("signal strength", "Signal Strength", "%", "mdi:signal"),
SENSOR_SMS_UNREAD: ("sms unread", "SMS unread", "", "mdi:message-text-outline"), SENSOR_SMS_UNREAD: ("sms unread", "SMS unread", "", "mdi:message-text-outline"),
SENSOR_UPLOAD: ("traffic modem tx", "Sent", "GB", "mdi:cloud-upload"), SENSOR_UPLOAD: ("traffic modem tx", "Sent", DATA_GIGABYTES, "mdi:cloud-upload"),
SENSOR_DOWNLOAD: ("traffic modem rx", "Received", "GB", "mdi:cloud-download"), SENSOR_DOWNLOAD: (
"traffic modem rx",
"Received",
DATA_GIGABYTES,
"mdi:cloud-download",
),
} }
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend( PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(

View file

@ -19,6 +19,7 @@ from homeassistant.const import (
CONF_NAME, CONF_NAME,
CONF_PASSWORD, CONF_PASSWORD,
CONF_USERNAME, CONF_USERNAME,
DATA_GIGABITS,
) )
from homeassistant.exceptions import PlatformNotReady from homeassistant.exceptions import PlatformNotReady
import homeassistant.helpers.config_validation as cv import homeassistant.helpers.config_validation as cv
@ -27,7 +28,6 @@ from homeassistant.util import Throttle
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
GIGABITS = "Gb"
PRICE = "CAD" PRICE = "CAD"
DAYS = "days" DAYS = "days"
PERCENT = "%" PERCENT = "%"
@ -41,17 +41,21 @@ MIN_TIME_BETWEEN_UPDATES = timedelta(minutes=15)
SENSOR_TYPES = { SENSOR_TYPES = {
"usage": ["Usage", PERCENT, "mdi:percent"], "usage": ["Usage", PERCENT, "mdi:percent"],
"balance": ["Balance", PRICE, "mdi:square-inc-cash"], "balance": ["Balance", PRICE, "mdi:square-inc-cash"],
"limit": ["Data limit", GIGABITS, "mdi:download"], "limit": ["Data limit", DATA_GIGABITS, "mdi:download"],
"days_left": ["Days left", DAYS, "mdi:calendar-today"], "days_left": ["Days left", DAYS, "mdi:calendar-today"],
"before_offpeak_download": ["Download before offpeak", GIGABITS, "mdi:download"], "before_offpeak_download": [
"before_offpeak_upload": ["Upload before offpeak", GIGABITS, "mdi:upload"], "Download before offpeak",
"before_offpeak_total": ["Total before offpeak", GIGABITS, "mdi:download"], DATA_GIGABITS,
"offpeak_download": ["Offpeak download", GIGABITS, "mdi:download"], "mdi:download",
"offpeak_upload": ["Offpeak Upload", GIGABITS, "mdi:upload"], ],
"offpeak_total": ["Offpeak Total", GIGABITS, "mdi:download"], "before_offpeak_upload": ["Upload before offpeak", DATA_GIGABITS, "mdi:upload"],
"download": ["Download", GIGABITS, "mdi:download"], "before_offpeak_total": ["Total before offpeak", DATA_GIGABITS, "mdi:download"],
"upload": ["Upload", GIGABITS, "mdi:upload"], "offpeak_download": ["Offpeak download", DATA_GIGABITS, "mdi:download"],
"total": ["Total", GIGABITS, "mdi:download"], "offpeak_upload": ["Offpeak Upload", DATA_GIGABITS, "mdi:upload"],
"offpeak_total": ["Offpeak Total", DATA_GIGABITS, "mdi:download"],
"download": ["Download", DATA_GIGABITS, "mdi:download"],
"upload": ["Upload", DATA_GIGABITS, "mdi:upload"],
"total": ["Total", DATA_GIGABITS, "mdi:download"],
} }
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend( PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(

View file

@ -1,6 +1,7 @@
"""Support for Fast.com internet speed testing sensor.""" """Support for Fast.com internet speed testing sensor."""
import logging import logging
from homeassistant.const import DATA_RATE_MEGABITS_PER_SECOND
from homeassistant.core import callback from homeassistant.core import callback
from homeassistant.helpers.dispatcher import async_dispatcher_connect from homeassistant.helpers.dispatcher import async_dispatcher_connect
from homeassistant.helpers.restore_state import RestoreEntity from homeassistant.helpers.restore_state import RestoreEntity
@ -11,8 +12,6 @@ _LOGGER = logging.getLogger(__name__)
ICON = "mdi:speedometer" ICON = "mdi:speedometer"
UNIT_OF_MEASUREMENT = "Mbit/s"
async def async_setup_platform(hass, config, async_add_entities, discovery_info=None): async def async_setup_platform(hass, config, async_add_entities, discovery_info=None):
"""Set up the Fast.com sensor.""" """Set up the Fast.com sensor."""
@ -41,7 +40,7 @@ class SpeedtestSensor(RestoreEntity):
@property @property
def unit_of_measurement(self): def unit_of_measurement(self):
"""Return the unit of measurement of this entity, if any.""" """Return the unit of measurement of this entity, if any."""
return UNIT_OF_MEASUREMENT return DATA_RATE_MEGABITS_PER_SECOND
@property @property
def icon(self): def icon(self):

View file

@ -20,6 +20,7 @@ from homeassistant.const import (
CONF_NAME, CONF_NAME,
CONF_PASSWORD, CONF_PASSWORD,
CONF_USERNAME, CONF_USERNAME,
DATA_KILOBITS,
) )
import homeassistant.helpers.config_validation as cv import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.entity import Entity from homeassistant.helpers.entity import Entity
@ -27,7 +28,6 @@ from homeassistant.util import Throttle
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)
KILOBITS = "Kb"
PRICE = "CAD" PRICE = "CAD"
MESSAGES = "messages" MESSAGES = "messages"
MINUTES = "minutes" MINUTES = "minutes"
@ -40,9 +40,9 @@ MIN_TIME_BETWEEN_UPDATES = timedelta(minutes=15)
SENSOR_TYPES = { SENSOR_TYPES = {
"fido_dollar": ["Fido dollar", PRICE, "mdi:square-inc-cash"], "fido_dollar": ["Fido dollar", PRICE, "mdi:square-inc-cash"],
"balance": ["Balance", PRICE, "mdi:square-inc-cash"], "balance": ["Balance", PRICE, "mdi:square-inc-cash"],
"data_used": ["Data used", KILOBITS, "mdi:download"], "data_used": ["Data used", DATA_KILOBITS, "mdi:download"],
"data_limit": ["Data limit", KILOBITS, "mdi:download"], "data_limit": ["Data limit", DATA_KILOBITS, "mdi:download"],
"data_remaining": ["Data remaining", KILOBITS, "mdi:download"], "data_remaining": ["Data remaining", DATA_KILOBITS, "mdi:download"],
"text_used": ["Text used", MESSAGES, "mdi:message-text"], "text_used": ["Text used", MESSAGES, "mdi:message-text"],
"text_limit": ["Text limit", MESSAGES, "mdi:message-text"], "text_limit": ["Text limit", MESSAGES, "mdi:message-text"],
"text_remaining": ["Text remaining", MESSAGES, "mdi:message-text"], "text_remaining": ["Text remaining", MESSAGES, "mdi:message-text"],

View file

@ -6,6 +6,7 @@ import os
import voluptuous as vol import voluptuous as vol
from homeassistant.components.sensor import PLATFORM_SCHEMA from homeassistant.components.sensor import PLATFORM_SCHEMA
from homeassistant.const import DATA_MEGABYTES
import homeassistant.helpers.config_validation as cv import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.entity import Entity from homeassistant.helpers.entity import Entity
@ -42,7 +43,7 @@ class Filesize(Entity):
self._size = None self._size = None
self._last_updated = None self._last_updated = None
self._name = path.split("/")[-1] self._name = path.split("/")[-1]
self._unit_of_measurement = "MB" self._unit_of_measurement = DATA_MEGABYTES
def update(self): def update(self):
"""Update the sensor.""" """Update the sensor."""

View file

@ -7,6 +7,7 @@ import os
import voluptuous as vol import voluptuous as vol
from homeassistant.components.sensor import PLATFORM_SCHEMA from homeassistant.components.sensor import PLATFORM_SCHEMA
from homeassistant.const import DATA_MEGABYTES
import homeassistant.helpers.config_validation as cv import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.entity import Entity from homeassistant.helpers.entity import Entity
@ -63,7 +64,7 @@ class Folder(Entity):
self._number_of_files = None self._number_of_files = None
self._size = None self._size = None
self._name = os.path.split(os.path.split(folder_path)[0])[1] self._name = os.path.split(os.path.split(folder_path)[0])[1]
self._unit_of_measurement = "MB" self._unit_of_measurement = DATA_MEGABYTES
self._file_list = None self._file_list = None
def update(self): def update(self):

View file

@ -1,6 +1,7 @@
"""Support for Freebox devices (Freebox v6 and Freebox mini 4K).""" """Support for Freebox devices (Freebox v6 and Freebox mini 4K)."""
import logging import logging
from homeassistant.const import DATA_RATE_KILOBYTES_PER_SECOND
from homeassistant.helpers.entity import Entity from homeassistant.helpers.entity import Entity
from . import DATA_FREEBOX from . import DATA_FREEBOX
@ -56,7 +57,7 @@ class FbxRXSensor(FbxSensor):
"""Update the Freebox RxSensor.""" """Update the Freebox RxSensor."""
_name = "Freebox download speed" _name = "Freebox download speed"
_unit = "KB/s" _unit = DATA_RATE_KILOBYTES_PER_SECOND
_icon = "mdi:download-network" _icon = "mdi:download-network"
async def async_update(self): async def async_update(self):
@ -70,7 +71,7 @@ class FbxTXSensor(FbxSensor):
"""Update the Freebox TxSensor.""" """Update the Freebox TxSensor."""
_name = "Freebox upload speed" _name = "Freebox upload speed"
_unit = "KB/s" _unit = DATA_RATE_KILOBYTES_PER_SECOND
_icon = "mdi:upload-network" _icon = "mdi:upload-network"
async def async_update(self): async def async_update(self):

View file

@ -1,5 +1,5 @@
"""Constants for Glances component.""" """Constants for Glances component."""
from homeassistant.const import TEMP_CELSIUS from homeassistant.const import DATA_GIBIBYTES, DATA_MEBIBYTES, TEMP_CELSIUS
DOMAIN = "glances" DOMAIN = "glances"
CONF_VERSION = "version" CONF_VERSION = "version"
@ -15,14 +15,14 @@ SUPPORTED_VERSIONS = [2, 3]
SENSOR_TYPES = { SENSOR_TYPES = {
"disk_use_percent": ["fs", "used percent", "%", "mdi:harddisk"], "disk_use_percent": ["fs", "used percent", "%", "mdi:harddisk"],
"disk_use": ["fs", "used", "GiB", "mdi:harddisk"], "disk_use": ["fs", "used", DATA_GIBIBYTES, "mdi:harddisk"],
"disk_free": ["fs", "free", "GiB", "mdi:harddisk"], "disk_free": ["fs", "free", DATA_GIBIBYTES, "mdi:harddisk"],
"memory_use_percent": ["mem", "RAM used percent", "%", "mdi:memory"], "memory_use_percent": ["mem", "RAM used percent", "%", "mdi:memory"],
"memory_use": ["mem", "RAM used", "MiB", "mdi:memory"], "memory_use": ["mem", "RAM used", DATA_MEBIBYTES, "mdi:memory"],
"memory_free": ["mem", "RAM free", "MiB", "mdi:memory"], "memory_free": ["mem", "RAM free", DATA_MEBIBYTES, "mdi:memory"],
"swap_use_percent": ["memswap", "Swap used percent", "%", "mdi:memory"], "swap_use_percent": ["memswap", "Swap used percent", "%", "mdi:memory"],
"swap_use": ["memswap", "Swap used", "GiB", "mdi:memory"], "swap_use": ["memswap", "Swap used", DATA_GIBIBYTES, "mdi:memory"],
"swap_free": ["memswap", "Swap free", "GiB", "mdi:memory"], "swap_free": ["memswap", "Swap free", DATA_GIBIBYTES, "mdi:memory"],
"processor_load": ["load", "CPU load", "15 min", "mdi:memory"], "processor_load": ["load", "CPU load", "15 min", "mdi:memory"],
"process_running": ["processcount", "Running", "Count", "mdi:memory"], "process_running": ["processcount", "Running", "Count", "mdi:memory"],
"process_total": ["processcount", "Total", "Count", "mdi:memory"], "process_total": ["processcount", "Total", "Count", "mdi:memory"],
@ -32,5 +32,10 @@ SENSOR_TYPES = {
"sensor_temp": ["sensors", "Temp", TEMP_CELSIUS, "mdi:thermometer"], "sensor_temp": ["sensors", "Temp", TEMP_CELSIUS, "mdi:thermometer"],
"docker_active": ["docker", "Containers active", "", "mdi:docker"], "docker_active": ["docker", "Containers active", "", "mdi:docker"],
"docker_cpu_use": ["docker", "Containers CPU used", "%", "mdi:docker"], "docker_cpu_use": ["docker", "Containers CPU used", "%", "mdi:docker"],
"docker_memory_use": ["docker", "Containers RAM used", "MiB", "mdi:docker"], "docker_memory_use": [
"docker",
"Containers RAM used",
DATA_MEBIBYTES,
"mdi:docker",
],
} }

View file

@ -8,7 +8,6 @@ DEFAULT_NOTIFY_SERVICE_NAME = DOMAIN
UPDATE_SIGNAL = f"{DOMAIN}_update" UPDATE_SIGNAL = f"{DOMAIN}_update"
UPDATE_OPTIONS_SIGNAL = f"{DOMAIN}_options_update" UPDATE_OPTIONS_SIGNAL = f"{DOMAIN}_options_update"
UNIT_BYTES = "B"
UNIT_SECONDS = "s" UNIT_SECONDS = "s"
CONNECTION_TIMEOUT = 10 CONNECTION_TIMEOUT = 10

View file

@ -10,7 +10,7 @@ from homeassistant.components.sensor import (
DEVICE_CLASS_SIGNAL_STRENGTH, DEVICE_CLASS_SIGNAL_STRENGTH,
DOMAIN as SENSOR_DOMAIN, DOMAIN as SENSOR_DOMAIN,
) )
from homeassistant.const import CONF_URL, STATE_UNKNOWN from homeassistant.const import CONF_URL, DATA_BYTES, STATE_UNKNOWN
from . import HuaweiLteBaseEntity from . import HuaweiLteBaseEntity
from .const import ( from .const import (
@ -18,7 +18,6 @@ from .const import (
KEY_DEVICE_INFORMATION, KEY_DEVICE_INFORMATION,
KEY_DEVICE_SIGNAL, KEY_DEVICE_SIGNAL,
KEY_MONITORING_TRAFFIC_STATISTICS, KEY_MONITORING_TRAFFIC_STATISTICS,
UNIT_BYTES,
UNIT_SECONDS, UNIT_SECONDS,
) )
@ -126,19 +125,19 @@ SENSOR_META = {
name="Current connection duration", unit=UNIT_SECONDS, icon="mdi:timer" name="Current connection duration", unit=UNIT_SECONDS, icon="mdi:timer"
), ),
(KEY_MONITORING_TRAFFIC_STATISTICS, "CurrentDownload"): dict( (KEY_MONITORING_TRAFFIC_STATISTICS, "CurrentDownload"): dict(
name="Current connection download", unit=UNIT_BYTES, icon="mdi:download" name="Current connection download", unit=DATA_BYTES, icon="mdi:download"
), ),
(KEY_MONITORING_TRAFFIC_STATISTICS, "CurrentUpload"): dict( (KEY_MONITORING_TRAFFIC_STATISTICS, "CurrentUpload"): dict(
name="Current connection upload", unit=UNIT_BYTES, icon="mdi:upload" name="Current connection upload", unit=DATA_BYTES, icon="mdi:upload"
), ),
(KEY_MONITORING_TRAFFIC_STATISTICS, "TotalConnectTime"): dict( (KEY_MONITORING_TRAFFIC_STATISTICS, "TotalConnectTime"): dict(
name="Total connected duration", unit=UNIT_SECONDS, icon="mdi:timer" name="Total connected duration", unit=UNIT_SECONDS, icon="mdi:timer"
), ),
(KEY_MONITORING_TRAFFIC_STATISTICS, "TotalDownload"): dict( (KEY_MONITORING_TRAFFIC_STATISTICS, "TotalDownload"): dict(
name="Total download", unit=UNIT_BYTES, icon="mdi:download" name="Total download", unit=DATA_BYTES, icon="mdi:download"
), ),
(KEY_MONITORING_TRAFFIC_STATISTICS, "TotalUpload"): dict( (KEY_MONITORING_TRAFFIC_STATISTICS, "TotalUpload"): dict(
name="Total upload", unit=UNIT_BYTES, icon="mdi:upload" name="Total upload", unit=DATA_BYTES, icon="mdi:upload"
), ),
} }

View file

@ -13,6 +13,7 @@ from homeassistant.const import (
CONF_PORT, CONF_PORT,
CONF_PROTOCOL, CONF_PROTOCOL,
CONF_SCAN_INTERVAL, CONF_SCAN_INTERVAL,
DATA_RATE_MEGABITS_PER_SECOND,
) )
import homeassistant.helpers.config_validation as cv import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.discovery import async_load_platform from homeassistant.helpers.discovery import async_load_platform
@ -39,11 +40,9 @@ ATTR_UPLOAD = "upload"
ATTR_VERSION = "Version" ATTR_VERSION = "Version"
ATTR_HOST = "host" ATTR_HOST = "host"
UNIT_OF_MEASUREMENT = "Mbit/s"
SENSOR_TYPES = { SENSOR_TYPES = {
ATTR_DOWNLOAD: [ATTR_DOWNLOAD.capitalize(), UNIT_OF_MEASUREMENT], ATTR_DOWNLOAD: [ATTR_DOWNLOAD.capitalize(), DATA_RATE_MEGABITS_PER_SECOND],
ATTR_UPLOAD: [ATTR_UPLOAD.capitalize(), UNIT_OF_MEASUREMENT], ATTR_UPLOAD: [ATTR_UPLOAD.capitalize(), DATA_RATE_MEGABITS_PER_SECOND],
} }
PROTOCOLS = ["tcp", "udp"] PROTOCOLS = ["tcp", "udp"]

View file

@ -1,6 +1,7 @@
"""Define possible sensor types.""" """Define possible sensor types."""
from homeassistant.components.binary_sensor import DEVICE_CLASS_CONNECTIVITY from homeassistant.components.binary_sensor import DEVICE_CLASS_CONNECTIVITY
from homeassistant.const import DATA_MEBIBYTES
SENSOR_SMS = "sms" SENSOR_SMS = "sms"
SENSOR_SMS_TOTAL = "sms_total" SENSOR_SMS_TOTAL = "sms_total"
@ -9,7 +10,7 @@ SENSOR_USAGE = "usage"
SENSOR_UNITS = { SENSOR_UNITS = {
SENSOR_SMS: "unread", SENSOR_SMS: "unread",
SENSOR_SMS_TOTAL: "messages", SENSOR_SMS_TOTAL: "messages",
SENSOR_USAGE: "MiB", SENSOR_USAGE: DATA_MEBIBYTES,
"radio_quality": "%", "radio_quality": "%",
"rx_level": "dBm", "rx_level": "dBm",
"tx_level": "dBm", "tx_level": "dBm",

View file

@ -1,6 +1,7 @@
"""Monitor the NZBGet API.""" """Monitor the NZBGet API."""
import logging import logging
from homeassistant.const import DATA_MEGABYTES, DATA_RATE_MEGABYTES_PER_SECOND
from homeassistant.core import callback from homeassistant.core import callback
from homeassistant.helpers.dispatcher import async_dispatcher_connect from homeassistant.helpers.dispatcher import async_dispatcher_connect
from homeassistant.helpers.entity import Entity from homeassistant.helpers.entity import Entity
@ -12,15 +13,19 @@ _LOGGER = logging.getLogger(__name__)
DEFAULT_NAME = "NZBGet" DEFAULT_NAME = "NZBGet"
SENSOR_TYPES = { SENSOR_TYPES = {
"article_cache": ["ArticleCacheMB", "Article Cache", "MB"], "article_cache": ["ArticleCacheMB", "Article Cache", DATA_MEGABYTES],
"average_download_rate": ["AverageDownloadRate", "Average Speed", "MB/s"], "average_download_rate": [
"AverageDownloadRate",
"Average Speed",
DATA_RATE_MEGABYTES_PER_SECOND,
],
"download_paused": ["DownloadPaused", "Download Paused", None], "download_paused": ["DownloadPaused", "Download Paused", None],
"download_rate": ["DownloadRate", "Speed", "MB/s"], "download_rate": ["DownloadRate", "Speed", DATA_RATE_MEGABYTES_PER_SECOND],
"download_size": ["DownloadedSizeMB", "Size", "MB"], "download_size": ["DownloadedSizeMB", "Size", DATA_MEGABYTES],
"free_disk_space": ["FreeDiskSpaceMB", "Disk Free", "MB"], "free_disk_space": ["FreeDiskSpaceMB", "Disk Free", DATA_MEGABYTES],
"post_job_count": ["PostJobCount", "Post Processing Jobs", "Jobs"], "post_job_count": ["PostJobCount", "Post Processing Jobs", "Jobs"],
"post_paused": ["PostPaused", "Post Processing Paused", None], "post_paused": ["PostPaused", "Post Processing Paused", None],
"remaining_size": ["RemainingSizeMB", "Queue Size", "MB"], "remaining_size": ["RemainingSizeMB", "Queue Size", DATA_MEGABYTES],
"uptime": ["UpTimeSec", "Uptime", "min"], "uptime": ["UpTimeSec", "Uptime", "min"],
} }

View file

@ -10,5 +10,5 @@ set_speed:
description: Set download speed limit description: Set download speed limit
fields: fields:
speed: speed:
description: Speed limit in KB/s. 0 is unlimited. description: Speed limit in kB/s. 0 is unlimited.
example: 1000 example: 1000

View file

@ -16,6 +16,7 @@ from homeassistant.const import (
CONF_SSL, CONF_SSL,
CONF_USERNAME, CONF_USERNAME,
CONTENT_TYPE_JSON, CONTENT_TYPE_JSON,
DATA_RATE_MEGABYTES_PER_SECOND,
) )
import homeassistant.helpers.config_validation as cv import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.entity import Entity from homeassistant.helpers.entity import Entity
@ -29,7 +30,7 @@ DEFAULT_PORT = 8000
MIN_TIME_BETWEEN_UPDATES = timedelta(seconds=15) MIN_TIME_BETWEEN_UPDATES = timedelta(seconds=15)
SENSOR_TYPES = {"speed": ["speed", "Speed", "MB/s"]} SENSOR_TYPES = {"speed": ["speed", "Speed", DATA_RATE_MEGABYTES_PER_SECOND]}
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend( PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
{ {

View file

@ -11,6 +11,7 @@ from homeassistant.const import (
CONF_PASSWORD, CONF_PASSWORD,
CONF_URL, CONF_URL,
CONF_USERNAME, CONF_USERNAME,
DATA_RATE_KILOBYTES_PER_SECOND,
STATE_IDLE, STATE_IDLE,
) )
from homeassistant.exceptions import PlatformNotReady from homeassistant.exceptions import PlatformNotReady
@ -27,8 +28,8 @@ DEFAULT_NAME = "qBittorrent"
SENSOR_TYPES = { SENSOR_TYPES = {
SENSOR_TYPE_CURRENT_STATUS: ["Status", None], SENSOR_TYPE_CURRENT_STATUS: ["Status", None],
SENSOR_TYPE_DOWNLOAD_SPEED: ["Down Speed", "kB/s"], SENSOR_TYPE_DOWNLOAD_SPEED: ["Down Speed", DATA_RATE_KILOBYTES_PER_SECOND],
SENSOR_TYPE_UPLOAD_SPEED: ["Up Speed", "kB/s"], SENSOR_TYPE_UPLOAD_SPEED: ["Up Speed", DATA_RATE_KILOBYTES_PER_SECOND],
} }
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend( PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(

View file

@ -16,6 +16,8 @@ from homeassistant.const import (
CONF_TIMEOUT, CONF_TIMEOUT,
CONF_USERNAME, CONF_USERNAME,
CONF_VERIFY_SSL, CONF_VERIFY_SSL,
DATA_GIBIBYTES,
DATA_RATE_MEBIBYTES_PER_SECOND,
TEMP_CELSIUS, TEMP_CELSIUS,
) )
from homeassistant.exceptions import PlatformNotReady from homeassistant.exceptions import PlatformNotReady
@ -62,22 +64,22 @@ _CPU_MON_COND = {
"cpu_usage": ["CPU Usage", "%", "mdi:chip"], "cpu_usage": ["CPU Usage", "%", "mdi:chip"],
} }
_MEMORY_MON_COND = { _MEMORY_MON_COND = {
"memory_free": ["Memory Available", "GB", "mdi:memory"], "memory_free": ["Memory Available", DATA_GIBIBYTES, "mdi:memory"],
"memory_used": ["Memory Used", "GB", "mdi:memory"], "memory_used": ["Memory Used", DATA_GIBIBYTES, "mdi:memory"],
"memory_percent_used": ["Memory Usage", "%", "mdi:memory"], "memory_percent_used": ["Memory Usage", "%", "mdi:memory"],
} }
_NETWORK_MON_COND = { _NETWORK_MON_COND = {
"network_link_status": ["Network Link", None, "mdi:checkbox-marked-circle-outline"], "network_link_status": ["Network Link", None, "mdi:checkbox-marked-circle-outline"],
"network_tx": ["Network Up", "MB/s", "mdi:upload"], "network_tx": ["Network Up", DATA_RATE_MEBIBYTES_PER_SECOND, "mdi:upload"],
"network_rx": ["Network Down", "MB/s", "mdi:download"], "network_rx": ["Network Down", DATA_RATE_MEBIBYTES_PER_SECOND, "mdi:download"],
} }
_DRIVE_MON_COND = { _DRIVE_MON_COND = {
"drive_smart_status": ["SMART Status", None, "mdi:checkbox-marked-circle-outline"], "drive_smart_status": ["SMART Status", None, "mdi:checkbox-marked-circle-outline"],
"drive_temp": ["Temperature", TEMP_CELSIUS, "mdi:thermometer"], "drive_temp": ["Temperature", TEMP_CELSIUS, "mdi:thermometer"],
} }
_VOLUME_MON_COND = { _VOLUME_MON_COND = {
"volume_size_used": ["Used Space", "GB", "mdi:chart-pie"], "volume_size_used": ["Used Space", DATA_GIBIBYTES, "mdi:chart-pie"],
"volume_size_free": ["Free Space", "GB", "mdi:chart-pie"], "volume_size_free": ["Free Space", DATA_GIBIBYTES, "mdi:chart-pie"],
"volume_percentage_used": ["Volume Used", "%", "mdi:chart-pie"], "volume_percentage_used": ["Volume Used", "%", "mdi:chart-pie"],
} }
@ -270,7 +272,7 @@ class QNAPMemorySensor(QNAPSensor):
if self._api.data: if self._api.data:
data = self._api.data["system_stats"]["memory"] data = self._api.data["system_stats"]["memory"]
size = round_nicely(float(data["total"]) / 1024) size = round_nicely(float(data["total"]) / 1024)
return {ATTR_MEMORY_SIZE: f"{size} GB"} return {ATTR_MEMORY_SIZE: f"{size} {DATA_GIBIBYTES}"}
class QNAPNetworkSensor(QNAPSensor): class QNAPNetworkSensor(QNAPSensor):
@ -399,4 +401,6 @@ class QNAPVolumeSensor(QNAPSensor):
data = self._api.data["volumes"][self.monitor_device] data = self._api.data["volumes"][self.monitor_device]
total_gb = int(data["total_size"]) / 1024 / 1024 / 1024 total_gb = int(data["total_size"]) / 1024 / 1024 / 1024
return {ATTR_VOLUME_SIZE: "{} GB".format(round_nicely(total_gb))} return {
ATTR_VOLUME_SIZE: "{} {}".format(round_nicely(total_gb), DATA_GIBIBYTES)
}

View file

@ -14,6 +14,15 @@ from homeassistant.const import (
CONF_MONITORED_CONDITIONS, CONF_MONITORED_CONDITIONS,
CONF_PORT, CONF_PORT,
CONF_SSL, CONF_SSL,
DATA_BYTES,
DATA_EXABYTES,
DATA_GIGABYTES,
DATA_KILOBYTES,
DATA_MEGABYTES,
DATA_PETABYTES,
DATA_TERABYTES,
DATA_YOTTABYTES,
DATA_ZETTABYTES,
) )
import homeassistant.helpers.config_validation as cv import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.entity import Entity from homeassistant.helpers.entity import Entity
@ -29,12 +38,12 @@ DEFAULT_HOST = "localhost"
DEFAULT_PORT = 7878 DEFAULT_PORT = 7878
DEFAULT_URLBASE = "" DEFAULT_URLBASE = ""
DEFAULT_DAYS = "1" DEFAULT_DAYS = "1"
DEFAULT_UNIT = "GB" DEFAULT_UNIT = DATA_GIGABYTES
SCAN_INTERVAL = timedelta(minutes=10) SCAN_INTERVAL = timedelta(minutes=10)
SENSOR_TYPES = { SENSOR_TYPES = {
"diskspace": ["Disk Space", "GB", "mdi:harddisk"], "diskspace": ["Disk Space", DATA_GIGABYTES, "mdi:harddisk"],
"upcoming": ["Upcoming", "Movies", "mdi:television"], "upcoming": ["Upcoming", "Movies", "mdi:television"],
"wanted": ["Wanted", "Movies", "mdi:television"], "wanted": ["Wanted", "Movies", "mdi:television"],
"movies": ["Movies", "Movies", "mdi:television"], "movies": ["Movies", "Movies", "mdi:television"],
@ -51,7 +60,17 @@ ENDPOINTS = {
} }
# Support to Yottabytes for the future, why not # Support to Yottabytes for the future, why not
BYTE_SIZES = ["B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"] BYTE_SIZES = [
DATA_BYTES,
DATA_KILOBYTES,
DATA_MEGABYTES,
DATA_GIGABYTES,
DATA_TERABYTES,
DATA_PETABYTES,
DATA_EXABYTES,
DATA_ZETTABYTES,
DATA_YOTTABYTES,
]
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend( PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
{ {
vol.Required(CONF_API_KEY): cv.string, vol.Required(CONF_API_KEY): cv.string,

View file

@ -9,6 +9,7 @@ from homeassistant.const import (
CONF_MONITORED_VARIABLES, CONF_MONITORED_VARIABLES,
CONF_NAME, CONF_NAME,
CONF_URL, CONF_URL,
DATA_RATE_KILOBYTES_PER_SECOND,
STATE_IDLE, STATE_IDLE,
) )
from homeassistant.exceptions import PlatformNotReady from homeassistant.exceptions import PlatformNotReady
@ -24,8 +25,8 @@ SENSOR_TYPE_UPLOAD_SPEED = "upload_speed"
DEFAULT_NAME = "rtorrent" DEFAULT_NAME = "rtorrent"
SENSOR_TYPES = { SENSOR_TYPES = {
SENSOR_TYPE_CURRENT_STATUS: ["Status", None], SENSOR_TYPE_CURRENT_STATUS: ["Status", None],
SENSOR_TYPE_DOWNLOAD_SPEED: ["Down Speed", "kB/s"], SENSOR_TYPE_DOWNLOAD_SPEED: ["Down Speed", DATA_RATE_KILOBYTES_PER_SECOND],
SENSOR_TYPE_UPLOAD_SPEED: ["Up Speed", "kB/s"], SENSOR_TYPE_UPLOAD_SPEED: ["Up Speed", DATA_RATE_KILOBYTES_PER_SECOND],
} }
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend( PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(

View file

@ -14,6 +14,9 @@ from homeassistant.const import (
CONF_PORT, CONF_PORT,
CONF_SENSORS, CONF_SENSORS,
CONF_SSL, CONF_SSL,
DATA_GIGABYTES,
DATA_MEGABYTES,
DATA_RATE_MEGABYTES_PER_SECOND,
) )
from homeassistant.core import callback from homeassistant.core import callback
from homeassistant.helpers import discovery from homeassistant.helpers import discovery
@ -49,16 +52,16 @@ SIGNAL_SABNZBD_UPDATED = "sabnzbd_updated"
SENSOR_TYPES = { SENSOR_TYPES = {
"current_status": ["Status", None, "status"], "current_status": ["Status", None, "status"],
"speed": ["Speed", "MB/s", "kbpersec"], "speed": ["Speed", DATA_RATE_MEGABYTES_PER_SECOND, "kbpersec"],
"queue_size": ["Queue", "MB", "mb"], "queue_size": ["Queue", DATA_MEGABYTES, "mb"],
"queue_remaining": ["Left", "MB", "mbleft"], "queue_remaining": ["Left", DATA_MEGABYTES, "mbleft"],
"disk_size": ["Disk", "GB", "diskspacetotal1"], "disk_size": ["Disk", DATA_GIGABYTES, "diskspacetotal1"],
"disk_free": ["Disk Free", "GB", "diskspace1"], "disk_free": ["Disk Free", DATA_GIGABYTES, "diskspace1"],
"queue_count": ["Queue Count", None, "noofslots_total"], "queue_count": ["Queue Count", None, "noofslots_total"],
"day_size": ["Daily Total", "GB", "day_size"], "day_size": ["Daily Total", DATA_GIGABYTES, "day_size"],
"week_size": ["Weekly Total", "GB", "week_size"], "week_size": ["Weekly Total", DATA_GIGABYTES, "week_size"],
"month_size": ["Monthly Total", "GB", "month_size"], "month_size": ["Monthly Total", DATA_GIGABYTES, "month_size"],
"total_size": ["Total", "GB", "total_size"], "total_size": ["Total", DATA_GIGABYTES, "total_size"],
} }
SPEED_LIMIT_SCHEMA = vol.Schema( SPEED_LIMIT_SCHEMA = vol.Schema(

View file

@ -14,6 +14,15 @@ from homeassistant.const import (
CONF_MONITORED_CONDITIONS, CONF_MONITORED_CONDITIONS,
CONF_PORT, CONF_PORT,
CONF_SSL, CONF_SSL,
DATA_BYTES,
DATA_EXABYTES,
DATA_GIGABYTES,
DATA_KILOBYTES,
DATA_MEGABYTES,
DATA_PETABYTES,
DATA_TERABYTES,
DATA_YOTTABYTES,
DATA_ZETTABYTES,
) )
import homeassistant.helpers.config_validation as cv import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.entity import Entity from homeassistant.helpers.entity import Entity
@ -29,10 +38,10 @@ DEFAULT_HOST = "localhost"
DEFAULT_PORT = 8989 DEFAULT_PORT = 8989
DEFAULT_URLBASE = "" DEFAULT_URLBASE = ""
DEFAULT_DAYS = "1" DEFAULT_DAYS = "1"
DEFAULT_UNIT = "GB" DEFAULT_UNIT = DATA_GIGABYTES
SENSOR_TYPES = { SENSOR_TYPES = {
"diskspace": ["Disk Space", "GB", "mdi:harddisk"], "diskspace": ["Disk Space", DATA_GIGABYTES, "mdi:harddisk"],
"queue": ["Queue", "Episodes", "mdi:download"], "queue": ["Queue", "Episodes", "mdi:download"],
"upcoming": ["Upcoming", "Episodes", "mdi:television"], "upcoming": ["Upcoming", "Episodes", "mdi:television"],
"wanted": ["Wanted", "Episodes", "mdi:television"], "wanted": ["Wanted", "Episodes", "mdi:television"],
@ -52,7 +61,17 @@ ENDPOINTS = {
} }
# Support to Yottabytes for the future, why not # Support to Yottabytes for the future, why not
BYTE_SIZES = ["B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"] BYTE_SIZES = [
DATA_BYTES,
DATA_KILOBYTES,
DATA_MEGABYTES,
DATA_GIGABYTES,
DATA_TERABYTES,
DATA_PETABYTES,
DATA_EXABYTES,
DATA_ZETTABYTES,
DATA_YOTTABYTES,
]
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend( PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(
{ {
vol.Required(CONF_API_KEY): cv.string, vol.Required(CONF_API_KEY): cv.string,

View file

@ -1,10 +1,12 @@
"""Consts used by Speedtest.net.""" """Consts used by Speedtest.net."""
from homeassistant.const import DATA_RATE_MEGABITS_PER_SECOND
DOMAIN = "speedtestdotnet" DOMAIN = "speedtestdotnet"
DATA_UPDATED = f"{DOMAIN}_data_updated" DATA_UPDATED = f"{DOMAIN}_data_updated"
SENSOR_TYPES = { SENSOR_TYPES = {
"ping": ["Ping", "ms"], "ping": ["Ping", "ms"],
"download": ["Download", "Mbit/s"], "download": ["Download", DATA_RATE_MEGABITS_PER_SECOND],
"upload": ["Upload", "Mbit/s"], "upload": ["Upload", DATA_RATE_MEGABITS_PER_SECOND],
} }

View file

@ -8,7 +8,12 @@ import voluptuous as vol
import xmltodict import xmltodict
from homeassistant.components.sensor import PLATFORM_SCHEMA from homeassistant.components.sensor import PLATFORM_SCHEMA
from homeassistant.const import CONF_API_KEY, CONF_MONITORED_VARIABLES, CONF_NAME from homeassistant.const import (
CONF_API_KEY,
CONF_MONITORED_VARIABLES,
CONF_NAME,
DATA_GIGABYTES,
)
from homeassistant.helpers.aiohttp_client import async_get_clientsession from homeassistant.helpers.aiohttp_client import async_get_clientsession
import homeassistant.helpers.config_validation as cv import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.entity import Entity from homeassistant.helpers.entity import Entity
@ -19,7 +24,6 @@ _LOGGER = logging.getLogger(__name__)
DEFAULT_NAME = "Start.ca" DEFAULT_NAME = "Start.ca"
CONF_TOTAL_BANDWIDTH = "total_bandwidth" CONF_TOTAL_BANDWIDTH = "total_bandwidth"
GIGABYTES = "GB"
PERCENT = "%" PERCENT = "%"
MIN_TIME_BETWEEN_UPDATES = timedelta(hours=1) MIN_TIME_BETWEEN_UPDATES = timedelta(hours=1)
@ -27,17 +31,17 @@ REQUEST_TIMEOUT = 5 # seconds
SENSOR_TYPES = { SENSOR_TYPES = {
"usage": ["Usage Ratio", PERCENT, "mdi:percent"], "usage": ["Usage Ratio", PERCENT, "mdi:percent"],
"usage_gb": ["Usage", GIGABYTES, "mdi:download"], "usage_gb": ["Usage", DATA_GIGABYTES, "mdi:download"],
"limit": ["Data limit", GIGABYTES, "mdi:download"], "limit": ["Data limit", DATA_GIGABYTES, "mdi:download"],
"used_download": ["Used Download", GIGABYTES, "mdi:download"], "used_download": ["Used Download", DATA_GIGABYTES, "mdi:download"],
"used_upload": ["Used Upload", GIGABYTES, "mdi:upload"], "used_upload": ["Used Upload", DATA_GIGABYTES, "mdi:upload"],
"used_total": ["Used Total", GIGABYTES, "mdi:download"], "used_total": ["Used Total", DATA_GIGABYTES, "mdi:download"],
"grace_download": ["Grace Download", GIGABYTES, "mdi:download"], "grace_download": ["Grace Download", DATA_GIGABYTES, "mdi:download"],
"grace_upload": ["Grace Upload", GIGABYTES, "mdi:upload"], "grace_upload": ["Grace Upload", DATA_GIGABYTES, "mdi:upload"],
"grace_total": ["Grace Total", GIGABYTES, "mdi:download"], "grace_total": ["Grace Total", DATA_GIGABYTES, "mdi:download"],
"total_download": ["Total Download", GIGABYTES, "mdi:download"], "total_download": ["Total Download", DATA_GIGABYTES, "mdi:download"],
"total_upload": ["Total Upload", GIGABYTES, "mdi:download"], "total_upload": ["Total Upload", DATA_GIGABYTES, "mdi:download"],
"used_remaining": ["Remaining", GIGABYTES, "mdi:download"], "used_remaining": ["Remaining", DATA_GIGABYTES, "mdi:download"],
} }
PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend( PLATFORM_SCHEMA = PLATFORM_SCHEMA.extend(

View file

@ -17,6 +17,8 @@ from homeassistant.const import (
CONF_PORT, CONF_PORT,
CONF_SSL, CONF_SSL,
CONF_USERNAME, CONF_USERNAME,
DATA_MEGABYTES,
DATA_RATE_KILOBYTES_PER_SECOND,
EVENT_HOMEASSISTANT_START, EVENT_HOMEASSISTANT_START,
TEMP_CELSIUS, TEMP_CELSIUS,
) )
@ -43,14 +45,14 @@ _UTILISATION_MON_COND = {
"cpu_5min_load": ["CPU Load (5 min)", "%", "mdi:chip"], "cpu_5min_load": ["CPU Load (5 min)", "%", "mdi:chip"],
"cpu_15min_load": ["CPU Load (15 min)", "%", "mdi:chip"], "cpu_15min_load": ["CPU Load (15 min)", "%", "mdi:chip"],
"memory_real_usage": ["Memory Usage (Real)", "%", "mdi:memory"], "memory_real_usage": ["Memory Usage (Real)", "%", "mdi:memory"],
"memory_size": ["Memory Size", "Mb", "mdi:memory"], "memory_size": ["Memory Size", DATA_MEGABYTES, "mdi:memory"],
"memory_cached": ["Memory Cached", "Mb", "mdi:memory"], "memory_cached": ["Memory Cached", DATA_MEGABYTES, "mdi:memory"],
"memory_available_swap": ["Memory Available (Swap)", "Mb", "mdi:memory"], "memory_available_swap": ["Memory Available (Swap)", DATA_MEGABYTES, "mdi:memory"],
"memory_available_real": ["Memory Available (Real)", "Mb", "mdi:memory"], "memory_available_real": ["Memory Available (Real)", DATA_MEGABYTES, "mdi:memory"],
"memory_total_swap": ["Memory Total (Swap)", "Mb", "mdi:memory"], "memory_total_swap": ["Memory Total (Swap)", DATA_MEGABYTES, "mdi:memory"],
"memory_total_real": ["Memory Total (Real)", "Mb", "mdi:memory"], "memory_total_real": ["Memory Total (Real)", DATA_MEGABYTES, "mdi:memory"],
"network_up": ["Network Up", "Kbps", "mdi:upload"], "network_up": ["Network Up", DATA_RATE_KILOBYTES_PER_SECOND, "mdi:upload"],
"network_down": ["Network Down", "Kbps", "mdi:download"], "network_down": ["Network Down", DATA_RATE_KILOBYTES_PER_SECOND, "mdi:download"],
} }
_STORAGE_VOL_MON_COND = { _STORAGE_VOL_MON_COND = {
"volume_status": ["Status", None, "mdi:checkbox-marked-circle-outline"], "volume_status": ["Status", None, "mdi:checkbox-marked-circle-outline"],

View file

@ -7,7 +7,15 @@ import psutil
import voluptuous as vol import voluptuous as vol
from homeassistant.components.sensor import PLATFORM_SCHEMA from homeassistant.components.sensor import PLATFORM_SCHEMA
from homeassistant.const import CONF_RESOURCES, CONF_TYPE, STATE_OFF, STATE_ON from homeassistant.const import (
CONF_RESOURCES,
CONF_TYPE,
DATA_GIBIBYTES,
DATA_MEBIBYTES,
DATA_RATE_MEGABYTES_PER_SECOND,
STATE_OFF,
STATE_ON,
)
import homeassistant.helpers.config_validation as cv import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.entity import Entity from homeassistant.helpers.entity import Entity
import homeassistant.util.dt as dt_util import homeassistant.util.dt as dt_util
@ -19,8 +27,8 @@ _LOGGER = logging.getLogger(__name__)
CONF_ARG = "arg" CONF_ARG = "arg"
SENSOR_TYPES = { SENSOR_TYPES = {
"disk_free": ["Disk free", "GiB", "mdi:harddisk", None], "disk_free": ["Disk free", DATA_GIBIBYTES, "mdi:harddisk", None],
"disk_use": ["Disk use", "GiB", "mdi:harddisk", None], "disk_use": ["Disk use", DATA_GIBIBYTES, "mdi:harddisk", None],
"disk_use_percent": ["Disk use (percent)", "%", "mdi:harddisk", None], "disk_use_percent": ["Disk use (percent)", "%", "mdi:harddisk", None],
"ipv4_address": ["IPv4 address", "", "mdi:server-network", None], "ipv4_address": ["IPv4 address", "", "mdi:server-network", None],
"ipv6_address": ["IPv6 address", "", "mdi:server-network", None], "ipv6_address": ["IPv6 address", "", "mdi:server-network", None],
@ -28,29 +36,29 @@ SENSOR_TYPES = {
"load_15m": ["Load (15m)", " ", "mdi:memory", None], "load_15m": ["Load (15m)", " ", "mdi:memory", None],
"load_1m": ["Load (1m)", " ", "mdi:memory", None], "load_1m": ["Load (1m)", " ", "mdi:memory", None],
"load_5m": ["Load (5m)", " ", "mdi:memory", None], "load_5m": ["Load (5m)", " ", "mdi:memory", None],
"memory_free": ["Memory free", "MiB", "mdi:memory", None], "memory_free": ["Memory free", DATA_MEBIBYTES, "mdi:memory", None],
"memory_use": ["Memory use", "MiB", "mdi:memory", None], "memory_use": ["Memory use", DATA_MEBIBYTES, "mdi:memory", None],
"memory_use_percent": ["Memory use (percent)", "%", "mdi:memory", None], "memory_use_percent": ["Memory use (percent)", "%", "mdi:memory", None],
"network_in": ["Network in", "MiB", "mdi:server-network", None], "network_in": ["Network in", DATA_MEBIBYTES, "mdi:server-network", None],
"network_out": ["Network out", "MiB", "mdi:server-network", None], "network_out": ["Network out", DATA_MEBIBYTES, "mdi:server-network", None],
"packets_in": ["Packets in", " ", "mdi:server-network", None], "packets_in": ["Packets in", " ", "mdi:server-network", None],
"packets_out": ["Packets out", " ", "mdi:server-network", None], "packets_out": ["Packets out", " ", "mdi:server-network", None],
"throughput_network_in": [ "throughput_network_in": [
"Network throughput in", "Network throughput in",
"MB/s", DATA_RATE_MEGABYTES_PER_SECOND,
"mdi:server-network", "mdi:server-network",
None, None,
], ],
"throughput_network_out": [ "throughput_network_out": [
"Network throughput out", "Network throughput out",
"MB/s", DATA_RATE_MEGABYTES_PER_SECOND,
"mdi:server-network", "mdi:server-network",
None, None,
], ],
"process": ["Process", " ", "mdi:memory", None], "process": ["Process", " ", "mdi:memory", None],
"processor_use": ["Processor use", "%", "mdi:memory", None], "processor_use": ["Processor use", "%", "mdi:memory", None],
"swap_free": ["Swap free", "MiB", "mdi:harddisk", None], "swap_free": ["Swap free", DATA_MEBIBYTES, "mdi:harddisk", None],
"swap_use": ["Swap use", "MiB", "mdi:harddisk", None], "swap_use": ["Swap use", DATA_MEBIBYTES, "mdi:harddisk", None],
"swap_use_percent": ["Swap use (percent)", "%", "mdi:harddisk", None], "swap_use_percent": ["Swap use (percent)", "%", "mdi:harddisk", None],
} }

View file

@ -6,7 +6,12 @@ import async_timeout
import voluptuous as vol import voluptuous as vol
from homeassistant.components.sensor import PLATFORM_SCHEMA from homeassistant.components.sensor import PLATFORM_SCHEMA
from homeassistant.const import CONF_API_KEY, CONF_MONITORED_VARIABLES, CONF_NAME from homeassistant.const import (
CONF_API_KEY,
CONF_MONITORED_VARIABLES,
CONF_NAME,
DATA_GIGABYTES,
)
from homeassistant.helpers.aiohttp_client import async_get_clientsession from homeassistant.helpers.aiohttp_client import async_get_clientsession
import homeassistant.helpers.config_validation as cv import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.entity import Entity from homeassistant.helpers.entity import Entity
@ -17,7 +22,6 @@ _LOGGER = logging.getLogger(__name__)
DEFAULT_NAME = "TekSavvy" DEFAULT_NAME = "TekSavvy"
CONF_TOTAL_BANDWIDTH = "total_bandwidth" CONF_TOTAL_BANDWIDTH = "total_bandwidth"
GIGABYTES = "GB"
PERCENT = "%" PERCENT = "%"
MIN_TIME_BETWEEN_UPDATES = timedelta(hours=1) MIN_TIME_BETWEEN_UPDATES = timedelta(hours=1)
@ -25,15 +29,15 @@ REQUEST_TIMEOUT = 5 # seconds
SENSOR_TYPES = { SENSOR_TYPES = {
"usage": ["Usage Ratio", PERCENT, "mdi:percent"], "usage": ["Usage Ratio", PERCENT, "mdi:percent"],
"usage_gb": ["Usage", GIGABYTES, "mdi:download"], "usage_gb": ["Usage", DATA_GIGABYTES, "mdi:download"],
"limit": ["Data limit", GIGABYTES, "mdi:download"], "limit": ["Data limit", DATA_GIGABYTES, "mdi:download"],
"onpeak_download": ["On Peak Download", GIGABYTES, "mdi:download"], "onpeak_download": ["On Peak Download", DATA_GIGABYTES, "mdi:download"],
"onpeak_upload": ["On Peak Upload", GIGABYTES, "mdi:upload"], "onpeak_upload": ["On Peak Upload", DATA_GIGABYTES, "mdi:upload"],
"onpeak_total": ["On Peak Total", GIGABYTES, "mdi:download"], "onpeak_total": ["On Peak Total", DATA_GIGABYTES, "mdi:download"],
"offpeak_download": ["Off Peak download", GIGABYTES, "mdi:download"], "offpeak_download": ["Off Peak download", DATA_GIGABYTES, "mdi:download"],
"offpeak_upload": ["Off Peak Upload", GIGABYTES, "mdi:upload"], "offpeak_upload": ["Off Peak Upload", DATA_GIGABYTES, "mdi:upload"],
"offpeak_total": ["Off Peak Total", GIGABYTES, "mdi:download"], "offpeak_total": ["Off Peak Total", DATA_GIGABYTES, "mdi:download"],
"onpeak_remaining": ["Remaining", GIGABYTES, "mdi:download"], "onpeak_remaining": ["Remaining", DATA_GIGABYTES, "mdi:download"],
} }
API_HA_MAP = ( API_HA_MAP = (

View file

@ -1,13 +1,16 @@
"""Constants for the Transmission Bittorent Client component.""" """Constants for the Transmission Bittorent Client component."""
from homeassistant.const import DATA_RATE_MEGABYTES_PER_SECOND
DOMAIN = "transmission" DOMAIN = "transmission"
SENSOR_TYPES = { SENSOR_TYPES = {
"active_torrents": ["Active Torrents", "Torrents"], "active_torrents": ["Active Torrents", "Torrents"],
"current_status": ["Status", None], "current_status": ["Status", None],
"download_speed": ["Down Speed", "MB/s"], "download_speed": ["Down Speed", DATA_RATE_MEGABYTES_PER_SECOND],
"paused_torrents": ["Paused Torrents", "Torrents"], "paused_torrents": ["Paused Torrents", "Torrents"],
"total_torrents": ["Total Torrents", "Torrents"], "total_torrents": ["Total Torrents", "Torrents"],
"upload_speed": ["Up Speed", "MB/s"], "upload_speed": ["Up Speed", DATA_RATE_MEGABYTES_PER_SECOND],
"completed_torrents": ["Completed Torrents", "Torrents"], "completed_torrents": ["Completed Torrents", "Torrents"],
"started_torrents": ["Started Torrents", "Torrents"], "started_torrents": ["Started Torrents", "Torrents"],
} }

View file

@ -4,7 +4,7 @@ import logging
import voluptuous as vol import voluptuous as vol
from homeassistant.components.sensor import PLATFORM_SCHEMA from homeassistant.components.sensor import PLATFORM_SCHEMA
from homeassistant.const import CONF_MONITORED_CONDITIONS, CONF_NAME from homeassistant.const import CONF_MONITORED_CONDITIONS, CONF_NAME, DATA_GIGABYTES
import homeassistant.helpers.config_validation as cv import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.entity import Entity from homeassistant.helpers.entity import Entity
@ -21,7 +21,7 @@ DEFAULT_NAME = "Vultr {} {}"
MONITORED_CONDITIONS = { MONITORED_CONDITIONS = {
ATTR_CURRENT_BANDWIDTH_USED: [ ATTR_CURRENT_BANDWIDTH_USED: [
"Current Bandwidth Used", "Current Bandwidth Used",
"GB", DATA_GIGABYTES,
"mdi:chart-histogram", "mdi:chart-histogram",
], ],
ATTR_PENDING_CHARGES: ["Pending Charges", "US$", "mdi:currency-usd"], ATTR_PENDING_CHARGES: ["Pending Charges", "US$", "mdi:currency-usd"],

View file

@ -30,4 +30,3 @@ ATTR_UDP_PORT = "udp_port"
# Units of measurement # Units of measurement
CURRENT_MA = "mA" CURRENT_MA = "mA"
DATA_BYTES = "bytes"

View file

@ -4,20 +4,13 @@ import logging
from typing import Callable, List, Optional, Union from typing import Callable, List, Optional, Union
from homeassistant.config_entries import ConfigEntry from homeassistant.config_entries import ConfigEntry
from homeassistant.const import DEVICE_CLASS_TIMESTAMP from homeassistant.const import DATA_BYTES, DEVICE_CLASS_TIMESTAMP
from homeassistant.helpers.entity import Entity from homeassistant.helpers.entity import Entity
from homeassistant.helpers.typing import HomeAssistantType from homeassistant.helpers.typing import HomeAssistantType
from homeassistant.util.dt import utcnow from homeassistant.util.dt import utcnow
from . import WLED, WLEDDeviceEntity from . import WLED, WLEDDeviceEntity
from .const import ( from .const import ATTR_LED_COUNT, ATTR_MAX_POWER, CURRENT_MA, DATA_WLED_CLIENT, DOMAIN
ATTR_LED_COUNT,
ATTR_MAX_POWER,
CURRENT_MA,
DATA_BYTES,
DATA_WLED_CLIENT,
DOMAIN,
)
_LOGGER = logging.getLogger(__name__) _LOGGER = logging.getLogger(__name__)

View file

@ -378,6 +378,40 @@ MASS_POUNDS: str = "lb"
# UV Index units # UV Index units
UNIT_UV_INDEX: str = "UV index" UNIT_UV_INDEX: str = "UV index"
# Data units
DATA_BITS = "bit"
DATA_KILOBITS = "kbit"
DATA_MEGABITS = "Mbit"
DATA_GIGABITS = "Gbit"
DATA_BYTES = "B"
DATA_KILOBYTES = "kB"
DATA_MEGABYTES = "MB"
DATA_GIGABYTES = "GB"
DATA_TERABYTES = "TB"
DATA_PETABYTES = "PB"
DATA_EXABYTES = "EB"
DATA_ZETTABYTES = "ZB"
DATA_YOTTABYTES = "YB"
DATA_KIBIBYTES = "KiB"
DATA_MEBIBYTES = "MiB"
DATA_GIBIBYTES = "GiB"
DATA_TEBIBYTES = "TiB"
DATA_PEBIBYTES = "PiB"
DATA_EXBIBYTES = "EiB"
DATA_ZEBIBYTES = "ZiB"
DATA_YOBIBYTES = "YiB"
DATA_RATE_BITS_PER_SECOND = f"{DATA_BITS}/s"
DATA_RATE_KILOBITS_PER_SECOND = f"{DATA_KILOBITS}/s"
DATA_RATE_MEGABITS_PER_SECOND = f"{DATA_MEGABITS}/s"
DATA_RATE_GIGABITS_PER_SECOND = f"{DATA_GIGABITS}/s"
DATA_RATE_BYTES_PER_SECOND = f"{DATA_BYTES}/s"
DATA_RATE_KILOBYTES_PER_SECOND = f"{DATA_KILOBYTES}/s"
DATA_RATE_MEGABYTES_PER_SECOND = f"{DATA_MEGABYTES}/s"
DATA_RATE_GIGABYTES_PER_SECOND = f"{DATA_GIGABYTES}/s"
DATA_RATE_KIBIBYTES_PER_SECOND = f"{DATA_KIBIBYTES}/s"
DATA_RATE_MEBIBYTES_PER_SECOND = f"{DATA_MEBIBYTES}/s"
DATA_RATE_GIBIBYTES_PER_SECOND = f"{DATA_GIBIBYTES}/s"
# #### SERVICES #### # #### SERVICES ####
SERVICE_HOMEASSISTANT_STOP = "stop" SERVICE_HOMEASSISTANT_STOP = "stop"
SERVICE_HOMEASSISTANT_RESTART = "restart" SERVICE_HOMEASSISTANT_RESTART = "restart"

View file

@ -4,6 +4,7 @@ import unittest
import pytest import pytest
import homeassistant.components.radarr.sensor as radarr import homeassistant.components.radarr.sensor as radarr
from homeassistant.const import DATA_GIGABYTES
from tests.common import get_test_home_assistant from tests.common import get_test_home_assistant
@ -218,7 +219,7 @@ class TestRadarrSetup(unittest.TestCase):
"platform": "radarr", "platform": "radarr",
"api_key": "foo", "api_key": "foo",
"days": "2", "days": "2",
"unit": "GB", "unit": DATA_GIGABYTES,
"include_paths": [], "include_paths": [],
"monitored_conditions": ["diskspace"], "monitored_conditions": ["diskspace"],
} }
@ -227,7 +228,7 @@ class TestRadarrSetup(unittest.TestCase):
device.update() device.update()
assert "263.10" == device.state assert "263.10" == device.state
assert "mdi:harddisk" == device.icon assert "mdi:harddisk" == device.icon
assert "GB" == device.unit_of_measurement assert DATA_GIGABYTES == device.unit_of_measurement
assert "Radarr Disk Space" == device.name assert "Radarr Disk Space" == device.name
assert "263.10/465.42GB (56.53%)" == device.device_state_attributes["/data"] assert "263.10/465.42GB (56.53%)" == device.device_state_attributes["/data"]
@ -238,7 +239,7 @@ class TestRadarrSetup(unittest.TestCase):
"platform": "radarr", "platform": "radarr",
"api_key": "foo", "api_key": "foo",
"days": "2", "days": "2",
"unit": "GB", "unit": DATA_GIGABYTES,
"include_paths": ["/data"], "include_paths": ["/data"],
"monitored_conditions": ["diskspace"], "monitored_conditions": ["diskspace"],
} }
@ -247,7 +248,7 @@ class TestRadarrSetup(unittest.TestCase):
device.update() device.update()
assert "263.10" == device.state assert "263.10" == device.state
assert "mdi:harddisk" == device.icon assert "mdi:harddisk" == device.icon
assert "GB" == device.unit_of_measurement assert DATA_GIGABYTES == device.unit_of_measurement
assert "Radarr Disk Space" == device.name assert "Radarr Disk Space" == device.name
assert "263.10/465.42GB (56.53%)" == device.device_state_attributes["/data"] assert "263.10/465.42GB (56.53%)" == device.device_state_attributes["/data"]
@ -258,7 +259,7 @@ class TestRadarrSetup(unittest.TestCase):
"platform": "radarr", "platform": "radarr",
"api_key": "foo", "api_key": "foo",
"days": "2", "days": "2",
"unit": "GB", "unit": DATA_GIGABYTES,
"include_paths": ["/data"], "include_paths": ["/data"],
"monitored_conditions": ["commands"], "monitored_conditions": ["commands"],
} }
@ -278,7 +279,7 @@ class TestRadarrSetup(unittest.TestCase):
"platform": "radarr", "platform": "radarr",
"api_key": "foo", "api_key": "foo",
"days": "2", "days": "2",
"unit": "GB", "unit": DATA_GIGABYTES,
"include_paths": ["/data"], "include_paths": ["/data"],
"monitored_conditions": ["movies"], "monitored_conditions": ["movies"],
} }
@ -298,7 +299,7 @@ class TestRadarrSetup(unittest.TestCase):
"platform": "radarr", "platform": "radarr",
"api_key": "foo", "api_key": "foo",
"days": "2", "days": "2",
"unit": "GB", "unit": DATA_GIGABYTES,
"include_paths": ["/data"], "include_paths": ["/data"],
"monitored_conditions": ["upcoming"], "monitored_conditions": ["upcoming"],
} }
@ -325,7 +326,7 @@ class TestRadarrSetup(unittest.TestCase):
"platform": "radarr", "platform": "radarr",
"api_key": "foo", "api_key": "foo",
"days": "1", "days": "1",
"unit": "GB", "unit": DATA_GIGABYTES,
"include_paths": ["/data"], "include_paths": ["/data"],
"monitored_conditions": ["upcoming"], "monitored_conditions": ["upcoming"],
} }
@ -348,7 +349,7 @@ class TestRadarrSetup(unittest.TestCase):
"platform": "radarr", "platform": "radarr",
"api_key": "foo", "api_key": "foo",
"days": "2", "days": "2",
"unit": "GB", "unit": DATA_GIGABYTES,
"include_paths": ["/data"], "include_paths": ["/data"],
"monitored_conditions": ["status"], "monitored_conditions": ["status"],
} }
@ -368,7 +369,7 @@ class TestRadarrSetup(unittest.TestCase):
"platform": "radarr", "platform": "radarr",
"api_key": "foo", "api_key": "foo",
"days": "1", "days": "1",
"unit": "GB", "unit": DATA_GIGABYTES,
"include_paths": ["/data"], "include_paths": ["/data"],
"monitored_conditions": ["upcoming"], "monitored_conditions": ["upcoming"],
"ssl": "true", "ssl": "true",
@ -393,7 +394,7 @@ class TestRadarrSetup(unittest.TestCase):
"platform": "radarr", "platform": "radarr",
"api_key": "foo", "api_key": "foo",
"days": "1", "days": "1",
"unit": "GB", "unit": DATA_GIGABYTES,
"include_paths": ["/data"], "include_paths": ["/data"],
"monitored_conditions": ["upcoming"], "monitored_conditions": ["upcoming"],
} }

View file

@ -10,6 +10,7 @@ import requests_mock
import homeassistant.components.rest.sensor as rest import homeassistant.components.rest.sensor as rest
import homeassistant.components.sensor as sensor import homeassistant.components.sensor as sensor
from homeassistant.const import DATA_MEGABYTES
from homeassistant.exceptions import PlatformNotReady from homeassistant.exceptions import PlatformNotReady
from homeassistant.helpers.config_validation import template from homeassistant.helpers.config_validation import template
from homeassistant.setup import setup_component from homeassistant.setup import setup_component
@ -125,7 +126,7 @@ class TestRestSensorSetup(unittest.TestCase):
"method": "GET", "method": "GET",
"value_template": "{{ value_json.key }}", "value_template": "{{ value_json.key }}",
"name": "foo", "name": "foo",
"unit_of_measurement": "MB", "unit_of_measurement": DATA_MEGABYTES,
"verify_ssl": "true", "verify_ssl": "true",
"timeout": 30, "timeout": 30,
"authentication": "basic", "authentication": "basic",
@ -153,7 +154,7 @@ class TestRestSensorSetup(unittest.TestCase):
"value_template": "{{ value_json.key }}", "value_template": "{{ value_json.key }}",
"payload": '{ "device": "toaster"}', "payload": '{ "device": "toaster"}',
"name": "foo", "name": "foo",
"unit_of_measurement": "MB", "unit_of_measurement": DATA_MEGABYTES,
"verify_ssl": "true", "verify_ssl": "true",
"timeout": 30, "timeout": 30,
"authentication": "basic", "authentication": "basic",
@ -181,7 +182,7 @@ class TestRestSensor(unittest.TestCase):
), ),
) )
self.name = "foo" self.name = "foo"
self.unit_of_measurement = "MB" self.unit_of_measurement = DATA_MEGABYTES
self.device_class = None self.device_class = None
self.value_template = template("{{ value_json.key }}") self.value_template = template("{{ value_json.key }}")
self.value_template.hass = self.hass self.value_template.hass = self.hass

View file

@ -6,6 +6,7 @@ import unittest
import pytest import pytest
import homeassistant.components.sonarr.sensor as sonarr import homeassistant.components.sonarr.sensor as sonarr
from homeassistant.const import DATA_GIGABYTES
from tests.common import get_test_home_assistant from tests.common import get_test_home_assistant
@ -497,7 +498,7 @@ class TestSonarrSetup(unittest.TestCase):
"platform": "sonarr", "platform": "sonarr",
"api_key": "foo", "api_key": "foo",
"days": "2", "days": "2",
"unit": "GB", "unit": DATA_GIGABYTES,
"include_paths": [], "include_paths": [],
"monitored_conditions": ["diskspace"], "monitored_conditions": ["diskspace"],
} }
@ -506,7 +507,7 @@ class TestSonarrSetup(unittest.TestCase):
device.update() device.update()
assert "263.10" == device.state assert "263.10" == device.state
assert "mdi:harddisk" == device.icon assert "mdi:harddisk" == device.icon
assert "GB" == device.unit_of_measurement assert DATA_GIGABYTES == device.unit_of_measurement
assert "Sonarr Disk Space" == device.name assert "Sonarr Disk Space" == device.name
assert "263.10/465.42GB (56.53%)" == device.device_state_attributes["/data"] assert "263.10/465.42GB (56.53%)" == device.device_state_attributes["/data"]
@ -517,7 +518,7 @@ class TestSonarrSetup(unittest.TestCase):
"platform": "sonarr", "platform": "sonarr",
"api_key": "foo", "api_key": "foo",
"days": "2", "days": "2",
"unit": "GB", "unit": DATA_GIGABYTES,
"include_paths": ["/data"], "include_paths": ["/data"],
"monitored_conditions": ["diskspace"], "monitored_conditions": ["diskspace"],
} }
@ -526,7 +527,7 @@ class TestSonarrSetup(unittest.TestCase):
device.update() device.update()
assert "263.10" == device.state assert "263.10" == device.state
assert "mdi:harddisk" == device.icon assert "mdi:harddisk" == device.icon
assert "GB" == device.unit_of_measurement assert DATA_GIGABYTES == device.unit_of_measurement
assert "Sonarr Disk Space" == device.name assert "Sonarr Disk Space" == device.name
assert "263.10/465.42GB (56.53%)" == device.device_state_attributes["/data"] assert "263.10/465.42GB (56.53%)" == device.device_state_attributes["/data"]
@ -537,7 +538,7 @@ class TestSonarrSetup(unittest.TestCase):
"platform": "sonarr", "platform": "sonarr",
"api_key": "foo", "api_key": "foo",
"days": "2", "days": "2",
"unit": "GB", "unit": DATA_GIGABYTES,
"include_paths": ["/data"], "include_paths": ["/data"],
"monitored_conditions": ["commands"], "monitored_conditions": ["commands"],
} }
@ -557,7 +558,7 @@ class TestSonarrSetup(unittest.TestCase):
"platform": "sonarr", "platform": "sonarr",
"api_key": "foo", "api_key": "foo",
"days": "2", "days": "2",
"unit": "GB", "unit": DATA_GIGABYTES,
"include_paths": ["/data"], "include_paths": ["/data"],
"monitored_conditions": ["queue"], "monitored_conditions": ["queue"],
} }
@ -577,7 +578,7 @@ class TestSonarrSetup(unittest.TestCase):
"platform": "sonarr", "platform": "sonarr",
"api_key": "foo", "api_key": "foo",
"days": "2", "days": "2",
"unit": "GB", "unit": DATA_GIGABYTES,
"include_paths": ["/data"], "include_paths": ["/data"],
"monitored_conditions": ["series"], "monitored_conditions": ["series"],
} }
@ -599,7 +600,7 @@ class TestSonarrSetup(unittest.TestCase):
"platform": "sonarr", "platform": "sonarr",
"api_key": "foo", "api_key": "foo",
"days": "2", "days": "2",
"unit": "GB", "unit": DATA_GIGABYTES,
"include_paths": ["/data"], "include_paths": ["/data"],
"monitored_conditions": ["wanted"], "monitored_conditions": ["wanted"],
} }
@ -621,7 +622,7 @@ class TestSonarrSetup(unittest.TestCase):
"platform": "sonarr", "platform": "sonarr",
"api_key": "foo", "api_key": "foo",
"days": "2", "days": "2",
"unit": "GB", "unit": DATA_GIGABYTES,
"include_paths": ["/data"], "include_paths": ["/data"],
"monitored_conditions": ["upcoming"], "monitored_conditions": ["upcoming"],
} }
@ -645,7 +646,7 @@ class TestSonarrSetup(unittest.TestCase):
"platform": "sonarr", "platform": "sonarr",
"api_key": "foo", "api_key": "foo",
"days": "1", "days": "1",
"unit": "GB", "unit": DATA_GIGABYTES,
"include_paths": ["/data"], "include_paths": ["/data"],
"monitored_conditions": ["upcoming"], "monitored_conditions": ["upcoming"],
} }
@ -665,7 +666,7 @@ class TestSonarrSetup(unittest.TestCase):
"platform": "sonarr", "platform": "sonarr",
"api_key": "foo", "api_key": "foo",
"days": "2", "days": "2",
"unit": "GB", "unit": DATA_GIGABYTES,
"include_paths": ["/data"], "include_paths": ["/data"],
"monitored_conditions": ["status"], "monitored_conditions": ["status"],
} }
@ -685,7 +686,7 @@ class TestSonarrSetup(unittest.TestCase):
"platform": "sonarr", "platform": "sonarr",
"api_key": "foo", "api_key": "foo",
"days": "1", "days": "1",
"unit": "GB", "unit": DATA_GIGABYTES,
"include_paths": ["/data"], "include_paths": ["/data"],
"monitored_conditions": ["upcoming"], "monitored_conditions": ["upcoming"],
"ssl": "true", "ssl": "true",
@ -707,7 +708,7 @@ class TestSonarrSetup(unittest.TestCase):
"platform": "sonarr", "platform": "sonarr",
"api_key": "foo", "api_key": "foo",
"days": "1", "days": "1",
"unit": "GB", "unit": DATA_GIGABYTES,
"include_paths": ["/data"], "include_paths": ["/data"],
"monitored_conditions": ["upcoming"], "monitored_conditions": ["upcoming"],
} }

View file

@ -1,6 +1,7 @@
"""Tests for the Start.ca sensor platform.""" """Tests for the Start.ca sensor platform."""
from homeassistant.bootstrap import async_setup_component from homeassistant.bootstrap import async_setup_component
from homeassistant.components.startca.sensor import StartcaData from homeassistant.components.startca.sensor import StartcaData
from homeassistant.const import DATA_GIGABYTES
from homeassistant.helpers.aiohttp_client import async_get_clientsession from homeassistant.helpers.aiohttp_client import async_get_clientsession
@ -55,47 +56,47 @@ async def test_capped_setup(hass, aioclient_mock):
assert state.state == "76.24" assert state.state == "76.24"
state = hass.states.get("sensor.start_ca_usage") state = hass.states.get("sensor.start_ca_usage")
assert state.attributes.get("unit_of_measurement") == "GB" assert state.attributes.get("unit_of_measurement") == DATA_GIGABYTES
assert state.state == "304.95" assert state.state == "304.95"
state = hass.states.get("sensor.start_ca_data_limit") state = hass.states.get("sensor.start_ca_data_limit")
assert state.attributes.get("unit_of_measurement") == "GB" assert state.attributes.get("unit_of_measurement") == DATA_GIGABYTES
assert state.state == "400" assert state.state == "400"
state = hass.states.get("sensor.start_ca_used_download") state = hass.states.get("sensor.start_ca_used_download")
assert state.attributes.get("unit_of_measurement") == "GB" assert state.attributes.get("unit_of_measurement") == DATA_GIGABYTES
assert state.state == "304.95" assert state.state == "304.95"
state = hass.states.get("sensor.start_ca_used_upload") state = hass.states.get("sensor.start_ca_used_upload")
assert state.attributes.get("unit_of_measurement") == "GB" assert state.attributes.get("unit_of_measurement") == DATA_GIGABYTES
assert state.state == "6.48" assert state.state == "6.48"
state = hass.states.get("sensor.start_ca_used_total") state = hass.states.get("sensor.start_ca_used_total")
assert state.attributes.get("unit_of_measurement") == "GB" assert state.attributes.get("unit_of_measurement") == DATA_GIGABYTES
assert state.state == "311.43" assert state.state == "311.43"
state = hass.states.get("sensor.start_ca_grace_download") state = hass.states.get("sensor.start_ca_grace_download")
assert state.attributes.get("unit_of_measurement") == "GB" assert state.attributes.get("unit_of_measurement") == DATA_GIGABYTES
assert state.state == "304.95" assert state.state == "304.95"
state = hass.states.get("sensor.start_ca_grace_upload") state = hass.states.get("sensor.start_ca_grace_upload")
assert state.attributes.get("unit_of_measurement") == "GB" assert state.attributes.get("unit_of_measurement") == DATA_GIGABYTES
assert state.state == "6.48" assert state.state == "6.48"
state = hass.states.get("sensor.start_ca_grace_total") state = hass.states.get("sensor.start_ca_grace_total")
assert state.attributes.get("unit_of_measurement") == "GB" assert state.attributes.get("unit_of_measurement") == DATA_GIGABYTES
assert state.state == "311.43" assert state.state == "311.43"
state = hass.states.get("sensor.start_ca_total_download") state = hass.states.get("sensor.start_ca_total_download")
assert state.attributes.get("unit_of_measurement") == "GB" assert state.attributes.get("unit_of_measurement") == DATA_GIGABYTES
assert state.state == "304.95" assert state.state == "304.95"
state = hass.states.get("sensor.start_ca_total_upload") state = hass.states.get("sensor.start_ca_total_upload")
assert state.attributes.get("unit_of_measurement") == "GB" assert state.attributes.get("unit_of_measurement") == DATA_GIGABYTES
assert state.state == "6.48" assert state.state == "6.48"
state = hass.states.get("sensor.start_ca_remaining") state = hass.states.get("sensor.start_ca_remaining")
assert state.attributes.get("unit_of_measurement") == "GB" assert state.attributes.get("unit_of_measurement") == DATA_GIGABYTES
assert state.state == "95.05" assert state.state == "95.05"
@ -150,47 +151,47 @@ async def test_unlimited_setup(hass, aioclient_mock):
assert state.state == "0" assert state.state == "0"
state = hass.states.get("sensor.start_ca_usage") state = hass.states.get("sensor.start_ca_usage")
assert state.attributes.get("unit_of_measurement") == "GB" assert state.attributes.get("unit_of_measurement") == DATA_GIGABYTES
assert state.state == "0.0" assert state.state == "0.0"
state = hass.states.get("sensor.start_ca_data_limit") state = hass.states.get("sensor.start_ca_data_limit")
assert state.attributes.get("unit_of_measurement") == "GB" assert state.attributes.get("unit_of_measurement") == DATA_GIGABYTES
assert state.state == "inf" assert state.state == "inf"
state = hass.states.get("sensor.start_ca_used_download") state = hass.states.get("sensor.start_ca_used_download")
assert state.attributes.get("unit_of_measurement") == "GB" assert state.attributes.get("unit_of_measurement") == DATA_GIGABYTES
assert state.state == "0.0" assert state.state == "0.0"
state = hass.states.get("sensor.start_ca_used_upload") state = hass.states.get("sensor.start_ca_used_upload")
assert state.attributes.get("unit_of_measurement") == "GB" assert state.attributes.get("unit_of_measurement") == DATA_GIGABYTES
assert state.state == "0.0" assert state.state == "0.0"
state = hass.states.get("sensor.start_ca_used_total") state = hass.states.get("sensor.start_ca_used_total")
assert state.attributes.get("unit_of_measurement") == "GB" assert state.attributes.get("unit_of_measurement") == DATA_GIGABYTES
assert state.state == "0.0" assert state.state == "0.0"
state = hass.states.get("sensor.start_ca_grace_download") state = hass.states.get("sensor.start_ca_grace_download")
assert state.attributes.get("unit_of_measurement") == "GB" assert state.attributes.get("unit_of_measurement") == DATA_GIGABYTES
assert state.state == "304.95" assert state.state == "304.95"
state = hass.states.get("sensor.start_ca_grace_upload") state = hass.states.get("sensor.start_ca_grace_upload")
assert state.attributes.get("unit_of_measurement") == "GB" assert state.attributes.get("unit_of_measurement") == DATA_GIGABYTES
assert state.state == "6.48" assert state.state == "6.48"
state = hass.states.get("sensor.start_ca_grace_total") state = hass.states.get("sensor.start_ca_grace_total")
assert state.attributes.get("unit_of_measurement") == "GB" assert state.attributes.get("unit_of_measurement") == DATA_GIGABYTES
assert state.state == "311.43" assert state.state == "311.43"
state = hass.states.get("sensor.start_ca_total_download") state = hass.states.get("sensor.start_ca_total_download")
assert state.attributes.get("unit_of_measurement") == "GB" assert state.attributes.get("unit_of_measurement") == DATA_GIGABYTES
assert state.state == "304.95" assert state.state == "304.95"
state = hass.states.get("sensor.start_ca_total_upload") state = hass.states.get("sensor.start_ca_total_upload")
assert state.attributes.get("unit_of_measurement") == "GB" assert state.attributes.get("unit_of_measurement") == DATA_GIGABYTES
assert state.state == "6.48" assert state.state == "6.48"
state = hass.states.get("sensor.start_ca_remaining") state = hass.states.get("sensor.start_ca_remaining")
assert state.attributes.get("unit_of_measurement") == "GB" assert state.attributes.get("unit_of_measurement") == DATA_GIGABYTES
assert state.state == "inf" assert state.state == "inf"

View file

@ -1,6 +1,7 @@
"""Tests for the TekSavvy sensor platform.""" """Tests for the TekSavvy sensor platform."""
from homeassistant.bootstrap import async_setup_component from homeassistant.bootstrap import async_setup_component
from homeassistant.components.teksavvy.sensor import TekSavvyData from homeassistant.components.teksavvy.sensor import TekSavvyData
from homeassistant.const import DATA_GIGABYTES
from homeassistant.helpers.aiohttp_client import async_get_clientsession from homeassistant.helpers.aiohttp_client import async_get_clientsession
@ -45,31 +46,31 @@ async def test_capped_setup(hass, aioclient_mock):
await async_setup_component(hass, "sensor", {"sensor": config}) await async_setup_component(hass, "sensor", {"sensor": config})
state = hass.states.get("sensor.teksavvy_data_limit") state = hass.states.get("sensor.teksavvy_data_limit")
assert state.attributes.get("unit_of_measurement") == "GB" assert state.attributes.get("unit_of_measurement") == DATA_GIGABYTES
assert state.state == "400" assert state.state == "400"
state = hass.states.get("sensor.teksavvy_off_peak_download") state = hass.states.get("sensor.teksavvy_off_peak_download")
assert state.attributes.get("unit_of_measurement") == "GB" assert state.attributes.get("unit_of_measurement") == DATA_GIGABYTES
assert state.state == "36.24" assert state.state == "36.24"
state = hass.states.get("sensor.teksavvy_off_peak_upload") state = hass.states.get("sensor.teksavvy_off_peak_upload")
assert state.attributes.get("unit_of_measurement") == "GB" assert state.attributes.get("unit_of_measurement") == DATA_GIGABYTES
assert state.state == "1.58" assert state.state == "1.58"
state = hass.states.get("sensor.teksavvy_off_peak_total") state = hass.states.get("sensor.teksavvy_off_peak_total")
assert state.attributes.get("unit_of_measurement") == "GB" assert state.attributes.get("unit_of_measurement") == DATA_GIGABYTES
assert state.state == "37.82" assert state.state == "37.82"
state = hass.states.get("sensor.teksavvy_on_peak_download") state = hass.states.get("sensor.teksavvy_on_peak_download")
assert state.attributes.get("unit_of_measurement") == "GB" assert state.attributes.get("unit_of_measurement") == DATA_GIGABYTES
assert state.state == "226.75" assert state.state == "226.75"
state = hass.states.get("sensor.teksavvy_on_peak_upload") state = hass.states.get("sensor.teksavvy_on_peak_upload")
assert state.attributes.get("unit_of_measurement") == "GB" assert state.attributes.get("unit_of_measurement") == DATA_GIGABYTES
assert state.state == "8.82" assert state.state == "8.82"
state = hass.states.get("sensor.teksavvy_on_peak_total") state = hass.states.get("sensor.teksavvy_on_peak_total")
assert state.attributes.get("unit_of_measurement") == "GB" assert state.attributes.get("unit_of_measurement") == DATA_GIGABYTES
assert state.state == "235.57" assert state.state == "235.57"
state = hass.states.get("sensor.teksavvy_usage_ratio") state = hass.states.get("sensor.teksavvy_usage_ratio")
@ -77,11 +78,11 @@ async def test_capped_setup(hass, aioclient_mock):
assert state.state == "56.69" assert state.state == "56.69"
state = hass.states.get("sensor.teksavvy_usage") state = hass.states.get("sensor.teksavvy_usage")
assert state.attributes.get("unit_of_measurement") == "GB" assert state.attributes.get("unit_of_measurement") == DATA_GIGABYTES
assert state.state == "226.75" assert state.state == "226.75"
state = hass.states.get("sensor.teksavvy_remaining") state = hass.states.get("sensor.teksavvy_remaining")
assert state.attributes.get("unit_of_measurement") == "GB" assert state.attributes.get("unit_of_measurement") == DATA_GIGABYTES
assert state.state == "173.25" assert state.state == "173.25"
@ -126,35 +127,35 @@ async def test_unlimited_setup(hass, aioclient_mock):
await async_setup_component(hass, "sensor", {"sensor": config}) await async_setup_component(hass, "sensor", {"sensor": config})
state = hass.states.get("sensor.teksavvy_data_limit") state = hass.states.get("sensor.teksavvy_data_limit")
assert state.attributes.get("unit_of_measurement") == "GB" assert state.attributes.get("unit_of_measurement") == DATA_GIGABYTES
assert state.state == "inf" assert state.state == "inf"
state = hass.states.get("sensor.teksavvy_off_peak_download") state = hass.states.get("sensor.teksavvy_off_peak_download")
assert state.attributes.get("unit_of_measurement") == "GB" assert state.attributes.get("unit_of_measurement") == DATA_GIGABYTES
assert state.state == "36.24" assert state.state == "36.24"
state = hass.states.get("sensor.teksavvy_off_peak_upload") state = hass.states.get("sensor.teksavvy_off_peak_upload")
assert state.attributes.get("unit_of_measurement") == "GB" assert state.attributes.get("unit_of_measurement") == DATA_GIGABYTES
assert state.state == "1.58" assert state.state == "1.58"
state = hass.states.get("sensor.teksavvy_off_peak_total") state = hass.states.get("sensor.teksavvy_off_peak_total")
assert state.attributes.get("unit_of_measurement") == "GB" assert state.attributes.get("unit_of_measurement") == DATA_GIGABYTES
assert state.state == "37.82" assert state.state == "37.82"
state = hass.states.get("sensor.teksavvy_on_peak_download") state = hass.states.get("sensor.teksavvy_on_peak_download")
assert state.attributes.get("unit_of_measurement") == "GB" assert state.attributes.get("unit_of_measurement") == DATA_GIGABYTES
assert state.state == "226.75" assert state.state == "226.75"
state = hass.states.get("sensor.teksavvy_on_peak_upload") state = hass.states.get("sensor.teksavvy_on_peak_upload")
assert state.attributes.get("unit_of_measurement") == "GB" assert state.attributes.get("unit_of_measurement") == DATA_GIGABYTES
assert state.state == "8.82" assert state.state == "8.82"
state = hass.states.get("sensor.teksavvy_on_peak_total") state = hass.states.get("sensor.teksavvy_on_peak_total")
assert state.attributes.get("unit_of_measurement") == "GB" assert state.attributes.get("unit_of_measurement") == DATA_GIGABYTES
assert state.state == "235.57" assert state.state == "235.57"
state = hass.states.get("sensor.teksavvy_usage") state = hass.states.get("sensor.teksavvy_usage")
assert state.attributes.get("unit_of_measurement") == "GB" assert state.attributes.get("unit_of_measurement") == DATA_GIGABYTES
assert state.state == "226.75" assert state.state == "226.75"
state = hass.states.get("sensor.teksavvy_usage_ratio") state = hass.states.get("sensor.teksavvy_usage_ratio")
@ -162,7 +163,7 @@ async def test_unlimited_setup(hass, aioclient_mock):
assert state.state == "0" assert state.state == "0"
state = hass.states.get("sensor.teksavvy_remaining") state = hass.states.get("sensor.teksavvy_remaining")
assert state.attributes.get("unit_of_measurement") == "GB" assert state.attributes.get("unit_of_measurement") == DATA_GIGABYTES
assert state.state == "inf" assert state.state == "inf"

View file

@ -10,7 +10,12 @@ import voluptuous as vol
from homeassistant.components import vultr as base_vultr from homeassistant.components import vultr as base_vultr
from homeassistant.components.vultr import CONF_SUBSCRIPTION from homeassistant.components.vultr import CONF_SUBSCRIPTION
import homeassistant.components.vultr.sensor as vultr import homeassistant.components.vultr.sensor as vultr
from homeassistant.const import CONF_MONITORED_CONDITIONS, CONF_NAME, CONF_PLATFORM from homeassistant.const import (
CONF_MONITORED_CONDITIONS,
CONF_NAME,
CONF_PLATFORM,
DATA_GIGABYTES,
)
from tests.common import get_test_home_assistant, load_fixture from tests.common import get_test_home_assistant, load_fixture
from tests.components.vultr.test_init import VALID_CONFIG from tests.components.vultr.test_init import VALID_CONFIG
@ -83,7 +88,7 @@ class TestVultrSensorSetup(unittest.TestCase):
device.update() device.update()
if device.unit_of_measurement == "GB": # Test Bandwidth Used if device.unit_of_measurement == DATA_GIGABYTES: # Test Bandwidth Used
if device.subscription == "576965": if device.subscription == "576965":
assert "Vultr my new server Current Bandwidth Used" == device.name assert "Vultr my new server Current Bandwidth Used" == device.name
assert "mdi:chart-histogram" == device.icon assert "mdi:chart-histogram" == device.icon

View file

@ -8,10 +8,9 @@ from homeassistant.components.wled.const import (
ATTR_LED_COUNT, ATTR_LED_COUNT,
ATTR_MAX_POWER, ATTR_MAX_POWER,
CURRENT_MA, CURRENT_MA,
DATA_BYTES,
DOMAIN, DOMAIN,
) )
from homeassistant.const import ATTR_ICON, ATTR_UNIT_OF_MEASUREMENT from homeassistant.const import ATTR_ICON, ATTR_UNIT_OF_MEASUREMENT, DATA_BYTES
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from homeassistant.util import dt as dt_util from homeassistant.util import dt as dt_util