Service Netatmo

De rien, probablement une déformation due à mon age avancé… :sob:
Mais effectivement, cela se voit mieux…chez les autres, il m’arrives parfois d’en faire !
Tiens par exemple, une grivoise :
Il ne faut jamais demander à un femme de confirmer si elle aimes bien se faire son thé le matin, tu peux vite passer de la faute d’orthographe à la faute de gout et parfois à la faute tout court ! :joy: Je sors ! :innocent:

1 « J'aime »

@Terdious, du coup j’ai trouvé 5 min pour tester ce soir

J’ai toujours le souci pour sauvegarder le NAPlug par contre aucun logs donc je peux pas te donner plus d’info

Chez moi j’en voit une partie
image

Tu n’a pas modifié quelquechose dans le composant Thermostat ?
Car je l’utilise tous les jours et j’avais testé plein de cas de figure avec @pierre-gilles
Voila ce que cela donne sur mon dashboard quand je l’utilise sur mon Gladys en prod.
image

J’ai fait l’essai aussi en modifiant avec le même nom que tu as mis et l’affichage est correct
image

Si je raccourci le nom sur le tableau de bord de ton intégration. La taille du composant reste la même.
image
Alors que si je raccourci sur le thermostat de mon Gladys en prod on voit bien l’adaptation de la largeur du composant.
image

Par contre cette fois là, @Terdious , le changement de consigne fonctionne! :clap:

Concernant le signal batterie, tu as modifié le composant et mis une icône à la place de la valeur en %. Franchement je préfère la valeur en %.
image
Cela va modifier le comportement sur le dashboard pour toutes les intégrations? Je sais pas si tous le monde va être d’accord! Si c’est pour le modifier je préfèrerais quelquechose comme sur la card.
image

Sinon à part le problème pour sauvegarder le NAPlug toutes les données remontent correctement avec le thermostat et je peux piloter la consigne de température et je n’ai aucune erreurs dans les logs.

Pour la suite, une prochaine PR par exemple, je verrais bien une fonction pour éditer les features comme dans zigbee2mqtt. Qui permettrait par exemple de modifier les noms et éventuellement changer le temps de polling et sélectionner ce que l’on veut sauvegardé dans le DB.
image

Encore bravo à toi!

Merci @_Will_71 pour ces nouveaux tests.

Toujours intéressant ^^ Je galère à reproduire. Pour les logs, normalement il y en a mais ciblés, pourrais-tu commencer par regarder en clique droit / inspecter => onglet Console

puis Réseau, tu devrais avoir quelque chose comme ça sur ‹ discover ›

Si tu peux me copier / coller l’objet en mp, ou ici en supprimant les ID maison et + si tu veux.

Et voir ce que te remonte la nouvelle requete lorsque tu sauvegardes. En retournant voir également la partie Console. Merci par avance

En effet, je viens de faire l’update de la branche et c’est beaucoup mieux ^^ (car je n’avais rien touché ^^) Evolution dans la dernière maj ? C’est quand même mal tombé ^^ ou bien selon ^^

Alors non, pas directement, j’avais tenté de passer le type ‹ SIGNAL.QUALITY › en ‹ DISPLAY_BY_FEATURE_TYPE › au lieu de ‹ SIGNAL › en ‹ DISPLAY_BY_FEATURE_CATEGORY › car j’ai eu besoin de rajouter un ‹ SIGNAL.BINARY › pour la fonctionnalité ‹ Reachable › et forcément il n’y avait plus de sens.
image
Mais je n’avais pas fait attention que ‹ SIGNAL.QUALITY › était un ‹ INTEGER ›, ce qui passe tout les ‹ INTEGER › dans ce format => ne match pas, merci pour le test. Je vais essayer autre chose.
Le problème étant que ‹ DISPLAY_BY_FEATURE_CATEGORY › est prioritaire donc tout les type ‹ SIGNAL › ont la même représentation. Je vais tenter de trouver un cas similaire.

Ce n’était pas le but ^^

Justement je préfère aussi ^^ Mais ça ne peut pas faire l’objet de cette PR. Je ne dois rien changer d’autre qui impacterais le reste dans cette PR. Donc très bien vu @_Will_71 !!^^

Oui ^^ C’est prévu ^^ Je l’avais fait dans celle là !! Mais au final, il faut qu’elle soit la plus légère possible. Je pense qu’une fois sortie, j’en ferai plusieurs côte à côte !!

1.1) Prise en charge des vannes (car liée aux PLUG / Thermostat)
1.2) Menu Editer sur les appareils
1.3) Menu Paramètres dans l’intégration (pour éditer le poll notamment)
1.4) Remonter les appareils non compatibles comme proposé par @PhilippeMA

Pour cette partie ça ne peut pas se faire sur les appareils, ce sera dans la partie 1.4) ci-dessus. La totalités des états appareils est récupérée à chaque poll. Car les appareils Netatmo remontent leur données sur un cron. Ca dépend de la famille d’appareil. Donc, il y aura un mini de défini.
image
Ensuite j’intégrerais les webhooks pour ceux qui ont Gladys Plus. Déjà fonctionnel chez moi (enfin arrêté depuis la nouvelle méthode de connexion), c’est instané et ça marche très bien. Netatmo ne le fait malheureusement pas sur tout, et il y aura un gros travail de ce côté.

Merci encore pour les tests, si tu peux vérifier la partie Réseau pour ton PLUG, ce serait top !!

Tout est corrigé : Batterie et affichage température
@_Will_71, selon ton retour sur la partie réseau, je te ferais une nouvelle image avec des logs un peu partout sur Discover au besoin.

@pierre-gilles petite question, est-ce ça te choque si je fais une modification dans SignalQualityDeviceValue avec l’ajout de :

  if (deviceFeature.type === DEVICE_FEATURE_TYPES.SIGNAL.BINARY) {
    return <BinaryDeviceValue deviceFeature={deviceFeature} />;
  }


Je ne vois pas comment bien le traiter dans SensorDeviceType sans faire une particularité qui ne soit pas top. Le but de ce type étant de dire si l’appareil est joignable dans la pièce côté API Netatmo.

Edit: @_Will_71, pour info je viens de refaire le test au complet (suppression de la DB et création complète à nouveau, je n’arrive vraiment pas à reproduire ^^ Du coup si ça ne t’embête pas on travaillera sur ton installation pour voir ce qui ne va pas. As-tu un truc particulier concernant ton installation ? Ton PLUG date de quand ?

C’est une manière de dire si le composant est disponible ou non ?
Il faut qu’on soit sur de non choix sur ce point, car il y a des demandes à ce sujets, et il faudra donc bien gérer les cas, et éviter les confusions avec la puissance du signal.

Oui c’est exactement cela, dire si l’appareil est disponible ou non :
image
En effet c’est pour cela que je préfère poser la question. Car de mon point de vue ça fait partie de cette catégorie ‹ SIGNAL › dans le sens ou c’est vraiment une donnée qui va retranscrire une perte de signal ou d’alimentation, qui induit une perte de signal. En sachant que la perte de puissance ne peut être retranscrite indépendamment, la seule chose dont le récepteur est sûr c’est qu’il a perdu le contacte…

Ça peut être une solution, qui fait sens je trouve.
Si on est tous d’accord, on part pour ça.

1 « J'aime »

@Terdious , j’essai de faire un autre essai à midi si j’ai le temps.

Oui pas de souci, ne te presse pas trop non plus, pas d’urgence !! Je finis d’écrire les tests en attendant ^^

Cool de voir plein de testeurs ici :slight_smile:

Je préfère que ta PR reste 100% Netatmo ! On peut faire des changements dans le core dans une autre PR :slight_smile: Focus focus focus sinon c’est impossible de mesurer l’impact de ta PR et on repart dans les travers des autres PR jamais mergée !

Oui oui ^^

Mais là j’en ai besoin pour afficher cette feature ^^ Tu me disais de créer des catégories différentes, mais là j’ai juste besoin d’un type !! J’ai retiré toutes les catégories à créer pour ne pas alourdir la PR justement ^^

Ce que tu veux dire c’est que tu préfère que je n’intégre pas la feature pour le moment et que ça fasse l’objet d’une toute petit PR ?

Dans ton cas oui ! :slight_smile: Je préfère vraiment que cette PR soit d’ultra bonne qualité et qu’elle fasse le minimum syndicale, plutôt qu’elle fasse le café mais en s’éparpillant !

En fait c’est simple, si ta PR je vois qu’elle touche que à des fichiers dans les dossiers netatmo, c’est relativement simple à review et j’ai confiance dans le fait qu’elle ne peut pas avoir d’impact négatif sur le reste de Gladys.

Si elle commence à changer des choses core/data model, c’est un tout autre impact et j’ai beaucoup moins confiance donc ça va prendre pas le même temps à merge et ce sera une review beaucoup plus musclée.

1 « J'aime »

Ok compris et je comprend :wink:
Ca me paraissait un peu lourd de faire une autre PR juste pour ça ^^ Mais je vois tout à fait ce que tu veux dire. Je retire les 2 points qui touche la partie front globale.

Ah non non, c’est jamais lourd de faire des PR même pour 2 fichiers, au contraire !

Regarde la plupart des PR sur le repo, elles touchent à quelques lignes/quelques fichiers, et en général ça me prend 1 minute à review, 10 minutes à tester, et en 20 minutes c’est mergé :slight_smile:

1 « J'aime »

@Terdious, quand je sauvegarde c’est l’erreur 422
image

Ci dessous ce que j’ai dans Discover

{
        "name": "Home",
        "external_id": "netatmo:**:**:**:**:**:**",
        "selector": "netatmo:**:**:**:**:**:**",
        "model": "NAPlug",
        "service_id": "fc9006d9-505e-4008-b6a6-0e855591380c",
        "should_poll": false,
        "features": [
            {
                "name": "Last seen - Home",
                "external_id": "netatmo:**:**:**:**:**:**:last_plug_seen",
                "selector": "netatmo:**:**:**:**:**:**:last_plug_seen",
                "category": "schedule",
                "type": "time-day-hour",
                "read_only": true,
                "keep_history": true,
                "has_feedback": false,
                "min": 0,
                "max": 43200000
            },
            {
                "name": "Link RF quality - Home",
                "external_id": "netatmo:**:**:**:**:**:**:rf_strength",
                "selector": "netatmo:**:**:**:**:**:**:rf_strength",
                "category": "signal",
                "type": "integer",
                "read_only": true,
                "keep_history": true,
                "has_feedback": false,
                "min": 0,
                "max": 100
            },
            {
                "name": "Link Wifi quality - Home",
                "external_id": "netatmo:**:**:**:**:**:**:16:wifi_strength",
                "selector": "netatmo:**:**:**:**:**:**:16:wifi_strength",
                "category": "signal",
                "type": "integer",
                "read_only": true,
                "keep_history": true,
                "has_feedback": false,
                "min": 0,
                "max": 100
            },
            {
                "name": "Home connected boiler",
                "external_id": "netatmo:**:**:**:**:**:**:16:plug_connected_boiler",
                "selector": "netatmo:**:**:**:**:**:**:16:plug_connected_boiler",
                "category": "switch",
                "type": "binary",
                "read_only": true,
                "keep_history": true,
                "has_feedback": false,
                "min": 0,
                "max": 1
            },
            {
                "name": "Reachable (WiFi or Power) - Home",
                "external_id": "netatmo:**:**:**:**:**:**:reachable",
                "selector": "netatmo:**:**:**:**:**:**:reachable",
                "category": "signal",
                "type": "binary",
                "read_only": true,
                "keep_history": true,
                "has_feedback": false,
                "min": 0,
                "max": 1
            }
        ],
        "params": [
            {
                "name": "modules_bridge_id",
                "value": "[\"**:**:**:**:**:**\"]"
            },
            {
                "name": "firmware_revision",
                "value": 236
            },
            {
                "name": "home_id",
                "value": "*****************"
            },
            {
                "name": "room_id"
            },
            {
                "name": "room_name"
            }
        ],
        "deviceNetatmo": {
            "id": "**:**:**:**:**:**",
            "type": "NAPlug",
            "firmware_revision": 236,
            "rf_strength": 101,
            "wifi_strength": 58,
            "name": "Home",
            "setup_date": 1506366782,
            "modules_bridged": [
                "**:**:**:**:**:**"
            ],
            "_id": "**:**:**:**:**:**",
            "firmware": 236,
            "last_bilan": {
                "y": 2023,
                "m": 11
            },
            "last_setup": 1506366782,
            "last_status_store": 1702900256,
            "place": {
                "city": "******",
                "country": "FR",
                "location": [
                    *********,
                    *********
                ],
                "timezone": "Europe/Paris",
                "altitude": 344,
                "continent": "Europe",
                "country_name": "France",
                "street": "************",
                "trust_location": true
            },
            "plug_connected_boiler": true,
            "wifi_status": 56,
            "station_name": "Home",
            "udp_conn": true,
            "last_plug_seen": 1702900256,
            "home": "******************",
            "room": {}
        }
    }
1 « J'aime »

Repéré je pense. Ton PLUG n’est pas associé à une pièce dans l’API Netatmo. Je corrige !! Et je ne vais même pas pouvoir tester, j’ai tenter de le sortir de la pièce mais impossible et on ne peut pas supprimer une pièce si un appareil est présent :man_shrugging:
Merci @_Will_71 !!

Edit : Correctif fait, je termine mes modifs et je te préviens quand c’est bon !

1 « J'aime »

En faite j’ai mon thermostat depuis 2018 et il ne fallait pas donner de pièce pour ce produit, uniquement au thermostat.

La j’ai été vérifié et effectivement on le retrouve bien dans les produits non placés.

Effectivement je ne l’aurais pas eu cette erreur, je n’y avais pas pensé ^^
Nouvelle image en cours de build. Dispo dans 1h environ.
En espérant que cela fonctionne !

Je testerai ce soir.

1 « J'aime »

@Terdious

Ok pour le NAPlug je peux l’ajouter maintenant. Bravo. :clap:
C’était bien le problème de pièce.

Voila ce que cela donne sur mon dashboard maintenant

Ok pour la batterie mais pas mieux pour le thermostat. La valeur est toujours coupé. Si tu n’as rien touché alors on verra après je pense.

1 « J'aime »