jack a écrit:lancevo7 a écrit:qwench a écrit:Bonjour
Si je mets l'url http://192.168.0.xxx/production.json dans mon navigateur, j'obtient un json complet et détaillé, même sans ajouter de token:
- Code : Tout sélectionner
{
"production": [
{
"type": "inverters",
"activeCount": 8,
"readingTime": 1685693149,
"wNow": 2005,
"whLifetime": 5744476
},
{
"type": "eim",
"activeCount": 1,
"measurementType": "production",
"readingTime": 1685693351,
"wNow": 2005.743,
"whLifetime": 5784894.885,
"varhLeadLifetime": 0.002,
"varhLagLifetime": 2106444.785,
"vahLifetime": 7705762.107,
"rmsCurrent": 8.64,
"rmsVoltage": 699.201,
"reactPwr": 137.99,
"apprntPwr": 2013.779,
"pwrFactor": 1.0,
"whToday": 4271.885,
"whLastSevenDays": 131150.885,
"vahToday": 5550.107,
"varhLeadToday": 0.002,
"varhLagToday": 1475.785
}
],
"consumption": [
{
"type": "eim",
"activeCount": 1,
"measurementType": "total-consumption",
"readingTime": 1685693351,
"wNow": 221.202,
"whLifetime": 15744004.769,
"varhLeadLifetime": 3067396.202,
"varhLagLifetime": 9575945.571,
"vahLifetime": 22576142.686,
"rmsCurrent": 0.836,
"rmsVoltage": 699.316,
"reactPwr": -495.147,
"apprntPwr": 584.31,
"pwrFactor": 0.38,
"whToday": 2449.769,
"whLastSevenDays": 59163.769,
"vahToday": 6631.686,
"varhLeadToday": 3057.202,
"varhLagToday": 1530.571
},
{
"type": "eim",
"activeCount": 1,
"measurementType": "net-consumption",
"readingTime": 1685693351,
"wNow": -1784.541,
"whLifetime": 13962600.848,
"varhLeadLifetime": 3067396.201,
"varhLagLifetime": 7469500.786,
"vahLifetime": 22576142.686,
"rmsCurrent": 7.804,
"rmsVoltage": 699.431,
"reactPwr": -357.157,
"apprntPwr": 1819.589,
"pwrFactor": -0.98,
"whToday": 0,
"whLastSevenDays": 0,
"vahToday": 0,
"varhLeadToday": 0,
"varhLagToday": 0
}
],
"storage": [
{
"type": "acb",
"activeCount": 0,
"readingTime": 0,
"wNow": 0,
"whNow": 0,
"state": "idle"
}
]
}
Moi je dois mettre le token, il me le demande, apres j'ai le resultat
C'est parce que Qwench tu dois avoir une session d'ouverte avec tes mots de passe enregistrés dans ton navigateur
Sur ce lien https://support.enphase.com/s/question/0D53m00008vPvHLCA0/access-iq-gateway-through-curl-commands-with-tokenauthentication-only-allowed-for-some-urls-not-all-urls-giving-401-authorization-required-error-message, d'autres utilisateurs mentionnent le fait que certaines adresses marchent avec le token et d'autre non par la call d'API.
Il est écrit qu'il faut utiliser les cookies pour que cela marche.
J'ai fait les test et cela marche avec http://192.168.0.xxx/production.json
Voilà ce que j'ai fait :
1. je me connecte sur le navigateur avec le token sur l'adresse http://192.168.0.xxx/production.json
2. Aller dans les outils de développeur du navigateur (appuyer sur F12) puis onglet application puis dans storage aller dans cookie, repérer l'adresse de la passerelle.
3. récupérer sur la droite le nom dans la colonne "name" et la valeur dans la colonne "value"
4 ajouter dans le code du script eedomus dans le code du httpquery le cookie :
- Code : Tout sélectionner
$request = httpQuery($url, $action = 'GET', $post = NULL, $oauth_token = NULL, $headers = array("Authorization: Bearer eyJraWQ.......etc......"[b][u], "cookie: nom_du_cookie=valeur_du_cookie"[/u][/b]), $use_cookies = false, $ignore_errors = true);
cela marche mais j'imagine que dès que je vais fermer mon navigateur, le cookie sera supprimé et cela ne marchera plus
Est-ce que quelqu'un sait comment récupérer un cookie en script pour pouvoir automatiser ?
interressant, ce qui est fou c'est que le token fonctionne, la page json donne l'info, mais le script eedomus renvoi 0