Lovelace: Weather card with chart

could you solve this offset issue? It happens during the day, when its like 12 o clock.
grafik

Hi, i’ve noticed this as well, most annoying for the “day-view”, and i think the “answer” is somewhere in the “weather” integration ( the way/time it changes ), i’ve tried several “options” in apexchart
I get back to you if i figure it out … thou im afraid it somehow will get uggly, as the graph doesn’t seems to “update/rotate” chart/day at midnight

xaxis:
    position: 'top'

Regarding the “middel-section” , it is a (hack) nothing i would share in a “Project Solution” ( it is weather-chart-card, and easy to reduce size ) … i could use native “type: weather” as i’ve “modded” this as well to only show " conditions" for days

When i find a way to use native “type: weather” , with external url to optional icons, i let you know
I use weather-chart-card as i can refer to icons in /local … don’t know how to do this in native-card … i bet you do :wink:

PS: i don’t like the date at top, as it looks now, but maybe i should move the “Conditions” (middel-section) to the top as-well
EDIT: new pic

uhm, well, all weather cards I use/have hacked use local icons.
more over, I have adapted all my cards to change to from very complex weather icon templates, to simply use a night/day boolean, and append some icons relevant to night.

other than that, I don’t really know what you want to do with the icons?

@PulsarFX

I’ve monitored below setting, seems like it’s “steady”

  - type: custom:apexcharts-card
    graph_span: 5d
    span:
      start: day
      offset: +1d
    header:
      show: false
      show_states: false
    all_series_config:
      stroke_width: 2
      group_by:
        func: last
        duration: 1d
        start_with_last: true
  1. I’ve tried with 6 days, thou then the last day is without “condition” (icon) , caused by the “weather.forecast_home” “met.no” only shows 5 days
  2. offset: +1d, seems to work better, again do to “weather.forecast_home/met.no”, as it’s for the next day, Then “offset” will be to the most left( as you see the red-dotted “now” line)
  3. the 3 sets in “group_by”, seems to work best in this scenario, i added “start_with_last: true” ( in hourly graph also )

I’ve played around with “condition” for the hourly graph ( in between 24-hours-header-line and graph ) but i’t only possible to get a view of 7-8 hours ahead, WITH smaller condition-icons above hour-graph … unless you have your weather-graphs in a full-panel view :slight_smile:

hourly2
Compared-timeshift-now
hourly3

Hi folks,

I’ve been having pretty good luck with some ideas I got from this thread, using a combination of platinum weather card, weather card, bar card some glance cards, a bunch of custom sensors, and vertical-stack-in card.

The advantage of this approach is that it’s extremely customizable. But you will have to manage some custom sensors and a few cards to make it happen. You’ll probably have to tweak it a bit to get the exact results you want on various sized devices.

There is a little graph for rain that pops up when it’s rainy that I didn’t manage to pciture here:

Here are the sensors:

      
  - platform: template
    sensors:
      weatherflow_forecast_0:
        friendly_name: >-
          {% set time =  state_attr('weather.weatherflow_hourly_based_forecast','forecast').0.datetime | as_datetime | as_local | default(0,true) %}
          {{ time | as_timestamp | timestamp_custom('%-H:00') | replace('M','') | lower }}
  #      unit_of_measurement: °
        value_template: "{{ state_attr('weather.weatherflow_hourly_based_forecast','forecast').0.temperature|int}}"
        icon_template: >
          {% set array = { 'clear-night':'night',
                            'cloudy':'cloudy',
                            'exceptional':'sunny',
                            'fog':'fog',
                            'hail':'hail',
                            'lightning':'lightning',
                            'lightning-rainy':'lightning-rainy',
                            'partlycloudy':'partly-cloudy',
                            'rainy':'rainy',
                            'snowy':'snowy',
                            'snowy-rainy':'snowy-rainy',
                            'sunny':'sunny',
                            'windy':'windy' } %}
          {% set icon = array[state_attr('weather.weatherflow_hourly_based_forecast','forecast').0.condition] %}
          mdi:weather-{{ icon }}


      weatherflow_forecast_precip_0:
        friendly_name: "{{ state_attr('weather.weatherflow_hourly_based_forecast','forecast').0.precipitation_probability }}%"
        value_template: >-
          {% set amt = state_attr('weather.weatherflow_hourly_based_forecast','forecast').0.precipitation | float(0) + state_attr('weather.weatherflow_hourly_based_forecast','forecast').1.precipitation | float(0) %}
          {% set amt = (amt * 100) | int(0) %}
          {% if amt > 0 %}
            {% if amt < 100 %}.{{amt}}
            {% else %}{{ amt / 100 }}
            {% endif %}
          {% else %}0
          {% endif %}

     
      weatherflow_forecast_1:
        friendly_name: >-
          {% set time =  state_attr('weather.weatherflow_hourly_based_forecast','forecast').2.datetime | as_datetime | as_local | default(0,true) %}
          {{ time | as_timestamp | timestamp_custom('%-H:00') | replace('M','') | lower }}
  #      unit_of_measurement: °
        value_template: "{{ state_attr('weather.weatherflow_hourly_based_forecast','forecast').2.temperature|int}}"
        icon_template: >
          {% set array = { 'clear-night':'night',
                            'cloudy':'cloudy',
                            'exceptional':'sunny',
                            'fog':'fog',
                            'hail':'hail',
                            'lightning':'lightning',
                            'lightning-rainy':'lightning-rainy',
                            'partlycloudy':'partly-cloudy',
                            'rainy':'rainy',
                            'snowy':'snowy',
                            'snowy-rainy':'snowy-rainy',
                            'sunny':'sunny',
                            'windy':'windy' } %}
          {% set icon = array[state_attr('weather.weatherflow_hourly_based_forecast','forecast').2.condition] %}
          mdi:weather-{{ icon }}


      weatherflow_forecast_precip_1:
        friendly_name: "{{ state_attr('weather.weatherflow_hourly_based_forecast','forecast').2.precipitation_probability }}%"
        value_template: >-
          {% set amt = state_attr('weather.weatherflow_hourly_based_forecast','forecast').2.precipitation | float(0)  + state_attr('weather.weatherflow_hourly_based_forecast','forecast').3.precipitation | float(0) %}
          {% set amt = (amt * 100) | int(0) %}
          {% if amt > 0 %}
            {% if amt < 100 %}.{{amt}}
            {% else %}{{ amt / 100 }}
            {% endif %}
          {% else %}0
          {% endif %}

     
      weatherflow_forecast_2:
        friendly_name: >-
          {% set time =  state_attr('weather.weatherflow_hourly_based_forecast','forecast').4.datetime | as_datetime | as_local | default(0,true) %}
          {{ time | as_timestamp | timestamp_custom('%-H:00') | replace('M','') | lower }}
  #      unit_of_measurement: °
        value_template: "{{ state_attr('weather.weatherflow_hourly_based_forecast','forecast').4.temperature|int}}"
        icon_template: >
          {% set array = { 'clear-night':'night',
                            'cloudy':'cloudy',
                            'exceptional':'sunny',
                            'fog':'fog',
                            'hail':'hail',
                            'lightning':'lightning',
                            'lightning-rainy':'lightning-rainy',
                            'partlycloudy':'partly-cloudy',
                            'rainy':'rainy',
                            'snowy':'snowy',
                            'snowy-rainy':'snowy-rainy',
                            'sunny':'sunny',
                            'windy':'windy' } %}
          {% set icon = array[state_attr('weather.weatherflow_hourly_based_forecast','forecast').4.condition] %}
          mdi:weather-{{ icon }}


      weatherflow_forecast_precip_2:
        friendly_name: "{{ state_attr('weather.weatherflow_hourly_based_forecast','forecast').4.precipitation_probability }}%"
        value_template: >-
          {% set amt = state_attr('weather.weatherflow_hourly_based_forecast','forecast').4.precipitation | float(0)  + state_attr('weather.weatherflow_hourly_based_forecast','forecast').5.precipitation | float(0) %}
          {% set amt = (amt * 100) | int(0) %}
          {% if amt > 0 %}
            {% if amt < 100 %}.{{amt}}
            {% else %}{{ amt / 100 }}
            {% endif %}
          {% else %}0
          {% endif %}

     
      weatherflow_forecast_3:
        friendly_name: >-
          {% set time =  state_attr('weather.weatherflow_hourly_based_forecast','forecast').6.datetime | as_datetime | as_local | default(0,true) %}
          {{ time | as_timestamp | timestamp_custom('%-H:00') | replace('M','') | lower }}
  #      unit_of_measurement: °
        value_template: "{{ state_attr('weather.weatherflow_hourly_based_forecast','forecast').6.temperature|int}}"
        icon_template: >
          {% set array = { 'clear-night':'night',
                            'cloudy':'cloudy',
                            'exceptional':'sunny',
                            'fog':'fog',
                            'hail':'hail',
                            'lightning':'lightning',
                            'lightning-rainy':'lightning-rainy',
                            'partlycloudy':'partly-cloudy',
                            'rainy':'rainy',
                            'snowy':'snowy',
                            'snowy-rainy':'snowy-rainy',
                            'sunny':'sunny',
                            'windy':'windy' } %}
          {% set icon = array[state_attr('weather.weatherflow_hourly_based_forecast','forecast').6.condition] %}
          mdi:weather-{{ icon }}


      weatherflow_forecast_precip_3:
        friendly_name: "{{ state_attr('weather.weatherflow_hourly_based_forecast','forecast').6.precipitation_probability }}%"
        value_template: >-
          {% set amt = state_attr('weather.weatherflow_hourly_based_forecast','forecast').6.precipitation | float(0)  + state_attr('weather.weatherflow_hourly_based_forecast','forecast').7.precipitation | float(0) %}
          {% set amt = (amt * 100) | int(0) %}
          {% if amt > 0 %}
            {% if amt < 100 %}.{{amt}}
            {% else %}{{ amt / 100 }}
            {% endif %}
          {% else %}0
          {% endif %}

     
      weatherflow_forecast_4:
        friendly_name: >-
          {% set time =  state_attr('weather.weatherflow_hourly_based_forecast','forecast').8.datetime | as_datetime | as_local | default(0,true) %}
          {{ time | as_timestamp | timestamp_custom('%-H:00') | replace('M','') | lower }}
  #      unit_of_measurement: °
        value_template: "{{ state_attr('weather.weatherflow_hourly_based_forecast','forecast').8.temperature|int}}"
        icon_template: >
          {% set array = { 'clear-night':'night',
                            'cloudy':'cloudy',
                            'exceptional':'sunny',
                            'fog':'fog',
                            'hail':'hail',
                            'lightning':'lightning',
                            'lightning-rainy':'lightning-rainy',
                            'partlycloudy':'partly-cloudy',
                            'rainy':'rainy',
                            'snowy':'snowy',
                            'snowy-rainy':'snowy-rainy',
                            'sunny':'sunny',
                            'windy':'windy' } %}
          {% set icon = array[state_attr('weather.weatherflow_hourly_based_forecast','forecast').8.condition] %}
          mdi:weather-{{ icon }}


      weatherflow_forecast_precip_4:
        friendly_name: "{{ state_attr('weather.weatherflow_hourly_based_forecast','forecast').8.precipitation_probability }}%"
        value_template: >-
          {% set amt = state_attr('weather.weatherflow_hourly_based_forecast','forecast').8.precipitation | float(0) + state_attr('weather.weatherflow_hourly_based_forecast','forecast').9.precipitation | float(0) %}
          {% set amt = (amt * 100) | int(0) %}
          {% if amt > 0 %}
            {% if amt < 100 %}.{{amt}}
            {% else %}{{ amt / 100 }}
            {% endif %}
          {% else %}0
          {% endif %}

     
      weatherflow_forecast_5:
        friendly_name: >-
          {% set time =  state_attr('weather.weatherflow_hourly_based_forecast','forecast').10.datetime | as_datetime | as_local | default(0,true) %}
          {{ time | as_timestamp | timestamp_custom('%-H:00') | replace('M','') | lower }}
  #      unit_of_measurement: °
        value_template: "{{ state_attr('weather.weatherflow_hourly_based_forecast','forecast').10.temperature|int}}"
        icon_template: >
          {% set array = { 'clear-night':'night',
                            'cloudy':'cloudy',
                            'exceptional':'sunny',
                            'fog':'fog',
                            'hail':'hail',
                            'lightning':'lightning',
                            'lightning-rainy':'lightning-rainy',
                            'partlycloudy':'partly-cloudy',
                            'rainy':'rainy',
                            'snowy':'snowy',
                            'snowy-rainy':'snowy-rainy',
                            'sunny':'sunny',
                            'windy':'windy' } %}
          {% set icon = array[state_attr('weather.weatherflow_hourly_based_forecast','forecast').10.condition] %}
          mdi:weather-{{ icon }}


      weatherflow_forecast_precip_5:
        friendly_name: "{{ state_attr('weather.weatherflow_hourly_based_forecast','forecast').10.precipitation_probability }}%"
        value_template: >-
          {% set amt = state_attr('weather.weatherflow_hourly_based_forecast','forecast').10.precipitation | float(0)  + state_attr('weather.weatherflow_hourly_based_forecast','forecast').11.precipitation | float(0) %}
          {% set amt = (amt * 100) | int(0) %}
          {% if amt > 0 %}
            {% if amt < 100 %}.{{amt}}
            {% else %}{{ amt / 100 }}
            {% endif %}
          {% else %}0
          {% endif %}

     
      weatherflow_forecast_6:
        friendly_name: >-
          {% set time =  state_attr('weather.weatherflow_hourly_based_forecast','forecast').12.datetime | as_datetime | as_local | default(0,true) %}
          {{ time | as_timestamp | timestamp_custom('%-H:00') | replace('M','') | lower }}
  #      unit_of_measurement: °
        value_template: "{{ state_attr('weather.weatherflow_hourly_based_forecast','forecast').12.temperature |int}}"
        icon_template: >
          {% set array = { 'clear-night':'night',
                            'cloudy':'cloudy',
                            'exceptional':'sunny',
                            'fog':'fog',
                            'hail':'hail',
                            'lightning':'lightning',
                            'lightning-rainy':'lightning-rainy',
                            'partlycloudy':'partly-cloudy',
                            'rainy':'rainy',
                            'snowy':'snowy',
                            'snowy-rainy':'snowy-rainy',
                            'sunny':'sunny',
                            'windy':'windy' } %}
          {% set icon = array[state_attr('weather.weatherflow_hourly_based_forecast','forecast').12.condition] %}
          mdi:weather-{{ icon }}


      weatherflow_forecast_precip_6:
        friendly_name: "{{ state_attr('weather.weatherflow_hourly_based_forecast','forecast').12.precipitation_probability }}%"
        value_template: >-
          {% set amt = state_attr('weather.weatherflow_hourly_based_forecast','forecast').12.precipitation | float(0)  + state_attr('weather.weatherflow_hourly_based_forecast','forecast').13.precipitation | float(0) %}
          {% set amt = (amt * 100) | int(0) %}
          {% if amt > 0 %}
            {% if amt < 100 %}.{{amt}}
            {% else %}{{ amt / 100 }}
            {% endif %}
          {% else %}0
          {% endif %}

     
      weatherflow_forecast_7:
        friendly_name: >-
          {% set time =  state_attr('weather.weatherflow_hourly_based_forecast','forecast').14.datetime | as_datetime | as_local | default(0,true) %}
          {{ time | as_timestamp | timestamp_custom('%-H:00') | replace('M','') | lower }}
  #      unit_of_measurement: °
        value_template: "{{ state_attr('weather.weatherflow_hourly_based_forecast','forecast').14.temperature|int}}"
        icon_template: >
          {% set array = { 'clear-night':'night',
                            'cloudy':'cloudy',
                            'exceptional':'sunny',
                            'fog':'fog',
                            'hail':'hail',
                            'lightning':'lightning',
                            'lightning-rainy':'lightning-rainy',
                            'partlycloudy':'partly-cloudy',
                            'rainy':'rainy',
                            'snowy':'snowy',
                            'snowy-rainy':'snowy-rainy',
                            'sunny':'sunny',
                            'windy':'windy' } %}
          {% set icon = array[state_attr('weather.weatherflow_hourly_based_forecast','forecast').14.condition] %}
          mdi:weather-{{ icon }}


      weatherflow_forecast_precip_7:
        friendly_name: "{{ state_attr('weather.weatherflow_hourly_based_forecast','forecast').14.precipitation_probability }}%" 
        value_template: >-
          {% set amt = state_attr('weather.weatherflow_hourly_based_forecast','forecast').14.precipitation | float(0)  + state_attr('weather.weatherflow_hourly_based_forecast','forecast').15.precipitation | float(0) %}
          {% set amt = (amt * 100) | int(0) %}
          {% if amt > 0 %}
            {% if amt < 100 %}.{{amt}}
            {% else %}{{ amt / 100 }}
            {% endif %}
          {% else %}0
          {% endif %}

     
      weatherflow_forecast_8:
        friendly_name: >-
          {% set time =  state_attr('weather.weatherflow_hourly_based_forecast','forecast').16.datetime | as_datetime | as_local | default(0,true) %}
          {{ time | as_timestamp | timestamp_custom('%-H:00') | replace('M','') | lower }}
  #      unit_of_measurement: °
        value_template: "{{ state_attr('weather.weatherflow_hourly_based_forecast','forecast').16.temperature|int}}"
        icon_template: >
          {% set array = { 'clear-night':'night',
                            'cloudy':'cloudy',
                            'exceptional':'sunny',
                            'fog':'fog',
                            'hail':'hail',
                            'lightning':'lightning',
                            'lightning-rainy':'lightning-rainy',
                            'partlycloudy':'partly-cloudy',
                            'rainy':'rainy',
                            'snowy':'snowy',
                            'snowy-rainy':'snowy-rainy',
                            'sunny':'sunny',
                            'windy':'windy' } %}
          {% set icon = array[state_attr('weather.weatherflow_hourly_based_forecast','forecast').8.condition] %}
          mdi:weather-{{ icon }}


      weatherflow_forecast_precip_8:
        friendly_name: "{{ state_attr('weather.weatherflow_hourly_based_forecast','forecast').16.precipitation_probability }}%"
        value_template: >-
          {% set amt = state_attr('weather.weatherflow_hourly_based_forecast','forecast').16.precipitation | float(0)  + state_attr('weather.weatherflow_hourly_based_forecast','forecast').17.precipitation | float(0) %}
          {% set amt = (amt * 100) | int(0) %}
          {% if amt > 0 %}
            {% if amt < 100 %}.{{amt}}
            {% else %}{{ amt / 100 }}
            {% endif %}
          {% else %}0
          {% endif %}

     
      weatherflow_forecast_9:
        friendly_name: >-
          {% set time =  state_attr('weather.weatherflow_hourly_based_forecast','forecast').18.datetime | as_datetime | as_local | default(0,true) %}
          {{ time | as_timestamp | timestamp_custom('%-H:00') | replace('M','') | lower }}
  #      unit_of_measurement: °
        value_template: "{{ state_attr('weather.weatherflow_hourly_based_forecast','forecast').18.temperature|int}}"
        icon_template: >
          {% set array = { 'clear-night':'night',
                            'cloudy':'cloudy',
                            'exceptional':'sunny',
                            'fog':'fog',
                            'hail':'hail',
                            'lightning':'lightning',
                            'lightning-rainy':'lightning-rainy',
                            'partlycloudy':'partly-cloudy',
                            'rainy':'rainy',
                            'snowy':'snowy',
                            'snowy-rainy':'snowy-rainy',
                            'sunny':'sunny',
                            'windy':'windy' } %}
          {% set icon = array[state_attr('weather.weatherflow_hourly_based_forecast','forecast').18.condition] %}
          mdi:weather-{{ icon }}


      weatherflow_forecast_precip_9:
        friendly_name: "{{ state_attr('weather.weatherflow_hourly_based_forecast','forecast').18.precipitation_probability }}%"
        value_template: >-
          {% set amt = state_attr('weather.weatherflow_hourly_based_forecast','forecast').18.precipitation | float(0)  + state_attr('weather.weatherflow_hourly_based_forecast','forecast').19.precipitation | float(0) %}
          {% set amt = (amt * 100) | int(0) %}
          {% if amt > 0 %}
            {% if amt < 100 %}.{{amt}}
            {% else %}{{ amt / 100 }}
            {% endif %}
          {% else %}0
          {% endif %}

     
      weatherflow_forecast_10:
        friendly_name: >-
          {% set time =  state_attr('weather.weatherflow_hourly_based_forecast','forecast').20.datetime | as_datetime | as_local | default(0,true) %}
          {{ time | as_timestamp | timestamp_custom('%-H:00') | replace('M','') | lower }}
  #      unit_of_measurement: °
        value_template: "{{ state_attr('weather.weatherflow_hourly_based_forecast','forecast').20.temperature|int}}"
        icon_template: >
          {% set array = { 'clear-night':'night',
                            'cloudy':'cloudy',
                            'exceptional':'sunny',
                            'fog':'fog',
                            'hail':'hail',
                            'lightning':'lightning',
                            'lightning-rainy':'lightning-rainy',
                            'partlycloudy':'partly-cloudy',
                            'rainy':'rainy',
                            'snowy':'snowy',
                            'snowy-rainy':'snowy-rainy',
                            'sunny':'sunny',
                            'windy':'windy' } %}
          {% set icon = array[state_attr('weather.weatherflow_hourly_based_forecast','forecast').20.condition] %}
          mdi:weather-{{ icon }}


      weatherflow_forecast_precip_10:
        friendly_name: "{{ state_attr('weather.weatherflow_hourly_based_forecast','forecast').20.precipitation_probability }}%"
        value_template: >-
          {% set amt = state_attr('weather.weatherflow_hourly_based_forecast','forecast').20.precipitation | float(0) + state_attr('weather.weatherflow_hourly_based_forecast','forecast').21.precipitation | float(0) %}
          {% set amt = (amt * 100) | int(0) %}
          {% if amt > 0 %}
            {% if amt < 100 %}.{{amt}}
            {% else %}{{ amt / 100 }}
            {% endif %}
          {% else %}0
          {% endif %}

     
      weatherflow_forecast_11:
        friendly_name: >-
          {% set time =  state_attr('weather.weatherflow_hourly_based_forecast','forecast').22.datetime | as_datetime | as_local | default(0,true) %}
          {{ time | as_timestamp | timestamp_custom('%-H:00') | replace('M','') | lower }}
  #      unit_of_measurement: °
        value_template: "{{ state_attr('weather.weatherflow_hourly_based_forecast','forecast').22.temperature|int}}"
        icon_template: >
          {% set array = { 'clear-night':'night',
                            'cloudy':'cloudy',
                            'exceptional':'sunny',
                            'fog':'fog',
                            'hail':'hail',
                            'lightning':'lightning',
                            'lightning-rainy':'lightning-rainy',
                            'partlycloudy':'partly-cloudy',
                            'rainy':'rainy',
                            'snowy':'snowy',
                            'snowy-rainy':'snowy-rainy',
                            'sunny':'sunny',
                            'windy':'windy' } %}
          {% set icon = array[state_attr('weather.weatherflow_hourly_based_forecast','forecast').22.condition] %}
          mdi:weather-{{ icon }}


      weatherflow_forecast_precip_11:
        friendly_name: "{{ state_attr('weather.weatherflow_hourly_based_forecast','forecast').22.precipitation_probability }}%"
        value_template: >-
          {% set amt = state_attr('weather.weatherflow_hourly_based_forecast','forecast').22.precipitation | float(0)  + state_attr('weather.weatherflow_hourly_based_forecast','forecast').23.precipitation | float(0) %}
          {% set amt = (amt * 100) | int(0) %}
          {% if amt > 0 %}
            {% if amt < 100 %}.{{amt}}
            {% else %}{{ amt / 100 }}
            {% endif %}
          {% else %}0
          {% endif %}
3 Likes

And here is the yaml for the cards:


    - type: 'custom:vertical-stack-in-card'
      cards:

      - type: custom:platinum-weather-card
        card_config_version: 8
        daily_forecast_days: 5
        daily_forecast_layout: horizontal
        entity_extended: sensor.dark_sky_hourly_summary
        entity_forecast_icon: sensor.dark_sky_icon
        entity_forecast_icon_1: weather.weatherflow_day_based_forecast
        entity_forecast_max: weather.weatherflow_hourly_based_forecast
        entity_forecast_max_1: weather.weatherflow_day_based_forecast
        entity_forecast_min: weather.weatherflow_hourly_based_forecast
        entity_forecast_min_1: weather.weatherflow_day_based_forecast
        entity_pop_1: weather.weatherflow_day_based_forecast
        entity_pos_1: weather.weather_forecast
        entity_summary_1: weather.weatherflow_day_based_forecast
        entity_sun: sun.sun
        entity_temperature: sensor.weatherflow_air_temperature
        entity_todays_uv_forecast: sensor.dark_sky_daily_summary
        entity_wind_bearing: weather.weatherflow_hourly_based_forecast
        entity_wind_gust: sensor.dark_sky_wind_gust
        entity_wind_speed: weather.weatherflow_hourly_based_forecast
        option_time_format: 24hour
        option_tooltips: false
        section_order:
          - overview
          - extended
          - slots
          - daily_forecast
        show_section_daily_forecast: false
        show_section_extended: false
        show_section_overview: true
        show_section_slots: false
        slot_l1: forecast_max
        slot_l2: forecast_min
        slot_l3: wind
        slot_l4: pressure
        slot_l5: sun_next
        slot_l6: remove
        slot_l7: remove
        slot_l8: remove
        slot_r1: popforecast
        slot_r2: humidity
        slot_r3: uv_summary
        slot_r4: fire_danger
        slot_r5: sun_following
        slot_r6: remove
        slot_r7: remove
        slot_r8: remove


        style: |
          ha-card {
            margin-bottom: -50px !important;
            padding-bottom: -50px !important;
            font-size: 18px !important;}


      - type: glance
        columns: 1
        show_icon: false
        show_name: false
        style: |
          ha-card {
            margin-top: -55px !important;
            margin-bottom: -10px !important;
            padding-top: -55px;
            padding-bottom: -10px;
            font-size: 20px;
        entities:
          - entity: weather.weatherflow_day_based_forecast

      - type: glance
        columns: 1
        show_icon: false
        show_name: false
        style: |
          ha-card {
            margin-top: 0px !important;
            margin-bottom: -20px !important;
            padding-top: 0px;
            padding-bottom: -20px;
            font-size: 14px;
        entities:
          - entity: sensor.dark_sky_summary_0d

      ## Today Weather Details - Names
      - type: glance
        columns: 4
        show_icon: false
        show_state: false
        style: |
          ha-card {
            margin-bottom: -10px !important;
            font-size: 10px;
            color: #9da5b4;
          }

        entities:
          - entity: sensor.tempest_st_00023475_humidity
            name: Humiditiy
          - entity: sensor.weatherflow_wind_speed
            name: Wind
          - entity: sensor.weatherflow_wind_cardinal
            name: Direction
          - entity: sensor.dark_sky_precip_probability_0d
            name: Precip.
      ## Today Weather Details - Values
      - type: glance
        columns: 4
        show_icon: false
        show_name: false
        style: |
          ha-card {
            font-size: 12px;
            }
        style: |
          ha-card {
            margin-top: -20px !important;
            margin-bottom: -20px !important;
          }
        entities:
          - entity: sensor.weatherflow_relative_humidity
          - entity: sensor.weatherflow_wind_speed
          - entity: sensor.weatherflow_wind_cardinal
          - entity: sensor.dark_sky_precip_probability_0d


      - type: custom:bar-card
        style: |
          ha-card {
            margin-top: 10px;
            margin-bottom: -10px;
            padding-top: 10px;
            border-top: 5px solid #222222;
          }
          bar-card-card {
            margin-right: 0px;
            font-size: 11px;
          }
          bar-card-value {
            color: #222222;
            color: #9da5b4;
          }
          bar-card-iconbar {
            width: 20px;
            color: #333;
            margin-top: 65px;
          }
          bar-card-name {
            margin: 4px 0;
            color: #9da5b4;
            color: #dadadb;
          }
          .value-direction-up {
            #color: #dadadb;
            margin-top: -125px;
          }
          bar-card-backgroundbar {
            filter: brightness(.45);
          }
        positions:
          indicator: off
          value: inside
          title: off
          name: outside
          icon: inside
        animation:
          state: on
        direction: up
        height: 100px
        width: 22px
        columns: 8
        stack: horizontal
        min: -5
        max: 35
        entities:
          - sensor.weatherflow_forecast_0
          - sensor.weatherflow_forecast_1
          - sensor.weatherflow_forecast_2
          - sensor.weatherflow_forecast_3
          - sensor.weatherflow_forecast_4
          - sensor.weatherflow_forecast_5
          - sensor.weatherflow_forecast_6
          - sensor.weatherflow_forecast_7

        severity:
          - color: rgb(242,249,255)
            from: -30
            to: -17
          - color: rgb(228,242,254)
            from: -17
            to: -15.5
          - color: rgb(215,236,254)
            from: -15.5
            to: -14.5
          - color: rgb(201,229,253)
            from: -14.5
            to: -13.5
          - color: rgb(187,223,253)
            from: -13.5
            to: -12
          - color: rgb(173,216,252)
            from: -12
            to: -11
          - color: rgb(159,210,252)
            from: -11
            to: -10
          - color: rgb(145,203,251)
            from: -10
            to: -9
          - color: rgb(131,197,250)
            from: -9
            to: -8
          - color: rgb(117,190,249)
            from: -8
            to: -6.5
          - color: rgb(103,184,248)
            from: -6.5
            to: -5.5
          - color: rgb(89,177,247)
            from: -5.5
            to: -4.5
          - color: rgb(75,171,246)
            from: -4.5
            to: -3.5
          - color: rgb(61,164,245)
            from: -3.5
            to: -2
          - color: rgb(47,157,244)
            from: -2
            to: -1
          - color: rgb(33150243)
            from: -1
            to: 0
          - color: rgb(44,153,234)
            from: 0
            to: 1
          - color: rgb(55,157,224)
            from: 1
            to: 2
          - color: rgb(66,160,215)
            from: 2
            to: 3.5
          - color: rgb(77,164,205)
            from: 3.5
            to: 4.5
          - color: rgb(88,167,196)
            from: 4.5
            to: 5.5
          - color: rgb(99,171,186)
            from: 5.5
            to: 6.5
          - color: rgb(110,174,177)
            from: 6.5
            to: 8
          - color: rgb(121,178,168)
            from: 8
            to: 9
          - color: rgb(132,181,159)
            from: 9
            to: 10
          - color: rgb(143,185,150)
            from: 10
            to: 11
          - color: rgb(154,188,141)
            from: 11
            to: 12
          - color: rgb(165,192,132)
            from: 12
            to: 13
          - color: rgb(176,195,123)
            from: 13
            to: 14.5
          - color: rgb(187,199,114)
            from: 14.5
            to: 15.5
          - color: rgb(198,202,105)
            from: 15.5
            to: 16.5
          - color: rgb(209,205,96)
            from: 16.5
            to: 18
          - color: rgb(220,208,87)
            from: 18
            to: 19
          - color: rgb(231,211,78)
            from: 19
            to: 20
          - color: rgb(242,214,69)
            from: 20
            to: 21
          - color: rgb(253,217,60)
            from: 21
            to: 22
          - color: rgb(247,206,58)
            from: 22
            to: 23.5
          - color: rgb(240,194,55)
            from: 23.5
            to: 24.5
          - color: rgb(234,183,53)
            from: 24.5
            to: 25.5
          - color: rgb(227,171,50)
            from: 25.5
            to: 26.5
          - color: rgb(221,160,48)
            from: 26.5
            to: 28
          - color: rgb(214,148,45)
            from: 28
            to: 29
          - color: rgb(208,137,43)
            from: 29
            to: 30
          - color: rgb(201,125,40)
            from: 30
            to: 31
          - color: rgb(195,114,38)
            from: 31
            to: 32
          - color: rgb(188,102,35)
            from: 32
            to: 33.5
          - color: rgb(182,91,33)
            from: 33.5
            to: 34.5
          - color: rgb(175,79,30)
            from: 34.5
            to: 35.5
          - color: rgb(169,68,28)
            from: 35.5
            to: 36.5
          - color: rgb(162,56,25)
            from: 36.5
            to: 38
          - color: rgb(155,45,23)
            from: 38
            to: 39
          - color: rgb(148,33,20)
            from: 39
            to: 40
          - color: rgb(141,22,18)
            from: 40
            to: 41
          - color: rgb(134,11,15)
            from: 41
            to: 42
          - color: rgb(127,0,12)
            from: 42
            to: 49

    # BAR CARD FUTURE HOURLY PRECIPITATION

      - type: conditional
        conditions:
        - entity: binary_sensor.weatherflow_forecast_precip_total
          state: 'on'
        card:
          type: custom:bar-card
          style: |
            ha-card {
              margin-top: -15px;
              margin-bottom: -15px;
              padding-top: 0px;
            }
            bar-card-card {
              margin-right: 0px;
              font-size: 11px;
            }
            bar-card-value {
              color: #222222;
            }
            bar-card-iconbar {
              width: 20px;
              color: #333;
              margin-top: 85px;
            }
            bar-card-name {
              margin: 4px 0;
              color: #9da5b4;
            }
            .value-direction-up {
              color: #dadadb;
              margin-top: -120px;
            }
            bar-card-backgroundbar {
              filter: brightness(.65);
            }
          positions:
            indicator: off
            value: off
            title: off
            name: outside
            icon: off
          animation:
            state: on
          direction: up
          height: 25px
          width: 22px
          columns: 8
          stack: horizontal
          min: 0
          max: 5
          entities:
            - sensor.weatherflow_forecast_precip_0
            - sensor.weatherflow_forecast_precip_1
            - sensor.weatherflow_forecast_precip_2
            - sensor.weatherflow_forecast_precip_3
            - sensor.weatherflow_forecast_precip_4
            - sensor.weatherflow_forecast_precip_5
            - sensor.weatherflow_forecast_precip_6
            - sensor.weatherflow_forecast_precip_7


      - type: custom:platinum-weather-card
        style: |
          ha-card {
            margin-top: -15px;
            margin-bottom: 15px;
            padding-top: -10px;
            padding-bottom: 10px
          }
        card_config_version: 8
        daily_forecast_days: 4
        daily_forecast_layout: horizontal
        entity_extended: sensor.dark_sky_hourly_summary
        entity_forecast_icon: sensor.dark_sky_icon
        entity_forecast_icon_1: weather.weatherflow_day_based_forecast
        entity_forecast_max: weather.weatherflow_hourly_based_forecast
        entity_forecast_max_1: weather.weatherflow_day_based_forecast
        entity_forecast_min: weather.weatherflow_hourly_based_forecast
        entity_forecast_min_1: weather.weatherflow_day_based_forecast
        entity_pop_1: weather.weatherflow_day_based_forecast
        entity_pos_1: weather.weather_forecast
        entity_summary: sensor.dark_sky_summary
        entity_summary_1: weather.weatherflow_day_based_forecast
        entity_sun: sun.sun
        entity_temperature: sensor.weatherflow_air_temperature
        entity_todays_uv_forecast: sensor.dark_sky_daily_summary
        entity_wind_bearing: weather.weatherflow_hourly_based_forecast
        entity_wind_gust: sensor.dark_sky_wind_gust
        entity_wind_speed: weather.weatherflow_hourly_based_forecast
        option_time_format: 24hour
        option_tooltips: false
        section_order:
          - overview
          - extended
          - slots
          - daily_forecast
        show_section_extended: false
        show_section_overview: false
        show_section_slots: false
        slot_l1: forecast_max
        slot_l2: forecast_min
        slot_l3: wind
        slot_l4: pressure
        slot_l5: sun_next
        slot_l6: remove
        slot_l7: remove
        slot_l8: remove
        slot_r1: popforecast
        slot_r2: humidity
        slot_r3: uv_summary
        slot_r4: fire_danger
        slot_r5: sun_following
        slot_r6: remove
        slot_r7: remove
        slot_r8: remove
        text_card_title: Weather In Prague

For a more US centric version that looks a bit different for bigger screens, check on this thread,

5 Likes

This looks very nice, I may have to grab your code and play around with it for my install. Quick question (because I’m being really lazy today), what do the numbers on top of the columns/bar code represent?

ie: 10 9 8 7 7 7 9 11?

All around great job!

Those numbers look like the valie of the column’s attribute, in this case that would be the amount of precipitation in mm if I’m not mistaken.

it’s temperature

Yes it’s temperature. You can turn on and off the units. I decided to put the degree symbol back to make it a bit clearer. The nice thing is that you can have it however you like. The precipitation graph shows up only when there’s rain expected and shows both amount and percent chance. You can see it here in Marcus99’s picture (who I stole this from), however he had the graph showing precipitation probability and the amount below, whereas in mine I do the opposite- the graph shows amount and the probability is shown below as a percentage. Again, the flexibility is great, you can see his and mine look quite different.

1 Like

I might take some time to give this one a try, it look Neat and Soft :slight_smile: … And spring is on the way there see :grin:
PS: you can remove the degree symbols again, they are “disturbing” :slight_smile: … My Golden Rule is, as long as i know what it means, and which entity is what , then im ok

Yeah I like the look a lot more than anything else I’ve tried. The degree symbol is indeed a conundrum… I don’t like the way it looks either, but it is also rather ambiguous what the number is if it’s not there (this thread just confirmed my own suspicion around this). I think I’ll leave it for a while until the family gets used to the new format, then take it away again…

1 Like

Atleast it’s only the sign, and not also a capital C , but stil it’s sort of “rubbing” the balance, pushing the number to the left

Yep. Definite OCD trigger for me too.

My rain graph popped up again. Here’s how it looks:

How do you get the little weather icons to show?

it was a combination" vertical-stack with modded weather.forecast_home and apexcharts"

I’ve done apex chart, could you please share your code for the the weather icons. Please

You’ll find it above, where i shared the full code
Well, maybe not… here you go

type: vertical-stack
cards:
  - entity: weather.forecast_home
    show_current: false
    show_forecast: true
    type: weather-forecast
    card_mod:
      style: |
        ha-card {
          font-size: 0pt;
          margin: -60px -20px -80px 30px;
        }
        ha-card div.forecast div.temp {
          font-size: 0pt;
        }
        ha-card div.forecast div.forecast-image-icon svg {
          width: 35px;
          height: 35px
        }