Closed itsjxck closed 1 year ago
As a stop gap, I wonder if the following could help you?
What about if you set an automation that sets the Hypervolt Mode
to Super Eco
when the price is 12p or higher, and one that sets it to Boost
when it is below 12p ?
This would then only charge the car when the price is sub-12p (which I think is your aim?).
Incase you aren't aware, Super Eco means that the charger will only use excess Solar that would otherwise go to the grid charge the car - it doesn't mater if you don't have solar, it just means it will never be able to use it.. the same as at night or a cloudy day.
I do something effectvely the same where I am on Octopus Intelligent, and put the HV into Super Eco mode (i.e. Solar only) when I'm on peak price, allowing the cars to charge from any excess solar but not use any mains elec during peak prices.
Anyhow... just a thought incase it helped!
Oh interesting, thank you @BadgerLoaf! I did not know that, but I will investigate; this will probably work fine for me, as my template sensors state updates every half hour with the current period price, I'll just use that as a trigger.
I'm def not expert, so maybe this isn't the right way to do it. But I just have the trigger set to detecting when the sensor changes ("the sensor" being a binary sensor that that I have setup for the on-peak / off-peak status)
So for me it changes as soon as it detects that change.
I'm pretty sure you could just set a trigger that activates when HA detects the price drops below (or goes above) the 12p mark, rather than needing to check every 30mins or something. Should make it more reactive.
Edit: Sorry ignore me.. i misread your message in my haste! And you already basically said what I put above!
I did exactly what you said and coupled it with a dropdown helper to allow me to easily change the threshold at which the automation turns on/off the charger. Probably pretty dull for experts but here's the automation:
alias: Automatic charger config based on energy unit price
description: ""
trigger:
- platform: state
entity_id:
- input_select.charge_mode
- sensor.octopus_agile_tracker
to: null
condition: []
action:
- choose:
- conditions:
- condition: or
conditions:
- condition: state
entity_id: input_select.charge_mode
state: Override
alias: Charge mode is Override
- condition: and
alias: Charge mode is 12p or less and unit price is 12p or less
conditions:
- condition: state
entity_id: input_select.charge_mode
state: 12p or less
- condition: numeric_state
entity_id: sensor.octopus_agile_tracker
below: 0.12000000000001
- condition: and
alias: Charge mode is Free and unit price is 0 or less
conditions:
- condition: state
entity_id: input_select.charge_mode
state: Free
- condition: numeric_state
entity_id: sensor.octopus_agile_tracker
below: 1.e-9
- condition: numeric_state
entity_id: sensor.octopus_agile_tracker
below: 0
alias: Always charge when negative
sequence:
- device_id: 74f9ccae89e17dfdf7ccfe001954ae6f
domain: select
entity_id: select.hypervolt_charge_mode
type: select_option
option: Boost
default:
- device_id: 74f9ccae89e17dfdf7ccfe001954ae6f
domain: select
entity_id: select.hypervolt_charge_mode
type: select_option
option: Super Eco
mode: single
@itsjxck Are you happy with the workaround? Setting the schedule times is something I'd like to add in the future, but probably when there is better support from HA for it.
Yes definitely, it works for me until setting a schedule becomes available.
Would it be possible to expose the set_schedule function from the API Client as a direct use service? I'm not overly concerned with tracking and managing the schedule itself within HA directly, as highlighted by your DateTime limitation, but in the meantime being able to make use of this to directly set the schedule by supplying a list of start/stop times would be immensely helpful.
My use case where this would be great:
I would attempt to do this myself and PR for you, but honestly I'm out of my depth with your python code (I'm a JS guy). That being said I am always keen to learn and give things a try, so if you want to contact me and watch me struggle while I ask you silly questions, my Discord is on my profile.