Connnexion Base de données Jeedom depuis client distant

Bonjour,

Je cherche à me connecter sur la base MySQL Jeedom afin de récupérer les données notamment sur « history ». Je suis plutôt novice sur tout ce qui base de données et config MySQL mais j’ai commencé à paramétrer l’accès depuis une application tiers, qui me retourne une erreur d’accès. J’aurais voulu savoir comment depuis Jeedom vérifier les droits d’accès, éventuellement créer un utilisateur dédié et être sûr de l’adresse sur laquelle je pointe. (actuellement mon adresse locale 192.168…, utilisateur jeedom et mot de passe indiqué à côté dans l’onglet _OS/DB.)
Quelqu’un pourrait-il m’aider sur ce sujet ? Je pense que cela a déjà été fait (yn).
Merci d’avance,

Bonjour,

La BDD MySQL n’est pas accessible en remote par défaut. Il faut modifier la config de MySQL pour l’autoriser et idéalement, il vaut mieux créer un utilisateur qui peut accéder en remote. L’utilisateur jeedom n’a que le droit en localhost.
How to do: https://mariadb.com/kb/en/configuring-mariadb-for-remote-client-access/

Bonjour henribi,

Merci pour cette réponse, je m’en étais douté.
Aurais-tu une explication un peu plus simple pour trouver le fichier à modifier ?

Merci d’avance,

Bonsoir,
Vous avez aussi phpMyAdmin, je l’utilise mais pas pour la base de Jeedom.

Sur mon installation le fichier à modifier est /etc/mysql/mariadb.conf.d/50-server.cnf
Il s’agit d’une VM sous Debian 10 et Jeedom 4.0.54

Bonjour,

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

Sinon api json avec getHistory()

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,

Bonjour Henribi,

Merci pour ton retour. Je vais tester cela quand j’aurais un peu de temps sûrement ce week-end :blush: et je te redirais si c’est ok :+1:

Hello @Jok3rnoir as-tu réussi ?

Bonjour @alexcrp,

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 :slight_smile:
Tu voudrais des informations par rapport à quoi ?

Merci @Jok3rnoir pour ta réponse.

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:

  1. tu mets le fichier .php directement à la racine du dossier html de Jeedom (via plugin Jeexplorer),
  2. ensuite tu accèdes au fichier php dans le navigateur
  3. Tu entres le Login + mdp
  4. Tu peux accéder à la DB et y faire toutes les modifs sur les valeurs enregistrées (avec la fonction recherche notamment plus rapide…)

Si cela t’intéresse tu peux jeter un œil ici:

Super merci pour l’astuce. Elle me sera sûrement très utile à un moment :blush::ok_hand:
Bonne journée.

Bonjour,

je tente aussi de me connecter à l’API RPC avec Windev, j’ai trouvé un bout de code ( JSON RPC restRequête et Jeedom - WINDEV 27 - Forums développeurs - PC SOFT ) mais impossible de passer une commande :confused:

Idéalement, j’aimera pouvoir faire un cmd::getHistory , mais bon, déjà, la commande « ping » renvoi une erreur :frowning:

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

Merci pour votre aide :slight_smile:

Hello,

Bon je suis dans le même cas.
Je développe en Windev et comme dit dans ma présentation, je souhaite migrer de HC2 et de mes IPX vers Jeedom.

Première étape me connecter à la BD :
Pour cela avoir un accès distant à celle-ci depuis Windows sachant que Jeedom est sur une Delta en VM.

Etape 2 :
Faire des requêtes pour créer les actionneurs virtuels dont j’ai besoin, scénarios et scripts.

@Jok3rnoir et @spamoi33 avez-vous réussi avec Windev et si oui avez un petit bon de code histoire de bien démarrer :wink:

Merci

Bonjour @garfield77

Oula ce sujet remonte :blush:
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 :wink:

Merci ton paratge sera bienvenu :slightly_smiling_face:.
Je teste aussi les API, RPC et Adminer pour voir si je peux injecter des scénarios.

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 :blush:

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 :sleepy: