Webcore has stopped reacting/responding to smartthings switches following hub reboot


#1

Hello

So this morning, in an attempt to isolate a random entire house hue light fade that I’ve been experiencing at dawn every day, I decided to turn off my smartthings hub. I disconnected it from the power, unplugged the Ethernet cable and removed one of the batteries. After dawn had passed and the fade had still happened I plugged it all back in and thought nothing more of it other than “At lease I can rule out the ST hub as the reason for the hue fade.”

Unfortunately since I’ve turned the hub back on none of my pistons are responding to any of the virtual switches I have setup. As the majority of the virtual switches are there to indicate what we the occupants are doing (home, away sleeping…etc) the non response means that none of my house routines are now running. I’ve tested the switches and they are turning on and off but webcore is not reacting to them which it should be.

I have tried the following:
Rebooting the hub from within the smartthings ide.
Pinged the hub from within the ide
Removing the power supply and Ethernet cable again
Created new pistons monitoring the same switches. This Works and reacts the the switch changes
Created duplicates of existing pistons. This Works and reacts the the switch changes.
Ensured that webcore is up to date.

I’m hoping some one might have come across this before and have a simple solution.

Thanks very much in advance.
Tim


#2

Does pause/resume resolve the issue?


#3

This may not pertain to you, but if a switch changes to on when the hub is unplugged, then webCoRE will not be aware of the change. Once power has been restored, turning it on still does nothing, because technically, it is not currently changing to on.

If a device is out of sync, toggling it twice (slowly) should re-sync it…
(I usually pause a few seconds between the toggles)


#4

No. Pause/Resume does not help. I’ve now also tried deleting and re-importing one of the pistons which also does not help. The only thing that seems to work is duplicating the piston. Then it fires as expected when a switch is changed.


#5

I’ve tried this too now. Switches themselves seem to function as intended. It’s the pistons that are no longer reacting to the switches that is causing me problems.

@jkp & @WCmore
Thanks both for your swift replies.


#6

I don’t know if it would be related but i’ll just mention, in the past few weeks i’ve been having a lot of problems with webcore not detecting Smartthings device changes. Pistons that have been working fine in my new house for 5 months just suddenly started giving problems with reboots and updates making no difference. For instance I have a basic piston;

If Bedroom motion changes to Active
Turn on Light
Else wait 2 minutes turn off light.

Smartthings would reflect the change in motion for the device, but the webcore piston would either be delayed (about 5-10 seconds), or would just not fire at all.

I found most of my problem pistons were ones that were executed on a global variable changes. For instance I have a piston that when I go to bed and push a button it changes variable GoodnightBedroomLight to True, which fires another piston after it has finished.
The other piston has;

If GoodnightBedroomLight is True
OR
GoodnightBedroomLight changes to True

Never cancel
Set BLight Colour temp to 2700k and brightness to 10%
Wait 1 Hour
Set GoodnightBedroomLight to False.

When GoodnightBedroomLight changes to True, the other piston doesn’t detect the change. The log shows no sign that anything did change and I can refresh my web browser and scroll down to the global variables and it will say it is True but the piston didn’t fire. However if I click ‘Test’ the piston then runs on the ‘If GoodnightBedroomLight is True’ condition successfully but didn’t run on the trigger.
I put it down to a smartthings update that was affecting either the webcore triggers or the hook webcore uses to ‘see’ a device state change.

Lately it has been running a bit better but it is still choppy sometimes. It may be related or not, just thought i’d mention it.

Timski, when you pinged the hub did you get a response or did it time out?
The first day I noticed it played up I went into the IDE and tried Reboot, ping & allow OTA for Zigbee but I wouldn’t get a ‘successful’ message, and the status light on the hub didn’t show it rebooting. Since then the buttons now work but that is what I noticed the first day it started playing up.


#7

the issue you were experiencing was resolved earlier this week :slight_smile:


#8

Hello again.

Thanks again for all the info.

I’ve spent the morning slowly trying to piece things together again. Seems the best thing I can do right now is to delete all pistons and then restore them. I’ve checked and this does seem to make them work which suggests to me that it is a webcore issue rather than smartthings. Is there any way to do this in one go without uninstalling and then reinstalling webcore? Unfortunately I have 136 pistons (most of these do very little other than turn one device on or off. I use a few larger pistons to call on these when required) so it is going to take me a long time to delete them let alone restore them one by one and then repath the “Execute Piston”.

I do not mind fixing this. It’s annoying but I guess part and parcel of doing this much (unnecessary but fun) home automation which occasionally is going to go wrong. I do think that this is a pretty big problem that has caused so much to break just because I unplugged the hub for half an hour.

Any other thoughts before I proceed with this slow and laborious task?

@ShaunTheBaa When I pinged the hub I got a pretty quick response.

With regards to the global variables not getting noticed by other tasks I have had similar issues. When setting timers that change I need to pause and resume the timer piston after a global timer variable has changed. As the piston resumes it seems to then pick up the new value and will then trigger at the correct time.

Perhaps you could try:
In the first piston:
IF button gets pushed, SET variable:GoodnightBedroomLight to True (do not fire the second piston)
In the second piston:
Remove the first part of your IF statement (If GoodnightBedroomLight is True) and just have the second part
IF GoodnightBedroomLight changes to True,
THEN Set BLight Colour temp to 2700k and brightness to 10%
Wait 1 Hour
Set GoodnightBedroomLight to False.

Thanks again

Tim


#9

Also…
I’ve just noticed that I have a few system variables that look a bit odd. Didn’t know if perhaps these maybe causing an issue.

device$device:Location
device$devices:Location
datetime$nextScheduledTime:Invalid Date


#10

Tagging @ipaterson :slight_smile:


#11

You could perhaps try going into the webCoRE SmartApp via the mobile app, entering the Settings, and disabling and renabling the pistons (perhaps saving the settings after each change). I don’t suppose it will make any difference but it might be worth a minute to try.


#12

Hello @orangebucket
Thanks for the suggestion but yes, I have tried this. Unfortunately this did not help.
Cheers


#13

Just had another thought based on the suggestion from @orangebucket. Instead of disabling the pistons in the app I went into the IDE and went into: My Locations/Home/List SmartApps
When I scroll down to webCore there is a list below of all of my pistons. Some of them are paused.
Could this be what the problem is? See image below. This is just the first few pistons. Pressing play on these starts a spinning wheel but never seems to finish and remains paused.
image

Edit:
Ok so this seems to have been the problem. Wish I’d discovered this yesterday morning.

I had webCore open in another tab which doesn’t play well with the IDE. That’s why pressing play wasn’t working before. As soon as I closed webCore tab I was able to press play on each of the pistons, refreshing (F5) in between each one.

All SEEMS to be working now. Will get on here again if it turns out to be something else but thanks to everyone for their support.