I am one of the many SmartThings refugees that left the platform when they removed the Groovy IDE, and thus Webcore. The main reason I chose Hubitat over HA at the time was the ability to move my 200 Webcore pistons over to Hubitat without having to re-write everything. (That and Echo Speaks App, which SmartThing banned for too much polling before they even shut down the IDE.)
Now Webcore is a built-in App on Hubitat, but it still seems like everyone uses Rule Machine. I've tried Rule Machine, and I don't really see why it is preferred over Webcore.
Are people just not aware of Webcore?
I really see it as superior to Rule Machine. I like the the way it mimics programming code, but yet it is still all point, click and select. You can see all your logic flows easily in one view, and everything reads naturally for what it is doing.
I've heavily used the array features (really maps) for looping through data with For loops, the While loops, and the For Each Device loops. Not to mention parsing JSON, sending web requests, local piston variables, calling other pistons, and being able to send them data, and even sending SMS texts. It also pulls in hub variables if you want to use those, in addition to having its own global variables that are available from every piston.
I'm sure most of this can be done in Rule Machine, but I never dug deep enough into it. I also like how Webcore pistons can contain multiple "rules" that can share piston variables, and how pistons can then be organized on the main page by Category.
So why do you not use Webcore, and if you do, what do you love about it?
I use webcore for familiarity (from smartthings), variables, and the ease to acquire help and imported pistons. It does absolutely everything I need it to and more.
Interesting you use both, but yes, I forgot to mention expressions. I've used those a lot, especially for building strings containing variables or device attributes.
Edit: I would also say I don't mind the web interface. You can work on automations outside of your house without a remote admin subscription. My browser remembers the password, so it is really three clicks: Webcore -> Open Dashboard -> click Authenticate.
I don't understand the unapproachable part. New Piston -> give it name -> start editing.
I don't use Webcore. One, because I've been here since well before it was an official app. Secondly, anything that's more than a couple clicks in Rule Machine, such as parsing JSON or the other examples you list, is just way easier to do in a custom app or driver using Groovy.
Probably the main reason I still just toss everything in Rule Machine is I don't like having everything reliant on an external website. Sure, the pistons run locally and even if the webcore site is shuttered the pistons will still run, I don't want to be in a position where I have a bunch of pistons I can't view or edit. With Rule Machine, there's absolutely zero chance of that since everything runs locally on Hubitat.
Another major issue I have with Webcore is the need to preemptively select the devices 'visible' in Webcore. More often than not, my workflow is "add device" -> "make a rule or two using it". Using Webcore instead would add an entire extra step of "add device to Webcore" in the middle of those two steps, and that's just more friction than I want to deal with.
Lastly is Room Lighting is amazing. It's easily containing what would otherwise be 100+ rules or pistons. That leaves me in a spot where I use Rule Machine for basic stuff that's just a bit more complicated than "Basic Rules" allows, Room Lighting for a massive amount of things, like all of my motion-lighting, smart shade control, time-of-day lighting changes, etc.
Anything that's actually complex, where Webcore might provide a small benefit over Rule Machine I just use a custom Groovy app for, with the added benefit that my most complex things, which I use Groovy for, run 1000x faster in custom Groovy than they would in Rule Machine or Webcore. And it's these very same custom apps, which would be monsters of Rules/Pistons, are exactly where the speed benefits of Groovy over RM/Webcore matter most.
I agree. I only have a few Webcore pistons now, as I wrote everything into Groovy apps and drivers. My 200 pistons became a small handful of custom apps, though I used the pistons as a reference to build the custom apps since the logic was already worked out, generally. Many of my pistons just became a method in the larger app, and each app was basically a Category in Webcore.
I was using JSON strings in Webcore for my scene data, and it was quite cumbersome. I'm now using maps in my Groovy apps to store scene data. Sure, I could use the lighting app, but I do extra things in my apps it doesn't do, and I like to spin up my own automations.
Agree. I would often have to go back and add devices when in the middle of an automation after I realized I didn't add it yet. So valid point there.
I tried re-using code in Webcore by making generic pistons I would send data to from others, but it just isn't like writing you own code and being able to call a shared method whenever you need it.
Yes, I put writing your own apps over Webcore, but this was for those who do not write their own code.
I am a SmartThings convert as well and started my webcore addiction there. I transitioned to HE because SmartThings gave up on webcore. I use webcore about 80% of the time. I don't know groovy. I wish I did. I use RM for quick, easy coding. But the workhorse of my smart home is webcore. On average I have 150 pistons operational on HE. I do use Basic Rules and Room Lighting as well.
I probably would not bother to rewrite either at that point. I saved all my pistons to a local file from SmartThings, and then imported them into Webcore on Hubitat (then a user app). The logic was all there, but I did have to go in and fill in the devices again which took some time.
I too am a SmartThings refugee who left 4 years ago, joined the Hubitat community and never looked back. When I left ST I had various Webcore pistons that controlled my automations. If I remember correctly, at that time, Webcore in Hubitat was a community app and was not a built-in app. I made a conscious effort to learn Rule Machine and convert all the Webcore pistons over to Rule Machine. I am glad I did. I like the idea of using the apps native to the platform.
Would I go through all the trouble today if I left ST now that Webcore is a native app? I don't know. I do know that all my automations run seamlessly, Presently all my automations are in either Rule Machine, Basic Rules, or Room Lighting.
I had a great webcore mentor on SmartThings...WCmore. When I transitioned to HE, I was surprised to see that the webcore community was crazy helpful and robust. I never looked back.
Yeah, I knew Java already so Groovy was an easy transition, coding wise, but most of what I had to learn were the Hub objects and methods, event subscriptions, and scheduling to be able to do really do anything. The developer pages are pretty good references for that though. Type casting and time calculations can be a pain to code as well compared to using apps. You really have to like programming and put some time in to go the Groovy coding route.
I was 100% Webcore for quite a while, but even now writing my own apps, I still use Webcore for some things I don't want to bother with writing into an app, like battery checks. It is also a great sandbox for working out some logic and proving it works, and I may just use a piston for a while before I get around to writing its function into one my apps.
Not any more. I used WC in Smartthings, and continued after I migrated to HE. When WC became a built-in app, I tried to migrate and it was a disaster. Duplicate pistons, wierd error messages, lack of official guidance, globals didn't migrate, ... The experience was so frustrating that I had a "resistance is futile" moment, bit the bullet and implemented the pistons in RM and deleted the then-corrupted instances of WC.
Don't get me wrong, I like WC. As a programmer I like most aspects of the UI and I really like the freeform ability to create expressions.
One thing I don't like about WC is that it treats the command names of every HE device capability as reserved and predefined, regardless of whether any given device actually implements that capability. That made it impossible to interact with one of my own drivers. Nevertheless, if the migration experience hadn't been so awful I'd still be using WC.
One thing I really don't care for is that there are now two different versions of WC. Why? Either it's built-in or a user app, Confusing, and unnecessary IMO. But I don't get a real warm and fuzzy from Hubitat when it comes to the built-in version. It's rarely mentioned in the release notes, support never comments on issues, and I have no idea why they bothered in the first place. Either bring it into the fold and support it, or leave it as a user-app. And you still need the cloud editor for the built-in version, which is completely at odds with the "everything local" nature of HE. Seriously? I'd think that the C8-Pro would have enough processing power to host the editor locally.
Having to pre-select which devices are visible to a piston is also a pain, and IMO is an indication that there's really no deep integration between HE and the "built-in" version of WC.
I really don't like RM but spending days or weeks moving everything from RM back to WC isn't going to buy me anything at this point. I do miss it though.
You can install webcore’s web interface on a local Apache (or other web) server on your network… and disconnect webcore from the cloud completely. The cloud thing didn’t bother me too much - the ads did!
Webcore is great - so glad it exists. I used rule machine and basic rules for simple automations when I first started on HE, but I use webcore for any advanced automation.