Sinds vorige week heb ik twee Sessy's hangen op zolder. Afgelopen dagen heb ik een aantal scripts geschreven voor HA om Sessy's aan te sturen. In eerste instantie om mijn twee Sessy's uit te zetten wanneer mijn EV gaat laden. Daarmee voorkom ik dat stroom uit de Sessy's de EV invloeit.
Ik deel de scripts hieronder ter leering ende vermaeck.
Twee rest_command scripts, de om een Sessy's power strategy uit te lezen:
rest_command:
sessy_get_power_strategy:
url: "http://{{host}}/api/v1/power/active_strategy"
method: GET
headers:
authorization: "Basic {{auth}}"
sessy_set_power_strategy:
url: "http://{{host}}/api/v1/power/active_strategy"
method: POST
headers:
authorization: "Basic {{auth}}"
content_type: "application/json"
payload: '{"strategy":"{{power_strategy}}"}'
Script om de power strategy van een Sessy aan te passen indien afwijkend van huidige strategie:
script:
sessy_set_power_strategy:
sequence:
- action: rest_command.sessy_get_power_strategy
data:
host: "{{host}}"
auth: "{{auth}}"
response_variable: sessy_response
- if: "{{ sessy_response['status'] == 200 }}"
then:
- variables:
current_strategy: "{{ sessy_response['content']['strategy'] }}"
- if: "{{ current_strategy != strategy }}"
then:
- action: system_log.write
data:
message: "Transition {{host}} from {{current_strategy}} to {{strategy}}"
level: info
- action: rest_command.sessy_set_power_strategy
data:
host: "{{host}}"
auth: "{{auth}}"
power_strategy: "{{strategy}}"
response_variable: sessy_response
- if: "{{ sessy_response['status'] != 200 }}"
then:
- action: system_log.write
data:
message: "Could not set new power strategy: {{sessy_response}}"
level: error
Vervolgens twee scripts om mijn twee Sessy's om te schakelen:
script:
sessy_pause:
sequence:
- action: script.sessy_set_power_strategy
data:
host: sessy1.mijndomein.nl
auth: !secret sessy1_auth
strategy: POWER_STRATEGY_IDLE
- action: script.sessy_set_power_strategy
data:
host: sessy2.mijndomein.nl
auth: !secret sessy2_auth
strategy: POWER_STRATEGY_IDLE
sessy_resume:
sequence:
- action: script.sessy_set_power_strategy
data:
host: sessy1.mijndomein.nl
auth: !secret sessy1_auth
strategy: POWER_STRATEGY_ECO
- action: script.sessy_set_power_strategy
data:
host: sessy2.mijndomein.nl
auth: !secret sessy2_auth
strategy: POWER_STRATEGY_ECO
En vier bijbehorende automatiseringen. Deze zorgen ervoor dat de Sessy's gepauzeerd worden wanneer mijn auto thuis laadt (niet-thuis laden moet natuurlijk geen invloed hebben op mijn thuisbatterijen). De vier automatiseringen doen het volgende:
1. Wanneer EV begint met laden, en indien auto thuis is, dan Sessy's pauzeren
2. Wanneer EV thuis komt, en indien auto aan het laden is, dan Sessy's pauzeren
3. Indien EV stopt met laden, dan Sessy's in ECO modus
4. Indien EV thuis wegrijdt, dan Sessy's in ECO modus
Dit is zo gekozen omdat je niet weet welke sensor in Home Assistant eerst geüpdate wordt wanneer je thuis komt en meteen gaat laden, de geo-positie of de laadstatus. Regel 1 en 2 zorgen ervoor dat volgorde van het bijwerken van de sensoren niet uitmaakt. En regels 3 en 4 zorgen dat de Sessy's altijd terugvallen in ECO modus wanneer het thuis-laden stopt.
automation:
- id: on_car_starts_charging
triggers:
trigger: state
entity_id: sensor.car_charging_status
to: "charging"
condition:
- condition: state
entity_id: device_tracker.car
state: "home"
actions:
- action: script.sessy_pause
- id: on_car_comes_home
triggers:
trigger: state
entity_id: device_tracker.car
to: "home"
condition:
- condition: state
entity_id: sensor.car_charging_status
state: "charging"
actions:
- action: script.sessy_pause
- id: on_car_stops_charging
triggers:
trigger: state
entity_id: sensor.car_charging_status
from: "charging"
actions:
- action: script.sessy_resume
- id: on_car_leaves_home
triggers:
trigger: state
entity_id: device_tracker.car
from: "home"
actions:
- action: script.sessy_resume
Tot zover. Hopelijk is dit nuttig voor mensen die nog weinig van HA weten maar wel hun Sessy's willen aansturen. Commentaar en suggesties welkom.
Het resultaat van deze scripts en automatiseringen is in bijgevoegd plaatje te zien. Zodra de EV gaat laden gaan de Sessy's op IDLE. En zodra de auto stopt met laden, of het laden even pauzeert (EV laden wordt bij mij aangestuurd door Frank Energie), dan gaan de Sessy's weer op ECO.
Ineens kwam ik in een andere thread de repo van PimDoos tegen. Daarin gezien dat de ruwe API calls die ik hierboven deed helemaal niet nodig zijn. Heb inmiddels de pause en resume scripts aangepast:
script:
sessy_pause:
sequence:
- action: select.select_option
target:
entity_id: select.sessy1_power_strategy
data:
option: "idle"
- action: select.select_option
target:
entity_id: select.sessy2_power_strategy
data:
option: "idle"
sessy_resume:
sequence:
- action: select.select_option
target:
entity_id: select.sessy1_power_strategy
data:
option: "eco"
- action: select.select_option
target:
entity_id: select.sessy2_power_strategy
data:
option: "eco"
Waarom niet de sessy intergratie gebruikt binnen HA gemaakt door Pim doos zie : https://github.com/PimDoos/ha-sessy
Had je veel werkt gescheelt en door vele Sessy eigenearen in gebruik.
Haha ja klopt, zie mijn tweede bericht. Ik had me niet voldoende verdiept in wat die integratie allemaal kon. Maar toch een middagje leuk zelf geprobeerd 🙂