This document describes the iOSCloud plugin: configuration, authentication, devices, presence and scenarios.
Quick access:
- Overview
- Prerequisites
- Installation
- Authentication procedure
- Device types
- Important settings
- Using in scenarios
- Practical tips
Overview
The iOSCloud plugin allows Jeedom to connect to your iCloud account in order to:
- retrieve the location of your Apple devices (iPhone, iPad…)
- automatically calculate presence (home / away)
- trigger actions such as playing a sound on a device or sending a message
Goal: easily automate your presence and Apple devices in Jeedom.
Prerequisites
Minimum requirements
- Jeedom 4.4 minimum
- Debian 11 minimum (Debian 11 recommended)
- PHP 7.4 minimum
- An Apple iCloud account
- A trusted Apple device (to receive the security code)
Installation
1️⃣ Install the plugin
- Jeedom → Plugins
- Market
- Search for iOSCloud
- Install then activate
2️⃣ Install dependencies
On the plugin page:
Click (Re)install dependencies
The plugin uses an internal Python module to communicate with iCloud. Jeedom automatically installs what is needed.
Wait until the status changes to OK.
Complete authentication procedure (IMPORTANT)
Connecting to iCloud requires two-factor authentication (2FA).
Apple sends a temporary security code to your Apple devices.
Step 1 — Configure the iCloud account
Create a device of type iCloud Account (cloud).
In its configuration:
- iCloud address (Apple email)
- iCloud password
Save.
Step 2 — Start authentication
In the device:
Click Authentication
The plugin attempts to connect.
Step 3 — Receive the Apple code
If Apple requests a code:
- You receive a code on your iPhone / iPad
- A "code" field appears in the plugin
Enter the received code.
Click Send code
Step 4 — Validation
The plugin displays the progress:
- Connecting
- Code requested
- Code sent
- Code validated
- Synchronizing devices
When validation is complete:
✅ Devices are automatically retrieved ✅ "Device" equipment is created or updated
Re-authentication
- After a reboot
- If the password is incorrect → connection refused
Avoid running authentication too frequently.
Device types
The plugin creates several device types:
☁️ iCloud Account (cloud)
Main device.
Contains:
- iCloud credentials
- Authentication button
- Refresh management
- Cron settings
📱 iCloud Device (devices)
One device per Apple device.
Available commands:
- Location
- Battery
- Timestamp
- State
- Play sound
- Message
📍 Fixed position (fixed)
Lets you define a manual GPS point (e.g. Home).
Required format:
latitude,longitude
📏 Distance / Presence (geofence_dist)
Calculates:
- Distance between a fixed point and a device
- Presence (0 or 1) based on a defined radius
Settings:
- Reference position
- Radius (e.g. 300 meters)
- Monitored devices
Important settings
Refresh rate
Do not set a frequency that is too short. Recommended: every 5 minutes.
State delay
Time before the state returns to 0 if no update is received. Default: 1 hour.
Presence radius
- 100 m → very strict
- 300 m → good compromise
- 500 m → more stable
Using in scenarios
Example — Arriving home
Condition:
#[iOSCloud][Home - Presence][Presence]# == 1
Possible actions:
- Turn on lights
- Deactivate alarm
- Send notification
Example — Leaving home
#[iOSCloud][Home - Presence][Presence]# == 0
Play a sound on an iPhone
#[iOSCloud][iPhone][Play sound]#
Send a message
#[iOSCloud][iPhone][Message]#
Practical tips
- Do not refresh too frequently
- Adjust the radius if presence varies too much
- Re-run authentication if Apple requests a new code
- To avoid false departures, create a scenario:
- Presence = 0
- For more than X minutes → Activate away mode