Anyone know why tiles wouldn’t be showing current state? I’m connected to a SmartThings hub and, while commands are sent correctly, tiles never reflect the changes. Looking at the browser’s console, my subscriptions to the hub are fine. There do appear to be some CORS issues with a few firestore API calls and a failed inline script, but that’s not something I think I can control on my end. I’m checking out SharpTools for the first time and really want to like it, so hoping there is an easy answer here.
Welcome to the community and thanks for posting, @Gary_Parr!
Can you tell us more about your network and what type of device you are viewing your dashboards on? Firestore is our real-time database, so those error messages could explain why you aren’t seeing event updates.
I’ve got a few lights, a z-wave lock, a thermostat, and the SmartThings weather device hooked into my dashboard right now just to play with. I’ve seen a couple of the tiles update hours or a day after a status change. I see this using both Firefox and Edge on my Win 10 laptop. My network is… unique. I’ve got an Ubiquity ERL-3 and a Sophos XG in the mix, with IOT on a separate segment than my LAN. Took me a bit to realize the XG was blocking non-standard SSL which was causing some problems with the web dashboard but I’ve since bypassed that and still have issue. Don’t think it is my network though because I have the exact same issue using the web dashboard with Chrome on my phone over the cell network or on my laptop using my phone as a hotspot over the cell network.
When I check the console in Firefox I see things that look promising like this:
Checking subscriptions for UID GdH0SF00sDNRl0TN0aJM8NKu2oF3 for location id d7a95db8-ad83-4221-878b-624d310de0c5 on platform smartthings [app.459d975854e545e15882.js:6:80653]
There are 35 subscriptions in Firestore for location d7a95db8-ad83-4221-878b-624d310de0c5 [app.459d975854e545e15882.js:6:80907]
Subscriptions are filtered from 35 to 32 based on device authorization for location - d7a95db8-ad83-4221-878b-624d310de0c5. [app.459d975854e545e15882.js:6:81546]
Retrieving subscriptions from smartthings for location d7a95db8-ad83-4221-878b-624d310de0c5 [app.459d975854e545e15882.js:6:81676]
Checking if all 32 required subscriptions are already available (for UID GdH0SF00sDNRl0TN0aJM8NKu2oF3) [app.459d975854e545e15882.js:6:78492]
Missing subscriptions
Array
[app.459d975854e545e15882.js:6:78947]
There are no subscription missing for location d7a95db8-ad83-4221-878b-624d310de0c5.
But then I see this happens any time I load the page…
Content Security Policy: The page’s settings blocked the loading of a resource at inline (“script-src”). controller-8cf533bd2ac100386dcc43eb1faef57b.html:1:1
Hi @Gary_Parr, when you turn on/off the lights and lock/unlock, do you see the change updated in SmartThings app immediately? Your subscriptions do seem setup right in our side, but it doesn’t make sense to me the tile got update several hours afterwards.
Curious if the event actually sent out to SmartThings cloud. I am looking into the script error in the same time, which can be related.
@James my suspicion with the script error was either network related or some other blocker. The only other time I’ve seen similar behavior is on a corporate network with a network security appliance.
What’s interesting is Gary mentioned that he tried to hotspot from his phone. @Gary_Parr do you have any other VPNs, app blockers, ad blockers, other other apps/services which might be interacting with the site?
@James brings up a good point about making sure that SmartThings itself is getting updated with the proper device state in a timely fashion. Furthermore, you could watch the SmartThings IDE live logs when you control a device as it should show logs with the device control as well as the events getting posted to SharpTools.
And if you want to reach out to support@sharptools.io with a specific device ID, we can coordinate to verify that the database is indeed getting updated in a timely fashion.
@James, if I toggle a light switch within the SharpTools dashboard, the SmartThings app reflects the change the same time the device itself changes state. The SharpTools tile does not reflect the change at all.
@josh, on the local machine I’ve got nothing more than an ad-blocker (disabled) and the vanilla Windows Defender. At the network level I’m currently bypassing all the scanning, sniffing, and IPS on the firewall. Should be a clean pipe. Mobile hotspot seems to confirm this.
Checking the SmartThings logs was a great idea because something there looks helpful. Immediately after changing a device state (regardless of source of state change) the SmartThins logs show the following sequence:
debug Detected state change: [ID]
debug Post the device state to server: [ID]
error Error patching device state: groovyx.net.http.HttpResponseException: Not Found
Is there something I can check next myself? Or is this the point I need to contact support with that specific device ID so someone can poke around the back end?
Wait, that might not actually be anything useful. The log ID indicates that groovy exception is related to The Google Assistant. To confirm, I removed the SharpTools authorization for a device, changed the state of that device, and the error still appeared. Unless SmartThings is trying to push status for a device to SharpTools that SharpTools is not authorized to see, I’m lead to believe the error really is unrelated. So, back to square one.
Thanks for the additional details. So it appears the events were updated in ST, and actually updated to our backend DB as well, but just Firestore failed to push the updates to your clients.
Can you try a couple things?
Physically bypass your laptop from the firewall and router where possible to eliminate the issue from them.
I understand the you’ve tested through your cell hotspot, but it seems to me it’s more likely to be the network related.
Can you take a screenshot of the browser console with detailed errors?
Because if it is, I’m not seeing any SharpTools entries within the SmartThings live log other than updateDevice events. Not a single entry for data posting or RegID triggering. That doc shows the log filter as being a beta though, so could be you guys just removed some of the debug messages…
This KB is for troubleshooting the SharpTools Android app, which is different from SharpTools.io platform at this point. In ST event log, you should see it posting event to “SharpTools.io” like this.
I did check a few of your devices in our DB, and found they have recent updated timestamp. So I believe the subscription and update from ST to SharpTools.io is working as expected.
For others who run into this issue in the future, this problem was caused by SharpTools smartapp been “paused” in SmartThings. Starting SharpTools smartapp fixed the event not sending to SharpTools.io issue then.
So you man way to check SmartThings IDE site → My Locations → select your location → click on "List SmartApps → find SharpTools in the list and make sure it is not paused.