initial commit
This commit is contained in:
80
power-monitoring.yaml
Normal file
80
power-monitoring.yaml
Normal file
@ -0,0 +1,80 @@
|
||||
blueprint:
|
||||
name: Power Spike Logger
|
||||
description: >
|
||||
Logs significant power spikes (positive or negative) from an energy meter, typically used to identify when major appliances are turned on or off.
|
||||
domain: automation
|
||||
input:
|
||||
phase1_power:
|
||||
name: Phase 1 Power Sensor
|
||||
selector:
|
||||
entity:
|
||||
domain: sensor
|
||||
phase2_power:
|
||||
name: Phase 2 Power Sensor
|
||||
selector:
|
||||
entity:
|
||||
domain: sensor
|
||||
total_power:
|
||||
name: Total Power Sensor
|
||||
selector:
|
||||
entity:
|
||||
domain: sensor
|
||||
delta_power:
|
||||
name: Power Delta Sensor
|
||||
selector:
|
||||
entity:
|
||||
domain: sensor
|
||||
spike_threshold:
|
||||
name: Spike Threshold (W)
|
||||
description: Minimum power change (positive or negative) to trigger logging
|
||||
default: 1500
|
||||
selector:
|
||||
number:
|
||||
min: 100
|
||||
max: 10000
|
||||
unit_of_measurement: W
|
||||
mode: box
|
||||
log_target:
|
||||
name: Notification or Log Target
|
||||
description: Where to send spike logs (e.g., notify.persistent_notification)
|
||||
default: []
|
||||
selector:
|
||||
target:
|
||||
entity:
|
||||
domain: notify
|
||||
|
||||
trigger:
|
||||
- platform: numeric_state
|
||||
entity_id: !input delta_power
|
||||
above: !input spike_threshold
|
||||
- platform: template
|
||||
value_template: >
|
||||
{% set threshold = states('input_number.spike_threshold') | float(1500) %}
|
||||
{% set delta = states(input('delta_power')) | float(0) %}
|
||||
{{ delta < (0 - threshold) }}
|
||||
|
||||
condition:
|
||||
- condition: template
|
||||
value_template: >
|
||||
{{ states(input('total_power')) | float(0) > 1000 }}
|
||||
|
||||
variables:
|
||||
phase1: "{{ states(input('phase1_power')) }}"
|
||||
phase2: "{{ states(input('phase2_power')) }}"
|
||||
total: "{{ states(input('total_power')) }}"
|
||||
delta: "{{ states(input('delta_power')) }}"
|
||||
time: "{{ now().strftime('%Y-%m-%d %H:%M:%S') }}"
|
||||
|
||||
action:
|
||||
- service: notify.persistent_notification
|
||||
data:
|
||||
title: "Power Spike Detected"
|
||||
message: >
|
||||
Power spike at {{ time }}:\n
|
||||
Phase 1: {{ phase1 }} W\n
|
||||
Phase 2: {{ phase2 }} W\n
|
||||
Total: {{ total }} W\n
|
||||
Δ: {{ delta }} W
|
||||
|
||||
mode: queued
|
||||
|
Reference in New Issue
Block a user