diff --git a/README.md b/README.md
index a96d7ee38..77833f98c 100644
--- a/README.md
+++ b/README.md
@@ -1,10 +1,10 @@
# Home Assistant Configuration
-## [More Dashboard Screenshots](https://github.com/jazzyisj/home-assistant-config/wiki)
+[
](https://github.com/jazzyisj/home-assistant-config/blob/master/www/screenshots/browser_home.png)
-![Home](https://github.com/jazzyisj/home-assistant-config/blob/master/www/screenshots/browser_home.png)
+## [View Dashboard Screenshots](https://github.com/jazzyisj/home-assistant-config/wiki)
-##### Updated 24-09-20
+##### Updated 24-12-15
## HARDWARE
@@ -165,14 +165,14 @@
- Weather Chart Card
- Windrose Card
-## ENTITY COUNTS (43 Domains, 4340 Entities)
+## ENTITY COUNTS (43 Domains, 4247 Entities)
- alarm_control_panel: 3
-- alert: 102
-- automation: 312
-- binary_sensor: 488
-- button: 135
-- calendar: 17
+- alert: 103
+- automation: 317
+- binary_sensor: 493
+- button: 138
+- calendar: 16
- camera: 31
- climate: 5
- conversation: 1
@@ -180,30 +180,30 @@
- device_tracker: 75
- event: 75
- fan: 9
-- group: 79
+- group: 80
- image: 21
-- input_boolean: 199
+- input_boolean: 202
- input_button: 2
- input_datetime: 42
-- input_number: 175
-- input_select: 51
-- input_text: 116
-- light: 54
+- input_number: 182
+- input_select: 58
+- input_text: 139
+- light: 55
- lock: 4
-- media_player: 41
+- media_player: 42
- notify: 3
- number: 83
- person: 2
- remote: 1
- scene: 8
-- script: 65
-- select: 198
-- sensor: 1559
+- script: 66
+- select: 220
+- sensor: 1391
- siren: 2
- stt: 2
- sun: 1
-- switch: 184
-- timer: 42
+- switch: 181
+- timer: 41
- todo: 4
- tts: 3
- update: 125
diff --git a/automations/media/alarm_clock/alarm_clock_failed.yaml b/automations/media/alarm_clock/alarm_clock_failed.yaml
index bc67abb08..c5c60e5bd 100644
--- a/automations/media/alarm_clock/alarm_clock_failed.yaml
+++ b/automations/media/alarm_clock/alarm_clock_failed.yaml
@@ -39,9 +39,10 @@
message: "Alarm clock failed at {{ now().strftime('%-I:%M %p') }}."
data:
tag: alarm_clock_failed
- group: Alert
visibility: public
+ persistent: true
channel: alarm_stream # bypass DND
+ group: Alarm Clock
notification_icon: "{{ state_attr('input_boolean.alarm_clock_failed', 'icon') }}"
icon_url: !secret ALARM_CLOCK_ICON
ledColor: !secret CRITICAL_COLOR
diff --git a/automations/media/alarm_clock/alarm_clock_turn_on.yaml b/automations/media/alarm_clock/alarm_clock_turn_on.yaml
index 9f23c6ff8..a8e6b0b0e 100644
--- a/automations/media/alarm_clock/alarm_clock_turn_on.yaml
+++ b/automations/media/alarm_clock/alarm_clock_turn_on.yaml
@@ -45,16 +45,64 @@
{{ iif(trigger.id == 'wake',
is_state('input_select.occupancy_mode', 'Night'), true) }}
then:
- - action: notify.jason #VERIFY
- data:
- title: "Alarm Clock"
- message: "Wake alarm clock was scheduled but the house is already awake!"
- else:
- action: switch.turn_on
target:
entity_id: "switch.alarm_clock_{{ trigger.id }}"
+ else:
+ - action: notify.jason
+ data:
+ title: "Alarm Clock"
+ message: >
+ Wake alarm clock was scheduled for {{ state_attr('sensor.waketime_today', '12hour') }}
+ but the house is already awake!
+ data:
+ tag: alarm_clock_failed
+ visibility: public
+ persistent: true
+ channel: Urgent
+ group: Alarm Clock
+ notification_icon: "{{ state_attr('binary_sensor.alarm_clock', 'icon') }}"
+ icon_url: !secret ALARM_CLOCK_ICON
+ actions:
+ - title: "Play Alarm"
+ action: play_wake_alarm
+
+ - action: notify.jason
+ data:
+ message: clear_notification
+ data:
+ tag: upcoming_alarm_clock
else:
- action: notify.jason
data:
title: "Alarm Clock"
message: "Alarm clock was scheduled but nobody is home!"
+ data:
+ visibility: public
+ persistent: true
+ channel: Urgent
+ group: Alarm Clock
+ notification_icon: "{{ state_attr('binary_sensor.alarm_clock', 'icon') }}"
+ icon_url: !secret ALARM_CLOCK_ICON
+
+ - action: notify.jason
+ data:
+ message: clear_notification
+ data:
+ tag: upcoming_alarm_clock
+
+###############################################################################
+## Alarm Clock - Play Wake Alarm
+###############################################################################
+- id: alarm_clock_play_wake_alarm
+ alias: "[Alarm Clock] Play Wake Alarm"
+ description: "Turn on alarm clock."
+ triggers:
+ - trigger: event
+ event_type: mobile_app_notification_action
+ event_data:
+ action: play_wake_alarm
+ actions:
+ - action: switch.turn_on
+ target:
+ entity_id: switch.alarm_clock_wake
\ No newline at end of file
diff --git a/automations/media/alarm_clock/alarm_clock_upcoming_alarm_notification.yaml b/automations/media/alarm_clock/alarm_clock_upcoming_alarm_notification.yaml
index 9fad35711..7d76b49cc 100644
--- a/automations/media/alarm_clock/alarm_clock_upcoming_alarm_notification.yaml
+++ b/automations/media/alarm_clock/alarm_clock_upcoming_alarm_notification.yaml
@@ -38,7 +38,10 @@
Alarm Time: {{ alarm_time.strftime('%-I:%M %p') }}
data:
tag: upcoming_alarm_clock
+ visibility: public
persistent: true
+ channel: Urgent
+ group: Alarm Clock
notification_icon: "{{ state_attr('binary_sensor.alarm_clock', 'icon') }}"
icon_url: !secret ALARM_CLOCK_ICON
actions:
@@ -76,7 +79,10 @@
Alarm Time: {{ alarm_time.strftime('%-I:%M %p') }}
data:
tag: skipped_alarm_clock
+ visibility: public
persistent: true
+ channel: Urgent
+ group: Alarm Clock
notification_icon: "{{ state_attr('binary_sensor.alarm_clock', 'icon') }}"
icon_url: !secret ALARM_CLOCK_ICON
actions:
diff --git a/packages/unavailable_entities.yaml b/packages/package_unavailable_entities.yaml
similarity index 93%
rename from packages/unavailable_entities.yaml
rename to packages/package_unavailable_entities.yaml
index 8e4cff318..90d18e3da 100644
--- a/packages/unavailable_entities.yaml
+++ b/packages/package_unavailable_entities.yaml
@@ -1,5 +1,5 @@
###################################################################################################
-## PACKAGE: Unavailable Entities Sensor
+## PACKAGE: Unavailable Entities Sensor v2.0
## DESCRIPTION: Count and list entities with a state of unknown or unavailable
## REQUIREMENTS: Home Assistant v2022.5
## USAGE: https://github.com/jazzyisj/unavailable-entities-sensor/blob/main/README.md
@@ -61,15 +61,14 @@ automation:
mode: restart
trigger:
- trigger: state
- entity_id: sensor.unavailable_entities
+ entity_id: group.unavailable_entities
+ attribute: entity_id
to: ~
for: 5 # prevent blank notifications
condition:
- condition: template
alias: "Sensor state is a valid numerical value"
- value_template: >
- {{ is_number(trigger.from_state.state)
- and is_number(trigger.to_state.state) }}
+ value_template: "{{ is_number(states('sensor.unavailable_entities')) }}"
action:
- if:
- condition: numeric_state
diff --git a/scripts/media/media_player/turn_media_player_on.yaml b/scripts/media/media_player/turn_media_player_on.yaml
index 9a898dfd1..3bd01017a 100644
--- a/scripts/media/media_player/turn_media_player_on.yaml
+++ b/scripts/media/media_player/turn_media_player_on.yaml
@@ -1,9 +1,3 @@
-test_media:
- sequence:
- - action: script.turn_media_player_on
- data:
- entity_id: "{{ state_attr('group.cast_media_players','entity_id') }}"
-
###############################################################################
## Turn Media Player On
###############################################################################
@@ -25,7 +19,7 @@ turn_media_player_on:
{% if is_state_attr(entity_id, 'type', 'group') %}
{% set entities = state_attr('sensor.' ~ entity_id.split('.')[1], 'entity_id') %}
{% else %}
- {% set entities = [entities] %}
+ {% set entities = [entities] %}
{% endif %}
{% elif entities | count == 1 %}
{% if is_state_attr(entities[0], 'type', 'group') %}
diff --git a/templates/weather/weather.yaml b/templates/weather/weather.yaml
index ad9dab467..1ae5a9d28 100644
--- a/templates/weather/weather.yaml
+++ b/templates/weather/weather.yaml
@@ -825,7 +825,7 @@
and is_number(states('sensor.tempest_st_00057689_temperature')) }}
- name: "Outdoor Apparent Temperature"
- unique_id: outdoor_apparent_temperature
+ unique_id: outdoor_apparent_temperature #TEST addon settings less updates in stats
device_class: temperature
state_class: measurement
unit_of_measurement: °C
diff --git a/ui-hass.yaml b/ui-hass.yaml
index 20a2d17b7..451850dfe 100644
--- a/ui-hass.yaml
+++ b/ui-hass.yaml
@@ -10,6 +10,6 @@ views:
## Subviews
###############################################################################
# hass
- - !include /config/ui/dashboard/hass/hass_system.yaml
+ - !include /config/ui/dashboard/hass/system.yaml
- !include /config/ui/dashboard/hass/network.yaml
- !include /config/ui/dashboard/hass/shelly.yaml
diff --git a/ui/card/climate/climate_settings.yaml b/ui/card/climate/climate_settings.yaml
index cf20d9da3..857f077f0 100644
--- a/ui/card/climate/climate_settings.yaml
+++ b/ui/card/climate/climate_settings.yaml
@@ -56,7 +56,7 @@ entities:
entity: sensor.indoor_temperature_target
icon: mdi:thermometer
name: "Thermostat Target"
- state: "{{ states('sensor.indoor_temperature_targete', with_unit=true) }}"
+ state: "{{ states('sensor.indoor_temperature_target', with_unit=true) }}"
tap_action:
action: more-info
entities:
diff --git a/ui/card/hass/status_summary.yaml b/ui/card/hass/status_summary.yaml
index 2e2562baf..992ce2a2f 100644
--- a/ui/card/hass/status_summary.yaml
+++ b/ui/card/hass/status_summary.yaml
@@ -10,7 +10,7 @@ entities:
name: "HASS"
tap_action:
action: navigate
- navigation_path: hass-system
+ navigation_path: system-history
card_mod:
style: |
{% from 'style.jinja' import summary_status_sensor_style %}
@@ -29,7 +29,7 @@ entities:
name: "Server"
tap_action:
action: navigate
- navigation_path: hass-system
+ navigation_path: system-history
card_mod:
style: |
{% from 'style.jinja' import summary_status_sensor_style %}
@@ -39,7 +39,7 @@ entities:
name: "Network"
tap_action:
action: navigate
- navigation_path: network
+ navigation_path: network-history
card_mod:
style: |
{% from 'style.jinja' import summary_status_sensor_style %}
diff --git a/ui/card/weather/include/air_quality_entities.yaml b/ui/card/weather/include/air_quality_entities.yaml
index f091d15e4..f0e91b35c 100644
--- a/ui/card/weather/include/air_quality_entities.yaml
+++ b/ui/card/weather/include/air_quality_entities.yaml
@@ -4,14 +4,15 @@
- type: custom:template-entity-row
entity: sensor.air_quality_index
name: "Air Quality Risk"
- state: "{{ states('sensor.aqi_risk_level') }}"
- secondary: "Index: {{ states('sensor.air_quality_index') }}"
+ state: "{{ states('sensor.air_quality_index') }}"
+ secondary: "Risk Level: {{ states('sensor.aqi_risk_level') }}"
card_mod:
style: >
{% from 'weather.jinja' import aqi_index_color %}
{{ aqi_index_color(states('sensor.air_quality_index')) }}
- entity: sensor.ozone_index
+ name: "Ozone"
card_mod:
style: >
{% from 'weather.jinja' import aqi_index_color %}
diff --git a/ui/card/weather/include/precipitation_entities.yaml b/ui/card/weather/include/precipitation_entities.yaml
index bbac9e1dd..34178da92 100644
--- a/ui/card/weather/include/precipitation_entities.yaml
+++ b/ui/card/weather/include/precipitation_entities.yaml
@@ -22,9 +22,9 @@
{% set type = states('sensor.precipitation_type') %}
{{ 'None' if type == 'none' else type | title }}
secondary: >
- {%- set exp = states('sensor.precipitation_expected_today') %}
- {%- if is_number(exp) and exp | float(-1) > 0 -%}
- Accumulation: {{ '%0.1f' | format(exp) | float(-1) }} mm
+ {%- set exp = states('sensor.precipitation_expected_today') | float(-1) %}
+ {%- if exp > -1 -%}
+ Accumulation: {{ '%0.1f' | format(exp) }} mm
{%- endif %}
card_mod:
style: >
@@ -56,10 +56,10 @@
state: "{{ state_attr('sensor.precipitation_start', '12hour') }}"
secondary: >
{% set tomorrow = now().day < as_datetime(states('sensor.precipitation_start')).day | default(false) %}
- {% if is_number(iif(tomorrow, states('sensor.precipitation_expected_tomorrow'),
- states('sensor.precipitation_expected_today'))) %}
- Accumulation: {{ '%0.1f' | format(iif(tomorrow, states('sensor.precipitation_expected_tomorrow'),
- states('sensor.precipitation_expected_today')) | float(-1)) }} mm
+ {% set accum = iif(tomorrow, states('sensor.precipitation_expected_tomorrow'),
+ states('sensor.precipitation_expected_today')) | float(-1) %}
+ {% if accum > 0 %}
+ Accumulation: {{ '%0.1f' | format(accum) }} mm
{% endif %}
active: "{{ is_state('binary_sensor.precipitation_likely_soon', 'on') }}" #BUG not working
card_mod: #BUGFIX #BUG not working in conditional row
@@ -87,10 +87,10 @@
state: "{{ state_attr('sensor.precipitation_start', '12hour') }}"
secondary: >
{% set tomorrow = now().day < as_datetime(states('sensor.precipitation_start')).day | default(false) %}
- {% if is_number(iif(tomorrow, states('sensor.precipitation_expected_tomorrow'),
- states('sensor.precipitation_expected_today'))) %}
- Accumulation: {{ '%0.1f' | format(iif(tomorrow, states('sensor.precipitation_expected_tomorrow'),
- states('sensor.precipitation_expected_today')) | float(-1)) }} mm
+ {% set accum = iif(tomorrow, states('sensor.precipitation_expected_tomorrow'),
+ states('sensor.precipitation_expected_today')) | float(-1) %}
+ {% if accum > 0 %}
+ Accumulation: {{ '%0.1f' | format(accum) }} mm
{% endif %}
active: "{{ is_state('binary_sensor.precipitation_likely_next_24_hours', 'on') }}" #BUG not working
card_mod: #BUGFIX #BUG not working in conditional row
diff --git a/ui/dashboard/hass/network.yaml b/ui/dashboard/hass/network.yaml
index ec80614c4..5808e3dbf 100644
--- a/ui/dashboard/hass/network.yaml
+++ b/ui/dashboard/hass/network.yaml
@@ -1,8 +1,8 @@
###############################################################################
## Network Subview
###############################################################################
-title: "Network Detail"
-path: network
+title: "Network History"
+path: network-history
subview: true
panel: true
cards:
diff --git a/ui/dashboard/hass/shelly.yaml b/ui/dashboard/hass/shelly.yaml
index 15ce1af11..445b5aa5a 100644
--- a/ui/dashboard/hass/shelly.yaml
+++ b/ui/dashboard/hass/shelly.yaml
@@ -6,4 +6,4 @@ path: shelly
subview: true
panel: true
cards:
- - !include /config/ui/iframe/allergy.yaml
+ - !include /config/ui/iframe/shelly.yaml
diff --git a/ui/dashboard/hass/hass_system.yaml b/ui/dashboard/hass/system.yaml
similarity index 62%
rename from ui/dashboard/hass/hass_system.yaml
rename to ui/dashboard/hass/system.yaml
index 695c721c5..11e955ccf 100644
--- a/ui/dashboard/hass/hass_system.yaml
+++ b/ui/dashboard/hass/system.yaml
@@ -1,9 +1,9 @@
###############################################################################
-## HASS System Subview
+## System History Subview
###############################################################################
-title: "HASS System"
-path: hass-system
+title: "System History"
+path: system-history
subview: true
panel: true
cards:
- - !include /config/ui/history/hass_system.yaml
+ - !include /config/ui/history/system.yaml
diff --git a/ui/gauge/outdoor_temperature.yaml b/ui/gauge/outdoor_temperature.yaml
index 515ef4f1d..e15da250d 100644
--- a/ui/gauge/outdoor_temperature.yaml
+++ b/ui/gauge/outdoor_temperature.yaml
@@ -29,7 +29,7 @@ segments:
color: rgb(93, 133, 198)
- from: 0 # 32
- label: "Freezing"
+ label: "Cold"
color: rgb(68, 125, 99)
- from: 5 # 40
diff --git a/ui/graph/climate/bathroom_humidity.yaml b/ui/graph/climate/bathroom_humidity.yaml
index 22dc79d0b..6c3826168 100644
--- a/ui/graph/climate/bathroom_humidity.yaml
+++ b/ui/graph/climate/bathroom_humidity.yaml
@@ -8,13 +8,8 @@ header:
series:
- entity: sensor.mold_indicator
yaxis_id: humidity
- stroke_width: 3
color: rgb(247, 49, 49)
- - entity: sensor.indoor_humidity
- yaxis_id: humidity
- color: rgb(171, 205, 255)
-
- entity: sensor.bathroom_sensor_humidity
yaxis_id: humidity
type: area
diff --git a/ui/graph/climate/bathroom_temperature.yaml b/ui/graph/climate/bathroom_temperature.yaml
index 450dc08f6..a4e5a1e8b 100644
--- a/ui/graph/climate/bathroom_temperature.yaml
+++ b/ui/graph/climate/bathroom_temperature.yaml
@@ -6,9 +6,12 @@ config_templates: mini # climate_mini
header:
title: "Bathroom"
series:
- - entity: sensor.indoor_temperature
+ - entity: sensor.indoor_temperature_target
yaxis_id: temperature
- color: rgb(247, 237, 161)
+ group_by:
+ func: raw
+ curve: stepline
+ color: rgb(255, 255, 255)
- entity: sensor.bathroom_sensor_air_temperature
yaxis_id: temperature
diff --git a/ui/graph/climate/bedroom_humidity.yaml b/ui/graph/climate/bedroom_humidity.yaml
index 245247f3f..7438bb900 100644
--- a/ui/graph/climate/bedroom_humidity.yaml
+++ b/ui/graph/climate/bedroom_humidity.yaml
@@ -6,10 +6,6 @@ config_templates: climate_mini
header:
title: "Bedroom"
series:
- - entity: sensor.indoor_humidity
- yaxis_id: humidity
- color: rgb(171, 205, 255)
-
- entity: sensor.bedroom_humidity
yaxis_id: humidity
type: area
diff --git a/ui/graph/climate/bedroom_temperature.yaml b/ui/graph/climate/bedroom_temperature.yaml
index 0dd24b274..2bf4f8b1f 100644
--- a/ui/graph/climate/bedroom_temperature.yaml
+++ b/ui/graph/climate/bedroom_temperature.yaml
@@ -6,9 +6,12 @@ config_templates: climate_mini
header:
title: "Bedroom"
series:
- - entity: sensor.indoor_temperature
+ - entity: sensor.indoor_temperature_target
yaxis_id: temperature
- color: rgb(247, 237, 161)
+ group_by:
+ func: raw
+ curve: stepline
+ color: rgb(255, 255, 255)
- entity: sensor.bedroom_temperature
yaxis_id: temperature
diff --git a/ui/graph/climate/indoor_temperature.yaml b/ui/graph/climate/indoor_temperature.yaml
index 8a73401d0..fff72238f 100644
--- a/ui/graph/climate/indoor_temperature.yaml
+++ b/ui/graph/climate/indoor_temperature.yaml
@@ -16,7 +16,7 @@ series:
group_by:
func: raw
curve: stepline
- color: rgb(247, 237, 161)
+ color: rgb(255, 255, 255)
- entity: sensor.indoor_temperature
yaxis_id: temperature
diff --git a/ui/graph/climate/living_room_humidity.yaml b/ui/graph/climate/living_room_humidity.yaml
index c364272bc..189f6d2c1 100644
--- a/ui/graph/climate/living_room_humidity.yaml
+++ b/ui/graph/climate/living_room_humidity.yaml
@@ -6,10 +6,6 @@ config_templates: climate_mini
header:
title: "Living Room"
series:
- - entity: sensor.indoor_humidity
- yaxis_id: humidity
- color: rgb(171, 205, 255)
-
- entity: sensor.living_room_humidity
yaxis_id: humidity
type: area
diff --git a/ui/graph/climate/living_room_temperature.yaml b/ui/graph/climate/living_room_temperature.yaml
index 3aa94f50d..0749c62b3 100644
--- a/ui/graph/climate/living_room_temperature.yaml
+++ b/ui/graph/climate/living_room_temperature.yaml
@@ -6,9 +6,12 @@ config_templates: climate_mini
header:
title: "Living Room"
series:
- - entity: sensor.indoor_temperature
+ - entity: sensor.indoor_temperature_target
yaxis_id: temperature
- color: rgb(247, 237, 161)
+ group_by:
+ func: raw
+ curve: stepline
+ color: rgb(255, 255, 255)
- entity: sensor.living_room_temperature
yaxis_id: temperature
diff --git a/ui/graph/climate/thermostat_humidity.yaml b/ui/graph/climate/thermostat_humidity.yaml
index afd2323e5..38a4f962a 100644
--- a/ui/graph/climate/thermostat_humidity.yaml
+++ b/ui/graph/climate/thermostat_humidity.yaml
@@ -6,10 +6,6 @@ config_templates: climate_mini
header:
title: "Thermostat"
series:
- - entity: sensor.indoor_humidity
- yaxis_id: humidity
- color: rgb(171, 205, 255)
-
- entity: sensor.thermostat_humidity
yaxis_id: humidity
type: area
diff --git a/ui/graph/climate/thermostat_temperature.yaml b/ui/graph/climate/thermostat_temperature.yaml
index 6c157500c..e48d169ec 100644
--- a/ui/graph/climate/thermostat_temperature.yaml
+++ b/ui/graph/climate/thermostat_temperature.yaml
@@ -11,9 +11,12 @@ yaxis:
min: ~15
max: ~30
series:
- - entity: sensor.indoor_temperature
+ - entity: sensor.indoor_temperature_target
yaxis_id: temperature
- color: rgb(247, 237, 161)
+ group_by:
+ func: raw
+ curve: stepline
+ color: rgb(255, 255, 255)
- entity: sensor.thermostat_temperature
yaxis_id: temperature
diff --git a/ui/graph/weather/precipitation_detail.yaml b/ui/graph/weather/precipitation_detail.yaml
index 3f52281a2..7c4984173 100644
--- a/ui/graph/weather/precipitation_detail.yaml
+++ b/ui/graph/weather/precipitation_detail.yaml
@@ -59,7 +59,7 @@ yaxis:
show: true
opposite: true
min: 0
- max: ~50
+ max: ~40
apex_config:
tickAmount: 5
decimalsInFloat: 1
@@ -84,6 +84,93 @@ yaxis:
tickAmount: 5
decimalsInFloat: 0
series:
+ - entity: sensor.rain_accumulation_today
+ name: "Rain"
+ yaxis_id: precip
+ type: column
+ float_precision: 1
+ offset: +1h # template resets just past midnight, offset to avoid duplicate values
+ group_by:
+ duration: 1d
+ stack_group: precip
+ show:
+ datalabels: true
+ stroke_width: 5
+ opacity: 0.6
+ color: rgb(15, 45, 191)
+
+ - entity: sensor.snow_accumulation_today
+ name: "Snow"
+ yaxis_id: precip
+ type: column
+ float_precision: 1
+ extend_to: now
+ offset: +1h # template resets just past midnight, offset to avoid duplicate values
+ group_by:
+ duration: 1d
+ stack_group: precip
+ show:
+ datalabels: true
+ stroke_width: 5
+ opacity: 0.6
+ color: rgb(27, 147, 227)
+
+ - entity: sensor.ice_accumulation_today
+ name: "Ice Today"
+ yaxis_id: precip
+ type: column
+ float_precision: 1
+ extend_to: now
+ offset: +1h # template resets just past midnight, offset to avoid duplicate values
+ group_by:
+ duration: 1d
+ stack_group: precip
+ show:
+ datalabels: true
+ stroke_width: 5
+ opacity: 0.6
+ color: rgb(120, 48, 116)
+
+ - entity: sensor.daily_weather
+ name: "Expected"
+ yaxis_id: precip
+ type: column
+ float_precision: 1
+ group_by:
+ duration: 1d
+ stack_group: precip
+ data_generator: |
+ return entity.attributes.forecast.map((entry) => {
+ return [new Date(entry.datetime).getTime(), entry.precipitation];
+ });
+ show:
+ datalabels: true
+ stroke_width: 5
+ opacity: 0.6
+ color: rgb(116, 83, 177)
+
+ - entity: sensor.barometric_pressure
+ name: "Pressure"
+ yaxis_id: pressure
+ extend_to: now
+ group_by:
+ duration: 6h
+ float_precision: 0
+ stroke_width: 2
+ color: rgb(242, 235, 36)
+
+ - entity: sensor.hourly_weather
+ name: " "
+ yaxis_id: pressure
+ group_by:
+ duration: 6h
+ data_generator: |
+ return entity.attributes.forecast.map((entry) => {
+ return [new Date(entry.datetime).getTime(), entry.pressure];
+ });
+ stroke_width: 2
+ color: rgb(242, 235, 36)
+
- entity: sensor.cloud_coverage
name: "Clouds"
yaxis_id: clouds
@@ -102,7 +189,7 @@ series:
return entity.attributes.forecast.map((entry) => {
return [new Date(entry.datetime).getTime(), entry.cloud_coverage];
});
- color: rgb(20, 20, 20)
+ color: rgb(150, 150, 150)
color_threshold: !include /config/ui/graph/include/cloud_cover_line_color.yaml
- entity: sensor.cloud_coverage
@@ -113,7 +200,7 @@ series:
show:
legend_value: false
stroke_width: 0
- color: rgb(20, 20, 20)
+ color: rgb(150, 150, 150)
color_threshold: !include /config/ui/graph/include/cloud_cover_area_color.yaml
- entity: sensor.hourly_weather
@@ -125,7 +212,7 @@ series:
return [new Date(entry.datetime).getTime(), entry.cloud_coverage];
});
stroke_width: 0
- color: rgb(20, 20, 20)
+ color: rgb(150, 150, 150)
color_threshold: !include /config/ui/graph/include/cloud_cover_area_color.yaml
- entity: sensor.precipitation_probability
@@ -133,7 +220,7 @@ series:
yaxis_id: probability
extend_to: now
stroke_width: 1
- color: rgb(117, 43, 181)
+ color: rgb(37, 85, 229)
color_threshold: !include /config/ui/graph/include/precipitation_probability_line_color.yaml
- entity: sensor.hourly_weather
@@ -144,7 +231,7 @@ series:
return [new Date(entry.datetime).getTime(), entry.precipitation_probability];
});
stroke_width: 1
- color: rgb(117, 43, 181)
+ color: rgb(37, 85, 229)
color_threshold: !include /config/ui/graph/include/precipitation_probability_line_color.yaml
- entity: sensor.precipitation_probability
@@ -153,6 +240,7 @@ series:
type: area
extend_to: now
stroke_width: 0
+ color: rgb(37, 85, 229)
color_threshold: !include /config/ui/graph/include/precipitation_probability_area_color.yaml
- entity: sensor.hourly_weather
@@ -164,31 +252,9 @@ series:
return [new Date(entry.datetime).getTime(), entry.precipitation_probability];
});
stroke_width: 0
- color: rgb(20, 20, 20)
+ color: rgb(37, 85, 229)
color_threshold: !include /config/ui/graph/include/precipitation_probability_area_color.yaml
- - entity: sensor.barometric_pressure
- name: "Pressure"
- yaxis_id: pressure
- extend_to: now
- group_by:
- duration: 6h
- float_precision: 0
- stroke_width: 2
- color: rgb(242, 235, 36)
-
- - entity: sensor.hourly_weather
- name: "Pressure Forecast"
- yaxis_id: pressure
- group_by:
- duration: 6h
- data_generator: |
- return entity.attributes.forecast.map((entry) => {
- return [new Date(entry.datetime).getTime(), entry.pressure];
- });
- stroke_width: 2
- color: rgb(242, 235, 36)
-
- entity: sensor.precipitation_intensity
name: "Rate"
yaxis_id: precip_rate
@@ -196,6 +262,7 @@ series:
float_precision: 3
extend_to: now
stroke_width: 1
+ color: rgb(255, 255, 255)
color_threshold: !include /config/ui/graph/include/precipitation_rate_line_color.yaml
- entity: sensor.precipitation_intensity
@@ -205,70 +272,5 @@ series:
float_precision: 3
extend_to: now
stroke_width: 0
- color: rgb(20, 20, 20)
+ color: rgb(255, 255, 255)
color_threshold: !include /config/ui/graph/include/precipitation_rate_area_color.yaml
-
- - entity: sensor.rain_accumulation_today
- name: "Rain"
- yaxis_id: precip
- type: column
- float_precision: 1
- offset: +1h # template resets just past midnight, offset to avoid duplicate values
- group_by:
- duration: 1d
- stack_group: precip
- show:
- datalabels: true
- stroke_width: 5
- opacity: 0.7
- color: rgb(15, 45, 191)
-
- - entity: sensor.snow_accumulation_today
- name: "Snow"
- yaxis_id: precip
- type: column
- float_precision: 1
- extend_to: now
- offset: +1h # template resets just past midnight, offset to avoid duplicate values
- group_by:
- duration: 1d
- stack_group: precip
- show:
- datalabels: true
- stroke_width: 5
- opacity: 0.7
- color: rgb(27, 147, 227)
-
- - entity: sensor.ice_accumulation_today
- name: "Ice Today"
- yaxis_id: precip
- type: column
- float_precision: 1
- extend_to: now
- offset: +1h # template resets just past midnight, offset to avoid duplicate values
- group_by:
- duration: 1d
- stack_group: precip
- show:
- datalabels: true
- stroke_width: 5
- opacity: 0.7
- color: rgb(120, 48, 116)
-
- - entity: sensor.daily_weather
- name: "Expected"
- yaxis_id: precip
- type: column
- float_precision: 1
- group_by:
- duration: 1d
- stack_group: precip
- data_generator: |
- return entity.attributes.forecast.map((entry) => {
- return [new Date(entry.datetime).getTime(), entry.precipitation];
- });
- show:
- datalabels: true
- stroke_width: 5
- opacity: 0.7
- color: rgb(49, 14, 115)
\ No newline at end of file
diff --git a/ui/graph/weather/temperature_detail.yaml b/ui/graph/weather/temperature_detail.yaml
index 946ff1ec9..8d90ab953 100644
--- a/ui/graph/weather/temperature_detail.yaml
+++ b/ui/graph/weather/temperature_detail.yaml
@@ -59,7 +59,7 @@ series:
type: area
extend_to: now
stroke_width: 0
- color: rgb(150, 150, 150)
+ color: rgb(207, 232, 47)
color_threshold: !include /config/ui/graph/include/temperature_area_color.yaml
- entity: sensor.hourly_weather
@@ -71,7 +71,7 @@ series:
return [new Date(entry.datetime).getTime(), entry.temperature];
});
stroke_width: 0
- color: rgb(150, 150, 150)
+ color: rgb(207, 232, 47)
color_threshold: !include /config/ui/graph/include/temperature_area_color.yaml
- entity: sensor.outdoor_temperature
@@ -79,7 +79,7 @@ series:
yaxis_id: temperature
extend_to: now
stroke_width: 4
- color: rgb(150, 150, 150)
+ color: rgb(207, 232, 47)
color_threshold: !include /config/ui/graph/include/temperature_line_color.yaml
- entity: sensor.hourly_weather
@@ -90,7 +90,7 @@ series:
return [new Date(entry.datetime).getTime(), entry.temperature];
});
stroke_width: 4
- color: rgb(150, 150, 150)
+ color: rgb(207, 232, 47)
color_threshold: !include /config/ui/graph/include/temperature_line_color.yaml
- entity: sensor.outdoor_temperature_daily_average
diff --git a/ui/graph/weather/wind_detail.yaml b/ui/graph/weather/wind_detail.yaml
index 7aa91bef0..07c26812f 100644
--- a/ui/graph/weather/wind_detail.yaml
+++ b/ui/graph/weather/wind_detail.yaml
@@ -44,32 +44,32 @@ series:
name: "Gust"
yaxis_id: speed
extend_to: now
- color: rgb(150, 150, 150)
+ color: rgb(207, 209, 55)
color_threshold: !include /config/ui/graph/include/wind_speed_line_color.yaml
- entity: sensor.hourly_weather
- name: "Gust"
+ name: " "
yaxis_id: speed
data_generator: |
return entity.attributes.forecast.map((entry) => {
return [new Date(entry.datetime).getTime(), entry.wind_gust_speed];
});
- color: rgb(150, 150, 150)
+ color: rgb(207, 209, 55)
color_threshold: !include /config/ui/graph/include/wind_speed_line_color.yaml
- entity: sensor.wind_gust
- name: "Gust"
+ name: " "
type: area
yaxis_id: speed
extend_to: now
show:
legend_value: false
stroke_width: 0
- color: rgb(150, 150, 150)
+ color: rgb(207, 209, 55)
color_threshold: !include /config/ui/graph/include/wind_speed_area_color.yaml
- entity: sensor.hourly_weather
- name: "Gust"
+ name: " "
type: area
yaxis_id: speed
data_generator: |
@@ -79,39 +79,39 @@ series:
show:
legend_value: false
stroke_width: 0
- color: rgb(150, 150, 150)
+ color: rgb(207, 209, 55)
color_threshold: !include /config/ui/graph/include/wind_speed_area_color.yaml
- name: "Wind"
entity: sensor.wind_speed
yaxis_id: speed
extend_to: now
- color: rgb(150, 150, 150)
+ color: rgb(17, 146, 49)
color_threshold: !include /config/ui/graph/include/wind_speed_line_color.yaml
- entity: sensor.hourly_weather
- name: "Wind"
+ name: " "
yaxis_id: speed
data_generator: |
return entity.attributes.forecast.map((entry) => {
return [new Date(entry.datetime).getTime(), entry.wind_speed];
});
- color: rgb(150, 150, 150)
+ color: rgb(17, 146, 49)
color_threshold: !include /config/ui/graph/include/wind_speed_line_color.yaml
- entity: sensor.wind_speed
- name: "Wind"
+ name: " "
yaxis_id: speed
type: area
extend_to: now
show:
legend_value: false
stroke_width: 0
- color: rgb(150, 150, 150)
+ color: rgb(17, 146, 49)
color_threshold: !include /config/ui/graph/include/wind_speed_area_color.yaml
- entity: sensor.hourly_weather
- name: "Wind"
+ name: " "
yaxis_id: speed
type: area
data_generator: |
@@ -121,7 +121,7 @@ series:
show:
legend_value: false
stroke_width: 0
- color: rgb(150, 150, 150)
+ color: rgb(17, 146, 49)
color_threshold: !include /config/ui/graph/include/wind_speed_area_color.yaml
- entity: sensor.wind_lull
diff --git a/ui/history/hass_system.yaml b/ui/history/system.yaml
similarity index 96%
rename from ui/history/hass_system.yaml
rename to ui/history/system.yaml
index 8c52dfaf8..3f51ec315 100644
--- a/ui/history/hass_system.yaml
+++ b/ui/history/system.yaml
@@ -4,7 +4,7 @@
type: vertical-stack
cards:
- type: history-graph
- title: "HASS System"
+ title: "Network Throughput"
hours_to_show: 1
show_names: true
entities:
@@ -15,7 +15,7 @@ cards:
name: "Sent"
- type: history-graph
- title: "Data Downloaded"
+ title: "Data Transferred"
hours_to_show: 1
show_names: true
entities:
diff --git a/ui/statistics_graph/barometric_pressure.yaml b/ui/statistics_graph/barometric_pressure.yaml
index 797f96c03..ff7c72630 100644
--- a/ui/statistics_graph/barometric_pressure.yaml
+++ b/ui/statistics_graph/barometric_pressure.yaml
@@ -11,3 +11,6 @@ period: week
chart_type: line
stat_types:
- mean
+ - max
+ - min
+
diff --git a/www/screenshots/atmospheric_conditions.png b/www/screenshots/atmospheric_conditions.png
index 72b4245bf..094ecb168 100644
Binary files a/www/screenshots/atmospheric_conditions.png and b/www/screenshots/atmospheric_conditions.png differ
diff --git a/www/screenshots/forecast_detail.png b/www/screenshots/forecast_detail.png
index 9484a4977..3f8f63ec3 100644
Binary files a/www/screenshots/forecast_detail.png and b/www/screenshots/forecast_detail.png differ
diff --git a/www/screenshots/lightning.png b/www/screenshots/lightning.png
index c712ae276..8366a1d32 100644
Binary files a/www/screenshots/lightning.png and b/www/screenshots/lightning.png differ
diff --git a/www/screenshots/outdoor_temperature.png b/www/screenshots/outdoor_temperature.png
index 3c4113ca2..0ea9fc774 100644
Binary files a/www/screenshots/outdoor_temperature.png and b/www/screenshots/outdoor_temperature.png differ
diff --git a/www/screenshots/precipitation.png b/www/screenshots/precipitation.png
index c03e1da6c..1f1c41bd1 100644
Binary files a/www/screenshots/precipitation.png and b/www/screenshots/precipitation.png differ
diff --git a/www/screenshots/uv_index.png b/www/screenshots/uv_index.png
deleted file mode 100644
index e04cbb824..000000000
Binary files a/www/screenshots/uv_index.png and /dev/null differ
diff --git a/www/screenshots/weather_statistics.png b/www/screenshots/weather_statistics.png
deleted file mode 100644
index 529b160dd..000000000
Binary files a/www/screenshots/weather_statistics.png and /dev/null differ
diff --git a/www/screenshots/wind_conditions.png b/www/screenshots/wind_conditions.png
index 4bd4f93db..55d2ec17c 100644
Binary files a/www/screenshots/wind_conditions.png and b/www/screenshots/wind_conditions.png differ