Skip to content

Instantly share code, notes, and snippets.

@topdng
Created February 26, 2025 06:40
Show Gist options
  • Save topdng/36492394cd6eeee495ffd3fa5fcf02f5 to your computer and use it in GitHub Desktop.
Save topdng/36492394cd6eeee495ffd3fa5fcf02f5 to your computer and use it in GitHub Desktop.
HA YAML WEATHER HVAC CARDS REDDIT
views:
- title: HVAC
path: hvac
type: sections
sections:
- type: grid
cards:
- type: heading
heading: HVAC
heading_style: title
- type: custom:mini-graph-card
entities:
- entity: climate.upstairs_thermostat_thermostat
attribute: current_temperature
- entity: climate.downstairs_thermostat_thermostat
attribute: current_temperature
show:
fill: false
icon: false
points_per_hour: 0.5
hours_to_show: 270
name: Upstairs Temperature
- type: custom:mini-graph-card
name: Total Thermostat Heating
entities:
- entity: sensor.total_heating_hours_today
show_state: true
color: gray
hours_to_show: 536
lower_bound: 0
group_by: date
aggregate_func: max
show:
labels: true
graph: bar
average: true
extrema: true
- type: grid
cards:
- type: heading
heading: Weather
heading_style: title
- type: custom:apexcharts-card
graph_span: 9d
experimental:
color_threshold: true
show:
last_updated: true
span:
start: day
offset: '-1d'
header:
show: true
title: Hourly Temperature Forecast
show_states: true
colorize_states: true
now:
show: true
color: red
label: Now
series:
- entity: sensor.outside_temperature_and_humidity_temperature
extend_to: now
name: Outside Temperature
show:
legend_value: false
- entity: sensor.pirate_weather_hourly
extend_to: false
name: Temperature Forecast
data_generator: |
return entity.attributes.forecast.map(forecast => {
return [new Date(forecast.datetime).getTime(), forecast.temperature];
});
color_threshold:
- value: 50
color: steelblue
- value: 60
color: midnightblue
- value: 75
color: orange
- value: 85
color: orangered
- value: 100
color: red
show:
extremas: true
legend_value: false
in_header: after_now
- entity: sensor.pirate_weather_hourly
extend_to: false
name: Apparent Temperature
data_generator: |
return entity.attributes.forecast.map(forecast => {
return [new Date(forecast.datetime).getTime(), forecast.apparent_temperature];
});
stroke_width: 1
show:
extremas: true
legend_value: false
in_header: after_now
chart_type: line
yaxis:
- min: 30
max: 120
apex_config:
grid:
show: false
- type: custom:apexcharts-card
graph_span: 9d
experimental:
color_threshold: true
show:
last_updated: true
span:
start: day
offset: '-1d'
header:
show: true
title: Hourly Humidity Forecast
show_states: true
colorize_states: true
now:
show: true
color: red
label: Now
series:
- entity: sensor.outside_temperature_and_humidity_humidity
extend_to: false
name: Humidity
show:
legend_value: false
- entity: sensor.pirate_weather_hourly
extend_to: false
name: Humidity
data_generator: |
return entity.attributes.forecast.map(forecast => {
return [new Date(forecast.datetime).getTime(), forecast.humidity];
});
show:
extremas: true
legend_value: false
in_header: after_now
chart_type: line
yaxis:
- min: 0
max: 110
apex_config:
grid:
show: false
- type: custom:apexcharts-card
graph_span: 8d
experimental:
color_threshold: true
show:
last_updated: true
span:
start: day
header:
show: true
title: Hourly Cloud Cover Forecast
show_states: true
colorize_states: true
now:
show: true
color: red
label: Now
series:
- entity: sensor.pirate_weather_hourly
extend_to: false
type: area
stroke_width: 0
name: Cloud Cover
data_generator: |
return entity.attributes.forecast.map(forecast => {
return [new Date(forecast.datetime).getTime(), forecast.cloud_coverage];
});
color_threshold:
- value: 0
color: steelblue
- value: 60
color: gray
show:
extremas: true
legend_value: false
in_header: after_now
yaxis:
- min: 0
max: 100
apex_config:
grid:
show: false
- type: custom:apexcharts-card
graph_span: 8d
experimental:
color_threshold: true
show:
last_updated: true
span:
start: day
header:
show: true
title: Hourly Precipitation Forecast
show_states: true
colorize_states: true
now:
show: true
color: red
label: Now
series:
- entity: sensor.pirate_weather_hourly
extend_to: false
name: Precipitation
data_generator: |
return entity.attributes.forecast.map(forecast => {
return [new Date(forecast.datetime).getTime(), forecast.precipitation_probability];
});
color_threshold:
- value: 50
color: steelblue
- value: 60
color: midnightblue
- value: 75
color: orange
- value: 85
color: orangered
- value: 100
color: red
show:
extremas: true
legend_value: false
in_header: after_now
chart_type: line
yaxis:
- min: 0
max: 100
apex_config:
grid:
show: false
- type: custom:apexcharts-card
graph_span: 8d
experimental:
color_threshold: true
show:
last_updated: true
span:
start: day
header:
show: true
title: Hourly Wind Forecast
show_states: true
colorize_states: true
now:
show: true
color: red
label: Now
series:
- entity: sensor.pirate_weather_hourly
extend_to: false
name: Wind Gust
data_generator: |
return entity.attributes.forecast.map(forecast => {
return [new Date(forecast.datetime).getTime(), forecast.wind_gust_speed];
});
show:
extremas: true
legend_value: false
in_header: after_now
- entity: sensor.pirate_weather_hourly
extend_to: false
name: Wind Speed
data_generator: |
return entity.attributes.forecast.map(forecast => {
return [new Date(forecast.datetime).getTime(), forecast.wind_speed];
});
show:
extremas: true
legend_value: false
in_header: after_now
chart_type: line
yaxis:
- min: 0
max: 50
apex_config:
grid:
show: false
- type: custom:apexcharts-card
graph_span: 8d
experimental:
color_threshold: true
show:
last_updated: true
span:
start: day
header:
show: true
title: Hourly UV Index Forecast
show_states: true
colorize_states: true
now:
show: true
color: red
label: Now
series:
- entity: sensor.pirate_weather_hourly
extend_to: false
name: UV Index
data_generator: |
return entity.attributes.forecast
.filter(forecast => forecast.uv_index <= 13) // Only include UV index values <= 13
.map(forecast => {
return [new Date(forecast.datetime).getTime(), forecast.uv_index];
});
color_threshold:
- value: 0
color: steelblue
- value: 11
color: red
show:
extremas: true
legend_value: false
in_header: after_now
chart_type: line
yaxis:
- min: 0
max: 12
apex_config:
grid:
show: false
- type: custom:apexcharts-card
graph_span: 8d
experimental:
color_threshold: true
show:
last_updated: true
span:
start: day
header:
show: true
title: Hourly Dewpoint Forecast
show_states: true
colorize_states: true
now:
show: true
color: red
label: Now
series:
- entity: sensor.pirate_weather_hourly
extend_to: false
name: Dewpoint
data_generator: |
return entity.attributes.forecast.map(forecast => {
return [new Date(forecast.datetime).getTime(), forecast.dew_point];
});
show:
extremas: true
legend_value: false
in_header: after_now
chart_type: line
yaxis:
- min: 0
max: 100
apex_config:
grid:
show: false
- type: custom:apexcharts-card
graph_span: 8d
experimental:
color_threshold: true
show:
last_updated: true
span:
start: day
header:
show: true
title: Hourly Pressure Forecast
show_states: true
colorize_states: true
now:
show: true
color: red
label: Now
series:
- entity: sensor.pirate_weather_hourly
extend_to: false
name: Pressure
data_generator: |
return entity.attributes.forecast.map(forecast => {
return [new Date(forecast.datetime).getTime(), forecast.pressure];
});
show:
extremas: true
legend_value: false
in_header: after_now
chart_type: line
yaxis:
- min: 29
max: 31
apex_config:
grid:
show: false
column_span: 2
@topdng
Copy link
Author

topdng commented Feb 26, 2025

image

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment