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) +[Home](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