command_line binary sensor platform issues specific commands to get data.
To use your Command binary sensor in your installation, add the following to your
# Example configuration.yaml entry binary_sensor: - platform: command_line command: "cat /proc/sys/net/ipv4/ip_forward"
It’s highly recommended to enclose the command in single quotes
' as it ensures all characters can be used in the command and reduces the risk of unintentional escaping. To include a single quote in a command enclosed in single quotes, double it:
Sets the class of the device, changing the device state and icon that is displayed on the frontend.
Defines a template to extract a value from the payload.
command is executed within the configuration directory.
If you are using Home Assistant Operating System, the commands are executed in the
homeassistant container context. So if you test or debug your script, it might make sense to do this in the context of this container to get the same runtime environment.
0 exit code, the output (stdout) of the command is used as
value. In case a command results in a non
0 exit code or is terminated by the
command_timeout, the result is only logged to Home Assistant log and the sensors value is not updated.
In this section you find some real-life examples of how to use this sensor.
Check the state of an SickRage instance.
# Example configuration.yaml entry binary_sensor: - platform: command_line command: 'netstat -na | find "33322" | find /c "LISTENING" > nul && (echo "Running") || (echo "Not running")' name: "sickragerunning" device_class: moving payload_on: "Running" payload_off: "Not running"
Check if RasPlex is
binary_sensor: - platform: command_line command: 'ping -c 1 rasplex.local | grep "1 received" | wc -l' name: "is_rasplex_online" device_class: connectivity payload_on: 1 payload_off: 0
An alternative solution could look like this:
binary_sensor: - platform: command_line name: Printer command: 'ping -W 1 -c 1 192.168.1.10 > /dev/null 2>&1 && echo success || echo fail' device_class: connectivity payload_on: "success" payload_off: "fail"
Consider to use the ping sensor as an alternative to the samples above.
The services running is listed in
/etc/systemd/system and can be checked with the
A binary command line sensor can check this:
binary_sensor: - platform: command_line command: '/bin/systemctl is-active [email protected]' payload_on: "active" payload_off: "inactive"
This service takes no service data attributes.