Je pense que ça pourra intéressé du monde, donc je le post sur le forum.
Suite au suicide de ma carte SD, j'ai décider de repartir d'une image officiel et de tout réinstaller, harmony, kodi, tout réintégrer (rfxcom, enocean), synchroniser/inclure (z-wave), etc... Il ne me manqué plus que la surveillance de mes panneaux solaire. J'ai donc utiliser le plug-in script officiel pour parser la page html de ma passerelle envoy pour avoir les info dans Jeedom. Seul problème, la production instantanée est sous forme de texte (valeur plus unité). En plus la valeur et convertie par la passerelle avant de l'afficher soit en W soit en kW. Tout ceci empêche Jeedom de pouvoir historiser les valeurs de production. J'ai donc écrit un petit script PHP pour lire la chaîne de caractère et, si besoin, convertir en W les kW, pour avoir un joli historique dans Jeedom.
Voici un screen de mes commandes pour afficher un widget sur Jeedom avec quelques informations que me renvoi la passerelle envoy. Sur la première ligne, j'appelle le script PHP, puis je parse quelque cellules pour afficher les informations dans Jeedom (adaptez l'adresse IP , chez moi c'est 192.168.0.25). Voici le script PHP :
Code : Tout sélectionner
<?php
$url = 'http://192.168.0.25/home?locale=fr';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$raw = curl_exec($ch);
curl_close($ch);
$html = new DOMDocument();
$html->preserveWhiteSpace = false;
@$html->loadHTML($raw);
$xpath = new DOMXPath($html);
//on récupére la valeur du contenu de la cellule indiquée dans le xpath (attention, ne pas mettre les balises html 'tbody', récupérer le xpath : inpecter le code->clique droit->Copy XPath)
$contenu_td = $xpath->query("//html/body/table/tr/td[2]/table/tr[2]/td[2]")->item(0)->nodeValue;
$tableau = explode(" ", trim($contenu_td)); //on séparare la valeur en w ou kw de l'unité de mesure
$valeur = 0;
$valeur = intval($tableau[0]);
$unite_mesure = 0;
$unite_mesure = $tableau[1];
if ( $unite_mesure == "kW" )
{
$valeur = $valeur * 1000;
}
echo $valeur;
?>
J'ai mit un cron d'une minute, je ne sais pas si c'est trop. J'aimerai bien mettre 5 minutes.
Si vous avez des remarques ou suggestions, je suis preneur ^^