Home Assistant Card
Zorg dat je via HACS de custom Plotly‑graph card installeert zodat het dashboard werkt. Plak de onderstaande YAML in een custom kaart in de frontend‑editor. Vervang waar nodig ultimatesensor_
door jouw entity‑id.
yaml
square: false
type: grid
cards:
- square: false
type: grid
cards:
- graph: line
type: sensor
entity: sensor.ultimatesensor_scd41_temperature
detail: 1
name: Temperatuur
- graph: line
type: sensor
entity: sensor.ultimatesensor_scd41_humidity
detail: 1
name: Vochtigheid
- graph: line
type: sensor
entity: sensor.ultimatesensor_scd41_co2
detail: 1
name: CO₂
columns: 3
- square: false
type: grid
cards:
- graph: line
type: sensor
entity: sensor.ultimatesensor_bh1750_illuminance
detail: 1
name: Verlichtingssterkte
- graph: line
type: sensor
entity: sensor.ultimatesensor_voc_index
detail: 1
name: VOC‑index
- graph: line
type: sensor
entity: sensor.ultimatesensor_nox_index
detail: 1
name: NOx‑index
columns: 3
- square: false
type: grid
cards:
- type: gauge
entity: sensor.ultimatesensor_scd41_co2
severity:
green: 300
yellow: 800
red: 1500
min: 400
max: 3000
needle: true
name: CO₂
columns: 1
- square: false
type: custom:plotly-graph
title: Live persons detected map
refresh_interval: 1
hours_to_show: current_day
config:
modeBarButtonsToRemove:
- select2d
- lasso2d
- toImage
displaylogo: false
layout:
height: 240
margin:
l: 40
r: 20
t: 20
b: 55
showlegend: true
xaxis:
showticklabels: true
dtick: 1000
visible: true
gridcolor: RGBA(200,200,200,0.15)
zerolinecolor: RGBA(200,200,200,0.15)
type: number
fixedrange: true
range:
- 4000
- -4000
yaxis:
showticklabels: true
dtick: 1000
visible: true
gridcolor: RGBA(200,200,200,0.15)
zerolinecolor: RGBA(200,200,200,0.15)
scaleanchor: x
scaleratio: 1
fixedrange: true
range:
- 7500
- 0
entities:
- entity: ''
fn_var1: $ex vars.sensor_id = "234234";
fn_var2: $ex vars.sensor_name_prefix = "sensor.ultimatesensor_";
fn_var3: $ex vars.number_name_prefix = "number.ultimatesensor_";
fn_var4: $ex vars.is_inch_unit = false;
fn_var5: $ex vars.max_distance = 10 * hass.states[vars.number_name_prefix + "max_distance"].state;
- entity: ''
name: Doelwit 1
marker:
size: 10
symbol: star-diamond
line:
shape: spline
width: 5
x:
- >-
$ex { var x = hass.states[vars.sensor_name_prefix + "target_1_x"
].state; var y = hass.states[vars.sensor_name_prefix +
"target_1_y"].state; if (x == 0 && y == 0) { return -9999 }; if
(vars.is_inch_unit) { x = x * 25.4 }; return x; }
'y':
- >-
$ex { var x = hass.states[vars.sensor_name_prefix + "target_1_x"
].state; var y = hass.states[vars.sensor_name_prefix +
"target_1_y"].state; if (x == 0 && y == 0) { return -9999 }; if
(vars.is_inch_unit) { y = y * 25.4 }; return y; }
- entity: ''
name: Doelwit 2
marker:
size: 10
symbol: star-diamond
line:
shape: spline
width: 5
x:
- >-
$ex { var x = hass.states[vars.sensor_name_prefix + "target_2_x"
].state; var y = hass.states[vars.sensor_name_prefix +
"target_2_y"].state; if (x == 0 && y == 0) { return -9999 }; if
(vars.is_inch_unit) { x = x * 25.4 }; return x; }
'y':
- >-
$ex { var x = hass.states[vars.sensor_name_prefix + "target_2_x"
].state; var y = hass.states[vars.sensor_name_prefix +
"target_2_y"].state; if (x == 0 && y == 0) { return -9999 }; if
(vars.is_inch_unit) { y = y * 25.4 }; return y; }
- entity: ''
internal: false
name: Doelwit 3
marker:
size: 10
symbol: star-diamond
line:
shape: spline
width: 5
x:
- >-
$ex { var x = hass.states[vars.sensor_name_prefix + "target_3_x"
].state; var y = hass.states[vars.sensor_name_prefix +
"target_3_y"].state; if (x == 0 && y == 0) { return -9999 }; if
(vars.is_inch_unit) { x = x * 25.4 }; return x; }
'y':
- >-
$ex { var x = hass.states[vars.sensor_name_prefix + "target_3_x"
].state; var y = hass.states[vars.sensor_name_prefix +
"target_3_y"].state; if (x == 0 && y == 0) { return -9999 }; if
(vars.is_inch_unit) { y = y * 25.4 }; return y; }
- entity: ''
name: Zone 1
mode: lines
fill: toself
fillcolor: RGBA(20,200,0,0.06)
line:
color: RGBA(20,200,0,0.2)
shape: line
width: 2
x:
- $ex hass.states[vars.number_name_prefix + "zone_1_begin_x" ].state
- $ex hass.states[vars.number_name_prefix + "zone_1_begin_x" ].state
- $ex hass.states[vars.number_name_prefix + "zone_1_end_x" ].state
- $ex hass.states[vars.number_name_prefix + "zone_1_end_x" ].state
- $ex hass.states[vars.number_name_prefix + "zone_1_begin_x" ].state
'y':
- $ex hass.states[vars.number_name_prefix + "zone_1_begin_y" ].state
- $ex hass.states[vars.number_name_prefix + "zone_1_end_y" ].state
- $ex hass.states[vars.number_name_prefix + "zone_1_end_y" ].state
- $ex hass.states[vars.number_name_prefix + "zone_1_begin_y" ].state
- $ex hass.states[vars.number_name_prefix + "zone_1_begin_y" ].state
- entity: ''
name: Zone 2
mode: lines
fill: toself
fillcolor: RGBA(200,20,0,0.06)
line:
color: RGBA(200,20,0,0.2)
shape: line
width: 2
x:
- $ex hass.states[vars.number_name_prefix + "zone_2_begin_x" ].state
- $ex hass.states[vars.number_name_prefix + "zone_2_begin_x" ].state
- $ex hass.states[vars.number_name_prefix + "zone_2_end_x" ].state
- $ex hass.states[vars.number_name_prefix + "zone_2_end_x" ].state
- $ex hass.states[vars.number_name_prefix + "zone_2_begin_x" ].state
'y':
- $ex hass.states[vars.number_name_prefix + "zone_2_begin_y" ].state
- $ex hass.states[vars.number_name_prefix + "zone_2_end_y" ].state
- $ex hass.states[vars.number_name_prefix + "zone_2_end_y" ].state
- $ex hass.states[vars.number_name_prefix + "zone_2_begin_y" ].state
- $ex hass.states[vars.number_name_prefix + "zone_2_begin_y" ].state
- entity: ''
name: Zone 3
mode: lines
fill: toself
fillcolor: RGBA(600,350,0,0.06)
line:
color: RGBA(600,350,0,0.2)
shape: line
width: 2
x:
- $ex hass.states[vars.number_name_prefix + "zone_3_begin_x" ].state
- $ex hass.states[vars.number_name_prefix + "zone_3_begin_x" ].state
- $ex hass.states[vars.number_name_prefix + "zone_3_end_x" ].state
- $ex hass.states[vars.number_name_prefix + "zone_3_end_x" ].state
- $ex hass.states[vars.number_name_prefix + "zone_3_begin_x" ].state
'y':
- $ex hass.states[vars.number_name_prefix + "zone_3_begin_y" ].state
- $ex hass.states[vars.number_name_prefix + "zone_3_end_y" ].state
- $ex hass.states[vars.number_name_prefix + "zone_3_end_y" ].state
- $ex hass.states[vars.number_name_prefix + "zone_3_begin_y" ].state
- $ex hass.states[vars.number_name_prefix + "zone_3_begin_y" ].state
- entity: ''
name: Dekkingsgebied
mode: lines
fill: tonexty
fillcolor: rgba(168, 216, 234, 0.15)
hoverinfo: none
line:
shape: line
width: 0.7
dash: dot
x:
- 0
- $ex vars.max_distance * Math.sin(8 * Math.PI / 24)
- $ex vars.max_distance * Math.sin(7 * Math.PI / 24)
- $ex vars.max_distance * Math.sin(6 * Math.PI / 24)
- $ex vars.max_distance * Math.sin(5 * Math.PI / 24)
- $ex vars.max_distance * Math.sin(4 * Math.PI / 24)
- $ex vars.max_distance * Math.sin(3 * Math.PI / 24)
- $ex vars.max_distance * Math.sin(2 * Math.PI / 24)
- $ex vars.max_distance * Math.sin(1 * Math.PI / 24)
- 0
- $ex vars.max_distance * Math.sin(-1 * Math.PI / 24)
- $ex vars.max_distance * Math.sin(-2 * Math.PI / 24)
- $ex vars.max_distance * Math.sin(-3 * Math.PI / 24)
- $ex vars.max_distance * Math.sin(-4 * Math.PI / 24)
- $ex vars.max_distance * Math.sin(-5 * Math.PI / 24)
- $ex vars.max_distance * Math.sin(-6 * Math.PI / 24)
- $ex vars.max_distance * Math.sin(-7 * Math.PI / 24)
- $ex vars.max_distance * Math.sin(-8 * Math.PI / 24)
- 0
y:
- 0
- $ex vars.max_distance * Math.cos(8 * Math.PI / 24)
- $ex vars.max_distance * Math.cos(7 * Math.PI / 24)
- $ex vars.max_distance * Math.cos(6 * Math.PI / 24)
- $ex vars.max_distance * Math.cos(5 * Math.PI / 24)
- $ex vars.max_distance * Math.cos(4 * Math.PI / 24)
- $ex vars.max_distance * Math.cos(3 * Math.PI / 24)
- $ex vars.max_distance * Math.cos(2 * Math.PI / 24)
- $ex vars.max_distance * Math.cos(1 * Math.PI / 24)
- $ex vars.max_distance
- $ex vars.max_distance * Math.cos(-1 * Math.PI / 24)
- $ex vars.max_distance * Math.cos(-2 * Math.PI / 24)
- $ex vars.max_distance * Math.cos(-3 * Math.PI / 24)
- $ex vars.max_distance * Math.cos(-4 * Math.PI / 24)
- $ex vars.max_distance * Math.cos(-5 * Math.PI / 24)
- $ex vars.max_distance * Math.cos(-6 * Math.PI / 24)
- $ex vars.max_distance * Math.cos(-7 * Math.PI / 24)
- $ex vars.max_distance * Math.cos(-8 * Math.PI / 24)
- 0
raw_plotly_config: true
- square: false
type: grid
cards:
- type: entities
entities:
- entity: sensor.ultimatesensor_zone_1_target_count
name: Personen gedetecteerd in Zone 1
- entity: binary_sensor.ultimatesensor_target_1_active
name: Persoon 1 gedetecteerd
- entity: sensor.ultimatesensor_target_1_distance
name: Afstand persoon 1
- entity: sensor.ultimatesensor_target_1_speed
name: Snelheid persoon 1
- entity: binary_sensor.ultimatesensor_target_2_active
name: Persoon 2 gedetecteerd
- entity: sensor.ultimatesensor_target_2_distance
name: Afstand persoon 2
- entity: sensor.ultimatesensor_target_2_speed
name: Snelheid persoon 2
- entity: binary_sensor.ultimatesensor_target_3_active
name: Persoon 3 gedetecteerd
- entity: sensor.ultimatesensor_target_3_distance
name: Afstand persoon 3
- entity: sensor.ultimatesensor_target_3_speed
name: Snelheid persoon 3
secondary_info: none
columns: 1
- type: entities
entities:
- entity: select.ultimatesensor_assistent_pipeline
- entity: select.ultimatesensor_klaar_met_spraakdetectie
- entity: switch.ultimatesensor_use_wake_word
name: Spraakbesturing actief
- type: entities
entities:
- entity: media_player.ultimatesensor_us_mini_media_player
name: Mediaspeler
- type: entities
entities:
- entity: sensor.ultimatesensor_pm_0_5_m_number_concentration
name: <0,5µm Aantalconcentratie
- entity: sensor.ultimatesensor_pm_1_m_number_concentration
name: <1µm Aantalconcentratie
- entity: sensor.ultimatesensor_pm_2_5_m_number_concentration
name: <2,5µm Aantalconcentratie
- entity: sensor.ultimatesensor_pm_4_m_number_concentration
name: <4µm Aantalconcentratie
- entity: sensor.ultimatesensor_pm_10_m_number_concentration
name: <10µm Aantalconcentratie
- entity: sensor.ultimatesensor_pm_1_m_weight_concentration
name: <1µm Massaconcentratie
- entity: sensor.ultimatesensor_pm_2_5_m_weight_concentration
name: <2,5µm Massaconcentratie
- entity: sensor.ultimatesensor_pm_4_m_weight_concentration
name: <4µm Massaconcentratie
- entity: sensor.ultimatesensor_pm_10_m_weight_concentration
name: <10µm Massaconcentratie
- entity: sensor.ultimatesensor_typical_particle_size
name: Typische deeltjesgrootte
title: Dust sensor
state_color: false
- type: light
entity: light.ultimatesensor_front_light
name: Status‑LED voorzijde
- type: light
entity: light.ultimatesensor_back_light
name: Status‑LED achterzijde
columns: 1