Par contre impossible de récupérer les valeurs des données bx_gsm et autres avec le plugin script paramétré en JSON.
Auriez vous une autre astuce svp ?
Merci par avance
Existe t’il une méthode similaire avec le plugin qui permettrait aussi de récupérer la donnée d’heure pour chaque donnée ou suis je obliger de passer par un scénario avec une boucle foreach par exemple ?
Dans ce cas la comment peut on décoder les données de date et heure ?
Le but serait de déclencher une fois par jour le script ou le scénario pour récupérer les données horodatées.
Merci pour ton retour.
Le code ci dessous fonctionne bien.
Par contre comment rentrer l’horodatage d’une valeur pour un virtuel ?
Je sais envoyer une valeur à un virtuel mais pas horodater cette valeur (en espérant être clair)
//Recuperation du contenu du fichier (JSON complet)
$api = "https://services.swpc.noaa.gov/json/goes/primary/differential-electrons-6-hour.json";
$json = file_get_contents($api);
//Decodage du JSON
$jsonData = json_decode($json,true);
foreach($jsonData as $day_data)
{
//Décodage de la date
$timestamp =strtotime($day_data['time_tag']);
$date_jour = date("d-m-Y", $timestamp);
$heure = date('h:m:s', $timestamp);
//Décodage des autres données
$flux = $day_data['flux'];
$energy = $day_data['energy'];
//Debug : affichage des données récupérées
$scenario->setlog($heure);
$scenario->setlog($energy);
}
Re,
Pour être plus clair, tu veux dire que pour chaque valeur tu veux stocker la date de collecte de la valeur.
Si c’est bien cela, alors regarde la fonction event de la commande, elle compren deux paramètres : la valeur et la date de collecte.
Pour faire simple :
Il faut que tu retrouves l’id de la commande qui correspond à la donnée flux ( indiqué dans to virtuel).
Puis , si l’id de la data flux a la valeur 100 par exemple,
$_id = cmd::byId(100);
if(is_object($_id)) {
$_id->event($flux, $timestamp);
}
Faire la même chose pour la valeur energy.
A+
Bernard
Il est possible de retrouver l’id de la commande en fournissant une chaîne de caractères ainsi :
$_id = cmd::byString(’#[objet name][eqlogic name][cmd name]#’);
RE,
Effectivement la date doit être passée au format string et non timestamp.
Pour le reste, stockage de la valeur, ici tu vas stocker toutes les valeurs même si elles restent identiques.
A toi de voir si cela convient ou non. Le cmd->event tient compte de la répétition ou non des valeurs.
A+
Bernard