Actions

Bluetooth Scan

Read what Bluetooth devices your Mac is connected to, and get a plain true or false about the one you care about.

action.bluetooth_scan
ACTIONBluetooth Scan

At a glance

Two outlets
Done fires once with the rollup; Each Device fans out per device
Emits
targetDeviceConnected and eight more on Done, five per device

Set it up

Leave Look For on Anything nearby to list what is around, or choose a specific device and wire {{targetDeviceConnected}} into a Compare as "is true".

The Bluetooth Scan inspector with a specific device chosen.
The Bluetooth Scan inspector with a specific device chosen.

A scan is not a radio sweep for strangers — it is one read of macOS's own connection and pairing table, the same source the System Event Bluetooth trigger watches. That is why it is instant, and why there is no signal strength: presence means connected, not close.

Configure

FieldDefaultWhat it does
Look ForAnything nearbyA specific device… reveals the picker and fills the targetDevice* keys.
Device—A live chooser listing everything your Mac is paired with, including devices that are off. Matched by name first, then by remembered address, so the match survives both a rename and address randomisation.
Include paired but offlineOffOn also counts devices that are paired but not connected.

Output

On the Done outlet:

KeyTypeValue
targetDeviceConnectedBooleanThe headline check — your device is connected right now
targetDevicePresentBooleanIt is in the scan at all
targetDeviceNameStringThe matched device's name, or empty
deviceCountNumberHow many devices the scan found
deviceNamesStringComma-joined names, connected first then alphabetical
foundBooleanThe scan found at least one device
statusStringok, empty or permission_denied
summaryStringA one-line plain-English summary
devicesArrayPer-device details: name, address, kind, transport, connected

On each Each Device pass: deviceName, deviceAddress, deviceKind, connected, and index — its zero-based place in the scan.

Example: know when the headphones drop

A Schedule scans, a Condition tests {{targetDeviceConnected}}, and the No branch says so.

Schedule, scan, condition, notification.
Schedule, scan, condition, notification.

Paste this into the Flow Builder to get the same flow:

Every minute, check whether my AirPods are connected, and notify me when they are not.

Good to know

Denied Bluetooth access does not fail the node. It emits status: "permission_denied" with found: false. A Mac with Bluetooth off, or nothing paired, reads as status: "empty".

Done is the rollup, Each Device is the loop. Wire the yes-or-no check behind Done and the per-device work behind Each Device.