The house check¶
jev.house_check looks for things in the house that are probably wrong and opens a
Repairs card for each one. Each card gives you a choice. You can ignore it, snooze it
for 30 days or, for a light, switch or fan that is on, turn it off.
What it checks¶
| Check | Finds | Costs |
|---|---|---|
| Unavailable | An entity that was unavailable for all of the last 7 days | Nothing |
| Low battery | A battery sensor below 10 %, or a battery binary sensor that is on | Nothing |
| Looks wrong | A state that Jev thinks someone would want to fix now | One request |
The first two checks read Home Assistant and the recorder. They do not call TypeSafe.
The unavailable check reads the recorder for the whole week, so a device that dropped
off for an hour yesterday does not get a card. The recorder keeps 10 days unless you
changed purge_keep_days, so the week fits.
The third check sends one request for the whole house. It describes each entity that you exposed to Assist and that Jev can control, up to 150: its name, its kind, its area, its state and how many minutes that state has been unchanged, together with the day and the time. It then asks one yes/no question for each entity: "Is its state a mistake that someone in the house would want to fix now, given the time and the rest of the house?" A card opens when the answer is 0.8 or more. Scenes and scripts are in the description but are not asked about, because their state cannot be left wrong.
Run it¶
| Field | Default | Meaning |
|---|---|---|
use_jev |
true |
Off runs only the two checks that cost nothing |
config_entry |
Which API key to ask with. Only needed when you set up more than one |
It returns the findings:
findings:
- kind: unavailable
name: Garden sensors
entity_ids: [sensor.garden_temperature, sensor.garden_humidity, sensor.garden_soil]
state: unavailable
value: "7"
- kind: looks_wrong
name: Porch light
entity_ids: [light.porch]
state: "on"
value: "0.91"
value is the number of days for an unavailable card, the level for a battery card and
the probability for a card that looks wrong.
To run it once a week, go to Settings, Devices & services, Jev, Configure, then Check the house once a week. It then runs at 10:00 on the first morning that is 7 or more days after the last full check. If that run cannot reach Jev, for example because the daily budget is spent, the two free checks still open their cards, and one more card says why the Jev check did not run.
The cards¶
An integration that loses its device or its server makes every one of its entities unavailable. So the unavailable entities of one integration share one card, and that card names the integration, gives the count and shows three of the entities as examples. On one test instance, 518 unavailable entities made 5 cards, and 438 of those entities came from one integration. An entity that no integration owns, such as one from YAML, gets a card of its own.
| Choice | What it does |
|---|---|
| Ignore | Never report the entities on this card again |
| Snooze | Report them again after 30 days |
| Turn off | Turn the entity off, and keep its state so you can undo it |
Turn off is only on a card for a single light, switch or fan that is on. The house check never changes a lock, a cover, a climate entity or a valve, because a change that nobody watches can let someone in or let a pipe freeze.
Ignore and snooze apply to the entities that were on the card when you chose. An entity of the same integration that becomes unavailable later gets a new card.
A card closes by itself when the next run that checks for it no longer finds it. A run without Jev leaves the cards that only Jev can find open. The cards stay after a restart. When you remove the Jev entry, its cards go with it.
Undo a turn-off¶
| Field | Default | Meaning |
|---|---|---|
entity_id |
all | Only these. Empty puts back everything the house check turned off |
config_entry |
Which API key it was. Only needed when you set up more than one |
The action puts back the state the entity had before, brightness included,
and returns the entities it restored as restored.
What it costs¶
A run without Jev costs nothing. A run with Jev is one request. On a test instance with 6 entities exposed to Assist, of which 2 were asked about, it cost 773 input tokens. See Measurements.