Page 1 of 3

WEMO,( IFTTT) and Wink Spotter

PostPosted: Sun May 11, 2014 6:29 am
by Rickk
Any plans or way to get the Belkin Wemo devices connecting to Indigo?
The IFTTT integration would be fun.
Also same question about the Wink Spotter by Quirky.
https://www.quirky.com/shop/609[/color]

Thanks

Rick

Re: WEMO,( IFTTT) and Wink Spotter

PostPosted: Sun May 11, 2014 10:56 am
by matt (support)
Hi Rick,

Here is how some folks are integrating IFTTT with Indigo. Definitely a hack, but it might work for you.

Re: WEMO,( IFTTT) and Wink Spotter

PostPosted: Mon May 12, 2014 9:20 am
by jay (support)
WeMo doesn't have an API available (though some have reverse engineered it). We don't (with one exception) build support for anything that doesn't have a publicly available API. Just look at what's been going on with the Nest to see why. We really do appreciate the 3rd party developers who brave the undocumented API route - but we don't feel that creating "official" support based on them is the right thing to do for our customers.

IFTTT is the same way - they don't allow 3rd parties to build integrations themselves. We've sent a couple of emails trying to start a dialog but have never heard back.

Finally, we've seen little demand so far for the Quirky devices. We have to focus our resources on the features that we believe most people want/will want. Again, this is probably a great opportunity for a 3rd party developer.

[MODERATOR NOTE] Moved to the correct forum.

Re: WEMO,( IFTTT) and Wink Spotter

PostPosted: Tue Nov 25, 2014 10:25 pm
by indy
I believe they are in the process of releasing it.

Just saw this: http://developers.belkin.com/wemo/sdk

And openHAB seems to have a binding for Wemo https://github.com/openhab/openhab/wiki/Wemo-Binding.

Re: WEMO,( IFTTT) and Wink Spotter

PostPosted: Mon Jan 05, 2015 2:43 pm
by unfrostedpoptart
Hi Jay

you really need to update this thread. It's been many months and WeMo is massively growing in number of devices and availability! There's shelves of it at every Best Buy and appears to be far and away the most common HA system out now.

I just moved to a new house and am working on a plan for HA. I'd like to stay with Indigo but it will be very difficult to do so if you don't support the most popular current product.

Thanks,

David

Re: WEMO,( IFTTT) and Wink Spotter

PostPosted: Mon Jan 05, 2015 3:52 pm
by jay (support)
We continue to evaluate the various technologies out there for inclusion in Indigo, but the demand for Wemo support has thus far been very limited in comparison to other things (Indigo Touch, more extensive Z-Wave support, etc.) that are a much higher priority.

We would certainly love to see a 3rd party developer add Wemo support via a plugin but none seem to be particularly interested at the moment.

Re: WEMO,( IFTTT) and Wink Spotter

PostPosted: Mon Jan 05, 2015 11:20 pm
by unfrostedpoptart
Thanks for the quick - if disappointing - reply. Also, I think WeMo is / going-to-be big enough that it should be supported natively in Indigo and not as a plugin.

David

Re: WEMO,( IFTTT) and Wink Spotter

PostPosted: Tue Jan 06, 2015 8:13 am
by matt (support)
Note that plugins can provide tightly integrated support with native device UI and actions. In fact, under-the-hood Indigo's Z-Wave support is a plugin.

Re: WEMO,( IFTTT) and Wink Spotter

PostPosted: Tue Jan 06, 2015 2:40 pm
by unfrostedpoptart
Hi Matt.

What I meant by native support wasn't that an plugin couldn't do this but that for something this essential I'd like it supported by the people I paid for the software - not by someone who's doing it for free/fun!

David

Re: WEMO,( IFTTT) and Wink Spotter

PostPosted: Tue Jan 27, 2015 6:27 pm
by macguyincali
I'd like to echo (in a slightly different way) what UnfrostedPoptart is saying: The HA space seems to be blowing up. It is only a matter of time before someone with deep pockets creates a ecosystem for HA that incorporates all the new technologies that are coming to the forefront. Belkin is one such company. Indigo is a great tool and I don't plan on switching or ditching it anytime soon. I have hundreds of Insteon devices to control. That being said, I am getting a huge amount of "new product envy." Wemo (gotta love that Mr. Coffee maker) and the others will be relentlessly releasing products, marketing them much better than Insteon or SmartHome ever did and Insteon will eventually fade away, stuck in a mini market of enthusiasts like me who are nerdy enough to tinker with HA programming software like Indigo. Eventually, one of these players (via Apple and their HomeKit API perhaps) will integrate all these technologies and developers will fill the void with advanced HA software not unlike Indigo, but using more modern UI's and better mobile app integration. It will take a while, but unfortunately I fear that Indigo will not be able to keep up.

I, for my part, love my Indigo. It is the most customizable, controllable system out there. I will stick with it for a long time (at least until something better comes along).

p.s. if anyone wants to go ahead and take a crack at the Wemo plugin, that would be great. Terrific.

Re: WEMO,( IFTTT) and Wink Spotter

PostPosted: Sat Jan 09, 2016 9:32 pm
by neilgreene
Long time Indigo user here. I have loved it for years and have about 129 Insteon devices. I also have Hue, Nest and various Pluggins. Still hurting that my Elk plugging is kinda not working now days. But, I am liking the IFTTT and it has always been my thought that more and more of the HA will move into phone w/ cloud based API/integration logic.

I am +10 on the posters comments above regarding Wemo/IFTTT progress in the marketplace and the adoptability. As slick and easy as Indigo is, it is even easier for home owners to use their Smartphones and get very slick automation through a simple and intuitive cloud services where they do not have to install any software or know anything except - add a Nest Channel, or Hue, and then add your username and password to see you devices and now make devices talk. And at the same time, have that built in integration appear and show up on my Apple Watch!

With that said, I just purchased some of my first Wemo devices to just see how I like the movement in integrating outlets into my logic via the web, vs. Indigo. And I can still even have a hybrid as well.

Re: WEMO,( IFTTT) and Wink Spotter

PostPosted: Sun Jan 10, 2016 1:05 pm
by jay (support)
IFTTT doesn't have an API for developers to use to add their own channels, so they'd have to add it (use their channel suggestion form to request Indigo support). There are a variety of other ways that users have found to integrate IFTTT, just do a search on the forums.

Honest question: why WeMo outlets vs Insteon On/Off or OutletLincs? Is it just for IFTTT integration?

Aside from a few vocal users here on the forums, demand for WeMo support is still very low compared to a long list of other things. As I say above, I'd love to see WeMo support via a 3rd party plugin, but nobody has taken it on yet (which, IMO, is another indicator of a smallish demand).

Re: WEMO,( IFTTT) and Wink Spotter

PostPosted: Thu Jan 21, 2016 1:53 pm
by neilgreene
I only bought a couple to see what integration and capabilities I would currently have. For Wemo there are a number of things missing too for switches for me. But, wifi Wemo devices are different. My biggest desire is IFTT integration. The first piece to go was my ELK because of losing Indigo automation with the death of the Plugin. So, a replacement is being looked at and there are plenty. Mostly leaning toward Scout. But, I need tow work the fact that I have Insteon devices/lights and Scout/IFTT integration. Still between bases.

Ng

Re: WEMO,( IFTTT) and Wink Spotter

PostPosted: Thu Aug 25, 2016 2:49 am
by neilgreene
Would still like to see an INDIGO/INSTEON page on IFTTT.

Re: WEMO,( IFTTT) and Wink Spotter

PostPosted: Fri Jan 06, 2017 10:45 pm
by mclass
Having had a Wemo Insight switch fall into my hands, I have searched the Indigo forums for means to integrate the device with Indigo - without success :roll:

Searching further, I have come across a script that I have successfully deployed (with some minor changes) as a series of action groups to turn the Wemo on and off, toggle the state and to determine its state. Regrettably, I am not sufficiently software literate to develop this further into a plugin, but have posted it it in the hope that it may generate further interest in developing support for this and other Wemo devices!

Note that the Wemo app is still required to set up the switch on the local wifi network.

Code: Select all
# Python script to operate or obtain status of Wemo switch
# based on a script WeMo.py published by pruppert on GitHub
# at https://gist.github.com/pruppert/

# Usage:
# Tested with Wemo Insight switch as an embedded script in an
# Indigo Action Group as Server Action/Script and File Action/Execute Script

#!/usr/bin/python

import re
import urllib2

# Configuration:
# Enter the local IP address of your WeMo in the parentheses of the ip variable below.
# You may have to check your router to see what local IP is assigned to the WeMo.
# It is recommended that you assign a static local IP to the WeMo to ensure the WeMo is always at that address.
# Uncomment one of the triggers at the end of this script.
# Insert the appropriate message for the Indigo event log at line 89

ip = ''


class wemo:
   OFF_STATE = '0'
   ON_STATES = ['1', '8']
   ip = None
   ports = [49153, 49152, 49154, 49151, 49155]

   def __init__(self, switch_ip):
      self.ip = switch_ip     
   
   def toggle(self):
      status = self.status()
      if status in self.ON_STATES:
         result = self.off()
         result = 'WeMo is now off.'
      elif status == self.OFF_STATE:
         result = self.on()
         result = 'WeMo is now on.'
      else:
         raise Exception("UnexpectedStatusResponse")
      return result   

   def on(self):
      return self._send('Set', 'BinaryState', 1)

   def off(self):
      return self._send('Set', 'BinaryState', 0)

   def status(self):
      return self._send('Get', 'BinaryState')

   def name(self):
      return self._send('Get', 'FriendlyName')

   def signal(self):
      return self._send('Get', 'SignalStrength')
 
   def _get_header_xml(self, method, obj):
      method = method + obj
      return '"urn:Belkin:service:basicevent:1#%s"' % method
   
   def _get_body_xml(self, method, obj, value=0):
      method = method + obj
      return '<u:%s xmlns:u="urn:Belkin:service:basicevent:1"><%s>%s</%s></u:%s>' % (method, obj, value, obj, method)
   
   def _send(self, method, obj, value=None):
      body_xml = self._get_body_xml(method, obj, value)
      header_xml = self._get_header_xml(method, obj)
      for port in self.ports:
         result = self._try_send(self.ip, port, body_xml, header_xml, obj)
         if result is not None:
            self.ports = [port]
         return result
      raise Exception("TimeoutOnAllPorts")

   def _try_send(self, ip, port, body, header, data):
      try:
         request = urllib2.Request('http://%s:%s/upnp/control/basicevent1' % (ip, port))
         request.add_header('Content-type', 'text/xml; charset="utf-8"')
         request.add_header('SOAPACTION', header)
         request_body = '<?xml version="1.0" encoding="utf-8"?>'
         request_body += '<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" s:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">'
         request_body += '<s:Body>%s</s:Body></s:Envelope>' % body
         request.add_data(request_body)
         result = urllib2.urlopen(request, timeout=3)
         return self._extract(result.read(), data)
      except Exception as e:
         print str(e)
         return None

   def _extract(self, response, name):
      exp = '<%s>(.*?)<\/%s>' % (name, name)
      g = re.search(exp, response)
      if g:
         return g.group(1)
      return response

def output(message):
# Write message to Indigo server event log
   indigo.server.log ("Insert data type eg status/signal strength/etc here) " + message)

switch = wemo(ip)

# Configuration:
# Uncomment only one of the lines below to make the script work.

#output(switch.on())
#output(switch.off())
#output(switch.toggle())
#output(switch.status())


As stated earlier, I am not proficient in coding, so there may be a more elegant means of doing this - any starters??

mclass