Customising the BOM Weather and lovelace - now in HACS

Ah Thanks @ludeeus so I would have say…
/dist/icons/animated/x.ico etc?
In this case the icons go in /www/icons/animated
or would it just copy the icon zip file and need to be unzipped in the correct location?

The first one, and it will be located in the same dir locally as the card file, so under www/community/name-of-card/

This option was added in 0.8 I think by request from the author behind the animated weather card.

ok… I could do that but it would be a major breaking change… Although worst case the icons would just be duplicated and need to be manually deleted… hmm…

Ah I was going to switch but then people not using HACS won’t have the community folder…

https://github.com/bramkragten/weather-card
That is the other card I was talking about, maybe you can see how that is handled there.

Thanks for that link but that card is a dogs breakfast config wise… Is there any reason a non-HACS user can’t use the community directory? I know they would lose the benefits of caching but I assume it would work ok? If so I will probably migrate it…

The directory they can create and use, but they will not have the endpoint that hacs provides for it (/community_plugin)

Understood. Thinking about it…

I’m having some trouble with the bom-weather-card showing up in the UI… Chrom Dev tools shows that the bom-weather-card.js is fetched with a 200 response, so I’m thinking that I have a config problem…

I’ve tried removing config and starting o er but have had no luck. Could someone please double check my config? I’m sure it’s something simple… I feel I’ve run out of places to look.

TY for any help :slight_smile:

Bom-weather-card.js installed via HACS - **Installed:**  0.57
Bom Forecast installed via HACS - **Installed:**  0.34

configuration.yaml
homeassistant:
...
  packages:
    pack_1: !include packages/weather.yaml

ui-lovelace.yaml
  - url: /community_plugin/bom-weather-card/bom-weather-card.js
    type: module
...
  - title: weather
    icon: mdi:home-assistant
    type: vertical-stack
    cards:
      - type: entities ## <- used to validate all sensors are working & correct... 
        title: WeatherTest
        show_header_toggle: false
        entities:
        - sensor.bom_geelong_air_temp_c
        - sensor.bom_geelong_max_temp_c_1
        - sensor.bom_geelong_max_temp_c_2
        - sensor.bom_geelong_max_temp_c_3
        - sensor.bom_geelong_max_temp_c_4
        - sensor.bom_geelong_max_temp_c_5
        - sensor.bom_geelong_icon_1
        - sensor.bom_geelong_icon_2
        - sensor.bom_geelong_icon_3
        - sensor.bom_geelong_icon_4
        - sensor.bom_geelong_icon_5
        - sensor.bom_geelong_min_temp_c_1
        - sensor.bom_geelong_min_temp_c_2
        - sensor.bom_geelong_min_temp_c_3
        - sensor.bom_geelong_min_temp_c_4
        - sensor.bom_geelong_min_temp_c_5
        - sensor.bom_geelong_summary_1
        - sensor.bom_geelong_summary_2
        - sensor.bom_geelong_summary_3
        - sensor.bom_geelong_summary_4
        - sensor.bom_geelong_summary_5
        - sensor.bom_uv_alert
        - sensor.bom_uv_alert_summary
        - sensor.bom_fire_danger
        - sensor.bom_fire_danger_summary
      - type: custom:bom-weather-card
        title: BOM Weather
        entity_temperature: sensor.bom_geelong_air_temp_c
        entity_forecast_high_temp_1: sensor.bom_geelong_max_temp_c_1
        entity_forecast_high_temp_2: sensor.bom_geelong_max_temp_c_2
        entity_forecast_high_temp_3: sensor.bom_geelong_max_temp_c_3
        entity_forecast_high_temp_4: sensor.bom_geelong_max_temp_c_4
        entity_forecast_high_temp_5: sensor.bom_geelong_max_temp_c_5
        entity_forecast_icon_1: sensor.bom_geelong_icon_1
        entity_forecast_icon_2: sensor.bom_geelong_icon_2
        entity_forecast_icon_3: sensor.bom_geelong_icon_3
        entity_forecast_icon_4: sensor.bom_geelong_icon_4
        entity_forecast_icon_5: sensor.bom_geelong_icon_5
        entity_forecast_low_temp_1: sensor.bom_geelong_min_temp_c_1
        entity_forecast_low_temp_2: sensor.bom_geelong_min_temp_c_2
        entity_forecast_low_temp_3: sensor.bom_geelong_min_temp_c_3
        entity_forecast_low_temp_4: sensor.bom_geelong_min_temp_c_4
        entity_forecast_low_temp_5: sensor.bom_geelong_min_temp_c_5
        entity_summary_1: sensor.bom_geelong_summary_1
        entity_summary_2: sensor.bom_geelong_summary_2
        entity_summary_3: sensor.bom_geelong_summary_3
        entity_summary_4: sensor.bom_geelong_summary_4
        entity_summary_5: sensor.bom_geelong_summary_5
        entity_uv_alert: sensor.bom_uv_alert
        entity_fire_danger: sensor.bom_fire_danger
        entity_uv_alert_summary: sensor.bom_uv_alert_summary
        entity_fire_danger_summary: sensor.bom_fire_danger_summary
1 Like

Did you include the templates?

Yep - the templates are in the included weather.yaml file

You aren’t showing entity_current_conditions - that is listed as mandatory. You’re also not showing which slots etc you are displaying or any other config for the card.

See here… the defaults… daytime_high and low, wind, pressure etc are used as default slots:

            slot_l1: daytime_high           #daytime_high
            slot_l2: daytime_low            #daytime_low
            slot_l3: wind                   #wind
            slot_l4: pressure               #pressure
            slot_l5: sun_next               #sun_next
            slot_r1: pop                    #pop
            slot_r2: humidity               #humidity
            slot_r3: uv_summary             #uv_summary
            slot_r4: fire_summary           #fire_summary
            slot_r5: sun_following          #sun_following

If you don’t specify slots, the defaults will be used.
If anything is missing, the card won’t display.

Can you show your package, and full ftp and sensor configs as well as full config for lovelace card…

Note: any missing entities parsed to the card will cause the card to not be displayed at all.

1 Like

Hi David,

Here is my config yaml.

# Configure a default setup of Home Assistant (frontend, api, etc)
default_config:

# Uncomment this if you are using SSL/TLS, running in Docker container, etc.
# http:
#   base_url: example.duckdns.org:8123

# Text to speech
tts:
  - platform: google_translate

group: !include groups.yaml
automation: !include automations.yaml
script: !include scripts.yaml
scene: !include scenes.yaml

frontend:
  themes: !include themes.yaml

sensor:
  - platform: bom_forecast
    product_id: IDW12300
    name: Perth
    forecast_days: 6
    rest_of_today: true
    friendly: false
    friendly_state_format: '{max}, {summary}'
    monitored_conditions:
      - 'max'
      - 'min'
      - 'chance_of_rain'
      - 'possible_rainfall'
      - 'summary'
      - 'detailed_summary'
      - 'icon'
      - 'uv_alert'
      - 'fire_danger'

Here is my lovelace config

resources:
  - type: module
    url: >-
      /volume1/docker/home-assistant/www/custom_ui/dark-sky-weather-card.js?v=7.1
  - type: module
    url: /community_plugin/bom-weather-card/bom-weather-card.js
title: 23Boulder
views:
  - badges:
      - entity: binary_sensor.updater
      - entity: person.admin
      - entity: sun.sun
    cards:
      - entities:
          - light.garage
          - light.shopper
          - light.hallway
          - light.living_room_light_right
          - light.bedroom1
          - light.living_room_light_left
          - light.laundry
          - light.bedroom2
          - light.entry
          - light.bedroom3
          - light.living_room
          - light.laundry_2
          - light.custom_group_for_lights
          - light.entry_2
          - light.sleeping_time
          - light.shopper_2
          - light.garage_2
          - light.hallway_2
          - light.bedroom
        title: Light
        type: entities
      - entity: weather.23boulder
        type: weather-forecast
        name: Perth Weather
    path: default_view
    title: Home
  - badges: []
    cards:
      - columns: 1
        entities:
          - entity: light.garage
        title: Garage
        type: glance
      - columns: 1
        entities:
          - entity: light.shopper
        show_icon: true
        show_name: true
        show_state: true
        title: Shopper Door Entrance
        type: glance
      - entity: light.entry
        name: Entry
        theme: Dark - Gray
        type: light
    path: lights
    title: Lights

Could you please help me to get that glance card working?

Thanks

So I don’t see any of the templates or even any Lovelace configuration for the card. You need to check the repo and follow the instructions.
It’s a custom card not a glance card. I have full example configurations on the github for the card you can use and modify.

Sorry David. I am really finding this very difficult to follow. I found the instructions here: https://github.com/DavidFW1960/bom-weather-card. What do I need to do to “Note that you must add this card as a module to the resources section as per the instructions when you install the card.”?

and I have also downloaded the animated icons and static icons to home-assistant’s www\icons\weather_icons folder.

2 Likes

Did you see the reference to weather.yaml package and the sample lovelace.yaml?

thanks again. I am beginning to see my mistakes.

I have now created a weather.yaml with the following code and put this in \packages folder under home-assistant’s \config directory.

# Download the BOM icons from https://github.com/DavidFW1960/bom_forecast/blob/7c6312536a5772cab4ab9a794e98512bbaf89244/bom_icons.zip
# and save them under <config-dir>/www/icons/bom_icons/ (Note this is for the example in the ftp component. This is different to the animated card.)
# For the animated card follow the instructions and put the icons in <config-dir>/www/icons/weather_icons. This is a DIFFERENT icon file to the above.
# Show BOM Satellite and Radar

camera:
  - platform: generic
    name: BOM Satellite
    still_image_url: http://www.bom.gov.au/gms/IDE00135.jpg
  - platform: bom
    name: Sydney
    id: 714   
    frames: 6
    delta: 360
  - platform: bom
    name: Newcastle
    id: '043'
    frames: 6
    delta: 360

sensor:
  - platform: bom
    station: IDW60901.94608
    name: Perth
    monitored_conditions:
      - apparent_t
      - delta_t
      - gust_kmh
      - gust_kt
      - air_temp
      - dewpt
      - rain_trace
      - rel_hum
      - wind_dir
      - wind_spd_kmh
      - wind_spd_kt

  - platform: bom_forecast
    product_id: IDW12300
    name: Perth
    forecast_days: 6
    rest_of_today: true
    friendly: false
    friendly_state_format: '{max}, {summary}'
    monitored_conditions:
      - 'max'
      - 'min'
      - 'chance_of_rain'
      - 'possible_rainfall'
      - 'summary'
      - 'detailed_summary'
      - 'icon'
      - 'uv_alert'
      - 'fire_danger'

  - platform: template
    sensors:

      bom_current_text:
        value_template: >
            {% set val = states('sensor.bom_gosford_summary_0').split('.')[0] %} 
            {{ val | title }}
      bom_uv_alert:
        value_template: >
            {%- if states('sensor.bom_gosford_uv_alert_0') == '##' -%}
            UV Today: No Data
            {%- elif states('sensor.bom_gosford_uv_alert_0') != 'n/a' -%} 
            UV Today: {{ states('sensor.bom_gosford_uv_alert_0') }}
            {%- elif states('sensor.bom_gosford_uv_alert_1') == '##' -%}
            UV Tomorrow: No Data
            {%- else -%}
            UV Tomorrow: {{ states('sensor.bom_gosford_uv_alert_1') }}
            {%- endif -%}
      bom_uv_alert_summary:
        value_template: >
            {%- if states('sensor.bom_gosford_uv_alert_0') == '##' -%} 
            {% set val = 'No Data' %}
            {%- elif states('sensor.bom_gosford_uv_alert_0') != 'n/a' -%} 
            {% set val = states('sensor.bom_gosford_uv_alert_0').split('[')[1].split(']')[0] %}
            {%- elif states('sensor.bom_gosford_uv_alert_1') == '##' -%} 
            {% set val = 'No Data' %}
            {%- elif states('sensor.bom_gosford_uv_alert_1') != 'n/a' -%} 
            {% set val = states('sensor.bom_gosford_uv_alert_1').split('[')[1].split(']')[0] %}
            {%- else -%}
            {%- set val = 'No Data' -%}
            {%- endif -%}
            {{ val | title }} 
          
      bom_fire_danger:
        value_template: >
            {%- if states('sensor.bom_gosford_fire_danger_0') == '##' -%}
            Fire Danger Today: No Data
            {%- elif states('sensor.bom_gosford_fire_danger_0') != 'n/a' -%} 
            Fire Danger Today: {{ states('sensor.bom_gosford_fire_danger_0') }}
            {%- elif states('sensor.bom_gosford_fire_danger_1') == '##' -%}
            Fire Danger Tomorrow: No Data
            {%- else -%}
            Fire Danger Tomorrow: {{ states('sensor.bom_gosford_fire_danger_1') }}
            {%- endif -%}
      bom_fire_danger_summary:
        value_template: >
            {%- if states('sensor.bom_gosford_fire_danger_0') == '##' -%}
            No Data
            {%- elif states('sensor.bom_gosford_fire_danger_0') != 'n/a' -%} 
            {{ states('sensor.bom_gosford_fire_danger_0') }}
            {%- elif states('sensor.bom_gosford_fire_danger_1') == '##' -%}
            No Data
            {%- else -%}
            {{ states('sensor.bom_gosford_fire_danger_1') }}
            {%- endif -%}
      bom_forecast_0:
        entity_id:
          - sensor.bom_today_max
          - sensor.bom_today_min
          - sensor.bom_gosford_chance_of_rain_0
          - sensor.bom_gosford_icon_0
        friendly_name: "Today"
        value_template: >
          {{states('sensor.bom_today_max')|round(0)}}°/{{states('sensor.bom_today_min')|round(0)}}°/{{states('sensor.bom_gosford_chance_of_rain_0')|round(0)}}%
        entity_picture_template: >-
          {%- if states('sun.sun') == 'below_horizon' and (states('sensor.bom_gosford_icon_0') == 'fog' or states('sensor.bom_gosford_icon_0') == 'haze' or states('sensor.bom_gosford_icon_0') == 'light-showers' or states('sensor.bom_gosford_icon_0') == 'partly-cloudy' or states('sensor.bom_gosford_icon_0') == 'showers') -%}
          {{ '/local/icons/bom_icons/' ~ states('sensor.bom_gosford_icon_0') ~ '-night.png' }}
          {%- else -%}
          {{ '/local/icons/bom_icons/' ~ states('sensor.bom_gosford_icon_0') ~ '.png' }}
          {%- endif -%}
      bom_forecast_1:
        entity_id:
          - sensor.bom_gosford_max_temp_c_1
          - sensor.bom_gosford_min_temp_c_1
          - sensor.bom_gosford_chance_of_rain_1
          - sensor.bom_gosford_icon_1
        friendly_name_template: >
          {%- set date = as_timestamp(now()) + (1 * 86400 ) -%}
          {{ date | timestamp_custom('Tomorrow (%-d/%-m)') }}
        value_template: >
          {{states('sensor.bom_gosford_max_temp_c_1')|round(0)}}°/{{states('sensor.bom_gosford_min_temp_c_1')|round(0)}}°/{{states('sensor.bom_gosford_chance_of_rain_1')|round(0)}}%
        entity_picture_template: >-
          {{ '/local/icons/bom_icons/' ~ states('sensor.bom_gosford_icon_1') ~ '.png' }}
      bom_forecast_2:
        entity_id:
          - sensor.bom_gosford_max_temp_c_2
          - sensor.bom_gosford_min_temp_c_2
          - sensor.bom_gosford_chance_of_rain_2
          - sensor.bom_gosford_icon_2
        friendly_name_template: >
          {%- set date = as_timestamp(now()) + (2 * 86400 ) -%}
          {{ date | timestamp_custom('%A (%-d/%-m)') }}
        value_template: >
          {{states('sensor.bom_gosford_max_temp_c_2')|round(0)}}°/{{states('sensor.bom_gosford_min_temp_c_2')|round(0)}}°/{{states('sensor.bom_gosford_chance_of_rain_2')|round(0)}}%
        entity_picture_template: >-
          {{ '/local/icons/bom_icons/' ~ states('sensor.bom_gosford_icon_2') ~ '.png' }}
      bom_forecast_3:
        entity_id:
          - sensor.bom_gosford_max_temp_c_3
          - sensor.bom_gosford_min_temp_c_3
          - sensor.bom_gosford_chance_of_rain_3
          - sensor.bom_gosford_icon_3
        friendly_name_template: >
          {%- set date = as_timestamp(now()) + (3 * 86400 ) -%}
          {{ date | timestamp_custom('%A (%-d/%-m)') }}
        value_template: >
          {{states('sensor.bom_gosford_max_temp_c_3')|round(0)}}°/{{states('sensor.bom_gosford_min_temp_c_3')|round(0)}}°/{{states('sensor.bom_gosford_chance_of_rain_3')|round(0)}}%
        entity_picture_template: >-
          {{ '/local/icons/bom_icons/' ~ states('sensor.bom_gosford_icon_3') ~ '.png' }}
      bom_forecast_4:
        entity_id:
          - sensor.bom_gosford_max_temp_c_4
          - sensor.bom_gosford_min_temp_c_4
          - sensor.bom_gosford_chance_of_rain_4
          - sensor.bom_gosford_icon_4
        friendly_name_template: >
          {%- set date = as_timestamp(now()) + (4 * 86400 ) -%}
          {{ date | timestamp_custom('%A (%-d/%-m)') }}
        value_template: >
          {{states('sensor.bom_gosford_max_temp_c_4')|round(0)}}°/{{states('sensor.bom_gosford_min_temp_c_4')|round(0)}}°/{{states('sensor.bom_gosford_chance_of_rain_4')|round(0)}}%
        entity_picture_template: >-
          {{ '/local/icons/bom_icons/' ~ states('sensor.bom_gosford_icon_4') ~ '.png' }}
      bom_forecast_5:
        entity_id:
          - sensor.bom_gosford_max_temp_c_5
          - sensor.bom_gosford_min_temp_c_5
          - sensor.bom_gosford_chance_of_rain_5
          - sensor.bom_gosford_icon_5
        friendly_name_template: >
          {%- set date = as_timestamp(now()) + (5 * 86400 ) -%}
          {{ date | timestamp_custom('%A (%-d/%-m)') }}
        value_template: >
          {{states('sensor.bom_gosford_max_temp_c_5')|round(0)}}°/{{states('sensor.bom_gosford_min_temp_c_5')|round(0)}}°/{{states('sensor.bom_gosford_chance_of_rain_5')|round(0)}}%
        entity_picture_template: >-
          {{ '/local/icons/bom_icons/' ~ states('sensor.bom_gosford_icon_5') ~ '.png' }}
      bom_forecast_6:
        entity_id:
          - sensor.bom_gosford_max_temp_c_6
          - sensor.bom_gosford_min_temp_c_6
          - sensor.bom_gosford_chance_of_rain_6
          - sensor.bom_gosford_icon_6
        friendly_name_template: >
          {%- set date = as_timestamp(now()) + (6 * 86400 ) -%}
          {{ date | timestamp_custom('%A (%-d/%-m)') }}
        value_template: >
          {{states('sensor.bom_gosford_max_temp_c_6')|round(0)}}°/{{states('sensor.bom_gosford_min_temp_c_6')|round(0)}}°/{{states('sensor.bom_gosford_chance_of_rain_6')|round(0)}}%
        entity_picture_template: >-
          {{ '/local/icons/bom_icons/' ~ states('sensor.bom_gosford_icon_6') ~ '.png' }}
      bom_today_max:
        entity_id:
          - sensor.bom_gosford_max_temp_c_0
          - sensor.today_temp_bom
        value_template: >
          {%- if states('sensor.bom_gosford_max_temp_c_0') == 'n/a' -%} 
            {{ state_attr('sensor.today_temp_bom', 'max_value') }}
          {% else %}
            {{ states('sensor.bom_gosford_max_temp_c_0') }}
          {% endif %}
      bom_today_min:
        entity_id:
          - sensor.bom_gosford_min_temp_c_0
          - sensor.today_temp_bom
        value_template: >
          {%- if states('sensor.bom_gosford_min_temp_c_0') == 'n/a' -%} 
            {{ state_attr('sensor.today_temp_bom', 'min_value') }}
          {% else %}
            {{ states('sensor.bom_gosford_min_temp_c_0') }}
          {% endif %}
      bom_today_max_average:
        entity_id:
          - sensor.bom_gosford_max_temp_c_0
          - sensor.today_temp_bom_average
        value_template: >
          {%- if states('sensor.bom_gosford_max_temp_c_0') == 'n/a' -%} 
            {{ state_attr('sensor.today_temp_bom_average', 'max_value') }}
          {% else %}
            {{ states('sensor.bom_gosford_max_temp_c_0') }}
          {% endif %}
      bom_today_min_average:
        entity_id:
          - sensor.bom_gosford_min_temp_c_0
          - sensor.today_temp_bom_average
        value_template: >
          {%- if states('sensor.bom_gosford_min_temp_c_0') == 'n/a' -%} 
            {{ state_attr('sensor.today_temp_bom_average', 'min_value') }}
          {% else %}
            {{ states('sensor.bom_gosford_min_temp_c_0') }}
          {% endif %}
  - platform: statistics
    name: today_temp_bom
    sampling_size: 150
    entity_id: sensor.bom_gosford_air_temp_c
    max_age:
      hours: 24

  - platform: average
    name: today_temp_bom_average
    entities:
      - sensor.bom_gosford_air_temp_c
    start: '{{ now().replace(hour=0).replace(minute=0).replace(second=0) }}'
    end: '{{ now() }}'

automation:
- alias: 'Update BOM Icons'
  trigger:
    - event: start
      platform: homeassistant
    - entity_id: sun.sun
      platform: state
      to: 'above_horizon'
    - entity_id: sun.sun
      platform: state
      to: 'below_horizon'
  action:
    - service: homeassistant.update_entity
      entity_id: sensor.bom_forecast_0, sensor.bom_forecast_1, sensor.bom_forecast_2, sensor.bom_forecast_3, sensor.bom_forecast_4, sensor.bom_forecast_5, sensor.bom_forecast_6

homeassistant:
  customize:
    package.node_anchors:
      common: &common
        package: "weather"

    sensor.bom_gosford_air_temp_c:
      friendly_name: Air Temp
      device_class: temperature
      <<: *common
    sensor.bom_gosford_delta_temp_c:
      friendly_name: Delta Temp
      <<: *common
    sensor.bom_gosford_dew_point_c:
      friendly_name: Dew Point
      <<: *common
    sensor.bom_gosford_feels_like_c:
      friendly_name: Feels Like
      <<: *common
    sensor.bom_gosford_rain_today:
      friendly_name: Rain Today
      icon: mdi:weather-rainy
      <<: *common
    sensor.bom_gosford_relative_humidity:
      friendly_name: Relative Humidity
      icon: mdi:water-percent
      <<: *common
    sensor.bom_gosford_wind_direction:
      friendly_name: Wind Direction
      entity_picture: /local/icons/MoonPhases/rooster.png
      <<: *common
    sensor.bom_gosford_wind_direction_kt:
      friendly_name: Wind Direction kt
      icon: mdi:weather-windy
      <<: *common
    sensor.bom_gosford_wind_gust_kmh:
      friendly_name: Wind Gust
      icon: mdi:weather-windy
      <<: *common
    sensor.bom_gosford_wind_gust_kt:
      friendly_name: Wind Gust kt
      icon: mdi:weather-windy
      <<: *common
    sensor.bom_gosford_wind_speed_kmh:
      friendly_name: Wind Speed
      icon: mdi:weather-windy
      <<: *common
    sensor.bom_gosford_wind_speed_kt:
      friendly_name: Wind Speed kt
      icon: mdi:weather-windy
      <<: *common
    sensor.bom_uv_alert:
      friendly_name: UV Alert
      icon: mdi:weather-sunny
      <<: *common
    sensor.bom_fire_danger:
      friendly_name: Fire Danger
      icon: mdi:fire
      <<: *common

I have also edited the lovelace.yaml as follows:

resources:
  - type: module
    url: >-
      /volume1/docker/home-assistant/www/custom_ui/dark-sky-weather-card.js?v=7.1
  - type: module
    url: /community_plugin/bom-weather-card/bom-weather-card.js
title: 23Boulder
views:
  - badges:
      - entity: binary_sensor.updater
      - entity: person.admin
      - entity: sun.sun
    cards:
      - entities:
          - light.garage
          - light.shopper
          - light.hallway
          - light.living_room_light_right
          - light.bedroom1
          - light.living_room_light_left
          - light.laundry
          - light.bedroom2
          - light.entry
          - light.bedroom3
          - light.living_room
          - light.laundry_2
          - light.custom_group_for_lights
          - light.entry_2
          - light.sleeping_time
          - light.shopper_2
          - light.garage_2
          - light.hallway_2
          - light.bedroom
        title: Light
        type: entities
      - entity: weather.23boulder
        name: Perth Weather
        type: weather-forecast
    path: default_view
    title: Home
  - badges: []
    cards:
      - columns: 1
        entities:
          - entity: light.garage
        title: Garage
        type: glance
      - columns: 1
        entities:
          - entity: light.shopper
        show_icon: true
        show_name: true
        show_state: true
        title: Shopper Door Entrance
        type: glance
      - entity: light.entry
        name: Entry
        theme: Dark - Gray
        type: light
      - columns: 1
        entities:
          - entity: light.bedroom
        show_icon: true
        type: glance
    path: lights
    title: Lights
  - cards:
      - apparent_right_margin: 1em
        apparent_right_pos: 1em
        apparent_top_margin: 45px
        current_data_top_margin: 7em
        current_text_font_size: 1.5em
        current_text_left_pos: 5em
        current_text_top_margin: 39px
        entity_apparent_temp: sensor.bom_gosford_feels_like_c
        entity_current_conditions: sensor.bom_gosford_icon_0
        entity_current_text: sensor.bom_current_text
        entity_daily_summary: sensor.bom_gosford_detailed_summary_0
        entity_daytime_high: sensor.bom_today_max
        entity_forecast_high_temp_1: sensor.bom_gosford_max_temp_c_1
        entity_forecast_high_temp_2: sensor.bom_gosford_max_temp_c_2
        entity_forecast_high_temp_3: sensor.bom_gosford_max_temp_c_3
        entity_forecast_high_temp_4: sensor.bom_gosford_max_temp_c_4
        entity_forecast_high_temp_5: sensor.bom_gosford_max_temp_c_5
        entity_forecast_icon_1: sensor.bom_gosford_icon_1
        entity_forecast_icon_2: sensor.bom_gosford_icon_2
        entity_forecast_icon_3: sensor.bom_gosford_icon_3
        entity_forecast_icon_4: sensor.bom_gosford_icon_4
        entity_forecast_icon_5: sensor.bom_gosford_icon_5
        entity_forecast_low_temp_1: sensor.bom_gosford_min_temp_c_1
        entity_forecast_low_temp_2: sensor.bom_gosford_min_temp_c_2
        entity_forecast_low_temp_3: sensor.bom_gosford_min_temp_c_3
        entity_forecast_low_temp_4: sensor.bom_gosford_min_temp_c_4
        entity_forecast_low_temp_5: sensor.bom_gosford_min_temp_c_5
        entity_humidity: sensor.bom_gosford_relative_humidity
        entity_pop: sensor.bom_gosford_chance_of_rain_0
        entity_pop_1: sensor.bom_gosford_chance_of_rain_1
        entity_pop_2: sensor.bom_gosford_chance_of_rain_2
        entity_pop_3: sensor.bom_gosford_chance_of_rain_3
        entity_pop_4: sensor.bom_gosford_chance_of_rain_4
        entity_pop_5: sensor.bom_gosford_chance_of_rain_5
        entity_pop_intensity: sensor.bom_gosford_rain_today
        entity_summary_1: sensor.bom_gosford_summary_1
        entity_summary_2: sensor.bom_gosford_summary_2
        entity_summary_3: sensor.bom_gosford_summary_3
        entity_summary_4: sensor.bom_gosford_summary_4
        entity_summary_5: sensor.bom_gosford_summary_5
        entity_sun: sun.sun
        entity_temperature: sensor.bom_gosford_air_temp_c
        entity_wind_bearing: sensor.bom_gosford_wind_direction
        entity_wind_speed: sensor.bom_gosford_wind_speed_kmh
        large_icon_left_position: 0em
        large_icon_top_margin: '-3.5em'
        locale: en
        old_daily_format: false
        refresh_interval: 60
        separator_top_margin: 6em
        show_beaufort: false
        show_separator: false
        slot_l1: daytime_high
        slot_l2: wind
        slot_l3: remove
        slot_l4: sun_next
        slot_r1: pop
        slot_r2: humidity
        slot_r3: remove
        slot_r4: sun_following
        static_icons: false
        sunset: true
        temp_font_size: 4em
        temp_font_weight: 300
        temp_right_pos: 0.85em
        temp_top_margin: '-0.3em'
        temp_uom_right_margin: 7px
        temp_uom_top_margin: '-9px'
        time_format: 12
        title: BOM Weather
        tooltip_bg_color: 'rgb( 75,155,239)'
        tooltip_border_color: 'rgb(255,161,0)'
        tooltip_border_width: 1
        tooltip_caret_size: 5
        tooltip_fg_color: '#fff'
        tooltip_left_offset: -12
        tooltip_width: 110
        tooltips: true
        type: 'custom:bom-weather-card'
      - entities:
          - sensor.bom_gosford_air_temp_c
          - sensor.bom_gosford_feels_like_c
          - sensor.bom_gosford_dew_point_c
          - sensor.bom_gosford_rain_today
          - sensor.bom_gosford_relative_humidity
          - sensor.bom_gosford_wind_gust_kmh
          - sensor.bom_gosford_wind_speed_kmh
        hours_to_show: 72
        refresh_interval: 300
        title: Weather BOM Gosford
        type: history-graph
      - entities:
          - sensor.bom_forecast_0
          - sensor.bom_forecast_1
          - sensor.bom_forecast_2
          - sensor.bom_forecast_3
          - sensor.bom_forecast_4
          - sensor.bom_forecast_5
          - sensor.bom_forecast_6
        show_header_toggle: false
        title: BOM Forecast
        type: entities
      - entities:
          - sensor.bom_forecast_0
          - sensor.bom_gosford_air_temp_c
          - sensor.bom_gosford_delta_temp_c
          - sensor.bom_gosford_dew_point_c
          - sensor.bom_gosford_feels_like_c
          - sensor.bom_gosford_rain_today
          - sensor.bom_gosford_relative_humidity
          - sensor.bom_gosford_wind_direction
          - sensor.bom_gosford_wind_gust_kmh
          - sensor.bom_gosford_wind_gust_kt
          - sensor.bom_gosford_wind_speed_kmh
          - sensor.bom_gosford_wind_speed_kt
        show_header_toggle: false
        title: Weather from BOM Australia
        type: entities
    type: vertical-stack

But check config is throwing this error:
Component error: packages - Integration ‘packages’ not found.

and there are errors on the lovelace interface.

I hope I am on the right track?

What do I need to fix?

You have not edited gosford to perth in any of the templates and also in Lovelace… The yaml files I provided need to be customised for your location.

Hi David, I have replaced gosford to perth and this is what I am seeing.

Still not quite there…

what else should I change?

Check the sensor names in states.

I’m looking forward to getting this working, this is the closest I’ve gotten.
Am I missing something as I get an error message

ERROR (MainThread) [homeassistant.components.hassio] Platform error sensor.average - Integration ‘average’ not found.

I’ve added the following (as per instructions… I think!) to my sensors.yaml along with the BOM, BOM Forecast and template sensors.

  - platform: average
    name: today_temp_bom_average
    entities:
      - sensor.bom_bayswater_air_temp_c
    start: '{{ now().replace(hour=0).replace(minute=0).replace(second=0) }}'
    end: '{{ now() }}'

Has anyone else had this?
Thanks