Skip to main content

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 target property (specifically area_id), but for more flexible target selection that supports multiple target types simultaneously, use the target property instead. See Target Selector for details.

Options

All area selectors accept these common metadata options:

  • default?: TAreaId - Default selected area
  • description?: string - Human-readable description shown in the UI
  • required?: boolean - Whether the field must be provided

Area-specific options (from ServiceListSelector["area"]):

  • device?: DeviceFilterSelector | DeviceFilterSelector[] - Filter areas by device
  • entity?: EntityFilterSelector | EntityFilterSelector[] - Filter areas by entity
  • multiple?: boolean - When true, allows selecting multiple areas (returns TAreaId[])

Return Type

  • TAreaId when multiple is not set or false
  • TAreaId[] when multiple: 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}`);
}
);
}