Using Home Assistant to calculate my energy bill using data from my Solar Inverter

Thanks but there is no need to manually enter holiday dates that you will have to update ad finitum. Use the Workday integration instead. i.e.

binary_sensor:
  # Whether it is a workday or not - binary_sensor.workday_sensor
  - platform: workday
    country: AU
    province: NSW

template:
  # Australian Ausgrid NSW Peak-shoulder-offpeak sensor defined
  # https://www.ausgrid.com.au/Your-energy-use/Meters/Time-of-use-pricing
  # Peak: 2pm - 8pm on working weekdays 1 November - 31 March;
  # Peak: 5pm - 9pm on working weekdays 1 June - 31 August
  # Off-peak: 10pm - 7am
  # Shoulder: all other times
  - sensor:
      name: TOU Period
      icon: mdi:clock-time-three-outline
      state: >
        {% set tou_period = 'shoulder' %}
        {% set n_month = now().month %}
        {% set n_hour = now().hour %}
        {% set is_summer = (n_month <= 3 or n_month >= 11) %}
        {% set is_winter = (6 <= n_month <= 8 ) %}
        {% if n_hour >= 22 or n_hour < 7 %}
          {% set tou_period = 'offpeak' %}
        {% elif ((is_summer and (14 <= n_hour <= 19))
           or (is_winter and (17 <= n_hour <= 20)))
           and (is_state("binary_sensor.workday_sensor", "on")) %}
          {% set tou_period = 'peak' %}
        {% endif %}
        {{tou_period}}

  - sensor:
      name: Electricity Cost
      icon: mdi:currency-usd
      unit_of_measurement: AUD/kWh
      state: >
        {% if is_state('sensor.tou_period', 'peak') %}
          {{ 0.3465 }}
        {% elif is_state('sensor.tou_period', 'offpeak') %}
          {{ 0.1397 }}
        {% else %}
          {{ 0.1727 }}
        {% endif %}
3 Likes