Guest User

sessy battery control

a guest
Oct 17th, 2023
1,204
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
YAML 3.96 KB | None | 0 0
  1. # Requirements:
  2. #   - One or more Sessy devices
  3. #   - PimDoos' Sessy integration https://github.com/PimDoos/ha-sessy
  4. #   - nordpool integration
  5. #   - TheFes' variables sensor https://community.home-assistant.io/t/wth-cant-input-helpers-be-read-only-in-ui/467562/13
  6. #   - Adding the correct entity_id's in the # CHANGE_ME blocks near the bottom.
  7.  
  8. automation:
  9.   - id: "sessy_battery_control"
  10.     alias: "Sessy battery control"
  11.     description: ""
  12.     trigger:
  13.       - platform: time_pattern
  14.         hours: "*"
  15.         minutes: "0"
  16.         seconds: "10"
  17.     condition: []
  18.     action:
  19.       choose:
  20.         - conditions:
  21.             - condition: template
  22.               value_template: "{{ is_state('binary_sensor.sessy_cheapest_hours_night', 'on') }}"
  23.           sequence:
  24.             - service: script.sessy_start_charge
  25.         - conditions:
  26.             - condition: template
  27.               value_template: "{{ is_state('binary_sensor.sessy_cheapest_hours_day', 'on') }}"
  28.           sequence:
  29.             - service: script.sessy_start_charge
  30.         - conditions:
  31.             - condition: template
  32.               value_template: "{{ states('sensor.nordpool') | float > ( state_attr('sensor.variables', 'variables').sessy_battery_control_stored_price | float * 1.20 ) }}"
  33.           sequence:
  34.             - event: set_variable
  35.               event_data:
  36.                 key: sessy_desired_strategy
  37.                 value: nom
  38.             - service: script.sessy_set_strategy
  39.       default:
  40.         - event: set_variable
  41.           event_data:
  42.             key: sessy_desired_strategy
  43.             value: idle
  44.         - service: script.sessy_set_strategy
  45.  
  46. template:
  47.   - binary_sensor:
  48.       - name: "Sessy cheapest hours night"
  49.         unique_id: sessy_cheapest_hours_night
  50.         state: >-
  51.           {% set night=state_attr( 'sensor.nordpool', 'raw_today')[:12] |sort(attribute='value') %}
  52.           {{   (now() >= night[0].start and now() <= night[0].end)
  53.             or (now() >= night[1].start and now() <= night[1].end)
  54.             or (now() >= night[2].start and now() <= night[2].end) }}
  55.   - binary_sensor:
  56.       - name: "Sessy cheapest hours day"
  57.         unique_id: sessy_cheapest_hours_day
  58.         state: >-
  59.           {% set day=state_attr( 'sensor.nordpool', 'raw_today')[12:] |sort(attribute='value') %}
  60.           {{   (now() >= day[0].start and now() <= day[0].end)
  61.             or (now() >= day[1].start and now() <= day[1].end)
  62.             or (now() >= day[2].start and now() <= day[2].end) }}
  63.  
  64. script:
  65.   sessy_start_charge:
  66.     sequence:
  67.       - event: set_variable
  68.         event_data:
  69.           key: sessy_desired_strategy
  70.           value: api
  71.       - service: script.sessy_set_strategy
  72.       - delay:
  73.           hours: 0
  74.           minutes: 0
  75.           seconds: 5
  76.           milliseconds: 0
  77.       - event: set_variable
  78.         event_data:
  79.           key: sessy_desired_setpoint
  80.           value: "-1700"
  81.       - service: script.sessy_set_setpoint
  82.       - event: set_variable
  83.         event_data:
  84.           key: sessy_battery_control_stored_price
  85.           value: "{{ states('sensor.nordpool') | float(3) }}"
  86.   sessy_reset_last_charge_price:
  87.     sequence:
  88.       - event: set_variable
  89.         event_data:
  90.           key: sessy_battery_control_stored_price
  91.           value: 0.172
  92.   sessy_set_strategy:
  93.     sequence:
  94.       - service: select.select_option
  95.         data:
  96.           option: "{{ state_attr('sensor.variables', 'variables').sessy_desired_strategy }}"
  97.         target:
  98.           entity_id:
  99.            # CHANGE_ME
  100.             - select.sessy_xxxx_power_strategy
  101.             - select.sessy_yyyy_power_strategy
  102.   sessy_set_setpoint:
  103.     sequence:
  104.       - service: number.set_value
  105.         data:
  106.           value: "{{ state_attr('sensor.variables', 'variables').sessy_desired_setpoint }}"
  107.         target:
  108.           entity_id:
  109.            # CHANGE_ME
  110.             - number.sessy_xxxx_power_setpoint
  111.             - number.sessy_yyyy_power_setpoint
  112.  
Advertisement
Add Comment
Please, Sign In to add comment