Comme annoncé, ce forum est passé en lecture seule au 1er janvier 2020. Désormais nous vous invitons à vous rendre sur notre nouvelle page communauté :
Image

A très bientôt !

[Script] Voir la production de ses panneaux photovoltaïque

Réservé à l'utilisation et la programmation de scripts dans JEEDOM
Avatar de l’utilisateur
laurent207
Timide
Messages : 117
Inscription : 08 nov. 2014, 18:32

[Script] Voir la production de ses panneaux photovoltaïque

Message par laurent207 » 15 avr. 2017, 12:17

Bonjour à tous,

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).
commandes_panneau_solaire_envoy.jpg
Liste des commandes pour parser la page
commandes_panneau_solaire_envoy.jpg (373.9 Kio) Consulté 9086 fois
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;
?>
Et voilà ce que cela donne sur le dashboard ma mini+. J'ai juste modifier l'affichage avancer du widget pour mettre "line (core)" et j'ai mit en espace devant "Watt", dans les unités, sinon c'était coller à la valeur retourner par le script PHP :
wigjet_panneau_solaire_envoy.jpg
Widget
wigjet_panneau_solaire_envoy.jpg (43.98 Kio) Consulté 9086 fois

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 ^^

cyber301
Timide
Messages : 7
Inscription : 01 févr. 2015, 14:56

Re: [Script] Voir la production de ses panneaux photovoltaïq

Message par cyber301 » 16 avr. 2017, 09:45

Bonjour

Et merci a toi de le partager, peux tu dire quel model de passerelle tu as? La Enphase energy envoy-S standard ou Metered.

Avatar de l’utilisateur
laurent207
Timide
Messages : 117
Inscription : 08 nov. 2014, 18:32

Re: [Script] Voir la production de ses panneaux photovoltaïq

Message par laurent207 » 17 avr. 2017, 12:24

Je t’avoue que je ne sais pas. Je pense que, même si tu n'as pas le même modèle, tu pourras facilement adapter le script et les requêtes. Si tu n'y arrive pas, je pourrais t'aider à le faire, il suffira juste que tu copie/colle le code source de la page html.

Voici la photo de ma passerelle :
envoy.jpg
envoy.jpg (143.2 Kio) Consulté 9011 fois

mjeanne
Actif
Messages : 629
Inscription : 11 mars 2017, 18:36

Re: [Script] Voir la production de ses panneaux photovoltaïq

Message par mjeanne » 17 avr. 2017, 12:49

Bonjour,

vos passerelles n'auraient-elle pas directement un export en xml ou json ? Les valeurs sont directement dans le code html des pages ou ajoutées par script ? en gros, est-ce un affichage statique (il faut recharger la page pour avoir une mise à jour) ou dynamique (les valeurs changent au fur et à mesure)

Ced2001
Timide
Messages : 214
Inscription : 26 déc. 2015, 10:10
Localisation : Suisse VD

Re: [Script] Voir la production de ses panneaux photovoltaïque

Message par Ced2001 » 20 août 2017, 10:16

Merci pour le partage
J'ai déjà a panneaux avec micro onduleur que je surveille avec les pinces d'un IPX
je vais ajouter 14 panneaux avec Envoy je garde ton script au chaud pour tester ! j’espère que ça vas fonctionné car j'aurais la nouvelle passerelle Envoy S. J'ai trouvé des info ici https://thecomputerperson.wordpress.com ... -scraping/

J'ai aussi commandé l'eco device RT2 pour visualiser la production et 2 consommation en triphasé et remplacé deux OWL existant
raspberry pi 2 B+ + Module enocean
Jeedom smart
(2 Zibase Pro)
14 sondes 433
22 détecteurs de fumée Enocean Eltako
12 contacts de porte Enocean
4 télévariateur Enocean
11 télérupteur Enocean
2 ipx800V3
22 Zeptrion (feller)

Ced2001
Timide
Messages : 214
Inscription : 26 déc. 2015, 10:10
Localisation : Suisse VD

Re: [Script] Voir la production de ses panneaux photovoltaïq

Message par Ced2001 » 27 août 2017, 16:41

mjeanne a écrit :
17 avr. 2017, 12:49
Bonjour,

vos passerelles n'auraient-elle pas directement un export en xml ou json ? Les valeurs sont directement dans le code html des pages ou ajoutées par script ? en gros, est-ce un affichage statique (il faut recharger la page pour avoir une mise à jour) ou dynamique (les valeurs changent au fur et à mesure)
Effectivement elles ont la possibilité en json
raspberry pi 2 B+ + Module enocean
Jeedom smart
(2 Zibase Pro)
14 sondes 433
22 détecteurs de fumée Enocean Eltako
12 contacts de porte Enocean
4 télévariateur Enocean
11 télérupteur Enocean
2 ipx800V3
22 Zeptrion (feller)

NeoSlugman
Timide
Messages : 140
Inscription : 07 oct. 2015, 14:39
Localisation : Chambéry - Savoie - France - Europe - Monde

Re: [Script] Voir la production de ses panneaux photovoltaïque

Message par NeoSlugman » 27 août 2017, 19:39

Bonjour,

J'ai le même type de passerelle vendue par APSystem (même afficheur, même type de données). L'URL est pourtant différente : j'accède au cadre "home" avec cette adresse : http://192.168.0.63/cgi-bin/home. Rien de bien catastrophique jusque là, sauf que je n'arrive pas à récupérer les valeurs (en plus, le plugin script a été mis à jour et l'UI a légèrement changé)

En gros, j'ai repris le script en modifiant l'URL du cadre cité ci dessus. J'ai une deuxième commande HTML info/autre mais je suis obligé d'insérer l'URL directement dans le cadre sinon Jeedom refuse l'enregistrement.
Bref, si je ne mets que l'URL dans le cadre requête, j'ai le tableau complet qui s'affiche dans le widget (screen à suivre). Et si j'insère le Xpath copié, je n'ai rien (idem avec le "selector").

Je vais continuer à bricoler ça, à faire des screen et je reviens.

D'avance, merci
RPi3 Jeedom #SP Power Core Stable
SSD - Zwave stick Gen5 - Neuneuls Fibaro - prises Greenwave - Qubino chauffage/éclairage - Arduino Mega/Nano - MySensors

NeoSlugman
Timide
Messages : 140
Inscription : 07 oct. 2015, 14:39
Localisation : Chambéry - Savoie - France - Europe - Monde

Re: [Script] Voir la production de ses panneaux photovoltaïque

Message par NeoSlugman » 27 août 2017, 19:52

Voilà le Widget : il ne fait que reprendre le tableau de la page web générée par la passerelle Web APSystem
Image
2017-08-27 (3) by NeoSlugman, on Flickr

La page initialement générée :
Image2017-08-27 (4)_LI by NeoSlugman, on Flickr

Et la page script :
Image
2017-08-27 (2) by NeoSlugman, on Flickr

Avec le script modifié :

Code : Tout sélectionner

<?php
  $url = 'http://192.168.0.63/cgi-bin/home';
  $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/form/table/tbody/tr[3]/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;
?>
En tout cas, merci laurent207 pour ce script qui tombe à pic dans mes recherches afin d'intégrer ma production PV à Jeedom ;)
RPi3 Jeedom #SP Power Core Stable
SSD - Zwave stick Gen5 - Neuneuls Fibaro - prises Greenwave - Qubino chauffage/éclairage - Arduino Mega/Nano - MySensors

Avatar de l’utilisateur
laurent207
Timide
Messages : 117
Inscription : 08 nov. 2014, 18:32

Re: [Script] Voir la production de ses panneaux photovoltaïque

Message par laurent207 » 02 sept. 2017, 00:45

Regarde bien le screen de ma page script, l'url et le xpath ne sont pas dans le champs requête mes dans deux champs différents (indice, tu ne vois pas le champs qui te demande l'@ car tu n'as pas choisi HTML dans la liste).

Dans le commentaire de mon script PHP, je marque qu'il ne faut PAS mettre le tbody. Donc de ton xpath devient :

Code : Tout sélectionner

//html/body/form/table/tr[3]/td[2]
et non

Code : Tout sélectionner

//html/body/form/table/tbody/tr[3]/td[2]
entre-temps, j'ai un peu modifié mon script car le PHP récupéré la valeur au format Américain (avec un point) alors qu'elle était afficher au format Français (avec une virgule) et l'echo PHP me l'affichais en Français ... Voici mon script (pensait bien modifier votre xpath.

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', pour 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épare la valeur en w ou kw de l'unité de mesure
  
  $valeur = 0;
  $valeur = $tableau[0];
  
  $unite_mesure = 0;
  $unite_mesure = $tableau[1];
  
  if ( $unite_mesure == "kW" )
  {
    $valeur = str_replace(",", ".", $valeur);
    $valeur = floatval($valeur) * 1000;
  }

  echo $valeur;
?>

NeoSlugman
Timide
Messages : 140
Inscription : 07 oct. 2015, 14:39
Localisation : Chambéry - Savoie - France - Europe - Monde

Re: [Script] Voir la production de ses panneaux photovoltaïque

Message par NeoSlugman » 03 sept. 2017, 00:02

Bonsoir Laurent,

Merci d'avoir pris le temps de me répondre.
Je n'ai malheureusement pas réussi à récupérer des valeurs de ma passerelle, en ayant modifié les points que tu as mis en valeur.

Je me pose quelques questions :
- le nom de mon script pose-t-il problème s'il est différent du tien ? (même si j'en doute)
- le xpath que je dois insérer dans le script est-il le bon ? Dans ton exemple, il y a plusieurs /table/
- j'ai essayé d'insérer des balises d'autres sites, mais rien non plus...
RPi3 Jeedom #SP Power Core Stable
SSD - Zwave stick Gen5 - Neuneuls Fibaro - prises Greenwave - Qubino chauffage/éclairage - Arduino Mega/Nano - MySensors

NeoSlugman
Timide
Messages : 140
Inscription : 07 oct. 2015, 14:39
Localisation : Chambéry - Savoie - France - Europe - Monde

Re: [Script] Voir la production de ses panneaux photovoltaïque

Message par NeoSlugman » 04 sept. 2017, 15:38

Re bonjour,

Je complète la liste de mes questions :D :
- Comment obtiens-tu dans ton script ?

Code : Tout sélectionner

//html/body/table/tr/td[2]/table/tr[2]/td[2]
- Je vois que dans ta liste de commandes script, la requête contient 3 éléments (xpath tr/td). Je n'ai rien de tout ça quand je rappatrie le "selector"
- Concernant le cadre "requête" : à quoi correspondent ces éléments ?
Quand je copie le "selector" du cadre qui m'intéresse, j'obtiens ça (last system power) :

Code : Tout sélectionner

body > form > table > tbody > tr:nth-child(3) > td:nth-child(2)
J'ai essayé avec d'autres sites histoire de voir si c'était au niveau de mon Jeedom que ça coinçait (sait-on jamais), mais j'ai bien des retours sur :
URL : http://www.meteofrance.com/previsions-m ... bery/73000
Requête : #town-forecast > div > ul:nth-child(2) > li.active > div > ul:nth-child(2) > li.day-summary-temperature

Edit :
J'arrive à un retour de la valeur de la ligne complète dans le tableau en entrant

Code : Tout sélectionner

center:nth-child(2)
Image2017-09-04 (2)
by NeoSlugman, on Flickr

J'ai trouvé ça par erreur en cherchant à récupérer une valeur de texte centré d'une autre page de la passerelle... Peut-être un début d'explication ?

Je peux envoyer le code source de la page, ou encore la page en elle même, mais j'aimerai bien arriver à quelque chose avec mon Jeedom.
Voici ce que donne le tableau duquel je cherche à extraire mes données :
Image2017-09-04 (1)
by NeoSlugman, on Flickr
RPi3 Jeedom #SP Power Core Stable
SSD - Zwave stick Gen5 - Neuneuls Fibaro - prises Greenwave - Qubino chauffage/éclairage - Arduino Mega/Nano - MySensors

Ced2001
Timide
Messages : 214
Inscription : 26 déc. 2015, 10:10
Localisation : Suisse VD

Re: [Script] Voir la production de ses panneaux photovoltaïque

Message par Ced2001 » 04 sept. 2017, 17:53

Bonjour
J'ai récupéré les info en json sur envoy S
C'est un peu moins complet que le script de Laurent mais si ça intéresse qqun voici les captures
Pièces jointes
envoy.JPG
envoy.JPG (106.78 Kio) Consulté 8609 fois
envoy 2.JPG
envoy 2.JPG (140.58 Kio) Consulté 8609 fois
envoy 3.JPG
envoy 3.JPG (23.41 Kio) Consulté 8609 fois
raspberry pi 2 B+ + Module enocean
Jeedom smart
(2 Zibase Pro)
14 sondes 433
22 détecteurs de fumée Enocean Eltako
12 contacts de porte Enocean
4 télévariateur Enocean
11 télérupteur Enocean
2 ipx800V3
22 Zeptrion (feller)

NeoSlugman
Timide
Messages : 140
Inscription : 07 oct. 2015, 14:39
Localisation : Chambéry - Savoie - France - Europe - Monde

Re: [Script] Voir la production de ses panneaux photovoltaïque

Message par NeoSlugman » 04 sept. 2017, 19:35

C'est déjà largement suffisant !
Je teste ça sur ma passerelle APS après le repas

#Honor8 / #Tapatalk toussa

RPi3 Jeedom #SP Power Core Stable
SSD - Zwave stick Gen5 - Neuneuls Fibaro - prises Greenwave - Qubino chauffage/éclairage - Arduino Mega/Nano - MySensors

NeoSlugman
Timide
Messages : 140
Inscription : 07 oct. 2015, 14:39
Localisation : Chambéry - Savoie - France - Europe - Monde

Re: [Script] Voir la production de ses panneaux photovoltaïque

Message par NeoSlugman » 04 sept. 2017, 21:14

Comment as-tu trouvé l'adresse du fichier json et des autres URL ?
La version de ma passerelle (fournie par APS) semble légèrement différente :(
RPi3 Jeedom #SP Power Core Stable
SSD - Zwave stick Gen5 - Neuneuls Fibaro - prises Greenwave - Qubino chauffage/éclairage - Arduino Mega/Nano - MySensors

NeoSlugman
Timide
Messages : 140
Inscription : 07 oct. 2015, 14:39
Localisation : Chambéry - Savoie - France - Europe - Monde

Re: [Script] Voir la production de ses panneaux photovoltaïque

Message par NeoSlugman » 04 sept. 2017, 22:17

@laurent / @Ced : pouvez-vous mettre un screen de la page générée par la pssserelle SVP ?
J'essaye de faire les correspondances avec les pages de la version APS (américaine)

Voilà la source de la page qui rassemble ma production et d'autres infos :

Code : Tout sélectionner

<html>
	<head>
		<meta http-equiv=pragma content=no-cache><meta http-equiv=expire content=now>
			<title>
			</title>
	</head>
	<body bgcolor=ffffff text=black><form action=config.cgi method=get><br><br>
		<table align=center border=1 cellpadding=0 cellspacing=0 bordercolor=#008000 bordercolorlight=#ffffff borderdark=#808000 width=500>
			<center>
				<tr>
					<td align=center>ECU ID</td>
					<td align=center>203000031019</td>
				</tr>
			</center>
			<center>
				<tr>
					<td align=center>Lifetime generation</td>
					<td align=center>401.88 kWh</td>
				</tr>
			</center>
			<center>
				<tr>
					<td align=center>Last System Power</td>
					<td align=center>0 W</td>
				</tr>
			</center>
			<center>
				<tr>
					<td align=center>Generation Of Current Day</td>
					<td align=center>5.90 kWh</td>
				</tr>
			</center>
			<center>
				<tr>
					<td align=center>Last connection to website</td>
					<td align=center>2017-09-04 20:09:18</td>
				</tr>
			</center>
			<center>
				<tr>
					<td align=center>Number of Inverters</td>
					<td align=center>2</td>
				</tr>
			</center>
			<center>
				<tr>
					<td align=center>Last Number of Inverters Online</td>
					<td align=center>1</td>
				</tr>
			</center>
			<center>
				<tr>
					<td align=center>Current Software Version</td>
					<td align=center>V3.11.2</td>
				</tr>
			</center>
			<center>
				<tr>
					<td align=center>Database Size</td>
					<td align=center>4582 kB</td>
				</tr>
			</center>
			<center>
				<tr>
					<td align=center>Current Timezone</td>
					<td align=center>Europe/Paris</td>
				</tr>
			</center>
			<center>
				<tr>
					<td align=center>ECU Mac Address</td>
					<td align=center>80:97:1B:00:83:48</td>
				</tr>
			</center>
			<center>
				<tr>
					<td align=center>Signal Level</td>
					<td align=center>5</td>
				</tr>
			</center>
		</table>
		<br>
		<br>
		<hr>
		</hr>
		<center>
			<tr>
				<td>&copy2013 Altenergy Power System Inc.</td>
			</tr>
		</center>
	</body
</html>
Ce qui donne ce que j'ai posté aujourd'hui à 14h38 plus haut.
RPi3 Jeedom #SP Power Core Stable
SSD - Zwave stick Gen5 - Neuneuls Fibaro - prises Greenwave - Qubino chauffage/éclairage - Arduino Mega/Nano - MySensors

Avatar de l’utilisateur
laurent207
Timide
Messages : 117
Inscription : 08 nov. 2014, 18:32

Re: [Script] Voir la production de ses panneaux photovoltaïque

Message par laurent207 » 04 sept. 2017, 23:47

tu peux me mettre le contenu de ton script PHP, stp.

voici le contenu de la page html que génère ma passerelle (attention les yeux, c'est bien moche !) :

Code : Tout sélectionner

    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
    <html lang="fr">
    <!-- START HEAD CONTENT -->
    <head>
      <title>home</title>
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      <!-- include style sheet -->
      <link rel="styleSheet" type="text/css" href="/include/css/style.css" >
      <style type="text/css">.nav { width: 190px; font-size: 10px; padding: 10px; margin: 10px;float: left; background: #D8DBD4; color: #213d30; border: 2px solid #333; }
	.navholder { width: auto; height: auto; float: left; margin: 10px 0px 0 0 }
	.tbl_cap { font-size:8pt; background-color:#DD4F05; color:white; border-style:solid; border-width:1px; border-color:white; }
	.tbl_bod { font-family:arial; font-size:8pt; color:#213d30; background-color:#D8DBD4; border-style:solid; border-color:white; border-width:1px; }
	.tbl_bod_right { font-family:arial; font-size:8pt; color:#213d30; background-color:#D8DBD4; border-style:solid; border-color:white; border-width:1px; text-align:right }
	.tbl_hdr { font-size:8pt; background-color:#CCCCCC; border-style:solid; border-width:1px; border-color:white; color:#213d30; }
	.clearer { clear: both; font-size: 1px; }
	.outer { width: auto; height: auto; padding: 0px; font-size: 10px }
	.table1 { width: 100%; margin-left: auto; margin-right: auto;border: 1px solid #CCCCCC }
	.table2 { width: 100%;text-align: center;margin-left: auto; margin-right: auto;border: 1px solid #CCCCCC }
	.table3 { width: 720px;margin-left: auto; margin-right: auto;border: 1px solid #CCCCCC }
	.div_params { height: 190px; width: 380px; overflow: auto;margin-left: auto; margin-right: auto; }
	.div_edit_params { height: 230px; width: 470px; overflow: auto;margin-left: auto; margin-right: auto; }
	.div_outer_box { width: 720px;margin-left: auto; margin-right: auto;border: 1px solid #FFFFFF }
	.txt_expl_center { font-size: 12px; text-align:center;height: auto; border: 1px solid #CCCCCC;margin-top: 5px; margin-left: 5px; margin-right: auto; }
	.label_text_right { text-align: right; border: 1px solid #CCCCCC;font-size: 10px; }
	.label_text_left { text-align: left; border: 1px solid #CCCCCC;font-size: 10px; }
	.label_text_left_alert { text-align: left; color: #7d3020; border: 1px solid #CCCCCC;font-size: 12px; }
	.link_cell_right { font-size: 10px;height: auto; border: 1px solid #CCCCCC;text-align: right;margin-top: 5px; margin-left: auto; margin-right: 25px; }
	.link_cell_left { font-size: 10px;height: auto; border: 1px solid #CCCCCC;text-align: left;margin-top: 5px; margin-left: 25px; margin-right: auto; }
	.link_cell_right_out { font-size: 12px; padding: 15px;height: auto; border: 1px solid #CCCCCC;text-align: right;margin-top: 5px; margin-left: auto; margin-right: 25px; }
	.link_cell_left_out { font-size: 12px;height: auto; border: 1px solid #CCCCCC;text-align: left; padding: 15px;margin-top: 5px; margin-left: 25px; margin-right: auto; }
	.ns_fldset { height: auto; width: 720px; border: 1px solid #7d3020; background: #CCCCCC; padding: 15px; }
	.ns_fldset_inner { border: 1px solid #7d3020; background: #CCCCCC; }
	.enp_legend { text-align: left; border: 1px solid #7d3020; background: #FFD401; }
	.input_left { border: 1px solid #CCCCCC; text-align: left; }
	.grid_config { float: left; margin-left: 50px; width: 830px; text-align: center; }
	.swimgnav { width: 160px; height: auto; font-size: 10px; padding: 10px; margin: 10px;float: left; background: #D8DBD4; color: #213d30;border: 2px solid #333; }
	.frames { clear: right; width: auto; padding: 15px; height: auto; margin-left: 200px; margin-right: auto; }
	.tbl_cap_left { font-size:8pt; background-color:#DD4F05; color:white; border-style:solid; border-width:1px; border-color:white; text-align:left; }
	.tbl_cap_center { font-size:8pt; background-color:#DD4F05; color:white; border-style:solid; border-width:1px; border-color:white; text-align:center; }
	.tbl_bod_left { font-family:arial; font-size:8pt; color:#213d30; background-color:#D8DBD4; border-style:solid; border-color:white; border-width:1px; text-align:left; }
	.tablePaged { float: left;width: 100%;text-align: center;margin-left: auto; margin-right: auto;border: 1px solid #CCCCCC }
	.table.dataTable { margin: 0 auto; clear: both; width: 100%; }
	.table.dataTable thead th { padding: 3px 18px 3px 10px;border-bottom: 1px solid black;font-weight: bold;cursor: pointer;*cursor: hand; }
	.table.dataTable tfoot th { padding: 3px 18px 3px 10px;border-top: 1px solid black;font-weight: bold; }
	.table.dataTable td { padding: 3px 10px; }
	.table.dataTable td.center, table.dataTable td.dataTables_empty { text-align: center; }
	.table.dataTable tr.odd { background-color: #E2E4FF; }
	.table.dataTable tr.even { background-color: white; }
	.table.dataTable tr.odd td.sorting_1 { background-color: #D3D6FF; }
	.table.dataTable tr.odd td.sorting_2 { background-color: #DADCFF; }
	.table.dataTable tr.odd td.sorting_3 { background-color: #E0E2FF; }
	.table.dataTable tr.even td.sorting_1 { background-color: #EAEBFF; }
	.table.dataTable tr.even td.sorting_2 { background-color: #F2F3FF; }
	.table.dataTable tr.even td.sorting_3 { background-color: #F9F9FF; }
	.dataTables_wrapper { position: relative; clear: both; *zoom: 1; }
	.dataTables_length { float: left; }
	.dataTables_filter { margin: 0px 0px 2px 0px; float: right; text-align: right; }
	.DTTT_button_text { margin: 0px 0px 0px 3px; float: right; text-align: right; }
	.dataTables_info { clear: both; float: left; }
	.dataTables_paginate { float: right; text-align: right; }
	.paging_full_numbers { height: 22px; line-height: 22px; }
	.paging_full_numbers a:active { outline: none }
	.paging_full_numbers a:hover { text-decoration: none; }
	.paging_full_numbers a.paginate_button,.paging_full_numbers a.paginate_active { border: 1px solid #aaa;-webkit-border-radius: 5px;-moz-border-radius: 5px;border-radius: 5px;padding: 2px 5px;margin: 0 3px;cursor: pointer;*cursor: hand;color: #333 !important; }
	.paging_full_numbers a.paginate_button { background-color: #ddd; }
	.paging_full_numbers a.paginate_button:hover { background-color: #ccc;text-decoration: none !important; }
	.paging_full_numbers a.paginate_active { background-color: #99B3FF; }
	.paging_full_numbers a.paginate_button_disabled { border: 1px solid #aaa;-webkit-border-radius: 5px;-moz-border-radius: 5px;border-radius: 5px;padding: 2px 5px;margin: 0 3px;cursor: default;opacity: 0.6;color: gray; }
	.dataTables_processing { position: absolute;top: 50%;left: 50%;width: 250px;height: 30px;margin-left: -125px;margin-top: -15px;padding: 14px 0 2px 0;border: 1px solid #ddd;text-align: center;color: #999;font-size: 14px;background-color: white; }
	.sorting { padding: 2px 15px;background-clip: padding-box;background-origin: border-box;background-image: url('/images/sort_both.png');background-repeat: no-repeat;background-position: right center;background-color: #DD4F05; }
	.sorting_asc { padding: 2px 15px;background-clip: padding-box;background-origin: border-box;background-image: url('/images/sort_asc.png');background-repeat: no-repeat;background-position: right center;background-color: #DD4F05; }
	.sorting_desc { padding: 2px 15px;background-clip: padding-box;background-origin: border-box;background-image: url('/images/sort_desc.png');background-repeat: no-repeat;background-position: right center;background-color: #DD4F05; }
	.sorting_asc_disabled { padding: 2px 15px;background-clip: padding-box;background-origin: border-box;background-image: url('/images/sort_asc_disabled.png');background-repeat: no-repeat;background-position: right center;background-color: #DD4F05; }
	.sorting_desc_disabled { padding: 2px 15px;background-clip: padding-box;background-origin: border-box;background-image: url('/images/sort_desc_disabled.png');background-repeat: no-repeat;background-position: right center;background-color: #DD4F05; }
	.table.dataTable th:active { outline: none; }
	.p.t_fixed_header_scroll_inner { width: 100%;height: 200px; }
	.div.t_fixed_header_scroll_outer { top: 0; left: 0; visibility: hidden; width: 200px; height: 150px; overflow: hidden; }
	.div.t_fixed_header { position: relative;margin: 0;width: 100%; }
	.div.t_fixed_header * { margin: 0;padding: 0; }
	.div.t_fixed_header table.head { position: relative; }
	.div.t_fixed_header table { width: 100%;table-layout: fixed;empty-cells: show;border-collapse: collapse;border-spacing: 0; }
	.div.t_fixed_header table.headtable td.fillScrollbar { font-size: 0px;-o-text-overflow: inherit;text-overflow: inherit; }
	.div.t_fixed_header tr th, div.t_fixed_header tr td { overflow: hidden;white-space: nowrap;-o-text-overflow: ellipsis;text-overflow: ellipsis; }
	.div.t_fixed_header.t_fixed_header_wrap tr th, div.t_fixed_header.t_fixed_header_wrap tr td { white-space: normal; }
	.div.t_fixed_header div.body { overflow-x: auto;padding: 0;width: 100%; }
	.div.t_fixed_header_main_wrapper { position: relative;overflow: hidden; }
	.div.t_fixed_header_main_wrapper_child { position: relative;width: 100% }
	.div.t_fixed_header_main_wrapper.ui { border-width: 1px 1px 1px 1px;border-style: solid;font-weight: normal;font-size: 1.1em; }
	.div.t_fixed_header_main_wrapper.ui  div.t_fixed_header_caption { text-align: center;font-weight: bold;padding: 0 5px;height: 30px;line-height: 30px;border-width: 0 0 1px 0;border-style: solid; }
	.div.t_fixed_header_main_wrapper.ui  div.t_fixed_header_caption.toggle { border-width: 0; }
	.div.t_fixed_header div.headtable { border: 0;overflow-x: hidden;overflow-y: auto; }
	.div.t_fixed_header.ui .body { border-width: 1px 0 0 0;border-style: solid;background-image: none; }
	.div.t_fixed_header.ui .headtable th { padding: 5px;text-align: center;border-width: 0 1px 0 0;border-style: solid; }
	.div.t_fixed_header.ui .headtable .hover { cursor: pointer;height: 16px; }
	.div.t_fixed_header.ui .headtable th span.ui-resize { background: transparent;cursor: col-resize;display: inline;float: right;height: 20px;margin: -3px -5px -5px 0;width: 5px;z-index: 10000; }
	.div.t_fixed_header.ui div.ui-resize-ghost { display: none;position: absolute;top: 0;width: 2px;border: none; }
	.div.t_fixed_header.ui .body tr { border: 0px; }
	.div.t_fixed_header.ui .body td { padding: 5px;text-align: left;line-height: 15px; }
	.div.t_fixed_header.ui .body tr td { border-width: 0 1px 1px 0;border-style: solid;background: none; }
	.div.t_fixed_header.ui .body tr:last-child td { border-bottom-width: 0px; }
	.div.t_fixed_header.ui.default .headtable th:last-child, div.t_fixed_header.ui.default .body td:last-child { border-right-width: 0px; }
	.div.t_fixed_header.ui .body td.last_td, div.t_fixed_header.ui .headtable th.last_td { border-right-width: 0px; }
	.div.t_fixed_header_main_wrapper.ui div.pager { border-width: 0 0 0 0;padding: 4px 2px 2px 3px;overflow: hidden;background-image: none; }
	.div.t_fixed_header_main_wrapper.ui div.pager .button { float: right;padding: 4px 0;cursor: pointer; }
	.div.t_fixed_header_main_wrapper.ui div.pager .button.noborder { border-right-width : 0px; }
	.div.t_fixed_header_main_wrapper.ui div.pager .button span { margin: 0 4px; }
	.div.t_fixed_header_main_wrapper.ui div.pager div.page_infos { height: 27px;line-height: 27px;float: right;margin-right: 10px;font-weight: normal; }
	</style>
      <!-- include JS libraries -->
      <script type="text/JavaScript">
      <!--
      function refreshPage(period) {
        setTimeout("document.forms['tpm_status'].submit()", period);
      }
      //   -->
      </script>
      
    </head>
    <!-- END HEAD CONTENT -->
      <body>
    <!-- START TOP NAV CONTENT -->
      <form action="/home" method="post">
      <div class="nav_header">
      <input type="hidden" name="fname" value="nav_header" >
      <input type="hidden" name="profile" value="0" >
      <input type="hidden" name="regSpec" value="0" >
      <input type="hidden" name="country" value="0" >
      <input type="hidden" name="regSpecName" value="" >
      <input type="hidden" name="profileName" value="" >
      <table width="100%" style="border-style:none;">
        <tr>
          <td class="hdr_line" valign="middle">
              <a href="http://enphase.com/fr/" title="Visitez le site Internet d'Enphase Energy">
              <img src="/images/enphase-logo.png"
              style="background:white; text-align:left; height:50px;"
              alt="Enphase Energy, Inc.">
              </a>
              </td>
          <td class="hdr_line" valign="middle" colspan="4">Envoy Numéro de série: 121503051469</td>
          <td class="hdr_line" valign="middle">
              <a href="http://enlighten.enphaseenergy.com?locale=fr" title="Visiter le site Internet d'Enlighten">
              <img src="/images/enlighten_logo.png"
              style="background:white; text-align:right; height:40px;"
              alt="Enlighten website">
              </a>
              </td>
        </tr>
        <tr>
          <td class="hdr_line"><a href="/home?locale=fr">Accueil</a></td>
          <td class="hdr_line"><a href="/event?locale=fr">Événements</a></td>
          <td class="hdr_line"><a id="nav_header_production" href="/production?locale=fr">Production</a></td>           
          <td class="hdr_line"><a id="nav_header_inventory" href="/inventory?locale=fr">Inventaire</a></td>
          <td class="hdr_line"><a id="nav_header_admin" href="/admin/home?locale=fr">Administration</a></td>
          <td class="hdr_line"></td>
          <td class="hdr_line" align="left">Langue
            <select autocomplete="off" id="locale" name="locale" onchange="this.form.submit()">               <option value="fr" selected="selected" >français</option><option value="it">italiano</option><option value="de">deutsch</option><option value="en">English</option><option value="es">español</option>
            </select>
          </td>
        </tr>
      </table>
      </div>
      </form>
      <HR>
    <!-- END TOP NAV CONTENT -->
    <!-- START MAIN PAGE CONTENT -->
      <h1>Aperçu du système</h1>
      <table style="border: 1px solid #dd4f05;
                     BORDER-COLLAPSE: separate;width:900px;
                     margin:auto;padding:10px;">
      <tr><td style="border: 0px none blue; width:auto;">
            <h2>Fonctionnement du système</h2>
              <div class=bad>
                Connexion aux micro-onduleurs </div>
              <div class=good>
                Connexion à Internet
              </div>
              
            <br><br>  <br>
            <br><br> <div class="bad"></div><br>
          </td>
        <td style="border: 0px none blue">
          <h2>Statistiques du système</h2>
          <table>
            <tr><td>Cumul Production</td>    <td> 4,31 MWh</td></tr><tr><td>Production instantanée</td>    <td>    0 W</td></tr>
            <tr><td>Dernière connexion au site Internet</td>
                <td><div class=good> 4 minutes</div></td></tr>
            <tr><td>Nombre de micro-onduleurs</td>
                <td>8</td></tr>
            <tr><td>Nombre de micro-onduleurs en ligne</td>
                <td>0</td></tr>
            <tr><td>Version du logiciel</td>
                <td>R3.12.45 (f9b2fc)</td></tr>
            <tr><td>Date de version logicielle</td>
                <td>mer aoû 12, 2015 05:27 Après-midi PDT </td></tr>
            <tr><td>Taille de la base de données</td>
                <td>10 MB (2 % plein)</td></tr>
            <tr><td>Fuseau horaire actuel</td>
                <td>Europe/Paris</td></tr>
            <tr><td>Adresse IP Envoy</td><td>192.168.0.25 (Static)</td></tr>
            <tr><td>Adresse MAC Envoy</td><td>00:1D:C0:64:2C:D2</td></tr>
            
            <tr><td>Caractéristiques CPL</td><td>480-00008-r01</td></tr>
            
            </table></td>
      </tr></table><br><br>
    <!-- END MAIN PAGE CONTENT -->
    <!-- START BOTTOM NAV CONTENT -->
    <HR>
    <div style="margin-left: auto; margin-right:auto; width: 100%; text-align: center; ">
    &copy; 2007-2015, [e] Enphase Energy, Inc. Tous droits réservés. |
    <a href="http://www.enphaseenergy.com/licenses">Licences</a>
    <!-- END BOTTOM NAV CONTENT -->
    <br><br>
    </div>
    </body>
    </html>

NeoSlugman
Timide
Messages : 140
Inscription : 07 oct. 2015, 14:39
Localisation : Chambéry - Savoie - France - Europe - Monde

Re: [Script] Voir la production de ses panneaux photovoltaïque

Message par NeoSlugman » 05 sept. 2017, 00:12

Bonsoir Laurent,

Alors, j'ai bien avancé :
- j'arrive à récupérer le contenu des cases de la passerelle
- la production instantanée est toujours en W, ce qui m'évite la conversion que permet ton script (et c'est pas plus mal vues mes "compétences" en la matière !)

Par contre, la requête est bizarre :

Code : Tout sélectionner

center:nth-child(3) td:nth-child(2)
Ca me renvoit donc une valeur texte du type : "690 W" (prod inst), que je déclare en info/numérique (mais sans unité), et que Jeedom historise à partir de l'élément numérique (seule la valeur numérique du texte est conservée)

ndlr : 4,31MWh produits, bravo ;)
RPi3 Jeedom #SP Power Core Stable
SSD - Zwave stick Gen5 - Neuneuls Fibaro - prises Greenwave - Qubino chauffage/éclairage - Arduino Mega/Nano - MySensors

Avatar de l’utilisateur
laurent207
Timide
Messages : 117
Inscription : 08 nov. 2014, 18:32

Re: [Script] Voir la production de ses panneaux photovoltaïque

Message par laurent207 » 05 sept. 2017, 10:16

Le plus dur c'est ce que tu viens de faire, j'avais mit pas mal de jour pour faire remonté des info en utilisant le plug-in script, vu la documentation officiel plus que succincte. Et en plus j'avais dû écrire un script PHP pour avoir juste une valeur numérique qui était toujours en watt.

Si tu as trouvé alors c'est cool.

NeoSlugman
Timide
Messages : 140
Inscription : 07 oct. 2015, 14:39
Localisation : Chambéry - Savoie - France - Europe - Monde

Re: [Script] Voir la production de ses panneaux photovoltaïque

Message par NeoSlugman » 05 sept. 2017, 12:42

Merci encore pour le post de base et les conseils.
Je vais ouvrir un topic pour la passerelle APS et remettre au propre les valeurs du script pour ceux que ça intéresse.

#Honor8 / #Tapatalk toussa

RPi3 Jeedom #SP Power Core Stable
SSD - Zwave stick Gen5 - Neuneuls Fibaro - prises Greenwave - Qubino chauffage/éclairage - Arduino Mega/Nano - MySensors

Ced2001
Timide
Messages : 214
Inscription : 26 déc. 2015, 10:10
Localisation : Suisse VD

Re: [Script] Voir la production de ses panneaux photovoltaïque

Message par Ced2001 » 06 sept. 2017, 12:48

NeoSlugman a écrit :
04 sept. 2017, 22:17
@laurent / @Ced : pouvez-vous mettre un screen de la page générée par la pssserelle SVP ?
J'essaye de faire les correspondances avec les pages de la version APS (américaine).
http://192.168.1.XXX/api/v1/production/inverters

<html><body><pre>
[
{
"serialNumber": "121513025055",
"lastReportDate": 1504693897,
"devType": 1,
"lastReportWatts": 128,
"maxReportWatts": 254
},
{
"serialNumber": "121513025122",
"lastReportDate": 1504693899,
"devType": 1,
"lastReportWatts": 125,
"maxReportWatts": 243
},
{
"serialNumber": "121407002601",
"lastReportDate": 1504693896,
"devType": 1,
"lastReportWatts": 126,
"maxReportWatts": 244
},
{
"serialNumber": "121513025026",
"lastReportDate": 1504693896,
"devType": 1,
"lastReportWatts": 126,
"maxReportWatts": 246
}
]

</pre></body></html>

http://192.168.1.XXX/production.json#

production
0
type "inverters"
activeCount 4
readingTime 1504693899
wNow 504
whLifetime 487383
storage
0
type "acb"
activeCount 0
readingTime 0
wNow 0
whNow 0
state "idle"


http://192.168.1.XXX/inventory.json



0
type "PCU"
devices
0
part_num "800-00192-r06"
installed "1503570062"
serial_num "121513025055"
device_status
0 "envoy.global.ok"
last_rpt_date "1504694801"
admin_state 1
dev_type 1
created_date "1503570062"
img_load_date "1503582388"
img_pnum_running "520-00045-r01-v01.22.00"
ptpn "540-00069-r01-v01.22.02"
chaneid 1627390225
device_control
0
gficlearset false
producing true
communicating true
provisioned true
operating false
1
part_num "800-00192-r06"
installed "1503570090"
serial_num "121513025122"
device_status
0 "envoy.global.ok"
last_rpt_date "1504694798"
admin_state 1
dev_type 1
created_date "1503570090"
img_load_date "1503580780"
img_pnum_running "520-00045-r01-v01.22.00"
ptpn "540-00069-r01-v01.22.02"
chaneid 1627390481
device_control
0
gficlearset false
producing true
communicating true
provisioned true
operating false
2
part_num "800-00192-r06"
installed "1503570175"
serial_num "121513025026"
device_status
0 "envoy.global.ok"
last_rpt_date "1504694799"
admin_state 1
dev_type 1
created_date "1503570175"
img_load_date "1503580780"
img_pnum_running "520-00045-r01-v01.22.00"
ptpn "540-00069-r01-v01.22.02"
chaneid 1627390737
device_control
0
gficlearset false
producing true
communicating true
provisioned true
operating false
3
part_num "800-00090-r04"
installed "1503570187"
serial_num "121407002601"
device_status
0 "envoy.global.ok"
last_rpt_date "1504694800"
admin_state 1
dev_type 1
created_date "1503570187"
img_load_date "1503582758"
img_pnum_running "520-00042-r01-v01.23.00"
ptpn "540-00052-r01-v01.23.00"
chaneid 1627390993
device_control
0
gficlearset false
producing true
communicating true
provisioned true
operating false
1
type "ACB"
devices
raspberry pi 2 B+ + Module enocean
Jeedom smart
(2 Zibase Pro)
14 sondes 433
22 détecteurs de fumée Enocean Eltako
12 contacts de porte Enocean
4 télévariateur Enocean
11 télérupteur Enocean
2 ipx800V3
22 Zeptrion (feller)

Répondre

Revenir vers « [Plugin officiel] Scripts »

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 11 invités