J’ai vu phpMyAdmin mais je veux y accéder par un autre soft.
Henribi,
Merci pour l’info, mais quelles sont les commandes pour accéder à MySQL (depuis Putty ? Jeedom ? ) pour accéder au fichier ? C’est un fichier texte ? Quels sont les modifs à ajouter ?
Merci d’avance
Pour modifier le fichier de conf:
via putty. attention respecter la syntaxe sudo
sudo su -
vi /etc/mysql/mariadb.conf.d/50-server.cnf
Pour modifier les autorisations mysql:
mysql --user=root --password=xxxxxx
Dans la connexion mysql. Pour donner à root le droit de se connecter en remote
grant all privileges on . to ‹ user ›@‹ IP › identified by ‹ new_passwd › with grant option;
IP peut être , % pour any IP ou à partir d’un ip_subnet ==> 192.168.11.%
Bonjour kiboost,
Cela m’intéresse je n’avais pas vu cette commande. En effet je travaille actuellement avec l’API jeedom mais en requete URL mais toutes ne fonctionne pas ( ou je les utilise mal) mais via l’URL « FullData » j’arrive à tout reprendre et séparer selon mes besoins. Je commence à comprendre l’exploitation d’un Json. En revanche j’avais vu la partie API Json qui paraît beaucoup plus complète mais j’ai coincé sur son utilisation. J’ai trouvé un bout de code en WLangage mais qui ne fonctionne pas chez moi. Si tu sais m’en dire plus sur comment l’exploiter je suis preneur ? ( je ne connais assez peu tout ce qui est php, html, Javascript, j’ai commencé à faire du développement depuis plusieurs mois avec Windev) Merci d’avance,
Je n’ai pas tout à fait réussi à faire ce que je souhaitais dans mon premier message mais j’ai réussi à me connecter et récupérer l’ensemble des informations que j’avais besoin (Objets>Équipements>Commandes>Valeurs). J’ai travaillé sur du code en Windev. Mais par contre depuis je n’ai pas eu le temps de travailler davantage dessus. La communication étant trouvée, je devrais avancer plus facilement quand j’aurai un peu de temps
Tu voudrais des informations par rapport à quoi ?
J’avais fait une bêtise en paramètrant une sonde de température et j’avais une valeur improbable de température en degrés Celcius « 11.8525.85 » enregistrée dans la BD et cela me remontait une erreur plusieurs fois par jour, j’en était à plus de 300 (!).
Du coup je cherchais un moyen d’accéder à la BD pour modifier la valeur qui posait problème.
En cherchant, j’ai trouvé la méthode expliquée par @agp.com en utilisant le soft « Adminer » et c’est nickel:
tu mets le fichier .php directement à la racine du dossier html de Jeedom (via plugin Jeexplorer),
ensuite tu accèdes au fichier php dans le navigateur
Tu entres le Login + mdp
Tu peux accéder à la DB et y faire toutes les modifs sur les valeurs enregistrées (avec la fonction recherche notamment plus rapide…)
Idéalement, j’aimera pouvoir faire un cmd::getHistory , mais bon, déjà, la commande « ping » renvoi une erreur
Est-ce qu’il faut absolument être en https pour utiliser l’API RPC ? Et si oui, comment faire ?
Voici le message d’erreur:
{"jsonrpc":"2.0","id":99999,"error":{"code":1,"message":"Requ\u00eate invalide. Version JSON-RPC invalide : "}}
Voici mon code (Windev, pas taper !!):
sRequeteRPC est une chaîne = [
{"jsonrpc": "2.0",
"method": "jeedom::isOk",
"params": {"apikey": "xxxxxxx"},
"id": "1"}
]
maRequete est un restRequête
maRequete..Entête["Content-Type"] = "application/json"
maRequete..URL = "http://192.168.1.199/core/api/jeeApi.php"
maRequete..Contenu = ChaîneVersUTF8(sRequeteRPC)
maRequete..Méthode = httpPut OU httpGet OU httpPost
cMaReponse est un restRéponse = RESTEnvoie(maRequete)
SI ErreurDétectée ALORS
Erreur(UTF8VersChaîne(ErreurInfo(errComplet)))
SINON
Trace(UTF8VersChaîne(cMaReponse..Contenu))
FIN
Oula ce sujet remonte
Et malheureusement je n’ai pas plus avancé depuis mon dernier post lol
Mais j’avais quand même réussi à me connecter et récupérer et traiter des datas en json sur Windev.
Je devrais pouvoir partager un bout de code si tu veux
Pas de souci je vais tâcher de faire ça dans le week-end.
Par rapport à ton projet ambitieux lol as tu regardé, il y a un plugin IPX sur Jeedom ? Je n’ai jamais utilisé mais je sais que ça existe
Oui le plugin IPX v3 est un legacy et ne fonctionne pas sur Jeedom v4 (du moins pour les tests réalisés).
J’ai 6 IPX avec des extensions et 1 eco device, soit environ 150 actionneurs et capteurs, il faut vraiment que j’automatise l’injection de ces scripts avec les bons id, d’où un développement Windev.
Je n’ai pas trouvé d’API pour injecter un script, automatiser un CRON, etc …
La HC2 de Fibaro était un mauvais choix
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.
Ah mince dommage…
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
De rien 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.