A bit of an odd thought but I have used this in one piston and I had the choice of setting a virtual device state without creating an event. It's labelled "Emulate set switch" in the task dropdown. It sets the Alarm virtual device to Off but doesn't seem to trigger any pistons attached to the Alarm device as it's not "Turn Off".
My use case now it that when I reboot my hub I go through an extensive System Start piston.
I have 2 virtual presence devices that are not always correct at boot as I'm using multiple devices real devices to operate on a single virtual presence device; they need syncing.
I want to set them to their correct state but if I do I trigger other pistons that think someone or arriving or leaving the house all while the system is still booting.
Is there a way to set a device state as "arrived/departed" but not have it create an event?
An attribute value is set by the driver with the sendEvent() method. There is no way a driver can update an attribute without sending the event.
It is not Webcore sending the event, it is the virtual driver, after you called the command method in the driver to set the attribute.
The pistons that react to those virtual presence sensors changing are what needs the fix. Those automations could be set to only run if the hub uptime is more than 60 seconds or something. Webcore can get uptime from you installing the community Information Driver, which has an attribute for hub uptime seconds (that must be enabled in the Information Driver preferences).
Yeah, I knew it really wasn't WC's fault.
But I do like the uptime suggestion.
I only use the System Start event and never thought of limiting the pistons to a Hub state from Hub Info.
Thanks!