Bonjour,
ceci est mon premier message donc merci pour votre accueil
Je n’ai pas encore fait un plug-in car je viens de découvrir Home Assistant il y a quelques jours mais j’ai réussi à trouver un moyen rapide d’intégrer le sensor Ecojoko dans Home Assistant.
Vous avez besoin d’avoir un serveur Web qui peut executer du php (récupération informations).
Voici le contenu de la page php (qui utilise GuzzleHttp pour des requests):
<?php
require_once('vendor/autoload.php');
// use available jar
$jar = new \GuzzleHttp\Cookie\FileCookieJar(__DIR__ .'/myjar.json',true);
$clientEcojoko = new \GuzzleHttp\Client(['cookies' => $jar]);
$url ="https://service.ecojoko.com/gateway/XXXXX/device/YYYY/realtime_conso";
try {
$res = $clientEcojoko->request('GET', $url,[
'allow_redirects' => true,
'headers' => [
'Content-Type' => 'application/x-www-form-urlencoded; charset=UTF-8',
'Accept' => '*/*',
'Accept-Encoding' => 'gzip, deflate, br',
'Connection' => 'keep-alive',
'Cache-Control' => 'no-cache'
]]);
}
catch (Exception $e) {
// authentification
$res = $clientEcojoko->request('POST',
"https://service.ecojoko.com/login",
[
'allow_redirects' => true,
'headers' => [
'Content-Type' => 'application/x-www-form-urlencoded; charset=UTF-8',
'Accept' => '*/*',
'Accept-Encoding' => 'gzip, deflate, br',
'Connection' => 'keep-alive',
'Cache-Control' => 'no-cache'
],
'body'=>'{"l":"YOUR ECOJOKO MAIL ADRESS","p":"YOUR ECOJOKO PASSWORD BASE64 ENCODED"}'
]);
// retry original GET
$res = $clientEcojoko->request('GET', $url,[
'allow_redirects' => true,
'headers' => [
'Content-Type' => 'application/x-www-form-urlencoded; charset=UTF-8',
'Accept' => '*/*',
'Accept-Encoding' => 'gzip, deflate, br',
'Connection' => 'keep-alive',
'Cache-Control' => 'no-cache'
]]);
}
$ecojoko = json_decode($res->getBody(),true);
$wat = -1*$ecojoko['real_time']['value'];
echo "<p>".$wat."</p>";
//echo $res->getBody();
?>
le résultat est la consomation instantanée.
Ensuite dans Home Assistant, aprés avoir installé le scrapper web rajouter dans configuration.yaml:
rest:
- resource :VOTRE_SERVICE_WEB
method: GET
verify_ssl: false
scan_interval: 60
sensor:
- unique_id: rest_ecojoko
name: "ecojoko_rest"
unit_of_measurement: "W"
value_template: '{{ value | round(0) }}'
Ensuite l’entité peut être utilisée pour des automatismes : chargement batteries quand la consommation est supérieure à une valeur.
L’idéal est d’intégrer ça dans un plug-in mais je ne sais pas comment faire pour instant. Je vais tenter de le faire mais en état c’est déjà utilisable.
Bonne journée à tous et merci si possible d’avance pour votre accueil.