{"id":20548597,"url":"https://github.com/benleb/ad-ench","last_synced_at":"2025-04-14T10:53:04.388Z","repository":{"id":48471250,"uuid":"211308341","full_name":"benleb/ad-ench","owner":"benleb","description":"👩‍⚕️🔋 AppDaemon entity check app. Currently supports battery level, unknown/unavailable states, stale entities","archived":false,"fork":false,"pushed_at":"2021-07-24T05:43:36.000Z","size":121,"stargazers_count":36,"open_issues_count":0,"forks_count":5,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-03-28T00:07:11.093Z","etag":null,"topics":["app","appdaemon","appdaemon-apps","assistant-entities","battery-levels","ench","entity-check","hacs","home-assistant","python","stale-entities"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/benleb.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"github":"benleb"}},"created_at":"2019-09-27T11:54:14.000Z","updated_at":"2024-08-11T08:02:21.000Z","dependencies_parsed_at":"2022-08-24T06:20:37.297Z","dependency_job_id":null,"html_url":"https://github.com/benleb/ad-ench","commit_stats":null,"previous_names":[],"tags_count":25,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benleb%2Fad-ench","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benleb%2Fad-ench/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benleb%2Fad-ench/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/benleb%2Fad-ench/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/benleb","download_url":"https://codeload.github.com/benleb/ad-ench/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248868794,"owners_count":21174755,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["app","appdaemon","appdaemon-apps","assistant-entities","battery-levels","ench","entity-check","hacs","home-assistant","python","stale-entities"],"created_at":"2024-11-16T02:13:58.601Z","updated_at":"2025-04-14T10:53:04.367Z","avatar_url":"https://github.com/benleb.png","language":"Python","funding_links":["https://github.com/sponsors/benleb"],"categories":[],"sub_categories":[],"readme":"# EnCh - Entity Checker\n\n[![hacs_badge](https://img.shields.io/badge/HACS-Default-orange.svg)](https://github.com/custom-components/hacs)\n\n*EnCh is an [AppDaemon](https://github.com/home-assistant/appdaemon) app which can check Home Assistant entities and sends a notification if desired. EnCh also provides a Home Assistant sensor entity, showing the currently detected entities.*\n\n## Supported Checks\n\n* low **battery levels** of various devices\n* proper entity state, e.g. **not `unknown` or `unavailable`**\n* **stale entites** (not updated for a specified time)\n\n## Installation\n\n* Python \u003e=3.8 required!\n\nUse [HACS](https://github.com/custom-components/hacs) or [download](https://github.com/benleb/ad-ench/releases) the `ench` directory from inside the `apps` directory here to your local `apps` directory, then add the configuration to enable the `ench` module.\n\n## App configuration\n\nHere's an exemplary configuration for this app (to be added to AppDaemon's configuration file, typically `apps.yaml`). Adjust the values as you wish.\n\n```yaml\nench:\n  module: ench\n  class: EnCh\n  notify: \"notify.mobile_app_user\"\n  show_friendly_name: False\n  exclude:\n    - sensor.out_of_order\n    - binary_sensor.always_unavailable\n  battery:\n    interval_min: 180\n    min_level: 20\n  unavailable:\n    interval_min: 60\n    notify: \"notify.mobile_app_otheruser\"\n  stale:\n    max_stale_min: 15\n    entities:\n      - binary_sensor.cube\n      - sensor.humidity_stove\n      - device_tracker.boatymcboatface\n```\n\n### Configuration\n\n#### General\n\nkey | optional | type | default | description\n-- | -- | -- | -- | --\n`module` | False | string | ench | The module name of the app.\n`class` | False | string | EnCh | The name of the python class.\n`notify` | True | string | | The Home Assistant service used for notification\n`show_friendly_name` | True | bool | True | Use friendly name in logs/notifications instead of entity id.\n`initial_delay_secs` | True | int | 120 | Time to wait before first checks. This grace-period is necessary to give slow devices and integrations in Home Assistant a chance to become \"available\".\n`hass_sensor` | True | string | `sensor.ench_entities` | Name of the sensor entity created in Home Assistant which provides the number of unavailable/stale/low-battery entities\n`exclude` | True | list | | Excluded entities. Supports wildcard/patterns via [fnmatch](https://docs.python.org/3/library/fnmatch.html)\n`battery` | True | map | | Set to enable low battery check\n`unavailable` | True | map | | Set to enable unavailable state check\n`stale` | True | map | | Set to enable stale state/entity check\n\n#### Battery configuration\n\nkey | optional | type | default | description\n-- | -- | -- | -- | --\n`min_level` | True | integer | 20 | Minimum battery level a entity should have\n`interval_min` | True | integer | 180 | Minutes between checks\n`notify` | True | string | | The Home Assistant service used for notification (Takes precedence over the `notify` setting configured in *General* section)\n\n#### Unavailable/unknown state configuration\n\nkey | optional | type | default | description\n-- | -- | -- | -- | --\n`interval_min` | True | integer | 60 | Minutes between checks\n`max_unavailable_min` | True | integer | 0 | If an entity is unvailable longer than this time, a notification is triggered\n`notify` | True | string | | The Home Assistant service used for notification (Takes precedence over the `notify` setting configured in *General* section)\n\n#### Stale entity/state configuration\n\nkey | optional | type | default | description\n-- | -- | -- | -- | --\n`interval_min` | True | integer | 15 | Minutes between checks (if this is longer than `max_stale_min`, we use that instead)\n`max_stale_min` | True | integer | 60 | If an entity is not updated during this time, a notification is triggered\n`entities` | True | List | | If a list of entities is given, just these will be checked. Omitting this option checks all entities.\n`notify` | True | string | | The Home Assistant service used for notification (Takes precedence over the `notify` setting configured in *General* section)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbenleb%2Fad-ench","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbenleb%2Fad-ench","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbenleb%2Fad-ench/lists"}