SHOW:
|
|
- or go back to the newest paste.
| 1 | blueprint: | |
| 2 | name: Coming Home | |
| 3 | description: Track when a person comes home | |
| 4 | domain: automation | |
| 5 | input: | |
| 6 | ||
| 7 | person: | |
| 8 | name: Person | |
| 9 | description: Person to track | |
| 10 | selector: | |
| 11 | target: | |
| 12 | ||
| 13 | persons_not_home: | |
| 14 | name: Persons not home | |
| 15 | description: Person which should not be home | |
| 16 | selector: | |
| 17 | target: | |
| 18 | ||
| 19 | delay_min: | |
| 20 | name: Delay minimum | |
| 21 | description: How short delay | |
| 22 | default: 10 | |
| 23 | selector: | |
| 24 | number: | |
| 25 | min: 0 | |
| 26 | max: 300 | |
| 27 | mode: slider | |
| 28 | step: 10 | |
| 29 | unit_of_measurement: "seconds" | |
| 30 | ||
| 31 | delay_max: | |
| 32 | name: Delay maximum | |
| 33 | description: How long delay | |
| 34 | default: 50 | |
| 35 | selector: | |
| 36 | number: | |
| 37 | min: 10 | |
| 38 | max: 600 | |
| 39 | mode: slider | |
| 40 | step: 10 | |
| 41 | unit_of_measurement: "seconds" | |
| 42 | ||
| 43 | trigger: | |
| 44 | - platform: state | |
| 45 | entity_id: !input person | |
| 46 | to: home | |
| 47 | ||
| 48 | mode: single | |
| 49 | ||
| 50 | variables: | |
| 51 | person: !input person | |
| 52 | persons_not_home: !input persons_not_home | |
| 53 | delay_min: !input delay_min | |
| 54 | delay_max: !input delay_max | |
| 55 | ||
| 56 | action: | |
| 57 | - delay: "{{ range(delay_min | int, delay_max | int) | random }}"
| |
| 58 | - choose: | |
| 59 | - conditions: | |
| 60 | - | - "{{ is_state(person, 'home') }}"
|
| 60 | + | - condition: state |
| 61 | - | - "{{ is_state(persons_not_home, 'not_home') }}"
|
| 61 | + | entity_id: "{{ person }}"
|
| 62 | state: "home" | |
| 63 | - condition: state | |
| 64 | entity_id: "{{ persons_not_home }}"
| |
| 65 | state: "not_home" | |
| 66 | sequence: | |
| 67 | - service: mqtt.publish | |
| 68 | data: | |
| 69 | topic: home-assistant/turn_off | |
| 70 | payload: '1' |