webCoRE vs RM?

The only time I prefer WebCoRE is for doing:

  • complex variable math that would require too many steps in RM;
  • populating a variable with the response from an HTTP GET request, something I never succeeded in doing with RM;
  • parsing JSON payloads, which WC handles natively and neatly;
  • sharing automation workflows easily outside of my own hub/HE environment.
3 Likes

RM does do this now through the export file, the only issue is we can't share like a txt doc here so you can't share it within the forum.

1 Like

I will echo those sentiments. I've used WC for years on ST before coming to HE.

I still use both RM and WC. Different UI's and my preference is still WC but I am getting used to RM. I do prefer WC for HTTP calls due to the response handling and RM doesn't (or at least didn't) have options for adding headers (authorization, contentType, etc) to HTTP post.

2 Likes

Very passionate topic...

I am a avid user of Webcore have been using it on my old ST platform and for the last 2 years on HE.. All my automation is Webcore driven.. However, I'm so intrigued by the great comments on RM.. I have a rather simple question :

Understanding that Webcore is now resident in HE, the same as RM.. I assume Webcore remains written in Groovy.. Is there a device behavioural or performance difference between the 2 ?

I don't think anyone has objectively measured anything, but theoretically, most things should be faster with webCoRE on HE because all custom SmartThings code (like webCoRE) runs in the cloud, where as all code runs locally on Hubitat. So, at least those delays, no matter how slight under good conditions, should be gone.

It certainly is possible to write a bunch of pistons (or rules or apps or any kind) that will overwhelm your hub, and since Hubitat is reasonably-powered hardware intended for your own use and not a bunch of giant "cloud" servers, this might be "easier" to do (though I wouldn't be surprised if some of ST's well known cloud problems were a result of hosting arbitrary user code, and perhaps the reason they're changing how their entire development model works). A smaller, purpose-built app is likely to be more efficient in some sense, but for most uses, this shouldn't matter much.

It's also possible to do something on either platform, local or not, that will overwhelm your Zigbee or Z-Wave meshes. Neither of these problems are particular to webCoRE or RM, and they're a bit different from concerns about the apps themselves. But the general idea is that both give you enough power to make doing questionable things possible and perhaps even easy, so...be careful not to do those things. :slight_smile: (Looping forever every few seconds when you really just want to subscribe to/wait for an event instead, refreshing your entire Z-Wave network all day long, or a number of other questionable things you might be able to think of...but again, I wouldn't be worried about normal automations.)

1 Like

Would webCoRE be suitable for use with an IP camera? That would be something I could use that I can't do with Hubitat and Rule machine now.

In what way?

WebCoRE is an automation execution engine, like rule machine.

So either one of them could, for example, trigger an automation based on an http call from an IP camera, or send an http get/post to an IP camera.

2 Likes

In what way? In being able to view an IP camera on a dashboard tile for example. Even if it were periodic snapshots for lower bandwidth as opposed to streaming video.

It would be really nice to be able to view one of my IP cameras if HSM is triggered while I am away. Possibly, even just email snapshots from the webcams to me if HSM is triggered so I can see what is happening.

I'm partial to webcore because it's what I mostly used. I was always put off by rule machine. It just seemed cumbersome to click back and forth between pages.

But once I got the hang of it, it's really not that bad.

I still use them both today.

Then no, as an automation app (like Rule Machine but with a different user interface), WebCoRE can’t help with that, AFAIK.

But there are other ways to view IP camera snapshots or video feeds on a dashboard.

2 Likes

I know some people use Blue Iris, but that is not an option as I run Linux. I am currently using Motion to record to a hard drive. I want to be able to view remotely in at least near real time if something has triggered an alarm. I can do that by using a VPN, but I hav echanged some things so I need to test if it is still working.

On a side note you can use the maker api to trigger things in Hubitat from your DVR/NVR if you have the option to do http requests based on triggers.

I run Blueiris and have all that setup, but no experience with any of the linux based NVR's.

I'm not very experienced in Rule Machine, as I just switched to Hubitat, but I've been a webCoRE user with ST for awhile. It's really powerful. Maybe you can do this in Rule Machine, too (I don't know) but I love webCoRE for how it makes use of local and global variables, can evaluate expression strings, etc. You can also have multiple discrete blocks of logic within the same piston, so for example you could include 4x separate if/then statements within the same piston vs. needing 4x pistons (or Rules). You can also easily disable portions logical statements if you want to eliminate an action without actually deleting it.

Again all things you can do within RM now. I think the use of WebCore when HE started really helped push development of RM. Still love WC but happy that I learnt RM aswell.

One thing you can do in WC is you create the script and it automatically created the triggers where as in RM you need to think of what you want it to get triggered by. However actually in WebCore on HE you also need to be aware of that. You shouldn't have essentially 5 rules on one piston, on ST it didn't matter that a piston like that was inefficient, as it ran in the cloud. On HE it runs locally so you want it to run as efficient as possible. So don't worry about creating more than one rule or piston if it makes sense to do so. Your hub and your home will work best with quick short sharp tasks rather than something it has to hang around on.

Having said that I have some crazy rules! But they are thought about and run like a dream.

2 Likes

That is good advice. I did prefer grouping similar actions for a set of devices within the same piston from an organizational standpoint. But that's a good tip about not having bloated pistons on HE. Fortunately most of mine are pretty simple. That's awesome that Rule Machine is just as capable. One thing I did notice is you can run a Rule Machine rule as a webCoRE action, or use the execution of a Rule Machine rule as a webCoRE trigger... so they can be used together!

1 Like

I was a longtime webCoRE user on ST before moving to Hubitat 1.5 years ago. I've been using RM since then however last fall out of nowhere all of my rules that depend on Sunset/Sunrise scheduling in their "Required Expression" began to go haywire. Some days they would function as expected, while other days they would not. It was very frustrated and broke a great deal of the automation I have for my home. In all cases these were long functioning rules that suddenly broke. I tried to get help on here but never got resolution. I have since decided to move them to webCoRE but before doing that I thought of one way I wanted to try to save myself time.

I noticed in webCoRE I could choose "Location" as my device and for action choose "Execute Rule". So I attempted to experiment with failed results. I am hoping someone can explain where I have gone wrong or what I am missing. My thought was to remove the required expression from my "Rules" and then create 2 pistons:

  1. Executes at Sunset and turns on the rules that I want to run after Sunset
  2. Executes at Sunrise and turns those rules back off.

I figured if I went that route I could leave everything else as is in my rules such as trigger, actions, etc and save me from moving them all over. However my pistons are not functioning as I thought they would.

I created the piston and set my device to "Location" and "Do" to "Execute Rule". I selected the relevant rules and set the "Argument" to "Value" and "Stop". However it does not appear to do anything. I can trigger the piston to run and then check my "Rules" in Hubitat and none of them change to stopped. Why is this?

EDIT: I just tested with "Pause" instead of "Stop" and that did work. However I prefer to "Stop" the rules as I believe that prevents it from using any resources while stopped but paused does not prevent that. Am I correct? I also tested the "Resume" command and it worked as well so it appears it is only the "Stop" command not functioning. Is this a known issue?

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.