Christb Posté(e) le 27 février Signaler Posté(e) le 27 février (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é le 27 février par Christb Found the solution
Christb Posté(e) le 27 février Signaler Posté(e) le 27 février 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' ?
Christb Posté(e) le 27 février Signaler Posté(e) le 27 février 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).
Christb Posté(e) le 27 février Signaler Posté(e) le 27 février 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....
yves.guern Posté(e) le 28 février Auteur Signaler Posté(e) le 28 février 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 1
Christb Posté(e) le 28 février Signaler Posté(e) le 28 février 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...
Christb Posté(e) le 28 février Signaler Posté(e) le 28 février 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'?
yves.guern Posté(e) le 28 février Auteur Signaler Posté(e) le 28 février 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
yves.guern Posté(e) le 28 février Auteur Signaler Posté(e) le 28 février (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é le 28 février par yves.guern 1
Christb Posté(e) le 1 mars Signaler Posté(e) le 1 mars 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 Je ne l'ai pas encore testé mais ce format devrait être valable aussi pour charger une Scène.
Christb Posté(e) le 13 mars Signaler Posté(e) le 13 mars (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é le 13 mars par Christb
Christb Posté(e) le 17 mars Signaler Posté(e) le 17 mars 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?
yves.guern Posté(e) le 17 mars Auteur Signaler Posté(e) le 17 mars 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 +
Christb Posté(e) le 18 mars Signaler Posté(e) le 18 mars (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é le 18 mars par Christb
yves.guern Posté(e) le 19 mars Auteur Signaler Posté(e) le 19 mars 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
Christb Posté(e) le 19 mars Signaler Posté(e) le 19 mars 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)
Christb Posté(e) le 19 mars Signaler Posté(e) le 19 mars 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...
yves.guern Posté(e) le 19 mars Auteur Signaler Posté(e) le 19 mars 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+
Christb Posté(e) le 22 mars Signaler Posté(e) le 22 mars 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 1
Messages recommandés