Area Selector
The Area selector provides an area picker for selecting Home Assistant areas.
⚠️ Note: This selector can provide part of the functionality of the
targetproperty (specificallyarea_id), but for more flexible target selection that supports multiple target types simultaneously, use thetargetproperty instead. See Target Selector for details.
Options
All area selectors accept these common metadata options:
default?: TAreaId- Default selected areadescription?: string- Human-readable description shown in the UIrequired?: boolean- Whether the field must be provided
Area-specific options (from ServiceListSelector["area"]):
device?: DeviceFilterSelector | DeviceFilterSelector[]- Filter areas by deviceentity?: EntityFilterSelector | EntityFilterSelector[]- Filter areas by entitymultiple?: boolean- Whentrue, allows selecting multiple areas (returnsTAreaId[])
Return Type
TAreaIdwhenmultipleis not set orfalseTAreaId[]whenmultiple: true
Example
import { TServiceParams } from "@digital-alchemy/core";
import { ServiceField } from "@digital-alchemy/synapse";
export function SynapseServiceCreate({
synapse,
context,
logger,
}: TServiceParams) {
synapse.service.create(
{
context,
description: "Configure area settings",
fields: {
// Area selector
area: ServiceField.Area({
description: "Area to configure",
required: true,
}),
},
},
async data => {
// data.area is typed as: TAreaId
logger.info(`Configuring area: ${data.area}`);
}
);
}