mirror of
https://github.com/home-assistant/core.git
synced 2025-07-13 08:17:08 +00:00
Add Glances DiskIO read/write sensors (#114933)
This commit is contained in:
parent
cce8e4839a
commit
3ef2c464ac
@ -10,6 +10,12 @@
|
|||||||
"disk_free": {
|
"disk_free": {
|
||||||
"default": "mdi:harddisk"
|
"default": "mdi:harddisk"
|
||||||
},
|
},
|
||||||
|
"diskio_read": {
|
||||||
|
"default": "mdi:harddisk"
|
||||||
|
},
|
||||||
|
"diskio_write": {
|
||||||
|
"default": "mdi:harddisk"
|
||||||
|
},
|
||||||
"memory_usage": {
|
"memory_usage": {
|
||||||
"default": "mdi:memory"
|
"default": "mdi:memory"
|
||||||
},
|
},
|
||||||
|
@ -14,6 +14,7 @@ from homeassistant.config_entries import ConfigEntry
|
|||||||
from homeassistant.const import (
|
from homeassistant.const import (
|
||||||
PERCENTAGE,
|
PERCENTAGE,
|
||||||
REVOLUTIONS_PER_MINUTE,
|
REVOLUTIONS_PER_MINUTE,
|
||||||
|
UnitOfDataRate,
|
||||||
UnitOfInformation,
|
UnitOfInformation,
|
||||||
UnitOfTemperature,
|
UnitOfTemperature,
|
||||||
)
|
)
|
||||||
@ -57,6 +58,24 @@ SENSOR_TYPES = {
|
|||||||
device_class=SensorDeviceClass.DATA_SIZE,
|
device_class=SensorDeviceClass.DATA_SIZE,
|
||||||
state_class=SensorStateClass.MEASUREMENT,
|
state_class=SensorStateClass.MEASUREMENT,
|
||||||
),
|
),
|
||||||
|
("diskio", "read"): GlancesSensorEntityDescription(
|
||||||
|
key="read",
|
||||||
|
type="diskio",
|
||||||
|
translation_key="diskio_read",
|
||||||
|
native_unit_of_measurement=UnitOfDataRate.BYTES_PER_SECOND,
|
||||||
|
suggested_unit_of_measurement=UnitOfDataRate.MEGABYTES_PER_SECOND,
|
||||||
|
device_class=SensorDeviceClass.DATA_RATE,
|
||||||
|
state_class=SensorStateClass.MEASUREMENT,
|
||||||
|
),
|
||||||
|
("diskio", "write"): GlancesSensorEntityDescription(
|
||||||
|
key="write",
|
||||||
|
type="diskio",
|
||||||
|
translation_key="diskio_write",
|
||||||
|
native_unit_of_measurement=UnitOfDataRate.BYTES_PER_SECOND,
|
||||||
|
suggested_unit_of_measurement=UnitOfDataRate.MEGABYTES_PER_SECOND,
|
||||||
|
device_class=SensorDeviceClass.DATA_RATE,
|
||||||
|
state_class=SensorStateClass.MEASUREMENT,
|
||||||
|
),
|
||||||
("mem", "memory_use_percent"): GlancesSensorEntityDescription(
|
("mem", "memory_use_percent"): GlancesSensorEntityDescription(
|
||||||
key="memory_use_percent",
|
key="memory_use_percent",
|
||||||
type="mem",
|
type="mem",
|
||||||
@ -230,7 +249,7 @@ async def async_setup_entry(
|
|||||||
entities: list[GlancesSensor] = []
|
entities: list[GlancesSensor] = []
|
||||||
|
|
||||||
for sensor_type, sensors in coordinator.data.items():
|
for sensor_type, sensors in coordinator.data.items():
|
||||||
if sensor_type in ["fs", "sensors", "raid"]:
|
if sensor_type in ["fs", "diskio", "sensors", "raid"]:
|
||||||
entities.extend(
|
entities.extend(
|
||||||
GlancesSensor(
|
GlancesSensor(
|
||||||
coordinator,
|
coordinator,
|
||||||
|
@ -41,6 +41,12 @@
|
|||||||
"disk_free": {
|
"disk_free": {
|
||||||
"name": "{sensor_label} disk free"
|
"name": "{sensor_label} disk free"
|
||||||
},
|
},
|
||||||
|
"diskio_read": {
|
||||||
|
"name": "{sensor_label} disk read"
|
||||||
|
},
|
||||||
|
"diskio_write": {
|
||||||
|
"name": "{sensor_label} disk write"
|
||||||
|
},
|
||||||
"memory_usage": {
|
"memory_usage": {
|
||||||
"name": "Memory usage"
|
"name": "Memory usage"
|
||||||
},
|
},
|
||||||
|
@ -181,6 +181,10 @@ HA_SENSOR_DATA: dict[str, Any] = {
|
|||||||
"/ssl": {"disk_use": 30.7, "disk_use_percent": 6.7, "disk_free": 426.5},
|
"/ssl": {"disk_use": 30.7, "disk_use_percent": 6.7, "disk_free": 426.5},
|
||||||
"/media": {"disk_use": 30.7, "disk_use_percent": 6.7, "disk_free": 426.5},
|
"/media": {"disk_use": 30.7, "disk_use_percent": 6.7, "disk_free": 426.5},
|
||||||
},
|
},
|
||||||
|
"diskio": {
|
||||||
|
"nvme0n1": {"read": 184320, "write": 23863296},
|
||||||
|
"sda": {"read": 3859, "write": 25954},
|
||||||
|
},
|
||||||
"sensors": {
|
"sensors": {
|
||||||
"cpu_thermal 1": {"temperature_core": 59},
|
"cpu_thermal 1": {"temperature_core": 59},
|
||||||
"err_temp": {"temperature_hdd": "unavailable"},
|
"err_temp": {"temperature_hdd": "unavailable"},
|
||||||
|
@ -802,6 +802,222 @@
|
|||||||
'state': 'unavailable',
|
'state': 'unavailable',
|
||||||
})
|
})
|
||||||
# ---
|
# ---
|
||||||
|
# name: test_sensor_states[sensor.0_0_0_0_nvme0n1_disk_read-entry]
|
||||||
|
EntityRegistryEntrySnapshot({
|
||||||
|
'aliases': set({
|
||||||
|
}),
|
||||||
|
'area_id': None,
|
||||||
|
'capabilities': dict({
|
||||||
|
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
|
||||||
|
}),
|
||||||
|
'config_entry_id': <ANY>,
|
||||||
|
'device_class': None,
|
||||||
|
'device_id': <ANY>,
|
||||||
|
'disabled_by': None,
|
||||||
|
'domain': 'sensor',
|
||||||
|
'entity_category': None,
|
||||||
|
'entity_id': 'sensor.0_0_0_0_nvme0n1_disk_read',
|
||||||
|
'has_entity_name': True,
|
||||||
|
'hidden_by': None,
|
||||||
|
'icon': None,
|
||||||
|
'id': <ANY>,
|
||||||
|
'labels': set({
|
||||||
|
}),
|
||||||
|
'name': None,
|
||||||
|
'options': dict({
|
||||||
|
'sensor.private': dict({
|
||||||
|
'suggested_unit_of_measurement': <UnitOfDataRate.MEGABYTES_PER_SECOND: 'MB/s'>,
|
||||||
|
}),
|
||||||
|
}),
|
||||||
|
'original_device_class': <SensorDeviceClass.DATA_RATE: 'data_rate'>,
|
||||||
|
'original_icon': None,
|
||||||
|
'original_name': 'nvme0n1 disk read',
|
||||||
|
'platform': 'glances',
|
||||||
|
'previous_unique_id': None,
|
||||||
|
'supported_features': 0,
|
||||||
|
'translation_key': 'diskio_read',
|
||||||
|
'unique_id': 'test-nvme0n1-read',
|
||||||
|
'unit_of_measurement': <UnitOfDataRate.MEGABYTES_PER_SECOND: 'MB/s'>,
|
||||||
|
})
|
||||||
|
# ---
|
||||||
|
# name: test_sensor_states[sensor.0_0_0_0_nvme0n1_disk_read-state]
|
||||||
|
StateSnapshot({
|
||||||
|
'attributes': ReadOnlyDict({
|
||||||
|
'device_class': 'data_rate',
|
||||||
|
'friendly_name': '0.0.0.0 nvme0n1 disk read',
|
||||||
|
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
|
||||||
|
'unit_of_measurement': <UnitOfDataRate.MEGABYTES_PER_SECOND: 'MB/s'>,
|
||||||
|
}),
|
||||||
|
'context': <ANY>,
|
||||||
|
'entity_id': 'sensor.0_0_0_0_nvme0n1_disk_read',
|
||||||
|
'last_changed': <ANY>,
|
||||||
|
'last_reported': <ANY>,
|
||||||
|
'last_updated': <ANY>,
|
||||||
|
'state': '0.184320',
|
||||||
|
})
|
||||||
|
# ---
|
||||||
|
# name: test_sensor_states[sensor.0_0_0_0_nvme0n1_disk_write-entry]
|
||||||
|
EntityRegistryEntrySnapshot({
|
||||||
|
'aliases': set({
|
||||||
|
}),
|
||||||
|
'area_id': None,
|
||||||
|
'capabilities': dict({
|
||||||
|
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
|
||||||
|
}),
|
||||||
|
'config_entry_id': <ANY>,
|
||||||
|
'device_class': None,
|
||||||
|
'device_id': <ANY>,
|
||||||
|
'disabled_by': None,
|
||||||
|
'domain': 'sensor',
|
||||||
|
'entity_category': None,
|
||||||
|
'entity_id': 'sensor.0_0_0_0_nvme0n1_disk_write',
|
||||||
|
'has_entity_name': True,
|
||||||
|
'hidden_by': None,
|
||||||
|
'icon': None,
|
||||||
|
'id': <ANY>,
|
||||||
|
'labels': set({
|
||||||
|
}),
|
||||||
|
'name': None,
|
||||||
|
'options': dict({
|
||||||
|
'sensor.private': dict({
|
||||||
|
'suggested_unit_of_measurement': <UnitOfDataRate.MEGABYTES_PER_SECOND: 'MB/s'>,
|
||||||
|
}),
|
||||||
|
}),
|
||||||
|
'original_device_class': <SensorDeviceClass.DATA_RATE: 'data_rate'>,
|
||||||
|
'original_icon': None,
|
||||||
|
'original_name': 'nvme0n1 disk write',
|
||||||
|
'platform': 'glances',
|
||||||
|
'previous_unique_id': None,
|
||||||
|
'supported_features': 0,
|
||||||
|
'translation_key': 'diskio_write',
|
||||||
|
'unique_id': 'test-nvme0n1-write',
|
||||||
|
'unit_of_measurement': <UnitOfDataRate.MEGABYTES_PER_SECOND: 'MB/s'>,
|
||||||
|
})
|
||||||
|
# ---
|
||||||
|
# name: test_sensor_states[sensor.0_0_0_0_nvme0n1_disk_write-state]
|
||||||
|
StateSnapshot({
|
||||||
|
'attributes': ReadOnlyDict({
|
||||||
|
'device_class': 'data_rate',
|
||||||
|
'friendly_name': '0.0.0.0 nvme0n1 disk write',
|
||||||
|
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
|
||||||
|
'unit_of_measurement': <UnitOfDataRate.MEGABYTES_PER_SECOND: 'MB/s'>,
|
||||||
|
}),
|
||||||
|
'context': <ANY>,
|
||||||
|
'entity_id': 'sensor.0_0_0_0_nvme0n1_disk_write',
|
||||||
|
'last_changed': <ANY>,
|
||||||
|
'last_reported': <ANY>,
|
||||||
|
'last_updated': <ANY>,
|
||||||
|
'state': '23.863296',
|
||||||
|
})
|
||||||
|
# ---
|
||||||
|
# name: test_sensor_states[sensor.0_0_0_0_sda_disk_read-entry]
|
||||||
|
EntityRegistryEntrySnapshot({
|
||||||
|
'aliases': set({
|
||||||
|
}),
|
||||||
|
'area_id': None,
|
||||||
|
'capabilities': dict({
|
||||||
|
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
|
||||||
|
}),
|
||||||
|
'config_entry_id': <ANY>,
|
||||||
|
'device_class': None,
|
||||||
|
'device_id': <ANY>,
|
||||||
|
'disabled_by': None,
|
||||||
|
'domain': 'sensor',
|
||||||
|
'entity_category': None,
|
||||||
|
'entity_id': 'sensor.0_0_0_0_sda_disk_read',
|
||||||
|
'has_entity_name': True,
|
||||||
|
'hidden_by': None,
|
||||||
|
'icon': None,
|
||||||
|
'id': <ANY>,
|
||||||
|
'labels': set({
|
||||||
|
}),
|
||||||
|
'name': None,
|
||||||
|
'options': dict({
|
||||||
|
'sensor.private': dict({
|
||||||
|
'suggested_unit_of_measurement': <UnitOfDataRate.MEGABYTES_PER_SECOND: 'MB/s'>,
|
||||||
|
}),
|
||||||
|
}),
|
||||||
|
'original_device_class': <SensorDeviceClass.DATA_RATE: 'data_rate'>,
|
||||||
|
'original_icon': None,
|
||||||
|
'original_name': 'sda disk read',
|
||||||
|
'platform': 'glances',
|
||||||
|
'previous_unique_id': None,
|
||||||
|
'supported_features': 0,
|
||||||
|
'translation_key': 'diskio_read',
|
||||||
|
'unique_id': 'test-sda-read',
|
||||||
|
'unit_of_measurement': <UnitOfDataRate.MEGABYTES_PER_SECOND: 'MB/s'>,
|
||||||
|
})
|
||||||
|
# ---
|
||||||
|
# name: test_sensor_states[sensor.0_0_0_0_sda_disk_read-state]
|
||||||
|
StateSnapshot({
|
||||||
|
'attributes': ReadOnlyDict({
|
||||||
|
'device_class': 'data_rate',
|
||||||
|
'friendly_name': '0.0.0.0 sda disk read',
|
||||||
|
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
|
||||||
|
'unit_of_measurement': <UnitOfDataRate.MEGABYTES_PER_SECOND: 'MB/s'>,
|
||||||
|
}),
|
||||||
|
'context': <ANY>,
|
||||||
|
'entity_id': 'sensor.0_0_0_0_sda_disk_read',
|
||||||
|
'last_changed': <ANY>,
|
||||||
|
'last_reported': <ANY>,
|
||||||
|
'last_updated': <ANY>,
|
||||||
|
'state': '0.003859',
|
||||||
|
})
|
||||||
|
# ---
|
||||||
|
# name: test_sensor_states[sensor.0_0_0_0_sda_disk_write-entry]
|
||||||
|
EntityRegistryEntrySnapshot({
|
||||||
|
'aliases': set({
|
||||||
|
}),
|
||||||
|
'area_id': None,
|
||||||
|
'capabilities': dict({
|
||||||
|
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
|
||||||
|
}),
|
||||||
|
'config_entry_id': <ANY>,
|
||||||
|
'device_class': None,
|
||||||
|
'device_id': <ANY>,
|
||||||
|
'disabled_by': None,
|
||||||
|
'domain': 'sensor',
|
||||||
|
'entity_category': None,
|
||||||
|
'entity_id': 'sensor.0_0_0_0_sda_disk_write',
|
||||||
|
'has_entity_name': True,
|
||||||
|
'hidden_by': None,
|
||||||
|
'icon': None,
|
||||||
|
'id': <ANY>,
|
||||||
|
'labels': set({
|
||||||
|
}),
|
||||||
|
'name': None,
|
||||||
|
'options': dict({
|
||||||
|
'sensor.private': dict({
|
||||||
|
'suggested_unit_of_measurement': <UnitOfDataRate.MEGABYTES_PER_SECOND: 'MB/s'>,
|
||||||
|
}),
|
||||||
|
}),
|
||||||
|
'original_device_class': <SensorDeviceClass.DATA_RATE: 'data_rate'>,
|
||||||
|
'original_icon': None,
|
||||||
|
'original_name': 'sda disk write',
|
||||||
|
'platform': 'glances',
|
||||||
|
'previous_unique_id': None,
|
||||||
|
'supported_features': 0,
|
||||||
|
'translation_key': 'diskio_write',
|
||||||
|
'unique_id': 'test-sda-write',
|
||||||
|
'unit_of_measurement': <UnitOfDataRate.MEGABYTES_PER_SECOND: 'MB/s'>,
|
||||||
|
})
|
||||||
|
# ---
|
||||||
|
# name: test_sensor_states[sensor.0_0_0_0_sda_disk_write-state]
|
||||||
|
StateSnapshot({
|
||||||
|
'attributes': ReadOnlyDict({
|
||||||
|
'device_class': 'data_rate',
|
||||||
|
'friendly_name': '0.0.0.0 sda disk write',
|
||||||
|
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
|
||||||
|
'unit_of_measurement': <UnitOfDataRate.MEGABYTES_PER_SECOND: 'MB/s'>,
|
||||||
|
}),
|
||||||
|
'context': <ANY>,
|
||||||
|
'entity_id': 'sensor.0_0_0_0_sda_disk_write',
|
||||||
|
'last_changed': <ANY>,
|
||||||
|
'last_reported': <ANY>,
|
||||||
|
'last_updated': <ANY>,
|
||||||
|
'state': '0.025954',
|
||||||
|
})
|
||||||
|
# ---
|
||||||
# name: test_sensor_states[sensor.0_0_0_0_ssl_disk_free-entry]
|
# name: test_sensor_states[sensor.0_0_0_0_ssl_disk_free-entry]
|
||||||
EntityRegistryEntrySnapshot({
|
EntityRegistryEntrySnapshot({
|
||||||
'aliases': set({
|
'aliases': set({
|
||||||
|
Loading…
x
Reference in New Issue
Block a user