Problème Localisation ios cloud

Résolu,
je suis passé par le cron du raspberry.
Ca fera la rue Michel
Merci a vous pour l’aiguillage

Bonjour,

En effet, le script tourne très bien tout seul, par contre c’est un vrai plus de pouvoir changer la fréquence en fonction de plusieurs état: mes cas de figure par exemple: perte du nut, moins de 5 km, plus de 20 km, plus de 100km …

donc j’essaye d’implementer les cron différents mais quand j’essaye de lance « Cron01 » pour l’inscription dans le crontab depuis le plugin script, j’obtiens aussi la même erreur, je suppose que j’utilise mal la syntax donnée:

Est ce que l’un de vous pourrait m’aider à débugger ?

Merci d’avance

J’ai un scénario qui règle la fréquence de rafraichissement en fonction de l’heure de la journée.
Toutes les minutes lorsque mon fils sort du collège pour me prévenir s’il rate son bus, toutes les heures le reste du temps et stoppé la nuit .
Pour le mien c’est pareil, je stoppe le cron lorsque je suis à la maison.

J’ai aussi un script pyicloud qui ne sert qu’à remonter le niveau de batterie lorsque l’iPhone est connecté sur son dock. Il s’active lorsqu’il est en charge et coupe la prise lorsqu’il est chargé à 100% (et le cron repasse à 0).

Je m’aperçois que dans mon crontab j’ai paramétré mes commandes comme ça :
python NomScript.py au lieu de python3 NomScript.py

Ca fonctionne pourtant parfaitement. Il vaut mieux que je repasse en Python3 ou je peux laisser comme ça ? (Rpi4, Buster)

J’ai un scénario qui règle la fréquence de rafraichissement en fonction de l’heure de la journée.
Toutes les minutes lorsque mon fils sort du collège pour me prévenir s’il rate son bus, toutes les heures le reste du temps et stoppé la nuit .

Effectivement, j’ai moi aussi la même erreur que @scotty92fr et @flou quand je passe les commandes dans le plugin script. Je n’ai pas testé avec SSHCommander. C’est le plugin que tu utilises?

Je m’aperçois que dans mon crontab j’ai paramétré mes commandes comme ça :
python NomScript.py au lieu de python3 NomScript.py

Ca fonctionne pourtant parfaitement. Il vaut mieux que je repasse en Python3 ou je peux laisser comme ça ? (Rpi4, Buster)

J’ai suivi les conseils de Mips et j’utilise python 3 mais python fonctionne aussi :

Oui.
En ssh ça fonctionne ?
Avec SSHCommander j’ai entré la même commande que en SSH.
La seule différence avec vous c’est que je ne suis pas sur la même machine mais je ne vois pas ce que ça peut changer.

En effet c’est bien en lançant par le plugin script que cela ne fonctionne pas tel que.
Par contre en mettant la commande dans un bash et en le lançant par le plugin script cela fonctionne à merveille

Merci Arcameca

J’ai du mal avec l’utilisation du script pyicloud, aléatoirement il y a une demande d’autorisation, meme sans reboot.
le WAF n’est absolument pas assuré :grin:

Vous avez aussi ces demandes aléatoire ?

j’ai eu le 1er jour. Très capricieux. Depuis plus rien. Ca fonctionne sans souci chez moi.

Pas de souci pour moi non plus, je remet le fichier temp pyicloud a chaque redemarage

Bonjour scotty92fr,
je débute avec Jeedom, pourrais-tu développer la méthode ? Cela fait plusieurs jours que je lis et relis tous les messages et je fais des essais qui ne mènent à rien… J’ai fait l’installation des paquets en ssh, c’est ensuite que cela se gâte… j’ai copier les lignes dans le plugin script avec mes infos sans trop savoir si tout était correcte et lancer la commande en ssh…
Je suis sur RPI4, sous Buster et jeedom dernière version.
Si quelqu’un pouvais détailler la procédure pour ceux qui ne débutent, car certaines choses sont évidentes pour vous.
Exemple « en mettant la commande dans un bash et en le lançant par le plugin script " ou " ID du device »
J’ai fait aussi des recherches sur google, mais il y a tellement de choses différentes…
Merci de votre aide et Bravo à toute la communauté !

Bonjour stepgera,

Je suis un peu dans le même cas que toi, je débute sur ce genre de sujet donc des fois c’est pas facile à suivre :slightly_smiling_face:
Pour la partie ID du device, quand je lance le script en SSH via putty, je vois dans le terminal une liste de device associé à mon compte iCloud avec un numéro associé. Le numéro en question est l’id du device que tu veux pouvoir localiser. Donc si tu as un iPhone, un iPad et un iMac, tu devrais avoir un truc du genre
1 - iPhone
2 - ipad
3 - iMac

Et grâce à ça, tu sais que si tu veux pouvoir localiser ton iPhone, il faudra renseigner le 1 dans le script.
Bon c’est vraiment un exemple parce que je ne me rappelle pas de la syntaxe exacte pour la présentation des ID mais j’espère que ça t’aide à comprendre l’idée.

Je m’apercois que mon script se met dans le répertoire suivant:
/var/www/html/plugins/script/data/

J’ai une jeedom smart. Est-ce que cela a un impact? je vois que vous avez tous le script sous /home/jeedom…

Bonjour,
Je ne suis vraiment pas un pro mais j ai réussi a faire tourner le script pour qu il me retourne la localisation de l’ iphone, l etat de batterie de mon iphone, ipad et macbook , gerer la fréquence de razfraichissement avec jeedom et faire sonner le 1er iphone de votre compte icloud.
Donc ceci n est pas un tuto mais uniquement les étapes que j ai suivi pour arriver a mes fin. Je ne pourrais garantir le bon fonctionnement chez vous (j utilise un rpi4 sous buster 64)
donc en 1er j installe pyicloud avec la commande:

python3 -m pip install pyicloud

je prend comme example le script donné plus haut par Dartagnan, Merci a lui

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)

Je le crée a l aide d un éditeur de texte : tstpyicloud.py
J édite le fichier tstpyicloud.py en renseigant mon identifiant et mon mot de passe icloud.

Perso j ai placé comme indiqué par Dartagnan le script dans /Home/jeedom/.
Je vous conseil d utilser le script de Dartagnen comme base au debut, Il faut juste y renseigner url de geotrav (voir un peux plus bas)
Et il vous faut repéré dans le script cette ligne:

iphone_loc = api.devices[1].location()

Dans mon cas 1 qui correspond a l iphone chez moi. (on va voir comment identifier l id de nos appareil mac un peut plus loin)
Pour lancer le script:

sudo python3 /home/jeedom/tstpyicloud.py

Changer l’ user si besoin, chez moi jeedom

Lors du premier lancement on vous demandera quel device utiliser (chez moi 0)

Setup Time Zone
Py iCloud Services
Two-factor authentication required. Your trusted devices are:
  0: SMS to *******48
Which device would you like to use? [0]: 0

Bizzarement mon device iphone est 1 mais pour que cela marche je dois mettre 0(0: SMS to *******48)
Il vous demande ensuite un code
Vous recevez une demande d autorisation venant d apple, on accepte
On attend quelque seconde pour recevoir un code donné par sms sur votre iphone ne pas tenir compte des autre code juste celui du sms que l on renseigne donc.
J ai fais cette commande pour avoir les permissions

sudo chgrp www-data /home/jeedom

J ai ensuite copié le fichier pycloud temp pour le réinjecter a chaque démarage car ce fichier temp est vidé (apple vous redemandera une autorisation par sms si il n y a plus le dossier temp). Merci a remi69 pour la solution

sudo cp -r /tmp/pyicloud /home/jeedom/pyicloud

Changer l’ user si besoin, chez moi jeedom.
et on le réinjecte a chaque démarage:
J ai crée avec le plugin script dans jeedom:

sudo cp -r /home/jeedom/pyicloud /tmp/pyicloud

Changer l’ user si besoin, chez moi jeedom.
J ai fais un scenario avec comme déclencheur #start#


Avec une action qui lance notre script précédemment créer.

Après on crée un bash : Merci a [arcameca] pour son aiguillage

cd /home/jeedom
nano lancement.sh

et y inscrire

cd /home/jeedom/
sudo python3 tstpyicloud.py

Changer l’ user si besoin, chez moi jeedom.
Ensuite je donne les droits pour le bash lancement.sh

chmod 755 lancement.sh

On peux tester

sh lancement.sh

Mettre des logs

mkdir /home/jeedom/logs

Changer l’ user si besoin, chez moi jeedom.

*Pour installer dans le crontab de buster donc non geré par jeedom toute les 10mn
(Si vous voulez gérer avec jeedom, ne pas faire cette étape, c est juste après)

sudo crontab -e

et y inscrire selon ses besoins

*/10 *  *  *  * bash /home/jeedom/lancement.sh > /home/jeedom/logs/log.txt 2>&1

Toute les 10mn

*/5 *  *  *  * bash /home/jeedom/lancement.sh > /home/jeedom/logs/log.txt 2>&1

Toute les 5mn…

*  *  *  *  * bash /home/jeedom/lancement.sh > /home/jeedom/logs/log.txt 2>&1

Toute les mn…

Changer l’ user si besoin, chez moi jeedom.
On peux ainsi mettre en place 2 scripts, 1 pour la localisation et 1 pour les remonté de batterie avec des crons different
Pour lister vos crontab

sudo crontab -l

*Pour gérer les remonté d info (Cron) avec jeedom:
on peux lancer notre bash précédemment créer (dans notre example: lancement.sh)
avec le plugin script,

sh /home/jeedom/lancement.sh


voici un example
Du coup on peux faire un scenario pour lancer nos scripts comme bon nous semble.

Voila pour ce qui est de la mise en place.
Pour la personnalisation:
Une information a noté
chez moi lorsque je lance le script

Setup Time Zone
Py iCloud Services
0 :iPad Air: iPad DE FLO
1 :iPhone 8: iPhone de Flo
2 :MacBook Pro 13": MacBook Pro de Florent 

voici l id de vos device a remplacer dans le script a la ligne (donc 1 correpond a mon iphone)

iphone_loc = api.devices[1].location()

Personalisation: merci a prfalken
Donc pour la batterie
Pour l example, j ai créer un virtuel avec comme nom batterie iphone. Je lui ai mis une commandes info pour la batterie du iphone mais vous pouvez rajouter d autre devices (pour mon cas iphone, ipad et macbook)
voici deux capture qui vous montre les réglages a faire du coté de jeedom

j édite maintenant les url du script tstpyicloud.py pour que les infos batterie recuperés du script pointent sur votre virtuel précedemmant créer.
pour cela il faut utiliser l url qui est indiqué dans la premier page de votre virtuel qui se nomme « url de retour » (capture1)
Dans cette url , il vous faut indiquer id de la commande, vous trouvé celle ci juste devant votre commande (capture 2) dans mon example « 10983 »
ce qui donne pour cette id (qui correspond pour moi a la batterie de mon iphone)

https://.eu.jeedom.link/core/api/jeeApi.php?type=virtual&apikey=&id=10983&value=

On enlève ce qui se trouve après value= « #value# »
j ai déliberement enlever le lien pointant sur mon jeedom ainsi que mon apikey ceci étant propre a mon install.
on change la ligne avec l id de l appareil désiré

iphone_status = api.devices[1].status()

Pour la localisation, c est pareil, on met dans l url location du script, l url de geotrav « url a utiliser » (capture3)

https://.eu.jeedom.link/plugins/geotrav/core/api/jeeGeotrav.php?apikey=&id=1202&value=

Pareil, on enlève ce qui se trouve après value= « %LOCN »
on change la ligne avec l id de l appareil désiré

iphone_loc = api.devices[1].location()

Voici mon script:

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[1].location()
location = "%s,%s" % (iphone_loc['latitude' ] , iphone_loc['longitude'])
print(location)
#url location iphone
url = "%s%s" % ("https://eu.jeedom.link/plugins/geotrav/core/api/jeeGeotrav.php?apikey=m&id=1202&value=",location)
print(url)
requests.get(url)
iphone_status = api.devices[1].status()
battery = str(int(float(iphone_status['batteryLevel']) * 100))
print(battery+"%")
#url batterie iphone
url = "%s%s" % ("https://.eu.jeedom.link/core/api/jeeApi.php?type=virtual&apikey=&id=10983&value=",battery)
print(url)
requests.get(url)
ipad_status = api.devices[0].status()
battery2 = str(int(float(ipad_status['batteryLevel']) * 100))
print(battery2+"%")
#url batterie ipad
url = "%s%s" % ("https://.eu.jeedom.link/core/api/jeeApi.php?type=virtual&apikey==10989&value=",battery2)
print(url)
requests.get(url)
macbook_status = api.devices[2].status()
battery3 = str(int(float(macbook_status['batteryLevel']) * 100))
print(battery3+"%")
#url batterie macbook
url = "%s%s" % ("https://.eu.jeedom.link/core/api/jeeApi.php?type=virtual&apikey=&id=11194&value=",battery3)
print(url)
requests.get(url)

voila un example de script pour uniquement geotrav (dans l’exemple: iphone)

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[1].location()
location = "%s,%s" % (iphone_loc['latitude' ] , iphone_loc['longitude'])
print(location)
url = "%s%s" % ("https://eu.jeedom.link/plugins/geotrav/core/api/jeeGeotrav.php?apikey=&id=1202&value=",location)
print(url)
requests.get(url)

Pour uniquement la batterie (dans l’exemple: iphone, ipad et mackbook)

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_status = api.devices[1].status()
battery = str(int(float(iphone_status['batteryLevel']) * 100))
print(battery+"%")
#url du device geotrav
url = "%s%s" % ("https://.eu.jeedom.link/core/api/jeeApi.php?type=virtual&apikey=&id=10983&value=",battery)
print(url)
requests.get(url)
ipad_status = api.devices[0].status()
battery2 = str(int(float(ipad_status['batteryLevel']) * 100))
print(battery2+"%")
#url du device geotrav
url = "%s%s" % ("https://eu.jeedom.link/core/api/jeeApi.php?type=virtual&apikey=&id=10989&value=",battery2)
print(url)
requests.get(url)
macbook_status = api.devices[2].status()
battery3 = str(int(float(macbook_status['batteryLevel']) * 100))
print(battery3+"%")
#url du device geotrav
url = "%s%s" % ("https://eu.jeedom.link/core/api/jeeApi.php?type=virtual&apikey=&id=11194&value=",battery3)
print(url)
requests.get(url)

Du coup je propose ces codes uniquement pour faire sonner le 1er iphone du compte ou tout les iphones en même temps.
Le premier iphone:

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


# All Devices
    devices = api.devices
 
    # Just the iPhones
    iphones = []
 
    for device in devices:
        current = device.status()
        if "iPhone" in current['deviceDisplayName']:
            iphones.append(device)
 
    # The one to ring
    phone_to_ring = None
 
    if len(iphones) == 0:
        tts("No iPhones found in your account")
        
 
    elif len(iphones) == 2:
        phone_to_ring = iphones[0]
        phone_to_ring.play_sound()
        
 
    elif len(iphones) > 2:
        for phone in iphones:
            phone_to_ring = phone
            phone_to_ring.play_sound()
            tts("Sending ring command to the phone now")

Tous les iphone en même temps:

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


# All Devices
    devices = api.devices
 
    # Just the iPhones
    iphones = []
 
    for device in devices:
        current = device.status()
        if "iPhone" in current['deviceDisplayName']:
            iphones.append(device)
 
    # The one to ring
    phone_to_ring = None
 
    if len(iphones) == 0:
        tts("No iPhones found in your account")
        
 
    elif len(iphones) == 1:
        phone_to_ring = iphones[0]
        phone_to_ring.play_sound()
        
 
    elif len(iphones) > 1:
        for phone in iphones:
            phone_to_ring = phone
            phone_to_ring.play_sound()
     

Si quelqu un de plus calé passe par là…
Bonne année a tous
@+

7 « J'aime »

Salut K4no,

Merci pour ces infos.
Je vais regarder cela de plus près…

Bonne fin d’année !
Stepgera

Salut Flou ,

waouh ! Merci pour ta réponse rapide et le temps passé à détailler tout cela !

J’ai lu attentivement, je vais tester demain… J’espère, si j’ai les idées claires :joy:
J’ai une question, comment tu places le script dans /Home/jeedom/ ? Je viens de regarder avec jeexplorer, mais je ne vois pas le dossier… Oui je sais, je pars de loin !

Encore merci de ton aide,
Bon réveillon à tous !
stepgera

Je viens de voir que l’on peut utiliser Filezilla !

Bonne soirée à tous !
Stepgera

Bonjour @stepgera, tout est dit, je n’ai rien a rajouter par rapport a ce que @flou a écrit.

Juste peut être que pour créer et tester manuellement les différents scripts, il est plus simple d’utiliser l’accès en ssh.

je vous souhaite un bon réveillon
à bientot

Bonjour et Meilleurs vœux à tous !

Voici quelques nouvelles du front,
Après avoir suivi la procédure de Flou (encore merci à lui) et aux autres bien sûr.

Cela marche pour moi avec la commande :
python /home/pi/tstpyicloud.py ou python3 /home/pi/tstpyicloud.py et non : sudo python3 /home/pi/tstpyicloud.py. Chose étrange la liste et les ID sont différents suivant la commande…

J’ai cependant un message bizarre avec la commande python3 :
/usr/lib/python3/dist-packages/requests/init.py:91: RequestsDependencyWarning: urllib3 (1.26.7) or chardet (3.0.4) doesn’t match a supported version!
RequestsDependencyWarning)
Je ne sais pas trop quoi faire…

Sinon j’ai adapté la procédure « Bash », j’ai enlevé Sudo, j’espère que je n’ai pas fait de boulette…

J’arrive à avoir la remontée de la batterie qui s’affiche dans Jeedom. :sweat_smile:

Pour la localisation, j’ai un retour des coordonnées dans Putty, mais pas dans Jeedom :
« Google Maps Platform rejected your request. Invalid request. Invalid ‹ q › parameter. » :thinking:
Si quelqu’un à une idée ?

Ensuite je me demande comment on fait avec plusieurs comptes iCloud différents ? Même si je n’en suis pas encore là.
Idem pour les scripts avec des « cron » différents pour localisation et batterie par exemple.

Je confirme qu’il faut le code SMS et non l’autre et plusieurs essais pour avoir la liste de mes appareils dans Putty.

Bon, je vais continuer mes investigations,
Merci à tous,
Stepgera

Bonjour @stepgera,

J’ai également suivi la procédure de @flou et pour moi ca fonctionne très bien maintenant. Merci à toi Flou !
Concernant ton problème de version, je ne peux pas t’aider, je n’ai pas rencontré ce problème et surtout je suis pas assez calé =)

Pour ton problème lié à google Maps, il faut que tu vérifies le google cloud platform associé à ton compte google pour voir si tu as les bons APIs. Je pense que tout est expliqué dans la doc du plugin Localisation et Trajet.

Mon exemple :

Concernant les multiples Icloud. J’ai créé deux scripts python différents, un par Icloud.
Iphone1.py
iphone2.py

et ensuite, j’ai créé deux bash de lancement, un pour chaque script
Lancement_Iphone1.sh
Lancement_Iphone2.sh

Pour le cron, je n’ai pas géré ca de la même manière que Flou, j’ai créé 2 scénarios qui vont lancer chacun un script. Dans mon cas, j’utilise également la présence via homebridge, et je veux récupérer les localisations toutes les 15mn uniquement quand homebridge me détecte comme absent. Ca m’évite de requêter la nuit quand je suis tranquillement en train de dormir par exemple :slight_smile:
Ca permet également en cas de problème, comme si ca venait a me demander à nouveau le code SMS à chaque fois, de pouvoir facilement désactiver le lancement du script meme si je n’ai pas accès à la box. Si je suis au boulot, ca va être difficile de lancer putty pour stopper le cron de la box ou du rasp. Avec un scénario, j’ai juste à les désactiver.

En espérant que ca t’aide un peu.

Merci K4no pour ton retour rapide.

Je vais regarder du côté des Apis.

Effectivement tout simple pour les comptes Icloud et les bash de lancement.

Peux-tu m’expliquer ta méthode pour la présence avec Homebridge ?
J’utilise des automations, mais j’ai un souci avec celles de certains membres de la famille qui ne fonctionnent pas…

Encore, merci.