Service ewelink en erreur

Merci pour la manip que j’allais te redemander.
Je tente de sortir ça demain matin mais vu mes compétences, je ne garanti pas un meilleur résultat que @pascal_sapin :yum:

Voici ce que j’en sors ce matin :face_with_raised_eyebrow:

2023-09-01T08:33:40+0200 <error> device.poll.js:23 (DeviceManager.poll) There was an error while polling device ewelink-10013a843f
2023-09-01T08:33:40+0200 <error> device.poll.js:24 (DeviceManager.poll) Error500:
    at EweLinkHandler.throwErrorIfNeeded (/src/server/services/ewelink/lib/device/index.js:65:11)
    at EweLinkHandler.connect (/src/server/services/ewelink/lib/device/connect.js:43:14)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
    at EweLinkHandler.poll (/src/server/services/ewelink/lib/device/poll.js:23:5)
    at DeviceManager.poll (/src/server/lib/device/device.poll.js:21:5) {
  status: 500,
  code: 'SERVER_ERROR',
  error: 'eWeLink: Sign:oauthClient enable invalid'
}
2023-09-01T08:33:40+0200 <error> device.poll.js:23 (DeviceManager.poll) There was an error while polling device ewelink-100183db8a
2023-09-01T08:33:40+0200 <error> device.poll.js:24 (DeviceManager.poll) Error500:
    at EweLinkHandler.throwErrorIfNeeded (/src/server/services/ewelink/lib/device/index.js:65:11)
    at EweLinkHandler.connect (/src/server/services/ewelink/lib/device/connect.js:43:14)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
    at EweLinkHandler.poll (/src/server/services/ewelink/lib/device/poll.js:23:5)
    at DeviceManager.poll (/src/server/lib/device/device.poll.js:21:5) {
  status: 500,
  code: 'SERVER_ERROR',
  error: 'eWeLink: Sign:oauthClient enable invalid'
}
2023-09-01T08:33:40+0200 <error> device.poll.js:23 (DeviceManager.poll) There was an error while polling device ewelink-100183d0f0
2023-09-01T08:33:40+0200 <error> device.poll.js:24 (DeviceManager.poll) Error500:
    at EweLinkHandler.throwErrorIfNeeded (/src/server/services/ewelink/lib/device/index.js:65:11)
    at EweLinkHandler.connect (/src/server/services/ewelink/lib/device/connect.js:43:14)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
    at EweLinkHandler.poll (/src/server/services/ewelink/lib/device/poll.js:23:5)
    at DeviceManager.poll (/src/server/lib/device/device.poll.js:21:5) {
  status: 500,
  code: 'SERVER_ERROR',
  error: 'eWeLink: Sign:oauthClient enable invalid'
}
2023-09-01T08:33:41+0200 <error> device.poll.js:23 (DeviceManager.poll) There was an error while polling device ewelink-1000b0b43e
2023-09-01T08:33:41+0200 <error> device.poll.js:24 (DeviceManager.poll) Error500:
    at EweLinkHandler.throwErrorIfNeeded (/src/server/services/ewelink/lib/device/index.js:65:11)
    at EweLinkHandler.connect (/src/server/services/ewelink/lib/device/connect.js:43:14)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
    at EweLinkHandler.poll (/src/server/services/ewelink/lib/device/poll.js:23:5)
    at DeviceManager.poll (/src/server/lib/device/device.poll.js:21:5) {
  status: 500,
  code: 'SERVER_ERROR',
  error: 'eWeLink: Sign:oauthClient enable invalid'
}
2023-09-01T08:33:41+0200 <error> device.poll.js:23 (DeviceManager.poll) There was an error while polling device ewelink-1000cf4d84
2023-09-01T08:33:41+0200 <error> device.poll.js:24 (DeviceManager.poll) Error500:
    at EweLinkHandler.throwErrorIfNeeded (/src/server/services/ewelink/lib/device/index.js:65:11)
    at EweLinkHandler.connect (/src/server/services/ewelink/lib/device/connect.js:43:14)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
    at EweLinkHandler.poll (/src/server/services/ewelink/lib/device/poll.js:23:5)
    at DeviceManager.poll (/src/server/lib/device/device.poll.js:21:5) {
  status: 500,
  code: 'SERVER_ERROR',
  error: 'eWeLink: Sign:oauthClient enable invalid'
}
2023-09-01T08:33:41+0200 <error> device.poll.js:23 (DeviceManager.poll) There was an error while polling device ewelink-1000cc65bd
2023-09-01T08:33:41+0200 <error> device.poll.js:24 (DeviceManager.poll) Error500:
    at EweLinkHandler.throwErrorIfNeeded (/src/server/services/ewelink/lib/device/index.js:65:11)
    at EweLinkHandler.connect (/src/server/services/ewelink/lib/device/connect.js:43:14)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
    at EweLinkHandler.poll (/src/server/services/ewelink/lib/device/poll.js:23:5)
    at DeviceManager.poll (/src/server/lib/device/device.poll.js:21:5) {
  status: 500,
  code: 'SERVER_ERROR',
  error: 'eWeLink: Sign:oauthClient enable invalid'
}
2023-09-01T08:33:41+0200 <error> device.poll.js:23 (DeviceManager.poll) There was an error while polling device ewelink-1000475e64
2023-09-01T08:33:41+0200 <error> device.poll.js:24 (DeviceManager.poll) Error500:
    at EweLinkHandler.throwErrorIfNeeded (/src/server/services/ewelink/lib/device/index.js:65:11)
    at EweLinkHandler.connect (/src/server/services/ewelink/lib/device/connect.js:43:14)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
    at EweLinkHandler.poll (/src/server/services/ewelink/lib/device/poll.js:23:5)
    at DeviceManager.poll (/src/server/lib/device/device.poll.js:21:5) {
  status: 500,
  code: 'SERVER_ERROR',
  error: 'eWeLink: Sign:oauthClient enable invalid'
}
2023-09-01T08:33:41+0200 <error> device.poll.js:23 (DeviceManager.poll) There was an error while polling device ewelink-10013a8d6a
2023-09-01T08:33:41+0200 <error> device.poll.js:24 (DeviceManager.poll) Error500:
    at EweLinkHandler.throwErrorIfNeeded (/src/server/services/ewelink/lib/device/index.js:65:11)
    at EweLinkHandler.connect (/src/server/services/ewelink/lib/device/connect.js:43:14)
    at processTicksAndRejections (node:internal/process/task_queues:95:5)
    at EweLinkHandler.poll (/src/server/services/ewelink/lib/device/poll.js:23:5)
    at DeviceManager.poll (/src/server/lib/device/device.poll.js:21:5) {
  status: 500,
  code: 'SERVER_ERROR',
  error: 'eWeLink: Sign:oauthClient enable invalid'
}

Malheureusement c’est les mêmes logs ça ne m’aide pas plus :stuck_out_tongue:

Est-ce que l’un d’entre vous peut me passer ses identifiants temporairement pour que je teste ?

Fait en mp

L’issue est connue du côté de la lib : Error: 406 { error: 406, msg: 'Authentication failed' } · Issue #221 · skydiver/ewelink-api · GitHub avec la nouvelle API, les choses ont changé. A suivre si une nouvelle version va arriver ou alors dans le thread il parlait de https://www.npmjs.com/package/ewelink-api-next qui semble plus récent.

Merci @tiboys je viens de voir, par contre effectivement @ProtZ a raison, la librairie n’est plus fonctionnelle, la conclusion sur le topic que tu cites est :

So in summary - its time to give up trying to make this project work (as it uses the old v1 endpoints and an outdated method of connection with a password stored in plain text in your code) and move to the meow common and more secure OAuth2.0 authorisation flow with the resultant token to use as a bearer token in future requests.

Même la lib « ewelin-api-next » n’est pas fonctionnelle apparement :

There is « start » of such a project at « ewelink-api-next » but it’s completely missing the OAuth stuff according to the TODO list and even I was unable to make it actually control my devices.

Malheureusement il n’y a donc pas de bug côté Gladys à corriger, ce que je vois c’est :

  • Dans un premier temps, déprécier l’intégration actuelle avec un message pour prévenir les utilisateurs pour éviter les frustrations comme ici.
  • Voir si une intégration est faisable avec la nouvelle API, il n’y a pas forcément besoin d’attendre une nouvelle lib Node, ça peut-être une intégration faites nous même avec l’API REST Ewelink. Je ne sais pas si tu veux te lancer là dedans @ProtZ ? :slight_smile:

Je suis entrain de rajouter un message pour éviter les frustrations :

La PR :

Merci pour les réponses , donc si je comprends bien plus possible d’utiliser mes devices sonoff en attendant, sauf de devoir tout flascher en tasmota par exemple?

Effectivement !

merci , je vais attendre alors en attendant j’utiliserais ewelink, pas envie de tout démonter pour flasher, mais c’est quand même dommage toutes ces apis qui changent sans arrêt, j’ai l’impression qu’on se dirigent tous vers du full ziegbee ?? patientons

1 « J'aime »

Pour information, je viens de faire quelques tests avec leur module nodejs, et tout est en erreur aussi.

Il semblerait qu’ils aient activer l’authentification OAuth2, et qu’il soit nécessaire de faire comme pour GoogleHome ou Alexa pour se connecter à son compte (mire de login de ewelink, échange de code, utilisation de client ID/secret…) et, si c’est le cas, cette intégration ne serait disponible que depuis Gladys Plus (une fois les modifications nécessaires apportées).

Je continue mes investigations en suivant les informations trouvées ici :

1 « J'aime »

Je ne comprends pas tout techniquement mais j’ai constaté une perte à la fois coté Gladys et coté IFTTT qui propose désormais le contrôle IFTTT/Ewelink via un upgrade du compte (€).
Je cherchais un service intermédiaire pour by-passer les actions mais en vain.
HomeAssistant semble faire partie des compatibilités donc leur principe de connexion a du devenir payant.
Merci pour le travail de recherche … :+1:

Une autre discussion qui annonce la fin de l’API v1 pour l’utilisation de l’API v2

Et voici la doc de l’API v2, avec le pricing à 2.000$ par an pour une entreprise.
Sinon le mode « personnel » est disponible, mais nécessite une configuration plus complexe de la part de l’utilisateur Gladys (créer une application sur https://dev.ewelink.cc/, attendre sa validation par les équipes eWelink, récupérer les client ID/secret OAuth2…).

A voir avec @pierre-gilles ce qu’on prévoit de faire :

  1. discuter avec eWelink pour voir s’ils font payer ce tarif à Gladys et intégrer l’OAuth2 dans Gladys Plus (comme pour Google ou Alexa)
  2. ouvrir le mode « personnel » avec un tutoriel pour bien configurer son compte
  3. on abandonne eWelink et on fait du DIY (DIY Sonoff pour une connexion locale), mais je ne pense pas que tous les appareils soient compatibles

Je ne sais pas combien de personnes utilisent Ewelink, mais 2000$ par an ça me parait compliqué pour l’instant même via Gladys Plus :sweat_smile:

Pour l’instant, je vois bien le 2. ou le 3.

Après, à voir aussi les plans d’Ewelink par rapport à Matter, est-ce qu’une intégration Matter pourrait pas résoudre ce souci si à terme les appareils Ewelink sont compatibles Matter ?

3 « J'aime »

Je pense que c’est une bonne piste Matter !!!
Je peux regarder rapidement ça avec Google Home comme testeur.

1 « J'aime »

@AlexTrovato Si tu veux du matos, dis moi je t’en paye :slight_smile:

1 « J'aime »

Du coup, le matériel Sonoff / eWelink que je possède n’est pas compatible Matter, mais j’ai posé la question d’une éventuelle mise à jour du firmware Sonoff pour les vieux devices afin de les rendre compatibles Matter.
J’ai cru trouver des simulateur des devices Matter, histoire de pouvoir faire quelques tests, et il me semble que la lib nodejs de Matter n’est pas complète, donc je vais commencer par le plus simple, intégrer un device on/off, et on fera évoluer le service par itération.

1 « J'aime »

Ok ça marche :slightly_smiling_face: après c’est toujours satisfaisant de voir que ça marche en réel, donc si jamais tu veux genre une prise connectée matter, fais moi signe !

La réponse de Sonoff :

Dear Alexandre Trovato,

Thanks for your email.

Since we have the matter device (MINIR4M), we do not have a plan to upgrade the firmware of old devices to make them Matter-compatible.

Regards,
Taylor in SONOFF

En attendant, Tasmota semble compatible :

Mais nodejs est assez pauvre en librairie pour le moment…

1 « J'aime »

Dommage !

Par rapport à Matter ? On a 2 options pour ça:

  • Soit on fait un service « natif » dans Gladys avec une lib Node.js Matter (mais du coup, à voir si leur lib officielle est utilisable ou pas encore)
  • Soit on lance un container comme on fait avec Zigbee2mqtt, et le container Matter de Home Assistant est open-source et a une API Websocket, on pourrait s’intégrer avec. Après, on devient très dépendant de leurs changements, et vu que c’est pas forcément un container fait pour être utilisé pour d’autres projets, l’API peut changer…

Si tu veux te lancer sur le sujet Matter, on peut en parler sur un sujet spécifique si tu veux :wink: