mirror of
https://github.com/home-assistant/home-assistant.io.git
synced 2025-07-08 18:06:54 +00:00
Add config flow to System Monitor (#30115)
Co-authored-by: Martin Hjelmare <marhje52@gmail.com>
This commit is contained in:
parent
6db58892db
commit
fb6a973894
@ -6,78 +6,59 @@ ha_category:
|
||||
ha_release: pre 0.7
|
||||
ha_iot_class: Local Push
|
||||
ha_domain: systemmonitor
|
||||
ha_config_flow: true
|
||||
ha_platforms:
|
||||
- sensor
|
||||
ha_integration_type: integration
|
||||
---
|
||||
|
||||
The `systemmonitor` sensor platform allows you to monitor disk usage,
|
||||
The System monitor integration allows you to monitor disk usage,
|
||||
memory usage, CPU usage, and running processes.
|
||||
|
||||
To add this platform to your installation,
|
||||
add the following to your `configuration.yaml` file:
|
||||
{% include integrations/config_flow.md %}
|
||||
|
||||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
sensor:
|
||||
- platform: systemmonitor
|
||||
resources:
|
||||
- type: disk_use_percent
|
||||
arg: /config
|
||||
- type: memory_free
|
||||
```
|
||||
## Sensors
|
||||
|
||||
{% configuration %}
|
||||
resources:
|
||||
description: Contains all entries to display.
|
||||
required: true
|
||||
type: list
|
||||
keys:
|
||||
type:
|
||||
description: The type of the information to display, please check the table below for details.
|
||||
required: true
|
||||
arg:
|
||||
description: Argument to use, please check the table below for details.
|
||||
required: false
|
||||
{% endconfiguration %}
|
||||
**All entities are disabled by default, you need to enable the entities that you wish to use.**
|
||||
|
||||
After restarting Home Assistant, these sensors will show up and update their
|
||||
information every 15 seconds.
|
||||
### Disks
|
||||
|
||||
The table contains types and their argument to use in your `configuration.yaml`
|
||||
file.
|
||||
- Disk free - (One per disk/mount point)
|
||||
- Disk use - (One per disk/mount point)
|
||||
- Disk use (percent) - (One per disk/mount point)
|
||||
|
||||
| Type (`type:`) | Argument (`arg:`) | Argument mandatory |
|
||||
| :--------------------- |:--------------------------|:--------------------------|
|
||||
| disk_use_percent | Path, e.g., `/` | no |
|
||||
| disk_use | Path, e.g., `/` | no |
|
||||
| disk_free | Path, e.g., `/` | no |
|
||||
| memory_use_percent | | |
|
||||
| memory_use | | |
|
||||
| memory_free | | |
|
||||
| swap_use_percent | | |
|
||||
| swap_use | | |
|
||||
| swap_free | | |
|
||||
| load_1m | | |
|
||||
| load_5m | | |
|
||||
| load_15m | | |
|
||||
| network_in | Interface, e.g., `eth0` | yes |
|
||||
| network_out | Interface, e.g., `eth0` | yes |
|
||||
| throughput_network_in | Interface, e.g., `eth0` | yes |
|
||||
| throughput_network_out | Interface, e.g., `eth0` | yes |
|
||||
| packets_in | Interface, e.g., `eth0` | yes |
|
||||
| packets_out | Interface, e.g., `eth0` | yes |
|
||||
| ipv4_address | Interface, e.g., `eth0` | yes |
|
||||
| ipv6_address | Interface, e.g., `eth0` | yes |
|
||||
| processor_use | | |
|
||||
| processor_temperature | | |
|
||||
| process | Binary, e.g., `octave-cli` | yes |
|
||||
| last_boot | | |
|
||||
### Network
|
||||
|
||||
- IPv4 address - (One per network interface)
|
||||
- IPv6 address - (One per network interface)
|
||||
- Network in - (One per network interface)
|
||||
- Network out - (One per network interface)
|
||||
- Packets in - (One per network interface)
|
||||
- Packets out - (One per network interface)
|
||||
- Network throughput in - (One per network interface)
|
||||
- Network throughput out - (One per network interface)
|
||||
|
||||
### Other
|
||||
|
||||
- Last boot
|
||||
- Load (15m)
|
||||
- Load (5m)
|
||||
- Load (1m)
|
||||
- Memory free
|
||||
- Memory use
|
||||
- Memory use (percent)
|
||||
- Processor use
|
||||
- Processor temperature
|
||||
- Swap free
|
||||
- Swap use
|
||||
- Swap use (percent)
|
||||
|
||||
### Add `process` sensor
|
||||
|
||||
The `process` sensor needs to be configured by the config entry options. Go to **{% my integrations title="Settings > Devices & Services" %}**, select the **System Monitor** integration and click **Configure** to select which `process` sensors should be created.
|
||||
|
||||
## Disk usage
|
||||
|
||||
If no path is provided via the optional argument, the integration defaults to '/' (root).
|
||||
|
||||
**Note:** The disk usage sensors do not support monitoring folder/directory sizes. Instead, it is only concerned with "disks" (more specifically mount points on Linux).
|
||||
|
||||
```bash
|
||||
@ -89,100 +70,8 @@ tmpfs 934M 0 934M 0% /dev/shm
|
||||
/dev/mmcblk0p1 253M 54M 199M 22% /boot
|
||||
```
|
||||
|
||||
Defining a `disk_use` sensor for `/` and `/home/pi` is redundant and will return the same values, since they both belong to the same "disk". However, defining separate sensors for `/dev` and `/dev/shm` is possible and provides different values, since those are treated as separate "disks" by the integration.
|
||||
|
||||
```yaml
|
||||
# Example configuration.yaml entry
|
||||
sensor:
|
||||
- platform: systemmonitor
|
||||
resources:
|
||||
- type: disk_use
|
||||
arg: /dev
|
||||
- type: disk_use
|
||||
arg: /dev/shm
|
||||
```
|
||||
|
||||
## Processor temperature
|
||||
|
||||
- If no hardware sensor data is available (e.g., because the integration runs in a virtualized environment), the sensor entity will not be created.
|
||||
- The unit of measurement (Celsius vs. Fahrenheit) will be chosen based on the system configuration.
|
||||
- Only the very first processor related hardware sensor is read, i.e., no individual core temperatures (even if the hardware sensor could provide that level of detail).
|
||||
|
||||
## Linux specific
|
||||
|
||||
To retrieve all available network interfaces on a Linux System, execute the
|
||||
`ifconfig` or `ip` command. The command differs based on your operation system and version.
|
||||
|
||||
```bash
|
||||
ifconfig -a | sed 's/[ \t].*//;/^$/d'
|
||||
```
|
||||
|
||||
```bash
|
||||
ip link show
|
||||
```
|
||||
|
||||
## Windows specific
|
||||
|
||||
When running this platform on Microsoft Windows, Typically,
|
||||
the default interface would be called `Local Area Connection`,
|
||||
so your configuration might look like:
|
||||
|
||||
```yaml
|
||||
sensor:
|
||||
- platform: systemmonitor
|
||||
resources:
|
||||
- type: network_in
|
||||
arg: "Local Area Connection"
|
||||
```
|
||||
|
||||
If you need to use some other interface, open a command line prompt and type `ipconfig` to list all interface names. For example a wireless connection output from `ipconfig` might look like:
|
||||
|
||||
```bash
|
||||
Wireless LAN adapter Wireless Network Connection:
|
||||
|
||||
Media State . . . . . . . . . . . : Media disconnected
|
||||
Connection-specific DNS Suffix . :
|
||||
```
|
||||
|
||||
Where the name is `Wireless Network Connection`.
|
||||
|
||||
## All available resources
|
||||
|
||||
```yaml
|
||||
# Example configuration.yaml entry with all entry types (delete/comment out as necessary)
|
||||
sensor:
|
||||
- platform: systemmonitor
|
||||
resources:
|
||||
- type: disk_use_percent
|
||||
arg: /config
|
||||
- type: disk_use
|
||||
- type: disk_free
|
||||
- type: memory_use_percent
|
||||
- type: memory_use
|
||||
- type: memory_free
|
||||
- type: swap_use_percent
|
||||
- type: swap_use
|
||||
- type: swap_free
|
||||
- type: load_1m
|
||||
- type: load_5m
|
||||
- type: load_15m
|
||||
- type: network_in
|
||||
arg: eth0
|
||||
- type: network_out
|
||||
arg: eth0
|
||||
- type: throughput_network_in
|
||||
arg: eth0
|
||||
- type: throughput_network_out
|
||||
arg: eth0
|
||||
- type: packets_in
|
||||
arg: eth0
|
||||
- type: packets_out
|
||||
arg: eth0
|
||||
- type: ipv4_address
|
||||
arg: eth0
|
||||
- type: ipv6_address
|
||||
arg: eth0
|
||||
- type: processor_use
|
||||
- type: processor_temperature
|
||||
- type: last_boot
|
||||
```
|
||||
|
Loading…
x
Reference in New Issue
Block a user