Christb
Membres confirmés-
Compteur de contenus
57 -
Inscription
-
Dernière visite
-
Jours gagnés
2
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
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). -
I want to apologize: the error is not comming from dropdown list buttons and their functions but from the old HC3 backup code that was working previously. I think the error has been created http code, and I have found that the self.http line in the onInit function was commented when reactivated, the handletr errror disapeared . below the code of QA main (corrected): -- QuickApp for creating auto backups -- To change between local/remote backup, please modify backupType variable in the variables tab -- You can create backup from scen by: fibaro.call(<id>, "createBackup", "autobackup") -- For example you can prepare scene that will create backup every saturday at midnight -- Action for backup creation local An = 2024 local Mois = 01 function QuickApp:createBackup(description) if (description == nil) then description = "Sauvegarde manuelle" --"Autobackup" end local backupType = self:getVariable("backupType") self:debug("Backup Type = "..backupType) local requestBody = { action = "create", params = { type = backupType, description = description } } self.http:request("http://127.0.0.1/api/service/backups", { options = { data = json.encode(requestBody), method = "POST", headers = { ["Content-Type"] = "application/json", ["Accept"] = "application/json", -- Header with basic auth containing admin:admin. Replace it with your crendentials. ["Authorization"] = "Basic my pasword", } }, success = function(response) self:debug(response.status) self:debug(response.data) self:setLabelWithTime() end, error = function(message) self:debug("error:", message) end }) end function QuickApp:setLabelWithTime() -- Setting last backup date. More about date formats: https://www.lua.org/pil/22.1.html self:updateView("label1", "text", "Dernière sauvegarde : " .. os.date("%d").."/"..os.date("%m").."/"..os.date("%Y")) end -- function QuickApp:b1OnReleased(event) self:debug("Bouton sauvegarde appuyé") self:updateView("label_ID_5","text","Prochaine sauvegarde : ".."15/"..Mois.."/"..An) --self:createBackup(description) --self:updateView("label1", "text", "Dernière sauvegarde : " .. os.date("%d").."/"..os.date("%m").."/"..os.date("%Y")) --to be changed as comment when createBackup fun will be OK end -- --==========================new functions for dropdowan lists =========================== function QuickApp:updateMonth(args) self:debug("le mois choisi est : " .. args["values"][1]) Mois= args["values"][1] return Mois end -- function QuickApp:updateYear(args) self:debug("l'année choisie est : " .. args["values"][1]) An = args["values"][1] return An end -- function QuickApp:svgType(args) self:debug("Sélection du type de sauvegarde "..args["values"][1]) self:setVariable("backupType",args["values"][1]) end --]] --======================================================================================= function QuickApp:onInit() self:debug("onInit QuickApp id: "..self.id) self.http = net.HTTPClient({timeout=3000}) --setInterval(createBackup,30*24*60*60*1000) self:debug("----- onInit End -----") end
-
Oui, pour tester, je ne fais qu'un print de texte: function QuickApp:updateYear(event) print("selection du mois ") end
-
J'ai essayé d'utiliser l'éditeur de la HC3 pour ajouter une liste type dropdown et je rencontre un problème bloquant, car au lancement du QA, j'obtiens toujours la même erreur : [12.12.2023] [20:13:01] [DEBUG] [QUICKAPP445]: onInit QuickApp id: 445 [12.12.2023] [20:13:01] [ERROR] [QUICKAPP445]: QuickApp crashed [12.12.2023] [20:13:01] [ERROR] [QUICKAPP445]: Unknown error occurred: std::logic_error: 'handler is not a function' les fonctions updateYear et updateMonth existent bien; de plus, je ne comprend pas ce type d'erreur qui ne fait référence à aucune ligne de code...
-
Bonjour Lazer, je n'arrive pas à trouver sur le forum Fibaro comment utiliser dropdown list. Pourriez-vous me donner lun lien? Merci
-
Bonjour, Lorsque le token aura expiré, je suppose qu'il faudra recommencer la procédure sur https://dev.netatmo.com/apps/ pour récupérer un nouveau refresh token. Je ne suis pas assez calé sur QA et LUA pour le faire mais pensez-vous qu'il serai possible d'automatiser la récupération du nouveau refresh token par une scène déclenchée par une variable "token_expired" provenant du QA Netatmo ou éventuellement via un petit programme externe déclenché par la mème variable ?
-
Ok installé sans problème et cela fonctionne depuis hier; pourvu que cela dure...
-
Bonjour, Oui je suis intéressé à avoir votre version simplifiée dès que vous aurez vérifié que tout va bien dans quelques temps... Serait-il possible que vous nous donniez les anciennes lignes qui doivent être remplacées ? Cordialement
-
Bonjour, Très intéressante scène, merci. Par contre, comment peut-on trouver la syntaxe pour utiliser une fonction comme : fibaro.profile() ?
-
Bonjour Lazer, Je viens de recevoir de Netatmo une information concernant une modification de leur API au niveau de la sécurité applicable en octobre 2022 : "From this date, the OAuth2 authorization code flow must be followed for authentication You can find details on this method on our website: https://dev.netatmo.com/apidocumentation/oauth#authorization-code For tests, you can also get an Access Token from our developper portal. : https://dev.netatmo.com/ Log in Go on your account Select the application for your test Click on "Generate a Token" You can now use this Access Token for 3 hours. Sincerely, Legrand - Netatmo - Bticino" Est-ce que ce changement aura des implications sur le quickApps de la HC3 ? Cordialement
-
Merci de votre rapide réponse, je viens d'avoir une nouvelle série d'erreurs comme ci-dessous : [17.01.2022] [20:32:02] [TRACE] [QA_EATON_398]: Child #401 Tension value changed to 232 [17.01.2022] [20:33:02] [TRACE] [QA_EATON_398]: Child #401 Tension value changed to 233 [17.01.2022] [20:34:02] [TRACE] [QA_EATON_398]: Child #401 Tension value changed to 232 [17.01.2022] [20:35:02] [ERROR] [QA_EATON_398]: SNMP:sequence() : Fetch Response failed : Request ID 244810251 differs from 244810252 [17.01.2022] [20:35:02] [ERROR] [QA_EATON_398]: SNMP:sequence() : Fetch Response failed : Request ID 244810252 differs from 244810253 [17.01.2022] [20:35:02] [ERROR] [QA_EATON_398]: SNMP:sequence() : Fetch Response failed : Request ID 244810253 differs from 244810254 [17.01.2022] [20:35:02] [ERROR] [QA_EATON_398]: SNMP:sequence() : Fetch Response failed : Request ID 244810254 differs from 244810255 [17.01.2022] [20:35:02] [ERROR] [QA_EATON_398]: SNMP:sequence() : Fetch Response failed : Request ID 244810255 differs from 244810256 [17.01.2022] [20:35:02] [ERROR] [QA_EATON_398]: SNMP:sequence() : Fetch Response failed : Request ID 244810256 differs from 244810257 [17.01.2022] [20:35:02] [ERROR] [QA_EATON_398]: SNMP:sequence() : Fetch Response failed : Request ID 244810257 differs from 244810258 [17.01.2022] [20:35:02] [ERROR] [QA_EATON_398]: SNMP:sequence() : Fetch Response failed : Request ID 244810258 differs from 244810259 [17.01.2022] [20:36:02] [TRACE] [QA_EATON_398]: Child #401 Tension value changed to 233 Est-ce aussi dû à une lenteur de réponse de l'UPS? Est-ce que cela pourrait venir de la box?
-
Bonjour, j'avais installé la version 3.0.1 de Lazer et maintenant la version 3.1 mais dans les 2 cas, j'ai régulièrement une erreur comme ci-dessous (avec les deux versions) : [17.01.2022] [12:50:41] [DEBUG] [QA_EATON_398]: Total memory in use by Lua : 1644.01 KB [17.01.2022] [12:55:42] [DEBUG] [QA_EATON_398]: Total memory in use by Lua : 1251.56 KB [17.01.2022] [12:57:48] [TRACE] [QA_EATON_398]: Child #401 Tension value changed to 231 [17.01.2022] [12:58:48] [TRACE] [QA_EATON_398]: Child #401 Tension value changed to 230 [17.01.2022] [12:59:48] [TRACE] [QA_EATON_398]: Child #401 Tension value changed to 231 [17.01.2022] [13:00:20] [ERROR] [QA_EATON_398]: Error : SNMP get failed : Receive failed : Operation canceled [17.01.2022] [13:00:42] [DEBUG] [QA_EATON_398]: Total memory in use by Lua : 982.18 KB Ces erreurs régulières ne semblent pas empêcher le QA et ses enfants de fonctionner. N'étant pas très familier avec la programmation des QA je n'arrive pas à savoir d'où vient cette erreur : le QA ou l'onduleur?
-
sonos Quick App - Sonos Zone Controller
Christb a répondu à un(e) sujet de Krikroff dans Quick App Developpeur
Bonsoir, Je suis désolé de vous avoir ennuyé avec mon problème et j'espère que vous n'avez pas perdu trop de temps à ce sujet. J'ai trouvé la solution en constatant ce week-end que tous les QA étaient identiques et que la seule différence était le Play1 lui-même et son adresse IP. Avec l'application SONOS2 j'ai fats une remise à zéro du produit (paramètres usine et exclusion du réseau SonosNet) puis je l'ai réinstallé dans le réseau et ainsi j'ai réussi à faire fonctionner votre QA sans changer sa configuration ni son adresse IP. Tous fonctionnent maintenant parfaitemen. Question subsidiaire : est-il encore possible de télécharger le VD pour HC2 similaire au QA? Très cordialement avec tous mes remerciement pour le support que vous donnez à vos développements. -
sonos Quick App - Sonos Zone Controller
Christb a répondu à un(e) sujet de Krikroff dans Quick App Developpeur
En faisant des recherche d'erreurs sur la console, j'ai constaté qu'il semblerait que le QA-SONO-396 est un concurrent QUICKAPP396 que je le ne vois pas dans mes appareil : l'ID 396 ne correspond qu'au QA-SONOS-396 [07.01.2022] [19:01:03] [ERROR] [QUICKAPP396]: QuickApp crashed [07.01.2022] [19:01:03] [ERROR] [QUICKAPP396]: Unknown error occurred: handleJsonRpc Comment ce QA a-t-il été créé? -
sonos Quick App - Sonos Zone Controller
Christb a répondu à un(e) sujet de Krikroff dans Quick App Developpeur
Bonsoir, Pour la première fois, je viens de voir une erreur en essayant de lancer une radio (via accès à distance de home.fibaro.com) : ... [07.01.2022] [18:45:08] [DEBUG] [QA-SONOS-396]: [AVTransport:GetTransportInfo:response] CurrentTransportStatus: OK [07.01.2022] [18:45:08] [DEBUG] [QA-SONOS-396]: componentUpdate_playButton arg[state] false [07.01.2022] [18:45:08] [DEBUG] [QA-SONOS-396]: componentUpdate_zoneLabel [07.01.2022] [18:45:08] [DEBUG] [QA-SONOS-396]: componentUpdate_trackInfo [07.01.2022] [18:45:17] [TRACE] [QA-SONOS-396]: onAction deviceId: 396 - actionName: play - args: [] [07.01.2022] [18:45:17] [TRACE] [QA-SONOS-396]: onAction from parent device ID: 396 [07.01.2022] [18:45:17] [TRACE] [QA-SONOS-396]: [AVTransport:Play] [07.01.2022] [18:45:17] [ERROR] [QA-SONOS-396]: XMLSoapError [Play] Status: HTTP 500 Internal Server Error [07.01.2022] [18:45:17] [ERROR] [QA-SONOS-396]: XMLSoapError [Play] Error: 0 - [07.01.2022] [18:45:17] [TRACE] [QA-SONOS-396]: [RenderingControl:GetVolume] [07.01.2022] [18:45:17] [TRACE] [QA-SONOS-396]: [RenderingControl:GetMute] [07.01.2022] [18:45:17] [TRACE] [QA-SONOS-396]: [RenderingControl:GetLoudness] [07.01.2022] [18:45:17] [TRACE] [QA-SONOS-396]: [AVTransport:GetCrossfadeMode] [07.01.2022] [18:45:17] [TRACE] [QA-SONOS-396]: [AVTransport:GetTransportSettings] ... -
sonos Quick App - Sonos Zone Controller
Christb a répondu à un(e) sujet de Krikroff dans Quick App Developpeur
Bonjour, elle est toute seule calée actuellement sur Radio Suisse Classique Je vous joint en fichier texte les traces pour le QA-SONOS-390 qui fonctionne bien pour que vous puissiez analyser une éventuelle différence. Ce matin, les radios s'affichent comme pour les autres QA-SONOS mais aucun des boutons ne fonctionne : Les informations concernant l'état du Play1 semble OK : Volume, Mute ON/OFF, Loudness ON, LED OFF et Zone. Bizarrement, le bouton MUTE a fonctionné une fois mais jamais le bouton UNMUTE. Bizareee le bonton Crossfade ne fonctionne pas mais il change bien d'état quand je le change via m'appli Sonos S2. -
sonos Quick App - Sonos Zone Controller
Christb a répondu à un(e) sujet de Krikroff dans Quick App Developpeur
Bonjour, elle est toute seule calée actuellement sur Radio Suisse Classique Je vous joint en fichier texte les traces pour le QA-SONOS-390 qui fonctionne bien pour que vous puissiez analyser une éventuelle différence. Debug Sonos Play1 -192.168.1.6 1.txt -
sonos Quick App - Sonos Zone Controller
Christb a répondu à un(e) sujet de Krikroff dans Quick App Developpeur
Tous mes équipements sont sur SONOSNET avec un boost connecté sur le routeur sauf le Move qui est sur mon réseau WiFi (dont le QA fonctionne). -
sonos Quick App - Sonos Zone Controller
Christb a répondu à un(e) sujet de Krikroff dans Quick App Developpeur
Oui, voici ce que j'obtiens avec un autre Play1 (dans "Mes stations de radio" je n'ai que 8 stations):
