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

    SmartThings integration - flip a virtual switch to run a command

    Instructions
    14
    38
    18.1k
    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.
    • ?
      A Former User @Russ
      last edited by A Former User

      @russ I am trying to trigger a command with parameters, but I I'm running into a wall.

      My script is as follows:

      array=( $1 $2 )
      some_command ${array[1]} ${array[0]}
      

      I used an array because I needed to reverse the order of the parameters. Now my commands.json has a trigger configured as such:

        {"trigger":"Test","command":"sudo -u pi -H ~/Smartthings/TriggerCMD/Scripts/Myscript.sh first_arg " ","ground":"background","voice":"Test","allowParams": "true"}
      

      I'm expecting TriggerCMD to pass the "on" or "off" as the second argument, but for some reason, it doesn't seem to be doing so when I test from the website. Am I doing something wrong? I even tried to make a script specifically for the first argument so the only argument needed from TriggerCMD is the on / off, but it still doesn't work.

      RussR 1 Reply Last reply Reply Quote 0
      • RussR
        Russ @A Former User
        last edited by

        @dctrbanner, I think I found the problem.

        This is what I got when I ran it your way:

        sudo -u pi  ~/Smartthings/TriggerCMD/Scripts/Myscript.sh
        sudo: /root/Smartthings/TriggerCMD/Scripts/Myscript.sh: command not found
        

        Notice it's translating the ~ to /root before the command runs as pi.

        This works though:

        {"trigger":"Test","command":"sudo -u pi -H \/home\/pi\/Smartthings\/TriggerCMD\/Scripts\/Myscript.sh first_arg ","ground":"background","voice":"Test","allowParams": "true"},
        

        This is my test script:

        #!/bin/sh
        echo $2 $1 >> /tmp/log.txt
        

        This is the output:

        $ tail -f /tmp/log.txt
        on first_arg
        

        Russell VanderMey

        1 Reply Last reply Reply Quote 0
        • M
          mthiel
          last edited by Russ

          Hello,

          I'm trying to get this setup to put my display to sleep, but the commands don't seem to be reaching SmartThings. If I manually fire the TriggerCMD from my phone browser it works perfectly, but SmartThings doesn't seem to be communicating correctly despite the lack of any error. TriggerCMD also doesn't report receiving any requests except the ones I performed from the browser. I don't think there's an authentication issue since the SmartApp is reading my commands fine. I'm not sure what else to check. Here's a snip from the SmartThings log:

          57bb48b4-bb6a-48d0-8938-e085928b86e6  4:47:54 PM: debug OFF result: [response:done]
          57bb48b4-bb6a-48d0-8938-e085928b86e6  4:47:54 PM: debug Return Code = 200 = Command Succeeded.
          57bb48b4-bb6a-48d0-8938-e085928b86e6  4:47:54 PM: debug In apiPost with data: [token:(token), uri:/api/run/triggerByID, body:trigger=[5c61df9baa745900163af4dd-5c64b9eb3b309f00167a06eb]&params=off]
          57bb48b4-bb6a-48d0-8938-e085928b86e6  4:47:54 PM: debug Off request from child device
          57bb48b4-bb6a-48d0-8938-e085928b86e6  4:47:54 PM: debug ON result: [response:done]
          57bb48b4-bb6a-48d0-8938-e085928b86e6  4:47:54 PM: debug Return Code = 200 = Command Succeeded.
          57bb48b4-bb6a-48d0-8938-e085928b86e6  4:47:54 PM: debug In apiPost with data: [token:(token), uri:/api/run/triggerByID, body:trigger=[5c61df9baa745900163af4dd-5c64b9eb3b309f00167a06eb]&params=on]
          57bb48b4-bb6a-48d0-8938-e085928b86e6  4:47:54 PM: debug On request from child device script_dth_cd2efee0eca44de1d6ceeb8c9ede43c0f5239b6c1e6e37c4e674414c2538f18d@574ae66b
          
          RussR 1 Reply Last reply Reply Quote 0
          • RussR
            Russ @mthiel
            last edited by Russ

            @mthiel, just to make sure, I just tested this in my SmartThings app and it worked for me.

            I recommend you try this:

            Go to Marketplace, SmartApps, My Apps, TRIGGERcmd, Next.
            Uncheck all of our commands, and click Done, Save.
            Go to Home, and if you have any TRIGGERcmd switches left, delete them.
            Go to Marketplace, SmartApps, My Apps, TRIGGERcmd, Next again.
            Check the commands you and to be switches.
            Test your switch again.

            BTW, I removed your token from the output you pasted.

            Russell VanderMey

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

              @russ Thanks for checking! Unfortunately, re-creating the device via the SmartApp didn't make a difference. Turns out MY problem is that I only have one trigger I'm testing on...

              I spent a few hours troubleshooting the SmartApp code and found the root cause around line 249. When a single trigger comes back from the api, the conditional looks like it assumes the type will be a Map, but it actually just returns a List with a single item at index 0. Changing the "devices?.name" and "devices?did" to "devices[0].name" and "devices[0].did" fixes the issue for me. I only realized the problem because the trigger list kept creating devices with brackets around the name, making me expect a typing problem.

              It's working great for me now, hope my digging helps!

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

                @mthiel, wow, that's interesting. I'm glad you found that. you send me the code snippet you changed? I want to test it myself, then I'll update the code. Sorry for the trouble, and thank you for finding a fix.

                EDIT:
                I was able to reproduce the problem. I tested the change and updated the code. Thanks @mthiel for the fix!

                // deviceList += ["name" : "${roomName} ${devices?.name}", "did" : "${devices?.did}", "type" : "bulb"]  <- this logic doesn't work when there's only 1 command
                // Thanks to mthiel for finding this fix. 
                deviceList += ["name" : "${roomName} ${devices[0].name}", "did" : "${devices[0].did}", "type" : "bulb"]
                

                Russell VanderMey

                1 Reply Last reply Reply Quote 0
                • P
                  putefabio
                  last edited by

                  hello guys can you please give me some help

                  i have triggercmd installed in my pc so i can open kodi, but i have a 32bit version so thats why (i suppose) i dont have the option to parse a cmd so the smartthings switch knows when its on or off.

                  that beeing said when i press the switch it open kodi but it stays on (green), then if i close but manually it stays green forever, if i flip it again it goes off but it opens kodi, cause im not using the script.

                  well what i want is, can i switch the smartthings switch to a switch that doesnt stay on, it just pushes and goes back to initial state?

                  thanks in advance

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

                    @putefabio, checkout this post:

                    https://www.triggercmd.com/forum/topic/86/actiontiles-tile-with-triggercmd-bookmark-url/14

                    It says you can make a small modification to the SmartThings code to make it so the switch goes back off after you flip it on.

                    Russell VanderMey

                    1 Reply Last reply Reply Quote 0
                    • P
                      putefabio
                      last edited by

                      thanks a lot for a so quick awnser, that did the trick 🙂

                      1 Reply Last reply Reply Quote 0
                      • RussR
                        Russ
                        last edited by Russ

                        @TigoleBitties, I just tried it and it's working for me. Can you verify your phone has Internet access?

                        Also, you installed both the SmartApp and the Device Handler, correct?

                        Russell VanderMey

                        1 Reply Last reply Reply Quote 0
                        • George HatzisymeonG
                          George Hatzisymeon
                          last edited by

                          I am getting an Error saving unnamed page when I click Done on last page.
                          Also I am using an account from Google, how shall I skip entering the credentials as you propose?

                          RussR 1 Reply Last reply Reply Quote 0
                          • RussR
                            Russ @George Hatzisymeon
                            last edited by

                            @George-Hatzisymeon, you mentioned you're using an account from Google. If you do that, then before you can log SmartThings into your TRIGGERcmd account you also need to set your password in your profile in your TRIGGERcmd account. To get to your profile, click your name in the upper-right.

                            You installed the device handler and SmartApp, correct?

                            Here's a video showing the process: https://www.youtube.com/watch?v=dq-loAiKAgo

                            If you still get that error, please post a screenshot. It might help me understand what's happening.

                            Russell VanderMey

                            1 Reply Last reply Reply Quote 0
                            • ipaivaipI
                              ipaivaip
                              last edited by

                              @Russ said in SmartThings integration - flip a virtual switch to run a command:

                              Handler

                              It works like a charm!
                              I have just follow the instructions, and had it immediately working. Still good at 2021

                              1 Reply Last reply Reply Quote 1
                              • R
                                rkstormer
                                last edited by

                                This post is deleted!
                                1 Reply Last reply Reply Quote 0
                                • RussR Russ referenced this topic on
                                • George HatzisymeonG
                                  George Hatzisymeon
                                  last edited by

                                  It is a couple of days now that the Smart Things automation has stopped to function, I have visited my account in the smartthings site and the UI has completely changed, after I open the triggerCMD app I am getting an error saying:

                                  ERROR: Something went wrong. Please try to install the SmartApp again.

                                  I think something changed in the Samsung site and triggerCMD looks like is uncompatible, is there any way to fix this? I have tried to reinstall the app but there is no way to install a new app using their new UI.

                                  Do you have any idea what is going on?

                                  Thanks!

                                  1 Reply Last reply Reply Quote 0
                                  • George HatzisymeonG
                                    George Hatzisymeon @Russ
                                    last edited by

                                    @Russ It turns out Smartthings has discontinued Groovy apps accrding to this post here. I was using TriggerCMD in conjuction with smart things are you willing to support the new integration mechanisms? Do you have a timeline for this?

                                    RussR 1 Reply Last reply Reply Quote 0
                                    • RussR
                                      Russ @George Hatzisymeon
                                      last edited by Russ

                                      @George-Hatzisymeon, I was worried this day would come. I actually created an integration while ago in anticipation of the Groovy app cutoff. It works great but Samsung won't won't approve it because I don't sell any hardware.

                                      I considered selling a hardware device, but when I asked them about it, they said my users would only be able to use SmartThings to work with that hardware, so that wouldn't help.

                                      I'm working on a new method that won't require SmartThings approval.

                                      I'll post here again when I have it working. I'm hoping by this weekend.

                                      EDIT: I just finished the new SmartThings integration. Please try it and let me know if it works for you.

                                      Russell VanderMey

                                      George HatzisymeonG 1 Reply Last reply Reply Quote 0
                                      • RussR Russ referenced this topic on
                                      • George HatzisymeonG
                                        George Hatzisymeon @Russ
                                        last edited by George Hatzisymeon

                                        @Russ I have successfully followed the instructions for the new integrations but at the final step I was not able to see my triggers as virtual switches. Instead I could only see one switch with the name "edit" and nothing else.

                                        In the previous integration I was able to select the triggers that I wanted to be mapped as virtual switches, what is the situation now? why dont I see my triggers in the smart things integration?

                                        Thanks!

                                        RussR 1 Reply Last reply Reply Quote 0
                                        • RussR
                                          Russ @George Hatzisymeon
                                          last edited by Russ

                                          @George-Hatzisymeon thanks for trying it and letting me know it's not working. Will you please send me a screenshot of the Smart things values on your profile page and on the Smart things cloud integration page? I might be able to see the problem.

                                          Or it's possible it's working but you only have the voice field filled in for your "edit" command. That's what determines which triggers show up as devices now. It uses the same logic as the TRIGGERcmd SmartHome Alexa skill and Google Action. If that's the problem, just fill in the voice field on each command you want to show up as a device in SmartThings.

                                          If you send screenshots here that have your secrets, just change them after. Make sure you re-sync up the profile page info with the info in your SmartThings account too of course.

                                          You could also direct message me your screenshots.

                                          Thank you for your patience. I'm sure we can make this work.

                                          Russell VanderMey

                                          George HatzisymeonG 1 Reply Last reply Reply Quote 0
                                          • George HatzisymeonG
                                            George Hatzisymeon @Russ
                                            last edited by George Hatzisymeon

                                            @Russ It works fine what I had to do was to add text to the voice node in the XML configuration file of triggercmd and resync with the app. In previous integration it would show all commands in the smart things app now it picks only those with a voice tag.

                                            That is fine! Thanks everything now works as before…

                                            RussR 1 Reply Last reply Reply Quote 1
                                            • First post
                                              Last post