Connnexion Base de données Jeedom depuis client distant

Pour me connecter à la Base de Données de mon Jeedom, j’utilise Adminer.
Il suffit de récupérer le fichier « adminer-4.8.1.php » sur cette page => Adminer - Database management in a single PHP file
Puis via l’« Editeur de Fichier » (menu « Réglage » → « Système »), tu copies le fichier « adminer-4.8.1.php » à la racine du dossier « html » où tous les fichiers de Jeedom sont installés.
Il te suffit ensuite d’aller à la page « http://IP_de_ton_Jeedom/adminer-4.8.1.php » (ça fonctionne aussi si tu as un nom de domaine et que tu peux accéder à ton Jeedom depuis l’extérieur de chez toi) et de rentrer les paramètres suivants :

  • Système => MySQL
  • Serveur => localhost
  • Utilisateur => jeedom
  • Mot de passe => Celui indiqué dans l’onglet « >_OS/DB » du menu « Réglages »->« Système »->« Configuration »
  • Base de données => jeedom
  • Cocher la case « Authentification permanente »
    Et cliquer sur le bouton « Authentification »

Tu auras accès à toutes les tables qu’utilise ton Jeedom. A utiliser avec prudence.


@_screenshot_178

Ah mince dommage… :confused:
Oui en effet, il faut pouvoir récupérer les infos.
Tous les ID tu peux les récupérer dans l’onglet « Résumé Domotique ».
Sinon je te partage un bout de code pour récupérer des datas de Jeedom avec Windev. J’ai retrouvé mon programme de l’époque mais j’ai perdu des éléments…
J’espère ça te sera utile, j’avais fait un test pour récupérer une température par exemple.

bResLancement est un booléen = HTTPRequête("https://"+gsIP_JEEDOM+"/core/api/jeeApi.php?apikey="+gsAPIKEY+"&type=cmd&id=1197")
SI bResLancement = Vrai ALORS
	ResCode est une chaîne = HTTPDonneRésultat()
	SAI_Temp_Salon..Valeur = ResCode
FIN

Ensuite il te faut mettre dans tes variables globales, « gsIP_JEEDOM », soit ton IP de Jeedom ou le lien DNS d’accès externe ça fonctionne. Pour ton « gsAPIKEY », tu peux la retrouver dans Configuration \ Clé API et c’est la clé de la première ligne. Le chiffre 1197 est l’id de la commande que je voulais récupérer. Ici elle est en fixe, mais elle peut être bien sûr dynamique.

Voilà j’espère ça pourra t’aider à comprendre. Je t’invite à regarder la page suivante également pour comprendre comment récupérer les infos :
https://doc.jeedom.com/fr_FR/core/4.3/api_http

Merci @Chanchan_BZH et @Jok3rnoir je vais creuser cela :wink:

De rien :blush: Et tu peux utiliser aussi la ligne Full Data (dans le lien transmis) pour récupérer un maximum d’informations Objets/ Commandes / Valeurs… qu’il faudra traiter dans une table pour tout séparer. J’avais réussi à le faire en creusant un peu et je n’ai pas un grand niveau sur Windev lol

Après de nombreux tests infructueux, droits d’accès, configuration MySql et Windev, etc …, j’ai trouvé sur un GitHub comment implémenter des API REST de façon simple :
https://github.com/mevdschee/php-crud-api
Il suffit de mettre api.php à la racine du dossier html après avoir fixé le login et base Jeedom comme indiqué sur le GitHub.

Ensuite en Windev pour récupérer tous les enregistrements en JSON de la table cron :
cMaRequête est un httpRequête
cMaRequête.URL = ''http://ip_de_la_jeedom/api.php/records/cron"
cMaRequête.Méthode = httpGet
cMaRéponse est un httpRéponse = HTTPEnvoie(cMaRequête)

Pour finir, il faut traiter cMaRéponse.Contenu en Windev comme bon vous semble.
Avec cette API, vous pouvez traiter facilement les ajouts, suppressions, modifications, etc …, quel que soit le langage de programmation.

Bien sûr Adminer est toujours nécessaire pour connaitre la structure des tables.

Voilà si cela peut aider.