I have the hub sitting on my desk. I just have to find the time to start poking at it.
But the problem is much larger than just the xiaomi devices. I have a custom driver for almost every Z-Wave device on my hub at this point, because the built-in drivers only provide the minimum/common functionality.
As soon as they tell me to turn off all user code, it might be time to just switch to a different hub. Because I would basically have to disable everything, and that isn't tenable.
Is not about them supporting everything is about not having the right tools for debug and assuming that the community code is ALWAYS at fault even if it on the majority of the cases.
I recommended to bravenel the implementation of containers and separate processes for stock and community as a solution. It would avoid this all together.
I won't speculate what they do or don't know, or how they feel about this topic. I just know what I've already said, that this support stance isn't long-term viable in my opinion.
I don't know all your backgrounds, but I used to manage teams of developers writing enterprise application software running on IBM Websphere. If one of them came to me with a problem with the system that they were not sure where it came from, first thing I would tell them is to remove their changes and see if the problem is still there. If instead they insisted on leaving all of their code in place and decided to fire up the monitoring tools, start doing heap dumps, wading through them and wanting to profile the application, I'd have to sit them down for a serious conversation.
In addition if we could not figure out the problem, we gave IBM a call and asked them to take a look. They were happy to help us out for an hourly fee. Which seems crazy, right? We paid them all that money in licensing fees and now they want more money to help us figure out our bad code? They really should have done that for free. /s
You will probably take this as rude, it's not intended to such, but the answer is they should have architected it in a more compartmentalized way so that user code couldn't take down the whole system...
If VMware or Microsoft took that stance they would both be out of business, because it's all about the user code.
If Microsoft said only load blank spreadsheets into Excel, we'd all still be using quattro pro.
Again, it's not the end of the world. But as the user code base grows faster than the built-in code base - which I believe will happen as you get more users - this is going to be an increasingly problematic issue.
I think the Title of this thread is inflammatory because there's an assumption the statement is true everytime/always and there are so many examples of it not being true.
Jason, you and I were just in a conversation(Notification) in which 3rd party code was being debugged on the fly. Both Bruce and Chuck participated and in a short while the answer was found. Resulting in fixes to BOTH Hubitat code and the third party's code.
To me, that seems like a tall order for something like the HE hub though. I know Java has the Isolated class that could be used to isolate code from the system core (which would come at a cost to the JVM), but how would drivers work in an isolated space? How would you code something that allowed for user written code as flexible as HE allows and not end up being dangerous to the system? Drivers by their very nature would have to be accessible by the system for things like automations and other apps.
This was the problem with SmartThings as well. When the ST hub came out it was fast, svelte and ran really well for what it did. Then everyone wanted the hub to do more and more and more until it became a huge, bloated mess.
Again, I'm not really upset or especially unhappy right now.
It's my opinion that they need to figure out a way to compartmentalize user drivers and code better, whether it's in a separate hub (that can fully share drivers and attributes with another hub - not the existing limited functionality hub link app) a separate java heap a jail or other.
In the end they can do what they want. If it gets to the point where the product is unsupportable for my needs, I'll switch to something else. Until that point I will keep using the product because I like it.
I'm not really losing sleep about this either way, just trying to help and providing opinion.