Bonjour , quelqu’un a t-il eu des nouvelles concernant l’évolution du plug in ?
Merci 
Hello, comme dit plus haut, il faut lire l’issue sur la lib :
Bonjour,
je viens de mettre a jour une autre discussion sur le meme sujet. J’ai trouve une solution alternative basée sur du python, en attendant un fix dans la lib php.
Benoit
Merci pour cette alternative qui marche très très bien ! 
Bonjour @nex008 peux-tu nous dire comment as-tu intégré à iOSCloud stp ? Merci 
Bonsoir, je n’ai rien intégré à ioscloud. Je gère ma présence sur 3 critères : géolocalisation des téléphones/accroche wifi des tels/clés nut.
Ma géolocalisation était basée sur celle du plugin iOScloud via un scénario qui se déclenchait en fonction de la distance du tel par rapport au domicile.
Du coup, j’ai compensé ce manque par le tuto fourni sur le fil de discussion:
Création de bouton virtuel de présence par personne dans jeedom / remontée des boutons sur l’apps maison des iPhone via plugin Homebridge (merci Nebz
) et creation d’une automation dans l app maison de l’iPhone (comme indiqué dans le tuto fourni).
L’avantage constaté de cette solution par rapport à l’ancienne :
- bcp plus réactive
- moins consommatrice de batterie des iPhones (je lancais un scénario d’actualisation de la distance ioscloud dans jeedom très fréquemment pour détecter la présence des l’iPhone, ce qui avaient une tendance à avoir un impact sur les batteries)
J’ai suivi ce tuto
https://nechry-automation.ch/2018/02/26/gestion-de-presences-avec-homebridge-sur-jeedom/
Pour le moment j’attends patiemment une mise à jour du plugin,
Je me sers de la distance pour gérer mes différentes consignes de mes thermostats,
Oui ça me manque aussi pour anticiper le changement de consignes avant d’arriver à la maison 
petit tuto pour utiliser pyicloud et le plugin Localisation et Trajet (geotrav)
dans jeedom il faut d’abord créer un device localisation dans geotrav
garder l’url dans un coin
sur debian : executer la commande
pip install pyicloud
ca installe la lib
j’ai crée ensuite le script suivant d’apres les exemples fournis:
tstpyicloud.py
import os
import click
import datetime
import time
import requests
from pyicloud import PyiCloudService
print("Setup Time Zone")
time.strftime("%X %x %Z")
os.environ["TZ"] = "Europe/Paris"
print("Py iCloud Services")
#remplacer par votre mail et password de compte icloud
api = PyiCloudService("apple@mail.com", "password")
if api.requires_2fa:
print("Two-factor authentication required. Your trusted devices are:")
devices = api.trusted_devices
for i, device in enumerate(devices):
print(
" %s: %s"
% (i, device.get("deviceName", "SMS to %s" % device.get("phoneNumber")))
)
device = click.prompt("Which device would you like to use?", default=0)
device = devices[device]
if not api.send_verification_code(device):
print("Failed to send verification code")
sys.exit(1)
code = click.prompt("Please enter validation code")
if not api.validate_verification_code(device, code):
print("Failed to verify verification code")
sys.exit(1)
i = 0
#permet d'obtenir l'id de votre device
for c in api.devices:
print("%d :%s" % (i,c))
i = i+1
iphone_loc = {}
#remplacer 16 par l'id voulu
iphone_loc = api.devices[16].location()
location = "%s,%s" % (iphone_loc['latitude' ] , iphone_loc['longitude'])
print(location)
#url du device geotrav
url = "%s%s" % ("https://votrejeedom/plugins/geotrav/core/api/jeeGeotrav.php?apikey=yyyyyyyyyyyyyyyyyyyyy&id=yyyy&value=",location)
print(url)
requests.get(url)
pour le lancer :
python /home/jeedom/tstpyicloud.py
la premiere fois il y a le code SMS a fournir
apres vous pouvez faire un cron pour la mise a jour
merci pour ce partage, mais je viens de tester et j’ai cette erreur
Traceback (most recent call last): File "/home/jeedom/tstpyicloud.py", line 2, in <module> import click ImportError: No module named click
Pourtant l’install des packages à l’air OK
root@wooper:/home/jeedom# pip install pyicloud
/usr/lib/python3/dist-packages/secretstorage/dhcrypto.py:15: CryptographyDeprecationWarning: int_from_bytes is deprecated, use int.from_bytes instead
from cryptography.utils import int_from_bytes
/usr/lib/python3/dist-packages/secretstorage/util.py:19: CryptographyDeprecationWarning: int_from_bytes is deprecated, use int.from_bytes instead
from cryptography.utils import int_from_bytes
Requirement already satisfied: pyicloud in /usr/local/lib/python3.7/dist-packages (0.10.2)
Requirement already satisfied: keyring<=9.3.1,>=8.0 in /usr/local/lib/python3.7/dist-packages (from pyicloud) (9.3.1)
Requirement already satisfied: keyrings.alt<=3.2.0,>=1.0 in /usr/lib/python3/dist-packages (from pyicloud) (3.1.1)
Requirement already satisfied: click<=7.1.1,>=6.0 in /usr/local/lib/python3.7/dist-packages (from pyicloud) (7.1.1)
Requirement already satisfied: future>=0.18.2 in /usr/local/lib/python3.7/dist-packages (from pyicloud) (0.18.2)
Requirement already satisfied: tzlocal==2.0.0 in /usr/local/lib/python3.7/dist-packages (from pyicloud) (2.0.0)
Requirement already satisfied: six>=1.14.0 in /usr/local/lib/python3.7/dist-packages (from pyicloud) (1.16.0)
Requirement already satisfied: requests>=2.20.0 in /usr/local/lib/python3.7/dist-packages (from pyicloud) (2.26.0)
Requirement already satisfied: pytz>=2019.3 in /usr/local/lib/python3.7/dist-packages (from pyicloud) (2021.1)
Requirement already satisfied: certifi>=2019.11.28 in /usr/local/lib/python3.7/dist-packages (from pyicloud) (2021.5.30)
Requirement already satisfied: secretstorage in /usr/lib/python3/dist-packages (from keyring<=9.3.1,>=8.0->pyicloud) (2.3.1)
Requirement already satisfied: charset-normalizer~=2.0.0 in /usr/local/lib/python3.7/dist-packages (from requests>=2.20.0->pyicloud) (2.0.3)
Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.7/dist-packages (from requests>=2.20.0->pyicloud) (3.2)
Requirement already satisfied: urllib3<1.27,>=1.21.1 in /usr/local/lib/python3.7/dist-packages (from requests>=2.20.0->pyicloud) (1.26.6)
WARNING: Running pip as root will break packages and permissions. You should install packages reliably by using venv: https://pip.pypa.io/warnings/venv
WARNING: You are using pip version 21.1.1; however, version 21.3.1 is available.
You should consider upgrading via the '/usr/bin/python3 -m pip install --upgrade pip' command.
essaye ca :
pip install click
j’ai aussi installé la lib requests chez moi
pip install requests
Il est préférable d’utiliser pip3 pour installer des packages python3 et en fait c’est même encore plus sur d’utiliser :
python3 -m pip install [package_name]
pour être sur de ne pas avoir de conflit entre python2 et python3.
Mais est-ce un script pour python2 ou python3?
car lancé avec python qui en principe est python2 sur buster mais dépendances python3 qui s’installent…
J’ai installé dans les 2 environnements 
Mais je lancais python et pas python3
le script fonctionne sur les deux
ben en python3 ok mais pas en 2 lol et je cherche pas pourquoi
la ca fonctionne et c’est très bien ainsi…
a la différence que j’update juste un equipement du plugin geoloc et pas geotrav
et ca fait le taf !
Bonjour,
Je suis en train de tester le script sur une machine de test mais j’ai 2 questions.
- Faut il absolument une authentification 2FA?
- La machine sur laquelle je fait le test est en http et non https est ce que cela peu jouer?
Merci d’avance pour tes réponses
que ta machine soit en http ou https n’a aucun effet sur le script
la double authentification est verifiée au moment du login et demande le code uniquement si besoin
Bonjour,
Merci pour ta réponse, bon faut que je me replonge dedans car lors du lancement ça se termine en NameError: name 'api' is not defined au moment ou je reçois la demande d’autorisation sur mon téléphone, je dois avoir oublié un truc ou fait une erreur quelque part
tu es sur du login/mot de passe?
Salut,
Personellement j’ai l’erreur suivante après l’exécution du script :
Setup Time Zone
Py iCloud Services
Two-factor authentication required. Your trusted devices are:
0: SMS to *******99
Which device would you like to use? [0]: 0
Please enter validation code: ******
Failed to verify verification code
Traceback (most recent call last):
File "/home/pyicloud/.local/bin/tstpyicloud.py", line 37, in <module>
sys.exit(1)
NameError: name 'sys' is not defined
J’ai bien vérifié et essayé plusieurs fois, pas d’erreur au moment de rentrer le code.
J’ai installé click et lancé le script en Python3 sur les conseils de @Mips :
python3 /home/pyicloud/.local/bin/tstpyicloud.py
Niveau config, je suis sur une VM Debian 10 créé pour ce test sous Proxmox.
Pas de connexion https.
Si quelqu’un a une idée…
Merci.