Files
home-assistant.io/source/_components/switch.command_line.markdown
Jorim Tielemans 77eef8927f Updated Configuration Variables sections ()
* Updated Configuration Variables sections

Squashed commit of the following:

commit a95d114183553ad3850e6ca2d688d622388ee666
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Mon Jul 30 20:08:02 2018 +0200

    Clean some things up

commit db63a37dc97ad7735b78b7078b09343a9e9d1981
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Mon Jul 30 18:28:20 2018 +0200

    Revert "The rest for this PR"

    This reverts commit bb1b2f9a2f.

commit df90512482
Merge: deef4fd4d4 e4ed00d287
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Mon Jul 30 17:05:27 2018 +0200

    Merge remote-tracking branch 'upstream/current' into patch-1

commit deef4fd4d4
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Sun Jul 29 12:40:01 2018 +0200

    Fix Liquid error

commit 74369fbbc8
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Sun Jul 29 12:37:03 2018 +0200

    Update Configuration Variables sections

commit 6e50eaa013
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Sun Jul 29 11:52:51 2018 +0200

    Fix empty keys

commit 7e4852e473
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Sun Jul 29 11:41:46 2018 +0200

    Update binary_sensor.netatmo.markdown

commit e1d83df83e
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Sun Jul 29 11:28:39 2018 +0200

    More updated Configuration Variables sections

commit 66cbe39181
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Sat Jul 28 22:00:25 2018 +0200

    Fix Liquid Exception sensor.speedtest

commit bb1b2f9a2f
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Sat Jul 28 21:54:34 2018 +0200

    The rest for this PR

    - Update components with new Configuration Variables section to have YAML block syntax
    - Fix wrong capitalised booleans

commit 5e67726eb7
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Sat Jul 28 20:43:52 2018 +0200

    Try multiline string in Cast

    Trying out a multiline string in a {% configuration %}-block.

commit b8d34e9a8e
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Sat Jul 28 20:41:39 2018 +0200

    Lint fixes etc.

    All default True/False capital letters have been fixed.
    Tried to reduce lines to 80 characters or less where possible.

commit 88228b293d
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Sat Jul 28 16:32:46 2018 +0200

    Update notify.webostv.markdown

commit 7204c1d637
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Sat Jul 28 16:15:18 2018 +0200

    Fix capital letter

commit 6e1b3db87b
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Sat Jul 28 16:14:05 2018 +0200

    Update media_player.webostv.markdown

commit 89ee23565a
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Sat Jul 28 16:08:59 2018 +0200

    Update http.markdown

commit 418f5cb7cd
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Sat Jul 28 16:02:19 2018 +0200

    Fix capital letter

commit d5264c3c4f
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Sat Jul 28 16:01:39 2018 +0200

    Fix capital letter

commit e4cd51271d
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Sat Jul 28 16:01:08 2018 +0200

    Update sensor.iota.markdown

commit c18b25fddc
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Sat Jul 28 16:01:01 2018 +0200

    Fix capital letter

commit 79a78f284a
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Sat Jul 28 15:56:22 2018 +0200

    Update Configuration Variables section

commit 0db5228080
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Sat Jul 28 15:54:47 2018 +0200

    Update Configuration Variables section

commit d5d26f1611
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Sat Jul 28 15:54:14 2018 +0200

    Update Configuration Variables section

commit ab3f04511e
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Sat Jul 28 15:52:50 2018 +0200

    Update Configuration Variables section

commit 37b2d1831d
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Sat Jul 28 15:51:29 2018 +0200

    Update Configuration Variables section

commit 39b3ecd707
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Sat Jul 28 15:50:53 2018 +0200

    Update Configuration Variables section

commit 823ea87d3a
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Sat Jul 28 15:50:11 2018 +0200

    Update Configuration Variables section

commit 6560a2bac0
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Sat Jul 28 15:49:53 2018 +0200

    Update Configuration Variables section

commit cc97df289b
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Sat Jul 28 15:47:23 2018 +0200

    Update Configuration Variables section

commit fdc881eb7a
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Sat Jul 28 15:46:55 2018 +0200

    Update Configuration Variables section

commit 81e292c3e9
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Sat Jul 28 15:46:16 2018 +0200

    Update Configuration Variables section

commit 05d3481d11
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Sat Jul 28 15:45:25 2018 +0200

    Update Configuration Variables section

commit ef34f8c2f4
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Sat Jul 28 15:41:08 2018 +0200

    Update Configuration Variables section

commit 49f69a36e4
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Sat Jul 28 15:16:27 2018 +0200

    Update Configuration Variables section

commit 14732eeee0
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Sat Jul 28 15:14:58 2018 +0200

    Update Configuration Variables section

commit e0f8578628
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Sat Jul 28 15:11:56 2018 +0200

    Update media_player.samsungtv.markdown

commit 8be3c95f8e
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Sat Jul 28 15:10:45 2018 +0200

    Update Configuration Variables section

commit 53b6672521
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Sat Jul 28 15:10:40 2018 +0200

    Update media_player.webostv.markdown

commit 421e90392a
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Sat Jul 28 15:03:33 2018 +0200

    Update Configuration Variables section

commit 7f142fd359
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Sat Jul 28 14:59:54 2018 +0200

    webOS brand fix + filename clarification

commit 1f1051bcbc
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Sat Jul 28 14:52:29 2018 +0200

    Update sensor.yr.markdown

commit 8be62f4a62
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Sat Jul 28 14:52:05 2018 +0200

    Update Configuration Variables section

commit 69c615b295
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Sat Jul 28 14:50:57 2018 +0200

    Update notify.webostv.markdown

commit 4b1175e565
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Sat Jul 28 14:50:30 2018 +0200

    Update notify.html5.markdown

commit 4ba06dd29d
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Sat Jul 28 14:49:59 2018 +0200

    Update image_processing.openalpr_local.markdown

commit ec919d5781
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Sat Jul 28 14:49:18 2018 +0200

    Update image_processing.microsoft_face_detect.markdown

commit da657b579f
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Sat Jul 28 14:42:46 2018 +0200

    Update Configuration Variables section

commit 3b066ba22b
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Sat Jul 28 14:40:33 2018 +0200

    Update Configuration Variables section

commit 360c5422d7
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Sat Jul 28 14:38:54 2018 +0200

    Update Configuration Variables section

commit 7965ff8c71
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Sat Jul 28 13:51:12 2018 +0200

    Update Configuration Variables section

commit 48d20dd4fa
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Sat Jul 28 13:48:33 2018 +0200

    Update Configuration Variables section

commit 4c6efe7218
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Sat Jul 28 13:40:33 2018 +0200

    Update Configuration Variables section

commit 8c45d8309e
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Sat Jul 28 13:35:19 2018 +0200

    Update Configuration Variables section

commit bbfa64af6f
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Sat Jul 28 13:33:14 2018 +0200

    Newline

commit f0577bb456
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Sat Jul 28 13:32:54 2018 +0200

    Fix typo

commit 65f73ced0c
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Sat Jul 28 13:19:23 2018 +0200

    Update notify.webostv.markdown

commit 1a11c971bb
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Sat Jul 28 13:18:44 2018 +0200

    Update notify.html5.markdown

commit 4653233545
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Sat Jul 28 13:18:04 2018 +0200

    Update image_processing.openalpr_local.markdown

commit ce9ca3453b
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Sat Jul 28 13:15:05 2018 +0200

    Update Configuration Variables section

commit 6ae8a40889
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Thu Jul 26 22:58:55 2018 +0200

    Update Configuration Variables section

commit c4bed22233
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Thu Jul 26 22:56:35 2018 +0200

    Update Configuration Variables section

commit 9fe09afd30
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Wed Jul 25 23:46:23 2018 +0200

    Update Configuration Variables section

commit 8efc72f10d
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Wed Jul 25 23:44:08 2018 +0200

    Update image_processing.openalpr_cloud.markdown

commit 52046e5064
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Wed Jul 25 23:43:52 2018 +0200

    Update Configuration Variables section

commit c7a9296ae3
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Wed Jul 25 23:27:08 2018 +0200

    Update image_processing.microsoft_face_detect.markdown

commit 3b37dc0e11
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Wed Jul 25 23:20:26 2018 +0200

    Update Configuration Variables section

commit 870cd41fef
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Wed Jul 25 23:18:38 2018 +0200

    Update image_processing.microsoft_face_identify.markdown

commit 0f76212b24
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Wed Jul 25 23:17:09 2018 +0200

    Update Configuration Variables section

commit 73513b9e4e
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Wed Jul 25 23:13:26 2018 +0200

    Update image_processing.microsoft_face_detect.markdown

commit c171a080b3
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Wed Jul 25 23:01:06 2018 +0200

    Update image_processing.microsoft_face_detect.markdown

commit 294a37f584
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Wed Jul 25 21:46:14 2018 +0200

    Update image_processing.microsoft_face_detect.markdown

commit 9f4c3fad9e
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Wed Jul 25 21:21:17 2018 +0200

    Update image_processing.microsoft_face_detect.markdown

commit 11579aa61b
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Wed Jul 25 21:13:30 2018 +0200

    Update camera.mjpeg.markdown

commit e93f5db4b6
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Wed Jul 25 19:34:36 2018 +0200

    Update Configuration Variables section

commit 383b9ace66
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Wed Jul 25 17:49:38 2018 +0200

    Remove leftover line

commit 7e2e72f78f
Author: Jorim Tielemans <tielemans.jorim@gmail.com>
Date:   Wed Jul 25 17:46:55 2018 +0200

    Update Configuration Variables section

* Remove encapsulation

Double quotes were visible in the frontend.

* Remove empty default value

* 🚑 Correcting types

* ✏️ Removes double italic
2018-09-30 20:38:30 +02:00

5.6 KiB

layout, title, description, date, sidebar, comments, sharing, footer, logo, ha_category, ha_release, ha_iot_class
layout title description date sidebar comments sharing footer logo ha_category ha_release ha_iot_class
page Command line Switch Instructions on how to have switches call command line commands. 2015-06-10 22:41 true false true true command_line.png Switch pre 0.7 Local Polling

The command_line switch platform issues specific commands when it is turned on and off. This might very well become our most powerful platform as it allows anyone to integrate any type of switch into Home Assistant that can be controlled from the command line, including calling other scripts!

To enable it, add the following lines to your configuration.yaml:

# Example configuration.yaml entry
switch:
  - platform: command_line
    switches:
      kitchen_light:
        command_on: switch_command on kitchen
        command_off: switch_command off kitchen

{% configuration %} switches: description: The array that contains all command switches. required: true type: map keys: identifier: description: Name of the command switch as slug. Multiple entries are possible. required: true type: map keys: command_on: description: The action to take for on. required: true type: string command_off: description: The action to take for off. required: true type: string command_state: description: "If given, this command will be run. Returning a result code 0 will indicate that the switch is on." required: false type: string value_template: description: "If specified, command_state will ignore the result code of the command but the template evaluating to true will indicate the switch is on." required: false type: string friendly_name: description: The name used to display the switch in the frontend. required: false type: string {% endconfiguration %}

A note on friendly_name:

When set, the friendly_name had been previously used for API calls and backend configuration instead of the object_id ("identifier"), but this behavior is changing to make the friendly_name for display purposes only. This allows users to set an identifier that emphasizes uniqueness and predictability for API and config purposes but have a prettier friendly_name still show up in the UI. As an additional benefit, if a user wanted to change the friendly_name / display name (e.g., from "Kitchen Lightswitch" to "Kitchen Switch" or "Living Room Light", or remove the friendly_name altogether), he or she could do so without needing to change existing automations or API calls. See aREST device below for an example.

{% linkable_title Examples %}

In this section you find some real-life examples of how to use this switch.

{% linkable_title aREST device %}

The example below is doing the same as the aREST switch. The command line tool curl is used to toggle a pin which is controllable through REST.

# Example configuration.yaml entry
switch:
  platform: command_line
  switches:
    arest_pin_four:
      command_on: "/usr/bin/curl -X GET http://192.168.1.10/digital/4/1"
      command_off: "/usr/bin/curl -X GET http://192.168.1.10/digital/4/0"
      command_state: "/usr/bin/curl -X GET http://192.168.1.10/digital/4"
      value_template: '{% raw %}{{ value == "1" }}{% endraw %}'
      friendly_name: Kitchen Lightswitch

Given this example, in the UI one would see the friendly_name of "Kitchen Light". However, the identifier is arest_pin_four, making the entity_id switch.arest_pin_four, which is what one would use in automation or in API calls.

{% linkable_title Shutdown your local host %}

This switch will shutdown your system that is hosting Home Assistant.

This switch will shutdown your host immediately, there will be no confirmation.

# Example configuration.yaml entry
switch:
  platform: command_line
  switches:
    home_assistant_system_shutdown:
      command_off: "/usr/sbin/poweroff"

{% linkable_title Control your VLC player %}

This switch will control a local VLC media player (Source).

# Example configuration.yaml entry
switch:
  platform: command_line
  switches:
    vlc:
      command_on: "cvlc 1.mp3 vlc://quit &"
      command_off: "pkill vlc"

{% linkable_title Control Foscam Motion Sensor %}

This switch will control the motion sensor of Foscam Webcams which Support CGI Commands (Source). This switch supports statecmd, which checks the current state of motion detection.

# Example configuration.yaml entry
switch:
  platform: command_line
  switches:
    foscam_motion:
      command_on: 'curl -k "https://ipaddress:443/cgi-bin/CGIProxy.fcgi?cmd=setMotionDetectConfig&isEnable=1&usr=admin&pwd=password"'
      command_off: 'curl -k "https://ipaddress:443/cgi-bin/CGIProxy.fcgi?cmd=setMotionDetectConfig&isEnable=0&usr=admin&pwd=password"'
      command_state: 'curl -k --silent "https://ipaddress:443/cgi-bin/CGIProxy.fcgi?cmd=getMotionDetectConfig&usr=admin&pwd=password" | grep -oP "(?<=isEnable>).*?(?=</isEnable>)"'
      value_template: {% raw %}'{{ value == "1" }}'{% endraw %}
  • Replace admin and password with an "Admin" privileged Foscam user
  • Replace ipaddress with the local IP address of your Foscam