reprenons …
le but est d’arriver a ca :
qui correspond a ca : quand il ne fait pas nuit …
et a ca :
qui correspond a ca :
on est bien d’accord ?
il faut donc aller lire sur l’ecu et transformer ce qu’on a lu en virtuel grace a un scénario principalement en bloc code
le scénario qui va lire l’ecu toutes les 5 min par exemple:
pour l’instantané solaire :
créer un scénario tel que
SI
#time# > 0015 && #time# < 2345 (pour éviter de lire des données fausse pendant la mise a jour journaliere de l’ecu)
ALORS : créer un bloc code et y copier le code suivant en indiquant le bon ip a l’endroit indiqué
$script = 'monpython.py'; //Nom du fichier python
$chemin = '/var/www/html/python'; // Dossier à utiliser
if (1){ //metre à 1 la 1er fois, une fois que le fichier existe et n'est plus modifier mettre a 0
// Script python
$python = <<<'EOD'
#! /usr/bin/env python3
import pandas as pd
pd.set_option('display.max_rows', 6)
pd.set_option('display.max_columns', 6)
pd.set_option('display.width', 120)
html_tables = pd.read_html("http://METTRE ICI L'IP DE TON ECU/index.php/realtimedata")
df = html_tables[0]
df.T # transpose to align
print(df.iat[0, 0],",",df.iat[1, 0],",",df.iat[2, 0],",",df.iat[3, 0],",",df.iat[4, 0],",",df.iat[5, 0],",",df.iat[0, 1],",",df.iat[1, 1],",",df.iat[2, 1],",",df.iat[3, 1],",",df.iat[4, 1],",",df.iat[5, 1],",",df.iat[0, 5],",",df.iat[2, 5],",",df.iat[4, 5],",",df.iat[0, 6],",",df.iat[2, 6],",",df.iat[4, 6],",*")
EOD;
mkdir($chemin); // creation du dossier
file_put_contents($chemin.'/'.$script, $python); // Ecriture du fichier
}
$reponse = shell_exec('python3 '.$chemin.'/'.$script); // execution du script
$scenario->setLog($reponse); // recuperation des paramètres de retour du script
$tableau = explode(",", $reponse);
$tags['#ondul1px1#'] = $tableau[0];
$tags['#ondul1px2#'] = $tableau[1];
$tags['#ondul2px1#'] = $tableau[2];
$tags['#ondul2px2#'] = $tableau[3];
$tags['#ondul3px1#'] = $tableau[4];
$tags['#ondul3px2#'] = $tableau[5];
$tags['#puissondul1px1#'] = $tableau[6];
$tags['#puissondul1px2#'] = $tableau[7];
$tags['#puissondul2px1#'] = $tableau[8];
$tags['#puissondul2px2#'] = $tableau[9];
$tags['#puissondul3px1#'] = $tableau[10];
$tags['#puissondul3px2#'] = $tableau[11];
$tags['#tempondul1#'] = $tableau[12];
$tags['#tempondul2#'] = $tableau[13];
$tags['#tempondul3#'] = $tableau[14];
$tags['#commondul1#'] = $tableau[15];
$tags['#commondul2#'] = $tableau[16];
$tags['#commondul3#'] = $tableau[17];
//$tags = $scenario->getTags();
//$tags['#reponse#'] = $reponse;
$scenario->setTags($tags);
ce fabuleux scipt python va renvoyer les données sous forme de tags que j’ai traité en créant un bloc action juste sous le bloc code comme suit : (y a pas mal de texte a taper !! lol)
un second scénario structuré de la même manière avec les données suivantes :
$script1 = 'monpython1.py'; //Nom du fichier python
$chemin = '/var/www/html/python'; // Dossier à utiliser
if (1){ //metre à 1 la 1er fois, une fois que le fichier existe et n'est plus modifier mettre a 0
// Script python
$python1 = <<<'EOD'
#! /usr/bin/env python3
import pandas as pd
pd.set_option('display.max_rows', 11)
pd.set_option('display.max_columns', 2)
pd.set_option('display.width', 120)
html_tables = pd.read_html("http://METTRE L'IP DE TON ECU ICI/index.php/home")
df = html_tables[0]
df.T # transpose to align
print(df.iat[0, 1],",",df.iat[1, 1],",",df.iat[2, 1],",",df.iat[3, 1],",",df.iat[4, 1],",",df.iat[5, 1],",",df.iat[6, 1],",",df.iat[7, 1],",",df.iat[8, 1],",",df.iat[9, 1],",",df.iat[10, 1],",*")
EOD;
mkdir($chemin); // creation du dossier
file_put_contents($chemin.'/'.$script1, $python1); // Ecriture du fichier
}
$reponse1 = shell_exec('python3 '.$chemin.'/'.$script1); // execution du script
$scenario->setLog($reponse1); // recuperation des paramètres de retour du script
$tableau1 = explode(",", $reponse1);
$tags1['#ecu_id#'] = $tableau1[0];
$tags1['#lifetime_gene#'] = $tableau1[1];
$tags1['#last_sys_pwr#'] = $tableau1[2];
$tags1['#current_day#'] = $tableau1[3];
$tags1['#last_co#'] = $tableau1[4];
$tags1['#nb_ondul#'] = $tableau1[5];
$tags1['#nb_ondul_online#'] = $tableau1[6];
$tags1['#current_version#'] = $tableau1[7];
$tags1['#timezone#'] = $tableau1[8];
$tags1['#eth0_mac#'] = $tableau1[9];
$tags1['#wlan0_mac#'] = $tableau1[10];
//$tags['#puissondul3px2#'] = $tableau[11];
//$tags['#tempondul1#'] = $tableau[12];
//$tags['#tempondul2#'] = $tableau[13];
//$tags['#tempondul3#'] = $tableau[14];
//$tags['#commondul1#'] = $tableau[15];
//$tags['#commondul2#'] = $tableau[16];
//$tags['#commondul3#'] = $tableau[17];
//$tags = $scenario->getTags();
//$tags['#reponse#'] = $reponse;
$scenario->setTags($tags1);
et la gestion des tags :
avec une mise a zero que je conseille la nuit
enfin les virtuel où on ne fait qu’afficher les données comme par exemple :
en espérant que tu ai tout compris malgré ma pédagogie … nulle
je tiens, encore a signaler au puristes que je me suis débrouillé avec ce que je connais et ce que j’ai appris grâce a @olive.Il y a certainement plus simple ou plus propre mais ca marche