Christb
Membres confirmés-
Compteur de contenus
50 -
Inscription
-
Dernière visite
Tout ce qui a été posté par Christb
-
Outil pour icones, Backup et manipulation par QA
Christb a répondu à un(e) sujet de yves.guern dans Tutoriels
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 -
Outil pour icones, Backup et manipulation par QA
Christb a répondu à un(e) sujet de yves.guern dans Tutoriels
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. -
Outil pour icones, Backup et manipulation par QA
Christb a répondu à un(e) sujet de yves.guern dans Tutoriels
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'? -
Outil pour icones, Backup et manipulation par QA
Christb a répondu à un(e) sujet de yves.guern dans Tutoriels
La réponse était Non pour toutes vos propositions, je vais les faire. Ne change rien sur le PC de développement 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... -
Outil pour icones, Backup et manipulation par QA
Christb a répondu à un(e) sujet de yves.guern dans Tutoriels
Malheureusement, cela ne résout pas le problème ni d'utiliser l'adresse IP 192.168.1.... -
Outil pour icones, Backup et manipulation par QA
Christb a répondu à un(e) sujet de yves.guern dans Tutoriels
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). -
Outil pour icones, Backup et manipulation par QA
Christb a répondu à un(e) sujet de yves.guern dans Tutoriels
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' ? -
Outil pour icones, Backup et manipulation par QA
Christb a répondu à un(e) sujet de yves.guern dans Tutoriels
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) -
Outil pour icones, Backup et manipulation par QA
Christb a répondu à un(e) sujet de yves.guern dans Tutoriels
Je viens de faire une nouvelle sauvegarde et tout c'est bien passé et j'ai récupéré les 195 jeux d'icônes et les 18 icônes des pièces de ma HC3; ma nouvelle version peut maintenant sauvegarder 'Device' ou 'Room' ou les deux. Ce n'est donc pas un problème de code mais de ma HC3 mais je ne vois pas pourquoi! Une idée? -
Outil pour icones, Backup et manipulation par QA
Christb a répondu à un(e) sujet de yves.guern dans Tutoriels
Bonjour, Avez-vous eu ce genre d'erreur lors de la tâche 'save' qui survient après une sauvegarde correcte des 30 premières icônes ou même après la 122éme : raise ConnectionError(e, request=request) requests.exceptions.ConnectionError: HTTPSConnectionPool(host='hc3-00006080', port=443): Max retries exceeded with url: /assets/userIcons/devices/User1123/User1123.png (Caused by NameResolutionError("HTTPSConnection(host='hc3-00006080', port=443): Failed to resolve 'hc3-00006080' ([Errno 11001] getaddrinfo failed)")) C'est maintenant systématique et je n'ai pas changé ce code. Les autres tâches fonctionnent sans problème**. Durant mon développement j'ai eu de temps en temps des erreurs de connexion mais en relançant le script, tout allait bien mais maintenant c'est presque systématique. Est-ce que le problème vient de ma HC3 ou de demandes trop rapprochées à la HC3? ** En ce qui concerne la tâche 'restore', je ne suis pas sûr de savoir quand l'utiliser: lorsque je la lance je vois un log comme Reloading com.fibaro.binarySensor binary pngtype pour chacun des types de module mais les fichiers log sur mon PC sont vides. -
Outil pour icones, Backup et manipulation par QA
Christb a répondu à un(e) sujet de yves.guern dans Tutoriels
Bonsoir, merci de votre soutient et de vos conseils. J'ai revu le manuel et le code, re-testé et comme tout semble être OK, je les ai publiés dans le post ci-dessous : https://forum.fibaro.com/topic/79951-upload-icons-from-external-sourrce/#comment-296130 -
Outil pour icones, Backup et manipulation par QA
Christb a répondu à un(e) sujet de yves.guern dans Tutoriels
En parallèle, j'essaye de compléter le code pour la gestion des images des pièces et, quand cela sera fini, celui pour les icônes des scènes. Le code pour sauvegarder les icônes, soit des 'Device' soit des 'Room' ou les deux, semble fonctionner ! La tâche 'load <Device>' fonctionne déjà. Maintenant je dois m'attaquer à la tâche 'load <Room>' mais cela me semble plus compliqué pour moi. Si besoins je vous demanderai de l'aide. Puis je mettrais à jour le code de la tâche 'updateOne': 'updateOne <Device> <DId> <iconId>' (en fait fonctionne déjà) 'updateOne <Room> <RoomId> <iconId>' Et enfin la tâche 'updateAll <Room>' ( 'updateAll <Device> fonctionne aussi déjà.) -
Outil pour icones, Backup et manipulation par QA
Christb a répondu à un(e) sujet de yves.guern dans Tutoriels
Oui je l'utilise maintenant car j'ai vu que vous l'utilisiez dans votre code; Je pense avoir terminé les modifications du code : pour tous les tests que j'ai fais, pas d'erreur et la HC3 accepte les demandes. Comme convenu, voici mon code ainsi que le manuel de l'utilisateur. S'il n'y a rien qui vous choque, je publierai cette version sur le forum Fibaro avec un jeu d'icônes de test (unary, bnary and multi). HC3IconMgr.py HC3IconManager U_Manual.pdf -
Outil pour icones, Backup et manipulation par QA
Christb a répondu à un(e) sujet de yves.guern dans Tutoriels
J'ai réussi à corriger l'erreur; la difficulté pour moi est qu'en Python, une fonction est terminée en diminuant la tabulation des lignes suivante et dans ce cas, je me suis fait avoir... Je vais pouvoir terminer ma tâche 'updateAll' Une fois terminé, j'aimerai que vous testiez mon code et surtout lisiez mon manuel d'utilisateur en anglais Si tout OK , m'autoriseriez-vous à publier le code et le manuel sur le site forum.fibaro.com (il y a un post ouvert à ce sujet)? -
Outil pour icones, Backup et manipulation par QA
Christb a répondu à un(e) sujet de yves.guern dans Tutoriels
Ben si, avec une structure comme ci-dessous, la tâche 'load' essaye bien de télécharger les icones dans plusieurs QA, même si j'ai maintenant une erreur dans mon code pour gérer un fichier JSON sur mon PC pour avoir les instructions pour ma nouvelle tâche 'uploadAll' : mon problème mais j'apprends comme ça... -
Outil pour icones, Backup et manipulation par QA
Christb a répondu à un(e) sujet de yves.guern dans Tutoriels
Merci. Est-il possible de télécharger des jeux d'icônes différents dans plusieurs QA en même temps? j'aimerai pouvoir avec un seul lancement de la tâche 'load' télécharger les éléments suivant: id:758 ("unary" type), LUAname: "QaDidIcon", fileRoot:"qadidicon" id:502 ("binary" type), LUAname: "Volet", fileRoot:"Volet-Velux" id:503 ("multi" type), LUAname: "Thermometer", fileRoot:"Temp" Pour l'instant je n'y suis pas arrivé car, dans ce cas, je n'arrive pas à maitriser la structure correspondante de la variable globale 'g_Icons2Load'. Je suppose que les fichiers image *.png doivent être tous dans le même répertoire. -
Outil pour icones, Backup et manipulation par QA
Christb a répondu à un(e) sujet de yves.guern dans Tutoriels
Merci à l'IA de QWant qui m'a aidé à trouver la solution même si ce n'est pas sans quelques corrections : "HC3IcomMgr updateOne <Did> <iconId>" marche parfaitement. mais je dois ajouter des contrôles pour éviter un problème lorsque un des arguments est n'importe quoi... Prochain épisode: "HC3IcomMgr updateAll", tâche utilisant 'g_Icons2Load' -
Outil pour icones, Backup et manipulation par QA
Christb a répondu à un(e) sujet de yves.guern dans Tutoriels
En regardant votre code "request.get" pour "QuickAppVariable", j'ai trouvé que le code ci dessus n'encodait pas bien la 'properties', avec ma nouvelle version, cela marche parfaitement! Il me reste maintenant à trouver comment ajouter les variables dans la ligne de commande. -
Outil pour icones, Backup et manipulation par QA
Christb a répondu à un(e) sujet de yves.guern dans Tutoriels
Je comprend pour la disponibilité; par contre, j'ai du temps et je désire apprendre à coder en Python. Chaque langage possède une façon propre pour le formatage de ce type de requête et même avec l'IA de vscode ce n'est pas toujours facile mais je ne pose peut-être pas la bonne question... Je viens d'écrire un code py en utilisant 'requests.put' pour changer l'icône courante (1236) par une nouvelle (1240) pour le module 758 et j'obtiens bien une réponse avec status_code 200 mais l'icône n'est pas changée... Voici mon code : iconId="1236" #"User1240" or 1236 deviceId="758" #QaDidCollect_Proxy QA url=f"https://{host}/api/devices/{deviceId}"#/properties" headers_put = { 'Accept': 'application/json', 'Content-Type': 'application/json', 'X-Fibaro-Version' : '2','Accept-language' : 'en', 'Authorization': f"Basic {sAuthKey}"} payload={"properties.deviceIcon": iconId} p = requests.put(url,json=payload, headers=headers_put,verify = False) if (p.status_code < 200) or (p.status_code >300) : print("Status: ",p.status_code,COL.RED+"Error:"+COL.ORANGE+" Unable to send api/devices/properties/deviceIcon"+COL.END) else : print("Status:",p.status_code,COL.BLUE+"Success: icon changed to User",iconId,COL.END) log: Status: {200} Success: icon changed to User {'1236'} Où est l'erreur? Aussi, je ne sais aussi pas déclarer dans la même ligne de commande les variables deviceId et IconId. j'aimerai une commande type "HC3IconMgr updateOne [deviceId,IconId]" ou similaire : pouvez-vous m'aider sur ce point? -
Outil pour icones, Backup et manipulation par QA
Christb a répondu à un(e) sujet de yves.guern dans Tutoriels
On ne peut pas vivre sans risque...donc oui partageons plus. Pour votre information, j'utilise vscode avec le code Plua de @jgab qui est un émulateur de HC3 possédant une console web pour simuler l'UI - Quand tout semble fonctionner, je peux télécharger la QA dans la HC3. Dans vscode, je peut aussi générer/modifier des scripts Python et PowerShell. J'ai essayé de changer l'icône d'une QA en utilisant lua mais sans succès : ma commande HTTPS est acceptée par la HC3 (status202) mais l'icône n'est pas chargée. J'ai testé toutes les tâches définies dans votre code avec succès mais c'est surtout la tâche "load' qui m'intéresse. Pour votre information, je suis en train d'écrire un manuel d'utilisation détaillé in English. Maintenant, ce que je cherche à faire est de tout automatiser après un téléchargement de nouvelles icônes pour un ou plusieurs QA sans avoir à ouvrir la(les) QA pour changer le code manuellement. Mon idée est d'ajouter 2 tâches à votre code 'updateIconAll' et 'updateIconOne[<QAid>]' ou QAid est un paramètre donnant l'id du QA qui doit changer d'icône. Mon problème est que je suis un novice total pour écrire en Python, en effet, votre code est ma première expérience. De préférence: Seulement ajouter dans la QA existante le code d'une fonction 'changeIcon(<param>)' puis de la lancer avec un script Python avec ou sans l'option 'param' en lua, il est possible d'ajouter un 'File' dont le contenu est le code à ajouter : local content =[[<code to add>]] local file ="changeIcon" --name of the file function fibaro.createFile(deviceId,file,content) if type(file)=='string' then file = {isMain=false,type='lua',isOpen=false,name=file,content=""} end file.content = type(content)=='string' and content or file.content return api.post("/quickApp/"..(deviceId or plugin.mainDeviceId).."/files",file) end Peut-on faire la même chose avec un script Python? Si l'ajout d'un nouveau 'File' n'est pas possible en Python, il faudra pouvoir ajouter une QA spécifique à la HC3 (invisible pour l'utilisateur courant) afin de faire la mise à jour de l'icône et la tâche Python pour lancer ce changement devra dans sa commande de lancement envoyer en paramètre additionnel un fichier Json qui contient les instructions, par exemple: {{"id1"=QAid1, nickName1="nom1" du jeu d'icônes},{"id2"=QAid2, nickName2="nom2" du jeu d'icônes},...} Alternativement: Changer directement avec un code Python l'icône courante par sa nouvelle en utilisant l'id du QA et son nom défini dans la QuickAppVar 'myIconIds'. Votre aide sera donc très appréciée et je peux vous servir de testeur. -
Outil pour icones, Backup et manipulation par QA
Christb a répondu à un(e) sujet de yves.guern dans Tutoriels
Bonjour Yves, Votre programme m'intéresse beaucoup mais je n'arrivais pas à le lancer dans PowerShell car j'obtenais des tas d'erreurs comme ci-dessous (à chaque fois à cause d'une séquence \*): C:\Users\bruvi\Documents\Plua_Dev\Icon_Management\HC3IconMgr1.0.2\HC3IconMgr.py:446: SyntaxWarning: "\*" is an invalid escape sequence. Such sequences will not work in the future. Did you mean "\\*"? A raw string is also an option. files = glob.glob(sBackupIconsPath+sDevType+'\*.png') En modifiant tous les "\*.png" par"*.png" plus de warning. Attention dans le scrip que j'ai téléchargé, vous n'utilisez pas l'adresse IP du fichier json de configuration mais je pense la votre en dur => toutes modifiées par "+host+" et j'ai pu sauvegarder mes 188 USER icônes sur mon PC Je viens de réussir à télécharger dans une QA de test ("com.fibaro.deviceController"="unary") une nouvelle icône (test_Icon.png) avec la création de son iconId User<id>. Il me reste à réaliser les mêmes actions pour un type "binary" puis "multi" mais je suis confiant. Mon objectif étant de télécharger à distance de nouvelles icônes dans une QA sans ouvrir localement son code, je dois ajouter à la 'task' load de nouvelles fonctions: Deux choix possibles : Soit télécharger un nouveau fichier (File) dans le QA dans lequel je peux ajouter la fonction de changement de l'icône affichée y compris la création de la QuickAppVar "myIconIds"(*1) Puis la lancer avec une commande hhtps://... Éventuellement supprimer le nouveau fichier du QA quand l'icône a été changée (pas obligatoire car la fonction ne sera jamais déclenchée par l'utilisateur ou le code lui même) Je sais le faire en lua mais je préfèrerais que le code soit intégré au script de la 'task' (case) load. Soit mettre à jour l'icône directement depuis le script PowerShell au lieu d'utiliser un code modifié de la QA cible. Pourriez-vous m'aider à créer l'une ou l'autre de ces actions? note (*1) il semble que cette variable est mise à jour de la manière suivante dans le processus load :{"ancienNom":ancienUserId, "nouveauNom":noveauUserId} -
Bonjour @Lazer, Je possède 2 HC2 pour couvrir 2 bâtiments différents : une d'elles est l'esclave de la première. J'ai un problème de synchronisation de l'esclave sur la HC2 principale lorsque j'ai un défaut secteur car les UPS n'ont pas le même temps de sauvegarde et l'esclave s'arrête avant la principale. Dans ce cas, lorsque le secteur revient, la HC2 esclave est bien vue comme connectée dans la fenêtre "Connexion passerelles HC2" mais les modules ne sont plus mis à jour selon les états réels du module correspondant. je cherche à réaliser un VD de surveillance de la connexion : j'obtiens déjà une confirmation que la HC2 esclave est connectée mais je n'arrive pas à lancer une nouvelle synchronisation via ce VD. Je pense que la fonction envoyée lors de l'appui du bouton "Synchronisation" est : onclick="mainData.getSynchronizedDevices(325); return false;" mais je n'arrive pas à le faire avec une ligne de code dans la VD. Pourriez-vous m'aider sur ce point?
-
sonos Quick App - Sonos Zone Controller
Christb a répondu à un(e) sujet de Krikroff dans Quick App Developpeur
Bonjour, le 22 janvier, j'ai écrit : "J'ai le même problème avec les icônes sur les QA Sonos et eux seuls : Aucunes des images que j'ai téléchargées ou créées ne sont acceptées (en local ou remote) par l'application smartphone et cela depuis longtemps." Depuis la dernière mise à jour de ma HC3 vers 1.54, toutes mes icônes personnelles sont de nouveau affichées. Dans cette version, Fibaro a considérablement amélioré l'affichage sur l'applications mobile, l'ancienne et la nouvelle. Tout est OK maintenant. -
Dear Lazer, It seems that Fibaro made some progress with the last beta version (1.513) : if the option in advanced tab " Use the new views in mobile application " is unticked, then it is possible to link a second select type button to the selection of another button. I have also found a way to have the "Choose" label displayed even if the selector had been used before (in normal QA code word, the QA is remembering its last choice for ever). For your info, test QA attached. Could you test it to see if the QA behaves as for me (whatever the previous choice was, selecting "Auto" in the Top selector forces the bottom selector to display "Choose". 502_Binary_Switch.fqa
-
sonos Quick App - Sonos Zone Controller
Christb a répondu à un(e) sujet de Krikroff dans Quick App Developpeur
Bonjour, J'ai le même problème avec les icônes sur les QA Sonos et eux seuls : Aucunes des images que j'ai téléchargées ou créées ne sont acceptées (en local ou remote) par l'application smartphone et cela depuis longtemps. Par contre l'icône "Multimedia.png" est acceptée dans le deux modes mais je n'arrive pas à voir quelle différence de structure ces images ont. En pièces jointes: - Image "Sonos Move blanc-1.png " non acceptée (sauf dans la page web de mon PC) - Image "Multimedia.png" faisant partie de la bibliothèque Fibaro qui elle est acceptée partout vues sur la page Web du PC ci-dessous vue de l'application Android Si je modifie l'image "Multimedia.png" en utilisant l'appli GIMP, la nouvelle image n'est plus acceptée... Bien sur, j'utilise GIMP depuis longtemps pour faire mes propres icônes comme le démontre les deux copies d'écran ci dessus et elles sont toutes acceptées, même pour mes QA (Profile_MGT, Scenes management, Climate Zones Management et Alarm Zones management).
