This is the complete Home Assistant Lovelace YAML configuration for your GrowBox, designed for optimal indoor cultivation monitoring and control. It utilizes custom components like custom:flower-card and custom:button-card for a high-density, modern interface.
This section is designed to monitor the individual health of each plant using the custom:flower-card. This card offers a compact, visual representation of crucial microclimate parameters specific to the plant's root zone and immediate environment.
show_bars): Illuminance (light), Air Humidity, Soil Moisture, Temperature, and DLI (Daily Light Integral).sensor.feuchtesensor_1_batterie) are tracked to ensure continuous data collection from the soil probes.This card group aggregates all environmental sensors and live camera feeds. Measuring temperature and humidity at multiple points is critical for identifying potential air stratification (layering) or hot spots that can harm the plants.
sensor.temperatur, sensor.luftfeuchtigkeit).sensor.growbox_temp_mitte_temperatur, sensor.growbox_temp_mitte_luftfeuchtigkeit).sensor.growbox_abluft_temperature_sensor_celsius_239980).camera.growbox_cam_decke_klar) and a detailed close-up stream (camera.albanigger_hd_stream).This section is crucial for long-term optimization, focusing on historical data and Vapor Pressure Deficit (VPD), the most important environmental metric for plant transpiration and nutrient uptake.
sensor.vpd) is displayed in a gauge that automatically adjusts its optimal (green) range based on the selected **Growth Phase** (Seedling, Vegetative, Flowering).The core of the control interface is the dynamic **Status Report** (custom:button-card). This card uses advanced JavaScript templating to consolidate complex monitoring logic into an easy-to-read summary.
input_select.growbox_phase.automation.growbox_sonnenaufgang_blutephase_30min).Direct control and detailed power monitoring for all major GrowBox systems. All metrics are sourced from smart outlets to track power consumption.
light.growbox_lampe_outlet) and a dedicated **Light Dimmer Controller** (light.growbox_licht_dimmer) for precise intensity management.switch.grow_box_abluft_outlet) and a **Percentage Controller** (fan.growbox_abluft_fan_239980) for proportional climate control.fan.growbox_umluft_outlet) with power consumption monitoring.switch.10014d2a22_1 and switch.10014d2a22_2).
The complete YAML configuration for the Lovelace Dashboard. You can copy this code and paste it directly into your Home Assistant Raw Configuration Editor.
views:
- type: sections
title: GrowBox
cards: []
visible:
- user: 8b635b46e5d24f65a6d42c8b7042ec9b
- user: 56da46ac1857418ca77186480990ff6c
- user: 45c76ae46b3e47f2a92ea03600940170
badges: []
icon: mdi:flower
sections:
- type: grid
cards:
- type: custom:flower-card
entity: plant.lemon_cherry_gelato_1
show_bars:
- illuminance
- humidity
- moisture
- temperature
- dli
battery_sensor: sensor.feuchtesensor_1_batterie
- type: custom:flower-card
entity: plant.lemon_cherry_gelato_2
show_bars:
- illuminance
- humidity
- moisture
- temperature
- dli
battery_sensor: sensor.feuchtesensor_2_batterie
- type: custom:flower-card
entity: plant.lemon_cherry_gelato_3
show_bars:
- illuminance
- humidity
- moisture
- temperature
- dli
battery_sensor: sensor.feuchtesensor_3_batterie
- type: custom:flower-card
entity: plant.strawberry_pop_rocks_4
show_bars:
- illuminance
- humidity
- moisture
- temperature
- dli
battery_sensor: sensor.feuchtesensor_4_batterie
- type: custom:flower-card
entity: plant.strawberry_pop_rocks_5
show_bars:
- illuminance
- humidity
- moisture
- temperature
- dli
battery_sensor: sensor.feuchtesensor_5_batterie
- type: custom:flower-card
entity: plant.strawberry_pop_rocks_6
show_bars:
- illuminance
- humidity
- moisture
- temperature
- dli
battery_sensor: sensor.feuchtesensor_6_batterie
- type: grid
cards:
- type: heading
heading: Cameras
heading_style: title
icon: mdi:camera
- type: grid
square: false
columns: 1
cards:
- type: picture-entity
entity: camera.growbox_cam_decke_klar
camera_view: auto
fit_mode: cover
show_state: false
show_name: false
- type: grid
square: false
columns: 1
cards:
- type: picture-entity
entity: camera.albanigger_hd_stream
camera_view: auto
fit_mode: cover
show_name: false
show_state: false
- type: vertical-stack
cards:
- type: horizontal-stack
cards:
- type: custom:button-card
entity: sensor.temperatur
name: Temperature
icon: mdi:thermometer
show_state: true
styles:
card:
- border-radius: 12px
- padding: 12px
- box-shadow: var(--ha-card-box-shadow)
name:
- font-weight: bold
- font-size: 14px
- type: custom:button-card
entity: sensor.luftfeuchtigkeit
name: Humidity
icon: mdi:water-percent
show_state: true
styles:
card:
- border-radius: 12px
- padding: 12px
- box-shadow: var(--ha-card-box-shadow)
name:
- font-weight: bold
- font-size: 14px
title: GrowBox Top
- type: horizontal-stack
cards:
- type: custom:button-card
entity: sensor.growbox_abluft_temperature_sensor_celsius_239980
name: Temp Bottom
icon: mdi:thermometer
show_state: true
styles:
card:
- border-radius: 12px
- padding: 12px
- box-shadow: var(--ha-card-box-shadow)
name:
- font-weight: bold
- font-size: 14px
- type: custom:button-card
entity: sensor.growbox_abluft_humidity_sensor_239980
name: Humidity Bottom
icon: mdi:water-percent
show_state: true
styles:
card:
- border-radius: 12px
- padding: 12px
- box-shadow: var(--ha-card-box-shadow)
name:
- font-weight: bold
- font-size: 14px
- type: custom:button-card
entity: sensor.growbox_temp_mitte_temperatur
name: Temp Middle
icon: mdi:thermometer
show_state: true
styles:
card:
- border-radius: 12px
- padding: 12px
- box-shadow: var(--ha-card-box-shadow)
name:
- font-weight: bold
- font-size: 14px
- type: custom:button-card
entity: sensor.growbox_temp_mitte_luftfeuchtigkeit
name: Humidity Middle
icon: mdi:water-percent
show_state: true
styles:
card:
- border-radius: 12px
- padding: 12px
- box-shadow: var(--ha-card-box-shadow)
name:
- font-weight: bold
- font-size: 14px
title: GrowBox Middle
- type: horizontal-stack
cards:
- type: custom:button-card
entity: sensor.growbox_thermometer_unten_temperatur
name: Temp Bottom
icon: mdi:thermometer
show_state: true
styles:
card:
- border-radius: 12px
- padding: 12px
- box-shadow: var(--ha-card-box-shadow)
name:
- font-weight: bold
- font-size: 14px
- type: custom:button-card
entity: sensor.growbox_thermometer_unten_luftfeuchtigkeit
name: Humidity Bottom
icon: mdi:water-percent
show_state: true
styles:
card:
- border-radius: 12px
- padding: 12px
- box-shadow: var(--ha-card-box-shadow)
name:
- font-weight: bold
- font-size: 14px]
title: GrowBox Bottom
- type: horizontal-stack
cards:
- type: custom:button-card
entity: sensor.gw2000a_indoor_temperature
name: Temp Outside
icon: mdi:thermometer
show_state: true
styles:
card:
- border-radius: 12px
- padding: 12px
- box-shadow: var(--ha-card-box-shadow)
name:
- font-weight: bold
- font-size: 14px
- type: custom:button-card
entity: sensor.gw2000a_indoor_humidity
name: Humidity Outside
icon: mdi:water-percent
show_state: true
styles:
card:
- border-radius: 12px
- padding: 12px
- box-shadow: var(--ha-card-box-shadow)
name:
- font-weight: bold
- font-size: 14px
title: Outside Temperature
- type: horizontal-stack
cards:
- type: custom:button-card
entity: sensor.growbox_lichtsensor
name: Illuminance Top
icon: mdi:weather-sunny
show_state: true
styles:
card:
- border-radius: 12px
- padding: 12px
- box-shadow: var(--ha-card-box-shadow)
name:
- font-weight: bold
- font-size: 14px
- type: custom:button-card
entity: sensor.growbox_thermometer_unten_beleuchtungsstarke
name: Illuminance Bottom
icon: mdi:weather-sunny
show_state: true
styles:
card:
- border-radius: 12px
- padding: 12px
- box-shadow: var(--ha-card-box-shadow)
name:
- font-weight: bold
- font-size: 14px
title: Light Sensor
- type: horizontal-stack
cards:
- type: custom:button-card
entity: sensor.growbox_anzucht_temperatur
name: Temperature
icon: mdi:thermometer
show_state: true
styles:
card:
- border-radius: 12px
- padding: 12px
- box-shadow: var(--ha-card-box-shadow)
name:
- font-weight: bold
- font-size: 14px
- type: custom:button-card
entity: sensor.growbox_anzucht_luftfeuchtigkeit
name: Humidity
icon: mdi:water-percent
show_state: true
styles:
card:
- border-radius: 12px
- padding: 12px
- box-shadow: var(--ha-card-box-shadow)
name:
- font-weight: bold
- font-size: 14px
- type: custom:button-card
entity: sensor.growbox_anzucht_batterie
name: Battery
icon: mdi:battery
show_state: true
styles:
card:
- border-radius: 12px
- padding: 12px
- box-shadow: var(--ha-card-box-shadow)
name:
- font-weight: bold
- font-size: 14px
title: Seedling/Cloning Area
- type: heading
icon: mdi:water-pump
heading: Pumps
heading_style: title
- type: entities
entities:
- entity: switch.10014d2a22_1
- entity: switch.10014d2a22_2
show_header_toggle: true
title: Water Pumps
- type: grid
cards:
- type: heading
icon: mdi:clock
heading: GrowBox - History
heading_style: title
- type: vertical-stack
cards:
- type: conditional
conditions:
- entity: input_select.growbox_phase
state: Keimling
card:
type: gauge
entity: sensor.vpd
name: 🌱 Seedling Phase
min: 0
max: 2
needle: true
unit: kPa
severity:
green: 0.4
yellow: 0.75
red: 1
- type: conditional
conditions:
- entity: input_select.growbox_phase
state: Wachstum
card:
type: gauge
entity: sensor.vpd
name: 🌿 Vegetative Phase
min: 0
max: 3
needle: true
unit: kPa
severity:
green: 0.8
yellow: 1.2
red: 1.8
- type: conditional
conditions:
- entity: input_select.growbox_phase
state: Blüte
card:
type: gauge
entity: sensor.vpd
name: 🌸 Flowering Phase
min: 0
max: 3
needle: true
unit: kPa
severity:
green: 1
yellow: 1.5
red: 2
- type: vertical-stack
cards:
- type: history-graph
title: 🌿 VPD History (24h)
hours_to_show: 24
refresh_interval: 60
entities:
- entity: sensor.vpd
name: VPD (kPa)
- type: history-graph
title: 🌡️ Temperature History (24h)
hours_to_show: 24
refresh_interval: 60
entities:
- entity: sensor.temperatur
- type: history-graph
title: 💧 Humidity History (24h)
hours_to_show: 24
refresh_interval: 60
entities:
- entity: sensor.luftfeuchtigkeit
- type: history-graph
title: 💡 Light History (24h)
hours_to_show: 24
refresh_interval: 60
entities:
- entity: sensor.growbox_licht_dimmer_helligkeit
name: ''
- type: history-graph
title: 🌬️ Exhaust History (24h)
hours_to_show: 24
refresh_interval: 60
entities:
- entity: sensor.growbox_abluft_speed_sensor_239980
name: Speed
- type: history-graph
title: 🔄 Circulation History (24h)
hours_to_show: 24
refresh_interval: 60
entities:
- entity: sensor.growbox_umluft_power
name: Power (W)
- type: grid
cards:
- type: heading
icon: mdi:flower-tulip-outline
heading: GrowBox - Phase Management
heading_style: title
- type: vertical-stack
cards:
- type: entities
title: 🌱 Select GrowBox Phase
show_header_toggle: false
entities:
- entity: input_select.growbox_phase
name: 🌿 Current Selection
- type: custom:button-card
name: 🧾 GrowBox Status Report
show_name: true
show_label: true
unsafe_html: true
tap_action:
action: more-info
entity: input_select.growbox_phase
label: |
[[[
const p = states['input_select.growbox_phase'].state;
const c = states['input_datetime.growbox_phase_last_changed']?.state ?? "Unknown";
// Phase translation for display
const phase_map = {
"Keimling": "Seedling",
"Wachstum": "Vegetative",
"Blüte": "Flowering"
};
const p_en = phase_map[p] || p;
// Temperature: top, middle, bottom
const t1 = parseFloat(states['sensor.growbox_temp_mitte_temperatur']?.state);
const t2 = parseFloat(states['sensor.growbox_temperatursensor_oben_temperatur']?.state);
const t3 = parseFloat(states['sensor.growbox_thermometer_unten_temperatur']?.state);
// Humidity: top, middle, bottom
const h1 = parseFloat(states['sensor.growbox_temp_mitte_luftfeuchtigkeit']?.state);
const h2 = parseFloat(states['sensor.growbox_temperatursensor_oben_luftfeuchtigkeit']?.state);
const h3 = parseFloat(states['sensor.growbox_thermometer_unten_luftfeuchtigkeit']?.state);
// Average of only valid values
const temps = [t1, t2, t3].filter(v => !isNaN(v));
const hums = [h1, h2, h3].filter(v => !isNaN(v));
const T = temps.length > 0 ?
temps.reduce((a,b) => a+b,0)/temps.length : undefined;
const H = hums.length > 0 ? hums.reduce((a,b) => a+b,0)/hums.length : undefined;
const V = parseFloat(states['sensor.vpd']?.state);
const L = states['light.growbox_licht_dimmer']?.attributes?.brightness ?? 0;
const Lp = Math.round(L / 2.55);
const Ls = parseFloat(states['input_number.growbox_soll_lichtwert']?.state ?? "NaN");
const Li = icon(Lp, Ls - 5, Ls + 5);
/* Exhaust */
const F = states['fan.growbox_abluft_fan_239980']?.attributes?.percentage ??
"❔";
const AbluftState = states['switch.growbox_abluft_switch_239980']?.state ?? "unknown";
const AbluftIcon = AbluftState === "on" ? "🟢" : AbluftState === "off" ?
"🔴" : "⚪";
const UmluftState = states['fan.growbox_umluft_outlet']?.state ?? "unknown";
const UmluftIcon = UmluftState === "on" ?
"🟢" : UmluftState === "off" ? "🔴" : "⚪";
const phase_ids = {
"Keimling": {
sunrise: "automation.growbox_sonnenaufgang_keimlingsphase",
sunset: "automation.growbox_sonnenuntergang_keimlingsphase"
},
"Wachstum": {
sunrise: "automation.growbox_sonnenaufgang_wachstumsphase_30min",
sunset: "automation.growbox_sonnenuntergang_wachstumsphase_30min"
},
"Blüte": {
sunrise: "automation.growbox_sonnenaufgang_blutephase_30min",
sunset: "automation.growbox_sonnenuntergang_blutephase_30min"
}
};
const sunrise_id = phase_ids[p]?.sunrise ?? null;
const sunset_id = phase_ids[p]?.sunset ?? null;
function isTriggeredToday(automation) {
if (!automation || automation.state !== "on") return false;
const lt = automation.attributes.last_triggered;
if (!lt) return false;
const last = new Date(lt);
const now = new Date();
return last.getFullYear() === now.getFullYear() &&
last.getMonth() === now.getMonth() &&
last.getDate() === now.getDate();
}
function isTriggeredYesterday(automation) {
if (!automation || automation.state !== "on") return false;
const lt = automation.attributes.last_triggered;
if (!lt) return false;
const last = new Date(lt);
const yesterday = new Date();
yesterday.setDate(yesterday.getDate() - 1);
return last.getFullYear() === yesterday.getFullYear() &&
last.getMonth() === yesterday.getMonth() &&
last.getDate() === yesterday.getDate();
}
const suAutomation = states[sunrise_id];
const sdAutomation = states[sunset_id];
const su = isTriggeredToday(suAutomation) ? "✅" : "⚠️";
const sd = isTriggeredYesterday(sdAutomation) ? "✅" : "⚠️";
const formatTime = (dt) => {
if (!dt) return "Never";
const d = new Date(dt);
return d.toLocaleTimeString([], {hour: '2-digit', minute:'2-digit'});
};
const suLast = suAutomation?.attributes?.last_triggered ? formatTime(suAutomation.attributes.last_triggered) : "Never";
const sdLast = sdAutomation?.attributes?.last_triggered ? formatTime(sdAutomation.attributes.last_triggered) : "Never";
let daysSinceChange = "Unknown";
if(c !== "Unknown"){
const now = new Date();
const changed = new Date(c);
daysSinceChange = Math.floor((now - changed) / (1000*60*60*24)) + 1;
}
// Target settings based on phase (English values)
let Tmin=20, Tmax=24, Hmin=50, Hmax=70, Vmin=0.8, Vmax=1.2, A="35–50 cm", PPF="300–600 µmol/m²/s";
if (p==="Keimling") {
[Tmin,Tmax] = [22,26];
[Hmin,Hmax] = [70,80];
[Vmin,Vmax] = [0.4,0.8];
A = "40–60 cm";
PPF = "100–300 µmol/m²/s";
} else if(p==="Blüte") {
[Tmin,Tmax] = [18,22];
[Hmin,Hmax] = [40,50];
[Vmin,Vmax] = [1.0,1.5];
A = "30–40 cm";
PPF = "600–1000 µmol/m²/s";
}
function colorGradient(value, min, max) {
if (value === undefined || isNaN(value)) return "#AAA";
let percent = (value - min) / (max - min);
percent = Math.min(1, Math.max(0, percent));
let hue = percent < 0.5 ? 120 : 120 - (percent - 0.5) * 2 * 120;
return `hsl(${hue}, 80%, 50%)`;
}
function bar(value, min, max, width=100) {
if(value === undefined || isNaN(value)) return "";
let percent = (value - min) / (max - min);
percent = Math.min(1, Math.max(0, percent));
const color = colorGradient(value, min, max);
return `
`;
}
function icon(v, min, max){
if (v === undefined || isNaN(v)) return "⚪";
if (v < min) return "🟠";
if (v > max) return "🔴";
return "🟢";
}
const Ti = icon(T, Tmin, Tmax);
const Hi = icon(H, Hmin, Hmax);
const Vi = icon(V, Vmin, Vmax);
const d = c !== "Unknown" ?
`${c.slice(8,10)}.${c.slice(5,7)}.${c.slice(0,4)}` : "Unknown";
return `
🧬 Phase: ${p_en}
📅 Changed: ${d} (Day ${daysSinceChange})
Temperature: ${T !== undefined ?
T.toFixed(1) : "❔"} °C (Target ${Tmin}–${Tmax})
Humidity: ${H !== undefined ?
H.toFixed(1) : "❔"} % (Target ${Hmin}–${Hmax})
VPD: ${V !== undefined ?
V.toFixed(2) : "❔"} (Target ${Vmin}–${Vmax})
💡 Light: ${Lp}% (Target ${isNaN(Ls) ? "❔" : Ls + "%" })
🌬️ Exhaust Fan:
${AbluftIcon}
${F}%
🔄 Circulation Fan:
${UmluftIcon}
🌅 Sunrise Automation:
${su}
🌇 Sunset Automation:
${sd}
📏 Lamp Distance: ${A}
💡 PPF: ${PPF}
`;
]]]
styles:
card:
- border-radius: 16px
- padding: 18px
- box-shadow: var(--ha-card-box-shadow)
- background: var(--card-background-color)
name:
- font-weight: bold
- font-size: 16px
- padding-bottom: 4px
label:
- white-space: normal
- text-align: left
- font-size: 14px
icon:
- display: none
- type: heading
heading: Light / Fans
heading_style: title
icon: mdi:ceiling-light
- type: vertical-stack
cards:
- type: custom:button-card
entity: light.growbox_lampe_outlet
name: Light Outlet Switch
icon: mdi:power-plug
show_state: true
tap_action:
action: toggle
styles:
card:
- border-radius: 12px
- padding: 24px 32px
- font-weight: bold
- box-shadow: var(--ha-card-box-shadow)
icon:
- size: 48px
name:
- font-size: 22px
state:
- font-size: 18px
- font-style: italic
state:
- value: 'on'
color: green
- value: 'off'
color: gray
- type: grid
columns: 3
square: false
cards:
- type: custom:button-card
entity: sensor.grow_box_lampe_voltage
name: Voltage
icon: mdi:flash
show_state: true
styles:
card:
- border-radius: 12px
- padding: 12px 16px
- box-shadow: var(--ha-card-box-shadow)
icon:
- size: 28px
name:
- font-weight: bold
- font-size: 14px
state:
- font-size: 13px
- font-style: italic
- type: custom:button-card
entity: sensor.grow_box_lampe_signal_strength
name: Signal Strength
icon: mdi:wifi-strength-3
show_state: true
styles:
card:
- border-radius: 12px
- padding: 12px 16px
- box-shadow: var(--ha-card-box-shadow)
icon:
- size: 28px
name:
- font-weight: bold
- font-size: 14px
state:
- font-size: 13px
- font-style: italic
- type: custom:button-card
entity: sensor.grow_box_lampe_power
name: Power
icon: mdi:power
show_state: true
styles:
card:
- border-radius: 12px
- padding: 12px 16px
- box-shadow: var(--ha-card-box-shadow)
icon:
- size: 28px
name:
- font-weight: bold
- font-size: 14px
state:
- font-size: 13px
- font-style: italic
- type: grid
columns: 3
square: false
cards:
- type: custom:button-card
entity: sensor.grow_box_lampe_energy
name: Energy
icon: mdi:lightning-bolt
show_state: true
styles:
card:
- border-radius: 12px
- padding: 12px 16px
- box-shadow: var(--ha-card-box-shadow)
icon:
- size: 28px
name:
- font-weight: bold
- font-size: 14px
state:
- font-size: 13px
- font-style: italic
- type: custom:button-card
entity: sensor.grow_box_lampe_current
name: Current
icon: mdi:current-ac
show_state: true
styles:
card:
- border-radius: 12px
- padding: 12px 16px
- box-shadow: var(--ha-card-box-shadow)
icon:
- size: 28px
name:
- font-weight: bold
- font-size: 14px
state:
- font-size: 13px
- font-style: italic
- type: custom:button-card
entity: sensor.grow_box_lampe_consumption
name: Consumption
icon: mdi:chart-line
show_state: true
styles:
card:
- border-radius: 12px
- padding: 12px 16px
- box-shadow: var(--ha-card-box-shadow)
icon:
- size: 28px
name:
- font-weight: bold
- font-size: 14px
state:
- font-size: 13px
- font-style: italic
- type: custom:mushroom-light-card
entity: light.growbox_licht_dimmer
name: Light Dimmer
show_brightness_control: true
show_color_control: false
collapsible_controls: false
style: |
ha-card {
border-radius: 15px;
box-shadow: var(--ha-card-box-shadow);
padding: 10px;
margin-top: 12px;
}
- type: vertical-stack
cards:
- type: custom:button-card
entity: switch.grow_box_abluft_outlet
name: Exhaust Outlet Switch
icon: mdi:power-plug
show_state: true
tap_action:
action: toggle
styles:
card:
- border-radius: 12px
- padding: 24px 32px
- font-weight: bold
- box-shadow: var(--ha-card-box-shadow)
icon:
- size: 48px
name:
- font-size: 22px
state:
- font-size: 18px
- font-style: italic
state:
- value: 'on'
color: green
- value: 'off'
color: gray
- type: grid
columns: 5
square: false
cards:
- type: custom:button-card
entity: sensor.grow_box_abluft_voltage
name: Voltage
icon: mdi:flash
show_state: true
styles:
card:
- border-radius: 12px
- padding: 12px 16px
- box-shadow: var(--ha-card-box-shadow)
icon:
- size: 28px
name:
- font-weight: bold
- font-size: 14px
state:
- font-size: 13px
- font-style: italic
- type: custom:button-card
entity: sensor.grow_box_abluft_power
name: Power
icon: mdi:power
show_state: true
styles:
card:
- border-radius: 12px
- padding: 12px 16px
- box-shadow: var(--ha-card-box-shadow)
icon:
- size: 28px
name:
- font-weight: bold
- font-size: 14px
state:
- font-size: 13px
- font-style: italic
- type: custom:button-card
entity: sensor.grow_box_abluft_current
name: Current
icon: mdi:current-ac
show_state: true
styles:
card:
- border-radius: 12px
- padding: 12px 16px
- box-shadow: var(--ha-card-box-shadow)
icon:
- size: 28px
name:
- font-weight: bold
- font-size: 14px
state:
- font-size: 13px
- font-style: italic
- type: custom:button-card
entity: sensor.grow_box_abluft_consumption
name: Consumption
icon: mdi:chart-line
show_state: true
styles:
card:
- border-radius: 12px
- padding: 12px 16px
- box-shadow: var(--ha-card-box-shadow)
icon:
- size: 28px
name:
- font-weight: bold
- font-size: 14px
state:
- font-size: 13px
- font-style: italic
- type: custom:button-card
entity: sensor.grow_box_abluft_energy
name: Energy
icon: mdi:lightning-bolt
show_state: true
styles:
card:
- border-radius: 12px
- padding: 12px 16px
- box-shadow: var(--ha-card-box-shadow)
icon:
- size: 28px
name:
- font-weight: bold
- font-size: 14px
state:
- font-size: 13px
- font-style: italic
- type: grid
columns: 2
square: false
cards:
- type: custom:button-card
entity: switch.growbox_abluft_switch_239980
name: Exhaust Fan Switch
icon: mdi:toggle-switch
show_state: true
tap_action:
action: toggle
styles:
card:
- border-radius: 12px
- padding: 16px 20px
- font-weight: bold
- box-shadow: var(--ha-card-box-shadow)
icon:
- size: 36px
name:
- font-size: 18px
state:
- font-size: 16px
- font-style: italic
state:
- value: 'on'
color: green
- value: 'off'
color: gray
- type: custom:button-card
entity: sensor.growbox_abluft_speed_sensor_239980
name: Fan Speed
icon: mdi:fan
show_state: true
styles:
card:
- border-radius: 12px
- padding: 16px 20px
- font-weight: bold
- box-shadow: var(--ha-card-box-shadow)
icon:
- size: 36px
name:
- font-size: 18px
state:
- font-size: 16px
- font-style: italic
- type: custom:mushroom-fan-card
entity: fan.growbox_abluft_fan_239980
name: Exhaust Controller
show_percentage_control: true
show_oscillate_control: false
show_direction_control: false
collapsible_controls: true
icon_animation: true
fill_container: false
primary_info: none
- type: vertical-stack
cards:
- type: custom:button-card
entity: fan.growbox_umluft_outlet
name: Circulation Fan
icon: mdi:fan
show_state: true
tap_action:
action: toggle
styles:
card:
- border-radius: 12px
- padding: 16px 20px
- font-weight: bold
- box-shadow: var(--ha-card-box-shadow)
icon:
- size: 36px
name:
- font-size: 18px
state:
- font-size: 16px
- font-style: italic
state:
- value: 'on'
color: green
- value: 'off'
color: gray
- type: grid
columns: 5
square: false
cards:
- type: custom:button-card
entity: sensor.growbox_umluft_consumption
name: Consumption
icon: mdi:chart-line
show_state: true
styles:
card:
- border-radius: 12px
- padding: 12px 16px
- box-shadow: var(--ha-card-box-shadow)
icon:
- size: 28px
name:
- font-weight: bold
- font-size: 14px
state:
- font-size: 13px
- font-style: italic
- type: custom:button-card
entity: sensor.growbox_umluft_current
name: Current
icon: mdi:current-ac
show_state: true
styles:
card:
- border-radius: 12px
- padding: 12px 16px
- box-shadow: var(--ha-card-box-shadow)
icon:
- size: 28px
name:
- font-weight: bold
- font-size: 14px
state:
- font-size: 13px
- font-style: italic
- type: custom:button-card
entity: sensor.growbox_umluft_energy
name: Energy
icon: mdi:lightning-bolt
show_state: true
styles:
card:
- border-radius: 12px
- padding: 12px 16px
- box-shadow: var(--ha-card-box-shadow)
icon:
- size: 28px
name:
- font-weight: bold
- font-size: 14px
state:
- font-size: 13px
- font-style: italic
- type: custom:button-card
entity: sensor.growbox_umluft_power
name: Power
icon: mdi:power
show_state: true
styles:
card:
- border-radius: 12px
- padding: 12px 16px
- box-shadow: var(--ha-card-box-shadow)
icon:
- size: 28px
name:
- font-weight: bold
- font-size: 14px
state:
- font-size: 13px
- font-style: italic
- type: custom:button-card
entity: sensor.growbox_umluft_voltage
name: Voltage
icon: mdi:flash
show_state: true
styles:
card:
- border-radius: 12px
- padding: 12px 16px
- box-shadow: var(--ha-card-box-shadow)
icon:
- size: 28px
name:
- font-weight: bold
- font-size: 14px
state:
- font-size: 13px
- font-style: italic