Integración Proxmox en Homeassistant

Después de llevar un tiempo con Proxmox te das cuenta que suele ser un poco lento tener que ir a su interface para solo encender o parar una ct o una vm, asi que he buscado una forma de integrarlo en Homeassistant para que sea mas cómodo y además puedes hacerlo como si apagaras o encendieras una luz o un enchufe, con alexa o Google Home.

Sensores de espacio de disco

Primero vamos a sacar en unos sensores el almacenamiento del sistema Proxmox, con el comando pvesm status (con sudo delante si corresponde) podes ver el estado del almacenamiento del sistema Proxmox:

root@pve:~# pvesm status
Name Type Status Total Used Available %
local dir active 59600812 30646720 25896840 51.42%
local-lvm lvmthin active 158646272 90777396 67868875 57.22%

Con esos datos podemos sacar uno o varios sensores y mostrarlo en una barra de progreso en Homeassistant o de la manera que cada uno quiera.

En mi ejemplo es así:

sensor:

  - platform: command_line
    name: proxmox_local_used
    unit_of_measurement: '%'
    command: >-
      ssh root@192.168.1.3 pvesm status | awk 'NR==2'| awk '{ print $7 }' | cut -d '%' -f 1
    scan_interval: 120

  - platform: command_line
    name: proxmox_local_lvm_used
    unit_of_measurement: '%'
    command: >-
      ssh root@192.168.1.3 pvesm status | awk 'NR==3'| awk '{ print $7 }' | cut -d '%' -f 1
    scan_interval: 120

Esto te genera dos sensores con el % de disco usado de cada almacenamiento de Proxmox, si tienes mas puedes poner los que quieras.

Para hacer esto como lo hago yo necesitas que el sistema donde esta instalado Homeassistant tenga la confianza ssh con el sistema Proxmox.

Luego ese dato podemos ponerlo un poco mas bonito con una barra de progreso por cada almacenamiento:

Esto está creado con el custom-component custom:bar-card, este es el codigo de ejemplo mio de uno de los sensores en lovelace:

- type: custom:bar-card
  title: Local
  title_position: left
  height: 20px
  padding: 2px
  entity: sensor.proxmox_local_used
  severity:
  - value: 33
    color: '#40bf40' #verde
  - value: 66
    color: '#bf9540' #ocre
  - value: 100
    color: '#bf4040' #rojo
  card_style:
    border-radius: 0px
    background: 'rgba(0, 0, 0, 0.0)'
    box-shadow: 'inset 2px 2px 3px 1px rgba(0, 0, 0, 0.0)'

Switch para encender/parar ct

Para enceder y parar los contenedores desde linea de comandos usamos el comando pct start/stop (igualmente con sudo si corresponde) y para ver el estado con el comando pct status, con esos comandos hacemos el switch template correspondiente a cada ct para Homeassistant.

Cada ct se nombra por su nombre o codigo, podemos averiguar las que tenemos con el comando pct list, y te muestra un listado y su estado:

root@pve:~# pct list
VMID Status Lock Name
100 stopped debian9
101 stopped plex
102 stopped emby
104 stopped calibre
108 stopped ftp
109 stopped sql

Este es uno de mis switch de ejemplo:

switch:
  - platform: command_line
    switches:
      proxmox_ct_debian9:
        friendly_name: 'Debian 9'
        command_on: "ssh root@192.168.1.3 'pct start 100'"
        command_off: "ssh root@192.168.1.3 'pct stop 100'"
        command_state: "ssh root@192.168.1.3 pct status 100 | grep -oPc 'status: running'"
        value_template: '{{ value == "1" }}'

Switch para encender/parar vm

Para encender y parar las vm se hace de igual manera que las ct pero usando qm en vez de pct en los comandos:

Un ejmplo:

switch:
  - platform: command_line
    switches:
      proxmox_vm_omv:
        friendly_name: 'Open media vault'
        command_on: "ssh root@192.168.1.3 'qm start 105'"
        command_off: "ssh root@192.168.1.3 'qm stop 105'"
        command_state: "ssh root@192.168.1.3 qm status 105 | grep -oPc 'status: running'"
        value_template: '{{ value == "1" }}'

Este seria el resultado final con todos los switch y las barras de progreso con el almacenamiento:

Para dejar esos iconos podeis usar esto en la parte de customize:

homeassistant:
  customize:
    switch.proxmox_ct_debian9:
      icon: mdi:package-variant-closed
    switch.proxmox_vm_debian9:
      icon: mdi:monitor

Esto es todo, nos vemos por el canal de Telegram oficial de Domology.

Deja una respuesta

Síguenos

Siguenos en facebook
Esta web utiliza cookies propias para su correcto funcionamiento. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de sus datos para estos propósitos. Ver
Privacidad