I’m in my first week with SmartThings, so hopefully this isn’t an obvious newbie question.
As an Iris 2.0 refugee, I have a number of devices that require new device handlers in the IDE. I’ve had a very challenging time with things not working, and quite literally every button press in the Android app seems to have about a 1/3 chance of giving me an “unexpected error.” Last night I stumbled across what appears to be an inconsistency in the database from the IDE.
I had been setting up Device Hnadlers after logging in at graph.api.smarththings.com, but when I went to My Devices, the list was blank (despite having about 10 devices installed at this point). I went back to My Locations, and that changes my URL to graph-na02-useast.api.smartthings.com. If I then click My Devices, I suddenly see all of my devices. But, if I then click My Device Handlers, the ones I have set up are missing.
I’ve checked back and forth a few times, and anything I do in graph.api.s.c doesn’t get copied to my hub and app, nor does anything I do in graph-na02-useast1.api.s.c get copied back to graph.api. Am I using the API incorrectly, or is this one of those big database bugs?
I have screenshots of the difference in case it helps…
Looks like you’re on the new NA shard, you just need to make sure you are in the correct IDE when adding DTH and SmartApps. Best way to make sure is to always go to ide.smartthings.com and log in from there.
1 Like
tgauchat
(ActionTiles.com co-founder Terry @ActionTiles; GitHub: @cosmicpuppy)
3
Yes… You’re using the API website incorrectly.
The 3 shards are distinct and your installed Devices and SmartApps are not Replicated among them and they don’t need to be.
This may sound like I’m arguing, but I’m really just trying to understand and see if some directions need to be updated.
First, almost every set of instructions regarding device handlers seems to say to go to graph.api.smartthings.com, but I can understand that being outdated.
Also, the “official” Overview of Using Custom Code in SmartThings says to click the community link and then click Developer Tools. Logging in that way sends me to graph.api.smarththings.com which we’ve established won’'t work for my hub.
So, without having clicked the right series of links or someone specifically instructing me to do otherwise, how should I have known that I’m doing it wrong? If I’m doing this incorrectly, I’d like to know what I’ve overlooked so as not to make the same mistakes elsewhere.
The multi region (effectively what this is) stuff is poorly implemented… those of us in the UK have been suffering with this for some time and for us (in the UK at least) it also means a disparity in features (Github integration for example). The whole thing feels like a rushed after-thought shoehorned into a system that wasn’t designed for it.
This also causes problems when trying to authenticate an app that I created with oAuth enabled.
When I use graph.api.smartthings to authenticate, my hub doesn’t appear in the dropdown. When I use graph-na02-useast1.api.smartthings, I can select my hub in the dropdown, but I get a 500 error when I hit “Authorize”.
Tried re-generating the app id and secret to no avail. After reading this thread, I suspect this is because my app is on graph and not graph-na02-useast1. Will try moving it over and report back…
I actually just noticed the note in the docs saying"Regardless of the server the SmartApp is actually published to, https://graph.api.smartthings.com should be used to obtain the authorization code, access token, and endpoints."
So that leads me to believe the initial way I am doing it (using graph.api) is correct, but my hub isn’t associated to my developer account somehow which might be why it’s not appearing in the dropdown.
A bit late with jumping in here - I’ve come across a variety of smart-apps that have graph.api hard-coded somewhere or connect to something or other that wants to use graph.api to request authorization etc. I don’t know what the deal/politics is/are with the github integration in other parts of the world, but they invented dns so that I can go to www.google.com anywhere in the world and be pointed to the right servers (ok, yes, thats a big oversimplification). Point being, you have regions, fine, distributed server locations, great, ONE url is all that’s needed. Re-direct if you REALLY have to. But this is a dumb problem.
I got an email about a hub update that’ll be hitting on Tuesday (11/15/2016 between 11am and 2pm EST - I’m on PST btw). The last paragraph says this:
This update improves Hub connectivity with the SmartThings platform and fixes discovery & polling issues with ZigBee, Z-Wave, and LAN devices. More information about updates to your Samsung SmartThings and SmartSense devices can be found here.
Well… not only is that a page about Zigbee OTA - which is very generalized (and ONLY about zigbee…) - but the flag they mention to turn on Zigbee OTA from my Hub’s Utilities page? graph.api… Did I mention I’m also on na02? Starting to wonder if NA is supposed to mean ‘not applicable’ instead of ‘north america’… Anyone on a ‘na01’ server?
Oh yeah, the Zigbee OTA flag isn’t actually there - on either graph.api or na02… < sigh >