Historique via API

Bonjour à tous,

Désolé si cette question a déjà été demandé mais je n’ai rien trouvé de semblable dans le forum.

Présentation: pour des choix personnels je ne me sert pas de la partie design de Jeedom mais j’héberge une interface sur un serveur web. Je transmets les données via l’api entre autre.

Besoin: j’aimerais pouvoir accéder à un historique et à le transmettre via api à mon interface.
Du coup est-il possible de placer un ou plusieurs historique à une variable ou un virtuel afin de le récupérer en json et le parser dans mon interface.
Le top serait un virtuel qui regroupe 3 cmd info: l’historique température, humidité et pression atmosphérique de mon capteur sur la journée que j’appellerai via api et j’insèrerai dans mon interface :slight_smile:

Pensez vous que c’est possible???

Et je précise je ne veux pas de iframe ou autre :wink:

Merci à vous et bon dimanche.

Avec un bloc code dans un scénario, tu construis ton JSON, puis tu l’affecte à une commande info d’un virtuel.

https://doc.jeedom.com/fr_FR/core/4.0/jsonrpc_api
Pas besoin de (encore) virtuels …

C’est clair!!!

Merci à vous 2 pour les réponses. Désolé mais je ne maîtrise pas vraiment toutes spécificités de Jeedom.
Ce que je comprends c’est un scénario avec bloc code, ensuite via l’ID du capteur je récupère le cmd::getHistory et ensuite je le converti en json pour le récupérer par la suite?
J’ai bon?
Je vais continuer mes recherches mais si vous avez des exemples parlant je suis preneur :wink:
Merci à vous :+1:

bonjour,

Apres pas mal de découverte des fonctions voici un code qui fonctionne plutot bien pour mon cas.
Je récupère l’historique depuis minuit et ensuite je crée un json.
Je le partage ça peut servir :slight_smile:

Merci

$cmd = "#[Maison][Résumé Global][Température]#";
$cmdName = cmd::byString($cmd)->getHumanName();
$cmdId = cmd::byString($cmd)->getId();
$debut = date("Y-m-d H:i:s", strtotime("Today"));
$fin = date("Y-m-d H:i:s", strtotime("Now")); 
$values = history::all($cmdId, $debut, $fin);
$json = '{"Name":"'.$cmdName.'","Value":{id:'.$cmdId.',info:[';
foreach ($values as $value) {
  $date = $value->getDatetime();
  $temp = $value->getValue();
  $json .= "{value:".$temp.",date:\"".$date."\"},";
}
$json .= "]}}";
1 « J'aime »

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.