Well done!
I believe this approach, to creating automations, will prove to be more intuitive for many users (notably first-timers).
I’d like to share with you a screenshot or two of home automation software that was first conceived two decades ago. I’ve been using it (Premise) for over a decade. In fairness to volunteer developers of Home Assistant, this was a commercial product (created by a small team of ex-Microsoft developers and professional systems integrators) that sold for about US$1000 back in the day (and then released for free, in 2006, when it was discontinued).
Shown below is a tree-view of areas (buildings, floors, rooms, etc) and the objects they contain (“Devices” in Home Assistant parlance). I wish to create an automation for FoyerLight
so I right-click it, select New > Script
and it presents me with a list of properties I can use for the trigger:
Effectively, this is what Device Automations will offer for Home Assistant, namely guidance for selecting appropriate triggers.
Returning to my example, if I select the PowerState
property, the tree-view now shows that FoyerLight
has a script called OnChangePowerState
.
I then proceed to write code for the automation (using the built-in editor with syntax highlighting, code-completion, and debugger). This is where Home Assistant’s Automation Editor has an advantage because it provides additional guidance for creating the balance of the automation (conditions and actions).
You may have noticed the dialog-box has two tabs: Bindable and All. I won’t get into the details of ‘bindable’ and just summarize it as the most relevant properties for that particular object (a light). If I wanted to trigger on some other property of FoyerLight
, I’d select the ‘All’ tab and see this:
I can create an automation that triggers when there’s a change in the object’s name, icon, group membership, etc.
One more example, this one is for buttons:
Thanks to you, Home Assistant will have an edge here because, in Premise, you have to refer to the documentation to know the values of ButtonState
(hold, release, etc).
I really think this new approach will be a game-changer. Keep up the great work!