home-assistant_OctopusAgile
home-assistant_OctopusAgile copied to clipboard
You can't revert a moneymaker
In your example you set the climate downstairs temperature to 25 but how do you revert it when the price goes above 0? In your current example wouldn't the heating continue indefinitely at 25 unless some other timer or human intervention changes it.
I’ve made a bit of an assumption that any climate device will act in the same way as my tado thermostat, which could well be wrong. Once the price plunge is over the climate.set_hvac_mode service is called and set to auto. For my tado thermostat that will return the temp to normal. Happy to take guidance on how that should work for other devices if it’s different, or indeed feel free to take a look. For any non-climate device I make use of homesssistsnt.turn_on/off. Does my logic make sense?
Is it possible to have a config section for moneymakers_ends as I would basically like to do something like the following. It would be useful to be able to increase the target temperature for the plunge period so we can "overheat" the water or rooms if they are already at or near the target temperature and then revert when the price increases. We are using MelCloud and Heatmiser.
moneymakers:
- water_heater.mere_house:
params:
operation_list: force_hot_water
temperature: 60
- climate.lounge:
params:
hvac_modes: heat
temperature: 25
moneymakers_ends:
- water_heater.mere_house:
params:
operation_list: auto
temperature: 50
- climate.lounge:
params:
hvac_modes: heat
temperature: 20
@tbutcher365, this is what I've come up with. Because the timers and moneymakers get put into a single dict the default mode gets set when any timer finishes whether that be a moneymaker or a run at the cheapest timer based timer.
I've also added in the minimum block size the the example below as a few people want that.
Do you think that makes sense?
moneymakers:
- switch.water_heater: null #default to homeassistant.turn_on/turn_off if no service specified
- climate.lounge:
service: climate.set_temperature
data:
temperature: 25
# entity_id will be populated by the entity name above.
timers:
- climate.lounge:
day_from: today
day_to: tomorrow
time_from: '19:00:00'
time_to: '19:00:00'
numHrs: 6
block_size: 4 # minimum block size specified in half/hour blocks
requirements:
- day_from: today
day_to: tomorrow
numHrs: 1
time_from: '19:00:00'
time_to: '06:00:00'
- day_from: tomorrow
day_to: tomorrow
numHrs: 1
time_from: '10:00:00'
time_to: '16:00:00'
service: climate.set_temperature
data:
temperature: 21
# entity_id will be populated by the entity name above.
# When a service based timer finishes reset the entity with the below
# If a timer isn't service based like the simple water heater above
# then it'll default to homeassistant.turn_off
timer_defaults:
- climate.lounge:
service: climate.set_hvac_mode
data:
hvac_mode: auto
@markgdev that looks like a good solution to me, is it something you are intending to implement?
Being able to turn on my A/C to heat or cool when negative pricing, then turn off would be great, as would the block_size for washing machine / dishwasher.
Thanks
@danfulton72 it's definitely on the list! Trying to dedicate some time to his integration over the next couple of weeks, this and the blocks of time are at the top of the list once I've tidied up the all the small loose ends.