Monitor hardware temperatures from /sys/class/hwmon in Home Assistant. This integration provides real-time temperature monitoring for various hardware components including CPUs, storage devices, and other temperature sensors accessible through the Linux hardware monitoring subsystem.
- Automatic Discovery: Automatically detects and monitors all available temperature sensors
- Real-time Updates: Configurable polling intervals for temperature readings
- Device Classification: Intelligent naming and categorization of temperature sensors
- Multiple Device Support: Monitors various hardware components simultaneously
This integration can monitor temperatures from various hardware components including:
- CPU Temperature Sensors
- Intel Core processors (via
coretempmodule) - AMD processors (via
k10tempmodule) - ARM processors (via thermal zones)
- Intel Core processors (via
- Storage Devices
- NVMe SSDs (via
nvmemodule) - SATA SSDs and HDDs (via
drivetempmodule) - SMART-enabled drives
- NVMe SSDs (via
- Motherboard Sensors
- Various motherboard temperature sensors
- System temperature monitoring
- Other Hardware
- GPU temperature sensors (when available via hwmon)
- Custom temperature sensors
To use this integration, you need to ensure the appropriate Linux kernel modules are loaded for your hardware. The required modules depend on your specific hardware: see HWMON Setup
If you dont' have HACS installed yet, I highly recommend it.
Or search for HWMON Temperatures in HACS or copy this GitHub URL and add it as a custom integration repository.
Download the latest hwmon_temp.zip release and extract it into your <config>/custom_component folder.
After installation you need to restart Home Assistant before using this integration.
Or
- Go to Settings → Devices & Services
- Click Add Integration
- Search for "HWMON Temperatures"
- Click on the integration
- Configure the update interval (default: 30 seconds)
- Click Submit
- Update Interval: How often to poll for temperature updates (in seconds)
- Minimum: 10 seconds
- Recommended: 30-60 seconds
- Default: 30 seconds
Once configured, the integration will automatically create temperature sensors for each detected hardware component. Sensor names are automatically generated based on the hardware type:
- CPU sensors:
Core 0,Core 1,Package, etc. - Storage devices: Device model names (e.g.,
Samsung SSD 970 EVO Plus) - Motherboard sensors: Component names (e.g.,
System,CPU,Motherboard)
Add temperature sensors to your Home Assistant dashboard:
type: history-graph
title: CPU temperatures
entities:
- entity: sensor.dev_cpu_package_id_...
- entity: sensor.dev_cpu_pch_...
- entity: sensor.dev_cpu_acpitz
hours_to_show: 12type: history-graph
title: Disk temperatures
entities:
- entity: sensor.dev_nvme0_...
- entity: sensor.dev_nvme1_...
hours_to_show: 12You can create automations based on temperature thresholds:
# Example automation for high CPU temperature
automation:
- alias: "High CPU Temperature Alert"
trigger:
platform: numeric_state
entity_id: sensor.core_0_temperature
above: 80
action:
- service: notify.mobile_app
data:
message: "CPU temperature is high: {{ states('sensor.core_0_temperature') }}°C"Note this may not work correctly if you're running Home Assistant inside of a virtual machine, unless /sys/class/hwmon/ is specifically shared from host machine to the guest machine.
-
Check kernel modules:
lsmod | grep -E "(coretemp|k10temp|nvme|drivetemp)"
-
Verify hwmon directory:
ls -la /sys/class/hwmon/
-
Check permissions:
ls -la /sys/class/hwmon/hwmon*/temp*_input
If you encounter permission issues, ensure the Home Assistant process has read access to /sys/class/hwmon/:
# Check Home Assistant user
ps aux | grep homeassistant
# Verify file permissions
ls -la /sys/class/hwmon/If specific hardware isn't detected:
-
Load required kernel modules (see HWMON Setup)
-
Run sensors-detect:
sudo sensors-detect
-
Check hardware compatibility with your Linux distribution
# For Intel processors
sudo modprobe coretemp
# For AMD processors
sudo modprobe k10temp
# For ARM processors (usually built-in)
# No additional module needed# For NVMe drives
sudo modprobe nvme
# For SATA drives with temperature support
sudo modprobe drivetemp
# For SMART-enabled drives
sudo modprobe smart# Common motherboard sensor modules
sudo modprobe lm_sensors
sudo modprobe it87
sudo modprobe k8temp
sudo modprobe fam15h_powerCheck if your hardware is detected:
# List all hwmon devices
ls -la /sys/class/hwmon/
# Check specific hwmon device details
cat /sys/class/hwmon/hwmon*/name
# List temperature sensors
find /sys/class/hwmon -name "temp*_input"