OK I was able to figure out how to get different views for each radar sensor on the same dashboard! Only the top section of code is for the named sensors, the bottom part is for the layout. In the example below sensor YYYYYY is in the Master Bedroom and sensor XXXXXX is in the Kitchen. When viewed on the iPad and Android Home Assistant applications the dashboard has 2 tabs, with one sensor on each tab.
Here’s the upper code specific to each sensor…
- type: sections
max_columns: 4
title: Master Bedroom
path: Master Bedroom
sections:
- type: grid
cards:
- type: custom:streamline-card
template: ld2410_controls
variables:
device_base_name: apollo_msr_2_YYYYYYY
- type: custom:streamline-card
template: ld2410_zone_configuration
variables:
device_base_name: apollo_msr_2_YYYYYY
- type: grid
cards:
- type: custom:streamline-card
template: ld2410_distances_chart
variables:
device_base_name: apollo_msr_2_YYYYYY
chart_unit_of_measurement: in
- type: custom:streamline-card
template: ld2410_occupancy_history
variables:
device_base_name: apollo_msr_2_YYYYYY
- type: grid
cards:
- type: custom:streamline-card
template: ld2410_gate_energy_chart
variables:
device_title: Gate Energy Chart
device_base_name: apollo_msr_2_YYYYYY
- type: custom:streamline-card
template: ld2410_zone_occupancy
variables:
device_base_name: apollo_msr_2_YYYYYY
- type: grid
cards:
- type: custom:streamline-card
template: ld2410_gate_energy_configuration
variables:
device_base_name: apollo_msr_2_YYYYYY
- type: sections
max_columns: 4
title: KITCHEN
path: KITCHEN
sections:
- type: grid
cards:
- type: custom:streamline-card
template: ld2410_controls
variables:
device_base_name: apollo_msr_2_XXXXX
- type: custom:streamline-card
template: ld2410_zone_configuration
variables:
device_base_name: apollo_msr_2_XXXXX
- type: grid
cards:
- type: custom:streamline-card
template: ld2410_distances_chart
variables:
device_base_name: apollo_msr_2_XXXXX
chart_unit_of_measurement: in
- type: custom:streamline-card
template: ld2410_occupancy_history
variables:
device_base_name: apollo_msr_2_XXXXX
- type: grid
cards:
- type: custom:streamline-card
template: ld2410_gate_energy_chart
variables:
device_title: Gate Energy Chart
device_base_name: apollo_msr_2_XXXXX
- type: custom:streamline-card
template: ld2410_zone_occupancy
variables:
device_base_name: apollo_msr_2_XXXXX
- type: grid
cards:
- type: custom:streamline-card
template: ld2410_gate_energy_configuration
variables:
device_base_name: apollo_msr_2_XXXXX
Then below that the common code that provides the layout of the dashboard.
streamline_templates:
ld2410_controls:
default:
device_title: LD2410 Controls
card:
type: entities
title: '[[device_title]]'
entities:
- entity: switch.[[device_base_name]]_radar_engineering_mode
name: Radar Engineering Mode
- entity: switch.[[device_base_name]]_ld2410_bluetooth
name: LD2410 Bluetooth
- entity: button.[[device_base_name]]_restart_radar
name: Restart Radar
- entity: button.[[device_base_name]]_factory_reset_radar
name: Factory Reset Radar
- entity: button.[[device_base_name]]_esp_reboot
name: ESP Reboot
ld2410_distances_chart:
default:
device_title: LD2410
move_bar_color: '#4b0082'
still_bar_color: '#274e13'
detection_bar_color: '#8b0000'
show_radar_targets: true
show_zones: true
show_distance: true
show_gates: true
show_max_gates: true
bar_size: 35
chart_unit_of_measurement: input_entity
chart_unit_of_measurement_entity: input_select.ld2410_distances_chart_unit_of_measurement
card:
type: custom:plotly-graph
title: '[[device_title]] Distances'
refresh_interval: 1
raw_plotly_config: true
init:
- >-
$ex { vars.is_valid_uom = (uom) => { return uom === 'mm' || uom ===
'cm' || uom === 'm' || uom === 'in' || uom === 'ft' || uom === 'yd';
};
vars.get_entity_uom = (entity, default_uom) => { let entity_obj =
hass.states[entity];
if (entity_obj === undefined) { if (default_uom === undefined) { throw
new TypeError("UOM entity not found -> " + entity); }
return default_uom; }
var uom = undefined;
if (entity_obj.attributes !== undefined &&
entity_obj.attributes.unit_of_measurement !== undefined) { uom =
entity_obj.attributes.unit_of_measurement; } else { uom =
entity_obj.state; }
if (uom === undefined || !vars.is_valid_uom(uom)) { if (default_uom
=== undefined) { throw new TypeError("Entity UOM is invalid -> " +
entity + " === " + uom); }
return default_uom; }
return uom; };
vars.conversionTable = [ ['mm_cm', 0.1], ['mm_m', 0.001], ['mm_in',
1/25.4], ['mm_ft', 1/304.8], ['mm_yd', 1/914.4], ['cm_mm', 10],
['cm_m', 0.01], ['cm_in', 1/2.54], ['cm_ft', 1/30.48], ['cm_yd',
1/91.44], ['m_mm', 1000], ['m_cm', 100], ['m_in', 39.3701], ['m_ft',
3.28084], ['m_yd', 1.09361], ['in_mm', 25.4], ['in_cm', 2.54],
['in_m', 1/39.3701], ['in_ft', 1/12], ['in_yd', 1/36], ['ft_mm',
304.8], ['ft_cm', 30.48], ['ft_m', 1/3.28084], ['ft_in', 12], ['ft_yd',
1/3], ['yd_mm', 914.4], ['yd_cm', 91.44], ['yd_m', 1/1.09361], ['yd_in',
36], ['yd_ft', 3] ];
vars.chart_uom = '[[chart_unit_of_measurement]]';
if (vars.chart_uom === 'input_entity') { let chart_uom_entity =
'[[chart_unit_of_measurement_entity]]'; vars.chart_uom =
vars.get_entity_uom(chart_uom_entity, 'cm'); }
if (!vars.is_valid_uom(vars.chart_uom)) { vars.chart_uom = "cm"; }
vars.convert_to_chart_uom = (from_uom, value) => { if (from_uom ===
vars.chart_uom) return value;
let key = from_uom + '_' + vars.chart_uom; for (let i = 0; i <
vars.conversionTable.length; i++) { if (vars.conversionTable[i][0] ===
key) { return value * vars.conversionTable[i][1]; } }
return value; };
vars.get_entity_state = (entity, default_state) => { let entity_obj =
hass.states[entity];
if (entity_obj === undefined) { if (default_state === undefined) {
throw new TypeError("Entity not found -> " + entity); }
return default_state; }
var state = entity_obj.state;
if (state === undefined || state === null) { if (default_state ===
undefined) { throw new TypeError("Entity state is undefined or null ->
" + entity); }
return default_state; }
return state; };
vars.entity_to_chart_uom_value = (entity_name) => { return
vars.convert_to_chart_uom(vars.get_entity_uom(entity_name),
vars.get_entity_state(entity_name, 0)); };
vars.get_occupied_symbol = (entity_state) =>{ if (entity_state ===
'on') { return "circle"; } else { return "circle-open"; } }; }
- >-
$ex { let chart_uom = '[[chart_unit_of_measurement]]';
if (chart_uom !== 'input_entity' && !vars.is_valid_uom(chart_uom)) {
throw new TypeError("Invalid chart_unit_of_measurement [valid -
mm|cm|m|in|ft|yd], " + chart_uom); } }
- >-
$ex { let gate_size_str =
vars.get_entity_state('select.[[device_base_name]]_ld2410_gate_size',
'0.75m'); vars.gate_size = vars.convert_to_chart_uom('m',
parseFloat(gate_size_str.replace(/[^0-9.]/g, '')));
vars.max_detection_range = vars.gate_size * 8;
vars.marker_symbol_size = 10;
vars.show_radar_targets = Boolean('[[show_radar_targets]]');
vars.show_zones = Boolean('[[show_zones]]'); vars.show_distance =
Boolean('[[show_distance]]'); vars.show_gates =
Boolean('[[show_gates]]'); vars.show_max_gates =
Boolean('[[show_max_gates]]'); }
- >-
$ex { vars.radar_max_still_gate =
vars.get_entity_state('number.[[device_base_name]]_radar_max_still_distance');
vars.radar_max_still_distance = vars.radar_max_still_gate *
vars.gate_size;
vars.radar_max_move_gate =
vars.get_entity_state('number.[[device_base_name]]_radar_max_move_distance');
vars.radar_max_move_distance = vars.radar_max_move_gate *
vars.gate_size; }
- >-
$ex { vars.start_zone_1 =
vars.entity_to_chart_uom_value('number.[[device_base_name]]_radar_zone_1_start');
vars.end_zone_1 =
vars.entity_to_chart_uom_value('number.[[device_base_name]]_radar_end_zone_1');
vars.end_zone_2 =
vars.entity_to_chart_uom_value('number.[[device_base_name]]_radar_end_zone_2');
vars.end_zone_3 =
vars.entity_to_chart_uom_value('number.[[device_base_name]]_radar_end_zone_3');
}
- >-
$ex { vars.zone_marker_symbol_offset = vars.gate_size * 0.22;
let zone_1_occupied_state =
vars.get_entity_state('binary_sensor.[[device_base_name]]_radar_zone_1_occupancy');
vars.zone_1_occupied = vars.show_zones && zone_1_occupied_state ===
'on'; vars.zone_1_occupied_symbol =
vars.get_occupied_symbol(zone_1_occupied_state);
let zone_2_occupied_state =
vars.get_entity_state('binary_sensor.[[device_base_name]]_radar_zone_2_occupancy');
vars.zone_2_occupied = vars.show_zones && zone_2_occupied_state ===
'on'; vars.zone_2_occupied_symbol =
vars.get_occupied_symbol(zone_2_occupied_state);
let zone_3_occupied_state =
vars.get_entity_state('binary_sensor.[[device_base_name]]_radar_zone_3_occupancy');
vars.zone_3_occupied = vars.show_zones && zone_3_occupied_state ===
'on'; vars.zone_3_occupied_symbol =
vars.get_occupied_symbol(zone_3_occupied_state); }
defaults:
entity:
type: bar
showlegend: false
orientation: h
insidetextanchor: middle
entities:
- entity: ''
visible: $ex vars.show_max_gates
texttemplate:
- $ex 'G' + ~~vars.radar_max_still_gate
- $ex 'G' + ~~vars.radar_max_move_gate
marker:
color:
- '[[still_bar_color]]'
- '[[move_bar_color]]'
x:
- $ex vars.radar_max_still_distance;
- $ex vars.radar_max_move_distance;
'y':
- Max Still
- Max Move
- entity: ''
visible: $ex vars.show_gates
marker:
colorscale: Portland
color:
- 0
- 1
- 2
- 3
- 4
- 5
- 6
- 7
texttemplate:
- G1
- G2
- G3
- G4
- G5
- G6
- G7
- G8
x:
- $ex vars.gate_size
- $ex vars.gate_size
- $ex vars.gate_size
- $ex vars.gate_size
- $ex vars.gate_size
- $ex vars.gate_size
- $ex vars.gate_size
- $ex vars.gate_size
'y':
- Gates
- Gates
- Gates
- Gates
- Gates
- Gates
- Gates
- Gates
- entity: ''
visible: $ex vars.show_distance
texttemplate: $ex '%{x:.2f} ' + vars.chart_uom
marker:
color:
- '[[still_bar_color]]'
- '[[move_bar_color]]'
- '[[detection_bar_color]]'
x:
- >-
$ex
vars.entity_to_chart_uom_value('sensor.[[device_base_name]]_radar_still_distance');
- >-
$ex
vars.entity_to_chart_uom_value('sensor.[[device_base_name]]_radar_moving_distance');
- >-
$ex
vars.entity_to_chart_uom_value('sensor.[[device_base_name]]_radar_detection_distance');
'y':
- Still
- Moving
- Detection
- entity: ''
visible: $ex vars.show_zones
marker:
color:
- '#00000000'
- red
- blue
- green
texttemplate:
- ''
- Zone 1
- Zone 2
- Zone 3
x:
- $ex vars.start_zone_1;
- $ex (vars.end_zone_1 - vars.start_zone_1);
- $ex (vars.end_zone_2 - vars.end_zone_1);
- $ex (vars.end_zone_3 - vars.end_zone_2);
'y':
- Zones
- Zones
- Zones
- Zones
- entity: ''
visible: $ex vars.show_zones
type: scatter
mode: markers
marker:
color: '#FFFFFFFF'
symbol:
- $ex vars.zone_1_occupied_symbol
- $ex vars.zone_2_occupied_symbol
- $ex vars.zone_3_occupied_symbol
size: $ex vars.marker_symbol_size
x:
- $ex (vars.end_zone_1 - vars.zone_marker_symbol_offset);
- $ex (vars.end_zone_2 - vars.zone_marker_symbol_offset);
- $ex (vars.end_zone_3 - vars.zone_marker_symbol_offset);
'y':
- Zones
- Zones
- Zones
- entity: ''
visible: $ex vars.show_radar_targets
text:
- ''
- Detected
- ''
- Moving
- ''
- Still
insidetextanchor: start
marker:
color:
- '#00000000'
- '#000000E6'
- '#00000000'
- '#000000E6'
- '#00000000'
- '#000000E6'
x:
- $ex vars.radar_target_spacer_size
- $ex vars.radar_target_size
- $ex vars.radar_target_spacer_size
- $ex vars.radar_target_size
- $ex vars.radar_target_spacer_size
- $ex vars.radar_target_size
'y':
- Target
- Target
- Target
- Target
- Target
- Target
- entity: ''
visible: $ex vars.show_radar_targets
type: scatter
mode: markers
marker:
color: '#FFFFFFFF'
symbol:
- $ex vars.radar_target_occupied_symbol
- $ex vars.radar_target_moving_occupied_symbol
- $ex vars.radar_target_still_occupied_symbol
size: $ex vars.marker_symbol_size
x:
- >-
$ex (vars.radar_target_spacer_size + vars.radar_target_size -
vars.radar_target_marker_offset);
- >-
$ex (vars.radar_target_spacer_size * 2 + vars.radar_target_size *
2 - vars.radar_target_marker_offset);
- >-
$ex (vars.radar_target_spacer_size * 3 + vars.radar_target_size *
3 - vars.radar_target_marker_offset);
'y':
- Target
- Target
- Target
layout:
height: $ex vars.layout_height
dragmode: false
hovermode: false
barmode: relative
margin:
t: $ex vars.layout_margin_t;
l: 60
r: 30
b: $ex vars.layout_margin_b
xaxis:
dtick: $ex (vars.max_detection_range / 8);
ticksuffix: $ex ' ' + vars.chart_uom
tickangle: 60
fixedrange: true
range:
- 0
- $ex vars.max_detection_range * 1.003;
yaxis:
tickangle: -30
showgrid: false
config:
displayModeBar: false
disablePinchToZoom: true
ld2410_gate_energy_chart:
default:
device_title: LD2410
move_bar_color: '#4b0082'
move_threshold_color: '#9467bd'
still_bar_color: '#274e13'
still_threshold_color: '#8cb640'
card:
type: custom:plotly-graph
title: '[[device_title]] Gate Energy'
refresh_interval: 1
raw_plotly_config: true
init:
- >-
$ex { vars.get_entity_state = (entity, default_state) => { let
entity_obj = hass.states[entity];
if (entity_obj === undefined) { if (default_state === undefined) {
throw new TypeError("Entity not found -> " + entity); }
return default_state; }
var state = entity_obj.state;
if (state === undefined || state === null || state === 'unknown') { if
(default_state === undefined) { throw new TypeError("Entity state is
undefined or null -> " + entity); }
return default_state; }
return state; }; }
- >-
$ex { let radar_engineering_mode =
vars.get_entity_state('switch.[[device_base_name]]_radar_engineering_mode');
vars.show_radar_engineering_mode_on = radar_engineering_mode === 'on';
}
defaults:
entity:
texttemplate: '%{y}'
x:
- G0
- G1
- G2
- G3
- G4
- G5
- G6
- G7
- G8
entities:
- entity: ''
name: Move Energy
legendgroup: Move
type: bar
marker:
color: '[[move_bar_color]]'
'y':
- >-
$ex
vars.get_entity_state('sensor.[[device_base_name]]_g0_move_energy',
0)
- >-
$ex
vars.get_entity_state('sensor.[[device_base_name]]_g1_move_energy',
0)
- >-
$ex
vars.get_entity_state('sensor.[[device_base_name]]_g2_move_energy',
0)
- >-
$ex
vars.get_entity_state('sensor.[[device_base_name]]_g3_move_energy',
0)
- >-
$ex
vars.get_entity_state('sensor.[[device_base_name]]_g4_move_energy',
0)
- >-
$ex
vars.get_entity_state('sensor.[[device_base_name]]_g5_move_energy',
0)
- >-
$ex
vars.get_entity_state('sensor.[[device_base_name]]_g6_move_energy',
0)
- >-
$ex
vars.get_entity_state('sensor.[[device_base_name]]_g7_move_energy',
0)
- >-
$ex
vars.get_entity_state('sensor.[[device_base_name]]_g8_move_energy',
0)
- entity: ''
name: Move Threshold
legendgroup: Move
visible: $ex vars.show_radar_engineering_mode_on
type: scatter
mode: markers
marker:
symbol: arrow-right
size: 15
color: '[[move_threshold_color]]'
'y':
- >-
$ex
vars.get_entity_state('number.[[device_base_name]]_g0_move_threshold')
- >-
$ex
vars.get_entity_state('number.[[device_base_name]]_g1_move_threshold')
- >-
$ex
vars.get_entity_state('number.[[device_base_name]]_g2_move_threshold')
- >-
$ex
vars.get_entity_state('number.[[device_base_name]]_g3_move_threshold')
- >-
$ex
vars.get_entity_state('number.[[device_base_name]]_g4_move_threshold')
- >-
$ex
vars.get_entity_state('number.[[device_base_name]]_g5_move_threshold')
- >-
$ex
vars.get_entity_state('number.[[device_base_name]]_g6_move_threshold')
- >-
$ex
vars.get_entity_state('number.[[device_base_name]]_g7_move_threshold')
- >-
$ex
vars.get_entity_state('number.[[device_base_name]]_g8_move_threshold')
- entity: ''
name: Still Energy
legendgroup: Still
type: bar
marker:
color: '[[still_bar_color]]'
'y':
- >-
$ex
vars.get_entity_state('sensor.[[device_base_name]]_g0_still_energy',
0)
- >-
$ex
vars.get_entity_state('sensor.[[device_base_name]]_g1_still_energy',
0)
- >-
$ex
vars.get_entity_state('sensor.[[device_base_name]]_g2_still_energy',
0)
- >-
$ex
vars.get_entity_state('sensor.[[device_base_name]]_g3_still_energy',
0)
- >-
$ex
vars.get_entity_state('sensor.[[device_base_name]]_g4_still_energy',
0)
- >-
$ex
vars.get_entity_state('sensor.[[device_base_name]]_g5_still_energy',
0)
- >-
$ex
vars.get_entity_state('sensor.[[device_base_name]]_g6_still_energy',
0)
- >-
$ex
vars.get_entity_state('sensor.[[device_base_name]]_g7_still_energy',
0)
- >-
$ex
vars.get_entity_state('sensor.[[device_base_name]]_g8_still_energy',
0)
- entity: ''
name: Still Threshold
legendgroup: Still
visible: $ex vars.show_radar_engineering_mode_on
type: scatter
mode: markers
marker:
symbol: arrow-left
size: 15
color: '[[still_threshold_color]]'
'y':
- >-
$ex
vars.get_entity_state('number.[[device_base_name]]_g0_still_threshold')
- >-
$ex
vars.get_entity_state('number.[[device_base_name]]_g1_still_threshold')
- >-
$ex
vars.get_entity_state('number.[[device_base_name]]_g2_still_threshold')
- >-
$ex
vars.get_entity_state('number.[[device_base_name]]_g3_still_threshold')
- >-
$ex
vars.get_entity_state('number.[[device_base_name]]_g4_still_threshold')
- >-
$ex
vars.get_entity_state('number.[[device_base_name]]_g5_still_threshold')
- >-
$ex
vars.get_entity_state('number.[[device_base_name]]_g6_still_threshold')
- >-
$ex
vars.get_entity_state('number.[[device_base_name]]_g7_still_threshold')
- >-
$ex
vars.get_entity_state('number.[[device_base_name]]_g8_still_threshold')
layout:
barmode: group
dragmode: false
hovermode: false
legend:
itemsizing: constant
orientation: h
margin:
t: 15
l: 30
r: 10
xaxis:
showgrid: false
tickfont:
size: 20
yaxis:
dtick: 10
fixedrange: true
range:
- 0
- 100.3
annotations:
- text: Turn on "Radar Engineering Mode"<br>to see the gate energy values.
visible: $ex !vars.show_radar_engineering_mode_on
showarrow: false
x: G4
'y': 50
font:
size: 20
color: '#FFFFFF'
borderpad: 16
bgcolor: '#000000BB'
config:
displayModeBar: false
disablePinchToZoom: true
ld2410_occupancy_history:
default:
device_title: LD2410
hours_to_show: 1
card:
type: history-graph
title: '[[device_title]] Occupancy History'
hours_to_show: '[[hours_to_show]]'
entities:
- entity: binary_sensor.[[device_base_name]]_radar_target
name: Detected
- entity: binary_sensor.[[device_base_name]]_radar_zone_1_occupancy
name: Zone 1
- entity: binary_sensor.[[device_base_name]]_radar_zone_2_occupancy
name: Zone 2
- entity: binary_sensor.[[device_base_name]]_radar_zone_3_occupancy
name: Zone 3
- entity: number.[[device_base_name]]_g0_move_threshold
name: G0 move threshold
- entity: number.[[device_base_name]]_g0_still_threshold
name: G0 still threshold
- entity: number.[[device_base_name]]_g1_move_threshold
name: G1 move threshold
- entity: number.[[device_base_name]]_g1_still_threshold
name: G1 still threshold
- entity: number.[[device_base_name]]_g2_move_threshold
name: G2 move threshold
- entity: number.[[device_base_name]]_g2_still_threshold
name: G2 still threshold
- entity: number.[[device_base_name]]_g3_move_threshold
name: G3 move threshold
- entity: number.[[device_base_name]]_g3_still_threshold
name: G3 still threshold
- entity: number.[[device_base_name]]_g4_move_threshold
name: G4 move threshold
- entity: number.[[device_base_name]]_g4_still_threshold
name: G4 still threshold
- entity: number.[[device_base_name]]_g5_move_threshold
name: G5 move threshold
- entity: number.[[device_base_name]]_g5_still_threshold
name: G5 still threshold
- entity: number.[[device_base_name]]_g6_move_threshold
name: G6 move threshold
- entity: number.[[device_base_name]]_g6_still_threshold
name: G6 still threshold
- entity: number.[[device_base_name]]_g7_move_threshold
name: G7 move threshold
- entity: number.[[device_base_name]]_g7_still_threshold
name: G7 still threshold
- entity: number.[[device_base_name]]_g8_move_threshold
name: G8 move threshold
- entity: number.[[device_base_name]]_g8_still_threshold
name: G8 still threshold
ld2410_zone_configuration:
default:
device_title: LD2410
card:
type: entities
title: '[[device_title]] Zone Config'
entities:
- entity: number.[[device_base_name]]_radar_timeout
name: Radar Timeout
- entity: number.[[device_base_name]]_radar_zone_1_start
name: Start Zone 1
- entity: number.[[device_base_name]]_radar_end_zone_1
name: End Zone 1
- entity: number.[[device_base_name]]_radar_end_zone_2
name: End Zone 2
- entity: number.[[device_base_name]]_radar_end_zone_3
name: End Zone 3
ld2410_zone_occupancy:
default:
device_title: LD2410
card:
type: entities
title: '[[device_title]] Target / Occupancy'
entities:
- entity: binary_sensor.[[device_base_name]]_radar_target
name: Radar Target
- entity: binary_sensor.[[device_base_name]]_radar_moving_target
name: Radar Moving Target
- entity: binary_sensor.[[device_base_name]]_radar_still_target
name: Radar Still Target
- entity: binary_sensor.[[device_base_name]]_radar_zone_1_occupancy
name: Radar Zone 1 Occupancy
- entity: binary_sensor.[[device_base_name]]_radar_zone_2_occupancy
name: Radar Zone 2 Occupancy
- entity: binary_sensor.[[device_base_name]]_radar_zone_3_occupancy
name: Radar Zone 3 Occupancy
ld2410_gate_energy_configuration:
default:
device_title: LD2410
card:
type: entities
title: '[[device_title]] Gate Config'
entities:
- entity: number.[[device_base_name]]_radar_max_move_distance
name: Max Move Gate
- entity: number.[[device_base_name]]_radar_max_still_distance
name: Max Still Gate
- entity: number.[[device_base_name]]_g0_move_threshold
name: G0 move threshold
- entity: number.[[device_base_name]]_g0_still_threshold
name: G0 still threshold
- entity: number.[[device_base_name]]_g1_move_threshold
name: G1 move threshold
- entity: number.[[device_base_name]]_g1_still_threshold
name: G1 still threshold
- entity: number.[[device_base_name]]_g2_move_threshold
name: G2 move threshold
- entity: number.[[device_base_name]]_g2_still_threshold
name: G2 still threshold
- entity: number.[[device_base_name]]_g3_move_threshold
name: G3 move threshold
- entity: number.[[device_base_name]]_g3_still_threshold
name: G3 still threshold
- entity: number.[[device_base_name]]_g4_move_threshold
name: G4 move threshold
- entity: number.[[device_base_name]]_g4_still_threshold
name: G4 still threshold
- entity: number.[[device_base_name]]_g5_move_threshold
name: G5 move threshold
- entity: number.[[device_base_name]]_g5_still_threshold
name: G5 still threshold
- entity: number.[[device_base_name]]_g6_move_threshold
name: G6 move threshold
- entity: number.[[device_base_name]]_g6_still_threshold
name: G6 still threshold
- entity: number.[[device_base_name]]_g7_move_threshold
name: G7 move threshold
- entity: number.[[device_base_name]]_g7_still_threshold
name: G7 still threshold
- entity: number.[[device_base_name]]_g8_move_threshold
name: G8 move threshold
- entity: number.[[device_base_name]]_g8_still_threshold
name: G8 still threshold