2556 lines
68 KiB
YAML
2556 lines
68 KiB
YAML
- alias: 3am Battery Precharge Calculation - AC500
|
|
description: ''
|
|
triggers:
|
|
- at: 03:00:00
|
|
trigger: time
|
|
- at: 04:00:00
|
|
trigger: time
|
|
- at: 05:00:00
|
|
trigger: time
|
|
- at: 06:00:00
|
|
trigger: time
|
|
- entity_id:
|
|
- sensor.solcast_pv_forecast_forecast_remaining_today
|
|
trigger: state
|
|
conditions:
|
|
- condition: template
|
|
value_template: '{{ now().weekday() in [0, 1, 2, 3, 4] and now().hour < 16 and
|
|
now().hour > 3 }}'
|
|
actions:
|
|
- data: {}
|
|
action: script.set_target_soc
|
|
- variables:
|
|
current_soc: '{{ states(''sensor.available_battery_kwh'') | float }}'
|
|
solar_forecast: '{{ states(''sensor.solcast_pv_forecast_forecast_remaining_today'')
|
|
| float }}'
|
|
required_energy: '{{ states(''input_number.required_energy_today'') | float
|
|
}}'
|
|
target_soc: '{{ states(''input_number.target_soc_kwh'') | float }}'
|
|
- choose:
|
|
- conditions:
|
|
- condition: template
|
|
value_template: '{{ target_soc > current_soc }}'
|
|
sequence:
|
|
- data:
|
|
title: Battery Charging Plan
|
|
message: 'Charging required: - SOC: {{ current_soc | round(1) }} kWh -
|
|
Forecast: {{ solar_forecast | round(1) }} kWh - Required: {{ required_energy
|
|
| round(1) }} kWh - Target: {{ target_soc | round(1) }} kWh
|
|
|
|
'
|
|
action: notify.mobile_app_phonetonia
|
|
- data:
|
|
option: STANDARD
|
|
target:
|
|
entity_id: select.ac500_ups_mode
|
|
action: select.select_option
|
|
default:
|
|
- sequence:
|
|
- data:
|
|
title: Battery Charging Plan
|
|
message: 'Charging NOT required: - SOC: {{ current_soc | round(1) }} kWh -
|
|
Forecast: {{ solar_forecast | round(1) }} kWh - Required: {{ required_energy
|
|
| round(1) }} kWh - Target: {{ target_soc | round(1) }} kWh - Triggered
|
|
by {{ trigger.platform }} on {{ trigger.entity_id or ''time'' }}
|
|
|
|
'
|
|
action: notify.mobile_app_phonetonia
|
|
enabled: false
|
|
- data:
|
|
option: PV_PRIORITY
|
|
target:
|
|
entity_id: select.ac500_ups_mode
|
|
action: select.select_option
|
|
mode: single
|
|
- id: '1712031367060'
|
|
alias: Turn off AC When Heating
|
|
description: ''
|
|
triggers:
|
|
- value_template: '{{ is_state_attr(''climate.dining_room_2'', ''hvac_action'',
|
|
''heating'')}}'
|
|
trigger: template
|
|
conditions: []
|
|
actions:
|
|
- metadata: {}
|
|
data:
|
|
hvac_mode: 'off'
|
|
target:
|
|
entity_id:
|
|
- climate.midea_climate
|
|
action: climate.set_hvac_mode
|
|
enabled: false
|
|
mode: single
|
|
- id: '1712031429336'
|
|
alias: Turn off DR AC When Idle
|
|
description: ''
|
|
triggers:
|
|
- value_template: '{{ is_state_attr(''climate.dining_room_2'', ''hvac_action'',
|
|
''idle'')}}'
|
|
trigger: template
|
|
conditions: []
|
|
actions:
|
|
- metadata: {}
|
|
data:
|
|
hvac_mode: 'off'
|
|
target:
|
|
entity_id:
|
|
- climate.midea_climate
|
|
action: climate.set_hvac_mode
|
|
enabled: true
|
|
mode: single
|
|
- id: '1712031461302'
|
|
alias: Turn off DR AC when None
|
|
description: ''
|
|
triggers:
|
|
- value_template: '{{ is_state_attr(''climate.dining_room_2'', ''hvac_action'',
|
|
'''')}}'
|
|
trigger: template
|
|
conditions: []
|
|
actions:
|
|
- metadata: {}
|
|
data:
|
|
hvac_mode: 'off'
|
|
target:
|
|
entity_id:
|
|
- climate.midea_climate
|
|
action: climate.set_hvac_mode
|
|
mode: single
|
|
- id: '1712031499415'
|
|
alias: Turn on AC When Cooling
|
|
description: ''
|
|
triggers:
|
|
- value_template: '{{ is_state_attr(''climate.dining_room_2'', ''hvac_action'',
|
|
''cooling'')}}'
|
|
trigger: template
|
|
conditions: []
|
|
actions:
|
|
- action: climate.set_temperature
|
|
metadata: {}
|
|
data:
|
|
hvac_mode: cool
|
|
temperature: '{{ state_attr(''climate.dining_room_2'', ''target_temp_high'')
|
|
| float - 3 }}'
|
|
target:
|
|
entity_id: climate.midea_climate
|
|
- metadata: {}
|
|
data:
|
|
message: Thermostat called to cool, turning on AC
|
|
title: Notification
|
|
action: notify.mobile_app_phonetonia
|
|
mode: single
|
|
- id: '1715297461355'
|
|
alias: Turn off DR AC if battery below 55%
|
|
description: ''
|
|
trigger:
|
|
- platform: numeric_state
|
|
entity_id:
|
|
- sensor.ac300_1_total_battery_percent_2
|
|
for:
|
|
hours: 0
|
|
minutes: 10
|
|
seconds: 0
|
|
below: 55
|
|
condition:
|
|
- condition: template
|
|
value_template: '{{ is_state_attr(''climate.dining_room_2'', ''hvac_action'',
|
|
''cooling'')}}'
|
|
enabled: false
|
|
action:
|
|
- service: climate.set_hvac_mode
|
|
metadata: {}
|
|
data:
|
|
hvac_mode: 'off'
|
|
target:
|
|
entity_id: climate.midea_climate
|
|
- service: notify.mobile_app_phonetonia
|
|
metadata: {}
|
|
data:
|
|
message: Battery is below 55%, turning off Dining Room AC
|
|
title: Notification
|
|
mode: single
|
|
- id: '1715300471733'
|
|
alias: Turn off all AC if battery below 35%
|
|
description: ''
|
|
triggers:
|
|
- entity_id:
|
|
- sensor.ac300_1_total_battery_percent_2
|
|
for:
|
|
hours: 0
|
|
minutes: 10
|
|
seconds: 0
|
|
below: 35
|
|
trigger: numeric_state
|
|
conditions:
|
|
- condition: template
|
|
value_template: '{{ is_state_attr(''climate.dining_room_2'', ''hvac_action'',
|
|
''cooling'')}}'
|
|
enabled: false
|
|
actions:
|
|
- metadata: {}
|
|
data:
|
|
hvac_mode: 'off'
|
|
target:
|
|
entity_id:
|
|
- climate.midea_climate
|
|
action: climate.set_hvac_mode
|
|
- device_id: 234683feb74f0a9a08cbb190827fdfec
|
|
domain: climate
|
|
entity_id: d3f8af6973267fdedd9c6767214e1157
|
|
type: set_hvac_mode
|
|
hvac_mode: 'off'
|
|
- metadata: {}
|
|
data:
|
|
message: Battery is below 35%, turning off all AC
|
|
title: WARNING!
|
|
action: notify.mobile_app_phonetonia
|
|
mode: single
|
|
- id: '1715819156488'
|
|
alias: Turn on furnace fan if DR AC turns on
|
|
description: If the furnace is idle
|
|
trigger:
|
|
- platform: device
|
|
device_id: 4066bcc1d28e7edc26e6f5cebe7b34d2
|
|
domain: climate
|
|
entity_id: 95eb37aec95ef02d5a4226fb594e52d9
|
|
type: hvac_mode_changed
|
|
to: cool
|
|
condition:
|
|
- condition: template
|
|
value_template: '{{ is_state_attr(''climate.dining_room_2'', ''hvac_action'',
|
|
''idle'')}}'
|
|
action:
|
|
- service: climate.set_fan_mode
|
|
data:
|
|
fan_mode: 'on'
|
|
target:
|
|
entity_id: climate.dining_room_2
|
|
mode: single
|
|
- id: '1715819809274'
|
|
alias: Disabled An hour before sunset, turn on AC if...
|
|
description: If Dan's room > 75 deg F
|
|
triggers:
|
|
- event: sunset
|
|
offset: -00:60:00
|
|
trigger: sun
|
|
conditions:
|
|
- condition: numeric_state
|
|
entity_id: sensor.dan_temperature_2
|
|
above: 75
|
|
- condition: numeric_state
|
|
entity_id: sensor.ac300_1_total_battery_percent_2
|
|
above: 80
|
|
enabled: false
|
|
actions:
|
|
- data:
|
|
message: Turning on AC in 5 minutes since there's enough battery
|
|
data:
|
|
timeout: 30
|
|
actions:
|
|
- action: Abort_Night_AC
|
|
title: Abort
|
|
action: notify.mobile_app_phonetonia
|
|
- delay:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 30
|
|
milliseconds: 0
|
|
- metadata: {}
|
|
data:
|
|
hvac_mode: cool
|
|
target:
|
|
entity_id: climate.151732605303264_climate
|
|
action: climate.set_hvac_mode
|
|
mode: single
|
|
- id: '1720660090510'
|
|
alias: Shut down AC if overloading
|
|
description: ''
|
|
triggers:
|
|
- entity_id:
|
|
- sensor.ac300_1_ac_output_power_2
|
|
for:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 5
|
|
above: 3000
|
|
trigger: numeric_state
|
|
conditions: []
|
|
actions:
|
|
- metadata: {}
|
|
data:
|
|
hvac_mode: 'off'
|
|
target:
|
|
entity_id:
|
|
- climate.midea_climate
|
|
action: climate.set_hvac_mode
|
|
- metadata: {}
|
|
data:
|
|
message: Inverter is overloading - shutting down AC!
|
|
title: ALERT!
|
|
action: notify.mobile_app_phonetonia
|
|
mode: single
|
|
- id: '1720663133151'
|
|
alias: After Sunset by 2 hours, Turn off Dan's Room AC if...
|
|
description: If Dan's room < 70 deg F
|
|
triggers:
|
|
- event: sunset
|
|
offset: 02:00:00
|
|
trigger: sun
|
|
conditions:
|
|
- condition: numeric_state
|
|
entity_id: sensor.dan_temperature_2
|
|
below: 70
|
|
- condition: numeric_state
|
|
entity_id: sensor.ac300_1_total_battery_percent_2
|
|
above: 80
|
|
enabled: false
|
|
actions:
|
|
- metadata: {}
|
|
data:
|
|
hvac_mode: 'off'
|
|
target:
|
|
entity_id: climate.151732605303264_climate
|
|
action: climate.set_hvac_mode
|
|
mode: single
|
|
- id: '1721188203380'
|
|
alias: An hour before sunset, turn on Dan's room AC if...
|
|
description: If Dan's room > 75 deg F
|
|
triggers:
|
|
- event: sunset
|
|
offset: -00:60:00
|
|
trigger: sun
|
|
conditions:
|
|
- condition: numeric_state
|
|
entity_id: sensor.dan_temperature_2
|
|
above: 75
|
|
- condition: numeric_state
|
|
entity_id: sensor.ac300_1_total_battery_percent_2
|
|
above: 80
|
|
enabled: false
|
|
actions:
|
|
- alias: Set up variables to make action events unique
|
|
variables:
|
|
action_yes: '{{ ''YES_'' ~ context.id }}'
|
|
action_no: '{{ ''NO_'' ~ context.id }}'
|
|
- alias: Send actionable notification
|
|
data:
|
|
message: Dan's Bedroom is warm, turn on AC?
|
|
data:
|
|
actions:
|
|
- action: '{{ action_yes }}'
|
|
title: 'Yes'
|
|
- action: '{{ action_no }}'
|
|
title: 'No'
|
|
action: notify.mobile_app_phonetonia
|
|
- wait_for_trigger:
|
|
- event_type: mobile_app_notification_action
|
|
event_data:
|
|
action: '{{ action_yes }}'
|
|
trigger: event
|
|
- event_type: mobile_app_notification_action
|
|
event_data:
|
|
action: '{{ action_no }}'
|
|
trigger: event
|
|
continue_on_timeout: false
|
|
- alias: Do something in response to selecting an action
|
|
choose:
|
|
- alias: Yes action was selected
|
|
conditions:
|
|
- condition: template
|
|
value_template: '{{ wait.trigger.event.data.action == action_yes }}'
|
|
sequence:
|
|
- data:
|
|
message: Turning on Bedroom AC
|
|
action: notify.mobile_app_phonetonia
|
|
- metadata: {}
|
|
data:
|
|
hvac_mode: cool
|
|
target:
|
|
entity_id: climate.151732605303264_climate
|
|
action: climate.set_hvac_mode
|
|
- alias: No action was selected
|
|
conditions:
|
|
- condition: template
|
|
value_template: '{{ wait.trigger.event.data.action == action_no }}'
|
|
sequence:
|
|
- data:
|
|
message: The No action was selected
|
|
enabled: false
|
|
action: notify.mobile_app_phonetonia
|
|
mode: restart
|
|
- id: '1721190158650'
|
|
alias: An hour before sunset, turn on Dining Room AC if...
|
|
description: If Dining room > 75 deg F
|
|
trigger:
|
|
- platform: sun
|
|
event: sunset
|
|
offset: -00:60:00
|
|
condition:
|
|
- condition: numeric_state
|
|
entity_id: sensor.dining_room_temperature
|
|
above: 75
|
|
action:
|
|
- alias: Set up variables to make action events unique
|
|
variables:
|
|
action_yes: '{{ ''YES_'' ~ context.id }}'
|
|
action_no: '{{ ''NO_'' ~ context.id }}'
|
|
- alias: Send actionable notification
|
|
service: notify.mobile_app_phonetonia
|
|
data:
|
|
message: Dining Room is warm, turn on AC?
|
|
data:
|
|
actions:
|
|
- action: '{{ action_yes }}'
|
|
title: 'Yes'
|
|
- action: '{{ action_no }}'
|
|
title: 'No'
|
|
- wait_for_trigger:
|
|
- platform: event
|
|
event_type: mobile_app_notification_action
|
|
event_data:
|
|
action: '{{ action_yes }}'
|
|
- platform: event
|
|
event_type: mobile_app_notification_action
|
|
event_data:
|
|
action: '{{ action_no }}'
|
|
continue_on_timeout: false
|
|
- alias: Do something in response to selecting an action
|
|
choose:
|
|
- alias: Yes action was selected
|
|
conditions:
|
|
- condition: template
|
|
value_template: '{{ wait.trigger.event.data.action == action_yes }}'
|
|
sequence:
|
|
- service: notify.mobile_app_phonetonia
|
|
data:
|
|
message: Turning on Dining AC
|
|
- service: climate.set_hvac_mode
|
|
metadata: {}
|
|
data:
|
|
hvac_mode: cool
|
|
target:
|
|
entity_id: climate.midea_climate
|
|
- alias: No action was selected
|
|
conditions:
|
|
- condition: template
|
|
value_template: '{{ wait.trigger.event.data.action == action_no }}'
|
|
sequence:
|
|
- service: notify.mobile_app_phonetonia
|
|
data:
|
|
message: The No action was selected
|
|
enabled: false
|
|
mode: restart
|
|
- id: '1749405511747'
|
|
alias: Turn Thermostat fan to Auto If DR AC turns off
|
|
description: ''
|
|
triggers:
|
|
- device_id: 4066bcc1d28e7edc26e6f5cebe7b34d2
|
|
domain: climate
|
|
entity_id: 95eb37aec95ef02d5a4226fb594e52d9
|
|
type: hvac_mode_changed
|
|
to: 'off'
|
|
trigger: device
|
|
conditions:
|
|
- condition: template
|
|
value_template: '{{ is_state_attr(''climate.dining_room_2'', ''hvac_action'',
|
|
''idle'')}}'
|
|
enabled: false
|
|
actions:
|
|
- data:
|
|
fan_mode: auto
|
|
target:
|
|
entity_id: climate.dining_room_2
|
|
action: climate.set_fan_mode
|
|
mode: single
|
|
- id: '1749418389077'
|
|
alias: Adjust AC to 3° Below Thermostat Setpoint
|
|
description: ''
|
|
triggers:
|
|
- trigger: state
|
|
entity_id:
|
|
- climate.dining_room_2
|
|
attribute: target_temp_high
|
|
conditions:
|
|
- condition: state
|
|
entity_id: climate.midea_climate
|
|
state: cool
|
|
actions:
|
|
- target:
|
|
entity_id: climate.midea_climate
|
|
data:
|
|
hvac_mode: cool
|
|
temperature: '{{ (state_attr(''climate.dining_room_2'', ''target_temp_high'')
|
|
| float - 3) | round(1) }}'
|
|
action: climate.set_temperature
|
|
mode: single
|
|
- id: '1752780254733'
|
|
alias: Put Bedroom AC in Sleep after 10 PM if it's running
|
|
description: ''
|
|
triggers:
|
|
- trigger: time
|
|
at: '23:00:00'
|
|
enabled: true
|
|
- trigger: time
|
|
at: '22:00:00'
|
|
enabled: true
|
|
conditions:
|
|
- condition: device
|
|
device_id: 98f45862a22b4be4a5d556025bc897a2
|
|
domain: climate
|
|
entity_id: aa2031e2adcb4d80e49d0853f0f6e091
|
|
type: is_hvac_mode
|
|
hvac_mode: cool
|
|
actions:
|
|
- device_id: 98f45862a22b4be4a5d556025bc897a2
|
|
domain: climate
|
|
entity_id: aa2031e2adcb4d80e49d0853f0f6e091
|
|
type: set_preset_mode
|
|
preset_mode: sleep
|
|
mode: single
|
|
- id: '1754770419746'
|
|
alias: Turn off Hallway Fan if Bedroom AC Turned Off
|
|
description: ''
|
|
triggers:
|
|
- device_id: 98f45862a22b4be4a5d556025bc897a2
|
|
domain: climate
|
|
entity_id: aa2031e2adcb4d80e49d0853f0f6e091
|
|
type: hvac_mode_changed
|
|
trigger: device
|
|
to: 'off'
|
|
conditions:
|
|
- condition: device
|
|
type: is_on
|
|
device_id: 2cd748a6c395137f23f9cecb977e87b5
|
|
entity_id: 2a915398e990612d965294106da913c6
|
|
domain: switch
|
|
actions:
|
|
- type: turn_off
|
|
device_id: 2cd748a6c395137f23f9cecb977e87b5
|
|
entity_id: 2a915398e990612d965294106da913c6
|
|
domain: switch
|
|
mode: single
|
|
- id: '1756503469843'
|
|
alias: Turn on AC & Hallway Fan
|
|
description: ''
|
|
triggers:
|
|
- device_id: 1a9eec07201e57674901eff31f44a84e
|
|
domain: hubitat
|
|
type: pushed
|
|
subtype: '2'
|
|
trigger: device
|
|
conditions: []
|
|
actions:
|
|
- type: turn_on
|
|
device_id: 2cd748a6c395137f23f9cecb977e87b5
|
|
entity_id: 2a915398e990612d965294106da913c6
|
|
domain: switch
|
|
- delay:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 5
|
|
milliseconds: 0
|
|
- action: climate.turn_on
|
|
metadata: {}
|
|
data: {}
|
|
target:
|
|
entity_id: climate.151732605303264_climate
|
|
- delay:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 5
|
|
milliseconds: 0
|
|
- device_id: 98f45862a22b4be4a5d556025bc897a2
|
|
domain: climate
|
|
entity_id: aa2031e2adcb4d80e49d0853f0f6e091
|
|
type: set_hvac_mode
|
|
hvac_mode: cool
|
|
mode: single
|
|
- id: '1756503515303'
|
|
alias: Turn off AC & Hallway Fan
|
|
description: ''
|
|
triggers:
|
|
- device_id: 1a9eec07201e57674901eff31f44a84e
|
|
domain: hubitat
|
|
type: held
|
|
subtype: '2'
|
|
trigger: device
|
|
conditions: []
|
|
actions:
|
|
- type: turn_off
|
|
device_id: 2cd748a6c395137f23f9cecb977e87b5
|
|
entity_id: 2a915398e990612d965294106da913c6
|
|
domain: switch
|
|
- delay:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 5
|
|
milliseconds: 0
|
|
- action: climate.turn_off
|
|
metadata: {}
|
|
data: {}
|
|
target:
|
|
entity_id: climate.151732605303264_climate
|
|
mode: single
|
|
- id: '1712031367060'
|
|
alias: Turn off AC When Heating
|
|
description: ''
|
|
triggers:
|
|
- value_template: '{{ is_state_attr(''climate.dining_room_2'', ''hvac_action'',
|
|
''heating'')}}'
|
|
trigger: template
|
|
conditions: []
|
|
actions:
|
|
- metadata: {}
|
|
data:
|
|
hvac_mode: 'off'
|
|
target:
|
|
entity_id:
|
|
- climate.midea_climate
|
|
action: climate.set_hvac_mode
|
|
enabled: false
|
|
mode: single
|
|
- id: '1712031429336'
|
|
alias: Turn off DR AC When Idle
|
|
description: ''
|
|
triggers:
|
|
- value_template: '{{ is_state_attr(''climate.dining_room_2'', ''hvac_action'',
|
|
''idle'')}}'
|
|
trigger: template
|
|
conditions: []
|
|
actions:
|
|
- metadata: {}
|
|
data:
|
|
hvac_mode: 'off'
|
|
target:
|
|
entity_id:
|
|
- climate.midea_climate
|
|
action: climate.set_hvac_mode
|
|
enabled: true
|
|
mode: single
|
|
- id: '1712031461302'
|
|
alias: Turn off DR AC when None
|
|
description: ''
|
|
triggers:
|
|
- value_template: '{{ is_state_attr(''climate.dining_room_2'', ''hvac_action'',
|
|
'''')}}'
|
|
trigger: template
|
|
conditions: []
|
|
actions:
|
|
- metadata: {}
|
|
data:
|
|
hvac_mode: 'off'
|
|
target:
|
|
entity_id:
|
|
- climate.midea_climate
|
|
action: climate.set_hvac_mode
|
|
mode: single
|
|
- id: '1712031499415'
|
|
alias: Turn on AC When Cooling
|
|
description: ''
|
|
triggers:
|
|
- value_template: '{{ is_state_attr(''climate.dining_room_2'', ''hvac_action'',
|
|
''cooling'')}}'
|
|
trigger: template
|
|
conditions: []
|
|
actions:
|
|
- action: climate.set_temperature
|
|
metadata: {}
|
|
data:
|
|
hvac_mode: cool
|
|
temperature: '{{ state_attr(''climate.dining_room_2'', ''target_temp_high'')
|
|
| float - 3 }}'
|
|
target:
|
|
entity_id: climate.midea_climate
|
|
- metadata: {}
|
|
data:
|
|
message: Thermostat called to cool, turning on AC
|
|
title: Notification
|
|
action: notify.mobile_app_phonetonia
|
|
mode: single
|
|
- id: '1715297461355'
|
|
alias: Turn off DR AC if battery below 55%
|
|
description: ''
|
|
trigger:
|
|
- platform: numeric_state
|
|
entity_id:
|
|
- sensor.ac300_1_total_battery_percent_2
|
|
for:
|
|
hours: 0
|
|
minutes: 10
|
|
seconds: 0
|
|
below: 55
|
|
condition:
|
|
- condition: template
|
|
value_template: '{{ is_state_attr(''climate.dining_room_2'', ''hvac_action'',
|
|
''cooling'')}}'
|
|
enabled: false
|
|
action:
|
|
- service: climate.set_hvac_mode
|
|
metadata: {}
|
|
data:
|
|
hvac_mode: 'off'
|
|
target:
|
|
entity_id: climate.midea_climate
|
|
- service: notify.mobile_app_phonetonia
|
|
metadata: {}
|
|
data:
|
|
message: Battery is below 55%, turning off Dining Room AC
|
|
title: Notification
|
|
mode: single
|
|
- id: '1715300471733'
|
|
alias: Turn off all AC if battery below 35%
|
|
description: ''
|
|
triggers:
|
|
- entity_id:
|
|
- sensor.ac300_1_total_battery_percent_2
|
|
for:
|
|
hours: 0
|
|
minutes: 10
|
|
seconds: 0
|
|
below: 35
|
|
trigger: numeric_state
|
|
conditions:
|
|
- condition: template
|
|
value_template: '{{ is_state_attr(''climate.dining_room_2'', ''hvac_action'',
|
|
''cooling'')}}'
|
|
enabled: false
|
|
actions:
|
|
- metadata: {}
|
|
data:
|
|
hvac_mode: 'off'
|
|
target:
|
|
entity_id:
|
|
- climate.midea_climate
|
|
action: climate.set_hvac_mode
|
|
- device_id: 234683feb74f0a9a08cbb190827fdfec
|
|
domain: climate
|
|
entity_id: d3f8af6973267fdedd9c6767214e1157
|
|
type: set_hvac_mode
|
|
hvac_mode: 'off'
|
|
- metadata: {}
|
|
data:
|
|
message: Battery is below 35%, turning off all AC
|
|
title: WARNING!
|
|
action: notify.mobile_app_phonetonia
|
|
mode: single
|
|
- id: '1715819156488'
|
|
alias: Turn on furnace fan if DR AC turns on
|
|
description: If the furnace is idle
|
|
trigger:
|
|
- platform: device
|
|
device_id: 4066bcc1d28e7edc26e6f5cebe7b34d2
|
|
domain: climate
|
|
entity_id: 95eb37aec95ef02d5a4226fb594e52d9
|
|
type: hvac_mode_changed
|
|
to: cool
|
|
condition:
|
|
- condition: template
|
|
value_template: '{{ is_state_attr(''climate.dining_room_2'', ''hvac_action'',
|
|
''idle'')}}'
|
|
action:
|
|
- service: climate.set_fan_mode
|
|
data:
|
|
fan_mode: 'on'
|
|
target:
|
|
entity_id: climate.dining_room_2
|
|
mode: single
|
|
- id: '1715819809274'
|
|
alias: Disabled An hour before sunset, turn on AC if...
|
|
description: If Dan's room > 75 deg F
|
|
triggers:
|
|
- event: sunset
|
|
offset: -00:60:00
|
|
trigger: sun
|
|
conditions:
|
|
- condition: numeric_state
|
|
entity_id: sensor.dan_temperature_2
|
|
above: 75
|
|
- condition: numeric_state
|
|
entity_id: sensor.ac300_1_total_battery_percent_2
|
|
above: 80
|
|
enabled: false
|
|
actions:
|
|
- data:
|
|
message: Turning on AC in 5 minutes since there's enough battery
|
|
data:
|
|
timeout: 30
|
|
actions:
|
|
- action: Abort_Night_AC
|
|
title: Abort
|
|
action: notify.mobile_app_phonetonia
|
|
- delay:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 30
|
|
milliseconds: 0
|
|
- metadata: {}
|
|
data:
|
|
hvac_mode: cool
|
|
target:
|
|
entity_id: climate.151732605303264_climate
|
|
action: climate.set_hvac_mode
|
|
mode: single
|
|
- id: '1720660090510'
|
|
alias: Shut down AC if overloading
|
|
description: ''
|
|
triggers:
|
|
- entity_id:
|
|
- sensor.ac300_1_ac_output_power_2
|
|
for:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 5
|
|
above: 3000
|
|
trigger: numeric_state
|
|
conditions: []
|
|
actions:
|
|
- metadata: {}
|
|
data:
|
|
hvac_mode: 'off'
|
|
target:
|
|
entity_id:
|
|
- climate.midea_climate
|
|
action: climate.set_hvac_mode
|
|
- metadata: {}
|
|
data:
|
|
message: Inverter is overloading - shutting down AC!
|
|
title: ALERT!
|
|
action: notify.mobile_app_phonetonia
|
|
mode: single
|
|
- id: '1720663133151'
|
|
alias: After Sunset by 2 hours, Turn off Dan's Room AC if...
|
|
description: If Dan's room < 70 deg F
|
|
triggers:
|
|
- event: sunset
|
|
offset: 02:00:00
|
|
trigger: sun
|
|
conditions:
|
|
- condition: numeric_state
|
|
entity_id: sensor.dan_temperature_2
|
|
below: 70
|
|
- condition: numeric_state
|
|
entity_id: sensor.ac300_1_total_battery_percent_2
|
|
above: 80
|
|
enabled: false
|
|
actions:
|
|
- metadata: {}
|
|
data:
|
|
hvac_mode: 'off'
|
|
target:
|
|
entity_id: climate.151732605303264_climate
|
|
action: climate.set_hvac_mode
|
|
mode: single
|
|
- id: '1720664293249'
|
|
alias: Temp Equalization
|
|
description: Turns off AC if temps are equalized
|
|
trigger:
|
|
- platform: numeric_state
|
|
entity_id: weather.home
|
|
attribute: temperature
|
|
above: '70'
|
|
- platform: numeric_state
|
|
entity_id: weather.home
|
|
attribute: temperature
|
|
below: '60'
|
|
condition: []
|
|
action: []
|
|
mode: single
|
|
- id: '1721188203380'
|
|
alias: An hour before sunset, turn on Dan's room AC if...
|
|
description: If Dan's room > 75 deg F
|
|
triggers:
|
|
- event: sunset
|
|
offset: -00:60:00
|
|
trigger: sun
|
|
conditions:
|
|
- condition: numeric_state
|
|
entity_id: sensor.dan_temperature_2
|
|
above: 75
|
|
- condition: numeric_state
|
|
entity_id: sensor.ac300_1_total_battery_percent_2
|
|
above: 80
|
|
enabled: false
|
|
actions:
|
|
- alias: Set up variables to make action events unique
|
|
variables:
|
|
action_yes: '{{ ''YES_'' ~ context.id }}'
|
|
action_no: '{{ ''NO_'' ~ context.id }}'
|
|
- alias: Send actionable notification
|
|
data:
|
|
message: Dan's Bedroom is warm, turn on AC?
|
|
data:
|
|
actions:
|
|
- action: '{{ action_yes }}'
|
|
title: 'Yes'
|
|
- action: '{{ action_no }}'
|
|
title: 'No'
|
|
action: notify.mobile_app_phonetonia
|
|
- wait_for_trigger:
|
|
- event_type: mobile_app_notification_action
|
|
event_data:
|
|
action: '{{ action_yes }}'
|
|
trigger: event
|
|
- event_type: mobile_app_notification_action
|
|
event_data:
|
|
action: '{{ action_no }}'
|
|
trigger: event
|
|
continue_on_timeout: false
|
|
- alias: Do something in response to selecting an action
|
|
choose:
|
|
- alias: Yes action was selected
|
|
conditions:
|
|
- condition: template
|
|
value_template: '{{ wait.trigger.event.data.action == action_yes }}'
|
|
sequence:
|
|
- data:
|
|
message: Turning on Bedroom AC
|
|
action: notify.mobile_app_phonetonia
|
|
- metadata: {}
|
|
data:
|
|
hvac_mode: cool
|
|
target:
|
|
entity_id: climate.151732605303264_climate
|
|
action: climate.set_hvac_mode
|
|
- alias: No action was selected
|
|
conditions:
|
|
- condition: template
|
|
value_template: '{{ wait.trigger.event.data.action == action_no }}'
|
|
sequence:
|
|
- data:
|
|
message: The No action was selected
|
|
enabled: false
|
|
action: notify.mobile_app_phonetonia
|
|
mode: restart
|
|
- id: '1721190158650'
|
|
alias: An hour before sunset, turn on Dining Room AC if...
|
|
description: If Dining room > 75 deg F
|
|
trigger:
|
|
- platform: sun
|
|
event: sunset
|
|
offset: -00:60:00
|
|
condition:
|
|
- condition: numeric_state
|
|
entity_id: sensor.dining_room_temperature
|
|
above: 75
|
|
action:
|
|
- alias: Set up variables to make action events unique
|
|
variables:
|
|
action_yes: '{{ ''YES_'' ~ context.id }}'
|
|
action_no: '{{ ''NO_'' ~ context.id }}'
|
|
- alias: Send actionable notification
|
|
service: notify.mobile_app_phonetonia
|
|
data:
|
|
message: Dining Room is warm, turn on AC?
|
|
data:
|
|
actions:
|
|
- action: '{{ action_yes }}'
|
|
title: 'Yes'
|
|
- action: '{{ action_no }}'
|
|
title: 'No'
|
|
- wait_for_trigger:
|
|
- platform: event
|
|
event_type: mobile_app_notification_action
|
|
event_data:
|
|
action: '{{ action_yes }}'
|
|
- platform: event
|
|
event_type: mobile_app_notification_action
|
|
event_data:
|
|
action: '{{ action_no }}'
|
|
continue_on_timeout: false
|
|
- alias: Do something in response to selecting an action
|
|
choose:
|
|
- alias: Yes action was selected
|
|
conditions:
|
|
- condition: template
|
|
value_template: '{{ wait.trigger.event.data.action == action_yes }}'
|
|
sequence:
|
|
- service: notify.mobile_app_phonetonia
|
|
data:
|
|
message: Turning on Dining AC
|
|
- service: climate.set_hvac_mode
|
|
metadata: {}
|
|
data:
|
|
hvac_mode: cool
|
|
target:
|
|
entity_id: climate.midea_climate
|
|
- alias: No action was selected
|
|
conditions:
|
|
- condition: template
|
|
value_template: '{{ wait.trigger.event.data.action == action_no }}'
|
|
sequence:
|
|
- service: notify.mobile_app_phonetonia
|
|
data:
|
|
message: The No action was selected
|
|
enabled: false
|
|
mode: restart
|
|
- id: '1721399007371'
|
|
alias: Solar Dump When Full
|
|
description: If Battery > 88%, and dining room > 75 deg F, and power differential
|
|
> 1000w, run the AC for 30 mins.
|
|
trigger:
|
|
- platform: numeric_state
|
|
entity_id:
|
|
- sensor.ac300_1_total_battery_percent_2
|
|
for:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 0
|
|
above: 88
|
|
condition:
|
|
- condition: numeric_state
|
|
entity_id: sensor.dining_room_current_temperature
|
|
above: 70
|
|
- condition: numeric_state
|
|
entity_id: sensor.ac300_1_total_battery_percent_2
|
|
above: 80
|
|
enabled: false
|
|
- condition: numeric_state
|
|
entity_id: sensor.power_differential_ac300_1
|
|
above: 1000
|
|
action:
|
|
- alias: Set up variables to make action events unique
|
|
variables:
|
|
action_yes: '{{ ''YES_'' ~ context.id }}'
|
|
action_no: '{{ ''NO_'' ~ context.id }}'
|
|
- alias: Send actionable notification
|
|
service: notify.mobile_app_phonetonia
|
|
data:
|
|
message: Battery Fully Charged, turn on AC?
|
|
data:
|
|
actions:
|
|
- action: '{{ action_yes }}'
|
|
title: 'Yes'
|
|
- action: '{{ action_no }}'
|
|
title: 'No'
|
|
- wait_for_trigger:
|
|
- platform: event
|
|
event_type: mobile_app_notification_action
|
|
event_data:
|
|
action: '{{ action_yes }}'
|
|
- platform: event
|
|
event_type: mobile_app_notification_action
|
|
event_data:
|
|
action: '{{ action_no }}'
|
|
continue_on_timeout: false
|
|
- alias: Do something in response to selecting an action
|
|
choose:
|
|
- alias: Yes action was selected
|
|
conditions:
|
|
- condition: template
|
|
value_template: '{{ wait.trigger.event.data.action == action_yes }}'
|
|
sequence:
|
|
- service: notify.mobile_app_phonetonia
|
|
data:
|
|
message: Turning on Furnace Intake AC
|
|
- service: climate.set_hvac_mode
|
|
metadata: {}
|
|
data:
|
|
hvac_mode: cool
|
|
target:
|
|
entity_id:
|
|
- climate.151732605274240_climate
|
|
- delay:
|
|
hours: 0
|
|
minutes: 30
|
|
seconds: 0
|
|
milliseconds: 0
|
|
- service: climate.set_hvac_mode
|
|
metadata: {}
|
|
data:
|
|
hvac_mode: 'off'
|
|
target:
|
|
entity_id: climate.151732605274240_climate
|
|
- alias: No action was selected
|
|
conditions:
|
|
- condition: template
|
|
value_template: '{{ wait.trigger.event.data.action == action_no }}'
|
|
sequence:
|
|
- service: notify.mobile_app_phonetonia
|
|
data:
|
|
message: The No action was selected
|
|
enabled: false
|
|
mode: restart
|
|
- id: '1722066676567'
|
|
alias: Open Windows
|
|
description: ''
|
|
trigger:
|
|
- platform: numeric_state
|
|
entity_id:
|
|
- sensor.ambient_vs_indoor_temp
|
|
for:
|
|
hours: 0
|
|
minutes: 5
|
|
seconds: 0
|
|
below: -1
|
|
condition: []
|
|
action:
|
|
- service: notify.mobile_app_phonetonia
|
|
metadata: {}
|
|
data:
|
|
title: Notification
|
|
message: Open the windows!
|
|
- service: notify.automation_freepdx_com
|
|
metadata: {}
|
|
data:
|
|
message: Open The Windows
|
|
title: Notification
|
|
target: 2152194322@vtext.com
|
|
mode: single
|
|
- id: '1722066859673'
|
|
alias: Close Windows
|
|
description: ''
|
|
trigger:
|
|
- platform: numeric_state
|
|
entity_id:
|
|
- sensor.ambient_vs_indoor_temp
|
|
for:
|
|
hours: 0
|
|
minutes: 5
|
|
seconds: 0
|
|
above: 1
|
|
condition: []
|
|
action:
|
|
- service: notify.mobile_app_phonetonia
|
|
metadata: {}
|
|
data:
|
|
title: Notification
|
|
message: Close the windows!
|
|
- service: notify.automation_freepdx_com
|
|
metadata: {}
|
|
data:
|
|
message: Close The Windows
|
|
title: Notification
|
|
target: 2152194322@vtext.com
|
|
mode: single
|
|
- id: '1747118266065'
|
|
alias: Set UPS Mode to STANDARD at 2:00 AM
|
|
description: ''
|
|
triggers:
|
|
- at: 02:00:00
|
|
trigger: time
|
|
conditions:
|
|
- condition: template
|
|
value_template: '{{ now().weekday() in [0, 1, 2, 3, 6] }}'
|
|
actions:
|
|
- data:
|
|
option: STANDARD
|
|
target:
|
|
entity_id: select.ac300_ups_mode
|
|
action: select.select_option
|
|
mode: single
|
|
- id: '1747120298503'
|
|
alias: Set UPS Mode to PV_PRIORITY at 7:00 AM
|
|
description: ''
|
|
triggers:
|
|
- at: 07:00:00
|
|
trigger: time
|
|
conditions:
|
|
- condition: template
|
|
value_template: '{{ now().weekday() in [0, 1, 2, 3, 6] }}'
|
|
actions:
|
|
- data:
|
|
option: PV_PRIORITY
|
|
target:
|
|
entity_id: select.ac300_ups_mode
|
|
action: select.select_option
|
|
mode: single
|
|
- id: '1747173552082'
|
|
alias: Fridge About To Thaw
|
|
description: ''
|
|
triggers:
|
|
- trigger: numeric_state
|
|
entity_id:
|
|
- sensor.vuetonia_11_1min
|
|
for:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 30
|
|
above: 200
|
|
conditions: []
|
|
actions:
|
|
- action: notify.mobile_app_phonetonia
|
|
metadata: {}
|
|
data:
|
|
message: Fridge is Thawing! (600w)
|
|
title: Take Heed until {{ (now() + timedelta(minutes=14)).strftime('%-I:%M %p')
|
|
}}
|
|
- delay:
|
|
hours: 12
|
|
minutes: 13
|
|
seconds: 0
|
|
milliseconds: 0
|
|
- action: notify.mobile_app_phonetonia
|
|
metadata: {}
|
|
data:
|
|
message: Fridge is about to start thawing (600w!)
|
|
title: Take heed until {{ (now() + timedelta(minutes=16)).strftime('%-I:%M %p')
|
|
}}
|
|
mode: single
|
|
- id: '1747197008762'
|
|
alias: 3am Battery Precharge Calculation - AC300
|
|
description: ''
|
|
triggers:
|
|
- at: 03:00:00
|
|
trigger: time
|
|
- at: 04:00:00
|
|
trigger: time
|
|
- at: 05:00:00
|
|
trigger: time
|
|
- at: 06:00:00
|
|
trigger: time
|
|
- entity_id: sensor.energy_production_today_remaining
|
|
trigger: state
|
|
conditions:
|
|
- condition: template
|
|
value_template: '{{ now().weekday() in [0, 1, 2, 3, 4] and now().hour < 16 and
|
|
now().hour > 3 }}'
|
|
actions:
|
|
- data: {}
|
|
action: script.set_target_soc
|
|
- variables:
|
|
current_soc: '{{ states(''sensor.available_battery_kwh'') | float }}'
|
|
solar_forecast: '{{ states(''sensor.energy_production_today_remaining'') | float
|
|
}}'
|
|
required_energy: '{{ states(''input_number.required_energy_today'') | float
|
|
}}'
|
|
target_soc: '{{ states(''input_number.target_soc_kwh'') | float }}'
|
|
- choose:
|
|
- conditions:
|
|
- condition: template
|
|
value_template: '{{ target_soc > current_soc }}'
|
|
sequence:
|
|
- data:
|
|
title: Battery Charging Plan
|
|
message: 'Charging required: - SOC: {{ current_soc | round(1) }} kWh -
|
|
Forecast: {{ solar_forecast | round(1) }} kWh - Required: {{ required_energy
|
|
| round(1) }} kWh - Target: {{ target_soc | round(1) }} kWh
|
|
|
|
'
|
|
action: notify.mobile_app_phonetonia
|
|
- data:
|
|
option: STANDARD
|
|
target:
|
|
entity_id:
|
|
- select.ac300_ups_mode
|
|
action: select.select_option
|
|
default:
|
|
- sequence:
|
|
- data:
|
|
title: Battery Charging Plan
|
|
message: 'Charging NOT required: - SOC: {{ current_soc | round(1) }} kWh -
|
|
Forecast: {{ solar_forecast | round(1) }} kWh - Required: {{ required_energy
|
|
| round(1) }} kWh - Target: {{ target_soc | round(1) }} kWh - Triggered
|
|
by {{ trigger.platform }} on {{ trigger.entity_id or ''time'' }}
|
|
|
|
'
|
|
action: notify.mobile_app_phonetonia
|
|
enabled: false
|
|
- data:
|
|
option: PV_PRIORITY
|
|
target:
|
|
entity_id:
|
|
- select.ac300_ups_mode
|
|
action: select.select_option
|
|
mode: single
|
|
- id: '1747198733919'
|
|
alias: Stop Charging at Target SOC
|
|
description: ''
|
|
triggers:
|
|
- entity_id: sensor.available_battery_kwh
|
|
trigger: state
|
|
conditions:
|
|
- condition: template
|
|
value_template: '{{ states(''sensor.available_battery_kwh'') | float(0) > (states(''input_number.target_soc_kwh'')
|
|
| float(0) + 0.1) }}
|
|
|
|
'
|
|
- condition: template
|
|
value_template: '{{ states(''select.ac300_ups_mode'') != ''PV_PRIORITY'' }}
|
|
|
|
'
|
|
actions:
|
|
- data:
|
|
option: PV_PRIORITY
|
|
target:
|
|
entity_id: select.ac300_ups_mode
|
|
action: select.select_option
|
|
- data:
|
|
title: AC300 Charging Complete
|
|
message: SOC has reached the target level. Switched to PV_Priority mode.
|
|
action: notify.mobile_app_phonetonia
|
|
mode: single
|
|
- id: '1747329156554'
|
|
alias: Update All-Time Max DC Input Voltage - AC300
|
|
description: ''
|
|
triggers:
|
|
- entity_id: sensor.ac300_dc_input_voltage1
|
|
trigger: state
|
|
conditions:
|
|
- condition: template
|
|
value_template: "{{ states('sensor.ac300_dc_input_voltage1') | float > \n states('input_number.all_time_high_dc_input_voltage')\
|
|
\ | float }}\n"
|
|
actions:
|
|
- target:
|
|
entity_id:
|
|
- input_number.all_time_high_dc_input_voltage
|
|
data:
|
|
value: '{{ states(''sensor.ac300_dc_input_voltage1'') | float }}'
|
|
action: input_number.set_value
|
|
mode: single
|
|
- id: '1747426733415'
|
|
alias: Inverter overloading - AC300
|
|
description: ''
|
|
triggers:
|
|
- trigger: numeric_state
|
|
entity_id:
|
|
- sensor.ac300_ac_output_power
|
|
for:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 1
|
|
above: 2900
|
|
conditions: []
|
|
actions:
|
|
- device_id: aea9d40bb10539ffe3160c852f70d775
|
|
domain: mobile_app
|
|
type: notify
|
|
message: Shut something down quick!
|
|
title: Inverter Overloading!
|
|
mode: single
|
|
- id: '1747426972396'
|
|
alias: Power Spiking During Peak
|
|
description: ''
|
|
triggers:
|
|
- trigger: numeric_state
|
|
entity_id:
|
|
- sensor.vuetonia_123_1min
|
|
for:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 10
|
|
above: 1400
|
|
conditions:
|
|
- condition: time
|
|
after: '17:00:00'
|
|
before: '21:00:00'
|
|
weekday:
|
|
- mon
|
|
- tue
|
|
- wed
|
|
- thu
|
|
- fri
|
|
actions:
|
|
- action: notify.mobile_app_phonetonia
|
|
metadata: {}
|
|
data:
|
|
title: Power is spiking during Peak
|
|
message: Do you really want to do that?
|
|
- action: tts.speak
|
|
target:
|
|
entity_id: tts.piper
|
|
data:
|
|
cache: true
|
|
media_player_entity_id: media_player.kitchen_front
|
|
message: Power is spiking during Peak. Do you really want to do that?
|
|
mode: single
|
|
- id: '1747427915822'
|
|
alias: Kitchen Overloading
|
|
description: ''
|
|
triggers:
|
|
- trigger: numeric_state
|
|
entity_id:
|
|
- sensor.kitchen_13_1min
|
|
for:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 1
|
|
above: 2000
|
|
conditions: []
|
|
actions:
|
|
- device_id: aea9d40bb10539ffe3160c852f70d775
|
|
domain: mobile_app
|
|
type: notify
|
|
message: Shut something down quick!
|
|
title: Kitchen Overloading!
|
|
mode: single
|
|
- id: '1748682156059'
|
|
alias: Update All Time High DC Input Voltage - AC500
|
|
description: ''
|
|
triggers:
|
|
- entity_id:
|
|
- sensor.ac500_dc_input_voltage1
|
|
trigger: state
|
|
conditions:
|
|
- condition: template
|
|
value_template: "{{ states('sensor.ac500_dc_input_voltage1') | float > \n states('input_number.all_time_high_dc_input_voltage_ac500')\
|
|
\ | float }}\n"
|
|
actions:
|
|
- target:
|
|
entity_id:
|
|
- input_number.all_time_high_dc_input_voltage_ac500
|
|
data:
|
|
value: '{{ states(''sensor.ac500_dc_input_voltage1'') | float }}'
|
|
action: input_number.set_value
|
|
mode: single
|
|
- id: '1748728948910'
|
|
alias: 3am Battery Precharge Calculation - AC500
|
|
description: ''
|
|
triggers:
|
|
- at: 03:00:00
|
|
trigger: time
|
|
- at: 04:00:00
|
|
trigger: time
|
|
- at: 05:00:00
|
|
trigger: time
|
|
- at: 06:00:00
|
|
trigger: time
|
|
- entity_id:
|
|
- sensor.solcast_pv_forecast_forecast_remaining_today
|
|
trigger: state
|
|
conditions:
|
|
- condition: template
|
|
value_template: '{{ now().weekday() in [0, 1, 2, 3, 4] and now().hour < 16 and
|
|
now().hour > 3 }}'
|
|
actions:
|
|
- data: {}
|
|
action: script.set_target_soc
|
|
- variables:
|
|
current_soc: '{{ states(''sensor.available_battery_kwh'') | float }}'
|
|
solar_forecast: '{{ states(''sensor.solcast_pv_forecast_forecast_remaining_today'')
|
|
| float }}'
|
|
required_energy: '{{ states(''input_number.required_energy_today'') | float
|
|
}}'
|
|
target_soc: '{{ states(''input_number.target_soc_kwh'') | float }}'
|
|
- choose:
|
|
- conditions:
|
|
- condition: template
|
|
value_template: '{{ target_soc > current_soc }}'
|
|
sequence:
|
|
- data:
|
|
title: Battery Charging Plan
|
|
message: 'Charging required: - SOC: {{ current_soc | round(1) }} kWh -
|
|
Forecast: {{ solar_forecast | round(1) }} kWh - Required: {{ required_energy
|
|
| round(1) }} kWh - Target: {{ target_soc | round(1) }} kWh
|
|
|
|
'
|
|
action: notify.mobile_app_phonetonia
|
|
- data:
|
|
option: STANDARD
|
|
target:
|
|
entity_id: select.ac500_ups_mode
|
|
action: select.select_option
|
|
default:
|
|
- sequence:
|
|
- data:
|
|
title: Battery Charging Plan
|
|
message: 'Charging NOT required: - SOC: {{ current_soc | round(1) }} kWh -
|
|
Forecast: {{ solar_forecast | round(1) }} kWh - Required: {{ required_energy
|
|
| round(1) }} kWh - Target: {{ target_soc | round(1) }} kWh - Triggered
|
|
by {{ trigger.platform }} on {{ trigger.entity_id or ''time'' }}
|
|
|
|
'
|
|
action: notify.mobile_app_phonetonia
|
|
enabled: false
|
|
- data:
|
|
option: PV_PRIORITY
|
|
target:
|
|
entity_id: select.ac500_ups_mode
|
|
action: select.select_option
|
|
mode: single
|
|
- id: '1748729056247'
|
|
alias: Inverter Overloading AC500
|
|
description: ''
|
|
triggers:
|
|
- trigger: numeric_state
|
|
entity_id:
|
|
- sensor.ac500_ac_output_power
|
|
for:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 1
|
|
above: 4900
|
|
conditions: []
|
|
actions:
|
|
- device_id: aea9d40bb10539ffe3160c852f70d775
|
|
domain: mobile_app
|
|
type: notify
|
|
message: Shut something down quick!
|
|
title: Inverter Overloading!
|
|
mode: single
|
|
- id: '1748729141590'
|
|
alias: Stop Charging at Target SOC AC500
|
|
description: ''
|
|
triggers:
|
|
- entity_id: sensor.available_battery_kwh
|
|
trigger: state
|
|
conditions:
|
|
- condition: template
|
|
value_template: '{{ states(''sensor.available_battery_kwh'') | float(0) > (states(''input_number.target_soc_kwh'')
|
|
| float(0) + 0.1) }}
|
|
|
|
'
|
|
- condition: template
|
|
value_template: '{{ states(''select.ac500_ups_mode'') != ''PV_PRIORITY'' }}
|
|
|
|
'
|
|
actions:
|
|
- data:
|
|
option: PV_PRIORITY
|
|
target:
|
|
entity_id: select.ac500_ups_mode
|
|
action: select.select_option
|
|
- data:
|
|
title: AC500 Charging Complete
|
|
message: SOC has reached the target level. Switched to PV_Priority mode.
|
|
action: notify.mobile_app_phonetonia
|
|
mode: single
|
|
- id: '1749405511747'
|
|
alias: Turn Thermostat fan to Auto If DR AC turns off
|
|
description: ''
|
|
triggers:
|
|
- device_id: 4066bcc1d28e7edc26e6f5cebe7b34d2
|
|
domain: climate
|
|
entity_id: 95eb37aec95ef02d5a4226fb594e52d9
|
|
type: hvac_mode_changed
|
|
to: 'off'
|
|
trigger: device
|
|
conditions:
|
|
- condition: template
|
|
value_template: '{{ is_state_attr(''climate.dining_room_2'', ''hvac_action'',
|
|
''idle'')}}'
|
|
enabled: false
|
|
actions:
|
|
- data:
|
|
fan_mode: auto
|
|
target:
|
|
entity_id: climate.dining_room_2
|
|
action: climate.set_fan_mode
|
|
mode: single
|
|
- id: '1749418389077'
|
|
alias: Adjust AC to 3° Below Thermostat Setpoint
|
|
description: ''
|
|
triggers:
|
|
- trigger: state
|
|
entity_id:
|
|
- climate.dining_room_2
|
|
attribute: target_temp_high
|
|
conditions:
|
|
- condition: state
|
|
entity_id: climate.midea_climate
|
|
state: cool
|
|
actions:
|
|
- target:
|
|
entity_id: climate.midea_climate
|
|
data:
|
|
hvac_mode: cool
|
|
temperature: '{{ (state_attr(''climate.dining_room_2'', ''target_temp_high'')
|
|
| float - 3) | round(1) }}'
|
|
action: climate.set_temperature
|
|
mode: single
|
|
- id: '1750708910674'
|
|
alias: Update Daily Max Energy Cost
|
|
description: ''
|
|
triggers:
|
|
- at: '23:59:00'
|
|
trigger: time
|
|
actions:
|
|
- data_template:
|
|
entity_id: input_number.stored_daily_energy_cost
|
|
value: '{{ states(''sensor.daily_energy_cost'') | float(0) }}'
|
|
action: input_number.set_value
|
|
mode: single
|
|
- id: '1752780254733'
|
|
alias: Put Bedroom AC in Sleep after 10 PM if it's running
|
|
description: ''
|
|
triggers:
|
|
- trigger: time
|
|
at: '23:00:00'
|
|
enabled: true
|
|
- trigger: time
|
|
at: '22:00:00'
|
|
enabled: true
|
|
conditions:
|
|
- condition: device
|
|
device_id: 98f45862a22b4be4a5d556025bc897a2
|
|
domain: climate
|
|
entity_id: aa2031e2adcb4d80e49d0853f0f6e091
|
|
type: is_hvac_mode
|
|
hvac_mode: cool
|
|
actions:
|
|
- device_id: 98f45862a22b4be4a5d556025bc897a2
|
|
domain: climate
|
|
entity_id: aa2031e2adcb4d80e49d0853f0f6e091
|
|
type: set_preset_mode
|
|
preset_mode: sleep
|
|
mode: single
|
|
- id: '1752814821593'
|
|
alias: Fetch and Store Daily High Temp
|
|
triggers:
|
|
- at: 05:00:00
|
|
trigger: time
|
|
actions:
|
|
- target:
|
|
entity_id: weather.openweathermap
|
|
data:
|
|
type: daily
|
|
response_variable: forecast_data
|
|
action: weather.get_forecasts
|
|
- target:
|
|
entity_id: input_number.daily_forecast_high_temp
|
|
data:
|
|
value: '{{ forecast_data[''weather.openweathermap''].forecast[0].temperature
|
|
}}
|
|
|
|
'
|
|
action: input_number.set_value
|
|
mode: single
|
|
- id: '1752816761304'
|
|
alias: Upstairs Window Notifications
|
|
description: ''
|
|
use_blueprint:
|
|
path: window_notification_by_floor.yaml
|
|
input:
|
|
close_sensor: binary_sensor.upstairs_should_close_windows
|
|
open_sensor: binary_sensor.upstairs_should_open_windows
|
|
notify_device: aea9d40bb10539ffe3160c852f70d775
|
|
floor_name: upstairs
|
|
input_boolean_close: input_boolean.upstairs_window_notified_close
|
|
input_boolean_open: input_boolean.upstairs_window_notified_open
|
|
forecast_sensor: sensor.forecast_high_temp
|
|
notify_entity: notify.dining_room
|
|
notify_service: notify.mobile_app_phonetonia
|
|
- id: '1752856110539'
|
|
alias: Reset window alert sent flag
|
|
description: ''
|
|
triggers:
|
|
- at: 00:30:00
|
|
trigger: time
|
|
actions:
|
|
- target:
|
|
entity_id: input_boolean.upstairs_window_notified_open
|
|
action: input_boolean.turn_off
|
|
- target:
|
|
entity_id: input_boolean.upstairs_window_notified_close
|
|
action: input_boolean.turn_off
|
|
- target:
|
|
entity_id: input_boolean.downstairs_window_notified_open
|
|
action: input_boolean.turn_off
|
|
- target:
|
|
entity_id: input_boolean.downstairs_window_notified_close
|
|
action: input_boolean.turn_off
|
|
- id: '1754770419746'
|
|
alias: Turn off Hallway Fan if Bedroom AC Turned Off
|
|
description: ''
|
|
triggers:
|
|
- device_id: 98f45862a22b4be4a5d556025bc897a2
|
|
domain: climate
|
|
entity_id: aa2031e2adcb4d80e49d0853f0f6e091
|
|
type: hvac_mode_changed
|
|
trigger: device
|
|
to: 'off'
|
|
conditions:
|
|
- condition: device
|
|
type: is_on
|
|
device_id: 2cd748a6c395137f23f9cecb977e87b5
|
|
entity_id: 2a915398e990612d965294106da913c6
|
|
domain: switch
|
|
actions:
|
|
- type: turn_off
|
|
device_id: 2cd748a6c395137f23f9cecb977e87b5
|
|
entity_id: 2a915398e990612d965294106da913c6
|
|
domain: switch
|
|
mode: single
|
|
- id: '1756503469843'
|
|
alias: Turn on AC & Hallway Fan
|
|
description: ''
|
|
triggers:
|
|
- device_id: 1a9eec07201e57674901eff31f44a84e
|
|
domain: hubitat
|
|
type: pushed
|
|
subtype: '2'
|
|
trigger: device
|
|
conditions: []
|
|
actions:
|
|
- type: turn_on
|
|
device_id: 2cd748a6c395137f23f9cecb977e87b5
|
|
entity_id: 2a915398e990612d965294106da913c6
|
|
domain: switch
|
|
- delay:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 5
|
|
milliseconds: 0
|
|
- action: climate.turn_on
|
|
metadata: {}
|
|
data: {}
|
|
target:
|
|
entity_id: climate.151732605303264_climate
|
|
- delay:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 5
|
|
milliseconds: 0
|
|
- device_id: 98f45862a22b4be4a5d556025bc897a2
|
|
domain: climate
|
|
entity_id: aa2031e2adcb4d80e49d0853f0f6e091
|
|
type: set_hvac_mode
|
|
hvac_mode: cool
|
|
mode: single
|
|
- id: '1756503515303'
|
|
alias: Turn off AC & Hallway Fan
|
|
description: ''
|
|
triggers:
|
|
- device_id: 1a9eec07201e57674901eff31f44a84e
|
|
domain: hubitat
|
|
type: held
|
|
subtype: '2'
|
|
trigger: device
|
|
conditions: []
|
|
actions:
|
|
- type: turn_off
|
|
device_id: 2cd748a6c395137f23f9cecb977e87b5
|
|
entity_id: 2a915398e990612d965294106da913c6
|
|
domain: switch
|
|
- delay:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 5
|
|
milliseconds: 0
|
|
- action: climate.turn_off
|
|
metadata: {}
|
|
data: {}
|
|
target:
|
|
entity_id: climate.151732605303264_climate
|
|
mode: single
|
|
- id: '1756503578245'
|
|
alias: Turn On Hallway Fan
|
|
description: ''
|
|
triggers:
|
|
- device_id: 31f7eddbfb74f06880995a568788e62d
|
|
domain: hubitat
|
|
type: double_tapped
|
|
subtype: '1'
|
|
metadata: {}
|
|
trigger: device
|
|
conditions: []
|
|
actions:
|
|
- type: turn_on
|
|
device_id: 2cd748a6c395137f23f9cecb977e87b5
|
|
entity_id: 2a915398e990612d965294106da913c6
|
|
domain: switch
|
|
mode: single
|
|
- id: '1756503610857'
|
|
alias: Turn Off Hallway Fan
|
|
description: ''
|
|
triggers:
|
|
- device_id: 31f7eddbfb74f06880995a568788e62d
|
|
domain: hubitat
|
|
type: double_tapped
|
|
subtype: '2'
|
|
trigger: device
|
|
conditions: []
|
|
actions:
|
|
- type: turn_off
|
|
device_id: 2cd748a6c395137f23f9cecb977e87b5
|
|
entity_id: 2a915398e990612d965294106da913c6
|
|
domain: switch
|
|
mode: single
|
|
- id: '1747197008762'
|
|
alias: 3am Battery Precharge Calculation - AC300
|
|
description: ''
|
|
triggers:
|
|
- at: 03:00:00
|
|
trigger: time
|
|
- at: 04:00:00
|
|
trigger: time
|
|
- at: 05:00:00
|
|
trigger: time
|
|
- at: 06:00:00
|
|
trigger: time
|
|
- entity_id: sensor.energy_production_today_remaining
|
|
trigger: state
|
|
conditions:
|
|
- condition: template
|
|
value_template: '{{ now().weekday() in [0, 1, 2, 3, 4] and now().hour < 16 and
|
|
now().hour > 3 }}'
|
|
actions:
|
|
- data: {}
|
|
action: script.set_target_soc
|
|
- variables:
|
|
current_soc: '{{ states(''sensor.available_battery_kwh'') | float }}'
|
|
solar_forecast: '{{ states(''sensor.energy_production_today_remaining'') | float
|
|
}}'
|
|
required_energy: '{{ states(''input_number.required_energy_today'') | float
|
|
}}'
|
|
target_soc: '{{ states(''input_number.target_soc_kwh'') | float }}'
|
|
- choose:
|
|
- conditions:
|
|
- condition: template
|
|
value_template: '{{ target_soc > current_soc }}'
|
|
sequence:
|
|
- data:
|
|
title: Battery Charging Plan
|
|
message: 'Charging required: - SOC: {{ current_soc | round(1) }} kWh -
|
|
Forecast: {{ solar_forecast | round(1) }} kWh - Required: {{ required_energy
|
|
| round(1) }} kWh - Target: {{ target_soc | round(1) }} kWh
|
|
|
|
'
|
|
action: notify.mobile_app_phonetonia
|
|
- data:
|
|
option: STANDARD
|
|
target:
|
|
entity_id:
|
|
- select.ac300_ups_mode
|
|
action: select.select_option
|
|
default:
|
|
- sequence:
|
|
- data:
|
|
title: Battery Charging Plan
|
|
message: 'Charging NOT required: - SOC: {{ current_soc | round(1) }} kWh -
|
|
Forecast: {{ solar_forecast | round(1) }} kWh - Required: {{ required_energy
|
|
| round(1) }} kWh - Target: {{ target_soc | round(1) }} kWh - Triggered
|
|
by {{ trigger.platform }} on {{ trigger.entity_id or ''time'' }}
|
|
|
|
'
|
|
action: notify.mobile_app_phonetonia
|
|
enabled: false
|
|
- data:
|
|
option: PV_PRIORITY
|
|
target:
|
|
entity_id:
|
|
- select.ac300_ups_mode
|
|
action: select.select_option
|
|
mode: single
|
|
- id: '1747426733415'
|
|
alias: Inverter overloading - AC300
|
|
description: ''
|
|
triggers:
|
|
- trigger: numeric_state
|
|
entity_id:
|
|
- sensor.ac300_ac_output_power
|
|
for:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 1
|
|
above: 2900
|
|
conditions: []
|
|
actions:
|
|
- device_id: aea9d40bb10539ffe3160c852f70d775
|
|
domain: mobile_app
|
|
type: notify
|
|
message: Shut something down quick!
|
|
title: Inverter Overloading!
|
|
mode: single
|
|
- id: '1747426972396'
|
|
alias: Power Spiking During Peak
|
|
description: ''
|
|
triggers:
|
|
- trigger: numeric_state
|
|
entity_id:
|
|
- sensor.vuetonia_123_1min
|
|
for:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 10
|
|
above: 1400
|
|
conditions:
|
|
- condition: time
|
|
after: '17:00:00'
|
|
before: '21:00:00'
|
|
weekday:
|
|
- mon
|
|
- tue
|
|
- wed
|
|
- thu
|
|
- fri
|
|
actions:
|
|
- action: notify.mobile_app_phonetonia
|
|
metadata: {}
|
|
data:
|
|
title: Power is spiking during Peak
|
|
message: Do you really want to do that?
|
|
- action: tts.speak
|
|
target:
|
|
entity_id: tts.piper
|
|
data:
|
|
cache: true
|
|
media_player_entity_id: media_player.kitchen_front
|
|
message: Power is spiking during Peak. Do you really want to do that?
|
|
mode: single
|
|
- id: '1747427915822'
|
|
alias: Kitchen Overloading
|
|
description: ''
|
|
triggers:
|
|
- trigger: numeric_state
|
|
entity_id:
|
|
- sensor.kitchen_13_1min
|
|
for:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 1
|
|
above: 2000
|
|
conditions: []
|
|
actions:
|
|
- device_id: aea9d40bb10539ffe3160c852f70d775
|
|
domain: mobile_app
|
|
type: notify
|
|
message: Shut something down quick!
|
|
title: Kitchen Overloading!
|
|
mode: single
|
|
- id: '1748728948910'
|
|
alias: 3am Battery Precharge Calculation - AC500
|
|
description: ''
|
|
triggers:
|
|
- at: 03:00:00
|
|
trigger: time
|
|
- at: 04:00:00
|
|
trigger: time
|
|
- at: 05:00:00
|
|
trigger: time
|
|
- at: 06:00:00
|
|
trigger: time
|
|
- entity_id:
|
|
- sensor.solcast_pv_forecast_forecast_remaining_today
|
|
trigger: state
|
|
conditions:
|
|
- condition: template
|
|
value_template: '{{ now().weekday() in [0, 1, 2, 3, 4] and now().hour < 16 and
|
|
now().hour > 3 }}'
|
|
actions:
|
|
- data: {}
|
|
action: script.set_target_soc
|
|
- variables:
|
|
current_soc: '{{ states(''sensor.available_battery_kwh'') | float }}'
|
|
solar_forecast: '{{ states(''sensor.solcast_pv_forecast_forecast_remaining_today'')
|
|
| float }}'
|
|
required_energy: '{{ states(''input_number.required_energy_today'') | float
|
|
}}'
|
|
target_soc: '{{ states(''input_number.target_soc_kwh'') | float }}'
|
|
- choose:
|
|
- conditions:
|
|
- condition: template
|
|
value_template: '{{ target_soc > current_soc }}'
|
|
sequence:
|
|
- data:
|
|
title: Battery Charging Plan
|
|
message: 'Charging required: - SOC: {{ current_soc | round(1) }} kWh -
|
|
Forecast: {{ solar_forecast | round(1) }} kWh - Required: {{ required_energy
|
|
| round(1) }} kWh - Target: {{ target_soc | round(1) }} kWh
|
|
|
|
'
|
|
action: notify.mobile_app_phonetonia
|
|
- data:
|
|
option: STANDARD
|
|
target:
|
|
entity_id: select.ac500_ups_mode
|
|
action: select.select_option
|
|
default:
|
|
- sequence:
|
|
- data:
|
|
title: Battery Charging Plan
|
|
message: 'Charging NOT required: - SOC: {{ current_soc | round(1) }} kWh -
|
|
Forecast: {{ solar_forecast | round(1) }} kWh - Required: {{ required_energy
|
|
| round(1) }} kWh - Target: {{ target_soc | round(1) }} kWh - Triggered
|
|
by {{ trigger.platform }} on {{ trigger.entity_id or ''time'' }}
|
|
|
|
'
|
|
action: notify.mobile_app_phonetonia
|
|
enabled: false
|
|
- data:
|
|
option: PV_PRIORITY
|
|
target:
|
|
entity_id: select.ac500_ups_mode
|
|
action: select.select_option
|
|
mode: single
|
|
- id: '1748729056247'
|
|
alias: Inverter Overloading AC500
|
|
description: ''
|
|
triggers:
|
|
- trigger: numeric_state
|
|
entity_id:
|
|
- sensor.ac500_ac_output_power
|
|
for:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 1
|
|
above: 4900
|
|
conditions: []
|
|
actions:
|
|
- device_id: aea9d40bb10539ffe3160c852f70d775
|
|
domain: mobile_app
|
|
type: notify
|
|
message: Shut something down quick!
|
|
title: Inverter Overloading!
|
|
mode: single
|
|
- id: '1756503578245'
|
|
alias: Turn On Hallway Fan
|
|
description: ''
|
|
triggers:
|
|
- device_id: 31f7eddbfb74f06880995a568788e62d
|
|
domain: hubitat
|
|
type: double_tapped
|
|
subtype: '1'
|
|
metadata: {}
|
|
trigger: device
|
|
conditions: []
|
|
actions:
|
|
- type: turn_on
|
|
device_id: 2cd748a6c395137f23f9cecb977e87b5
|
|
entity_id: 2a915398e990612d965294106da913c6
|
|
domain: switch
|
|
mode: single
|
|
- id: '1756503610857'
|
|
alias: Turn Off Hallway Fan
|
|
description: ''
|
|
triggers:
|
|
- device_id: 31f7eddbfb74f06880995a568788e62d
|
|
domain: hubitat
|
|
type: double_tapped
|
|
subtype: '2'
|
|
trigger: device
|
|
conditions: []
|
|
actions:
|
|
- type: turn_off
|
|
device_id: 2cd748a6c395137f23f9cecb977e87b5
|
|
entity_id: 2a915398e990612d965294106da913c6
|
|
domain: switch
|
|
mode: single
|
|
- id: '1747173552082'
|
|
alias: Fridge About To Thaw
|
|
description: ''
|
|
triggers:
|
|
- trigger: numeric_state
|
|
entity_id:
|
|
- sensor.vuetonia_11_1min
|
|
for:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 30
|
|
above: 200
|
|
conditions: []
|
|
actions:
|
|
- action: notify.mobile_app_phonetonia
|
|
metadata: {}
|
|
data:
|
|
message: Fridge is Thawing! (600w)
|
|
title: Take Heed until {{ (now() + timedelta(minutes=14)).strftime('%-I:%M %p')
|
|
}}
|
|
- delay:
|
|
hours: 12
|
|
minutes: 13
|
|
seconds: 0
|
|
milliseconds: 0
|
|
- action: notify.mobile_app_phonetonia
|
|
metadata: {}
|
|
data:
|
|
message: Fridge is about to start thawing (600w!)
|
|
title: Take heed until {{ (now() + timedelta(minutes=16)).strftime('%-I:%M %p')
|
|
}}
|
|
mode: single
|
|
- id: '1720664293249'
|
|
alias: Temp Equalization
|
|
description: Turns off AC if temps are equalized
|
|
trigger:
|
|
- platform: numeric_state
|
|
entity_id: weather.home
|
|
attribute: temperature
|
|
above: '70'
|
|
- platform: numeric_state
|
|
entity_id: weather.home
|
|
attribute: temperature
|
|
below: '60'
|
|
condition: []
|
|
action: []
|
|
mode: single
|
|
- id: '1750708910674'
|
|
alias: Update Daily Max Energy Cost
|
|
description: ''
|
|
triggers:
|
|
- at: '23:59:00'
|
|
trigger: time
|
|
actions:
|
|
- data_template:
|
|
entity_id: input_number.stored_daily_energy_cost
|
|
value: '{{ states(''sensor.daily_energy_cost'') | float(0) }}'
|
|
action: input_number.set_value
|
|
mode: single
|
|
- id: '1752814821593'
|
|
alias: Fetch and Store Daily High Temp
|
|
triggers:
|
|
- at: 05:00:00
|
|
trigger: time
|
|
actions:
|
|
- target:
|
|
entity_id: weather.openweathermap
|
|
data:
|
|
type: daily
|
|
response_variable: forecast_data
|
|
action: weather.get_forecasts
|
|
- target:
|
|
entity_id: input_number.daily_forecast_high_temp
|
|
data:
|
|
value: '{{ forecast_data[''weather.openweathermap''].forecast[0].temperature
|
|
}}
|
|
|
|
'
|
|
action: input_number.set_value
|
|
mode: single
|
|
- alias: Power Spiking During Peak
|
|
description: ''
|
|
triggers:
|
|
- trigger: numeric_state
|
|
entity_id:
|
|
- sensor.vuetonia_123_1min
|
|
for:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 10
|
|
above: 1400
|
|
conditions:
|
|
- condition: time
|
|
after: '17:00:00'
|
|
before: '21:00:00'
|
|
weekday:
|
|
- mon
|
|
- tue
|
|
- wed
|
|
- thu
|
|
- fri
|
|
actions:
|
|
- action: notify.mobile_app_phonetonia
|
|
metadata: {}
|
|
data:
|
|
title: Power is spiking during Peak
|
|
message: Do you really want to do that?
|
|
- action: tts.speak
|
|
target:
|
|
entity_id: tts.piper
|
|
data:
|
|
cache: true
|
|
media_player_entity_id:
|
|
- media_player.kitchen_front
|
|
- media_player.entry
|
|
- media_player.dan_bedroom
|
|
- media_player.office
|
|
- media_player.pixel_tablet
|
|
- media_player.unnamed_room
|
|
message: Power is spiking during Peak. Do you really want to do that?
|
|
mode: single
|
|
- id: '1721399007371'
|
|
alias: Solar Dump When Full
|
|
description: If Battery > 88%, and dining room > 75 deg F, and power differential
|
|
> 1000w, run the AC for 30 mins.
|
|
trigger:
|
|
- platform: numeric_state
|
|
entity_id:
|
|
- sensor.ac300_1_total_battery_percent_2
|
|
for:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 0
|
|
above: 88
|
|
condition:
|
|
- condition: numeric_state
|
|
entity_id: sensor.dining_room_current_temperature
|
|
above: 70
|
|
- condition: numeric_state
|
|
entity_id: sensor.ac300_1_total_battery_percent_2
|
|
above: 80
|
|
enabled: false
|
|
- condition: numeric_state
|
|
entity_id: sensor.power_differential_ac300_1
|
|
above: 1000
|
|
action:
|
|
- alias: Set up variables to make action events unique
|
|
variables:
|
|
action_yes: '{{ ''YES_'' ~ context.id }}'
|
|
action_no: '{{ ''NO_'' ~ context.id }}'
|
|
- alias: Send actionable notification
|
|
service: notify.mobile_app_phonetonia
|
|
data:
|
|
message: Battery Fully Charged, turn on AC?
|
|
data:
|
|
actions:
|
|
- action: '{{ action_yes }}'
|
|
title: 'Yes'
|
|
- action: '{{ action_no }}'
|
|
title: 'No'
|
|
- wait_for_trigger:
|
|
- platform: event
|
|
event_type: mobile_app_notification_action
|
|
event_data:
|
|
action: '{{ action_yes }}'
|
|
- platform: event
|
|
event_type: mobile_app_notification_action
|
|
event_data:
|
|
action: '{{ action_no }}'
|
|
continue_on_timeout: false
|
|
- alias: Do something in response to selecting an action
|
|
choose:
|
|
- alias: Yes action was selected
|
|
conditions:
|
|
- condition: template
|
|
value_template: '{{ wait.trigger.event.data.action == action_yes }}'
|
|
sequence:
|
|
- service: notify.mobile_app_phonetonia
|
|
data:
|
|
message: Turning on Furnace Intake AC
|
|
- service: climate.set_hvac_mode
|
|
metadata: {}
|
|
data:
|
|
hvac_mode: cool
|
|
target:
|
|
entity_id:
|
|
- climate.151732605274240_climate
|
|
- delay:
|
|
hours: 0
|
|
minutes: 30
|
|
seconds: 0
|
|
milliseconds: 0
|
|
- service: climate.set_hvac_mode
|
|
metadata: {}
|
|
data:
|
|
hvac_mode: 'off'
|
|
target:
|
|
entity_id: climate.151732605274240_climate
|
|
- alias: No action was selected
|
|
conditions:
|
|
- condition: template
|
|
value_template: '{{ wait.trigger.event.data.action == action_no }}'
|
|
sequence:
|
|
- service: notify.mobile_app_phonetonia
|
|
data:
|
|
message: The No action was selected
|
|
enabled: false
|
|
mode: restart
|
|
- id: '1747198733919'
|
|
alias: Stop Charging at Target SOC
|
|
description: ''
|
|
triggers:
|
|
- entity_id: sensor.available_battery_kwh
|
|
trigger: state
|
|
conditions:
|
|
- condition: template
|
|
value_template: '{{ states(''sensor.available_battery_kwh'') | float(0) > (states(''input_number.target_soc_kwh'')
|
|
| float(0) + 0.1) }}
|
|
|
|
'
|
|
- condition: template
|
|
value_template: '{{ states(''select.ac300_ups_mode'') != ''PV_PRIORITY'' }}
|
|
|
|
'
|
|
actions:
|
|
- data:
|
|
option: PV_PRIORITY
|
|
target:
|
|
entity_id: select.ac300_ups_mode
|
|
action: select.select_option
|
|
- data:
|
|
title: AC300 Charging Complete
|
|
message: SOC has reached the target level. Switched to PV_Priority mode.
|
|
action: notify.mobile_app_phonetonia
|
|
mode: single
|
|
- id: '1747329156554'
|
|
alias: Update All-Time Max DC Input Voltage - AC300
|
|
description: ''
|
|
triggers:
|
|
- entity_id: sensor.ac300_dc_input_voltage1
|
|
trigger: state
|
|
conditions:
|
|
- condition: template
|
|
value_template: "{{ states('sensor.ac300_dc_input_voltage1') | float > \n states('input_number.all_time_high_dc_input_voltage')\
|
|
\ | float }}\n"
|
|
actions:
|
|
- target:
|
|
entity_id:
|
|
- input_number.all_time_high_dc_input_voltage
|
|
data:
|
|
value: '{{ states(''sensor.ac300_dc_input_voltage1'') | float }}'
|
|
action: input_number.set_value
|
|
mode: single
|
|
- id: '1748682156059'
|
|
alias: Update All Time High DC Input Voltage - AC500
|
|
description: ''
|
|
triggers:
|
|
- entity_id:
|
|
- sensor.ac500_dc_input_voltage1
|
|
trigger: state
|
|
conditions:
|
|
- condition: template
|
|
value_template: "{{ states('sensor.ac500_dc_input_voltage1') | float > \n states('input_number.all_time_high_dc_input_voltage_ac500')\
|
|
\ | float }}\n"
|
|
actions:
|
|
- target:
|
|
entity_id:
|
|
- input_number.all_time_high_dc_input_voltage_ac500
|
|
data:
|
|
value: '{{ states(''sensor.ac500_dc_input_voltage1'') | float }}'
|
|
action: input_number.set_value
|
|
mode: single
|
|
- id: '1748729141590'
|
|
alias: Stop Charging at Target SOC AC500
|
|
description: ''
|
|
triggers:
|
|
- entity_id: sensor.available_battery_kwh
|
|
trigger: state
|
|
conditions:
|
|
- condition: template
|
|
value_template: '{{ states(''sensor.available_battery_kwh'') | float(0) > (states(''input_number.target_soc_kwh'')
|
|
| float(0) + 0.1) }}
|
|
|
|
'
|
|
- condition: template
|
|
value_template: '{{ states(''select.ac500_ups_mode'') != ''PV_PRIORITY'' }}
|
|
|
|
'
|
|
actions:
|
|
- data:
|
|
option: PV_PRIORITY
|
|
target:
|
|
entity_id: select.ac500_ups_mode
|
|
action: select.select_option
|
|
- data:
|
|
title: AC500 Charging Complete
|
|
message: SOC has reached the target level. Switched to PV_Priority mode.
|
|
action: notify.mobile_app_phonetonia
|
|
mode: single
|
|
- id: '1721399007371'
|
|
alias: Solar Dump When Full
|
|
description: If Battery > 88%, and dining room > 75 deg F, and power differential
|
|
> 1000w, run the AC for 30 mins.
|
|
trigger:
|
|
- platform: numeric_state
|
|
entity_id:
|
|
- sensor.ac300_1_total_battery_percent_2
|
|
for:
|
|
hours: 0
|
|
minutes: 0
|
|
seconds: 0
|
|
above: 88
|
|
condition:
|
|
- condition: numeric_state
|
|
entity_id: sensor.dining_room_current_temperature
|
|
above: 70
|
|
- condition: numeric_state
|
|
entity_id: sensor.ac300_1_total_battery_percent_2
|
|
above: 80
|
|
enabled: false
|
|
- condition: numeric_state
|
|
entity_id: sensor.power_differential_ac300_1
|
|
above: 1000
|
|
action:
|
|
- alias: Set up variables to make action events unique
|
|
variables:
|
|
action_yes: '{{ ''YES_'' ~ context.id }}'
|
|
action_no: '{{ ''NO_'' ~ context.id }}'
|
|
- alias: Send actionable notification
|
|
service: notify.mobile_app_phonetonia
|
|
data:
|
|
message: Battery Fully Charged, turn on AC?
|
|
data:
|
|
actions:
|
|
- action: '{{ action_yes }}'
|
|
title: 'Yes'
|
|
- action: '{{ action_no }}'
|
|
title: 'No'
|
|
- wait_for_trigger:
|
|
- platform: event
|
|
event_type: mobile_app_notification_action
|
|
event_data:
|
|
action: '{{ action_yes }}'
|
|
- platform: event
|
|
event_type: mobile_app_notification_action
|
|
event_data:
|
|
action: '{{ action_no }}'
|
|
continue_on_timeout: false
|
|
- alias: Do something in response to selecting an action
|
|
choose:
|
|
- alias: Yes action was selected
|
|
conditions:
|
|
- condition: template
|
|
value_template: '{{ wait.trigger.event.data.action == action_yes }}'
|
|
sequence:
|
|
- service: notify.mobile_app_phonetonia
|
|
data:
|
|
message: Turning on Furnace Intake AC
|
|
- service: climate.set_hvac_mode
|
|
data:
|
|
hvac_mode: cool
|
|
target:
|
|
entity_id:
|
|
- climate.151732605274240_climate
|
|
- delay:
|
|
minutes: 30
|
|
- service: climate.set_hvac_mode
|
|
data:
|
|
hvac_mode: 'off'
|
|
target:
|
|
entity_id: climate.151732605274240_climate
|
|
- alias: No action was selected
|
|
conditions:
|
|
- condition: template
|
|
value_template: '{{ wait.trigger.event.data.action == action_no }}'
|
|
sequence:
|
|
- service: notify.mobile_app_phonetonia
|
|
data:
|
|
message: The No action was selected
|
|
enabled: false
|
|
mode: restart
|
|
- id: '1748729141590'
|
|
alias: Stop Charging at Target SOC AC500
|
|
triggers:
|
|
- entity_id: sensor.available_battery_kwh
|
|
trigger: state
|
|
conditions:
|
|
- condition: template
|
|
value_template: '{{ states("sensor.available_battery_kwh") | float(0) > (states("input_number.target_soc_kwh")
|
|
| float(0) + 0.1) }}'
|
|
- condition: template
|
|
value_template: '{{ states("select.ac500_ups_mode") != "PV_PRIORITY" }}'
|
|
actions:
|
|
- data:
|
|
option: PV_PRIORITY
|
|
target:
|
|
entity_id: select.ac500_ups_mode
|
|
action: select.select_option
|
|
- data:
|
|
title: AC500 Charging Complete
|
|
message: SOC has reached the target level. Switched to PV_Priority mode.
|
|
action: notify.mobile_app_phonetonia
|
|
mode: single
|
|
- id: '1748682156059'
|
|
alias: Update All Time High DC Input Voltage - AC500
|
|
triggers:
|
|
- entity_id:
|
|
- sensor.ac500_dc_input_voltage1
|
|
trigger: state
|
|
conditions:
|
|
- condition: template
|
|
value_template: '{{ states("sensor.ac500_dc_input_voltage1") | float > states("input_number.all_time_high_dc_input_voltage_ac500")
|
|
| float }}'
|
|
actions:
|
|
- target:
|
|
entity_id:
|
|
- input_number.all_time_high_dc_input_voltage_ac500
|
|
data:
|
|
value: '{{ states("sensor.ac500_dc_input_voltage1") | float }}'
|
|
action: input_number.set_value
|
|
mode: single
|
|
- id: '1747118266065'
|
|
alias: Set UPS Mode to STANDARD at 2:00 AM
|
|
description: ''
|
|
triggers:
|
|
- at: 02:00:00
|
|
trigger: time
|
|
conditions:
|
|
- condition: template
|
|
value_template: '{{ now().weekday() in [0, 1, 2, 3, 6] }}'
|
|
actions:
|
|
- data:
|
|
option: STANDARD
|
|
target:
|
|
entity_id: select.ac300_ups_mode
|
|
action: select.select_option
|
|
mode: single
|
|
- id: '1747120298503'
|
|
alias: Set UPS Mode to PV_PRIORITY at 7:00 AM
|
|
description: ''
|
|
triggers:
|
|
- at: 07:00:00
|
|
trigger: time
|
|
conditions:
|
|
- condition: template
|
|
value_template: '{{ now().weekday() in [0, 1, 2, 3, 6] }}'
|
|
actions:
|
|
- data:
|
|
option: PV_PRIORITY
|
|
target:
|
|
entity_id: select.ac300_ups_mode
|
|
action: select.select_option
|
|
mode: single
|
|
- id: '1722066676567'
|
|
alias: Open Windows
|
|
description: ''
|
|
trigger:
|
|
- platform: numeric_state
|
|
entity_id:
|
|
- sensor.ambient_vs_indoor_temp
|
|
for:
|
|
hours: 0
|
|
minutes: 5
|
|
seconds: 0
|
|
below: -1
|
|
condition: []
|
|
action:
|
|
- service: notify.mobile_app_phonetonia
|
|
metadata: {}
|
|
data:
|
|
title: Notification
|
|
message: Open the windows!
|
|
- service: notify.automation_freepdx_com
|
|
metadata: {}
|
|
data:
|
|
message: Open The Windows
|
|
title: Notification
|
|
target: 2152194322@vtext.com
|
|
mode: single
|
|
- id: '1722066859673'
|
|
alias: Close Windows
|
|
description: ''
|
|
trigger:
|
|
- platform: numeric_state
|
|
entity_id:
|
|
- sensor.ambient_vs_indoor_temp
|
|
for:
|
|
hours: 0
|
|
minutes: 5
|
|
seconds: 0
|
|
above: 1
|
|
condition: []
|
|
action:
|
|
- service: notify.mobile_app_phonetonia
|
|
metadata: {}
|
|
data:
|
|
title: Notification
|
|
message: Close the windows!
|
|
- service: notify.automation_freepdx_com
|
|
metadata: {}
|
|
data:
|
|
message: Close The Windows
|
|
title: Notification
|
|
target: 2152194322@vtext.com
|
|
mode: single
|
|
- id: '1752816761304'
|
|
alias: Upstairs Window Notifications
|
|
description: ''
|
|
use_blueprint:
|
|
path: window_notification_by_floor.yaml
|
|
input:
|
|
close_sensor: binary_sensor.upstairs_should_close_windows
|
|
open_sensor: binary_sensor.upstairs_should_open_windows
|
|
notify_device: aea9d40bb10539ffe3160c852f70d775
|
|
floor_name: upstairs
|
|
input_boolean_close: input_boolean.upstairs_window_notified_close
|
|
input_boolean_open: input_boolean.upstairs_window_notified_open
|
|
forecast_sensor: sensor.forecast_high_temp
|
|
notify_entity: notify.dining_room
|
|
notify_service: notify.mobile_app_phonetonia
|
|
- id: '1752856110539'
|
|
alias: Reset window alert sent flag
|
|
description: ''
|
|
triggers:
|
|
- at: 00:30:00
|
|
trigger: time
|
|
actions:
|
|
- target:
|
|
entity_id: input_boolean.upstairs_window_notified_open
|
|
action: input_boolean.turn_off
|
|
- target:
|
|
entity_id: input_boolean.upstairs_window_notified_close
|
|
action: input_boolean.turn_off
|
|
- target:
|
|
entity_id: input_boolean.downstairs_window_notified_open
|
|
action: input_boolean.turn_off
|
|
- target:
|
|
entity_id: input_boolean.downstairs_window_notified_close
|
|
action: input_boolean.turn_off
|