Skip to content

Recipes

Alex RAMIREZ edited this page Oct 9, 2026 · 3 revisions

🇫🇷 Version française

Recipes

Concrete setups, each with the YAML the editor writes and the editor path. Entity ids are examples: replace them with yours. Every snippet is a fragment of the card configuration (merge it with your own lists).

Door, shutter and contact

A French window with its roller shutter and a contact sensor; a tap opens a card with the shutter control and the sensor's battery.

openings:
  - type: door
    seg: [600, 0, 740, 0]
    name: Bedroom French window
    contact: binary_sensor.bedroom_french_window
    shutter: cover.bedroom_shutter
    outside: [0, -1]
    leaves: 2
    swing: left
    card:
      widgets:
        - {type: cover, title: Shutter, entity: cover.bedroom_shutter}
        - type: entities
          title: Sensor
          entities: [binary_sensor.bedroom_french_window, sensor.bedroom_french_window_battery]

Editor: Add › Openings › French window + shutter + contact, click both ends on the wall: the free contact and shutter of the room are linked (or proposed in a short list). Select the opening › Card › Fill from device.

Bay window with two leaves

Two openings with the same bay name: one card, one line in the room view, counted once in the open-openings chip.

openings:
  - {type: window, seg: [90, 0, 250, 0], bay: Living room bay, contact: binary_sensor.bay_left, shutter: cover.bay_shutter, outside: [0, -1]}
  - {type: window, seg: [250, 0, 410, 0], bay: Living room bay, contact: binary_sensor.bay_right, outside: [0, -1]}

Water leak detector

A badge that blinks when wet, a full-plan alert, and a list of all leak sensors in a side panel.

badges:
  - entity: binary_sensor.kitchen_leak
    pos: [120, 60]
    icon: mdi:water-alert
    color: "#d93025"
    alert: true                 # blinks while wet
alerts:
  - name: Water leak
    entities: [binary_sensor.kitchen_leak, binary_sensor.bathroom_leak]
    level: critical
    icon: mdi:water-alert
panels:
  right:
    - {type: entities, title: Water leaks, icon: mdi:water-alert, entities: [binary_sensor.kitchen_leak, binary_sensor.bathroom_leak]}

Editor: Add › Devices › Sensor; Ambience and animations › Full-plan alerts › Alert on entities; Add widget › Water › Water leaks (all your moisture sensors are filled in). A leak sensor that is on shows in red in the list.

CO2 in every room

A gauge in each room's own panel, coloured by thresholds, and a chip that turns red above 1200 ppm.

rooms:
  - name: Bedroom
    poly: [[500, 0], [900, 0], [900, 350], [500, 350]]
    label: [700, 175]
    area: bedroom
    panels:
      right:
        - type: gauge
          title: CO₂
          icon: mdi:molecule-co2
          entity: sensor.bedroom_co2
          min: 400
          max: 2000
          unit: ppm
          decimals: 0
          severity: {green: 0, yellow: 800, red: 1200}
summary:
  - type: openings
  - type: temperature
  - {type: entity, entity: sensor.bedroom_co2, name: ppm bedroom, decimals: 0, alert_above: 1200}

Editor: select the room › Right panel › Add widget › Air › CO₂: the CO₂ sensor of the room's area is taken.

CO₂ gauge

Smart lock on the front door

The front door opens a card with the lock; unlocking and opening are confirmed in a dialog. A chip shows when the door is unlocked.

openings:
  - type: door
    seg: [320, 700, 410, 700]
    name: Front door
    contact: binary_sensor.front_door
    outside: [0, 1]
    card:
      widgets:
        - {type: lock, title: Lock, entity: lock.front_door}
summary:
  - type: openings
  - {type: entity, entity: lock.front_door, name: front door, hide_if: locked, alert_state: unlocked, icon: mdi:lock-open-variant}

The lock widget never sends a code: a lock that needs one is operated from its more-info.

Electric car charging plug

A smart plug or a wallbox drawn as an EV charger: green when charging, its power on the plan, a card with the car.

furniture:
  - type: ev_charger
    pos: [470, -150]
    name: Charger
    entity: switch.charger
    value: sensor.charger_power
    active: sensor.charger_power
    threshold: 50                     # charging above 50 W
    card:
      title: EV charging
      widgets:
        - type: ev
          title: Car
          battery: sensor.ev_battery
          range: sensor.ev_range
          power: sensor.charger_power
          plugged: binary_sensor.ev_plugged
          session_kwh: sensor.charger_session
        - {type: tile, title: Charging power, entity: sensor.charger_power, unit: W, decimals: 0, history: 24}
  - {type: car, pos: [250, -90], rotation: 90}
summary:
  - {type: entity, entity: sensor.ev_battery, name: car, unit: "%", decimals: 0}
ambience:
  energy: {}                          # beads from the electrical panel to the charger while it draws power

Editor: Add › Furniture › Utilities › EV charger, Connected › Entity, then Fill from device. Without protected, the card has an on / off switch for the plug; add protected: true if it must never be cut from the plan.

EV charger card

Underfloor heating

Floor heating is slow: what matters is the set point, whether a zone is calling for heat, and the trend of each room.

badges:
  - entity: climate.living_room_floor
    pos: [60, 380]
    icon: mdi:heating-coil
    color: "#e8710a"
    attribute: temperature            # set point shown in the badge
    unit: " °C"
    active_attribute: hvac_action     # orange while the zone is heating
rooms:
  - name: Living room
    poly: [[0, 0], [500, 0], [500, 420], [0, 420]]
    label: [250, 210]
    temperature: sensor.living_room_temperature
    panels:
      right:
        - {type: thermostat, entity: climate.living_room_floor}
panels:
  left:
    - {type: climate, title: Room climate, duration: 120, average: true, stable_t: 0.2, alert_t: 1}
    - {type: tile, title: Flow temperature, icon: mdi:water-boiler, entity: sensor.boiler_flow_temperature, unit: "°C", history: 24}

A longer duration (120 min) suits the inertia of a heated floor. The thermostat widget changes the set point only (climate.set_temperature); modes stay in Home Assistant.

Gate and garage door with confirmation

openings:
  - type: gate
    seg: [150, -170, 350, -170]
    name: Gate
    entity: cover.gate
    outside: [0, -1]
    card:
      widgets:
        - {type: cover, title: Gate, entity: cover.gate, confirm: true}
panels:
  right:
    - {type: cover, title: Garage, entity: cover.garage_door}   # opening confirmed for device class garage
alerts:
  - {name: Gate left open, entity: cover.gate, state: open, level: warning, when_away: true}

Electrical panel, power and tariff

The electrical panel as connected furniture: the source of the energy flows, a power gauge up to your subscribed power, the live tariff.

furniture:
  - type: electrical_panel
    pos: [492, 560]
    rotation: 90
    name: Electrical panel
    entity: sensor.meter_power
    value: sensor.meter_power
    card:
      widgets:
        - {type: gauge, title: Power, entity: sensor.meter_power, min: 0, max: 9000, unit: W, decimals: 0}
        - {type: tariff, title: Live rate, price: sensor.kwh_price, period: sensor.tariff_period, color_today: sensor.tempo_today, color_tomorrow: sensor.tempo_tomorrow}
        - type: periods
          title: Consumption
          columns:
            - {name: Energy, unit: kWh, stat: sensor.meter_energy_total, decimals: 1}
ambience:
  energy: {threshold: 20}

Editor: Fill from device (Card tab of the panel's edit dialog) builds this card from the meter's entities.

Fridge that must never be switched off

furniture:
  - type: fridge
    pos: [38, 150]
    rotation: 90
    name: Fridge
    entity: switch.fridge_plug
    value: sensor.fridge_power
    active: sensor.fridge_power
    threshold: 5
    protected: true                 # no "off" switch; "Turn back on" if it is off
alerts:
  - {name: Freezer too warm, entity: sensor.freezer_temperature, above: -12, level: warning}

Camera that blinks on motion

badges:
  - entity: camera.entrance
    pos: [460, 670]
    icon: mdi:cctv
    color: "#d93025"
    active: binary_sensor.entrance_motion
    alert: true

A tap opens the camera's more-info (live view in Home Assistant). Add › Devices › Camera writes this badge.

Terrace with the weather

rooms:
  - name: Terrace
    poly: [[0, -170], [500, -170], [500, 0], [0, 0]]
    label: [250, -85]
    outside: true
    zoom: false
    temperature: weather.home
    temperature_attribute: temperature
ambience:
  north: 45
  weather: {entity: weather.home, direction: wind}

The terrace is not tinted, not counted indoors, receives the rain, snow and clouds of weather.home, and its label shows the outdoor temperature.

Room buttons: movie mode and all off

rooms:
  - name: Living room
    poly: [[0, 0], [500, 0], [500, 420], [0, 420]]
    area: living_room
    actions:
      - {name: Movie mode, icon: mdi:movie-open-outline, action: scene.turn_on, target: scene.movie}
      - {name: Shutters half, icon: mdi:window-shutter, action: cover.set_cover_position, target: room, data: {position: 50}}
      - {name: All off, icon: mdi:power, action: homeassistant.turn_off, target: room, confirm: true}

target: room uses the room's area (all its entities of the service's domain without an area). These buttons call exactly what is written: add confirm: true to anything that should not happen by mistake.

Wall tablet

type: custom:maquette-card
title: ""
tablet: true                  # chips and panels hidden, plan full page and centred, burn-in protection
interaction:
  lock_view: true
  reset_after: 60             # back to the whole plan after one minute
animation_level: reduced      # optional: fewer loops on an always-on screen

See Using the card › Interaction and wall tablet.

Clone this wiki locally