[RELEASE] Switch Dashboard - "Turn your HomeSeer and Inovelli dimmers into mini-dashboards"

Heya,

This parent-child app pair allows easy linking of Hubitat sensor states to LEDs of your HomeSeer HS-WD200+ dimmers and Inovelli Gen2 Red Series switches or dimmers. This is why I got excited to buy those dimmers but it was never easy to use them so I wrote a real app to solve this once and for all:

You can link states such as contact sensors open/closed, motion sensors active/inactive, locks locked/unlocked, and more, to LEDs of various colors on your switch/dimmer. Several sensors can share an LED such that the same LED can show yellow if a door is unlocked and red if open.

Conditions
Each set of dimmers can have one or more "Conditions" that link sensor states to a specific LED index and color. Conditions also have explicit priorities that determine which condition gets to set an LED if there is a conflict. This allows the lock+door example above to always show door open as red, and only show yellow for unlocked if the door is closed.

LED Sharing
One Dashboard app can control more than one Dimmer such that several switches and dimmers can show the same status. However you can also install many Dashboard apps if you want two dimmers to show different states.

LED Indexing
HomeSeer HS-WD200+ dimmer supports seven individually controllable LEDs while the Inovelli Gen2 Red Series switch/dimmer can only be controlled as one. You can have both types of dimmers share the same dashboard but the Inovelli will only display LED index 1. A dashboard with an important notification can use index 1 such that both types can show that condition and use index 2 through 7 for less urgent conditions that are only displayed on HomeSeers. Also note that as of May 12 2020, the Inovelli doesn't support LED saturation in notifications so the color 'White' cannot be set. Bug their support to add full HSB (hue, satuation, brightness) capabilities in their setIndicator() command. See post at:

Device and Driver Requirements
This app does not control the LEDs directly and needs specific device drivers to do its work. Specifically it looks for the stock WD200+ driver's setStatusLED() function and the official Inovelli driver's setIndicator() function to identify compatible switch dashboards. There are other drivers out there and if you have them installed, your mileage may vary. File a bug report and either I or the driver developer can look into it. You will need the 2020-05-19 Inovelli driver or newer for things to work.

Alternate Inovelli Red Series Notifications
The Inovelli Gen2 Red Series Switch and Dimmer have the ability to display 256 hues and various effects such as Chase, Pulse, Slow Blink, and many more I'm sure will be added in the future. The app supports showing the common denominator 7 colors and plain blink but this optional UI section can be used to activate the full range on these devices. If activated, this effect is used instead of the basic Color selection on Inovelli switches. This means that a Condition that wins on LED #1 may thus show Red on HomeSeers and a chasing pink on Inovelli switches. In a house with only Inovellis that won't matter but it may be confusing. The UI can be used directly to select the effect and color, OR you can paste in an explicit Configuration Value computed at: Inovelli Toolbox by Nathan Fiscus. Note that the duration there is ignored and is instead forced to infinity since this app should turn off the LED when the condition is not active, not an automatic duration.

Sensor Types and Virtual Switches
The current version supports a variety of sensors but there are many missing. Make a bug-report or feature request on GitHub and I'll try to add it. However, there is this workaround: You can use a Virtual Switch in an automation such as RuleMachine with any level of complexity and sensor inputs, and link a Condition.

Background and Use Case
The use case and inspiration for this app is my house with nine major doors and several ground level windows to the outside. I wanted to know at glance if the doors were closed and/or locked since the neighborhood has seen an increase in burglaries and we has some punk tug at the alleyway door 6am last week. The first version was a RuleMachine instance but it was not pretty write or maintain, but more importantly I wanted to learn more Hubitat and Groovy.

Source Code Notes
I've complained previously on the Hubitat forums about how hard it it to get into app and driver development. In these apps I've taken the time write comments that I would have appreciated when reading and learning from other apps. I still wish that Hubitat would spend time write better API docs but until then, I hope that this commented code will help someone else get up to speed faster.

Import App Links
https://github.com/MFornander/Hubitat/blob/master/apps/SwitchDashboard/SwitchDashboard-parent.groovy

https://github.com/MFornander/Hubitat/blob/master/apps/SwitchDashboard/SwitchDashboard-child.groovy

Note that this is my first Hubitat App and first time using Groovy so don't trust it with anything important.

20 Likes
  • 1.0.0 (2020-05-14) - Initial release
  • 1.1.0 (2020-05-15) - Add Inovelli Configuration Value
  • 1.2.0 (2020-05-16) - Add blink option and update version checking
  • 1.3.0 (2020-05-17) - Add better errors when selecting unusable switches as dashboards
  • 1.3.1 (2020-05-17) - Fix duration bug on Inovelli devices
  • 1.4.0 (2020-05-19) - Optimize LED updates by only sending changes from last state
  • 1.5.0 (2020-05-20) - Unify Inovelli effects (needs recent 2020-05-19 Inovelli driver
  • 1.5.1 (2020-05-20) - Fix Inovelli switch translation logic bug
  • 1.5.2 (2020-05-21) - Fix typo in switch translation logic
  • 1.6.0 (2020-05-22) - Add full settings UI to specify Inovelli effects and colors
  • 1.7.0 (2020-05-23) - Add valve sensor type, set debug to false by default, update Inovelli info text on brightness

This looks really nice -- I especially appreciate the comments (like you I spend a lot of time looking at other groovy code to try to figure out what one needs to do)

I have all Inovelli v2 switches & would love to be able to specify notification type (chase/pulse/blink) with colors. I have a few RM rules which govern LED operation right now, but would love to take some responsibility away from RM. See below & lmk if any of these options can be added in. Nice start!!

1 Like

I second that! :slight_smile: I use the notification types a lot (ex.: pulse/chase red when garage door open, blink the same color when there is a problem.)

@MFornander, do you know if those notification types can be passed to the Inovelli switches?

Thanks for noticing! I spent an extra day or two to add comments and simplify the code, but not too much since Groovy has some crazy shortcuts.

I'll look into it right away! I had a few ideas where to take it next but I'd like for users to guide where to take it. It's a bit of a balance in the UI since HomeSeer has 7 LEDs, 7 colors, and one effect (blink)... while Inovelli has one LED, 256 colors, and many effects.

Could you open up a feature request (enhancement issue) on GitHub so I can start tracking requests and bugs? Just reference your post here in the feature request since it was a nice write-up!

Yeah I had to reverse engineer the Inovelli notification value to mimic the HomeSeer colors. I think I'll add a dedicated "Inovelli advanced section" that would override the simple color selection if used and if Inovelli switches are selected. Let me see what I can brew up. Trying to keep the UI from blowing up.

1 Like

New v1.10 pushed just now :slight_smile:

2 Likes

Wow! What a great and simple solution! I really like that I will be able to get rid of a bunch of rules. Love the almost infinit notification options offered by this app. Thank you so much for taking the time to develop it.

Like others, I love the great comments in the code!

Some feedback/requests:

  • Is there some way to add the awesome Inovelli toolbox link directly in the settings description (same screen where the result is input)? That would make it slightly more intuitive to use, I think.

  • I noticed that the importUrl is not working properly when trying to update the app via an import (the field doesn’t populate). Others like @markus have been able to make it work, and looking at their code, I think the following has to be added on line 1 (Sample from his Tasmota for Hubitat Manager):
    // IMPORT URL: https://raw.githubusercontent.com/markus-li/Hubitat/release/apps/expanded/tasmota-device-manager-expanded.groovy

Again, thank you for this!

1 Like

This is great, I have a bunch of rules I'm sure like you did controlling mine. But this would simplify it!

I'm not seeing where to set "blink" for the Homeseer? I see the configuration value parameter but that doesn't seem to be working. As an example for a door open I use (x,1,1) x for location and 1 for red and 1 for blink.

For some reason, the program is not recognizing my Inovelli V2 switches or dimmers. I initially thought it may be because I was using Inovelli's driver rather than the Hubitat supplied ones, so I changed them over but got the same issue.

I get the following error in my logs (repeated 7 times each):

app:1569 2020-05-15 11:01:08.803 error Kitchen Center Light is not a usable HomeSeer or Inovelli device (ID:590, Name:'Inovelli Dimmer Red Series LZW31-SN' Type:'Inovelli Z-Wave Smart Scene Dimmer')
app:1569 2020-05-15 11:01:08.781 error Den Computer Light is not a usable HomeSeer or Inovelli device (ID:34, Name:'inovelli Red Series' Type:'Inovelli Z-Wave Smart Scene Switch S2')

Any ideas?

I'm using the Inovelli one too since that's the one providing the setNotification function. What version of the Inovelli driver did you use? It needs a daily recent one since that function was added around March this year.

Open up an Enhancement Request on GirHub and I'll add it :slight_smile:

1 Like

Good ideas. Open up a bug report and Enhancement Request on GitHub and I'll fix it. The import URL never populated from code for me. It just kept my previous paste but I'll see if I fat-fingered something.

I'm also adding this to Hubatat Package Manager the next few days to make updating easier.

2 Likes

Both of the referenced drivers are not the official Inovelli drivers
Install:

https://github.com/InovelliUSA/Hubitat/tree/master/Drivers/inovelli-dimmer-red-series-lzw31-sn.src

One I got from Inovelli in November I think... Confirmed. They were both from end of 2019.

Will do!

I'll got the latest ones and now it works. Thanks!

2 Likes

Are "Pull requests" in github Enhancement Requests?

https://github.com/MFornander/Hubitat/pulls

Great idea!!!

No head over to https://github.com/MFornander/Hubitat/issues and label the issue "bug" or "enhancement". Easier to keep track of stuff, than to scan through this thread. Thanks!

1 Like

@MFornander excellent app. I've been wanting to use the Innovelli LED bars on my two Dimmers since the day I got them. I just never spent the time to mess with figuring it out.

5 minutes, 2 imports, 1 Add app, and a couple of selections in a drop-down, and now when I open the garage door, the LEDs turn red. Fantastic.

Great work! Thanks!

S.

1 Like