diff --git a/source/_integrations/systemmonitor.markdown b/source/_integrations/systemmonitor.markdown index e0b12b7c057..3ec3caf7f00 100644 --- a/source/_integrations/systemmonitor.markdown +++ b/source/_integrations/systemmonitor.markdown @@ -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 -```