Flic - Wireless Smart Button

I mostly use echo to control lights and other things that need to happen very quickly. The button is a backup plan for something, particularly if for whatever reason I want something done quietly. Or if the room is so noisy that echo can’t hear. Or if it’s one of those days when my own voice is very slurred, which happens sometimes.

Right now, the plan for the first button is just to turn the entertainment center on and off. So it doesn’t have to be as quick as a light would be. I’m getting a pretty consistent eight second response time from the flic via IFTTT which is just fine for this.

The yellow button on the left side of the entertainment center is a flic. I can push it with my knee from the wheelchair and the dog can push it with his nose. :sunglasses::dog:

I also plan to eventually have a flic that will activate an automatic door opener.

As far as the HTTP method, sure, that should work. That’s how Dave glass originally set up IBeacons/SmartThings integration.

@ultrazero

Instructions for getting Flic to send GET requests to SmartThings endpoints:

  • Install the REST Endpoint smartapp and authorize the devices you
    want to be controllable by Flic - taken from this tutorial

  • Copy a URL for either On,Off, or Toggle from the website that you are
    brought to after installing the smartapp.

  • Paste the URL into the Flic app, select “GET”, and Show Response > No

You will have to do this for each on/off command that you want to have a Flic send.

I’m still waiting for my Flic’s to be delivered, but I’ve tried this with a virtual Flic and it works fine.

7 Likes

Excellent!! That works great. 1.5-2 seconds every time. I was going to spend the day learning how to write a smartapp, but looks like I don’t have to just yet. :wink:

Thanks for the tip @nelemansc!

2 Likes

So in case anyone was looking for other buttons, take a look at these:

I installed these at both ends of my cabinets for my wife.

1 Like

This example is all well and good, but ideally I’d like to be able to install a similar application that would provide FULL REST endpoint functionality for all smartthings device types, not just switches.

Anybody have any thoughts on that?

Or can someone from SmartThings chime in on if you’re actively working with Flic to get support going?

Have you had a chance to look at the developer docs? Or the forum section of this community for developers? It might be of interest. For example:

1 Like

@JDRoberts, nice find. If i can pass the access token via a “get” command, then Flic would work… that’s what I was sturggling with, since their GET / PUT commands didn’t allow header parameters.

I’ll play with it now, awesome find!

1 Like

One thing that I’ve never seen documented and that helped me tremendously with Tasker is that you don’t have to use access tokens to call endpoints…

You can use basic authentication too I.e. username and password.

Obviously you wouldn’t give those details to a third party… But for flic integration… Sure!

Yea, I’ve failed pretty badly on this. Ideally I’d like to use Tasker, but I’m on iOS… anyone have any interest in writing a fully fledged REST API piece like was done in the example, but expose every type of smartthings endpoint?

Or anyone want to take this example further to try to get it to work without setting up another webserver?

Is there a rest api I could use for my Flic in order to have routines get triggered. I just got 4 flics and really want to have one by my bed for a goodnight / panic button. Ideas?

I hooked up a flic though IFTTT to ST. It is pretty neat.

As JD mentioned - if you are already using mounted tablets with Smart Tiles - it’s easy to tie your Flics to those tablet’s BT.

Looking forward to a more direct integration but for now this is great.

That’s how I’m going to have them connected, via a tablet. However I really want to trigger a goodnight routine. I know IFTTT doesn’t do that but if there’s a endpoint api that allowed me to trigger routines someone please let me know.

Just have IFTTT flip a virtual switch that triggers the routine. Easy. :sunglasses:

You can also do the same thing with the more complicated Alexa helper or rule machine if you want to start putting other kinds of conditional logic on it.

1 Like

I knew you would have the answer. @JDRoberts I forgot about those apps. I’ll check them out now.

1 Like

Are you using a on/off switch or monetary switch to trigger routines?

I think the two apps in the screenshot only work with a “simulated switch,” which is binary.

Alexa Helper or Rule Machine can also work with a momentary switch.

@JDRoberts Thank You, works good. I went with rule machine for when a switch is turned on, I used the “Momentary Button Tile” for my virtual switch and used the REST endpoint to have the get http request using the to the toggle switch URL. Works just how i want it to.

1 Like

i don’t recall if anyone mentioned this in the thread, but i just set up a flic to work with tasker and sharptools on a fire tablet that i installed the play store on.

it’s super easy, after installing the apps, just pop into tasker, set up a profile with the flic plugin for the button press, then the action is the sharptools plugin for toggle on/off.

i haven’t set up the double click or the hold yet, but i can’t imagine that they’ll be difficult.

the tablet is always by the flic, so while there has been a touch of lag when it’s sleeping, it’s been pretty reliable.

1 Like

@All:

FYI, you can “double” the capacity of your flic using Smartthings and IFTTT to make it toggle switches on and off with a single click, a single double click, or a single long click by doing the following:
*

    1. Create a Simulated Switch in SmartThings, Save and Publish it For Me - will now available in My Device Types
    1. In My Device Types, edit the code for the new Simulated Switch.
    1. Replace the on() section as follows:
  •    def on() {
    
  •        def deviceDisplayName = device.displayName
    
  •        def switchattr = device.currentValue("switch")
    
  •        log.debug "$deviceDisplayName is currently $switchattr"
    
  •        if ( switchattr == "on" ) {
    
  •            sendEvent(name: "switch", value: "off")
    
  •        } else {
    
  •            sendEvent(name: "switch", value: "on")
    
  •        }
    
  •        def newswitchattr = device.currentValue("switch")
    
  •        log.debug "$deviceDisplayName is now $newswitchattr"
    
  •    }
    
    1. Make sure standardTile within metadata/tiles is as follows:
  •     standardTile("switch", "device.switch", width: 2, height: 2, canChangeIcon: true) {
    
  •        state "off", label: "OFF", action: "switch.on", icon: "st.switches.switch.off", backgroundColor: "#ffffff"
    
  •        state "on", label: "ON", action: "switch.off", icon: "st.switches.switch.on", backgroundColor: "#79b821"
    
  •     }
    
    1. Create a new device in My Devices with the Type assigned to the modified Simulated Switch. Give it any Name and Label you desire, and make up a random Device Network Id
    1. Make the New Switch Name available as a Switch to IFTTT in your SmartThings SmartApps.
    1. In IFTTT, create a new recipe that makes your flic click (if you click a flic) “on” (then switch on) the new device/switch you have created.
    1. In Smartthings, make the new device/switch turn on (and off as well) a light or set of lights using the “Smart Lighting” smartapp.
  • Click your flic once, and it will turn the light(s) on, Click again, and light(s) go off!
1 Like

Why not just use the rest endpoint and use the toggle? This way you don’t have to have IFTTT in the middle. I love IFTTT but if I don’t need to have it as a middle man I will avoid it.

This is the way I went with to trigger my goodnight routine. Instead of using a switch I use a Momentary Button Tile, which is a virtual switch that always returns to a off state after it is toggled. Rule machine keeps and eye on the switch and when it is on it triggers my routine.

I now have the double press of my flic toggle my group of ge link bulbs in my bed room. So double click of the Flic toggles the lights on or off depending on the state they are currently in. Works quick being its using the API.