151 lines
5.8 KiB
YAML
151 lines
5.8 KiB
YAML
- alias: Enhanced High Power Usage Monitoring
|
|
description: Smart power monitoring that provides graduated alerts based on power
|
|
usage levels and duration
|
|
triggers:
|
|
- entity_id: sensor.gf_power_meter_gf_measured_power
|
|
id: warning_level
|
|
above: 3.1
|
|
for:
|
|
seconds: 30
|
|
trigger: numeric_state
|
|
- entity_id: sensor.gf_power_meter_gf_measured_power
|
|
id: critical_level
|
|
above: 3.8
|
|
for:
|
|
seconds: 15
|
|
trigger: numeric_state
|
|
- entity_id: sensor.gf_power_meter_gf_measured_power
|
|
id: extended_warning
|
|
above: 3.1
|
|
for:
|
|
minutes: 5
|
|
trigger: numeric_state
|
|
conditions:
|
|
- condition: time
|
|
after: 07:00:00
|
|
before: '22:00:00'
|
|
- condition: template
|
|
value_template: "{% set last_alert = states('input_datetime.last_power_alert')\
|
|
\ %} {% if last_alert != 'unavailable' and last_alert != 'unknown' %}\n {%\
|
|
\ set time_diff = (as_timestamp(now()) - as_timestamp(last_alert)) / 60 %}\n\
|
|
\ {{ time_diff > 10 }}\n{% else %}\n true\n{% endif %}"
|
|
- condition: template
|
|
value_template: '{{ power_level > 0 }}'
|
|
actions:
|
|
- choose:
|
|
- conditions:
|
|
- condition: trigger
|
|
id: critical_level
|
|
sequence:
|
|
- data:
|
|
title: ⚠️ CRITICAL POWER OVERLOAD
|
|
message: 'Critical overload detected! Please reduce load to avoid risk.
|
|
Current usage: {{ power_level }} kW.'
|
|
action: persistent_notification.create
|
|
- data:
|
|
title: ⚠️ CRITICAL POWER OVERLOAD
|
|
message: 'Urgent! Current usage: {{ power_level }} kW. Please turn off {{
|
|
appliance_guess }} immediately to prevent damage.'
|
|
data:
|
|
push:
|
|
sound:
|
|
name: default
|
|
critical: 1
|
|
volume: 1
|
|
interruption-level: critical
|
|
action: notify.mobile_app_ravis_iphone
|
|
- data:
|
|
target:
|
|
- media_player.name
|
|
- media_player.name
|
|
- media_player.name
|
|
message: Alert! Critical power overload at {{ power_level }} kilowatts!
|
|
Please turn off {{ appliance_guess }} immediately. मीटर गंभीर ओवरलोड
|
|
- तुरंत {{ appliance_guess }} बंद करें!
|
|
data:
|
|
type: tts
|
|
method: all
|
|
action: notify.alexa_media
|
|
- conditions:
|
|
- condition: trigger
|
|
id: extended_warning
|
|
sequence:
|
|
- data:
|
|
title: ⚠️ EXTENDED HIGH POWER USAGE
|
|
message: Your power usage has remained high for 5 minutes at {{ power_level
|
|
}} kW. Consider turning off unnecessary appliances.
|
|
action: persistent_notification.create
|
|
- data:
|
|
title: ⚠️ Extended High Power Usage
|
|
message: Continuous high power usage detected for over 5 minutes. Consider
|
|
turning off {{ appliance_guess }}.
|
|
data:
|
|
push:
|
|
sound:
|
|
name: default
|
|
interruption-level: time-sensitive
|
|
action: notify.mobile_app_ravis_iphone
|
|
- data:
|
|
target:
|
|
- media_player.name
|
|
- media_player.name
|
|
- media_player.name
|
|
message: Warning! High power usage sustained for over 5 minutes at {{ power_level
|
|
}} kilowatts. Please turn off unnecessary devices. बिजली की खपत कम करने
|
|
के लिए, कृपया कुछ उपकरण बंद करें।
|
|
data:
|
|
type: tts
|
|
method: all
|
|
action: notify.alexa_media
|
|
- conditions:
|
|
- condition: trigger
|
|
id: warning_level
|
|
sequence:
|
|
- data:
|
|
title: ⚠️ HIGH POWER USAGE
|
|
message: 'Warning: Power usage at {{ power_level }} kW. Consider reducing
|
|
the load.'
|
|
action: persistent_notification.create
|
|
- data:
|
|
title: High Power Usage
|
|
message: 'Current power usage: {{ power_level }} kW. Reduce unnecessary
|
|
load.'
|
|
data:
|
|
push:
|
|
sound:
|
|
name: default
|
|
interruption-level: passive
|
|
action: notify.mobile_app_ravis_iphone
|
|
- data:
|
|
target:
|
|
- media_player.name
|
|
- media_player.name
|
|
- media_player.name
|
|
message: 'मीटर ओवरलोड - कृपया लोड कम करने के लिए उपकरण बंद कर दें। Meter
|
|
Overload - Please switch off {{ appliance_guess }} to reduce the load.
|
|
Current power: {{ power_level }} kilowatts.'
|
|
data:
|
|
type: tts
|
|
method: all
|
|
action: notify.alexa_media
|
|
- data:
|
|
entity_id: input_datetime.last_power_alert
|
|
datetime: '{{ now().strftime(''%Y-%m-%d %H:%M:%S'') }}'
|
|
action: input_datetime.set_datetime
|
|
- data:
|
|
entity_id: input_number.last_power_level
|
|
value: '{{ power_level }}'
|
|
action: input_number.set_value
|
|
variables:
|
|
power_level: '{% set power1 = states(''sensor.gf_power_meter_gf_measured_power'')
|
|
| float(0) %} {% set power2 = states(''sensor.measured_power'') | float(0) %}
|
|
{% if power1 > power2 %}{{ power1 }}{% else %}{{ power2 }}{% endif %}'
|
|
appliance_guess: "{% set power = power_level | float %} {% if power > 4.5 %}\n\
|
|
\ multiple heavy appliances\n{% elif power > 3.8 %}\n an air conditioner or\
|
|
\ water heater\n{% elif power > 3.1 %}\n a heavy appliance like a microwave,\
|
|
\ iron, or water pump\n{% else %}\n some appliances\n{% endif %}"
|
|
message_severity: "{% if trigger.id == 'critical_level' %}\n CRITICAL POWER OVERLOAD\n\
|
|
{% elif trigger.id == 'extended_warning' %}\n Extended High Power Usage\n{%\
|
|
\ else %}\n High Power Usage\n{% endif %}"
|
|
mode: single
|