Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Problème de connexion (version anterieure a gen4) #7

Open
abraracourcix67 opened this issue Dec 16, 2023 · 35 comments
Open

Problème de connexion (version anterieure a gen4) #7

abraracourcix67 opened this issue Dec 16, 2023 · 35 comments
Assignees
Labels
enhancement New feature or request

Comments

@abraracourcix67
Copy link

Bonjour

Je pense être sur une version antérieure à la Gen4 du coup mes codes d'accès ne fonctionnent pas.Je me connecte avec mail et mdp.
Capture d'écran 2023-12-16 123054
Je vous mets l'image de l'appli que j'utilise.
Capture d'écran 2023-12-16 123636

Cordialement
Franck

@ZoomeoTooknor
Copy link

Hello Mateo,

First, thanks for you job.
I Have the same issue than Franck, with the message "Failed to connect".
Can you help me please ?

Best regards

@MateoGreil
Copy link
Owner

Bonjour,
Pouvez vous m'envoyer les logs lié à cette erreur s'il vous plaît ?

Vous les trouverez dans :
Paramètres -> Système -> Journaux, dans la partie core, vous pouvez chercher comwatt ça devrait vous afficher le log en question. S'il ne s'affiche pas ne pas hésiter a reproduire le bug puis regarder à nouveau les logs.

@abraracourcix67
Copy link
Author

Bonsoir

Voilà ce que j'ai trouvé:
Logger: homeassistant.loader
Source: loader.py:581
First occurred: 22:14:10 (5 occurrences)
Last logged: 22:14:10

We found a custom integration tapo which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant
We found a custom integration tapo_control which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant
We found a custom integration hacs which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant
We found a custom integration comwatt which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant
We found a custom integration google_home which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant

Merci pour votre aide.

@abraracourcix67
Copy link
Author

Je viens de relancer.
2023-12-17 22:51:05.626 WARNING (SyncWorker_2) [homeassistant.loader] We found a custom integration comwatt which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant

@ZoomeoTooknor
Copy link

Bonjour Mateo,

Voici mon log :

2023-12-17 07:46:07.606 WARNING (SyncWorker_3) [homeassistant.loader] We found a custom integration comwatt which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant

@MateoGreil MateoGreil added the bug Something isn't working label Dec 18, 2023
@MateoGreil
Copy link
Owner

MateoGreil commented Dec 19, 2023

Effectivement, c'est parce que j'utilise l'api https://energy.comwatt.com/api
Tu utilises sur ta capture d'ecran go.comwatt.com, il semble que cette application n'utilise pas la meme API.

N'est-ce pas possible pour les versions anterieurs a la gen4 d'utiliser energy.comwatt.com ?

Je ne suis pas certain que les endpoints soient les memes, mais sinon on peut essayer d'utiliser go.comwatt.com a la place 🤔

@abraracourcix67
Copy link
Author

Bonjour

Impossible de me connecter sur energy

image

Tu penses pouvoir faire quelque chose?

Merci quand même pour le temps passé.

Franck

@MateoGreil
Copy link
Owner

Yes, j'ai ajouté la possibilité d'utiliser l'api go.comwatt.com/api ici,
Il faudrait maintenant l'essayer,
Le mieux serait que je vous fasse les modifications, mais que vous les appliquiez vous-meme avec un editeur de texte, afin d'etre certain que ca fonctionne avant que je release cette nouvelle version.
Si je vous fait les modifications sur l'integration, saurez-vous modifier vos fichiers avec l'add-on File editor par exemple ?

@ZoomeoTooknor
Copy link

Pour ma part, je devrais pouvoir le faire.
Il faut juste quelques explications et nous indiquer ce que l'on doit modifier

@MateoGreil
Copy link
Owner

Je prepare ca quand j'ai du temps

@abraracourcix67
Copy link
Author

Bonjour
Merci pour votre réactivité.
Je suis débutant et vraiment pas sur de savoir faire les modifs, je pense que cela vaut mieux.

Encore merci

@MateoGreil MateoGreil self-assigned this Dec 22, 2023
@MateoGreil MateoGreil added enhancement New feature or request and removed bug Something isn't working labels Dec 22, 2023
@MateoGreil
Copy link
Owner

Hello, je viens de regarder et j'ai bien l'impression que ce n'est pas la même API. Donc changer l'URL ne suffira pas, il va falloir refaire tout le travail que j'avais fait pour comprendre quel endpoint permet d'avoir quelle info.

J'ai tout de même codé les modifications. Si @ZoomeoTooknor tu peux essayer et me confirmer que ça ne fonctionne pas : https://github.com/MateoGreil/homeassistant-comwatt/pull/8/files (il faut appliquer les mêmes changements, redémarrer Home Assistant et retenter la création).

Ce qu'il risque de se passer à mon avis : l'authentification va réussir, mais tes appareils ne vont pas être ajoutés. J'attends ton retour pour avancer sur le sujet.

@MateoGreil MateoGreil changed the title Problème de connexion Problème de connexion (version anterieur a gen4) Dec 22, 2023
@MateoGreil MateoGreil changed the title Problème de connexion (version anterieur a gen4) Problème de connexion (version anterieure a gen4) Dec 22, 2023
@ZoomeoTooknor
Copy link

ZoomeoTooknor commented Dec 23, 2023

Hello @MateoGreil,

J'ai bien apporté les modifications, mais effectivement, malgré le fait de cocher "go" sur l'écran de configuration, le module a bien été activé, mais on ne récupère pas la liste des appareils :
screenshot
screenshot2

@ZoomeoTooknor
Copy link

ZoomeoTooknor commented Dec 23, 2023

@MateoGreil, si je comprends bien, le souci vient du fichier sensor.py où on ne récupère pas les sites ou les devices...
Je peux peut-être te donner un coup de main, je suis développeur logiciel de métier, mais jamais fais python.
Comment est-ce que je peux debugger du python ?
Quel éditeur de code utilises tu ?

Sauf si tu penses pouvoir t'en sortir ;)

@MateoGreil
Copy link
Owner

MateoGreil commented Dec 23, 2023

En fait le problème vient du fait que l'API go et energy sont différentes.
Si tu veux avancer sur le sujet, il va falloir regarder sur une page internet tous les échanges entre le navigateur et le serveur, pour essayer de comprendre comment fonctionne cette API.
Vu que je n'ai pas de box gen3, je ne vais rien pouvoir faire.

En fait le problème ne vient pas de ce projet, mais plutôt de https://github.com/MateoGreil/python-comwatt-client.
Les endpoints sont différents.

@ZoomeoTooknor
Copy link

@MateoGreil, et si je te communiques en privé mes identifiants ?

@MateoGreil
Copy link
Owner

C'est pas très sain de partager ses identifiants avec un inconnu,
Mais oui, on peut faire comme ça.
Après honnêtement sachez que je vais prioriser les autres problèmes a celui ci.

@ZoomeoTooknor
Copy link

@MateoGreil, je comprends et tu as raison, mais les données perso y sont très limitées.
Sinon, peux-tu juste me dire comment analyser le trafic entre le navigateur et le serveur ?
via la console navigateur de chrome ?
par wireshark ?

@ZoomeoTooknor
Copy link

@abraracourcix67 , pour info. sur ta première capture d'écran, tu as pensé à cacher ton nom en haut à droite, mais pas dans le fil d'ariane à gauche de la fenêtre

@ZoomeoTooknor
Copy link

@MateoGreil, j'ai extrait les trames et les URL appelées à la connexion.
Je ne sais pas comment ça se passe avec une GEN4, mais là voici le déroulé

Authentification : https://go.comwatt.com/api/v1/authent
Récupération infos utilisateurs : https://go.comwatt.com/api/users/authenticated
Récupération identifiant box GEN3 : https://go.comwatt.com/api/indepboxes?ownerid=
Récupération infos box : https://go.comwatt.com/api/indepboxes/byMacAddress/{MacAdressBox}

Après j'ai un ensemble d'appels aux URL suivants :
wss://frontage.go.comwatt.com/ws
https://go.comwatt.com/api/products/1
https://go.comwatt.com/api/devices?indepbox_id=

Tu crois qu'avec ça tu peux faire quelque chose ?

@ZoomeoTooknor
Copy link

ZoomeoTooknor commented Dec 25, 2023

En utilisant Postman je suis parvenu à exploiter quelque chose.
Je te joins les réponses des API en JSON
Concernant l'intégration dans ton code, j'ai un peu plus de mal.

Récupération des infos client
url : https://go.comwatt.com/api/users/authenticated
reponse_authenticated.json

Récupération des infos de la box
url : https://go.comwatt.com/api/indepboxes?ownerid=0000
reponse_indepbox.json

Récupération des Devices
url : https://go.comwatt.com/api/devices?indepbox_id=99999
reponse_devices.json

URL Agrégation :
https://go.comwatt.com/api/aggregations/raw?device_id=00000&measure_kind=VIRTUAL_QUANTITY&measure_type_id=1&level=HOUR&start=2023-12-24%2004:45:10&end=2023-12-25%2004:45:10&mm=
réponse :
[
0.12433334,
0.0,
0.0,
0.0,
2.7256665,
348.24313,
967.1543,
1112.4778,
1087.3358,
948.75226,
666.2195,
301.84073,
21.26233,
7.1896667,
0.0039999997,
0.23733333,
0.0,
0.0,
0.118666664,
0.13233334,
0.39200002,
0.40533334,
0.12965517,
0.0
]

https://go.comwatt.com/api/aggregations/raw?device_id=00000&measure_kind=QUANTITY&measure_type_id=1&level=HOUR&start=2023-12-24%2004:45:10&end=2023-12-25%2004:45:10&mm=
réponse : [
0.12433334,
0.0,
0.0,
0.0,
2.7256665,
348.24313,
967.1543,
1112.4778,
1087.3358,
948.75226,
666.2195,
301.84073,
21.26233,
7.1896667,
0.0039999997,
0.23733333,
0.0,
0.0,
0.118666664,
0.13233334,
0.39200002,
0.40533334,
0.12965517,
0.0
]

https://go.comwatt.com/api/aggregations/networkstats?indepbox_id=00000&level=HOUR&measure_kind=QUANTITY&start=2023-12-24%2004:45:10&end=2023-12-25%2004:45:10
réponse :
[
{
"productionFlow": 0.0,
"consumptionFlow": 401.74597,
"networkOutput": 0.0,
"networkInput": 401.74597,
"autonomyRate": 0.0,
"autoconsumptionRate": 0.0,
"networkOutputRate": 1.0,
"networkInputRate": 1.0
}
]

@ZoomeoTooknor
Copy link

Bonjour @MateoGreil,

j'ai commencé à modifier le projet 'python-comwatt-client-main' en rajoutant les éléments suivants :
client.py :

def get_user_details(self, owner_id):
    """
    Retrieves information about the user's details.

    Args:
        None

    Returns:
        dict: Information about the authenticated user.

    Raises:
        Exception: If an error occurs while retrieving the information.

    """

    url = f'{self.base_url}/api/indepboxes?ownerid={owner_id}'

    response = self.session.get(url)
    if response.status_code == 200:
        return response.json()
    else:
        raise Exception(f'Error retrieving user details : {response.status_code}')


def get_go_devices(self, indepbox_id):
    """
    Retrieves a list of devices for the specified site.

    Args:
        indepbox_id (str): The ID of the box.

    Returns:
        list: A list of devices.

    Raises:
        Exception: If an error occurs while retrieving the devices.

    """

    url = f'{self.base_url}/api/devices?indepbox_id={indepbox_id}'

    response = self.session.get(url)
    if response.status_code == 200:
        return response.json()
    else:
        raise Exception(f'Error retrieving sites: {response.status_code}')

@ZoomeoTooknor
Copy link

Hello @MateoGreil,

Pour le reste des modifications, je pense qu'il faut modifier le projet homeassistant-comwatt, notamment le sensor.py ("async_setup_entry").
Est-ce que c'est bien ça ?

Au lieu de récupérer les sites, je dois appeler get_user_details, puis get_go_devices, c'est ça ?

@MateoGreil
Copy link
Owner

MateoGreil commented Jan 3, 2024

Hello @ZoomeoTooknor,

Le reste des endpoints utilisé dans le client python de l'API ne semble pas identique avec ceux que tu as cité ici.
Donc je pense le plus simple est probablement de créé un nouveau client python pour l'api go, de reprendre tous les endpoints que tu as cité, et ensuite nous pourrons adapter l'integration comwatt avec ce nouveau client.

@MateoGreil MateoGreil removed their assignment Jan 3, 2024
@ZoomeoTooknor
Copy link

Hello @MateoGreil

Quand tu parles du client python à reprendre, tu parles bien du projet que j'ai commencé à modifier ?
Si oui, ok, je vais repartir de celui-ci, enlever les procédures non utiles pour "Go-Comwatt", et implémenter les nouvelles.
Tout du moins je vais essayer, c'est la première fois que je fais du python ;)

Déjà, est-ce que les deux procédures que j'ai copié plus haut te semblent correctes ?

@abraracourcix67
Copy link
Author

Bonjour
Merci pour le boulot que vous faites . Je suis désolé de ne pas pouvoir vous aider mais je n'ai aucune connaissance en programmation. Je ne pourrais que vous remonter mes observations lors des tests.

Merci encore

@ZoomeoTooknor
Copy link

Hello @MateoGreil,

Je pense avoir intégré tous les endpoints et fait le ménage dans les endpoints non utiles pour utiliser go.comwatt.
Peux-tu y jeter un oeil, et éventuellement me guider pour la suite ?
client.py.zip

Merci d'avance

@MateoGreil
Copy link
Owner

Bonjour @ZoomeoTooknor ,

Etant donne que je n'ai pas de box gen3, je ne vais pas pouvoir tester ton client.
Mais si tu l'as testé et que cela te semble fonctionnel :
L'étape suivante est de créé un nouveau repo git, et un package pypi, pour ensuite pouvoir etre capable de l'utiliser dans cette integration HomeAssistant.

Si tu ne sais pas comment faire dis le moi je peux reprendre la main a partir de maintenant si tu preferes, tu as deja bien avancé sur la partie que je ne pouvais pas faire !

@ZoomeoTooknor
Copy link

Bonjour @MateoGreil,

Alors je n'ai pas fait de tests fonctionnels, car je ne vois pas comment appeler chacune de mes définitions...
Après, j'ai repris les URL que j'ai testé sous Postman, et recopier les paramètres.

Je veux bien créer un dépôt git, mais encore une fois, c'est une première pour moi.

Et je pense que ça serai dommage de créer un nouveau dépôt/projet, alors que tu as déjà un projet et un dépôt pour Comwatt.

Mais si tu penses que c'est mieux ou que tu n'as pas le temps de le faire, je peux tenter le coup.... avec un peu d'assistance de ta part ;)

@MateoGreil
Copy link
Owner

J'ai créé ce repo pour ce nouveau client :
https://github.com/MateoGreil/python-comwatt-client-legacy
Le python package :
https://pypi.org/project/comwatt-client-legacy/

Reste a faire :
Implementer son utilisation dans cette integration comwatt.

@ZoomeoTooknor
Copy link

Bonjour @MateoGreil,

Ai-je quelque chose à faire ?

@ZoomeoTooknor
Copy link

bonjour @MateoGreil ,

as-tu peux avancer sur quelque chose ?

@MateoGreil
Copy link
Owner

MateoGreil commented Feb 15, 2024

Hello, @ZoomeoTooknor,

J'ai a peine commencé a l'implementer : #12
Ce n'est absolument pas pret désolé !

Mais je n'ai toujours pas abandonné l'idée d'ajouter ca, c'est seulement que je n'ai pas encore trouvé suffisamment de temps ;)

@ZoomeoTooknor
Copy link

Bonjour @MateoGreil ,

est ce que tu as pu voir pour intégrer les anciennes box ?
Mon appli Comwatt ne fonctionne plus sur mon iPad.

Merci

@sim29s
Copy link

sim29s commented Aug 20, 2024

Bonjour @MateoGreil ,

Je suis également dans le même souhait d'intégration. Je suis en BOX GEN3 via Go.comwatt.com. Si je peux aider à tester ou aider comme je peux ça serait avec plaisir.

Simon

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

4 participants