Files
blueprints/power-monitoring.yaml
2025-07-04 20:16:15 +00:00

81 lines
2.1 KiB
YAML

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