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.
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: