Aller au contenu

Outil pour icones, Backup et manipulation par QA


Messages recommandés

Posté(e) (modifié)

Oui, j'ai bien sûr pensé à ce problème de l'adresse hc3-000680 non reconnue mais pourquoi après 30 à 100 récupérations d'icônes OK. De plus un 'ping' juste près cette erreur est accepté .

Je pense que cela vient du fait que la HC3 est trop occupée pour répondre à temps à la requête du script d'où l'erreur.

Y-a-t-il un moyen pour augmenter l'attente d'une réponse de la HC3? dans le header?   

 

J'ai trouvé comment faire en ajoutant à la requête ,timeout=(5,10)

Modifié par Christb
Found the solution
Posté(e)

Bonsoir ygern13,

Je travaille sur le chargement d'une icône dans une pièce et avant de lancer la fonction uploadOneIconSet, je ne suis pas sur du format du code suivant:

postHeader = postHeader + 'POST /api/icons HTTP/1.1\r\n'

faut-il la changer ou pas en :  'POST /api/rooms/icons HTTP/1.1\r\n'

ou 'POST /api/icons/rooms HTTP/1.1\r\n' ?

Posté(e)
Il y a 2 heures, Christb a dit :

faut-il la changer ou pas

En regardant le code Swagger je ne pense pas qu'il faille changer cette lignes$ mais plutôt celles là: 

postContentHead = postContentHead + SockDataBoundary + 'Content-Disposition: form-data; name="type"\r\n\r\n'+room+'\r\n'

 

Pour la ligne 

 postContentHead = postContentHead + SockDataBoundary + 'Content-Disposition: form-data; name="deviceTemplate"\r\n\r\n'+sDevType+'\r\n'

est-ce que le terme 'deviceTemplate' est valide pour 'room' qui est toujours 'unary'?

 

Pour la ligne :

postHeader = postHeader + 'Referer: http://'+host+'/app/settings/devices/list\r\n'  

changer en :

postHeader = postHeader + 'Referer: http://'+host+'/app/settings/rooms/list\r\n'

 

J'ai vraiment besoin d'aide sur ce point car l'IA donne plutôt des réponses imcomplètes (certainement du au manque de documentation sur ce point de Fibaro). 

Posté(e)
Il y a 7 heures, Christb a dit :

J'ai trouvé comment faire en ajoutant à la requête ,timeout=(5,10)

Malheureusement, cela ne résout pas le problème ni d'utiliser l'adresse IP 192.168.1....:(

Posté(e)

Bonjour,

avez vous fait un clean de votre DNS?

 

In the PowerShell window, type: Clear-DnsClientCache

 

ou sous console

ipconfig /flushdns

 

Les 2 en administrateur

 

Avez vous essayé depuis un autre PC

  • Like 1
Posté(e)

La réponse était Non pour toutes vos propositions, je vais les faire.

Il y a 4 heures, yves.guern a dit :

Clear-DnsClientCache

 Ne change rien sur le PC de développement

Il y a 4 heures, yves.guern a dit :

Avez vous essayé depuis un autre PC

Merci de ce conseil, je viens de le faire depuis mon portable sous windows10 avec l'adresse "hc3-0000xxxx ; trois essai successifs OK: très grosse différence, lecture des images beaucoup plus rapide (environ 3 à 4 fois plus vite) et pas d'erreur.

J'ai trouvé le problème de configuration réseau sur le PC de développement : cela venait du fait que ma Livebox diffuse 2 wifi 2.4GHz et 5GHz. Le portable sur 5GHz et le PC Dev sur 2.4GHZ (de façon involontaire) ; dès que je l'ai basculé sur le 5GHz tout va bien et la lecture des icônes est même plus rapide que sur le portable. 

Je dois vérifier que tous mes produits y compris la HC3 wifi sont compatible 5GHZ avant de ne plus diffuser le 2.4...

Posté(e)

Désolé de vous avoir ennuyé avec mon problème de réseau.

Pouvez-vous me guider pour la construction du postContentHeader pour le type d'icône 'room'?

Posté(e)

Bonjour,

avez vous fait un clean de votre DNS?

 

In the PowerShell window, type: Clear-DnsClientCache

 

ou sous console

ipconfig /flushdns

 

Les 2 en administrateur

 

Avez vous essayé depuis un autre PC

Posté(e) (modifié)

Bon navigateur a décider de me faire...

 

Je disais donc: Je suis loin de chez moi et de ma box, cela va être difficile.

Je commencerais par:

  • utiliser l'interface avec l'API qui est inclue dans la box, cela permet de faire un tri dans les commandes qui existent
    (malheureusement cet engin n'est pas exhaustif...)
  • et/ou utiliser le F12 de votre navigateur pour espionner plus précisément ce qui est échangé.
    (Pour cela j'aime bien Firefox qui a une interface plus claire que chrome).

Voilà c'est peu mais c'est tout ce que je peux faire pour le moment...

A+

Modifié par yves.guern
  • Thanks 1
Posté(e)
Il y a 21 heures, yves.guern a dit :

utiliser le F12

Oui, cela à été très utile et j'ai trouvé le format pour charger une icône dans une Room et dès quelle est chargée, elle est disponible pour toutes les autres:18:

Je ne l'ai pas encore testé mais ce format devrait être valable aussi pour charger une Scène.

  • 2 semaines après...
Posté(e) (modifié)

J'ai trouvé pourquoi la tâche 'restore' ne faisait pas grand chose :

Avec Python 3.14 le format 

files = glob.glob(sBackupIconsPath+sDevType+'\*_0.png') # le bug venait du fait que le '\' avait été supprimé

Il faut le remplacer par les lignes suivantes:

pattern=os.path.join(sBackupIconsPath,sDevType,'*_0.png')
     
files = glob.glob(pattern)

 

Voici donc la version V1.1 corrigée avec un manuel mis à jour.

 

HC3IconManager U_ManualV1-03.pdf HC3IconMgrV1.11.py

Modifié par Christb
Posté(e)
Le 13/03/2026 à 18:46, Christb a dit :

J'ai trouvé pourquoi la tâche 'restore' ne faisait pas grand chose :

@yves.guern

En fait, j'ai besoin de votre aide pour vérifier que 'restore' fonctionne bien.

J'ai fait plusieurs ajouts d'icônes pour 'device',  'room 'et 'scene' Grâce à la tâche 'load' avec succès puis fais un 'save'.

Je les ai ensuite toutes supprimées dans la HC3.

Si je fais un 'restore', toutes les icônes présentes dans mon répertoire Backup sont toujours considérées comme existantes même celles qui n'existent plus dans le HC3 et donc elles ne sont pas rechargée.

Dans quelle condition une icône est rechargée avec la tâche 'restore?

Posté(e)

Bonsoir,

Cela me rappelle quelque chose (du vécu) ... mais quoi ?

 

1) Pour commencer par le début: vous avez bien vidé le cache du navigateur?

2)

Si je fais un 'restore', toutes les icônes présentes dans mon répertoire Backup sont toujours considérées comme existantes même celles qui n'existent plus dans le HC3 et donc elles ne sont pas rechargée.

   Cette phrase suppose que le HC3 est interrogé, quelle est sa réponse (F12 :)) ?

3) Vous quittez / relancez l'application ?

4) Ya pas un fichier côté PC qui décrit ce qu'il a trouvé dans le HC3?

 

Si ces deux-trois choses ne font rien avancer, je me replongerais dans le code.

 

A +

Posté(e) (modifié)

Bonsoir,

1) oui

2) pas de réponse car il semble qu'aucune demande n'est faite à la HC3 si l'cône est dite déjà existante)

3) oui mais sans résultat

4) oui il s'appelle 'ExistingIconTable.json' et je pense que le problème vient de là:

Ce fichier est créé après une sauvegarde et contient bien toutes les icônes de la HC3 téléchargées dans les répertoires "Backup/<deviceType>" donc lors d'un 'restore', il est vérifié si chaque icône de ces répertoires existe dans ce fichier json ce qui est toujours vrai!

Pour chercher si cela venait de là, j'ai fait les tests suivants :

  • Création d'un nouveau script pour chercher si une icône de type 'deviceType' ou 'room' ou 'scene' existe dans la HC3 et et je peux contrôler de manière externe l'existence d'une icône dans la HC3 ; qui montre que bien qu'elles n'existent plus ces icônes sont dites déjà existantes lors d'un 'restore' (ou un 'load').
  • Après suppression d'une icône dans la HC3, un 'save' montre bien qu'elle n'est plus dans la HC3 (quelque soit son type) ni dans les répertoires du "backup".
  • Après un 'save', j'ai ajouté des icônes dans un répertoire du "backup" de type unary avec un nom type UserNNNN.png et lors d'un 'restore' elles sont bien rechargées dans la HC3 mais avec un nouvel 'UserId'.

 

Le contrôle avec le fichier ExistingIconTable.json est très utile pour éviter des doublons mais je pense, pour la tâche 'restore', qu'il faut aussi ajouter un test pour contrôler si elle est aussi aussi présente dans la HC3.

Votre avis?

Modifié par Christb
Posté(e)

Bonjour,

Oui 100% raison!

C'était bien fait pour éviter les doublons et cela posait des problèmes pour effectuer un restore.
J'avais laissé "en l'état" car la pertinence d'un "restore" ne m'avais finalement pas convaincu.

 

Donc oui il faudrait rajouter un test d'existence sur la HC3.

Problème que je vois en écrivant ce post et qui expliquerait que le restore n'est pas simple et que j'ai laissé tomber: 

l'ID des icones va changer au rechargement, tout ce qui est écrit en hard dans les QA ne fonctionnera plus...

 

A bientôt

 

Posté(e)
Il y a 2 heures, yves.guern a dit :

J'avais laissé "en l'état" car la pertinence d'un "restore" ne m'avais finalement pas convaincu.

Même si je vais essayer d'ajouter le test de présence dans la HC3 pour ma formation à la programmation en Python et aussi avoir une tâche 'restore' qui fonctionne mieux, je pense qu'en final, je vais la supprimer car en fait elle sera redondante avec 'load'.

Puis dès que j'aurais fini les tests des autres tâches je publierais ma nouvelle version pour gérer tous les types d'icônes (QA, Device, Room et Scene)

Posté(e)
Il y a 22 heures, Christb a dit :

contrôler si elle est aussi aussi présente dans la HC3

En fait ce contrôle n'est pas simple car le nom UserNNNN de l'icône n'est peut être plus présent dans la HC3 mais la même icône a pu être rechargée mais sous un autre nom...

Je pense que la tâche 'restore' peut être utilisée de la manière suivante:

  • Faire un 'save' et sauvegarder le répertoire "backup" ailleurs.
  • Plus tard, Avant de faire un 'restore', faire un nouveau 'save et comparer avec l'ancien pour voir s'il manque des icônes et copier les manquantes dans le répertoire correspondant du répertoire du backup du script  
  • Les manquantes seront bien rechargées lors du 'restore' mais avec un nouveau nom (malheureusement) ; par contre le fichier "idChanges.json" donne le changement de numéro Usernnnn, mintenant sous la forme suivante :{"device-1041": 1027, "device-1092": 1081, "device-1136": 1135, "device-1035": 1032, "device-1036": 1032, "device-1037": 1032, "device-1040": 1032, "scene-1014": 1044, "scene-1015": 1045, "scene-1001": 1040, "scene-1002": 1046}

Peut-être une usine à gaz pour pas grand chose...

Posté(e)
il y a 8 minutes, Christb a dit :

Peut-être une usine à gaz pour pas grand chose...

C'est peut-être / probablement la conclusion à laquelle j'étais arrivé :) ?

 

A+

Posté(e)

Bonsoir,

Voici la dernière version (1.3.0) qui permet de :

  • sauvegarder les icônes type Device, Room et Scene,,
  • télécharger de nouvelles icônes pour pour chacun de ces 3 types,
  • recharger les icônes du backup vers la HC3*,   
  • Changer les icônes par les dernières icônes téléchargées avec une tâche 'load' par type,
  • Changer l'icône d'un éléments par une existante dans la HC3. 

J'ai aussi revu le mode d'emploi.

* Je l'ai laissée même si elle n'est pas facile à utiliser. 

 

HC3IconManager U_ManualV1-04.pdf HC3IconMgrV1.3.0.py

  • Like 1
×
×
  • Créer...