API Ecodevice 3

Bonjour à tous

J’ai eu un mal fou à trouver la doc API de l’EDRT 3. Je la trouve dans un topic sur ce forum grace au lien de @fgtoul

Avant de migrer sur mon HA de RT2 vers RT3, je dois m’assurer de pouvoir récupérer toutes les valeurs que j’'utilisais via plusieurs mécanismes avec le RT2 (2 API différentes : /user/status.json + /admin/toreSensor.json + intégration RT2 HA).

J’ai donc connecté le RT3 en volant sans rien pour l’instant. Je ne trouve pas ou configurer la téléinfo.

J’ai créé une clé API (Les droits user / observer ne sont pas clairs ou pas documentés). Je suppose que le filtrage par adresse IP nécessite de mettre 255.255.255.0 pou utiliser l’API d RT3 sur tout le sous réseau du LAN. Que veut dire la valeur par défaut 255.255.255.255 ? En réseau cette valeur veut dire qu’on autorise uniquement un /32 donc qu’une seule IP. Cela n’a pas de sens dans ce cadre la. Il m’aurait plutôt pertinent de mettre par défaut une valeur correspondant à l’IP / masque récupérée par le DHCP voir 255.255.255.0 par défaut.

Ensuite quand je tente d’utiliser ça par exemple dans chrome

http://192.168.2.240/ip/api/object/tarif?ApiKey=MACLEAPI (avec la bonne clé), j’ai une page vide. Idem pour l’api correspondant à la TIC.

Y aurai t-il une subtilité ?

D’ailleurs si je met une clé API fausse, je n’ai même pas de message unauthorized ou équivalent

PS : La partie SNTP et mise à jour de l’heure semble ne pas fonctionner. Pour que ça fonctionne, il est nécessaire de désactiver SNTP et le réactiver. Bug de jeunesse :grinning_face:

Bonjour @loic69

Il y a là des outils pour visualiser les appel API vers l’ED3 et la réponse :wink:

Je viens de voir Merci !

J’ai un :cross_mark: Erreur HTTP 401 (12 ms). Je creuse. Etrange ma clé API est bonne

EDIT à mon post précédent.

Ca venait du champ Vérouillage IP : 255.255.255.255.

Si je met 255.255.255.0, ça fonctionne pas. Je suis obligé de laisser 4x 255.

C’est pas logique car je souhaite autorisé le RT3 sur tout mon LAN. Je pense que c’est un bug

EDIT 1 : J’en profite pour te demande si tu as trouvé le paramétrage de la TIC ? Je n’ai pas trouvé dans les menus

EDIT 2 : Dans ton outil il ne semble pas y avoir les endpoints API Object ED3 pour lire les valeurs instantanées des torres par exemple celles- ci API ED3

il y a ip/ en trop dans votre requête qui devrait être
http://192.168.2.240/api/object/tarif?ApiKey=MACLEAPI.

Ne pas changer le champ verrouillage IP, laisser la valeur par défaut.

oui, GCE a oublié de partager l’URL, ce sera fait sous peu.

OK c’est bon oui il y avait un doublon. Merci.

En revanche je cherche l’api pour changer l’état d’un relais unique (sans changer l’autre).

la commande suivante permet de changer l’état des relais mais des 2 en meme temps. Je n’ai pas trouvé la solution pour n’en changer qu’un seul. Si je met une chaine vide, ça faut false…

Qu’en dites vous ?

PUTRelay 1 On

IP/api/object/ed3/0?ApiKey=apikey

Cette requête permet d’activer le relais 1 de l’EcoDevice 3.

A noter : la commande agit comme un ON et non comme un OFF.
Pour désactiver le relais, il faut donc transmettre une commande false.

L’état actuel du relais est transmis dans le champ « Relay_state ».

PARAMS

ApiKey=apikey

Bodyraw (json)

json

{
    "Relay_command": [
        true,
        false
    ]
}

Bonjour loic69,
cette commande nécessite effectivement l’envoi du statut pour les 2 relais, je n’ai pas trouvé d’autre commande.

Je vais demander â @GCE .

Une petite idée ?

j’ai fait une demande d’évol.
Pour le moment le pilotage séparé des relais n’est pas prévu.

Ok merci.

C’est une petite évolution à faire.

Quelques pistes :

  • Creer un endpoint complementaire permettant de lire ou écrire un relais à partir de son index. Bien prendre en compte également le fait qu’On peut avoir un X8R (ce qui est mon cas)
  • Peut etre plus simple mais moins propre, modifier la définition json pour accepter une 3eme valeur autre que true / false, qui permet de ne pas modifier l’Etat d’Un relais.

J’avais oublié dans l’outil l’objet ED3, il faut télécharger la maj

donc il faut envoyer dans le body avec true pour le relais 1 …et la valeur du relais 2 à null pour pas la modifier :
{
« Relay_command »: [
true,
null
]
}

chez moi, l’envoi de null est compris comme un false et fait donc un off sur le relai :slight_smile:

avant push :

après push:

Oui effectivement j’ai vu ce comportement. J’ai testé 2, 3 autres valeurs également mais sans succès

damned effectivement ca change rien si c’est déjà à false et n’importe quelle valeur le passe à false…fausse piste donc ! :worried:

Il y a donc une regression par rapport à l’API du RT2. Je viens de regarder.

Avec la commande Set R on pouvait bien activer ou désactiver un seul relais.

C’est étonnant que ça ne soit pas prévu dans l’API du RT3 qui semble sur la meme base que l’IPX 800…

Pour moi ce n’est donc pas gérable en l’état car il faudrait d’abord lire la valeur avant de modifier le relais en question. Ce qui peut poser de nombreux problèmes en cas de changement simultanée de plusieurs relais…

EDIT : effectivement le plus simple pour avoir cette évolution serait de conserver le même endoint mais en gérant le null pour ne pas modifier le relais qui comporte le null