TRIGGERcmd
    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search

    How to run commands from Home Assistant

    Instructions
    3
    6
    6594
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • Russ
      Russ last edited by

      Home Assistant (aka Hass.io) is a popular automation system sort of like SmartThings but it's open source.

      Here's how you trigger commands on your computers from Home Assistant using a RESTful Command.

      Add this to the end of your configuration.yaml file:

      rest_command:
        triggercmd_calculator:
          url: 'https://www.triggercmd.com/api/run/triggerSave'
          method: "post"
          content_type: "application/x-www-form-urlencoded"
          payload: "trigger=calculator&computer=russfam&token=(your token from Instructions page)"
      

      You can test it by clicking the little cell phone icon in the lower left under Developer tools, then select rest_command.triggercmd_calculator in the Service field, then click CALL SERVICE. This is what it should look like:

      TRIGGERcmd with Home Assistant

      I installed Home Assistant on my QNAP nas as a Docker container. If you do that, I recommend these two settings:

      1. Create a folder you have access to, and mount it as /config in your container. That will give you easy access to the configuration files, and when you upgrade the container, you can re-mount this folder to /config.
      2. Use HOST networking, so you can access Home Assistant at a URL like http://nas:8123.

      Russell VanderMey

      1 Reply Last reply Reply Quote 0
      • R
        rafastanger last edited by

        I can get the commands to be executed by Alexa, but when I try to make the call directly through the Home Assistant, I get the error: Status Code 400

        Does the call syntax remain the same?

        Russ 1 Reply Last reply Reply Quote 0
        • Russ
          Russ @rafastanger last edited by Russ

          @rafastanger, that should still work, but you can also use this "get" method below. One thing to note - your trigger and computer values can be different from your voice words you'd use with Alexa.

          rest_command:
            triggercmd_calculator:
              url: 'https://www.triggercmd.com/api/run/triggerSave?trigger=calculator&computer=russhp&token=(your token)'
              method: "get"
          

          Russell VanderMey

          1 Reply Last reply Reply Quote 0
          • blizzrdof77
            blizzrdof77 last edited by

            Is it possible to pass arguments via this method?

            Russ 1 Reply Last reply Reply Quote 0
            • Russ
              Russ @blizzrdof77 last edited by

              @blizzrdof77, good question. Yes, you can add this to your URL or payload to pass parameters:

              &params=(yourParams)

              You can use a space or %20 between parameters if you have multiple parameters to pass, like this:

              &params=(param1)%20(param2)

              Russell VanderMey

              blizzrdof77 1 Reply Last reply Reply Quote 1
              • blizzrdof77
                blizzrdof77 @Russ last edited by

                @russ Thanks for this, by the way!

                For anyone else using TriggerCMD with Home Assistant, I wrote this helper script with a rest_command that I have found very useful for running commands with parameters (or without parameters).

                Just be sure to change "ADD.YOUR.TRIGGERCMD.TOKEN.HERE" to your token.

                The Script:

                ## -- RUN TRIGGERCMD REST COMMAND
                script:
                  run_triggercmd_rest_command:
                    alias: Run TriggerCMD REST Command
                    description: Execute a RESTful command with params and a device using triggercmd.
                    icon: mdi:apple-keyboard-command
                    variables:
                      params: ''
                      token: 'ADD.YOUR.TRIGGERCMD.TOKEN.HERE'
                    fields:
                      trigger:
                        description: The name of the trigger
                        example: Exit Windows Program
                        required: true
                      computer:
                        description: The name of the computer as shown in your computer list on triggercmd.com.
                        example: My Computer Name
                        required: true
                      params:
                        description: Optional args string to pass with the trigger, using a space for multiple params [optional].
                        example: ''
                        required: false
                    sequence:
                    - service: rest_command.tcmd_run_command
                      data:
                        trigger: "{{ trigger }}"
                        computer: "{{ computer }}"
                        params: "{{ params }}"
                        token: "{{ token }}"
                

                The Rest Command

                ## -- RUN TRIGGERCMD COMMAND
                rest_command:
                  tcmd_run_command:
                    url: 'https://www.triggercmd.com/api/run/triggerSave'
                    method: POST
                    content_type: 'application/x-www-form-urlencoded'
                    payload: 'trigger={{trigger|replace(" ","%20")}}&computer={{computer|replace(" ","-")}}&params=+{{params}}&token={{token}}'
                

                Example Usage

                service: script.run_triggercmd_rest_command
                data:
                  trigger: This Is The Trigger Name                 # Literally the name of the command
                  computer: My Computer                             # (will render as 'My-Computer')
                  params: '--female "Shutdown request confirmed"'   # This has 3 params
                
                1 Reply Last reply Reply Quote 1
                • Referenced by  Russ Russ 
                • Referenced by  Russ Russ 
                • First post
                  Last post