Slow Hub - better tools to diagnose slow running devices/apps

Ever since I bought my second hub and connected all of my end devices to it, leaving all of my zigbee bulbs and zwave devices on the original hub, I haven't seen any slowdowns. I bought a TP-Link unmanaged switch ($15) and connected the 2 hubs and my SmartThings hub to it, and moved all of the lighting rules (button devices) to the new hub as well. I used to have to reboot the hub daily in order to maintain reasonable responsiveness, and now have it rebooting twice a week just for the heck of it I suppose, since I haven't seen any evidence of slowing down in Hub Watchdog. I have 184 devices on the original hub and 224 on the new hub.

There really is no substitute for multiple hubs.

Things were starting to get a little laggy for me, but with three hubs now (HubConnect master, Lutron & Zigbee/Z-Wave devices, Lutron & Konnected/Bond/Sonos devices) I've seen zero delays with zero reboots. :smiley:

Multiple hubs help with out a doubt. Are you guys running RM on both the server and slave hubs? My only pain point is managing all the HubConnect drivers when building rules that use attributes across many devices. Which hub are you guys running Google Home and Life360 apps?

I run Alexa and HubConnect from the zigbee bulbs and zwave switches hub. I have RM on both hubs. One less thing between. I only have a couple things in Alexa from the second hub. I use Makerapi on the second hub for Homebridge devices and Homebridge-hubitat-hubconnect on the first as I mostly use Apple Home for the Dashboard and Alexa for voice control of lights. Alexa is too slow and clunky for using as a dashboard.

I have three hubs. Each of them runs:
RuleMachine
Lutron Integration
HubConnect.

If possible, I add nothing else. Repeat, nothing else. I have a couple of Goals for my Radio Enabled Hubs : 1) nothing but those 3 apps. 2) Cause (events coming from sensors) and Effect (the devices that are turned on or off due to sensor values) live on the same Hub. 3) Apps that do nothing unless explicitly clicked.

So far, I believe I've met my own goals, if not, I'm really, really close:

Here's my Apps list for my 1st (ZWave Radio only) hub:
14%20AM

Here's my Apps list for my 2nd (ZWave Radio + Zigbee Radio) hub:
13%20AM

This is a partial list of my 'coordinator' (no ZRadio enabled) Hub:

Ok, the exception reasoning.. First that Get Attributes App is a 'run only on click' so it can't effect my hub except the fraction of a second I click it's button. Better Laundry Monitor is there because it meets my Goal 2. The Laundry power sensing is on that hub (cause). The purpose (effect) is to notify me. Advance Button Controller is on the 2nd hub and it's a Goal 3 App (It doesn't run unless a Pico button is clicked somewhere.)

The 3rd hub has all the 'risky apps' Chromecast, echo, average this, Dashboard, etc.

When will the node.js event filter enhancement come to light? Is it working well in testing?

What do you think of the following breakdown (I have to choose what is on what hub):
hub #1:
Zwave, zigbee, lutron devices
hub #2:
RM, all other rules/apps, MyQ, SharpTools, Google Home, Alexa, (anything else that needs internet)
(all zigbee/zwave radios turned off)

So the rules on hub #2 work on the devices on hub #1

What do you think? Is that a good way to separate everything?
Am I going to introduce a lot of lag since my rules are on a different hub than my devices?

Yes, it will work. I've heard of this architecture before around here.

Much of the point of multiple hubs and HubConnect is trying to solve some 'measurable problem'.

For me, I wanted fastest "Cause and Effect" (Cause is some sensor event; Effect is the result of RM or other app deciding how to react, such as turn on or off something, send a notification, etc.) In my case, I have serious "don't stub my toe" requirements because I have kids that leave stuff underfoot. I achieved this by splitting the quantity of devices each hub has to handle, coupled with putting 'outward facing' (aka internet ) Apps on their own hub.

What's "a lot"? 2ms??

My 'rule-of-thumb' for Cause and Effect is 250ms. A quarter of a second. I've also got a 'human perception" number of 33ms. Therefore, I have a belief that if the lag introduced by multiple hubs is 33ms or less, we humans can't detect the difference between 1 hub and more.

I'm seeing 2ms, where I've had an opportunity to investigate. One tenth of the Human Perception time.

In my scenario, I have something similar for very specific events.

My 3rd hub has Weather Drivers and Dashboard. Which means I'm sending all my device data to the 3rd hub from my 1st (and 2nd) hub. If there's a weather event and that will need to cause a light to go on, (If cloud cover increases, lux descends, below a certain value, 'gloomy day' virtual switch is turned on, mirrored to my downstairs hub and lights turn on.)

My set of Rules-on-that-Hub for Devices-on-this-Hub are fewer than your plan, but I really can't detect the lag. :slight_smile:

Hi guys,

My hub has recently slowed to a crawl, apps (Inc RM) can take up to 10s to process the simplest of tasks, eg if button pushed then switch on lamp. The problem is only app related, changing status of devices directly from the device menu is as quick as usual.

I haven't touched my custom code for months before we go down the route of "please delete everything on your hub and see if that resolves the problem".

Is there anyway to see how much of the system resources is being used by each app etc to narrow down the issue?

There is not

When is the last time you restarted your hub? You can verify under System Events, Hub events tab. If it has been a while I would recommend restarting it to see if that solves the issue. HE Staff have mentioned they are aware of slowdown issues but they have been difficult to chase down. Some folks are restarting their hub in a regular and automated basis and there are several community apps that can automate this. Search the community for those.

If that doesn’t solve your issue, try a soft reset which is essentially replacing the database with a backup copy but all your paired devices remain. Instructions can be found here:
https://docs.hubitat.com/index.php?title=Soft_Reset

You may also consider reaching out to support as well.

2 Likes

Why can't we have the necessary troubleshooting tools? It's like finding a needle in a haystack.. So frustrating to the point I'm considering moving away from HE.

I don't understand this...

Is it supposed to be argumentative? Because I don't think you're going to get anyone to argue with you. We all want better tools. Motherhood and apple pie.. it's a given. :smiley:

Is it supposed to be a threat.. that if you leave, we'll crumble? The Community will be unable to continue? I guess we'll just have to take that risk. :smiley:

I think it must be rhetorical.. a bit of venting and that mostly, it just needs to be ignored.. :smiley: The answer has been covered soooooo many times, there's nothing more to say. :smiley:

4 Likes

Except

This has never been the case. There is a disable button on all apps and devices that allows you to temporarily disable them. You can try turning off one app or device at a time until you find the offending thing. You can also pause rules in RM to see if any one of those is causing issues.

Just because you didn't change anything doesn't mean something didn't change. Devices fail. Databases get corrupted. And so on.

1 Like

I guess it depends on what you are expecting when you disable a device.. they are still paired and communicate at some level. Also flaky devices can impact the network outside of the hub.

It's just really frustraiting that what was a good reliable system has become unreliable and slow (seemingly without any changes to configuration).

I beleive the problem is more app related than device relate. I say this because opening a device, a switch for example, and clicking on "on" or "off" has an immediate effect but an app opperating the same switch is subject to long delays.

I have tried disabling apps one at a time and this doesn't help, I have tried disabling devices one at a time and does't help either.

Tracking this problem down without some better diagnostic tooling is going to take a lot of time (that I don't have). Could we not have a way of seeing how much processor time each app is using? I have started to move some of my more critical devices over to a Raspberry Pi running python scripts which I have written. Each of my devices / apps on my raspberry report back to me their excecution time which immediatley highlights an issue if something is taking too long and slowing the system down.

I am not trying to be negative and unconstructive, I really love the design and functionality of Hubitat but it needs to be reliable to be of real use

Are you sure? I have not seen a disable button on my devices and only a few apps have it (RM for example). Is there something that I am missing?

Click on the greyed out cross and this then opens another column for disabling apps/devices.

image

1 Like

Thanks

Yes. In the upper corner of the Devices page, you have to click the "list mode" button. You probably are in the "grid mode". Not sure what they are actually called, but whatever. See the picture below. This button, despite being greyed out, will work.

Then click on the red :x:

You can then check off the device beside the device.

This works for apps as well as devices.

3 Likes

So, i have spent the last 2 weeks deleting code, replacing custom apps with RM apps. Moving more complicated apps over to my raspberry. Despite all of this work the hub is getting less and less reliable. I'm pulling my hair out with frustration here.

A few months ago everything was fine and then (with no code change) the hub started slowing down.

Its so annoying that there is no tool available to help me