SmartThings Community

Wemo Maker Integration--help needed


(Michael Bonville) #1

Greetings,

I’m reposting my original reply from a post started by @Kriskit in hopes there are others in addition to Chris who may be able to help.

I have two Wemo Makers; one that works well with my garage door through IFTTT. The other I plan to set up to drive an alarm horn. With IFTTT integration, there comes an inherent security risk; that is if internet is cut, subsequent communication to the Wemo Maker would also be interrupted - rendering my security system ineffective. Thus the reason I’d like the Maker recognized by my SmartThings Hub.

This being my first attempt creating a SmartApp, I have to say I’m somewhat confused and probably should have tried creating something less complicated for my first SmartApp.
I used the code attached in this post…
https://community.smartthings.com/t/release-wemo-maker/46098

Here is how it progressed as I worked to create the app…

The first thing I did was install the Wemo (Connect) SmartApp on my iOS device from within the SmartThings App, followed by copying the first code set to My SmartApps IDE. Then, I copied the second code set to My Device Handlers in IDE - and saved both, but did not publish anything (I read somewhere that if I’m not a developer, I don’t need to or shouldn’t publish the app). I then went to Create Device and noticed at the bottom of the list a Wemo Maker. I selected this and attempted to create it, but got a 500 Internal Server Error. Also, I tried to create a simulator in My Device Handlers, but it comes up blank. Then, I attempted the same thing in My SmartApps (IDE) and it began searching for a Wemo Maker, found my Garage Door opener, but returned the error “java.lang.NullPointerException: Cannot get property ‘value’ on null object @ line 181”.

I assumed the instruction “Copy the Wemo Maker device type into the IDE:” meant to put the code in the Device Handler’s section. But if not there, then where? I don’t see anything labeled Device Type. So, I kept futzing with things and ended up successfully adding a new Device (Wemo Maker) in the IDE. Much to my surprise, it showed up (with an ACTIVATE button) in My Things list on my iOS App! However, it didn’t last long - because it’s still there, but is now showing as OFFLINE.

Clearly I’m not doing something right, or I’m doing everything wrong. Honestly, I didn’t expect it to work because I wasn’t sure I was doing anything correct in the first place. I have looked at (but not perused) the SmartThings Developer Documentation and have watched a YouTube video SmartApps Workshops 101 by @matthewnohr only to realize that I may be in over my head. All this said, I believe I can do this, but it may take a considerable amount of time (aka much trial and error) before I get it to work.

Any help anybody can provide is most appreciated. Thank you for your time.


#2

First things first: start with this, and it will explain the basic concepts:

Next, take a step back. a device type handler is code that allows SmartThings to process messages received from a specific device, or from the cloud service. And to format messages to be sent back.

But none of this works unless there is an existing method of communication.

with zigbee or Z wave devices, there is a radio inside the smartthings hub which can receive messages. And the hub itself can process those messages from some of those devices without checking with the SmartThings cloud. Direct integration. Those are the only ones which can work if the Internet is down.

Many other devices, including, I believe, the Wemo devices, rely on integration which requires the SmartThings cloud to be available. That means no Internet, no messages get passed. It won’t matter what format they are using. There won’t be any way for them to reach the hub in the first place.

So if your goal is a rule that will work when the Internet is down or when the SmartThings cloud is not available, I don’t think you can use a WeMo device at all. You can probably set up communication that doesn’t use IFTTT, but it’s still going to require that the Internet be functioning. That’s because even when the integration itself is over the local area network, because of the processes those messages has to run in the cloud. This is true, for example, of the Phillips hue bridge integration.

Others can comment more on the code issues that you’re seeing, but I do think you need to first find out if the message processing can run without the cloud to see if your goal can be accomplished.


(Michael Bonville) #3

Thanks JDRoberts,

Knowing this, it is probably best that I stick with IFTTT as the interface between ST and Wemo Maker and avoid the headaches.

One feature I’d like to see though is to have my garage door open when I arrive and close when I leave, but I don’t think IFTTT can accomplish that with the Wemo Maker.


(Michael Bonville) #4

Well, with enough time most anything is possible. I got it to work by simply following @Kriskit’s instructions (along with learning a little about how to create an app in the IDE).

That said, do you suppose there’s a way to automate my garage door to open when I arrive and close once outside of my geofence? If so, are there any routines/automations that others would like to share?

Thanks!


(Michael Bonville) #5

Well, once I figured out how to do things the right way, the first Wemo Maker (garage door) is working quite well. So, I thought I’d set out to get the second one working. So far it has been “Discovering” for about 30-45 minutes with no indication that there’s a second Wemo Maker on my network. It is working in the Wemo App and through the IFTTT channel. So, my question is this; why is the Wemo Maker (Connect) App not recognizing a second Maker. Does anyone know if the developer (@Kriskit) is available to look into this issue? If there’s something I’m doing wrong (which is very possible) could someone point me in a direction or offer corrective steps?

My apologies for being such a pain in the donkey. Thank you!


(Michael Bonville) #6

Update on my Wemo Maker saga…
It’s been discovering since last night (about 8 hours) and still only showing one device in the Wemo Maker (connect) app. Any thoughts or help would be most appreciated.

Thanks!


(Chris) #7

Hey, sorry for not being around, I am not really that active on here anymore and don’t get much spare time.

I am afraid I can’t be too much help with the lack of device discovery. That part of the code I lifted from the other Wemo smartapp, and changed a single variable to the identifier the Maker uses.

I don’t have any issues myself discovering the two Makers I have. The only thing I can suggest is to bring the live log up in the IDE and see if there are any useful messages in there while it’s attempting to discover. And if you are comfortable modifying the code a little, you could add some additional logging to see what’s going on.

Sorry to not be more help :frowning:


(Michael Bonville) #8

No worries Chris! Hope all is well. Thanks for doing what you did, it works with one and that’s okay for now. Though I’m not comfortable writing any code, I will likely figure it out, eventually. My motto has been that if I keep drilling into something, I’ll either strike oil or magma.

Thanks again!


(Barry Gurberg) #9

Hi. Installed Wemo Maker (Connect) by Chris Kitch, Date: 2016-04-06. It installs on my cell phone but it doesn’t show up as a “Thing”. Also, I get this error when I run the Simulator in My SmartApps from the URL…https://graph-na02-useast1.api.smartthings.com/
:
java.lang.NullPointerException: Cannot get property ‘value’ on null object @ line 181.

Any ideas how I get get this working?
Thanks, Barry


(Chris) #10

I wouldn’t trust the simulator much to be honest.

It won’t show a ‘Thing’ for the Maker until you discover it using the Wemo Maker (Connect) SmartApp which should be under Marketplace -> SmartApps -> My Apps

You need to have installed both the SmartApp and Device Type and published them.

Hope this helps :slight_smile:


(Barry Gurberg) #11

Hi Chris. Thanks for the reply. Where is the device app? Also, now
after the WeMo Maker has been discovered, I can’t save the page. Before I
was able to save the page, but I couldn’t see the Maker in Things.
Thanks, Barry


(Chris) #12

(Barry Gurberg) #13

Hi Chris.
I entered this new code on the Smartthings web site, but I can’t save the
page on my cell phone.

see attached image.

What to do?

Thanks,
Barry


(Chris) #14

You will have to open the Live Logging page in the IDE and then try to save on your phone again and see if it spits out an error or not.


(Barry Gurberg) #15

Hi Chris.

Here is the log…

cb5d9af2-6567-4997-8d61-932d9fea7e02
https://graph-na02-useast1.api.smartthings.com/ide/logs#cb5d9af2-6567-4997-8d61-932d9fea7e02
16:32:40: error physicalgraph.app.exception.UnknownDeviceTypeException:
Device type ‘Wemo Maker’ in namespace ‘kriskit.wemo’ not found. @ line 183
cb5d9af2-6567-4997-8d61-932d9fea7e02
https://graph-na02-useast1.api.smartthings.com/ide/logs#cb5d9af2-6567-4997-8d61-932d9fea7e02
16:32:40: debug getChildDevices(false), children=0
cb5d9af2-6567-4997-8d61-932d9fea7e02
https://graph-na02-useast1.api.smartthings.com/ide/logs#cb5d9af2-6567-4997-8d61-932d9fea7e02
16:32:40: debug Updated with settings: [selectedMakers:[94103ED4046D]]
cb5d9af2-6567-4997-8d61-932d9fea7e02
https://graph-na02-useast1.api.smartthings.com/ide/logs#cb5d9af2-6567-4997-8d61-932d9fea7e02
16:32:35: debug REFRESH COUNT :: 16
cb5d9af2-6567-4997-8d61-932d9fea7e02
https://graph-na02-useast1.api.smartthings.com/ide/logs#cb5d9af2-6567-4997-8d61-932d9fea7e02
16:32:30: debug Sending discover request…


(Barry Gurberg) #16

Hi Chris. Does this log make any sense to you?

Thanks,
Barry


(Chris) #17

Apologies, for some reason I’m not getting notifications of posts on this topic despite them being enabled.

The logs suggest that you haven’t installed and published the Wemo Maker device handler.

@joeanca has put some instructions on the Wemo Maker thread that hopefully should give you some direction:


(Barry Gurberg) #18

Hi Chris. Got it working. I didn’t realise that there were 2 pieces of
code; one for the IDE and another for the device handler. Thanks, Barry