Monitoring a Home Assistant server
As our intelligent home grows in number of devices and complexity, but also in usefulness, we must protect the Home Assistant server in order to avoid future problems or at least detect them in early.
Home Assistant offers several system monitoring components. For this article, we will use the System Monitor and Speedtest.net components to obtain system values and network data respectively.
Configuring the components
As in other articles, we are going to edit the configuration.yaml
file to include the systemmonitor
and speedtestdotnet
components. Open the file and include the following lines of code:
speedtestdotnet:
scan_interval:
minutes: 30
monitored_conditions:
- ping
- download
- upload
sensor:
- platform: systemmonitor
resources:
- type: disk_use_percent
arg: /
- type: memory_use_percent
- type: processor_use
- type: last_boot
If you have a sensor node with another platform (e.g. miflora
), simply add systemmonitor
to the list:
...
sensor:
- platform: systemmonitor
...
- platform: miflora
...
...
The systemmonitor
and speedtestdotnet
components have other very interesting parameters, but for the moment, I am going to put the ones that I consider more interesting or are obligatory for the configuration to work. Check each one’s documentation to discover all the available options.
The
speedtestdotnet
component consumes a large CPU width (which can be analyzed from thesystemmonitor
component), if you notice outages or performance problems, increases thescan_interval
parameter to perform the network analysis every several hours.
Reboot the server from the configuration.
Visual interface
To show the data on Lovelace’s Dashboard, we’re going to use two special cards. These cards cannot be configured visually, so we will edit their code.
For speedtestdotnet
add a History-Graph card:
entities:
- sensor.speedtest_download
- sensor.speedtest_ping
- sensor.speedtest_upload
type: history-graph
For the systemmonitor
sensor, create a Vertical-Stack type card:
cards:
- cards:
- type: gauge
entity: sensor.processor_use
- type: gauge
entity: sensor.disk_use_percent
- type: gauge
entity: sensor.memory_use_percent
type: horizontal-stack
- entities:
- sensor.last_boot
type: entities
type: vertical-stack
Conclusion
With this information, and other information that may interest you (see documentation of the components), you will be able to monitor your server and predict future problems before they happen in a simple and visual way.
For example, to see if the space available on the server is running out, or if the Internet operator is offering less speed than contracted.
This and other articles complement the documentation of the GitHub repository where all the configuration of my house is available.