Running Devices When Energy is Cheaper and Greener

Yes, that is what I plan to do. Sadly most of the Templates I found didn’t work due to Syntax Changes in HA, but I will get there eventually. I am going to test my current Automation for another day or so and play with some variables like the “Charge from Grid” and “Forcible Charge” options for my Inverter.

How have you found the DETA outdoor plugs? That was what I was looking at installing for my pool pump and heater.

Also with the move the EMHASS did you add any energy monitors to dynamically get the deferable load values or have you found they are pretty static and can just be approximated with a nominal values?

The Deta sockets have been pretty solid. They were a bit of a pain to setup with localtuya but I haven’t been able to find any other outdoor rated sockets. Sometimes the wifi is a little fiddle as the pool equipment is away from the house.

My pool heater is a big three phase heat pump and I was worried about how I could get a big enough relay to switch. In the end the heat pump has a flow switch that turns on and off with a smaller flow pump that could plug into a 10A GPO, I use the other socket for the 10A filter pump.

For the three phase heat pump I use a Shelly 3EM with CT clamps for power monitoring. The 2x 10A sockets report combined power via local tuya. So I can monitor the pumps and heat pump separately and control as two different loads in EMHASS. I set the run hours for the heat pump to the hours of extremely_low (< 5¢/ kWh) prices for the day. I set the filter pump to run for a certain daily energy or a function of the solar pv forecast for the day.

    - name: def_total_hours_pool_filter
      state: >-
        {{

          (is_state('automation.p_deferable0_automation', 'on') | int(0)) *
          (
            max(
              (4 - states('sensor.pool_daily_energy') | int(0) / 1000) | int(0),
              (states('sensor.solcast_forecast_today') | float(0) / states('sensor.solcast_peak_forecast_today') | float(0)*1000)
            )|int(0) 
          )
        }}


    - name: def_total_hours_pool_heatpump
      state: "{{is_state('automation.p_deferable1_automation','on')|int
               * max(0,((state_attr('sensor.amber_feed_in_forecast', 'forecasts')|selectattr('descriptor','eq','extremely_low')|list|count)/2)
                        )|int(0)}}"

Some details on how I have configued the Power Flow Plus Card

type: custom:power-flow-card-plus
entities:
  battery:
    entity: sensor.apf_battery_entity
    state_of_charge: sensor.gateway_battery
    invert_state: true
    color_icon: true
    color_circle: true
    display_state: one_way
    state_of_charge_unit_white_space: false
    color_state_of_charge_value: true
    display_zero_tolerance: 100
  grid:
    entity: sensor.apf_grid_entity
    invert_state: true
    display_zero_tolerance: 150
    display_state: one_way
    color_icon: true
    color_circle: true
    use_metadata: false
    secondary_info:
      entity: sensor.solaredge_imported_energy
      unit_of_measurement: kWh
      icon: ''
      color_value: false
      unit_white_space: true
      display_zero: true
  solar:
    entity: sensor.apf_generation_entity
    display_zero_state: false
    color_value: true
    color_icon: true
    invert_state: false
    use_metadata: false
    secondary_info:
      display_zero: true
      entity: sensor.apf_generation_entity_energy_daily
      unit_of_measurement: kWh
      color_value: true
  home:
    entity: sensor.apf_real_house_load
    color_icon: true
    color_value: true
    secondary_info:
      entity: sensor.apf_house_entity_energy_daily
      unit_of_measurement: kWh
      color_value: true
      display_zero: true
    override_state: false
  individual2:
    entity: sensor.ev_charging
    secondary_info:
      entity: sensor.m3p_battery
      unit_of_measurement: '%'
      color_value: true
      template: >-
        {{states('sensor.m3p_battery') + '% ' + states('sensor.my_battery')
        +'%'}}
    display_zero: true
    color_value: true
    color_icon: true
    display_zero_state: false
    calculate_flow_rate: true
    display_zero_tolerance: 50
    show_direction: false
    inverted_animation: false
    name: EV x2
    icon: mdi:car-2-plus
    color:
      - 79
      - 158
      - 79
  individual1:
    entity: sensor.hvac_power
    name: HVAC
    icon: mdi:hvac
    secondary_info:
      unit_of_measurement: kWh
      template: ''
      color_value: true
      unit_white_space: true
      decimals: 0
      display_zero: true
      display_zero_tolerance: 5
      entity: sensor.heating_cooling_daily
    color_icon: true
    color_value: true
    color:
      - 64
      - 121
      - 255
    display_zero: true
    display_zero_state: false
    calculate_flow_rate: false
    inverted_animation: false
    use_metadata: false
    display_zero_tolerance: 200
  fossil_fuel_percentage:
    display_zero: false
    color_icon: true
    display_zero_state: false
    display_zero_tolerance: 1
    color_value: true
    use_metadata: false
clickable_entities: true
display_zero_lines:
  mode: hide
  transparency: 50
  grey_color:
    - 189
    - 189
    - 189
use_new_flow_rate_model: true
w_decimals: 0
kw_decimals: 1
transparency_zero_lines: 0
min_expected_power: 1000
max_expected_power: 10000
max_flow_rate: 10
min_flow_rate: 1

Some details on how I have configured the Sankey Chart Card

height: 200
unit_prefix: M
round: 1
min_box_height: 3
min_box_distance: 5
show_states: true
show_units: true
sections:
  - entities:
      - type: entity
        children:
          - sensor.apf_solar2batt_energy_monthly
          - sensor.apf_solar2house_energy_monthly
          - sensor.apf_solar2grid_energy_monthly
        entity_id: sensor.apf_generation_entity_energy_monthly
        color: var(--warning-color)
        name: Solar
      - type: remaining_child_state
        children:
          - sensor.apf_grid2batt_energy_monthly
          - sensor.apf_grid2house_energy_monthly
        entity_id: grid
        color: var(--error-color)
        name: Grid
  - entities:
      - type: entity
        children:
          - battery
        entity_id: sensor.apf_solar2batt_energy_monthly
        color: var(--warning-color)
        name: Solar2Batt
      - type: entity
        children:
          - battery
        entity_id: sensor.apf_grid2batt_energy_monthly
        color: var(--error-color)
        name: Grid2Batt
      - type: entity
        children:
          - sensor.apf_grid_export_energy_monthly
        entity_id: sensor.apf_solar2grid_energy_monthly
        color: var(--warning-color)
        name: Solar2Grid
      - type: entity
        children:
          - sensor.apf_house_entity_energy_monthly
        entity_id: sensor.apf_solar2house_energy_monthly
        color: var(--warning-color)
        name: Solar2House
      - type: entity
        children:
          - sensor.apf_house_entity_energy_monthly
        entity_id: sensor.apf_grid2house_energy_monthly
        color: var(--error-color)
        name: Grid2House
  - entities:
      - type: remaining_parent_state
        children:
          - sensor.apf_batt2house_energy_monthly
          - sensor.apf_batt2grid_energy_monthly
        entity_id: battery
        color: var(--success-color)
        name: Battery Charging
  - entities:
      - type: entity
        children:
          - sensor.apf_house_entity_energy_monthly
        entity_id: sensor.apf_batt2house_energy_monthly
        color: var(--success-color)
        name: Batt2House
      - type: entity
        children:
          - sensor.apf_grid_export_energy_monthly
        entity_id: sensor.apf_batt2grid_energy_monthly
        color: var(--success-color)
        name: Batt2Grid
  - entities:
      - type: entity
        children: []
        entity_id: sensor.apf_house_entity_energy_monthly
        name: House
      - entity_id: sensor.apf_grid_export_energy_monthly
        color: var(--error-color)
        name: Grid Export
type: custom:sankey-chart
show_names: true
wide: true
min_state: 0
energy_date_selection: false
title: Energy - Monthy
2 Likes

Matching your Air Conditioning to Excess Solar.

Again for those long days of negative feed in, matching your air conditioning to consume your excess solar is an excellent sink for all that very cheap energy. Your household stays cool, bonus if you work from home, have pets and it also saves having to blast the aircon in the afternoon when the prices are high.

There is a great project which uses the DRED interface on most aircon systems to limit power consumption using a set of four relays: Controlling Air conditioner using Demand Enabled Response Device per AS/NZS 4755

My premise was to change the setpoint to keep the aircon in the ball park of my excess solar consumption. If I’m drawing too much power, I raise the set point, and the aircon draws less power. if I’m generating too much excess solar I reduce the set point and the aircon draws more power.

To calculate the relevant set point automation I am using the following formula:

SetPoint = ExternalTemp - CoolingFactor/ExcessSolarPower

I was also playing around with InternalTemp as a variable, but that doesn’t seem to have much impact on the long term power consumption.

The CoolingFactor is in (W / °C) and is different for every household, depends on how big your AC is, how good is your insulation and thermal mass. For my household I find a cooling factor of 1500 W / °C works pretty well. I set up the CoolingFactor as an input_number helper.

I use a template calculate the helper to actual excess solar power available for HVAC.

Finally, I have an automation which is triggered when the excess solar power changes to change the setpoint of my air conditioner, in this automation you can see I also moderate the power by the battery state of charge, so my battery fills first and then in the afternoon once the battery is full, the aircon gets the bulk of the power to drive down the house temp.

Interested to hear how others are managing their aircon with HA and Amber low prices.




2 Likes

Old but useful thread. Bump

1 Like