home-assistant_OctopusAgile icon indicating copy to clipboard operation
home-assistant_OctopusAgile copied to clipboard

You can't revert a moneymaker

Open tbutcher365 opened this issue 5 years ago • 5 comments
trafficstars

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.

tbutcher365 avatar May 25 '20 22:05 tbutcher365

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?

markgdev avatar May 26 '20 08:05 markgdev

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 avatar May 26 '20 14:05 tbutcher365

@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 avatar Jun 27 '20 12:06 markgdev

@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 avatar Jan 01 '21 15:01 danfulton72

@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.

markgdev avatar Jan 09 '21 21:01 markgdev