stipower Posté(e) le 4 mars Signaler Partager Posté(e) le 4 mars (modifié) Il y a 9 heures, Lazer a dit : J'ai pas trop le temps de relire ton code en ce moment, si tu es pressé, regarde ce que fait le code source de mon QuickApp, dans le fichier Library - Enphase v2.00.lua dans la function Enphase:getToken() Salut Lazer, Merci d'avoir répondu. J'ai déjà pas mal étudié ton code tout le dimanche. Je n'ai pas les compétences pour tout comprendre et l'adapter à la HC2. Mais je ne suis pas pressé, donc quand tu auras le temps à l'occaz Modifié le 4 mars par stipower Lien vers le commentaire Partager sur d’autres sites More sharing options...
Lazer Posté(e) le 4 mars Auteur Signaler Partager Posté(e) le 4 mars Oui mais il ne s"agit pas de comprendre tout le code, je t'ai juste indiqué le nom de la fonction dans mon code qui fait ce que tu demandes, à savoir l'obtention du token, ça devrait te donner une bonne piste. Par ailleurs, la HC2, j'ai laissé tombé il y a 3 ans, donc difficile d'adapter du code LUA dessus pour moi... Lien vers le commentaire Partager sur d’autres sites More sharing options...
stipower Posté(e) le 5 mars Signaler Partager Posté(e) le 5 mars (modifié) Salut Lazer, Je comprends. Bon, un collègue m'a débloqué, j'ai pu terminé mon script. Je poste mon Code pour scène HC2 qui est maintenant fonctionnel. Ca peut toujours servir à quelqu'un : -- GetEnphaseToken --[[ %% autostart %% properties %% events %% globals --]] -- récupère le Token de Enphase pour faire les connexion sur le boitier Envoy local IDNotifMailAdmin = 2 local TempsDeBoucle = 24 * 3600 * 1000 -- 1 journée function RequestHTTP() -- ************************************ Get SessionID ************************************ local EnphaseURLlogin = "https://enlighten.enphaseenergy.com/login/login.json?" local EnphaseURLToken = "https://entrez.enphaseenergy.com/tokens" local envoy_serial = "XXXXXXXX" -- sérial de l'installation Enphase local user ="XXXXXXXX" local password = "XXXXXXXX" local SessionID local http = net.HTTPClient() local DataEnphaseURLlogin = '{"user": {"email": "'.. user .. '", "password": "' .. password .. '"}}' -- attendu : DataEnphaseURLlogin = '{"user": {"email": "XXXX", "password": "XXXX"}}' fibaro:debug("Get session_id") http:request(EnphaseURLlogin, { options = { checkCertificate = false, method = 'POST', headers = { ['Accept'] = 'application/json', ['Content-Type'] = 'application/json', }, data = DataEnphaseURLlogin, timeout = 10000 }, success = function(response) --fibaro:debug(response.status) if (response.status == 200 or response.status == 201) and type(response.data) == "string" and response.data ~= "" then -- réponse OK --fibaro:debug(response.data) --[[ reponse attendue : {"message":"success", "session_id":"9beb21c28d7893090e9c42746830bdba", "manager_token":"eyJhbGciOiJIUzI......1NiJ9.eyJkYXRh", "is_consumer":true,"system_id":2438074} --]] SessionID = json.decode(response.data) SessionID = SessionID.session_id fibaro:debug("session_id = " .. SessionID) -- ************************************ Get Token ************************************ fibaro:debug("Get Token") local DataEnphaseURLToken = '{"session_id" : "' .. SessionID .. '", "serial_num" : "' .. envoy_serial .. '", "username" : "' .. user .. '"}' -- attendu : DataEnphaseURLToken = '{"session_id" : "XXXX", "serial_num" : "XXXX", "username" : "XXXX"}' http:request(EnphaseURLToken, { options = { checkCertificate = false, method = 'POST', headers = { ['Accept'] = 'application/json', ['Content-Type'] = 'application/json', }, data = DataEnphaseURLToken, timeout = 10000 }, success = function(response) --fibaro:debug(response.status) if (response.status == 200 or response.status == 201) and type(response.data) == "string" and response.data ~= "" then if type(response.data) == "string" and response.data ~= "" then -- réponse OK --fibaro:debug(response.data) local Token = response.data fibaro:debug("Token = " .. Token) fibaro:setGlobal("TokenEnphase",Token) --> envoie du Token dans une variable globale else -- réponse Pas OK fibaro:debug('GetEnphaseToken response code : ' .. response.status) local msg = 'GetEnphaseToken response code : ' .. response.data fibaro:debug(msg) SendMail(msg) end end end, error = function(err) local msg = "GetEnphaseToken Erreur : " .. err fibaro:debug(msg) SendMail(msg) end, } ) else -- réponse Pas OK fibaro:debug('GetEnphaseSession response code : ' .. response.status) local msg = 'GetEnphaseSession response code : ' .. response.data fibaro:debug(msg) SendMail(msg) end end, error = function(err) local msg = "GetEnphaseSession Erreur : " .. err fibaro:debug(msg) SendMail(msg) end, } ) end function SendMail(MsgErr) fibaro:call(IDNotifMailAdmin, 'sendEmail', 'HC2 Erreur EnphaseToken', os.date("%x " .. "%X") .. " " .. MsgErr) end function loop() fibaro:debug(os.date("%x " .. "%X")) RequestHTTP() setTimeout(loop,TempsDeBoucle) end setTimeout(loop,0) Code corrigé le 23/03/2024 Modifié le 24 mars par stipower 2 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Lazer Posté(e) le 5 mars Auteur Signaler Partager Posté(e) le 5 mars Top, bravo, et voilà qui devrait intéresser @Nico Lien vers le commentaire Partager sur d’autres sites More sharing options...
mprinfo Posté(e) le 5 mars Signaler Partager Posté(e) le 5 mars Tu crois que@nico aura le temps de faire un copier coller Envoyé de mon BLA-L29 en utilisant Tapatalk Lien vers le commentaire Partager sur d’autres sites More sharing options...
Nico Posté(e) le 7 mars Signaler Partager Posté(e) le 7 mars Top. Du coup j'abuse, tu n'as pas le petit VD qui va bien... Lien vers le commentaire Partager sur d’autres sites More sharing options...
stipower Posté(e) le 24 mars Signaler Partager Posté(e) le 24 mars Le VD qui va bien pour faire quoi ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
stipower Posté(e) le 24 mars Signaler Partager Posté(e) le 24 mars (modifié) J'ai corrigé mon code de scène HD2 et ai ajouté un envoi de mail en cas de mauvais logins/password. Modifié le 24 mars par stipower Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés