/ha-iphonedetect

A custom component for Home Assistant to detect iPhones connected to local LAN, even if the phone is in deep sleep.

Primary LanguagePythonMIT LicenseMIT

hacs_badge GitHub release

iPhone Detect

This integration sends a message to the defined hosts on UDP port 5353.
The iPhone responds, even when in deep sleep, and an entry in the ARP cache is made .

Uses Home Assistant's device_tracker and idea/script from return01

Only IP addresses will work, no hostnames!
You have to assign a static IP address(es) to your iPhones, probably in your router.

The interval_seconds time must be shorter than the timeout in which the ARP cache is cleared (usally 15-45sec), or the phone will be marked not_home. So, leave it at the default value (12sec) or make it shorter.

Buy Me A Coffee

Example configuration.yaml

device_tracker:
  - platform: iphonedetect
    consider_home: 60
    scan_interval: 12
    new_device_defaults:
      track_new_devices: true
    hosts:
      hostname1: 192.168.0.17
      hostname2: 192.168.0.24

This will create device_tracker.hostname1 and device_tracker.hostname2 once the devices have been detected on your network.
(Re)start the Wi-Fi on your device/phone to trigger their creation on first run.

Note
If you have track_new_devices: false (in this or any integrations specified before this) for the device_tracker component you need to manually change track: to true for each device in known_devices.yaml
(see component settings for device_tracker)

hostname1:
  icon:
  mac:
  name: hostname1
  picture:
  track: true