Created
March 31, 2026 22:40
-
-
Save jtroberts83/089638e221f4118822d20b9ed73fd8a6 to your computer and use it in GitHub Desktop.
Home Assistant Humidifiers Dashboard
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| title: Humidifier Dashboard | |
| views: | |
| - title: Humidifiers | |
| path: humidifiers | |
| icon: mdi:air-humidifier | |
| type: custom:masonry-layout | |
| layout: | |
| width: 300 | |
| max_cols: 4 | |
| background: >- | |
| center / cover no-repeat | |
| url('https://basicappleguy.com/s/F06_Mac.png?format=1500w') | |
| cards: | |
| - type: vertical-stack | |
| cards: | |
| - type: custom:mushroom-title-card | |
| title: > | |
| {% set kitchen = states('input_boolean.kitchen_humidifier_state') | |
| == 'on' %} {% set basement = | |
| states('input_boolean.basement_humidifier_state') == 'on' %} {% if | |
| kitchen and basement %} | |
| π’ BOTH Humidifiers - ON | |
| {% elif kitchen %} | |
| π’ KITCHEN Humidifier - ON | |
| {% elif basement %} | |
| π’ BASEMENT Humidifier - ON | |
| {% else %} | |
| π΄ Humidifiers - OFF | |
| {% endif %} | |
| alignment: start | |
| card_mod: | |
| style: | | |
| .title { | |
| font-weight: bold !important; | |
| font-size: 2em !important; | |
| } | |
| .subtitle { | |
| font-weight: 500 !important; | |
| color: grey !important; | |
| } | |
| - type: custom:mushroom-template-card | |
| primary: Kitchen Humidifier | |
| secondary: > | |
| {% set w = | |
| states('sensor.kitchen_humidifier_plug_current_consumption') | | |
| float(default=0) %} {% set humidity = | |
| states('sensor.thermostat_humidity') | float(default=0) %} {% set | |
| threshold = states('input_number.humidifier_off_threshold') | | |
| float(default=0) %} {% set diff = (threshold - humidity) | | |
| round(1) %} {% if w <= 4.7 %}β« Off {% elif w <= 9 %}π€ Idle {% | |
| elif w <= 160 %}π’ Low {% elif w <= 208 %}π‘ Medium {% elif w <= | |
| 258 %}π΄ High {% else %}β Unknown {% endif %} | π§ {{ humidity }}% | |
| | {% if diff > 0 %}π {{ diff }}% to target {% elif diff < 0 %}β | |
| {{ diff | abs }}% over target {% else %}π― At target{% endif %} β | |
| {% set seconds = (now() - | |
| states.input_boolean.kitchen_humidifier_state.last_changed).total_seconds() | |
| | int %} {% if seconds < 60 %}just now {% elif seconds < 3600 %}{{ | |
| (seconds / 60) | int }}m ago {% elif seconds < 86400 %}{{ (seconds | |
| / 3600) | int }}h ago {% else %}{{ (seconds / 86400) | int }}d | |
| ago{% endif %} | |
| icon: mdi:power | |
| entity: input_boolean.kitchen_humidifier_state | |
| tap_action: | |
| action: none | |
| hold_action: | |
| action: none | |
| color: | | |
| {% if states('input_boolean.kitchen_humidifier_state') == 'on' %} | |
| green | |
| {% else %} | |
| red | |
| {% endif %} | |
| features_position: bottom | |
| - type: custom:mushroom-template-card | |
| primary: Basement Humidifier | |
| secondary: > | |
| {% set w = | |
| states('sensor.basement_humidifier_plug_current_consumption') | | |
| float(default=0) %} {% set humidity = | |
| states('sensor.basement_play_area_humidity') | float(default=0) %} | |
| {% set threshold = states('input_number.humidifier_off_threshold') | |
| | float(default=0) %} {% set diff = (threshold - humidity) | | |
| round(1) %} {% if w <= 4.7 %}β« Off {% elif w <= 9 %}π€ Idle {% | |
| elif w <= 160 %}π’ Low {% elif w <= 208 %}π‘ Medium {% elif w <= | |
| 258 %}π΄ High {% else %}β Unknown {% endif %} | π§ {{ humidity }}% | |
| | {% if diff > 0 %}π {{ diff }}% to target {% elif diff < 0 %}β | |
| {{ diff | abs }}% over target {% else %}π― At target{% endif %} β | |
| {% set seconds = (now() - | |
| states.input_boolean.basement_humidifier_state.last_changed).total_seconds() | |
| | int %} {% if seconds < 60 %}just now {% elif seconds < 3600 %}{{ | |
| (seconds / 60) | int }}m ago {% elif seconds < 86400 %}{{ (seconds | |
| / 3600) | int }}h ago {% else %}{{ (seconds / 86400) | int }}d | |
| ago{% endif %} | |
| icon: mdi:power | |
| entity: input_boolean.basement_humidifier_state | |
| tap_action: | |
| action: none | |
| hold_action: | |
| action: none | |
| color: | | |
| {% if states('input_boolean.basement_humidifier_state') == 'on' %} | |
| green | |
| {% else %} | |
| red | |
| {% endif %} | |
| features_position: bottom | |
| - type: vertical-stack | |
| cards: | |
| - type: custom:mushroom-title-card | |
| title: π§Humidity Thresholds | |
| card_mod: | |
| style: | | |
| .title { | |
| font-weight: bold !important; | |
| #color: #29abe2 !important; | |
| font-size: 2em !important; | |
| } | |
| .subtitle { | |
| font-weight: 500 !important; | |
| color: grey !important; | |
| } | |
| - type: entities | |
| entities: | |
| - entity: sensor.rolling_average_humidity | |
| name: π Whole House Avg Humidity | |
| secondary_info: last-changed | |
| - entity: sensor.rolling_average_temperature | |
| name: π‘οΈ Whole House Avg Temp | |
| secondary_info: last-changed | |
| - entity: input_number.humidifier_on_threshold | |
| name: π§ Turn On Below | |
| - entity: input_number.humidifier_off_threshold | |
| name: π Turn Off Above | |
| secondary_info: last-changed | |
| - type: custom:mushroom-template-card | |
| primary: π€ Smart Humidity Adjust | |
| secondary: > | |
| {% if is_state('input_boolean.auto_humidity_control_toggle', 'on') | |
| %} | |
| β Active β Auto thresholds based on in+outdoor conditions | |
| {% else %} | |
| β« Off β using fixed on/off thresholds | |
| {% endif %} | |
| icon: mdi:brain | |
| entity: input_boolean.auto_humidity_control_toggle | |
| tap_action: | |
| action: toggle | |
| color: > | |
| {% if is_state('input_boolean.auto_humidity_control_toggle', 'on') | |
| %} | |
| green | |
| {% else %} | |
| grey | |
| {% endif %} | |
| features_position: bottom | |
| card_mod: | |
| style: | | |
| ha-card { | |
| position: relative; | |
| } | |
| ha-card:hover::after { | |
| content: 'Dynamically adjusts humidity on/off thresholds based on OUTDOOR: temp, humidity, dew point, wet bulb temp, vapor pressure, wind speed, precip + INDOOR: temp, humidity, fresh air state, and air replacement to prevent condensation on windows and mold.'; | |
| position: absolute; | |
| bottom: calc(100% + 6px); | |
| left: 50%; | |
| transform: translateX(-50%); | |
| background: rgba(41, 128, 185, 0.9); | |
| color: white; | |
| padding: 6px 10px; | |
| border-radius: 6px; | |
| font-size: 12px; | |
| white-space: normal; | |
| max-width: 260px; | |
| z-index: 9999; | |
| pointer-events: none; | |
| text-align: center; | |
| } | |
| - type: vertical-stack | |
| cards: | |
| - type: vertical-stack | |
| cards: | |
| - type: custom:mushroom-title-card | |
| title: πͺVentilation | |
| card_mod: | |
| style: | | |
| .title { | |
| font-weight: bold !important; | |
| #color: #29abe2 !important; | |
| font-size: 2em !important; | |
| } | |
| .subtitle { | |
| font-weight: 500 !important; | |
| color: grey !important; | |
| } | |
| - type: custom:mushroom-template-card | |
| primary: QuietCool Whole House Fan | |
| secondary: > | |
| {% if is_state('switch.quiet_cool_whole_house_fan', 'on') %} | |
| π Running | |
| {% else %} | |
| β« Off | |
| {% endif %} β {% set seconds = (now() - | |
| states.switch.quiet_cool_whole_house_fan.last_changed).total_seconds() | |
| | int %} {% if seconds < 60 %}just now {% elif seconds < 3600 | |
| %}{{ (seconds / 60) | int }}m ago {% elif seconds < 86400 %}{{ | |
| (seconds / 3600) | int }}h ago {% else %}{{ (seconds / 86400) | |
| | int }}d ago{% endif %} | |
| icon: mdi:fan | |
| entity: switch.quiet_cool_whole_house_fan | |
| tap_action: | |
| action: none | |
| hold_action: | |
| action: none | |
| color: | | |
| {% if is_state('switch.quiet_cool_whole_house_fan', 'on') %} | |
| blue | |
| {% else %} | |
| grey | |
| {% endif %} | |
| features_position: bottom | |
| - type: custom:mushroom-template-card | |
| primary: Fresh Air Sources | |
| secondary: > | |
| {% if | |
| is_state('binary_sensor.fresh_air_sources_for_quietcool_fan', | |
| 'on') %} | |
| πͺ Windows Open | |
| {% else %} | |
| π Windows Closed | |
| {% endif %} β {% set seconds = (now() - | |
| states.binary_sensor.fresh_air_sources_for_quietcool_fan.last_changed).total_seconds() | |
| | int %} {% if seconds < 60 %}just now {% elif seconds < 3600 | |
| %}{{ (seconds / 60) | int }}m ago {% elif seconds < 86400 %}{{ | |
| (seconds / 3600) | int }}h ago {% else %}{{ (seconds / 86400) | |
| | int }}d ago{% endif %} | |
| icon: mdi:window-open | |
| entity: binary_sensor.fresh_air_sources_for_quietcool_fan | |
| tap_action: | |
| action: none | |
| hold_action: | |
| action: none | |
| color: > | |
| {% if | |
| is_state('binary_sensor.fresh_air_sources_for_quietcool_fan', | |
| 'on') %} | |
| green | |
| {% else %} | |
| grey | |
| {% endif %} | |
| features_position: bottom | |
| - type: custom:mushroom-template-card | |
| primary: Fresh Air Mode | |
| secondary: > | |
| {% set fan = is_state('switch.quiet_cool_whole_house_fan', | |
| 'on') %} {% set windows = | |
| is_state('binary_sensor.fresh_air_sources_for_quietcool_fan', | |
| 'on') %} {% set temp = | |
| states('sensor.tempest_weather_station_temperature') | | |
| float(default=99) %} {% if fan and windows and temp < 65 %} | |
| π¬οΈ Active β outdoor air actively replacing indoor air | |
| {% elif fan and not windows %} | |
| β οΈ Fan running but windows are closed | |
| {% elif windows and not fan %} | |
| πͺ Windows open but fan is off | |
| {% else %} | |
| β Normal β no active ventilation | |
| {% endif %} | |
| icon: mdi:home-thermometer | |
| tap_action: | |
| action: none | |
| color: > | |
| {% set fan = is_state('switch.quiet_cool_whole_house_fan', | |
| 'on') %} {% set windows = | |
| is_state('binary_sensor.fresh_air_sources_for_quietcool_fan', | |
| 'on') %} {% set temp = | |
| states('sensor.tempest_weather_station_temperature') | | |
| float(default=99) %} {% if fan and windows and temp < 65 %} | |
| blue | |
| {% elif fan and not windows %} | |
| orange | |
| {% else %} | |
| grey | |
| {% endif %} | |
| features_position: bottom | |
| - type: custom:mushroom-title-card | |
| title: βοΈOutdoor Conditions | |
| card_mod: | |
| style: | | |
| .title { | |
| font-weight: bold !important; | |
| #color: #29abe2 !important; | |
| font-size: 2em !important; | |
| } | |
| .subtitle { | |
| font-weight: 500 !important; | |
| color: grey !important; | |
| } | |
| - type: entities | |
| entities: | |
| - entity: sensor.tempest_weather_station_temperature | |
| name: π‘οΈ Temperature | |
| secondary_info: last-changed | |
| - entity: sensor.tempest_weather_station_humidity | |
| name: π§ Humidity | |
| secondary_info: last-changed | |
| - entity: sensor.tempest_weather_station_dew_point | |
| name: π«οΈ Dew Point | |
| - entity: sensor.tempest_weather_station_wet_bulb_temperature | |
| name: π’οΈ Wet Bulb Temp | |
| - entity: sensor.tempest_weather_station_vapor_pressure | |
| name: π΅ Vapor Pressure | |
| - entity: sensor.tempest_weather_station_wind_speed_average | |
| name: π¨ Wind Speed Avg | |
| - entity: sensor.tempest_weather_station_wind_gust | |
| name: π¨ Wind Gust | |
| - entity: sensor.tempest_weather_station_precipitation_intensity | |
| name: π§οΈ Rain Rate | |
| - type: vertical-stack | |
| cards: | |
| - type: custom:mushroom-title-card | |
| title: π΅ Total Month-To-Date Cost | |
| card_mod: | |
| style: | | |
| .title { | |
| font-weight: bold !important; | |
| #color: #29abe2 !important; | |
| font-size: 2em !important; | |
| } | |
| .subtitle { | |
| font-weight: 500 !important; | |
| color: grey !important; | |
| } | |
| - type: custom:mushroom-template-card | |
| primary: > | |
| {% set m = | |
| states('input_number.basement_humidifier_monthly_minutes') | | |
| float + | |
| states('input_number.kitchen_humidifier_monthly_minutes') | | |
| float %} {% set used = ((m / 60) * 4 / 3.785) | round(2) %} {% | |
| set waste = (used * 2) | round(2) %} {% set total = (used * 3) | |
| | round(2) %} {% set cost = (total * 9.46 / 1000) %} {% set | |
| kwh_month = | |
| (states('sensor.basement_humidifier_plug_this_month_s_consumption') | |
| | float(default=0) | |
| + states('sensor.kitchen_humidifier_plug_this_month_s_consumption') | float(default=0)) | round(1) %} | |
| {% set peak_kw = | |
| states('input_number.humidifier_peak_demand_kw') | float | | |
| round(3) %} {% set energy_cost_month = (kwh_month * 0.1155) %} | |
| {% set demand_cost = (peak_kw * 5.47) %} {% set total_month = | |
| (energy_cost_month + demand_cost) %} {% set | |
| total_humidifier_cost = (total_month + cost) %} Total | |
| Humidifier Cost This Month: π²{{ "%.2f" | | |
| format(total_humidifier_cost) }} | |
| secondary: > | |
| {% set m = | |
| states('input_number.basement_humidifier_monthly_minutes') | | |
| float + | |
| states('input_number.kitchen_humidifier_monthly_minutes') | | |
| float %} {% set used = ((m / 60) * 4 / 3.785) | round(2) %} {% | |
| set waste = (used * 2) | round(2) %} {% set total = (used * 3) | |
| | round(2) %} {% set cost = (total * 9.46 / 1000) %} {% set | |
| kwh_month = | |
| (states('sensor.basement_humidifier_plug_this_month_s_consumption') | |
| | float(default=0) | |
| + states('sensor.kitchen_humidifier_plug_this_month_s_consumption') | float(default=0)) | round(1) %} | |
| {% set peak_kw = | |
| states('input_number.humidifier_peak_demand_kw') | float | | |
| round(3) %} {% set energy_cost_month = (kwh_month * 0.1155) %} | |
| {% set demand_cost = (peak_kw * 5.47) %} {% set total_month = | |
| (energy_cost_month + demand_cost) %} Total Costs: β‘${{ "%.2f" | |
| | format(total_month) }} + π§${{ "%.2f" | format(cost) }} | |
| icon: mdi:currency-usd | |
| tap_action: | |
| action: none | |
| color: orange | |
| features_position: bottom | |
| - type: vertical-stack | |
| cards: | |
| - type: custom:mushroom-title-card | |
| title: π¦Water Usage (Gallons) | |
| card_mod: | |
| style: | | |
| .title { | |
| font-weight: bold !important; | |
| #color: #29abe2 !important; | |
| font-size: 2em !important; | |
| } | |
| .subtitle { | |
| font-weight: 500 !important; | |
| color: grey !important; | |
| } | |
| - type: custom:mushroom-title-card | |
| title: π© Kitchen Humidifier | |
| card_mod: | |
| style: | | |
| .title { | |
| font-weight: bold !important; | |
| #color: #29abe2 !important; | |
| font-size: 1.5em !important; | |
| } | |
| .subtitle { | |
| font-weight: 500 !important; | |
| color: grey !important; | |
| } | |
| - type: custom:mushroom-template-card | |
| primary: Today | |
| secondary: > | |
| {% set m = states('input_number.kitchen_humidifier_daily_minutes') | |
| | float %} {% set used = ((m / 60) * 4 / 3.785) | round(2) %} {% | |
| set waste = (used * 2) | round(2) %} {% set total = (used * 3) | | |
| round(2) %} π§ Used: {{ used }} | π«Reject: {{ waste }} | πͺ£ | |
| Total: {{ total }} | |
| icon: mdi:calendar-today | |
| tap_action: | |
| action: none | |
| color: green | |
| features_position: bottom | |
| - type: custom:mushroom-template-card | |
| primary: This Week | |
| secondary: > | |
| {% set m = | |
| states('input_number.kitchen_humidifier_weekly_minutes') | float | |
| %} {% set used = ((m / 60) * 4 / 3.785) | round(2) %} {% set waste | |
| = (used * 2) | round(2) %} {% set total = (used * 3) | round(2) %} | |
| π§ Used: {{ used }} | π«Reject: {{ waste }} | πͺ£ Total: {{ total | |
| }} | |
| icon: mdi:calendar-week | |
| tap_action: | |
| action: none | |
| color: green | |
| features_position: bottom | |
| - type: custom:mushroom-template-card | |
| primary: This Month | |
| secondary: > | |
| {% set m = | |
| states('input_number.kitchen_humidifier_monthly_minutes') | float | |
| %} {% set used = ((m / 60) * 4 / 3.785) | round(0) | int %} {% set | |
| waste = (used * 2) | round(0) | int %} {% set total = (used * 3) | | |
| round(0) | int %} {% set cost = (total * 9.46 / 1000) %} π§ Used: | |
| {{ used }} | π«Reject: {{ waste }} | πͺ£ Total: {{ total }} | π΅ | |
| ${{ "%.2f" | format(cost) }} | |
| icon: mdi:calendar-month | |
| tap_action: | |
| action: none | |
| color: green | |
| features_position: bottom | |
| - type: custom:mushroom-title-card | |
| title: π¦ Basement Humidifier | |
| card_mod: | |
| style: | | |
| .title { | |
| font-weight: bold !important; | |
| #color: #29abe2 !important; | |
| font-size: 1.5em !important; | |
| } | |
| .subtitle { | |
| font-weight: 500 !important; | |
| color: grey !important; | |
| } | |
| - type: custom:mushroom-template-card | |
| primary: Today | |
| secondary: > | |
| {% set m = | |
| states('input_number.basement_humidifier_daily_minutes') | float | |
| %} {% set used = ((m / 60) * 4 / 3.785) | round(2) %} {% set waste | |
| = (used * 2) | round(2) %} {% set total = (used * 3) | round(2) %} | |
| π§ Used: {{ used }} | π«Reject: {{ waste }} | πͺ£ Total: {{ total | |
| }} | |
| icon: mdi:calendar-today | |
| tap_action: | |
| action: none | |
| color: blue | |
| features_position: bottom | |
| - type: custom:mushroom-template-card | |
| primary: This Week | |
| secondary: > | |
| {% set m = | |
| states('input_number.basement_humidifier_weekly_minutes') | float | |
| %} {% set used = ((m / 60) * 4 / 3.785) | round(2) %} {% set waste | |
| = (used * 2) | round(2) %} {% set total = (used * 3) | round(2) %} | |
| π§ Used: {{ used }} | π«Reject: {{ waste }} | πͺ£ Total: {{ total | |
| }} | |
| icon: mdi:calendar-week | |
| tap_action: | |
| action: none | |
| color: blue | |
| features_position: bottom | |
| - type: custom:mushroom-template-card | |
| primary: This Month | |
| secondary: > | |
| {% set m = | |
| states('input_number.basement_humidifier_monthly_minutes') | float | |
| %} {% set used = ((m / 60) * 4 / 3.785) | round(0) | int %} {% set | |
| waste = (used * 2) | round(0) | int %} {% set total = (used * 3) | | |
| round(0) | int %} {% set cost = (total * 9.46 / 1000) %} π§ Used: | |
| {{ used }} | π«Reject: {{ waste }} | πͺ£ Total: {{ total }} | π΅ | |
| ${{ "%.2f" | format(cost) }} | |
| icon: mdi:calendar-month | |
| tap_action: | |
| action: none | |
| color: blue | |
| features_position: bottom | |
| - type: custom:mushroom-title-card | |
| title: π Combined Total | |
| card_mod: | |
| style: | | |
| .title { | |
| font-weight: bold !important; | |
| #color: #29abe2 !important; | |
| font-size: 1.5em !important; | |
| } | |
| .subtitle { | |
| font-weight: 500 !important; | |
| color: grey !important; | |
| } | |
| - type: custom:mushroom-template-card | |
| primary: Today | |
| secondary: > | |
| {% set m = | |
| states('input_number.basement_humidifier_daily_minutes') | float + | |
| states('input_number.kitchen_humidifier_daily_minutes') | float %} | |
| {% set used = ((m / 60) * 4 / 3.785) | round(2) %} {% set waste = | |
| (used * 2) | round(2) %} {% set total = (used * 3) | round(2) %} | |
| π§ Used: {{ used }} | π«Reject: {{ waste }} | πͺ£ Total: {{ total | |
| }} | |
| icon: mdi:calendar-today | |
| tap_action: | |
| action: none | |
| color: orange | |
| features_position: bottom | |
| - type: custom:mushroom-template-card | |
| primary: This Week | |
| secondary: > | |
| {% set m = | |
| states('input_number.basement_humidifier_weekly_minutes') | float | |
| + states('input_number.kitchen_humidifier_weekly_minutes') | float %} | |
| {% set used = ((m / 60) * 4 / 3.785) | round(2) %} {% set waste = | |
| (used * 2) | round(2) %} {% set total = (used * 3) | round(2) %} | |
| π§ Used: {{ used }} | π«Reject: {{ waste }} | πͺ£ Total: {{ total | |
| }} | |
| icon: mdi:calendar-week | |
| tap_action: | |
| action: none | |
| color: orange | |
| features_position: bottom | |
| - type: custom:mushroom-template-card | |
| primary: This Month | |
| secondary: > | |
| {% set m = | |
| states('input_number.basement_humidifier_monthly_minutes') | float | |
| + states('input_number.kitchen_humidifier_monthly_minutes') | | |
| float %} {% set used = ((m / 60) * 4 / 3.785) | round(0) | int %} | |
| {% set waste = (used * 2) | round(0) | int %} {% set total = (used | |
| * 3) | round(0) | int %} {% set cost = (total * 9.46 / 1000) %} π§ | |
| Used: {{ used }} | π«Reject: {{ waste }} | πͺ£ Total: {{ total }} | | |
| π΅ ${{ "%.2f" | format(cost) }} | |
| icon: mdi:calendar-month | |
| tap_action: | |
| action: none | |
| color: orange | |
| features_position: bottom | |
| - type: vertical-stack | |
| cards: | |
| - type: custom:mushroom-title-card | |
| title: ποΈ Humidity History - 1 Week | |
| card_mod: | |
| style: | | |
| .title { | |
| font-weight: bold !important; | |
| #color: #29abe2 !important; | |
| font-size: 2em !important; | |
| } | |
| .subtitle { | |
| font-weight: 500 !important; | |
| color: grey !important; | |
| } | |
| - type: history-graph | |
| entities: | |
| - entity: input_boolean.kitchen_humidifier_state | |
| name: Kitchen | |
| - entity: input_boolean.basement_humidifier_state | |
| name: Basement | |
| hours_to_show: 168 | |
| logarithmic_scale: false | |
| title: π¦ Humidifier On/Off State | |
| - type: custom:apexcharts-card | |
| graph_span: 7d | |
| header: | |
| show: true | |
| title: ποΈ Last 7 Days β Outdoor Weather | |
| show_states: true | |
| colorize_states: true | |
| apex_config: | |
| chart: | |
| height: 200 | |
| xaxis: | |
| type: datetime | |
| labels: | |
| format: ddd | |
| yaxis: | |
| - id: temp | |
| seriesName: High Temp | |
| min: 0 | |
| max: 100 | |
| decimalsInFloat: 0 | |
| labels: | |
| formatter: | | |
| EVAL:function(val) { return val + 'Β°F'; } | |
| - id: precip | |
| seriesName: Precipitation | |
| opposite: true | |
| min: 0 | |
| decimalsInFloat: 2 | |
| show: true | |
| labels: | |
| formatter: | | |
| EVAL:function(val) { return val + '"'; } | |
| - id: humidity | |
| seriesName: Humidity | |
| show: false | |
| stroke: | |
| curve: smooth | |
| dashArray: | |
| - 0 | |
| - 0 | |
| - 4 | |
| tooltip: | |
| x: | |
| format: ddd MMM dd | |
| shared: false | |
| legend: | |
| show: true | |
| position: bottom | |
| series: | |
| - entity: sensor.tempest_weather_station_temperature | |
| name: High Temp | |
| yaxis_id: temp | |
| type: line | |
| color: '#822b0c' | |
| stroke_width: 4 | |
| group_by: | |
| func: max | |
| duration: 3h | |
| show: | |
| legend_value: true | |
| - entity: sensor.tempest_weather_station_precipitation | |
| name: Precipitation | |
| yaxis_id: precip | |
| type: column | |
| stroke_width: 6 | |
| color: '#2980b9' | |
| opacity: 0.6 | |
| group_by: | |
| func: sum | |
| duration: 6h | |
| show: | |
| legend_value: true | |
| - entity: sensor.tempest_weather_station_humidity | |
| name: Humidity | |
| yaxis_id: humidity | |
| type: line | |
| color: '#206477' | |
| stroke_width: 4 | |
| group_by: | |
| func: avg | |
| duration: 1d | |
| show: | |
| legend_value: true | |
| - type: custom:mini-graph-card | |
| name: Humidity Thresholds | |
| hours_to_show: 168 | |
| points_per_hour: 0.3 | |
| animate: true | |
| height: 200 | |
| smoothing: true | |
| show: | |
| labels: true | |
| extrema: false | |
| average: false | |
| name_adaptive_color: true | |
| lower_bound: 10 | |
| upper_bound: 60 | |
| entities: | |
| - entity: sensor.rolling_average_humidity | |
| name: Avg House Humidity % | |
| color: '#205573' | |
| - entity: input_number.humidifier_on_threshold | |
| name: Turn On Below % | |
| color: '#5a847a' | |
| - entity: input_number.humidifier_off_threshold | |
| name: Turn Off Above % | |
| color: '#af725f' | |
| - type: vertical-stack | |
| cards: | |
| - type: custom:mushroom-title-card | |
| title: β‘Energy Usage | |
| card_mod: | |
| style: | | |
| .title { | |
| font-weight: bold !important; | |
| #color: #29abe2 !important; | |
| font-size: 2em !important; | |
| } | |
| .subtitle { | |
| font-weight: 500 !important; | |
| color: grey !important; | |
| } | |
| - type: custom:mushroom-template-card | |
| primary: > | |
| π© Kitchen β {% set kwh_today = | |
| states('sensor.kitchen_humidifier_plug_today_s_consumption') | | |
| float(default=0) | round(1) %} {% set cost_today = (kwh_today * | |
| 0.1155) %} Today: β‘{{ kwh_today }} kWh - π΅ ${{ "%.2f" | | |
| format(cost_today) }} | |
| secondary: > | |
| {% set kwh_today = | |
| states('sensor.kitchen_humidifier_plug_today_s_consumption') | | |
| float(default=0) | round(1) %} {% set kwh_month = | |
| states('sensor.kitchen_humidifier_plug_this_month_s_consumption') | |
| | float(default=0) | round(1) %} {% set cost_today = (kwh_today * | |
| 0.1155) %} {% set cost_month = (kwh_month * 0.1155) %} Month: β‘ {{ | |
| kwh_month }} kWh π΅ ${{ "%.2f" | format(cost_month) }} | |
| icon: mdi:lightning-bolt | |
| icon_color: green | |
| tap_action: | |
| action: none | |
| - type: custom:mushroom-template-card | |
| primary: > | |
| π¦ Basement β {% set kwh_today = | |
| states('sensor.basement_humidifier_plug_today_s_consumption') | | |
| float(default=0) | round(1) %} {% set cost_today = (kwh_today * | |
| 0.1155) %} Today: β‘{{ kwh_today }} kWh - π΅ ${{ "%.2f" | | |
| format(cost_today) }} | |
| secondary: > | |
| {% set kwh_today = | |
| states('sensor.basement_humidifier_plug_today_s_consumption') | | |
| float(default=0) | round(1) %} {% set kwh_month = | |
| states('sensor.basement_humidifier_plug_this_month_s_consumption') | |
| | float(default=0) | round(1) %} {% set cost_today = (kwh_today * | |
| 0.1155) %} {% set cost_month = (kwh_month * 0.1155) %} Month: β‘ {{ | |
| kwh_month }} kWh π΅ ${{ "%.2f" | format(cost_month) }} | |
| icon: mdi:lightning-bolt | |
| tap_action: | |
| action: none | |
| color: blue | |
| features_position: bottom | |
| - type: custom:mushroom-template-card | |
| primary: > | |
| π Combined β {% set kwh_today = | |
| (states('sensor.basement_humidifier_plug_today_s_consumption') | | |
| float(default=0) | |
| + states('sensor.kitchen_humidifier_plug_today_s_consumption') | float(default=0)) | round(1) %} | |
| {% set cost_today = (kwh_today * 0.1155) %} Today: β‘ {{ kwh_today | |
| }} kWh π΅ ${{ "%.2f" | format(cost_today) }} | |
| secondary: > | |
| {% set kwh_today = | |
| (states('sensor.basement_humidifier_plug_today_s_consumption') | | |
| float(default=0) | |
| + states('sensor.kitchen_humidifier_plug_today_s_consumption') | float(default=0)) | round(1) %} | |
| {% set kwh_month = | |
| (states('sensor.basement_humidifier_plug_this_month_s_consumption') | |
| | float(default=0) | |
| + states('sensor.kitchen_humidifier_plug_this_month_s_consumption') | float(default=0)) | round(1) %} | |
| {% set peak_kw = states('input_number.humidifier_peak_demand_kw') | |
| | float | round(3) %} {% set cost_today = (kwh_today * 0.1155) %} | |
| {% set energy_cost_month = (kwh_month * 0.1155) %} {% set | |
| demand_cost = (peak_kw * 5.47) %} {% set total_month = | |
| (energy_cost_month + demand_cost) %} Month: β‘ {{ kwh_month }} kWh | |
| π΅ ${{ "%.2f" | format(energy_cost_month) }} | Peak: β‘ {{ peak_kw | |
| }} kW π΅ ${{ "%.2f" | format(demand_cost) }} | |
| icon: mdi:lightning-bolt | |
| icon_color: orange | |
| tap_action: | |
| action: none | |
| - type: custom:mushroom-template-card | |
| primary: > | |
| {% set kwh_today = | |
| (states('sensor.basement_humidifier_plug_today_s_consumption') | | |
| float(default=0) | |
| + states('sensor.kitchen_humidifier_plug_today_s_consumption') | float(default=0)) | round(1) %} | |
| {% set kwh_month = | |
| (states('sensor.basement_humidifier_plug_this_month_s_consumption') | |
| | float(default=0) | |
| + states('sensor.kitchen_humidifier_plug_this_month_s_consumption') | float(default=0)) | round(1) %} | |
| {% set peak_kw = states('input_number.humidifier_peak_demand_kw') | |
| | float | round(3) %} {% set cost_today = (kwh_today * 0.1155) %} | |
| {% set energy_cost_month = (kwh_month * 0.1155) %} {% set | |
| demand_cost = (peak_kw * 5.47) %} {% set total_month = | |
| (energy_cost_month + demand_cost) %}Total Monthly Cost -π΅: ${{ | |
| "%.2f" | format(total_month) }} | |
| secondary: | | |
| *Includes OnDemand + Peak Usage | |
| icon: mdi:currency-usd | |
| tap_action: | |
| action: none | |
| color: orange | |
| features_position: bottom |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment