CoRE and Piston Rules Engine, first design steps

Can you add this to github please so we don’t lose it along the way? Thank you

I purchased 5 pics! No more license issues. Which pic do we want?


Ha ha ha, cool. I guess, start a poll? :slight_smile:


It’s missing the piston: a little worm coming out… And the war flags, and the rockets, and… worm wars!!!

UPDATE: Hey @Jonpho, I just realized, that’s an apple… CoRE :smiley: :smiley: :smiley:


Here it is. Vote away!

  • Piston A
  • Piston B
  • Piston C
  • Very CoRE
  • Very Bored

0 voters

1 Like

This sounds like something similar to Mike Maxwell’s new app if I understand correctly.

1 Like

Well perhaps only to the extent it relates to garage door functionality…
Unless you’re referring to the uDTH device hack…
But in any case I’m not building a generalized rules engine.


I am not aware of what he is building, but like he said, is it the uDTH app?

v0.0.04e.20160527 - Alpha test version - Implemented saveAttribute, introduced “aggregated” commands, these only run once, even when used on a list of devices

Made progress in saving an attribute to a variable. Pretty much complete, but not fully tested. Possible aggregation methods:

Why aggregate? Because you may get the value of one attribute of multiple devices and store it into a single variable. Aggregation is a translation mechanism between a list of values and one single value.

First - just gets the value for the first device in the list
Last - just gets the value for the last device in the list (don’t ask why)
Min - gets the minimum of all devices - I hope Groovy can compare false < true - haven’t tested that yet
Avg - gets the average for numbers/decimals. For all others, it gets the one value that occurs most in the list of devices
Max - gets the maximum value of all devices
Sum - gets the sum of all devices, if number/decimals, or gets the concatenation otherwise
Count - self explanatory, equals the device count
Boolean And - converts all values to boolean and applies AND between them
Boolean Or - converts all values to boolean and applies OR between them
Boolean True Count - converts all values to boolean and returns the number of true values
Boolean False Count - converts all values to boolean and returns the number of false values

Any aggregation method I missed?

PS coming up next: Load attribute from variable

Thank you


uDTH is a virtual device type, that has some attribute translation capabilities that would normally be provided by a smart app in conjunction with one or more virtual devices.

1 Like

I have a shutterstock account. Try one of these. CoRE Images


@chickwebb THANK YOU :wink:


I just changed the device handler on my power meter and the error went away in the simulation.

I’m going to test it in a minute and I’ll let you know.

1 Like

What condition was it trying to evaluate? Any clue?

It looks like it was trying to evaluate the status of the pump either being above or below the set threshold.

1 Like

I’m glad this is being discussed. I don’t like having to follow which apps are new, which ones have updates, which ones are cool and etc and etc.

All I want is one app to rule them all.

There just needs to be ONE app that supports just about everything. That’s what was/is nice about Rule Machine.

1 Like

If I want to do stuff that uses waits when a contact closes and then cancel those waits when the contact opens, what’s the best type of piston to use?

1 Like

What about:

Median - sorts the values gets the middle value (or average of 2 middle values if value count is even)
All - TRUE if all values are equal (possibly duplicates Boolean And)

1 Like

Easiest is simple piston,

If contact is closed then wait, etc, cancel on piston state change

See the advanced options for each action, task cancellation policy.

You can also cancel tasks for a device via the Cancel Pending Tasks task

You can also override pending tasks from another action via the Action Override Scope.

1 Like