mirror of
https://github.com/Burningstone91/smart-home-setup.git
synced 2022-05-05 21:16:50 +03:00
Fix Household Tasks setup due to a breaking change. More details can be found here: https://github.com/custom-cards/check-button-card/issues/23
This commit is contained in:
27
README.md
27
README.md
@@ -3035,7 +3035,7 @@ I use the following automation to turn of the dehumidifier when the window in th
|
||||
|
||||
|
||||
## Household Tasks <a name="household-tasks" href="https://github.com/Burningstone91/smart-home-setup#household-tasks"></a>
|
||||
To keep track of the various tasks to be done around the house, I setup some sensors and automations to notify me and my wife about tasks that haven't been done for the predefined period. When one of us completed the task, he can push the "done" button in the automation. This will send a little "thank you" message to the person that did the task, clears the notification for the other person and sends a notification to the other person that the task has already been done. The sensor has an attribute that that tracks the user that marked the task as solved.
|
||||
To keep track of the various tasks to be done around the house, I setup some sensors and automations to notify me and my wife about tasks that haven't been done for the predefined period. When one of us completes the task, he can push the "done" button in the automation. This will send a little "thank you" message to the person that did the task, clears the notification for the other person and sends a notification to the other person that the task has already been done. The sensor has an attribute that that tracks the user that marked the task as solved.
|
||||
|
||||
<details><summary>Step-by-step Guide</summary>
|
||||
<p>
|
||||
@@ -3049,13 +3049,12 @@ The template requires [lovelace gen](https://github.com/thomasloven/hass-lovelac
|
||||
{% set entity = 'sensor.'+sensor_name %}
|
||||
|
||||
type: 'custom:button-card'
|
||||
name: {{name}}
|
||||
entity: {{entity}}
|
||||
name: {{name}}
|
||||
icon: {{icon}}
|
||||
label: >
|
||||
[[[ return variables.var.label ]]]
|
||||
show_label: true
|
||||
icon: >
|
||||
[[[ return variables.var.icon ]]]
|
||||
custom_fields:
|
||||
status: >
|
||||
[[[ return '<span style="display: inline-block; color: white; background: '+variables.var.color+'; padding: 0 5px; border-radius: 5px;">'+variables.var.days_left+'</span>' ]]]
|
||||
@@ -3084,8 +3083,9 @@ variables:
|
||||
let result = {};
|
||||
result.label = "Aufgabe erstellen";
|
||||
result.color = colors["disabled"];
|
||||
result.icon = "mdi:alert-plus";
|
||||
result.days_left = "";
|
||||
let date;
|
||||
let seconds;
|
||||
let timestamp;
|
||||
let time;
|
||||
let minutes;
|
||||
@@ -3094,14 +3094,15 @@ variables:
|
||||
|
||||
if (states['{{entity}}']) {
|
||||
if (entity.state != 'unknown') {
|
||||
timestamp = parseInt(entity.state);
|
||||
date = entity.state;
|
||||
seconds = new Date(date);
|
||||
timestamp = (seconds.getTime()) / 1000;
|
||||
time = (Date.now() / 1000) - timestamp;
|
||||
minutes = Math.floor(((time % 3600) / 60));
|
||||
hours = Math.floor(((time % 86400) / 3600));
|
||||
days = Math.floor((time / 86400));
|
||||
|
||||
result.color = colors["success"];
|
||||
result.icon = "mdi:checkbox-marked-circle-outline";
|
||||
|
||||
// LAST TRIGGER
|
||||
if (time < 60)
|
||||
@@ -3119,13 +3120,11 @@ variables:
|
||||
result.days_left = Math.round(((timestamp + ({{cycle_days|int}}*86400)) - (Date.now()/1000)) / 86400);
|
||||
if (result.days_left <= {{warning_before|int}}) {
|
||||
result.color = colors["warning"];
|
||||
result.icon = "mdi:clock-alert";
|
||||
}
|
||||
if (result.days_left <= 0) {
|
||||
result.color = colors["error"];
|
||||
result.icon = "mdi:alert-circle"
|
||||
}
|
||||
result.days_left = result.days_left + (result.days_left == 1 ? " Tag verbleibt" : " Tage verbleiben");
|
||||
result.days_left = result.days_left + (result.days_left == 1 ? " Tag übrig" : " Tage übrig");
|
||||
|
||||
} else {
|
||||
result.label = "Klicken zum Erledigen";
|
||||
@@ -3141,7 +3140,7 @@ tap_action:
|
||||
if (!states['{{entity}}'])
|
||||
return 'Entität {{entity}} wird erstellt.'
|
||||
else
|
||||
return 'Möchten sie diese Aufgabe wirklich als erledigt markieren?'
|
||||
return '{{name}} wirklich als erledigt markieren?'
|
||||
]]]
|
||||
action: call-service
|
||||
service: mqtt.publish
|
||||
@@ -3155,10 +3154,13 @@ tap_action:
|
||||
]]]
|
||||
payload: >
|
||||
[[[
|
||||
var timestamp = Date.now();
|
||||
var time = new Date(timestamp).toISOString();
|
||||
|
||||
if (!states['{{entity}}'])
|
||||
return '{ "name": "{{sensor_name}}", "state_topic": "homeassistant/sensor/{{sensor_name}}/state", "value_template": "\{\{ value_json.state \}\}", "device_class": "timestamp", "json_attributes_topic": "homeassistant/sensor/{{sensor_name}}/state", "json_attributes_template": "\{\{ value_json.attributes | tojson \}\}" }'
|
||||
else
|
||||
return '{ "state":' + (Date.now() / 1000) + ', "attributes": { "cycle_days": {{cycle_days}}, "warning_before": {{warning_before}} } }'
|
||||
return '{ "state":"' + time + '", "attributes": { "cycle_days": {{cycle_days}}, "warning_before": {{warning_before}} } }'
|
||||
]]]
|
||||
retain: true
|
||||
|
||||
@@ -3172,6 +3174,7 @@ cards:
|
||||
- ../../templates/household_task.yaml
|
||||
- name: Change Bed Sheets
|
||||
sensor_name: chore_change_bed_sheets
|
||||
icon: mdi:bed
|
||||
warning_before: 1
|
||||
cycle_days: 14
|
||||
```
|
||||
|
||||
@@ -3,13 +3,12 @@
|
||||
{% set entity = 'sensor.'+sensor_name %}
|
||||
|
||||
type: 'custom:button-card'
|
||||
name: {{name}}
|
||||
entity: {{entity}}
|
||||
name: {{name}}
|
||||
icon: {{icon}}
|
||||
label: >
|
||||
[[[ return variables.var.label ]]]
|
||||
show_label: true
|
||||
icon: >
|
||||
[[[ return variables.var.icon ]]]
|
||||
custom_fields:
|
||||
status: >
|
||||
[[[ return '<span style="display: inline-block; color: white; background: '+variables.var.color+'; padding: 0 5px; border-radius: 5px;">'+variables.var.days_left+'</span>' ]]]
|
||||
@@ -38,8 +37,9 @@ variables:
|
||||
let result = {};
|
||||
result.label = "Aufgabe erstellen";
|
||||
result.color = colors["disabled"];
|
||||
result.icon = "mdi:alert-plus";
|
||||
result.days_left = "";
|
||||
let date;
|
||||
let seconds;
|
||||
let timestamp;
|
||||
let time;
|
||||
let minutes;
|
||||
@@ -48,14 +48,15 @@ variables:
|
||||
|
||||
if (states['{{entity}}']) {
|
||||
if (entity.state != 'unknown') {
|
||||
timestamp = parseInt(entity.state);
|
||||
date = entity.state;
|
||||
seconds = new Date(date);
|
||||
timestamp = (seconds.getTime()) / 1000;
|
||||
time = (Date.now() / 1000) - timestamp;
|
||||
minutes = Math.floor(((time % 3600) / 60));
|
||||
hours = Math.floor(((time % 86400) / 3600));
|
||||
days = Math.floor((time / 86400));
|
||||
|
||||
result.color = colors["success"];
|
||||
result.icon = "mdi:checkbox-marked-circle-outline";
|
||||
|
||||
// LAST TRIGGER
|
||||
if (time < 60)
|
||||
@@ -73,11 +74,9 @@ variables:
|
||||
result.days_left = Math.round(((timestamp + ({{cycle_days|int}}*86400)) - (Date.now()/1000)) / 86400);
|
||||
if (result.days_left <= {{warning_before|int}}) {
|
||||
result.color = colors["warning"];
|
||||
result.icon = "mdi:clock-alert";
|
||||
}
|
||||
if (result.days_left <= 0) {
|
||||
result.color = colors["error"];
|
||||
result.icon = "mdi:alert-circle"
|
||||
}
|
||||
result.days_left = result.days_left + (result.days_left == 1 ? " Tag übrig" : " Tage übrig");
|
||||
|
||||
@@ -109,9 +108,12 @@ tap_action:
|
||||
]]]
|
||||
payload: >
|
||||
[[[
|
||||
var timestamp = Date.now();
|
||||
var time = new Date(timestamp).toISOString();
|
||||
|
||||
if (!states['{{entity}}'])
|
||||
return '{ "name": "{{sensor_name}}", "state_topic": "homeassistant/sensor/{{sensor_name}}/state", "value_template": "\{\{ value_json.state \}\}", "device_class": "timestamp", "json_attributes_topic": "homeassistant/sensor/{{sensor_name}}/state", "json_attributes_template": "\{\{ value_json.attributes | tojson \}\}" }'
|
||||
else
|
||||
return '{ "state":' + (Date.now() / 1000) + ', "attributes": { "cycle_days": {{cycle_days}}, "warning_before": {{warning_before}} } }'
|
||||
return '{ "state":"' + time + '", "attributes": { "cycle_days": {{cycle_days}}, "warning_before": {{warning_before}} } }'
|
||||
]]]
|
||||
retain: true
|
||||
@@ -11,78 +11,91 @@
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
- !include ../../../base/includes/gap.yaml
|
||||
- type: 'custom:vertical-stack-in-card'
|
||||
- type: custom:stack-in-card
|
||||
mode: vertical
|
||||
cards:
|
||||
- !include
|
||||
- ../../templates/household_task.yaml
|
||||
- name: Abstauben
|
||||
sensor_name: chore_clean_dust
|
||||
icon: mdi:broom
|
||||
warning_before: 1
|
||||
cycle_days: 7
|
||||
- !include
|
||||
- ../../templates/household_task.yaml
|
||||
- name: Staubsaugen
|
||||
sensor_name: chore_vacuum_clean
|
||||
icon: mdi:vacuum-outline
|
||||
warning_before: 1
|
||||
cycle_days: 7
|
||||
- !include
|
||||
- ../../templates/household_task.yaml
|
||||
- name: Boden nass reinigen
|
||||
- name: Boden aufnehmen
|
||||
sensor_name: chore_clean_floor_wet
|
||||
icon: mdi:water-opacity
|
||||
warning_before: 1
|
||||
cycle_days: 30
|
||||
cycle_days: 14
|
||||
- !include
|
||||
- ../../templates/household_task.yaml
|
||||
- name: Boden einölen
|
||||
sensor_name: chore_oil_floor
|
||||
icon: mdi:oil
|
||||
warning_before: 5
|
||||
cycle_days: 180
|
||||
- !include
|
||||
- ../../templates/household_task.yaml
|
||||
- name: Fensterbänke reinigen
|
||||
sensor_name: chore_clean_window_frames
|
||||
icon: mdi:window-minimize
|
||||
warning_before: 2
|
||||
cycle_days: 30
|
||||
- !include
|
||||
- ../../templates/household_task.yaml
|
||||
- name: Fenster reinigen
|
||||
sensor_name: chore_clean_windows
|
||||
icon: mdi:window-closed-variant
|
||||
warning_before: 5
|
||||
cycle_days: 90
|
||||
- !include
|
||||
- ../../templates/household_task.yaml
|
||||
- name: Rollos reinigen
|
||||
sensor_name: chore_clean_covers
|
||||
icon: mdi:blinds
|
||||
warning_before: 2
|
||||
cycle_days: 90
|
||||
- !include
|
||||
- ../../templates/household_task.yaml
|
||||
- name: Vorhänge reinigen
|
||||
sensor_name: chore_clean_curtains
|
||||
icon: mdi:curtains
|
||||
warning_before: 5
|
||||
cycle_days: 365
|
||||
- !include
|
||||
- ../../templates/household_task.yaml
|
||||
- name: Entkalken
|
||||
sensor_name: chore_dechalk
|
||||
icon: mdi:water-outline
|
||||
warning_before: 1
|
||||
cycle_days: 7
|
||||
- !include
|
||||
- ../../templates/household_task.yaml
|
||||
- name: Möbel pflegen
|
||||
sensor_name: chore_clean_furniture
|
||||
icon: mdi:sofa-outline
|
||||
warning_before: 5
|
||||
cycle_days: 90
|
||||
- !include
|
||||
- ../../templates/household_task.yaml
|
||||
- name: Schränke reinigen
|
||||
sensor_name: chore_clean_cupboards
|
||||
icon: mdi:wardrobe
|
||||
warning_before: 1
|
||||
cycle_days: 365
|
||||
- !include
|
||||
- ../../templates/household_task.yaml
|
||||
- name: Briefkasten reinigen
|
||||
sensor_name: chore_clean_mailbox
|
||||
icon: mdi:mailbox-outline
|
||||
warning_before: 1
|
||||
cycle_days: 365
|
||||
- !include ../../../base/includes/gap.yaml
|
||||
@@ -96,72 +109,77 @@
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
- !include ../../../base/includes/gap.yaml
|
||||
- type: 'custom:vertical-stack-in-card'
|
||||
- type: custom:stack-in-card
|
||||
mode: vertical
|
||||
cards:
|
||||
- !include
|
||||
- ../../templates/household_task.yaml
|
||||
- name: Backofen reinigen
|
||||
sensor_name: chore_clean_oven
|
||||
icon: mdi:stove
|
||||
warning_before: 5
|
||||
cycle_days: 90
|
||||
- !include
|
||||
- ../../templates/household_task.yaml
|
||||
- name: Kühlschrank reinigen
|
||||
sensor_name: chore_clean_fridge
|
||||
icon: mdi:fridge-outline
|
||||
warning_before: 5
|
||||
cycle_days: 90
|
||||
- !include
|
||||
- ../../templates/household_task.yaml
|
||||
- name: Kühlschrank abtauen
|
||||
sensor_name: chore_defrost_fridge
|
||||
icon: mdi:snowflake-melt
|
||||
warning_before: 5
|
||||
cycle_days: 365
|
||||
- !include
|
||||
- ../../templates/household_task.yaml
|
||||
- name: Dampfabzug reinigen
|
||||
sensor_name: chore_clean_steam_exhaust
|
||||
icon: mdi:pot-steam-outline
|
||||
warning_before: 5
|
||||
cycle_days: 90
|
||||
- !include
|
||||
- ../../templates/household_task.yaml
|
||||
- name: Flaschen entsorgen
|
||||
sensor_name: chore_dispose_bottles
|
||||
icon: mdi:bottle-wine-outline
|
||||
warning_before: 5
|
||||
cycle_days: 30
|
||||
- !include
|
||||
- ../../templates/household_task.yaml
|
||||
- name: Geschirrspüler reinigen
|
||||
sensor_name: chore_clean_dishwasher
|
||||
icon: mdi:dishwasher
|
||||
warning_before: 1
|
||||
cycle_days: 30
|
||||
- !include
|
||||
- ../../templates/household_task.yaml
|
||||
- name: Kaffeemaschine reinigen
|
||||
sensor_name: chore_clean_coffe_machine
|
||||
icon: mdi:coffee-maker-outline
|
||||
warning_before: 1
|
||||
cycle_days: 30
|
||||
- !include
|
||||
- ../../templates/household_task.yaml
|
||||
- name: Lebensmittel prüfen
|
||||
sensor_name: chore_check_food_fridge
|
||||
icon: mdi:food-outline
|
||||
warning_before: 1
|
||||
cycle_days: 7
|
||||
- !include
|
||||
- ../../templates/household_task.yaml
|
||||
- name: Putzlappen wechseln
|
||||
sensor_name: chore_change_cloths
|
||||
warning_before: 1
|
||||
cycle_days: 7
|
||||
- !include
|
||||
- ../../templates/household_task.yaml
|
||||
- name: Türklinken reinigen
|
||||
sensor_name: chore_clean_door_handles
|
||||
icon: mdi:rectangle-outline
|
||||
warning_before: 1
|
||||
cycle_days: 7
|
||||
- !include
|
||||
- ../../templates/household_task.yaml
|
||||
- name: Türen abwaschen
|
||||
sensor_name: chore_clean_doors
|
||||
icon: mdi:door
|
||||
warning_before: 1
|
||||
cycle_days: 180
|
||||
- !include ../../../base/includes/gap.yaml
|
||||
@@ -175,43 +193,42 @@
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
- !include ../../../base/includes/gap.yaml
|
||||
- type: 'custom:vertical-stack-in-card'
|
||||
- type: custom:stack-in-card
|
||||
mode: vertical
|
||||
cards:
|
||||
|
||||
- !include
|
||||
- ../../templates/household_task.yaml
|
||||
- name: Toilette reinigen
|
||||
sensor_name: chore_clean_toilet
|
||||
icon: mdi:toilet
|
||||
warning_before: 1
|
||||
cycle_days: 7
|
||||
- !include
|
||||
- ../../templates/household_task.yaml
|
||||
- name: Handtücher wechseln
|
||||
sensor_name: chore_change_towels
|
||||
icon: mdi:rectangle-outline
|
||||
warning_before: 1
|
||||
cycle_days: 7
|
||||
- !include
|
||||
- ../../templates/household_task.yaml
|
||||
- name: Bad reinigen
|
||||
sensor_name: chore_clean_bath
|
||||
icon: mdi:shower
|
||||
warning_before: 1
|
||||
cycle_days: 14
|
||||
- !include
|
||||
- ../../templates/household_task.yaml
|
||||
- name: Spiegel reinigen
|
||||
sensor_name: chore_clean_mirror
|
||||
icon: mdi:mirror-rectangle
|
||||
warning_before: 1
|
||||
cycle_days: 14
|
||||
- !include
|
||||
- ../../templates/household_task.yaml
|
||||
- name: Luftfilter reinigen
|
||||
sensor_name: chore_clean_air_filter
|
||||
warning_before: 2
|
||||
cycle_days: 30
|
||||
- !include
|
||||
- ../../templates/household_task.yaml
|
||||
- name: Siphon reinigen
|
||||
sensor_name: chore_clean_siphon
|
||||
icon: mdi:pipe
|
||||
warning_before: 2
|
||||
cycle_days: 365
|
||||
- !include ../../../base/includes/gap.yaml
|
||||
@@ -225,24 +242,28 @@
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
- !include ../../../base/includes/gap.yaml
|
||||
- type: 'custom:vertical-stack-in-card'
|
||||
- type: custom:stack-in-card
|
||||
mode: vertical
|
||||
cards:
|
||||
- !include
|
||||
- ../../templates/household_task.yaml
|
||||
- name: Bettwäsche wechseln
|
||||
sensor_name: chore_change_bed_sheets
|
||||
icon: mdi:bed-king-outline
|
||||
warning_before: 1
|
||||
cycle_days: 14
|
||||
- !include
|
||||
- ../../templates/household_task.yaml
|
||||
- name: Matratze wenden
|
||||
sensor_name: chore_turn_mattress
|
||||
icon: mdi:bed
|
||||
warning_before: 2
|
||||
cycle_days: 30
|
||||
- !include
|
||||
- ../../templates/household_task.yaml
|
||||
- name: Kissen/Decken waschen
|
||||
sensor_name: chore_clean_pillow_bedsheets
|
||||
icon: mdi:washing-machine
|
||||
warning_before: 2
|
||||
cycle_days: 365
|
||||
- !include ../../../base/includes/gap.yaml
|
||||
@@ -256,18 +277,21 @@
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
- !include ../../../base/includes/gap.yaml
|
||||
- type: 'custom:vertical-stack-in-card'
|
||||
- type: custom:stack-in-card
|
||||
mode: vertical
|
||||
cards:
|
||||
- !include
|
||||
- ../../templates/household_task.yaml
|
||||
- name: Kleiderschrank reinigen
|
||||
sensor_name: chore_clean_wardrobe
|
||||
icon: mdi:wardrobe-outline
|
||||
warning_before: 1
|
||||
cycle_days: 180
|
||||
- !include
|
||||
- ../../templates/household_task.yaml
|
||||
- name: Kleider ausmisten
|
||||
sensor_name: chore_declutter_wardrobe
|
||||
icon: mdi:tshirt-crew-outline
|
||||
warning_before: 1
|
||||
cycle_days: 180
|
||||
- !include ../../../base/includes/gap.yaml
|
||||
@@ -281,24 +305,28 @@
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
- !include ../../../base/includes/gap.yaml
|
||||
- type: 'custom:vertical-stack-in-card'
|
||||
- type: custom:stack-in-card
|
||||
mode: vertical
|
||||
cards:
|
||||
- !include
|
||||
- ../../templates/household_task.yaml
|
||||
- name: Rasen mähen
|
||||
sensor_name: chore_mow_lawn
|
||||
icon: mdi:mower-bag
|
||||
warning_before: 1
|
||||
cycle_days: 7
|
||||
- !include
|
||||
- ../../templates/household_task.yaml
|
||||
- name: Grill reinigen
|
||||
sensor_name: chore_clean_grill
|
||||
icon: mdi:grill-outline
|
||||
warning_before: 1
|
||||
cycle_days: 90
|
||||
- !include
|
||||
- ../../templates/household_task.yaml
|
||||
- name: Grill Gas prüfen
|
||||
sensor_name: chore_check_grill_gas
|
||||
icon: mdi:fire
|
||||
warning_before: 1
|
||||
cycle_days: 365
|
||||
- !include ../../../base/includes/gap.yaml
|
||||
@@ -312,24 +340,21 @@
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
- !include ../../../base/includes/gap.yaml
|
||||
- type: 'custom:vertical-stack-in-card'
|
||||
- type: custom:stack-in-card
|
||||
mode: vertical
|
||||
cards:
|
||||
- !include
|
||||
- ../../templates/household_task.yaml
|
||||
- name: Waschmaschine reinigen
|
||||
sensor_name: chore_clean_wash_machine
|
||||
icon: mdi:washing-machine
|
||||
warning_before: 1
|
||||
cycle_days: 30
|
||||
- !include
|
||||
- ../../templates/household_task.yaml
|
||||
- name: Tumbler reinigen
|
||||
sensor_name: chore_clean_tumble_dryer
|
||||
icon: mdi:tumble-dryer
|
||||
warning_before: 2
|
||||
cycle_days: 30
|
||||
- !include
|
||||
- ../../templates/household_task.yaml
|
||||
- name: Vorräte prüfen
|
||||
sensor_name: chore_check_food_stock
|
||||
warning_before: 2
|
||||
cycle_days: 90
|
||||
- !include ../../../base/includes/gap.yaml
|
||||
|
||||
@@ -14,30 +14,35 @@
|
||||
- type: horizontal-stack
|
||||
cards:
|
||||
- !include ../../../base/includes/gap.yaml
|
||||
- type: 'custom:vertical-stack-in-card'
|
||||
- type: custom:stack-in-card
|
||||
mode: vertical
|
||||
cards:
|
||||
- !include
|
||||
- ../../templates/household_task.yaml
|
||||
- name: Fell bürsten
|
||||
sensor_name: chore_clean_fur
|
||||
icon: mdi:dog-side
|
||||
warning_before: 1
|
||||
cycle_days: 7
|
||||
- !include
|
||||
- ../../templates/household_task.yaml
|
||||
- name: Ohren putzen
|
||||
sensor_name: chore_clean_ears
|
||||
icon: mdi:ear-hearing
|
||||
warning_before: 1
|
||||
cycle_days: 7
|
||||
- !include
|
||||
- ../../templates/household_task.yaml
|
||||
- name: Napf reinigen
|
||||
sensor_name: chore_clean_food_bowl
|
||||
icon: mdi:bowl-outline
|
||||
warning_before: 1
|
||||
cycle_days: 7
|
||||
- !include
|
||||
- ../../templates/household_task.yaml
|
||||
- name: Krallen schneiden
|
||||
sensor_name: chore_cut_claws
|
||||
icon: mdi:paw
|
||||
warning_before: 1
|
||||
cycle_days: 21
|
||||
- !include ../../../base/includes/gap.yaml
|
||||
|
||||
@@ -8,42 +8,43 @@ group:
|
||||
- sensor.chore_vacuum_clean
|
||||
- sensor.chore_clean_floor_wet
|
||||
- sensor.chore_oil_floor
|
||||
- sensor.chore_dechalk
|
||||
- sensor.chore_clean_covers
|
||||
- sensor.chore_clean_curtains
|
||||
- sensor.chore_clean_window_frames
|
||||
- sensor.chore_clean_windows
|
||||
- sensor.chore_clean_covers
|
||||
- sensor.chore_clean_curtains
|
||||
- sensor.chore_dechalk
|
||||
- sensor.chore_clean_furniture
|
||||
- sensor.chore_clean_cupboards
|
||||
- sensor.chore_clean_mailbox
|
||||
- sensor.chore_clean_oven
|
||||
- sensor.chore_clean_fridge
|
||||
- sensor.chore_defrost_fridge
|
||||
- sensor.chore_clean_steam_exhaust
|
||||
- sensor.chore_dispose_bottles
|
||||
- sensor.chore_clean_dishwasher
|
||||
- sensor.chore_clean_coffe_machine
|
||||
- sensor.chore_check_food_fridge
|
||||
- sensor.chore_change_cloths
|
||||
- sensor.chore_clean_bath
|
||||
- sensor.chore_clean_doors
|
||||
- sensor.chore_clean_toilet
|
||||
- sensor.chore_change_towels
|
||||
- sensor.chore_clean_air_filter
|
||||
- sensor.chore_clean_bath
|
||||
- sensor.chore_clean_mirror
|
||||
- sensor.chore_clean_siphon
|
||||
- sensor.chore_change_bed_sheets
|
||||
- sensor.chore_turn_mattress
|
||||
- sensor.chore_clean_pillow_bedsheets
|
||||
- sensor.chore_clean_wardrobe
|
||||
- sensor.chore_declutter_wardrobe
|
||||
- sensor.chore_mow_lawn
|
||||
- sensor.chore_clean_grill
|
||||
- sensor.chore_check_grill_gas
|
||||
- sensor.chore_clean_wash_machine
|
||||
- sensor.chore_check_food_stock
|
||||
- sensor.chore_clean_tumble_dryer
|
||||
- sensor.chore_clean_fur
|
||||
- sensor.chore_clean_ears
|
||||
- sensor.chore_clean_food_bowl
|
||||
- sensor.chore_cut_claws
|
||||
- sensor.chore_clean_siphon
|
||||
- sensor.chore_clean_tumble_dryer
|
||||
- sensor.chore_clean_wardrobe
|
||||
- sensor.chore_declutter_wardrobe
|
||||
- sensor.chore_dispose_bottles
|
||||
- sensor.chore_clean_grill
|
||||
- sensor.chore_clean_mirror
|
||||
|
||||
|
||||
|
||||
automation:
|
||||
# Notify on household task due
|
||||
@@ -53,7 +54,7 @@ automation:
|
||||
entities: "group.household_tasks"
|
||||
trigger:
|
||||
- platform: time
|
||||
at: "19:00:00"
|
||||
at: "16:57:00"
|
||||
action:
|
||||
- repeat:
|
||||
count: "{{ expand(entities) | list | count }}"
|
||||
@@ -63,11 +64,11 @@ automation:
|
||||
{% set tasks = expand(entities) | map(attribute='entity_id') | list %}
|
||||
{{ tasks[repeat.index - 1] }}
|
||||
task_id: "{{ entity_id.split('.')[1] }}"
|
||||
last_done_days: "{{ ((as_timestamp(now()) - (states(entity_id)) | float) / 60 / 60 / 24) | int }}"
|
||||
last_done_days: "{{ ((as_timestamp(now()) - (as_timestamp(states(entity_id))) | float) / 60 / 60 / 24) | int }}"
|
||||
cycle_days: "{{ state_attr(entity_id, 'cycle_days') | int }}"
|
||||
warn_before_days: "{{ state_attr(entity_id, 'warning_before') | int }}"
|
||||
- condition: template
|
||||
value_template: "{{ last_done_days|int > (cycle_days|int - warn_before_days|int) }}"
|
||||
value_template: "{{ last_done_days|int >= (cycle_days|int - warn_before_days|int) }}"
|
||||
- service: notify.mobile_app_phone_dimitri
|
||||
data:
|
||||
title: "🧹 {{ state_attr(entity_id, 'friendly_name') }}"
|
||||
@@ -107,7 +108,7 @@ automation:
|
||||
topic: "homeassistant/sensor/{{task_id}}/state"
|
||||
payload: >
|
||||
{
|
||||
"state": {{ as_timestamp(now())|round(3) }},
|
||||
"state": "{{ now().isoformat() }}",
|
||||
"attributes": {
|
||||
"executor": "{{ executor.title() }}",
|
||||
"cycle_days": {{ state_attr(sensor_name, 'cycle_days') }},
|
||||
@@ -132,7 +133,6 @@ automation:
|
||||
title: "🙏 Erledigt!"
|
||||
message: "{{ executor.title() }} hat die Aufgabe '{{ task_name }}' bereits erledigt!"
|
||||
|
||||
|
||||
# Entity Customization
|
||||
homeassistant:
|
||||
customize:
|
||||
@@ -144,20 +144,22 @@ homeassistant:
|
||||
friendly_name: Boden aufnehmen
|
||||
sensor.chore_oil_floor:
|
||||
friendly_name: Boden einölen
|
||||
sensor.chore_dechalk:
|
||||
friendly_name: Entkalken
|
||||
sensor.chore_clean_covers:
|
||||
friendly_name: Rollos reinigen
|
||||
sensor.chore_clean_curtains:
|
||||
friendly_name: Vorhänge reinigen
|
||||
sensor.chore_clean_window_frames:
|
||||
friendly_name: Fensterbänke reinigen
|
||||
sensor.chore_clean_windows:
|
||||
friendly_name: Fenster reinigen
|
||||
sensor.chore_clean_covers:
|
||||
friendly_name: Rollos reinigen
|
||||
sensor.chore_clean_curtains:
|
||||
friendly_name: Vorhänge reinigen
|
||||
sensor.chore_dechalk:
|
||||
friendly_name: Entkalken
|
||||
sensor.chore_clean_furniture:
|
||||
friendly_name: Möbel pflegen
|
||||
sensor.chore_clean_cupboards:
|
||||
friendly_name: Schränke reinigen
|
||||
sensor.chore_clean_mailbox:
|
||||
friendly_name: Briefkasten reinigen
|
||||
sensor.chore_clean_oven:
|
||||
friendly_name: Backofen reinigen
|
||||
sensor.chore_clean_fridge:
|
||||
@@ -166,6 +168,8 @@ homeassistant:
|
||||
friendly_name: Kühlschrank abtauen
|
||||
sensor.chore_clean_steam_exhaust:
|
||||
friendly_name: Dampfabzug reinigen
|
||||
sensor.chore_dispose_bottles:
|
||||
friendly_name: Flaschen entsorgen
|
||||
sensor.chore_clean_dishwasher:
|
||||
friendly_name: Geschirrspüler reinigen
|
||||
sensor.chore_clean_coffe_machine:
|
||||
@@ -174,42 +178,43 @@ homeassistant:
|
||||
friendly_name: Lebensmittel prüfen
|
||||
sensor.chore_change_cloths:
|
||||
friendly_name: Putzlappen wechseln
|
||||
sensor.chore_clean_bath:
|
||||
friendly_name: Bad reinigen
|
||||
sensor.chore_clean_doors:
|
||||
friendly_name: Türen abwaschen
|
||||
sensor.chore_clean_toilet:
|
||||
friendly_name: Toilette reinigen
|
||||
sensor.chore_change_towels:
|
||||
friendly_name: Handtücher wechseln
|
||||
sensor.chore_clean_air_filter:
|
||||
friendly_name: Luftfilter reinigen
|
||||
sensor.chore_clean_bath:
|
||||
friendly_name: Bad reinigen
|
||||
sensor.chore_clean_mirror:
|
||||
friendly_name: Spiegel reinigen
|
||||
sensor.chore_clean_siphon:
|
||||
friendly_name: Siphon reinigen
|
||||
sensor.chore_change_bed_sheets:
|
||||
friendly_name: Bettwäsche wechseln
|
||||
sensor.chore_turn_mattress:
|
||||
friendly_name: Matratze wenden
|
||||
sensor.chore_clean_wash_machine:
|
||||
friendly_name: Waschmaschine reinigen
|
||||
sensor.chore_check_food_stock:
|
||||
friendly_name: Vorräte prüfen
|
||||
sensor.chore_clean_fur:
|
||||
friendly_name: Baghira Fell bürsten
|
||||
sensor.chore_clean_ears:
|
||||
friendly_name: Baghira Ohren putzen
|
||||
sensor.chore_clean_food_bowl:
|
||||
friendly_name: Napf reinigen
|
||||
sensor.chore_cut_claws:
|
||||
friendly_name: Baghira Krallen schneiden
|
||||
sensor.chore_clean_siphon:
|
||||
friendly_name: Siphon reinigen
|
||||
sensor.chore_clean_tumble_dryer:
|
||||
friendly_name: Tumbler reinigen
|
||||
sensor.chore_clean_pillow_bedsheets:
|
||||
friendly_name: Kissen/Decken waschen
|
||||
sensor.chore_clean_wardrobe:
|
||||
friendly_name: Kleiderschrank reinigen
|
||||
sensor.chore_declutter_wardrobe:
|
||||
friendly_name: Kleider ausmisten
|
||||
sensor.chore_dispose_bottles:
|
||||
friendly_name: Flaschen entsorgen
|
||||
sensor.chore_mow_lawn:
|
||||
friendly_name: Rasen mähen
|
||||
sensor.chore_clean_grill:
|
||||
friendly_name: Grill reinigen
|
||||
sensor.chore_clean_mirror:
|
||||
friendly_name: Spiegel reinigen
|
||||
|
||||
sensor.chore_check_grill_gas:
|
||||
friendly_name: Griss Gas prüfen
|
||||
sensor.chore_clean_wash_machine:
|
||||
friendly_name: Waschmaschine reinigen
|
||||
sensor.chore_clean_tumble_dryer:
|
||||
friendly_name: Tumbler reinigen
|
||||
sensor.chore_clean_fur:
|
||||
friendly_name: Fell bürsten
|
||||
sensor.chore_clean_ears:
|
||||
friendly_name: Ohren putzen
|
||||
sensor.chore_clean_food_bowl:
|
||||
friendly_name: Napf reinigen
|
||||
sensor.chore_cut_claws:
|
||||
friendly_name: Krallen schneiden
|
||||
|
||||
Reference in New Issue
Block a user