[Released] Rule Machine 3.0


Did you upgrade to the latest release? Open each action with Fade and save it again.


Yes, I’ll give it another try now.


Same results.

app:12122019-05-04 05:59:52.260 amerrorgroovy.lang.GroovyRuntimeException: Ambiguous method overloading for method java.lang.Integer#div. Cannot resolve which method to invoke for [null] due to overlapping prototypes between: [class java.lang.Character] [class java.lang.Number] (appButtonHandler)

app:12122019-05-04 05:59:52.201 aminfoAction: Fade Garage Door Lights, Front Door Lights down to 50 over 15 minutes with 10 seconds interval

app:7632019-05-04 05:59:49.844 aminfoGathering Latest Structure Data (Last Updated: 119 seconds ago) | Gathering Latest Device Data (Last Updated: 60 seconds ago)


I had to make a couple changes then save the results but they all seem to work now.

I’ll wait on the sunrise fade rule until the next release is out, rather than redo it all.


Hi @bravenel
I updated to the latest hotfix today,, and I noticed that some of my rules have stopped working. All are RM 3.0.
If I go into the rule and hit 'Update rule', 'run rule' and then done, they now work OK.
Is there something amiss here after an update/hub reboot with RM3.0?
The first one I noticed was a very simple one.
Turn on light when door opens. off when closes.
The contact sensor was reporting open/close ok in the events but the rule did not run.


I don't know. I had one that stopped working also. There is nothing particular about this update that would explain that.


All of my rules that subscribed to contact sensors, GVs, and Motion Sensors stopped working and were throwing a bunch errors. I had to open and "update rule" to get them all working again. Was very strange....

PS at least this one wasn't "just me"! :wink:


@bravenel, I had two rules that did not run after the latest update. Simple True/False rule based on doors unlocked between two times.

I edited the rule and clicked Done but the True statement would never run. I rebooted my hub and it started working. I modified the between times for the rule for it to go through its cycle for testing purposes and they worked as intended. Fingers crossed, the rule fires tonight. Appears something went bonkers on the update.

I also noticed I had an error thrown during the rule execution but I did not save it. No errors showing after a reboot.



I'm getting this error for one that isn't working.
app:42892019-05-04 19:44:40.853 errorgroovy.lang.MissingPropertyException: No such property: key for class: java.lang.Boolean (allHandler)
When I update, run and save the rule with no changes then the error does not appear.


That's exactly the error I was getting last night that I referred to my post above. Thanks @bobbles. I had to reboot my hub to get it to clear. It would not clear if I updated and ran the rule.


Something strange definitely went on after the last update.
2 of my mode settings have 'disappeared for one of my rules.



What happens when you drill into that rule? Are they there?


I have a kind of complex question. If you have a delay inside of a conditional action, will that delay be canceled by the truth change of the conditional action, or the rule itself or both? Let me provide an example. A simple rule has the following.

If Condition X
If True:
    Delay #1  - 1 minute w/cancel on truth change
    Action A 
    Action B
    If Condition  Y
         Delay #2  - 5 minutes w/cancel on truth change
         Action C
If False
    Action D

Now, we all know that delay #1 will be canceled if Condition X changes to false while the timer is running. However, what about delay #2? Will delay #2 be canceled only if Condition Y changes to false? Or only if condition X changes to false? Or will it cancel if either changes to false? I'm trying to set something up now to test but before I did I wanted to see if anyone knew or if anyone had any predictions.

It appears at least from a preliminary test that the action only changes if Condition Y changes to False. So, even if the overall condition X changes to false, you will still end up getting the delayed action of C, possibly after Action D has already fired.

Also, follow-up question, conditional actions can only have one condition? I thought it was almost like having a nested rule but it appears that there can only be one condition for the conditional action. Is this correct or am I just not seeing how to add a second condition?

Also, seeing that a nested conditional action within a trigger is not working as expected.


I'm afraid not. I had to do a new action and delete the one as shown.
I have other similar rules and these were OK.
Very strange.


'Cancel on truth change' is derived from the rule-truth changing, not on any condition in an action. I guess you have already discovered this.

Correct, these are not rules, but simple conditions.

Not sure what you mean by "nested conditional". What you showed were three independent IF-THEN conditions. Also, don't put a + on a positive number, just the number itself.


Took the + out and still didn't work.


What didn't work? You didn't say above, just that it doesn't work as expected.

What did you mean by "nested"?


If the term nested is what's bothering you, I won't use it.

None of the actions happened after the trigger occurred. Also clicking on Run This Trigger results in no actions taking place.


Can you show the logs for the trigger? It should show when the conditional evaluates.

[app:2578]2019-05-04 05:36:47.361 pm [error]()java.lang.ClassCastException: null (allHandler)

[app:2578]2019-05-04 05:36:47.346 pm [info]()Action: Adjust: Desk Hue Strip by -1

[app:2578]2019-05-04 05:36:47.336 pm [info]()IF-THEN (Condition [Desk Hue Strip](on) is on TRUE)

[app:2578]2019-05-04 05:36:47.309 pm [info]()Condition [Desk Hue Strip](on) is on TRUE

[app:2578]2019-05-04 05:36:47.166 pm [info]()LED Recovery: Lighting Notifications switch off

And adding a fade time doesn't help either. Still gives the same java error.