Fingbox - Wi-Fi Presence Solution?

Just saw this in-depth review of the Fingbox

Apparently you have the ability to receive a notification if a certain device arrives/leaves (12:20 - Time Stamp of Video).

And you can tie this in with IFTTT: https://www.smarthomegeeks.co.uk/how-to/connect-fingbox-to-ifttt/
According to Fingbox, official IFTTT support is also on the way:https://www.fing.io/support/tag/fingbox-ifttt-integration/

I wonder if anyone used the IFTTT integration with SmartThings or if its possible to create a SmartApp for direct integration.

Nothing todo with Presence solution

I believe you can with IFTTT?

I too am interested in this. To me it does sound like it may work as a presence solution. Look at “DigitalFence”. On their website it says they will roll out official IFTTT support for that.

https://www.fing.io/support/digitalfence-feature/

So if a device leaves your network, 10 mins later, you can have your away routine kick in (triggered by the IFTTT action). At least that’s how I think it would work.

I’ve got a fingbox and it works great for presence detection. It’s better than smartthings becaue it is not just for those of us with the smartthings app, but everyone who comes into the house. I know exactly when my housekeeper arrives and leaves, when my mailman is near our house, and when the kids get home, and even when the kids turn on their ipad. It’s also nice to be able to shut off internet to particular devices. For example, at their bedtime. Having smartthings integration would be amazing.

2 Likes

Agree. The Fingbox is an awesome bit of kit for the unskilled to control what is going on on your network.
I’ve tried using the Fingbox with IFTTT for detecting presence, but could not get IFTTT to control Simulated/Virtual switches (they did not show up in IFTTT when I last tried about 3 months ago.) My plan was create a Virtual Switch for every person, representing a person’s presence, with On = Present.
But as far as the Fingbox is concerned, it works great. The time (in minutes) before reporting a change in the status of a device, can be set in the Fingbox’s settings.

I have not seen this device before and it does look interesting. Definitely another geeky gadget to play with and might help with the presence issues I’m having with the family’s devices.

It is fantastic. Especially as a network intrusion detection device, but it has huge automation potential, if someone could integrate it into smartthings.

I ordered one… can it make webcalls? I saw ifttt mentioned so I might go that route if it can’t natively.

It does not support IFTTT but if I’m not mistaken, they promised IFTTT integration.
There is a workaround (linked in the OP’s post) using the Gmail service in IFTTT.

I just tried the setup again and the issue of IFTTT not seeing the ST Virtual switches, seems to have been resolved.

I however forgot there was a second issue (when using the mentioned workaround) - and I can’t figure out what the issue is. I get an error with the Gmail service in IFTTT: Applet failed: There was a problem with the Gmail service.

I do see that it can send email notification for digital fence so that would be just fine as a workaround. webCoRE has an email trigger that I can play with so I can skip ifttt altogether.

Did not realise that (about webCore). Will try to figure that one out.

The Fingbox’s is extremely reliable - the only downside is that the shortest alert timeout is 1 min. You’ll therefore always have a delay of at least one minute.

1 Like

This could work, but you’ll only be able to use one piston, as the Fingbox’s alerts are all sent to the same email addresses:
image

The subject of the email is always in the format: A device went online: Device Name @ Network Name or A device went offline: Device Name @ Network Name

I believe wc can parse the subject with expressions, so one piston receiving all the emails is fine.

Snap!
I’m trying one now.
Do you perhaps know if wildcards can be used when testing for the Subject line (of the email) in webCore?

The email going out to webCore, triggers my piston, but it evaluates false. Not sure why, as I copied and pasted the subject line of the email from Gmail account. Will troubleshoot.

See if contains() can do it for you. It can do regex too but I’m not very well versed at that :slight_smile:

I think I know what the problem is.
I thought webCore checks the message subject, but it looks like it is testing for the message body, which will make it somewhat more complicated.
I have also now realised that one can choose the format of the message sent by Fingbox. Two of which could possibly work with webCore:
image

The email body of the first option is in html format and looks like this:

The body of the plain text version looks like this:
image

(I have removed my network name in both examples)

Pity we can’t test for the message subject - that would have made this easy to set up.

My knowledge is to limited to figure out how one will test for the info in the message body.

$args.subject is the variable that contains your subject, $args.message for the body.

So I guess the webcore implementation of email trigger is not fully implemented yet or it broke somewhere along the way, my test piston was created July 2017.

I tried to use the IFTTT workaround but the time between email receipt in my Gmail inbox to the execution of the webhook from IFTTT was around 5 to 6 minutes.

I settled on using Tasker and AutoNotification to intercept the Fing app notification of Digital Fence devices. Intercept notification and have Tasker send the notification text to webCoRE for parsing. Now it takes a few seconds from Fing notification to webCoRE piston execution.

1 Like

I am using Fing for my presence detection, however i found the gmail workaround with gmail to be very slow.

i have android wall tablets so have the fing.io app installed on one along with Tasker and AutoNotification, i then capture the notifications from the fing.io app and use tasker to send a http get to my homeseer system. but for smarthtings you can do the same just need a simple smartapp to host a web endpoint to post to and then you can turn off or on a virtual switch. something like the below

definition(
    name: "Virtual Switch Endpoint",
    namespace: "fuzzysb",
    author: "Stuart Buchanan",
    description: "Triggers Switch when HTTP GET Request is received",
    category: "My Apps",
    iconUrl: "https://s3.amazonaws.com/smartapp-icons/Convenience/Cat-Convenience.png",
    iconX2Url: "https://s3.amazonaws.com/smartapp-icons/Convenience/Cat-Convenience@2x.png")


preferences {
    section(title: "Select Devices") {
        input "virtualSwitch", "capability.Switch", title: "Select Switch", required: true, multiple:false
    }
}

def installed() {
	createAccessToken()
	getToken()
	DEBUG("Installed with Application Id: $app.id")
    DEBUG("Installed with token: $state.accessToken")
    DEBUG("Installed with settings: $virtualSwitch.name")
    init()
}
def updated() {
	DEBUG("Updated with Application Id: $app.id")
    DEBUG("Updated with token: $state.accessToken")
    unsubscribe()
  	init()
}

def init() {
  state.lastOnChanged = 0
  state.lastOffChanged = 0
  subscribe(virtualSwitch, "switch", handleEvent)
}

mappings {
  path("/ST/on") {
    action: [
      GET: "switchon"
    ]
  }
  path("/ST/off") {
    action: [
      GET:"switchoff"
    ]
  }
}


// Callback functions
def getSwitch() {
    // This returns the current state of the switch in JSON
    return virtualSwitch.currentState("switch")
}

def switchon() {
            if(now() - (3 * 1000) > state.lastOnChanged){
            	DEBUG("on")
            	state.lastOnChanged = now()
            	virtualSwitch.on();
            }
            else{
            	DEBUG("Not Turning On as State Changed too Recently.")
            }
            
}

def switchoff() {
            if(now() - (3 * 1000) > state.lastOffChanged){
            DEBUG("off")
        	state.lastOffChanged = now()
    		virtualSwitch.off();
        	}
            else{
            	DEBUG("Not Turning Off as State Changed too Recently.")
            }
}


def lanResponseHandler(evt) {
	log.debug "In response handler"
	log.debug "I got back ${evt.description}"
}

def handleEvent(evt) {
    
  	log.debug "Event Value is: ${evt.value}"
    def result
	if (evt.value == "on")
    {
    	sendOnCommand()
    }
    else
    {
    	sendOffCommand()
    }
    
    
}

def getToken(){
if (!state.accessToken) {
		try {
			getAccessToken()
			DEBUG("Creating new Access Token: $state.accessToken")
		} catch (ex) {
			DEBUG("Did you forget to enable OAuth in SmartApp IDE settings")
            DEBUG(ex)
		}
	}
}

private def DEBUG(message){
	log.debug message
}

you just need to enable oauth on the smartapp and then you can send a web request from Tasker to the

https://graph-eu01-euwest1.api.smartthings.com/api/smartapps/installations/AppID/ST/On?access_token=Access Token

url then just substitute the on for off to enable the virtual switch to be off.

just thought i would throw that out there as the notification is instant as its push, not waiting for the email to be polled.

but gives you some options. just cant understand fing’s business model as think they would sell lots more devices marketing as a digital presence device more. they just need to sort their integration or at least just allow a http get request as a notification option.

1 Like