Home Assistant - jak sprawdzić obciążenie, temperaturę i inne dane naszego systemu?

Home Assistant - jak sprawdzić obciążenie, temperaturę i inne dane naszego systemu?

Zastanawialiście się kiedyś ile danych wysyła i odbiera Home Assistant - mnie to trochę zaskoczyło! Od razu pobierzemy kilka innych informacji o naszym sprzęcie, aby móc monitorować lepiej czy potrzebujemy przesiąść się już na coś mocniejszego!

Tak naprawdę sprowadza się do to kilku linijek kodu i wszystko działa od razu. Problemem może być tylko określenie eth0 w niektórych systemach ale to dla osób bardziej zaawansowanych. Dla osób które, korzystają z poradników na mojej stronie, będzie to tylko skopiowanie poniższego kodu.

configuration.yaml 

Dodajemy do naszych sensor:

- platform: systemmonitor
    resources:
      - type: disk_use_percent
        arg: '/'
      - type: memory_use_percent
      - type: processor_use
      - type: network_in
        arg: eth0
      - type: network_out
        arg: eth0
      - type: last_boot
      - type: swap_use_percent
- platform: command_line
    name: GPU Temperature
    command: "/opt/vc/bin/vcgencmd measure_temp"
    unit_of_measurement: "°C"
    value_template: '{{ value | replace("temp=", "") | replace("''C", "") }}' 
- platform: command_line
    name: CPU Temperature
    command: "cat /sys/class/thermal/thermal_zone0/temp"
    unit_of_measurement: "°C"
    value_template: '{{ value | multiply(0.001) | round(1) }}'

Pamiętaj w zależności od urządzenia eth0 może mieć inną nazwę np. na Dell Wyse czy HP T620 jest to enp4s0 lub enp1s0! A temperatura, też jest trochę inaczej przechowywana, musisz przetestować co u Ciebie działa:

Wchodzimy przez ssh i instalujemy: 

sudo apt install lm_sensors

sudo sensors-detect - potwierdzamy wszystko y (milion razy), dlatego robimy szybciej: yes yes | sensors-detect

sudo sensors - wyświetla 

sudo service module-init-tools restart - tylko, jeżeli coś wyświetla inaczej

Pierwsze to GPU (Radeon) drugie to CPU (kl...).

Następnie te dane musimy sobie wyświetlić w Home Assistant:

- platform: systemmonitor
    resources:
      - type: disk_use_percent
        arg: '/'
      - type: memory_use_percent
      - type: processor_use
      - type: network_in
        arg: enp4s0
      - type: network_out
        arg: enp4s0
      - type: last_boot
      - type: swap_use_percent
- platform: command_line
    name: CPU Temperature
    command: "cat /sys/class/hwmon/hwmon1/temp1_input"
    unit_of_measurement: "°C"
    value_template: '{{ value | multiply(0.001) | round(1) }}'
- platform: command_line
    name: GPU Temperature
    command: "cat /sys/class/hwmon/hwmon0/temp1_input"
    unit_of_measurement: "°C"
    value_template: '{{ value | multiply(0.001) | round(1) }}'

Restart maszyny, dodanie do karty wyświetlania parametrów i gotowe! Tutaj jak to wygląda na RPi4B z 4GB RAM i kartą 32GB.

Jak możecie zobaczyć, aktywne chłodzenie w Rpi4 robi ogromną różnicę względem chłodzenia pasywnego (które nie jest zalecane do tego urządzenia). 

Ile MB krąży po sieci?

  • 1 MiB = 1024 KiB = 1024*1024 B = 1 048 576 B 
  • 1 MB  = 1000 kB  = 1000*1000 B = 1 000 000 B

A wraz ze wzrostem mnożnika rozbieżności są coraz większe. Jednak to nie jest ważne - 1 godzina to 10MB danych wychodzących i połowa tego przychodzących. Jestem ciekaw ile tego idzie na zewnątrz sieci ;) 

Podsumowanie

Dajcie znać jak to u Was wygląda temperatura, zajętość RAM i dysku! W komentarzu podajcie jakiego urządzenia używacie w tym: ilość RAM oraz wielkość dysku - jestem ciekaw jak to u Was wygląda! 


Źródło: 

https://www.home-assistant.io/integrations/systemmonitor/

https://community.home-assistant.io/t/system-monitoring-how-does-your-look/109713

 


Chcesz wiedzieć więcej? Dołącz do naszej grupy na FB - będzie nam też miło jak polubisz nasz Fanpage!