# Home Assistant - OpenHardwareMonitor Integration This repository contains Home Assistant configuration packages, including integration with OpenHardwareMonitor for hardware monitoring. ## OpenHardwareMonitor Package Monitors hardware sensors from two servers running OpenHardwareMonitor: - Server 1: `http://10.0.0.243:8085/` - Server 2: `http://10.0.0.244:8085/` ### Installation 1. **Copy the package file** to your Home Assistant packages directory: ```bash cp packages/openhardwaremonitor.yaml /config/packages/ ``` 2. **Copy the binary_sensors.yaml** (if you don't have one already): ```bash cp binary_sensors.yaml /config/ ``` 3. **Ensure your `configuration.yaml` has packages enabled**: ```yaml homeassistant: packages: !include_dir_named packages binary_sensor: !include binary_sensors.yaml ``` 4. **Configure the Server 243 Status sensor via UI**: - Go to Settings → Devices & Services → Add Integration - Search for "Ping (ICMP)" - Add integration with these settings: - IP: `10.0.0.243` - Name: `Server 243 Status` 5. **Restart Home Assistant** ### Sensors Created For each server (243 and 244), the following sensors are created: - **CPU Temperature** (`sensor.server_243_cpu_temperature` / `sensor.server_244_cpu_temperature`) - Monitors CPU package or core temperature - Unit: °C - Update interval: 30 seconds - **CPU Load** (`sensor.server_243_cpu_load` / `sensor.server_244_cpu_load`) - Monitors total CPU load - Unit: % - Update interval: 30 seconds - **RAM Usage** (`sensor.server_243_ram_usage` / `sensor.server_244_ram_usage`) - Monitors memory usage - Unit: GB - Update interval: 30 seconds - **GPU Temperature** (`sensor.server_243_gpu_temperature` / `sensor.server_244_gpu_temperature`) - Monitors GPU core temperature (NVIDIA/AMD) - Unit: °C - Update interval: 30 seconds ### Binary Sensors (Status Monitoring) - **Server 243 Status** (`binary_sensor.server_243_status`) - Configured via UI (Ping integration) - Monitors online/offline state of Server 243 - Perfect for adding a status badge to your dashboard ### Requirements - OpenHardwareMonitor must be running on both servers with web server enabled - Default port: 8085 - Servers must be accessible from Home Assistant instance ### Customization To modify the scan interval, edit the `scan_interval` value in `openhardwaremonitor.yaml`: ```yaml rest: - resource: http://10.0.0.243:8085/data.json scan_interval: 30 # Change this value (in seconds) ``` To add additional sensors, you can follow the same template pattern and navigate the JSON structure from OpenHardwareMonitor's `/data.json` endpoint. ### Troubleshooting **Sensors show "unknown":** - Verify OpenHardwareMonitor is running on the target servers - Check that the web server is enabled in OpenHardwareMonitor settings - Test the endpoint manually: `http://10.0.0.243:8085/data.json` - Check Home Assistant logs for any REST sensor errors **No GPU sensor data:** - Some systems may not have GPU monitoring enabled - Verify OpenHardwareMonitor detects your GPU - Check if the GPU sensor name matches the template pattern **Status sensor not working:** - Ensure the Ping (ICMP) integration is added via UI - Ensure ICMP (ping) is allowed through any firewalls - Check Home Assistant logs for ping integration errors ### Example Dashboard Card ```yaml type: entities title: Server Hardware Monitoring entities: - entity: binary_sensor.server_243_status name: Server 243 Status - entity: sensor.server_243_cpu_temperature name: Server 243 CPU Temp - entity: sensor.server_243_cpu_load name: Server 243 CPU Load - entity: sensor.server_243_ram_usage name: Server 243 RAM - entity: sensor.server_243_gpu_temperature name: Server 243 GPU Temp - entity: sensor.server_244_cpu_temperature name: Server 244 CPU Temp - entity: sensor.server_244_cpu_load name: Server 244 CPU Load - entity: sensor.server_244_ram_usage name: Server 244 RAM - entity: sensor.server_244_gpu_temperature name: Server 244 GPU Temp ``` ### Example Badge Card for Status ```yaml type: badge entity: binary_sensor.server_243_status name: Server 243 ``` ## License This configuration is provided as-is for personal use.