1 """Support for displaying the current CPU speed."""
3 from __future__
import annotations
5 from cpuinfo
import cpuinfo
14 from .const
import DOMAIN
17 ATTR_HZ =
"ghz_advertised"
20 HZ_ACTUAL =
"hz_actual"
21 HZ_ADVERTISED =
"hz_advertised"
27 async_add_entities: AddEntitiesCallback,
29 """Set up the platform from config_entry."""
34 """Representation of a CPU sensor."""
36 _attr_device_class = SensorDeviceClass.FREQUENCY
37 _attr_has_entity_name =
True
39 _attr_native_unit_of_measurement = UnitOfFrequency.GIGAHERTZ
41 def __init__(self, entry: ConfigEntry) ->
None:
42 """Initialize the CPU sensor."""
46 identifiers={(DOMAIN, entry.entry_id)},
50 """Get the latest data and updates the state."""
51 info = cpuinfo.get_cpu_info()
53 if info
and HZ_ACTUAL
in info:
60 ATTR_ARCH: info.get(
"arch_string_raw"),
61 ATTR_BRAND: info.get(
"brand_raw"),
63 if HZ_ADVERTISED
in info:
65 info[HZ_ADVERTISED][0] / 10**9, 2
_attr_extra_state_attributes
None __init__(self, ConfigEntry entry)
None async_setup_entry(HomeAssistant hass, ConfigEntry entry, AddEntitiesCallback async_add_entities)