HomeHabit 26.0: Users and widgets

Lots of new things in this release addressing some of the popular community requests. Enjoy!

Premium Plus

Premium Plus subscription launch price will be $3 per month starting on February 14 for the new subscribers. As announced previously, existing subscribers are locked-in to the original launch price and will not see any change.

Users

This release adds the concept of users to the app. That makes it possible to assign different permissions for dashboards and auto-lock configuration.

A user can be either an admin or a regular user. Admin users have unrestricted access to all functionality regardless of permissions. Therefore, at least one admin user is required to keep using user permissions or auto-locking configuration.

Each user has its own passcode (4-8 digits). Passcodes are used to identify the user, therefore, passcode must be unique for each user.

User limits

Basic - 2 users
Premium - unlimited
Premium Plus - unlimited

Lock configuration

Settings screen has new Admin section with options to either lock configuration manually or set an auto-lock timeout [1, 2].
When configuration is locked only existing dashboards and Support screen are accessible. It is not possible to edit or add dashboard in locked mode.
Only admin users can unlock configuration after it’s locked. Therefore, at least one admin user is required to use this feature. If all admin users are removed, configuration will be automatically unlocked.

Note

Remote Admin is not restricted even when configuration is locked. This is planned as a later enhancement.

Dashboard permissions

It is now possible to assign different dashboard permission level to users [1, 2]. To use this feature, User Permissions need to be enabled in Settings (see above).

There are 4 permissions levels for a dashboard:

  • View, Edit & Control
  • View & Control
  • View only
  • None

Dashboard permissions work on allow-basis, i.e. every permission specifies what a particular user can do. If there is no permission defined for a user, and dashboard permission are configured - that user would not be able to access that dashboard. Dashboard permissions apply only to non-admin users.

It also possible to deny access for a specific users (or all users) by assigning None permission.
When no permissions defined for a dashboard, it has unrestricted access, as before.

A badge for currently active user is shown in the dashboard navigation menu, until user permissions timeout.

Example 1

Allow only admins to access the dashboard:

  • User: All users; Permission: None

Dashboard will be restricted by default

Example 2

All users can view the dashboard, Guest user can also control it:

  • User: Guest; Permission: View & Control
  • User: All users; Permission: View only

Dashboard will be shown as usual, but on any interaction passcode will be requested

Widget active color and effect

All switch-like widgets (lock, switch, security, sensor, room switch elements) have added support for custom active color and new active effects. Active color is set to default to a theme active color.

Active effect is replacing urgency property. As always, the goal is to have zero breaking changes between updates, so widgets that previously had high urgency will be updated to a custom color with breathe active affect.

New active effects:

  • Breathe
  • Pulse
  • Spin (great for fans!)

Countdown widget

As the name suggests, this widget counts down to a set time. Time is set using an item binding, so it is possible to update countdown time without changing widget config.

Widget layout auto-adjusts number of shown time elements based on its size.

Note

Only some integrations like Home Assistant or OpenHAB provide items that represent Date & Time that can be used in Countdown widget.

Rule actions

A few new rule actions to show/hide camera feed or select dashboard.
Rules is still an experimental features available through HomeHabit Labs.

Show/hide camera

Action show-camera needs a binding to an item with video URI (the same that would be used in Camera widget).

{
  ...
  "rules": {
    "camera-show": {
      "name": "Show camera",
      "condition": {
        "item": "integration.motion#motion-sensor.state.motion",
        "operator": "eq",
        "value": "on"
      },
      "action": {
        "type": "show-camera",
        "binding": "integration.camera#camera.video-uri.video-uri"
      },
      "enabled": true
    },
    "camera-hide": {
      "name": "Hide camera",
      "condition": {
        "item": "integration.motion#motion-sensor.state.motion",
        "operator": "eq",
        "value": "off"
      },
      "action": {
        "type": "hide-camera"
      },
      "enabled": true
    }
  },
  ...
}

Select dashboard

Action select-dashboard needs dashboard ID as its value, which can be found as a key in dashboards JSON object in Remote Admin editor.

{
  ...
  "rules": {
    "select-dashboard": {
      "name": "Select dashboard (HASS)",
      "condition": {
        "item": "integration.selector#selector.state",
        "operator": "eq",
        "value": "hass"
      },
      "action": {
        "type": "select-dashboard",
        "value": "1ua161liuvy941owgls6fu2dfw"
      },
      "enabled": true
    }
  },
  ...
}

Other changes

  • Feature: Support for input_datetime component from HASS (only when both date and time available)
  • Fix: iCalendar integration fails when event is missing an end date
  • Fix: Intermittent issues re-authenticating Awair, Netatmo, Withings integrations

HomeHabit 26.0
Available starting February 5, 2022

Rule with RTSP camera, show & hide with binding to item state is good damn cool feature!
Nice work @igor !

1 Like

Show/hide camera is working well for one stream.
How can I define rules for multiple camera streams?
I have items ‘MotionDetectionCam1’ and ‘MotionDetectionCam2’ and if one of these items received command ON I would like to show the right stream. e.g. ‘StreamCam1’ or ‘StreamCam1’.

Thanks

@sucharz You would just need to define multiple rules with show-camera action type. For example:

{
  ...
  "rules": {
    "camera-show-1": {
      "name": "Show camera 1",
      "condition": {
        "item": "[MotionDetectionCam1]",
        "operator": "eq",
        "value": "on"
      },
      "action": {
        "type": "show-camera",
        "binding": "[StreamCam1]"
      },
      "enabled": true
    },
    "camera-show-2": {
      "name": "Show camera 2",
      "condition": {
        "item": "[MotionDetectionCam2]",
        "operator": "eq",
        "value": "on"
      },
      "action": {
        "type": "show-camera",
        "binding": "[StreamCam2]"
      },
      "enabled": true
    }
  },
  ...
}
1 Like

Do rules support multiple conditions?

@radiocolin No. Rules are specifically kept simple, since platform automations already have complex flows.

Thanks.

I am finding that it will not allow me to use select-dashboard in the config editor.

@radiocolin Can you confirm that you have the latest version 26.0?

Aha, once again. Should have learned the first time :)!

This is great. Now I have a special alarm panel that appears only when the alarm enters pending mode, exactly what I wanted.

1 Like

Great! Happy to hear that this feature is useful in your setup.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.