Mips2648 a écrit : ↑22 juil. 2019, 19:53
il s'agit soit un plantage lors du download, soit un plantage lors de la sauvegarde dans le dossier, peut-être un problème de droit d'écriture... mais pourtant le plugin créé les sous-dossiers avec des permissions 0777 (donc full: read, write, execute); je manque de log pour pouvoir dire où exactement, je viens d'en rajouter dans la dernière beta, peux-tu installer cette version (2019-07-22 19:50:24) et me donner ton log avec l'erreur?
sinon, ton jeedom a bien les droits sudo (page santé) ?
qlq chose de particulier dans ton install?
tu tournes jeedom sur quoi?
Effectivement, je n'avais pas vu le MP.
Jeedom tourne sur un NAS Synology en Debian CHRoot avec PHP7 et Python 2.7.9.
Dans "plugins/arlo/data/snapshots/" il y a 4 dossiers qui correspondent aux numéros de série des caméras et tout appartient à www-data:www-data en rwxrwxr-x. other ne peux pas écrire. Le plugin est d'origine, je n'ai rien modifié.
J'ai bien les droits de sudo dans santé. D'ailleurs, tout est clean dans santé.
hmm quelque chose de spécial dans mon install... la racine de mon host apache est /var/www/jeedom/, j'utilise des ports différents de 80 et 443.
Tout ceci ne pose pas problème, pour le reste en tout cas.
En fait c'est lié :
Tu utilises le chemin vers le jeedom en dur dans le code python, alors que tu utilises des chemins relatifs avec __DIR__ et __FILE__ dans le code PHP.
Code : Tout sélectionner
def ArloEventHandler(basestation, stop_handler_event, reconnect_event):
def DownloadSnapshot(arlo, url, deviceId):
now = datetime.today()
filepath = '/var/www/html/plugins/arlo/data/snapshots/'+deviceId+'/'+now.strftime("%Y%m%d%H%M%S%f")+'.jpg'
arlo.DownloadSnapshot(url, filepath)
tmp = {}
tmp["download"] = "DownloadSnapshot"
tmp["deviceId"] = deviceId
tmp["filepath"] = filepath
jeedomCom.send_change_immediate(tmp)
Sauf que mon Jeedom n'est pas dans /var/www/html, mais dans /var/www/jeedom.
Je peux te proposer cette modification du fichier arlod.py :
Code : Tout sélectionner
filepath = os.path.dirname(os.path.abspath(__file__))+'/../../data/snapshots/'+deviceId+'/'+now.strftime("%Y%m%d%H%M%S%f")+'.jpg'
La prise de snapshot et l'historique fonctionne pour moi avec cette modif.
Ton code PHP et Python est un plaisir à lire. J'y connais rien en Python, mais ça sent la maitrise du PHP.