You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
95 lines
4.0 KiB
95 lines
4.0 KiB
######################################################################
|
|
# @CCOSTAN - Follow Me on X
|
|
# For more info visit https://www.vcloudinfo.com/click-here
|
|
# Original Repo : https://github.com/CCOSTAN/Home-AssistantConfig
|
|
# -------------------------------------------------------------------
|
|
# Glances - ProxMox/server stats via Glances integration.
|
|
# CPU, memory, and disk sensors from Glances API.
|
|
# -------------------------------------------------------------------
|
|
# Notes: Garage temperature ignores unavailable legacy thermal sensors so the average does not fall to 0 F.
|
|
######################################################################
|
|
|
|
template:
|
|
- sensor:
|
|
- name: "Proxmox Garage Average Temperature"
|
|
unique_id: proxmox_garage_avg_temp
|
|
device_class: temperature
|
|
state_class: measurement
|
|
unit_of_measurement: "\u00B0F"
|
|
availability: >-
|
|
{% set sources = [
|
|
'sensor.proxmox1_cpu_temperature',
|
|
'sensor.proxmox2_cpu_temperature',
|
|
'sensor.proxmox1_package_id_0_temperature',
|
|
'sensor.proxmox1_pch_skylake_1_temperature',
|
|
'sensor.proxmox1_core_0_temperature',
|
|
'sensor.proxmox1_core_1_temperature',
|
|
'sensor.proxmox1_core_2_temperature',
|
|
'sensor.proxmox1_core_3_temperature',
|
|
'sensor.proxmox1_acpitz_1_temperature',
|
|
'sensor.proxmox1_acpitz_2_temperature',
|
|
'sensor.proxmox2_package_id_0_temperature',
|
|
'sensor.proxmox2_pch_skylake_1_temperature',
|
|
'sensor.proxmox2_core_0_temperature',
|
|
'sensor.proxmox2_core_1_temperature',
|
|
'sensor.proxmox2_core_2_temperature',
|
|
'sensor.proxmox2_core_3_temperature',
|
|
'sensor.proxmox2_acpitz_1_temperature',
|
|
'sensor.proxmox2_acpitz_2_temperature'
|
|
] %}
|
|
{% set ns = namespace(valid=false) %}
|
|
{% for source in sources %}
|
|
{% if states(source) | float(0) > 0 %}
|
|
{% set ns.valid = true %}
|
|
{% endif %}
|
|
{% endfor %}
|
|
{{ ns.valid }}
|
|
state: >-
|
|
{% set sources = [
|
|
'sensor.proxmox1_cpu_temperature',
|
|
'sensor.proxmox2_cpu_temperature',
|
|
'sensor.proxmox1_package_id_0_temperature',
|
|
'sensor.proxmox1_pch_skylake_1_temperature',
|
|
'sensor.proxmox1_core_0_temperature',
|
|
'sensor.proxmox1_core_1_temperature',
|
|
'sensor.proxmox1_core_2_temperature',
|
|
'sensor.proxmox1_core_3_temperature',
|
|
'sensor.proxmox1_acpitz_1_temperature',
|
|
'sensor.proxmox1_acpitz_2_temperature',
|
|
'sensor.proxmox2_package_id_0_temperature',
|
|
'sensor.proxmox2_pch_skylake_1_temperature',
|
|
'sensor.proxmox2_core_0_temperature',
|
|
'sensor.proxmox2_core_1_temperature',
|
|
'sensor.proxmox2_core_2_temperature',
|
|
'sensor.proxmox2_core_3_temperature',
|
|
'sensor.proxmox2_acpitz_1_temperature',
|
|
'sensor.proxmox2_acpitz_2_temperature'
|
|
] %}
|
|
{% set ns = namespace(values=[]) %}
|
|
{% for source in sources %}
|
|
{% set temp = states(source) | float(0) %}
|
|
{% if temp > 0 %}
|
|
{% set ns.values = ns.values + [temp] %}
|
|
{% endif %}
|
|
{% endfor %}
|
|
{% if ns.values | count > 0 %}
|
|
{{ ((ns.values | sum) / (ns.values | count)) | round(1) }}
|
|
{% else %}
|
|
unavailable
|
|
{% endif %}
|
|
|
|
automation:
|
|
- alias: "Garage Proxmox High Temperature Warning"
|
|
id: proxmox-garage-high-temp-warning-automation
|
|
trigger:
|
|
- platform: numeric_state
|
|
entity_id: sensor.proxmox_garage_average_temperature
|
|
above: 145 # Adjust threshold as needed
|
|
action:
|
|
- service: script.notify_engine
|
|
data:
|
|
title: "?? Proxmox Garage Alert!"
|
|
value1: "The average temperature of your Proxmox servers is above 145\u00B0F!"
|
|
who: 'carlo'
|
|
group: 'information'
|