I am a simple man - feature request

Guys, I want to accomplish a very, very, very simple thing:

  • I want to push a button and a few lamps will turn on.

Now, I'm past the ranting stage. z-wave is what it is and that's it. I've already cried all I had to cry, and now it's time to actually try to do something constructive.

What is happening currently:

  • I created a "basic rule" type of rule. push button on remote, and set to turn on 18 relays ( connected to lamps ) and turn on 5 window blinds.
  • I created another basic rule. held button on remote, set set to turn off the exact same devices.

When I press the button all the lamps should turn on and the blinds should open. When I hold the button all the lights should turn off and the blinds should close. I told you, I am a simple guy with simple needs.

It doesn't work. It never turns on or off everything. Sometimes 90% sometimes 95%.
It is not a communication problem. If after the rule runs I go to the dashboard, the state of the devices is correct, for instance, I pressed to turn on, then the ones that did turn on are on and the ones that didn't are shown as off. I then turn them on individually on the dashboard and it works perfectly. So it's not a communication problem or a status update problem.

Feature request:

  • add a feature to the "basic rule" engine that looks at the current state before the rule is run, desired end state set by the rule and current state after the rule has run, and tries to resend the commands to the devices whose state is not the desired state.
    Essentially, the rule would run until all the devices are in the desired state or until a timeout or number or runs has been reached.

I'm really begging for this. please!!!!

it's an Hubitat C-7 with the latest 2.9.246 firmware and all the devices are on the compatibility list

I would suggest that turning on/off 18 relays simultaneously is the issue.
Too much chatter on the mesh with messages getting lost. (Just my opinion and could be completely wrong).
I have a button that I press to turn off a series of lights when we go to bed.
I have split things into groups of 2/3/4 lights with a delay between each group.
I think you may have to do this to get your desired result.
Certainly worth a try to see if this is the issue.

Summary

7 Likes

Hi bobbles,

many thanks for your reply! I mean it. I'm already balding due to male alopecia and pulling my hair in despair at this is not helping the situation.

Yes, you are right. I have tried to do three "splits". The simple rule starts with turn on 10 lights, then waits 6 seconds, then turns 8 lights, then waits 6 seconds and finally turns on the five blinds.
With this setup I get the above 90 to 95% of it works. If I made it in one single go, it would be like 70 or 80%.
I haven't tried to split even more because I think its a very ugly hack to do, and I thought that it makes all the sense for the rule to actually try to figure out if it worked and if not, to fix what haven't worked.

You can create a group of all of the lights. When setting up the group, Enable on/off optimization and Enable metering to see if that helps.

On/off optimization will only send OFF command if device is ON and metering staggers the OFF commands by whatever delay you set. 50-100 milliseconds should be sufficient.

12 Likes

This is not going to help with doing this on RM, but it can be done using webCoRE.
In the following test piston the devices that are turned on are captured into a variable and then the devices within the variable are turned off.
Is this what you are after? Maybe it can be done in RM but I'm afraid I don't know how to do it.

Summary

Or what @stephen_nutt has said above.

1 Like

I've just tried the groups and scenes app and putting my 'gone to bed' devices in it, they all turn off OK.
Nice one @stephen_nutt. How did this pass me by. :man_shrugging:

4 Likes

I really just want to click a button to turn on everything and hold it to turn off.

It's a building with two small open floors ( there is no "floor" on second floor. ) one floor has 20 lights ( each pair of two lights attached to a dual fibaro or aeotec relay ) another floor has 8 lights attached to 8 aeotec dimmers and 5 blinds connected to single fibaro relays.
The hubitat C-7 is within 30m of any of these devices, most of them are actually closer and on the z-wave properties page most of the devices are directly connected. A couple go trough another device and none go trough more than one. Anyway, it's really not a lack of connection as the devices when actuated on the dashboard work perfectly.

So you put them all in one list?

Yes. I turned on about half of the ones shown in my screenshot above (10) and they all turned off when the button was pushed.

1 Like

Ok,
I will wait for a dev to come in and comment about the feature request.
The reality is that none of these work arounds don't seem to be deterministic. And I really want the damm things to really turn on and off as requested by the rule, so I think that the feature request of having the rule check the end state and apply corrections if needed is really needed to have some sort of guarantee that it happens.

@JasonJoel did this using Node Red but I don't know if the function of that could be translated into a Hubitat Rule. Maybe he can comment.

2 Likes

Really, if something is failing at the protocol level (the hub is sending the message, but not all messages are making it to devices) the only recourse you really have is to test for that, and try the command again.

I've long thought that there should be a "verify command" option in hubitat rules and RM that just magically takes care of this behind the scenes, but there isn't so you would have to do it in an RM rule with logic.

I have to do similar things on other hubs as well, for the record. If I blast out a bunch of zwave commands at the exact same time in home assistant, sometimes they don't all make it there either. Just is what it is.

3 Likes

I'm really just a simple man with a simple wish. I'm not a programmer, I'm just a user. Hopefully this will be integrated on the rules engine.

Never hurts to ask / put in the request. :slight_smile:

1 Like

@stephen_nutt's method is probably your best bet. You can still use your simple rule, you just turn on and off the group light instead of each individual light. Once you make the group it becomes a device. I had to do this as I do the same thing at night.

I originally had a goodnight routine that turned off all my lights. I had each individual light listed in a RM rule. Like you saw, it mostly worked. Occasionally a light would be left on. When they added metering to the group setup I decided to give that a try. I set metering to 100ms and my lights off routine has been rock solid since.

2 Likes

Yes, using groups + metering can definitely help if the issue is packets getting lost. Good point.

3 Likes

This is with what you are presented when you open www.hubitat.com

Experience

Home Automation that is
Local, Reliable, Fast, and Private.

This is Home Automation As It Was Meant To Be

Hubitat is changing how people live with smart devices by enabling them to Elevate Their Environment.

By combining the advantages of local automation processing with cloud IoT connectivity, Hubitat's innovative Hubitat Elevation hub ensures personal data privacy and is more reliable and responsive than competitive cloud-based solutions. Hubitat Elevation is compatible with popular home automation devices, comes with a variety of built-in apps, and has an active user community to share ideas, insights and solutions.

I just hope they make good on their word. Rules checking if they ran ok and fixing what didn't seems to be a good way to go.

But you read that, and then use a "simple rule" and it doesn't work, and it kind of makes you think about the world we live on. Damm, here I am, ranting again.

The user community part is defensively true thou! :slight_smile:

+1 for the group feature. i have groups that cover individual floors, and for all my devices. it is able to trigger a combination of zigbee and zwave+ devices with no issues

2 Likes