Configuração de sensores temp CPU para servidores Proxmox

Boas pessoal, após ter seguido o tópico aqui no forum para instalação do Proxmox e ter migrado o meu HA para este formato, deparei me com o problema da leitura das temperaturas do CPU (O que já o fazia no Raspberry através do command_line) aqui não foi tão simples.
Após vários dias de volta disto consegui finalmente chegar a uma solução que funciona bem!
Deixo vos aqui os meus passos para poder ajudar alguém com o mesmo dilema que o meu!

Ter instalado o Terminal & SSH no HA.

No terminal do HA correr: ssh-keygen
Ir dando ENTER sem colocar nada, ira gerar a chave para aceder sem autenticação ao Proxmox.

No terminal do HA correr: ssh-copy-id vosso_user@vosso_ip_proxmox (Exemplo: root@192.168.1.1) e dar ENTER, ira pedir a vossa password do user Proxmox que colocaram e dar ENTER.

Com um software FTP (Usei o Filezilla Client), aceder por FTP ao Proxmox ir à pasta /root/.ssh e copiar o ficheiro id_rsa para a pasta /config/ssh/ do HA (Se não tiverem a pasta ssh criar).

Voltando ao terminal do HA correr: chmod 400 /config/ssh/id_rsa
Isto irá alterar as configurações de acesso ao ficheiro que contem a nossa chave de autenticação.

Por fim ir ao vosso configuration.yaml e adicionar o seguinte:

sensor:
  - platform: command_line
    name: 'CPU Temp1'
    command: "ssh -i /config/ssh/id_rsa -o StrictHostKeyChecking=no vosso_user@vosso_ip_proxmox -t 'cat /sys/class/thermal/thermal_zone0/temp'"
    unit_of_measurement: '°C'
    scan_interval: 5
    value_template: '{{ (value | multiply(0.001)) | round(0) }}'  
    
  - platform: command_line
    name: 'CPU Temp2'
    command: "ssh -i /config/ssh/id_rsa -o StrictHostKeyChecking=no vosso_user@vosso_ip_proxmox -t 'cat /sys/class/thermal/thermal_zone1/temp'"
    unit_of_measurement: '°C'
    scan_interval: 5
    value_template: '{{ (value | multiply(0.001)) | round(0) }}'

Só subtituir vosso_user@vosso_ip_proxmox pelos vossos respectivos user e pass acima usados.
Reeniciar o HA, adicionar as novas entidades “CPU Temp1” e “CPU Temp2” ao Lovelace e se tudo correu bem vão ter as temperaturas. No meu caso usei dois command_line porque tenho 2 sensores mas podem usar os que quiserem, basta acrescentar.

Espero ter ajudado, um abraço pessoal!

2 Curtiram

como este comando dá para ver a que se referem as zonas

cat /sys/class/thermal/thermal_zone*/type

no meu tenho assim:

Temp CPU

cat /sys/class/thermal/thermal_zone3/temp

Temp PCH

cat /sys/class/thermal/thermal_zone2/temp

depois ainda tenho mais umas tretas

Temp do m.2

smartctl -a /dev/sda | grep -i temperature | awk '{print $10}'

Uptime

uptime | awk -F'( |,|:)+' '{d=h=m=0; if ($7=="min") m=$6; else {if ($7~/^day/) {d=$6;h=$8;m=$9} else {h=$6;m=$7}}} {print d+0"d",h+0"h",m+0"m"}'
2 Curtiram

Copyright © 2017-2021. Todos os direitos reservados
CPHA.pt - info@cpha.pt


FAQ | Termos de Serviço/Regras | Política de Privacidade