Refus Jeelink

re,

Oui j’avais pas pris le temps de répondre, à force de test ;), je peux ouvrir l’accès au besoin :slight_smile:

Salut,

J’ai regardé vite fait ce matin, et il semble bien que le blocage se situe au niveau des clés API :

Il faudrait passer les logs API en debug dans la configuration générale de Jeedom pour avoir un peu plus d’infos

Merci @Salvialf
Je viens de les passer en débug. Je post dès que j’ai quelque chose.

Bonjour,
Si vous pouviez tester, sur un équipement qui est issu d’un virtuel sur votre jeelink cible de mettre la cle API virtuel du jeedom source pour confirmer une piste…

hello,

je regarde demain probablement dans la mesure du possible :wink:

1 « J'aime »

Hello @Phpvarious
Je regarde ça au plus vite.
Merci

Re,

Je me suis battu tout l’aprem avec une zigate qui va finir en orbite, du coup pas pu tester, désolé. Je n’aurais pas bcp de temps dans les prochains jours pour le faire non plus …

Bonjour tous,

J’ai passé en debug les log API et je ne vois rien de probant.
Essayé aussi de modifier les clef api coté cible en mettant la clef api zigbee source ou zwave ou jmqtt en fonction des objets jeelink remontés; même constat, refus côté source.

Bonjour a tous,
@Loic, je me permet de te taguer,
je vais expliquer mes recherches et « solutions »:

  • dans la function sendEqlogicToMaster() (L691) 'remote_apikey' => config::byKey('api')(L695)
    récupère l’API du core car
    $_plugin n’est pas renseigné
    celle-ci est envoyé avec le real_eqType soit le type de l’équipement (virtuel, jmqtt…)

  • Ensuite dans la function execute() (L490)
    $url = .... jeeApi.php?plugin=jeelink&type=cmd&apikey=' . $eqLogic->getConfiguration('remote_apikey');(L493)

donc le « cible » va exécuter la fonction avec les paramètres suivants :

  • plugin=jeelink
  • apikey=APIDUCORE

Résultat :
Le Jeedom source n’accepte pas la requête API car apikey (du core donc) ne correspond pas a l’apikey du plugin (jeelink).

Solution 1 (testé):
J’ai actuellement contourné le problème en modifiant la Ligne 493 :
$url = $eqLogic->getConfiguration('remote_address') . '/core/api/jeeApi.php?plugin=jeelink&type=cmd&apikey=' . $eqLogic->getConfiguration('remote_apikey');
par :
$url = $eqLogic->getConfiguration('remote_address') . '/core/api/jeeApi.php?&type=cmd&apikey=' . $eqLogic->getConfiguration('remote_apikey');

En faite en vérifiant pendant la rédaction de ce post, je m’aperçoit que c’est comme ceci qu’était la variable en stable.

Solution 2 : (pas testé)
modifier sendEqlogicToMaster() pour que le remote_apikey corresponde a l’apikey de real_eqType. mais en réfléchissant je doute que ce soit possible car tout les plugins ne génère pas d’apikey, :thinking: , ou peut-être faire une vérification avant et d’adapter remote_apikey et real_eqType en conséquence.

Désolé, j’ai essayé d’être le plus clair possible.
n’hésite pas si besoin.

Bonne journée.

Ok je vois il ne devrait pas envoyé la clef api du core mais sa propre clef api. Ca sera corrigé dans la beta de demain

Mais si il envoie sa propre clef api, ne retomberons pas dans un autre throw new Exception car si j’ai bien saisi l’ $url pour la fonction execute() sera de type :
/core/api/jeeApi.php?plugin=jeelink&type=cmd&apikey='APIJEELINKSOURCE'
et dans ce cas jeeApi (L78) refusera la requête du fait qu’on essaiera d’exécuter une commande (de EqType autre que jeelink) avec la cle api de jeelink !

Merci.

Non pas si votre core est bien a jour

ok, merci Loic.

Pour résumer, la version de demain contiendra le correctif mentionné et il faudra remettre la clef api jeelink source dans les eqp sur le jeelink cible? C’est bien ça ?

Normalement oui et bien mettre a jour le core en alpha (la beta n’a pas la correction encore)

Alpha des 2 cotés ? source et cible ? ou alpha coté source devrait suffir ?

Non de partout

Merci. Bonne nouvelle.
Par contre, je vais attendre la correction dans la bêta. Trop de risque de descendre jusqu’à l’alpha.

Re,

Bon j’ai maj ce matin en beta jeedom et jeelink, et à force de test j’ai du progrès

Presse-papier01

par contre vu que la remontée n’est pas instantanée, je ne sais pas ce qui fait que je note une amélioration

Edit: validé côté cible, mes capteurs source remontent bien

hello
Je confirme que les commandes passent maintenant de la source vers la cible.
Par contre, les infos en retour ne sont plus rafraichies !
Exemple :
Lumière avec On / Off / Etat, On et Off agissent bien sur la cible, mais état ne change pas.