Problème Localisation ios cloud

tu appuies bien sur le bouton d’authentification du cloud?

ici sur l’equipement du compte cloud :
Ioscloud - Jeedom

Hello,

Pour info j’ai la même chose. J’ai bien réinstallé (en beta) + dépendances mais rien au click et la même chose dans les logs (en debug)

les logs http.error.?
Si vous faîtes F12 pour la console du navigateur , il y a des erreurs au clic?

voici les logs http.error au clic, rien sur la console :

/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
Traceback (most recent call last):
File "/var/www/html/plugins/ioscloud/core/class/../../resources//ioscloud.py", line 30, in <module>
cloud = ioscloud.Ioscloud(opts.login, opts.password, jcall , opts.id)
File "/var/www/html/plugins/ioscloud/resources/ioscloud/main.py", line 43, in __init__
self._api = PyiCloudService(login, pwd,  cookies_directories)
File "/usr/local/lib/python3.7/dist-packages/pyicloud/base.py", line 228, in __init__
mkdir(self._cookie_directory, 0o700)
FileNotFoundError: [Errno 2] No such file or directory: '/var/www/html/plugins/ioscloud/resources/ioscloud/pyicloud/353'
1 « J'aime »

Merci pour le log.

c’est corrigé.

Reste à voir ce que cela donne pour le multicompte

C’est bon c’est passé !
Merci encore à toi

Hello @ZygOm4t1k

Merci pour la mise à jour du plugin :wink:

Ma config : RPi4 4Go
Jeedom : 4.2.7
Version ioscloud : 2022-01-10 12:20:43

J’ai un souci au niveau de l’étape 4 lorsque je clique sur « authentification » de la première fenêtre ! il ne se passe rien sur mon ibidule :slight_smile:

log http.error :

0000|[Mon Jan 10 13:56:50.063096 2022] [php7:warn] [pid 17291] [client 10.9.0.1:57686] PHP Warning:  count(): Parameter must be an array or an object that implements Countable in /var/www/html/core/ajax/eqLogic.ajax.php on line 455, referer: https://xxxxxxxx.eu.jeedom.link/index.php?v=d&m=ioscloud&p=ioscloud&id=535
0001|[Mon Jan 10 13:56:51.222240 2022] [php7:notice] [pid 17291] [client 10.9.0.1:57686] PHP Notice:  Undefined property: stdClass::$content in /var/www/html/plugins/ioscloud/3rparty/FindMyPhone.php on line 109, referer: https://xxxxxxxx.eu.jeedom.link/index.php?v=d&m=ioscloud&p=ioscloud&id=535
0002|[Mon Jan 10 13:56:51.222416 2022] [php7:warn] [pid 17291] [client 10.9.0.1:57686] PHP Warning:  Invalid argument supplied for foreach() in /var/www/html/plugins/ioscloud/3rparty/FindMyPhone.php on line 109, referer: https://xxxxxxx.eu.jeedom.link/index.php?v=d&m=ioscloud&p=ioscloud&id=535
0003|[Mon Jan 10 13:56:57.076355 2022] [php7:warn] [pid 9097] [client 10.9.0.1:60454] PHP Warning:  count(): Parameter must be an array or an object that implements Countable in /var/www/html/core/ajax/eqLogic.ajax.php on line 455, referer: https://xxxxxxx.eu.jeedom.link/index.php?v=d&m=ioscloud&p=ioscloud&id=535
0004|[Mon Jan 10 13:56:57.880459 2022] [php7:notice] [pid 9097] [client 10.9.0.1:60454] PHP Notice:  Undefined property: stdClass::$content in /var/www/html/plugins/ioscloud/3rparty/FindMyPhone.php on line 109, referer: https://xxxxxxxx.eu.jeedom.link/index.php?v=d&m=ioscloud&p=ioscloud&id=535
0005|[Mon Jan 10 13:56:57.880717 2022] [php7:warn] [pid 9097] [client 10.9.0.1:60454] PHP Warning:  Invalid argument supplied for foreach() in /var/www/html/plugins/ioscloud/3rparty/FindMyPhone.php on line 109, referer: https://xxxxxxxxxxx.eu.jeedom.link/index.php?v=d&m=ioscloud&p=ioscloud&id=535
0006|sh: 1: v1: not found
0007|sh: 1: j%9n.~YXMZ: not found
0008|[2022-01-10 13:57:15]DEBUG : Using session file /var/www/html/plugins/ioscloud/resources/ioscloud/pyicloud/None/.session
0009|[2022-01-10 13:57:15]WARNING : Failed to read cookiejar /var/www/html/plugins/ioscloud/resources/ioscloud/pyicloud/None/
0010|[2022-01-10 13:57:15]DEBUG : Authenticating as
0011|[2022-01-10 13:57:15]DEBUG : POST https://idmsa.apple.com/appleauth/auth/signin {"accountName": "", "password": "********", "rememberMe": true, "trustTokens": []}
0012|[2022-01-10 13:57:15]DEBUG : Starting new HTTPS connection (1): idmsa.apple.com:443
0013|[2022-01-10 13:57:16]DEBUG : https://idmsa.apple.com:443 "POST /appleauth/auth/signin?isRememberMeEnabled=true HTTP/1.1" 200 None
0014|[2022-01-10 13:57:16]DEBUG : Saved session data to file
0015|Traceback (most recent call last):
0016|File "/var/www/html/plugins/ioscloud/core/class/../../resources//ioscloud.py", line 30, in 
0017|cloud = ioscloud.Ioscloud(opts.login, opts.password, jcall , opts.id)
0018|File "/var/www/html/plugins/ioscloud/resources/ioscloud/main.py", line 43, in __init__
0019|self._api = PyiCloudService(login, pwd,  cookies_directories)
0020|File "/usr/local/lib/python3.7/dist-packages/pyicloud/base.py", line 268, in __init__
0021|self.authenticate()
0022|File "/usr/local/lib/python3.7/dist-packages/pyicloud/base.py", line 322, in authenticate
0023|headers=headers,
0024|File "/usr/lib/python3/dist-packages/requests/sessions.py", line 581, in post
0025|return self.request('POST', url, data=data, json=json, **kwargs)
0026|File "/usr/local/lib/python3.7/dist-packages/pyicloud/base.py", line 103, in request
0027|self.cookies.save(ignore_discard=True, ignore_expires=True)
0028|File "/usr/lib/python3.7/http/cookiejar.py", line 1885, in save
0029|with open(filename, "w") as f:
0030|IsADirectoryError: [Errno 21] Is a directory: '/var/www/html/plugins/ioscloud/resources/ioscloud/pyicloud/None/'

Log ioscloud :

0076|[2022-01-10 13:57:04]DEBUG : Create commande
0077|[2022-01-10 13:57:04]DEBUG : Cookie d'identification non présent
0078|[2022-01-10 13:57:04]DEBUG : stop create commande
0079|[2022-01-10 13:57:14]DEBUG : Create commande
0080|[2022-01-10 13:57:14]DEBUG : Cookie d'identification non présent
0081|[2022-01-10 13:57:14]DEBUG : Check if dir exist /var/www/html/plugins/ioscloud/core/class/../../resources/ioscloud/pyicloud
0082|[2022-01-10 13:58:04]DEBUG : Create commande
0083|[2022-01-10 13:58:04]DEBUG : Cookie d'identification non présent
0084|[2022-01-10 13:58:04]DEBUG : stop create commande

Merci par avance pour ton aide !

Xav

Salut @ZygOm4t1k !

Merci pour la modif ! Pour ma part tout fonctionne comme avant sur mon iPhone ! Je test les autrres device ce soir !

Hello,
Merci pour la refonte de ce plugin bien utile.
J’ai réactivé 2 comptes existants sans problème, mais pour le nouveau compte icloud de mon fils, ca ne passe pas : Missing apple_id field
C’est le seul compte avec un mdp avec des espaces. Sont-ils bien gérés?
Merci d’avance.

[2022-01-10 18:04:42][DEBUG] : Create commande
[2022-01-10 18:04:42][DEBUG] : Cookie d'identification présent
[2022-01-10 18:04:42][DEBUG] : Check if dir exist /var/www/html/plugins/ioscloud/core/class/../../resources/ioscloud/pyicloud
[2022-01-10 18:04:42][DEBUG] : Using session file /var/www/html/plugins/ioscloud/resources/ioscloud/pyicloud/1652/xxx.session
[2022-01-10 18:04:42][DEBUG] : Read cookies from /var/www/html/plugins/ioscloud/resources/ioscloud/pyicloud/1652/xxx
[2022-01-10 18:04:42][DEBUG] : Authenticating as xxx@xxx
[2022-01-10 18:04:42][DEBUG] : POST https://idmsa.apple.com/appleauth/auth/signin {"accountName": "xxx@xxx", "password": "********", "rememberMe": true, "trustTokens": []}
[2022-01-10 18:04:42][DEBUG] : Starting new HTTPS connection (1): idmsa.apple.com:443
[2022-01-10 18:04:43][DEBUG] : https://idmsa.apple.com:443 "POST /appleauth/auth/signin?isRememberMeEnabled=true HTTP/1.1" 200 None
[2022-01-10 18:04:43][DEBUG] : Saved session data to file
[2022-01-10 18:04:43][DEBUG] : Cookies saved to /var/www/html/plugins/ioscloud/resources/ioscloud/pyicloud/1652/xxx
[2022-01-10 18:04:43][DEBUG] : POST https://setup.icloud.com/setup/ws/1/accountLogin {"accountCountryCode": null, "dsWebAuthToken": null, "extended_login": true, "trustToken": ""}
[2022-01-10 18:04:43][DEBUG] : Starting new HTTPS connection (1): setup.icloud.com:443
[2022-01-10 18:04:44][DEBUG] : https://setup.icloud.com:443 "POST /setup/ws/1/accountLogin HTTP/1.1" 400 70
[2022-01-10 18:04:44][DEBUG] : Saved session data to file
[2022-01-10 18:04:44][DEBUG] : Cookies saved to /var/www/html/plugins/ioscloud/resources/ioscloud/pyicloud/1652/xxx
[2022-01-10 18:04:44][DEBUG] : {'success': False, 'error': 'Missing apple_id field'}
[2022-01-10 18:04:44][ERROR] : Missing apple_id field
[2022-01-10 18:05:07][DEBUG] : Create commande
[2022-01-10 18:05:07][DEBUG] : Cookie d'identification présent

Bonjour @ZygOm4t1k,

Heureux que ce plugin évolue à nouveau.
J’ai effectué la mise à jour du plugin en bêta (2022-01-10 12:20:43) sur une « smart » sous Buster et Jeedom v 4.1.28.
Je n’arrive pas à passer l’étape de l’installation des dépendances, je reviens toujours en NOK.
Je joins mon Log.

Merci d’avance pour ton aide.

Olivier.
ioscloud_dependancy.txt (14,8 Ko)

même cas que toi, le compte qui pose soucis a un identifiant en « prénom.2eprénom.nom@xxx.com »
je ne sais pas si c’est une piste

Cas similaire avec une esperluette (&) dans le mot de passe.

Voici les logs de mon côté après avoir enregistré le code:
(j’ai juste enlevé les infos qu’il a réussi à récupérer (nom, prénom, mail, etc)

[2022-01-11 09:55:28][DEBUG] : Create commande
[2022-01-11 09:55:28][DEBUG] : Cookie d'identification présent
[2022-01-11 09:55:28][DEBUG] : Check if dir exist /var/www/html/plugins/ioscloud/core/class/../../resources/ioscloud/pyicloud
[2022-01-11 09:55:28][DEBUG] : Using session file /var/www/html/plugins/ioscloud/resources/ioscloud/pyicloud/596/xxxxxxgmailcom.session
[2022-01-11 09:55:28][DEBUG] : Read cookies from /var/www/html/plugins/ioscloud/resources/ioscloud/pyicloud/596/xxxxxxgmailcom
[2022-01-11 09:55:28][DEBUG] : Checking session token validity
[2022-01-11 09:55:28][DEBUG] : Checking session token validity
[2022-01-11 09:55:28][DEBUG] : POST https://setup.icloud.com/setup/ws/1/validate null
[2022-01-11 09:55:28][DEBUG] : Starting new HTTPS connection (1): setup.icloud.com:443
[2022-01-11 09:55:29][DEBUG] : https://setup.icloud.com:443 "POST /setup/ws/1/validate HTTP/1.1" 421 441
[2022-01-11 09:55:29][DEBUG] : Saved session data to file
[2022-01-11 09:55:29][DEBUG] : Cookies saved to /var/www/html/plugins/ioscloud/resources/ioscloud/pyicloud/596/xxxxxxgmailcom
[2022-01-11 09:55:29][DEBUG] : Misdirected Request (421). Retrying ...
[2022-01-11 09:55:29][DEBUG] : POST https://setup.icloud.com/setup/ws/1/validate null
[2022-01-11 09:55:29][DEBUG] : https://setup.icloud.com:443 "POST /setup/ws/1/validate HTTP/1.1" 421 474
[2022-01-11 09:55:29][DEBUG] : Saved session data to file
[2022-01-11 09:55:29][DEBUG] : Cookies saved to /var/www/html/plugins/ioscloud/resources/ioscloud/pyicloud/596/xxxxxxgmailcom
[2022-01-11 09:55:29][ERROR] : Authentication required for Account. (421)
[2022-01-11 09:55:29][DEBUG] : Invalid authentication token
[2022-01-11 09:55:29][DEBUG] : Invalid authentication token, will log in from scratch.
[2022-01-11 09:55:29][DEBUG] : Authenticating as xxx.xxx@gmail.com
[2022-01-11 09:55:29][DEBUG] : POST https://idmsa.apple.com/appleauth/auth/signin {"accountName": "xxx.xxx@gmail.com", "password": "********", "rememberMe": true, "trustTokens": []}
[2022-01-11 09:55:29][DEBUG] : Starting new HTTPS connection (1): idmsa.apple.com:443
[2022-01-11 09:55:29][DEBUG] : https://idmsa.apple.com:443 "POST /appleauth/auth/signin?isRememberMeEnabled=true HTTP/1.1" 200 None
[2022-01-11 09:55:29][DEBUG] : Saved session data to file
[2022-01-11 09:55:29][DEBUG] : Cookies saved to /var/www/html/plugins/ioscloud/resources/ioscloud/pyicloud/596/xxxxxxgmailcom
[2022-01-11 09:55:29][DEBUG] : POST https://setup.icloud.com/setup/ws/1/accountLogin {"accountCountryCode": "FRA", "dsWebAuthToken": "RU8oyjjm1XltnxEHhI2dhEFECoI9GQ8ldVdvpo5ZRpriB0YXBFRvEaYWs1XoIX4dQ7Ci7KjHinX4P30lmui4rAdkbQprPdQhh+l0LatWzgNJdD9mhwd19bani0shInIQqT3ssYvnVSD5KPifsoYRk0GUG9CD7l5egJ2t1H8MP5U7GkpXIPRjg1dFqD98Zh6IkLLkTWMLjBAv39qWDX2Og34uNdVL03Kx1lz2quVGvooegZdI+nBITT+hUENJgMoigX3LeLoTyB9iFozK9KpBI2LDMQLaQTsNTv3kOsFrZt2nbBQ0n6VeHbgLpHBwu+AeLYuCrqxo8wPELT0c798if21pm4uTyVHt0rCkc7RLdbkzXRPuBM8DnrRajFOKs0XiWoiVQCG+P5H0kdc9GCCzLV33njuGNzu5xLzOh+QuwsgScn+Klhnykx/0VRj2yHdDNqLOgmaLj7a3TTJy8BBXc14ywIJkkh+h5zSAx2yt+Gv7WzdgdtPTO80TF+cmPVs4nZllBoQWYP5szshCHlv9F0+shBV1notoIkhlr2mwiMA3IHv90DNbZVTRliM30mIN+7njIh8Hu5Bi/Lb3/rvTNeAoW8/LURAukv5isvOkhT8ZIVt6ajFQeYCzsBFxnERmKsQmdB9fc9Hn6n1sMQiSYW5WtRdN9Y8EMJeX1YAqhOZGLlzhNKaTOu2CiQ+Pc5jk01sT6VOzNQgiwt5VtnK6lU3zosqdmyPzP3EF6rBxWd12vgV30CSnWVXjJfzl6422lIXt4uFQMtsdgvlizQSEJ0mnSGahWuJ6jFzf1IhgwbOFS9R7RLDngWbUJ+KOBFi8uwB14DLUvxT2pdnonaaaAhdmv/aUT+IbwWo7RZGMijYJ7tADYMjYh3AHhg7HpKWZ2vSsYRVUFd3O6JErodlBkKcR1c6RPzCWBDS7yqXQFeodP36u3iJErPvCCJRlwSvJyA1xgod+s379GL8o9m7ui3T30Go2CoqXm/XHhMt1+r2afEYACMqoUcS+mQ==", "extended_login": true, "trustToken": ""}
[2022-01-11 09:55:30][DEBUG] : https://setup.icloud.com:443 "POST /setup/ws/1/accountLogin HTTP/1.1" 200 1624
[2022-01-11 09:55:30][DEBUG] : Saved session data to file
[2022-01-11 09:55:30][DEBUG] : Cookies saved to /var/www/html/plugins/ioscloud/resources/ioscloud/pyicloud/596/xxxxxxgmailcom
[2022-01-11 09:55:30][DEBUG] : Authentication completed successfully
[2022-01-11 09:55:30][DEBUG] : Two-factor authentication required.
[2022-01-11 09:55:45][DEBUG] : Send to test to jeedom
[2022-01-11 09:55:45][DEBUG] : Send to jeedom :  {'action': 'auth', 'infos': '{"id": "596"}'}
[2022-01-11 09:55:45][DEBUG] : Starting new HTTP connection (1): 127.0.0.1:80
[2022-01-11 09:55:45][DEBUG] : http://127.0.0.1:80 "POST /plugins/ioscloud/core/php/ioscloud.php?apikey=kuBvPHgAPAtn1CaXRtkXqkUE9pPracUg HTTP/1.1" 403 199
[2022-01-11 09:55:45][DEBUG] : Status Code :  403
[2022-01-11 09:55:45][ERROR] : Error on send request to jeedom, return code 403 - Forbidden
[2022-01-11 09:55:45][ERROR] : Calling jeedom failed
[2022-01-11 09:55:45][DEBUG] : POST https://idmsa.apple.com/appleauth/auth/verify/trusteddevice/securitycode {"securityCode": {"code": false}}
[2022-01-11 09:55:45][DEBUG] : https://idmsa.apple.com:443 "POST /appleauth/auth/verify/trusteddevice/securitycode HTTP/1.1" 400 None
[2022-01-11 09:55:45][DEBUG] : Saved session data to file
[2022-01-11 09:55:45][DEBUG] : Cookies saved to /var/www/html/plugins/ioscloud/resources/ioscloud/pyicloud/596/xxxxxxgmailcom
[2022-01-11 09:55:45][DEBUG] : {'service_errors': [{'code': '-21669', 'title': 'Incorrect Verification Code', 'message': 'Incorrect verification code.', 'suppressDismissal': False}], 'hasError': True}
[2022-01-11 09:55:45][DEBUG] : Code verification successful.
[2022-01-11 09:55:45][DEBUG] : GET https://idmsa.apple.com/appleauth/auth/2sv/trust
[2022-01-11 09:55:45][DEBUG] : https://idmsa.apple.com:443 "GET /appleauth/auth/2sv/trust HTTP/1.1" 302 None
[2022-01-11 09:55:45][DEBUG] : Starting new HTTP connection (1): www.apple.com:80
[2022-01-11 09:55:45][DEBUG] : http://www.apple.com:80 "GET /filenotfound HTTP/1.1" 301 0
[2022-01-11 09:55:45][DEBUG] : Starting new HTTPS connection (1): www.apple.com:443
[2022-01-11 09:55:46][DEBUG] : https://www.apple.com:443 "GET /filenotfound HTTP/1.1" 404 6857
[2022-01-11 09:55:46][DEBUG] : Saved session data to file
[2022-01-11 09:55:46][DEBUG] : Cookies saved to /var/www/html/plugins/ioscloud/resources/ioscloud/pyicloud/596/xxxxxxgmailcom
[2022-01-11 09:55:46][ERROR] : Not Found (404)
[2022-01-11 09:55:46][ERROR] : Session trust failed.
[2022-01-11 09:55:46][DEBUG] : Code validation result: False
[2022-01-11 09:55:46][DEBUG] : Failed to verify security code

J’ai bien entendu vérifié à plusieurs reprises que je n’avais pas d’erreur lors de la saisi, mais j’ai des logs identiques à chaque essai

EDIT :
J’ai supprimé le dossier du plugin puis réinstaller et c’est passé !

Bon je confirme que mon souci venait du password dans lequel il y avait un caractère spécial (~)
@ZygOm4t1k pourrais tu stp regarder pour faire un escape ou addslashes ?

Merci d’avance

Xav

Merci pour ton retour je vais tester ce soir, j’ai aussi un caractère spécial dans le mdp

Je crois qu’un ajout de simples quotes devrait suffire.
Je ne peux pas tester de suite, mais le bouton Athentification est a nouveau long a rendre la main.
Ca semble donc fonctionner.

$cmd .= ' --password ' . "'".$eq->getConfiguration('iospass')."'";

Sauf si il y a une simple quote dans la mot de passe :smiley:

2 « J'aime »

J’ai changé mon pwd du coup donc je ne peux pas retester non plus mais pour ceux qui veulent essayer, petite précision, cette ligne se trouve dans le fichier plugins/ioscloud/core/class/ioscloud.class.php ligne 114 :wink:

Par contre j’ai un autre souci et je ne trouve pas la solution !
Je suis bien connecté à Apple car je récupère dans les logs ioscloud les informations de tous mes devices (nom, batterie, localisation…)
Par contre à la sauvegarde de l’équipement « compte iCloud » mes devices ne sont pas créés !
Dans le log http.error :

0000|[Tue Jan 11 17:43:18.160309 2022] [php7:warn] [pid 31509] [client 192.168.xxx.xxx:54257] PHP Warning:  count(): Parameter must be an array or an object that implements Countable in /var/www/html/core/ajax/eqLogic.ajax.php on line 455, referer: http://192.168.xxx.xxx/index.php?v=d&m=ioscloud&p=ioscloud&id=549
0001|[Tue Jan 11 17:43:19.257891 2022] [php7:notice] [pid 31509] [client 192.168.xxx.xxx:54257] PHP Notice:  Undefined property: stdClass::$content in /var/www/html/plugins/ioscloud/3rparty/FindMyPhone.php on line 109, referer: http://192.168.xxx.xxx/index.php?v=d&m=ioscloud&p=ioscloud&id=549
0002|[Tue Jan 11 17:43:19.258015 2022] [php7:warn] [pid 31509] [client 192.168.xxx.xxx:54257] PHP Warning:  Invalid argument supplied for foreach() in /var/www/html/plugins/ioscloud/3rparty/FindMyPhone.php on line 109, referer: http://192.168.xxx.xxx/index.php?v=d&m=ioscloud&p=ioscloud&id=549

A priori, il n’arrive pas à lire le json !
Pour mémoire jeedom 4.2.7

D’autres ont ce symptôme ?

Xav

Cette modification fonctionne chez moi. Merci :slight_smile:

Edit: Peut-être que passer le mdp en base64 serait plus judicieux. Il ne serait pas en clair dans la command line et permettrait de passer des caractères spéciaux