[Alpha] Looking for testers for integrated suite of apps - Scheduling, contact, Pico, humidity, and more

Looking for testers for an integrated suite of apps. Each one is a separate child-app, and each one is optional, so even if you're interested in only one/some component(s), that's fine. The suite will be re-released (for free) once it's stable.

Anyone NOT interested in testing but are interested in a stable release, I'd appreciate a shout-out, so I can gauge interest. :slight_smile:

Apps include:

  • Scheduling
  • Pico remotes/switches
  • Presence (home/away, not room occupancy)
  • Contact sensors
  • Humidity (specifically for bathroom fans, but it should be flexible)
  • Xiaomi MagicCubes

TL:DR: The center-piece is dynamic scheduling of devices, with a single interface to do everything from turning something on at a set time, to creating a scheduled "default" level (and color temperature, hue, saturation), to having levels dynamically change from a start time until stop time. In turn, it allows Picos, contact sensors, etc., to set their own levels, and override the schedule(s), resume schedule(s), or themselves be over-ridden by schedule(s) - as you define.

For instance, let's say you have a porch light set to come on at sunset 100% brightness with yellow color, which also gradually dims to 25% at 9pm. A contact sensor and/or Pico could be used to "turn on" the light, which would set it to 100% white (or whatever you define), and turning "off" would instead have it resume the brightness and color, wherever they might be at in the cycle. But, if the light doesn't have an active schedule (eg during the daytime), then it would in fact turn off. This app not only allows setting the dynamic schedule, but you can select "Resume schedule" for the Pico button and/or contact sensor (instead of "Turn off"), and the app finds any schedule(s) attached to any of the device(s) being turned on, or "resumed" (where multiple devices can be assigned to a schedule, and multiple to a Pico, without regard to which may or may not overlap).

Each app has a deceptively simple but very flexible single-page setup screen, sharing the same look and feel. They dynamically present options only as needed, packing in a lot of options without being over-whelmed, including tool-tips, error messages, and warnings to make it as user-friendly as possible. /TL:DR

Scheduling features:

  • At the beginning of a schedule, optionally can turn a light (or other switch) on, off, or toggle it (if on turn off, if off turn on)
  • Set beginning brightness, color temp, hue, and/or saturation
  • Change mode at beginning of schedule
  • Schedule ending time is optional
  • At the end of a schedule, optionally can turn a light (or other switch) on, off, or toggle it (if on turn off, if off turn on)
  • If setting different beginning and end brightness settings, it will adjust for the duration of the schedule
  • Light will be automatically adjusted to scheduled brightness or color settings any time they're turned on, including with dynamic levels
  • That includes if a light is turned on outside of the app (e.g. a dashboard or the Hubitat app)
  • Allows times to be based on sunrise/sunset, with positive or negative offsets (in minutes)
  • Schedules can wrap around midnight
  • Allows selecting days of the week for schedule
  • Supports multiple devices for each schedule
  • Schedules can be layered (for instance, having a separate schedule for light level and light color)
  • Optionally only run during specific Mode (eg only if Hubitat is set to "Away")
  • Allows single-click disabling of any schedules (eg disable morning-routine schedule if taking the next day off)
  • User friendly dynamic setup with all of these options in one single-screen with help-tips and error messages.

Pico features:

  • Supports turning on, turning off, toggling, dimming, brightening, and resuming schedule(s)
  • Supports multi-Picos per setup
  • Allows multiple devices to be assigned to a Pico
  • Allows multiple devices to be assigned to different buttons
  • Allows any button to perform any function
  • Supports push+hold progressive dimming/brightening for Hue lights
  • Uses natural dimming/brightening increments (uses relative percentage rather than absolute increments)
  • Dimming/brightening increments can be set for each Pico, for both push and push+hold
  • Optionally set push+hold functions independently of push
  • Integrates with scheduling
  • Allows single-click disabling of any Pico (i.e. to prevent children from using it)
  • User friendly show-only-what-you-need setup with all of these options in one single-screen with help-tips and error messages
  • Supports 2-, 4-, and 5-button models without displaying unnecessary options

Presence features:

  • Presence devices are set-once-and-forget through master app
  • Allows separate arrival and departure settings
  • With lights, supports turning on, turning off, or toggling
  • Supports locking and unlocking locks
  • Supports changing Modes
  • Supports voice messages, with Google Assistant relay support (eg "[Person] has arrived")
  • Allows selecting individuals for arrival or departure
  • Allows selecting whether routine applies all or any individuals of select groups arrival/departure
  • Allows selecting whether routine applies when anyone or everyone else is already present/not present
  • Speech device selection is a set-once-and-forget through master app
  • Optionally allows an independent schedule for presence routine to be active (eg specific setup only applies during the day)
  • Optional schedule supports sunrise/sunset, with offsets, and days of the week
  • Optionally limit it (specific setup) to triggering only with specific Mode
  • Allows single-click disabling of any Presence routine
  • Needs to be rebuilt, but mostly user friendly show-only-what-you-need setup with all of these options in one single-screen with help-tips and error messages

Contact sensor features:

  • Supports turning on, turning off, toggling, and resuming schedule(s)
  • Supports locking and unlocking locks
  • Supports multiple contact sensors per setup, and/or multiple devices per contact sensor
  • Supports changing Modes
  • Supports setting brightness, color temperature, hue and/or saturation
  • Independent open and close settings
  • Allows setting independent delay (in seconds) for performing open or close actions
  • Opening resets closing delay; closing does not reset opening delay (but may make that an option)
  • Integrates with scheduling; can dynamically override and resume existing schedules
  • Optionally schedule contact sensor (eg specific setup only applies at night)
  • Optional schedule supports sunrise/sunset, with offsets, and days of the week
  • Optionally limit it (specific setup) to triggering only with specific Mode
  • Allows single-click disabling of any Contact routine
  • User friendly show-only-what-you-need setup with all of these options in one single-screen with help-tips and error messages

Humidity sensor features:

  • Independent settings for turning on and turning off
  • Supports using average of multiple humidity sensors
  • Supports comparing to a "control" device
  • Supports using absolute levels in temperature and/or humidity (eg turn on if 80% or greater humidity)
  • Supports using absolute changes in temperature and/or humidity (eg humidity increases at least 25 points in 5 minutes, like from 50% to 75%, or 75% to 100%)
  • Supports using relative changes in temperature and/or humidity (eg humidity increases at least 25% in 5 minutes, like from 50% to 63%, or from 75% to 94%)
  • Supports using any or all of these (eg when setting multiple criteria, using "AND" or "OR")
  • Supports setting number of minutes to turn off (in conjunction with temp/humidity, or as an override)
  • Allows single-click disabling of any humidity device
  • Mostly user friendly show-only-what-you-need setup with all of these options in one single-screen with help-tips and error messages

Xiaomi MagicCube features:

  • Supports all functions of the MagicCubes - flip, turn over, rotate clockwise, rotate counter-clockwise, slide, knock, and shake
  • Supports turning on, turning off, toggling, dim/brighten, and resuming schedule(s)
  • Supports multiple MagicCubes per setup
  • Supports multiple devices per action
  • Supports mapping different devices assigned different actions (eg flipping turns on one light, while toggling another)
  • Uses natural dimming/brightening increments (uses relative percentage rather than absolute increments)
  • Dimming/brightening increments can be set for each MagicCube
  • Integrates with scheduling
  • Mostly user friendly show-only-what-you-need setup with all of these options in one single-screen with help-tips and error messages

Testing all of the features is becoming a bit overwhelming, especially given my limited device ecosystem. With additional testers, I want to:

  • Obviously, debug what I have
  • With feedback, make the apps as user friendly as possible, including adding more/better help-tips and "idiot proof" error messages
  • Identify new features to add
  • Expand overriding and resuming schedules [done] Add independent schedules and default levels to Picos and MagicCubes (and schedules to humidity) (currently only supported by contact sensors)
  • Allow manually overriding schedules through Picos or MagicCubes. For instance, if a light is scheduled to dim from 100% to 50% from 5pm to 10pm, and a Pico is used to dim it to 60% at 7:30... Currently, the schedule would blithely adjust it back to the level it was at (75%), but it should wait 9pm to dim it any further. And if someone brightens a light that is being dimmed, the schedule should disable until the next run-time.
  • Fix SMS and push alerts in presence and contact sensors (broken with Hubitat's migration from native SMS support)
  • Add holidays to scheduling, with option to either not or only run on holidays (as input into the Master app and applied to all child apps)
  • Add support for controlling sound/media devices with MagicCubes and Picos
  • Improve performance of schedules to allow more frequent updates. It currently cycles every 20 seconds, regardless of the schedule. I want to make it smart enough to update more frequently with shorter schedules, while not running needlessly often
  • Add smooth progressive brightening/dimming for non-Hue lights
  • Support other button devices, either by adapting Pico app or creating a new app, supporting indefinite number of buttons
  • Expand speech alerts to support other TTS devices than Google Assistant
  • Complete a washer/dryer alert system, with scheduling and presence-awareness (with definable repeating alerts)
  • Build an app for Google Assistant to automatically sing Happy Birthday, with time-of-day scheduling and presence of multiple people (and expand said app to include Alexa)
  • Build Aquarium/terrarium lighting app integrating live weather for overcast dimming, cloud effects, lightning effects, and tornadoes (with integration to the scheduling app, so "overcast" would be layered onto scheduled levels)
  • Build an Alert app as a pseudo-security system, supporting contact sensors, Picos, motion sensors, etc. It would allow setting multiple triggers to prevent false alarms, and multiple tiers (SMS/notification, and sound alarm)
  • Long term, build a motion sensor app

Here's the Github, but please be aware it is "alpha". The majority of the functionality should work the majority of the time. Only with your help can I get the majority of the functionality working all of the time.

Screenshot of a fairly typical completed schedule setup:

1 Like

Sounds interesting, I don't mind having a play around and test a few things. I have a mix of different devices so should be able to test most of the items you have mentioned.

That's awesome. I just posted the latest version hopefully works halfway well. Just install "Master" (I can rename it if you'd like), and any of the child apps you're interested in except "Alert". Honestly not sure what that is, but not ready to remove it yet :laughing: Part of my goal is having them easy and self-explanatory, so.... Lemme know if you have any problems or questions.

edit: As I mentioned, Washer-Dryer is completely experimental. It should work, but I've only done a little unit testing on it - no regression testing.

I've updated it such that the scheduled levels should apply regardless of how the device is turned on. Next I will add custom levels to Picos, while allowing them to override scheduled levels, and resume schedules or turn off if none.

All apps have been updated.

just going to install now.

if you add the below to a definition, it will save you having to copy and paste the code each time. you can then just use import and it will grab the update for you in HE.

importUrl: "https://raw.githubusercontent.com/roguetech2/hubitat/master/Master.groovy"

1 Like

Done. Thanks!

I'm getting a 500 error in the Pico setup, and having a devil of a time figuring out why. I'm not able to replicate it. Mostly a heads up, but if you get a 500, and can replicate, it'd be most useful.

Hope you like my apps :smiley:

I believe it needs to be the full string ie for contact you have

importUrl: "https://raw.githubusercontent.com/roguetech2/hubitat/master/Master - Humidity.groovy"

and it should be

importUrl: https://raw.githubusercontent.com/roguetech2/hubitat/master/Master%20-%20Contact.groovy

If you mean it needs %20 instead of spaces, fixed.

1 Like

The scheduler app only appears once you have selected unhide presence app. The same if you hide the presence it will also hide the scheduler again.

Pushed an update for Pico 500 error. Line 157 needs to be "displayPushMultiplierOption()".

I will start having a proper play around tomorrow just set up a basic scheduler, but it looks like a very well thought out and intuitive app, it flowed very well :+1:

Fixed presence app hiding the scheduler.

1 Like

Really hope you like it. Lot of work invested in it :slight_smile:

got some duplicate events from this.

Logs

Device events

@BorrisTheCat I'm at work atm, so all that I can do is look through the code. "[DR] Bookshelf (Top) V" was turned on by the schedule?

It may be line 352 of Master, "multiDevice.each{" and line 362 (matching close bracket) needs to be removed. Lines 230 and 233 "waitStateChange("on",device,childLabel)" should also be removed. But I don't see how that'd duplicate setting level. I'll test when I get home and let you know when I post to github.

Thanks! (Good catch!)

1 Like

Just giving you an update... I've been hitting it pretty hard the last few days. I've found more bugs than I care to admit, including (finally!) where it's setting the level a second time. Also added some new features to the Pico, contact and MagicCube. But still haven't had time to actually test any of it. Hopefully by the end of the weekend, if not sooner, I'll be able to do at least some basic preliminary testing so I don't waste your time on low-level stuff.

1 Like

No worries I have been just to busy this week to do any more testing on this. Once I get chance I'll grab the latest and start working though it :slight_smile:

Updated everything. I'm going to work on the UI, and try to keep the logic stable for a few days. You will need to re-initialize the setups, and just FYI, some of the logging was broken before and I've added more logs. You can adjust the log level near the top of each app.

maybe to much :smile:

still got a double event in the events tab

a full on and off

correct to the device though