Skip to content

Instantly share code, notes, and snippets.

@pgasidlo
Last active February 8, 2022 21:22
Show Gist options
  • Select an option

  • Save pgasidlo/91f3e6d30a87573c9e3ec29557935d73 to your computer and use it in GitHub Desktop.

Select an option

Save pgasidlo/91f3e6d30a87573c9e3ec29557935d73 to your computer and use it in GitHub Desktop.
blueprint:
name: Pulse meter state saver
description: Pulse meter state saver
domain: automation
input:
base:
name: Base
saved:
name: Saved
delta:
name: Delta
variables:
base: !input base
saved: !input saved
delta: !input delta
trigger:
- platform: time_pattern
minutes: "/1"
action:
- choose:
- conditions:
- condition: template
value_template: "{{ states(delta) != 'unavailable' }}"
- condition: template
value_template: "{{ states(delta) != 'unknown' }}"
- condition: template
value_template: "{{ states(delta)|float > 0 }}"
- condition: template
value_template: "{{ states(saved)|float > states(delta)|float + states(base)|float }}"
sequence:
- service: input_number.set_value
data_template:
entity_id: "{{ base }}"
value: "{{ states(saved)|float }}"
- choose:
- conditions:
- condition: template
value_template: "{{ states(delta) != 'unavailable' }}"
- condition: template
value_template: "{{ states(delta) != 'unknown' }}"
- condition: template
value_template: "{{ states(delta)|float > 0 }}"
- condition: template
value_template: "{{ states(saved)|float != states(delta)|float + states(base)|float }}"
sequence:
- service: input_number.set_value
data_template:
entity_id: "{{ saved }}"
value: "{{ states(base)|float + states(delta)|float }}"
@pgasidlo
Copy link
Author

pgasidlo commented Feb 8, 2022

TODO: if any of instances unavailable do nothing!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment