Julien92130 Posté(e) le 30 avril 2020 Signaler Posté(e) le 30 avril 2020 Hello Voici mon premier sujet. Comme je le disais dans ma présentation, je viens de finir ma migration HCL > HC3, qui s’est plutôt bien passée. Là où je galère en revanche, c’est sur le portage de mes VD vers les QA… Ma question concerne le contrôle d’une pompe à chaleur. Grâce aux API Daikin, je pilotais, via donc des VDs, ma PAC : Je cherche à reproduire exactement la même chose sur HC3. Je m'oriente donc vers les QA mais je n'ai malheureusement AUCUNE idée de comment porter ces 2 appels Si une âme charitable pouvait m'aider / m'orienter un peu, ça serait vraiment top ! Portez-vous bien
jjacques68 Posté(e) le 30 avril 2020 Signaler Posté(e) le 30 avril 2020 (modifié) un truc du genre : en copiant l'url complet ainsi que la chaîne d'authorisation... faut essayer... local http = net.HTTPClient({ timeout = 20000 }) http:request("http://192.168.1.151/aircons/......&f_dir=0", { options = { header = {['Authorization'] = 'Basic .........'}, method = "GET", }, success = function(status) print(json.encode(status)) end, error = function(error) print(json.encode(error)) end }) a mettre dans le turnOn / Off d'un QA binary switch Modifié le 30 avril 2020 par jjacques68
Julien92130 Posté(e) le 30 avril 2020 Auteur Signaler Posté(e) le 30 avril 2020 Merci ! Effectivement, j'ai réussi à "bidouiller" un truc qui ressemble à ta solution. Je suis parti sur une QA de type Binary switch. Amis développeurs, ne m'en voulait pas, c'est sûrement très crado mais ça fait le job Si vous avez des suggestions d'améliorations n'hésitez pas. Je copie/colle pour celles et ceux que ça peut aider : function QuickApp:turnOn() self:debug("binary switch turned on") self:updateProperty("value", true) local address = "http://192.168.1.150/aircon/set_control_info?pow=1&mode=3&stemp=21.0&shum=0&f_rate=A&f_dir=0" self.http:request(address, { options={ headers = { Accept = "application/json" }, checkCertificate = true, method = 'GET' }, success = function(response) self:debug("response status:", response.status) self:debug("headers:", response.headers["Content-Type"]) local data = json.decode(response.data) if data.contents and data.contents.quotes and data.contents.quotes[1] then local quote = data.contents.quotes[1].quote self:debug(quote) self:updateView("label", "text", quote) end end, error = function(error) self:debug('error: ' .. json.encode(error)) end }) end function QuickApp:turnOff() self:debug("binary switch turned off") self:updateProperty("value", false) local address = "http://192.168.1.150/aircon/set_control_info?pow=0&mode=3&stemp=21.0&shum=0&f_rate=A&f_dir=0" self.http:request(address, { options={ headers = { Accept = "application/json" }, checkCertificate = true, method = 'GET' }, success = function(response) self:debug("response status:", response.status) self:debug("headers:", response.headers["Content-Type"]) local data = json.decode(response.data) if data.contents and data.contents.quotes and data.contents.quotes[1] then local quote = data.contents.quotes[1].quote self:debug(quote) self:updateView("label", "text", quote) end end, error = function(error) self:debug('error: ' .. json.encode(error)) end }) end function QuickApp:onInit() self:debug("onInit") self.http = net.HTTPClient({timeout=3000}) end 1
jjacques68 Posté(e) le 30 avril 2020 Signaler Posté(e) le 30 avril 2020 nickel ! tu n'as pas eu de soucis avec l'authentification visiblement ?
Julien92130 Posté(e) le 30 avril 2020 Auteur Signaler Posté(e) le 30 avril 2020 Apparement non Sur ma HCL j’avais eu besoin de le rajouter mais là non. Merci pour le support. 1
JLT Posté(e) le 15 juin 2021 Signaler Posté(e) le 15 juin 2021 (modifié) Bonjour Julien92130, Je réactive ton sujet d'il y a un an car cela m'intéresse en tant que propriétaire d'unités Emura Daikin et de la HC3 Fibaro J'aimerai ajouter l'utilisation de "/aircon/get_sensor_info" pour avoir l'affichage des infos sur les températures As tu une idée pour intégrer cela ? Merci Modifié le 15 juin 2021 par JLT
Julien92130 Posté(e) le 16 juin 2021 Auteur Signaler Posté(e) le 16 juin 2021 Bonjour JLT, Je n'y ai pas consacré beaucoup plus de temps. A l'heure actuelle j'utilise une QA trouvée sur le forum officiel de Fibaro : https://forum.fibaro.com/topic/50207-hc3-quick-app-for-controlling-ac-units/#comment-207151 Les fonctionnalités que proposent cette QA me suffisent : Pour le reste (notamment le suivi de la consommation), j'ai écrit ma propre QA qui requête les unités par l'API Daikin et qui remonte ça dans un dashboard Grafana. Je peux te copier-coller cette QA comme base de départ à adapter pour récupérer les infos que tu cherches : 1
JLT Posté(e) le 18 juin 2021 Signaler Posté(e) le 18 juin 2021 (modifié) Bonsoir Julien92130, J'avais vu cette QA sur le forum mais elle se limite au "get_control_info" et moi c'est le "get_sensor_info" qui m'intéresse. Génial que ton QA de suivi de consommation Je n'ai/connaissais pas grafana (ca à l'air pas mal du tout), je souhaite juste afficher les données des sensor dans "Yubil" de Fibaro, mais surtout, de récupérer ces données pour pouvoir les utiliser pour créer des scènes Fibaro pour les Emura Daikin ! En fait jusqu'il y peu, je passais par IFTTT, mais pour une raison inconnue et malgré mes multiples tentatives (désinstall, reset, réinstall...), le "Out of Home" de l'app "Controller" de Daikin ne fonctionne plus (soit ne trouve pas le serveur, soit ne trouve pas les unités) Et donc du même coup, IFTTT ne trouve plus mes unités Daikin et donc ne réalise plus les scénarios ! Tout ça me fait penser à un problème de serveur chez Daikin (qui ne le reconnait pas pour l'instant, vu que pas d'autres signalement... certainement du au nombre faible d'utilisateur de cette fonction....) Pour revenir à ta proposition, oui je suis preneur, même si je ne suis pas un spécialiste en QA, en cherchant je trouverai ce qu'il faudra adapter Merci d'avance Modifié le 18 juin 2021 par JLT
Julien92130 Posté(e) le 19 juin 2021 Auteur Signaler Posté(e) le 19 juin 2021 Salut JLT, Voilà une QA très simple, et surement loin d'être parfaite (je ne suis pas du tout développeur), mais qui fait le job: Daikin_sensors.fqa Sur mes unités (Daikin FTXA15AW), le "get_sensor_info" me retourne quelque chose comme ça : ret=OK,htemp=27.0,hhum=50,otemp=22.0,err=0,cmpfreq=0 La QA jointe récupère ces infos et créée des variables de QA avec chacune des valeurs (htemp, hhum, otemp). Il te suffit de changer l'adresse IP et d'ajouter/enlever les champs que te retournent tes unités. Hope that helps 1
JLT Posté(e) le 19 juin 2021 Signaler Posté(e) le 19 juin 2021 (modifié) Slt Julien92130, Merci beaucoup. J'ai commencé à décrypter (lentement quand on est pas un spécialiste ) Dur dur mais ca y est J'ai compris ton astuce de récupération des données du "get_sensor_info", simple mais fallait le savoir Peut être que c'est différent chez toi, mais j'ai du adapter tes 3 lignes concernées : htemp = string.sub(apiResult, 14, -36) Car ca prenait trop de données, j'ai changé en htemp = string.sub(apiResult, 14, 17) donnant ainsi les numéros des caractères à récupérer : "25.0" Il y a apparemment une différence pour l'humidité, car chez moi cela affiche "=-" : ret=OK,htemp=25.0,hhum=-,otemp=19.0,err=0,cmpfreq=14,mompow=2 Mes unités sont des Emura FTXJ, peut être est ce du à la différence avec tes FTXA ? Un autre souci de débutant, chez moi Je veux assigner l'affichage des résultats aux boutons. Edit : c'est ok j'ai trouvé une solution => => => => Petite question : pourquoi la "Valeur :" est sur "0" ? Edit 2 : la proposition fonctionne tant qu'il n'y a pas d'autre chiffre, et là une faille se présente : "ret=OK,htemp=26.0,hhum=-,otemp=19.0,err=10000,cmpfreq=0" Avec l'apparition de 10000 pour err, le résultat d'affichage de cmpfreq n'est plus celui après le signe "=" mais les lettres "re" du mot "cmpfreq". Une solution est de décompter les caractères au lieu de les compter (pour la dernière valeur évidemment) Modifié le 21 juin 2021 par JLT
Julien92130 Posté(e) le 26 juin 2021 Auteur Signaler Posté(e) le 26 juin 2021 Salut @JLT, Désolé je n'avais pas vu ta réponse. Bravo Je suis loin, TRES loin, d'être aussi un spécialiste, mais c'est en forgeant qu'on devient forgeron )) 1
JLT Posté(e) le 28 juin 2021 Signaler Posté(e) le 28 juin 2021 Hello, Je sèche sur la création d'un "child" afin de créer une scène Fibaro (pour remplacer IFTTT que Daikin ne prend plus en charge). J'ai lu les manuels d'initiation mais j'arrive pas à transposer ici. Quelqu'un a une idée à proposer ?
Julien92130 Posté(e) le 29 juin 2021 Auteur Signaler Posté(e) le 29 juin 2021 Salut @JLT, Je n'ai jamais eu besoin de créer des child devices, je ne peux pas t'aider, mais que cherches-tu à faire exactement ?
JLT Posté(e) le 29 juin 2021 Signaler Posté(e) le 29 juin 2021 Salut @Julien92130, En fait, je voudrais, par exemple, créer une scène qui allume une unité Daikin lorsque la température passe un seuil défini à l'avance. un peu comme la fonction que j'avais avec IFTTT précédemment : Ca doit être faisable avec un QA mais pas évident pour un débutant comme moi...
Julien92130 Posté(e) le 29 juin 2021 Auteur Signaler Posté(e) le 29 juin 2021 Oui, c'est même assez "simple" (mais il faut se plonger un peu dans le LUA ). Pour ma part j'ai : - une QuickApp par unité Daikin - de multiples scènes qui interagissent avec ces QA en fonction des scénarios que je souhaite couvrir (Ex.: il fait chaud, le soir, je suis chez moi, j'allume la clim dans la chambre). Les QA que j'utilisent pour gérer mes unités Daikin sont celles de mon message du 16 juin sur cette page, ensuite, depuis les scènes, j'appelle les QA de cette façon : fibaro.call(431,"setVariable","ac_stemp","21.0") fibaro.call(431, "btnPowerPressed") fibaro.call(431, "btnModeCoolPressed") Il te "suffit" donc de récupérer le modèle de QA, de l'importer en l'adaptant à ton installation, puis de créer tes scènes. Ca n'est pas très très compliqué mais c'est faisable, il faut juste se plonger un peu dedans.
JLT Posté(e) le 29 juin 2021 Signaler Posté(e) le 29 juin 2021 Merci @Julien92130 tu es apparemment plus performant que moi en lua Je comprends ton explication des "fibaro.call" Mais pour les conditions, ? j'ai essayé sur ton conseil de passer à du lua pour la scène j'ai fait une conversion en lua d'une tentative de création via bloc en y apportant quelques modifications, mais j'avoue être dans le brouillard... Est ce que la condition "si température intérieure au-dessus de 22.0 C°" est bien libellée ? Comment boucler cette scène, style "relire la condition chaque 5 minutes" ? Et puis, comment faire la différence entre l'action On et l'action OFF car là si je lance la scène, soit elle arrête l'unité si elle est ON, soit elle la démarre si elle est OFF (logique car l'action ne fait que déclencher le bouton power sans tenir compte de son état)
Julien92130 Posté(e) le 1 juillet 2021 Auteur Signaler Posté(e) le 1 juillet 2021 Salut @JLT, C'est bien essayé mais non :=) Je suis un peu pris par mon boulot cette semaine, je n'ai pas trop le temps de te répondre ou t'expliquer, mais c'est un peu plus compliqué que ça... J'essaye de t'aider un peu plus tard quand ça se sera calmé... Mais il te faut quand même quelques notions de dev LUA pour te lancer, ou lire des exemples de scènes déjà écrites. J'ai pas mal appris aussi avec la documentation de Fibaro à cette adresse : https://manuals.fibaro.com/home-center-3-lua-scenes/ Bon courage, rien n'est impossible
Cardane Posté(e) le 2 juillet 2021 Signaler Posté(e) le 2 juillet 2021 Salut @Julien92130, est-ce que tu pourrais partager le QA qui permet de récupérer les infos de consommation des PAC ? ou simplement envoyer la commande que tu utilises ? et le top, si tu as la possibilité de partager ca, ce serait la partie Grafana, ca m'intéresse de voir comment tu a construit ton dashboard, je pense éventuellement faire un truc comme ca aussi par la suite. merci
Julien92130 Posté(e) le 4 juillet 2021 Auteur Signaler Posté(e) le 4 juillet 2021 Salut Cardane, Voilà la QA que j'utilise pour récupérer la conso. Pour Grafana, je me suis basé sur ce thread sur le forum officiel Fibaro (j'y ai partagé mon dashboard il y a quelques temps) : https://forum.fibaro.com/topic/47604-howto-hc2-grafana-influxdb/ Le principe : je me base sur une scène récupérée sur ce thread, qui récupère les infos que je souhaite mettre sur mon dashboard et les stocks dans une base de données Influxdb (hébergée sur mon NAS Synology). Ensuite, je connecte cette source de donnée sur mon dashboard Grafana et voilà. Daikin_Conso.fqa 1
Cardane Posté(e) le 4 juillet 2021 Signaler Posté(e) le 4 juillet 2021 Super, merci, je regarde ca à tête reposée
flamalex Posté(e) le 3 février 2022 Signaler Posté(e) le 3 février 2022 (modifié) Bonjour, je cherche désespérément à incrémenter ce module avec les valeurs température intérieure, température ext, et humidité et les afficher dans un label Daikin_AC (1).fqa de plus le "set mode" n'actionne rien edit: je cherche à intégrer ceci dans le main, mais j'avoue de pas y arriver je ne sais pas ou --=============================================== -- AFFICHAGE des temperature in/out et humidité --=============================================== function QuickApp:onInit() self:debug("OnInit") self.http = net.HTTPClient({timeout=3000}) self:loop("") end -- Fonction pour formater le retour de l'API function split(s) local pattern = "/" local maxsplit = -1 local s = s local t = {} local patsz = #pattern while maxsplit ~= 0 do local curpos = 1 local found = string.find(s, pattern) if found ~= nil then table.insert(t, string.sub(s, curpos, found - 1)) curpos = found + patsz s = string.sub(s, curpos) else table.insert(t, string.sub(s, curpos)) break end maxsplit = maxsplit - 1 if maxsplit == 0 then table.insert(t, string.sub(s, curpos - patsz - 1)) end end output = t end -- Fonction d'arrondi function round(number, precision) local fmtStr = string.format('%%0.%sf',precision) number = string.format(fmtStr,number) return number end function QuickApp:loop(text) local interval = 3600 -- PAC SALON local url = "http://" .. "192.168.1.245" .. "/aircon/get_sensor_info" self.http:request(url, { options={ headers = {Accept = "application/json"}, method = 'GET'}, success = function(response) --self:debug("response status:", response.status) --self:debug("headers:", response.headers["Content-Type"]) apiResult = response.data print(apiResult) -- exemple de retour : --ret=OK,htemp=24.0,hhum=40,otemp=8.0,err=0,cmpfreq=0,mompow=1 ---------------------------------------------- -- Récupération des données ---------------------------------------------- htemp = string.sub(apiResult, 14, 17) hhum = string.sub(apiResult, 24, 25) --otemp = string.sub(apiResult, 33, 36) otemp = string.sub(apiResult, 33, -26) ---------------------------------------------- -- Création des variables de QuickApp ---------------------------------------------- self:setVariable("htemp", htemp) self:setVariable("hhum", hhum) self:setVariable("otemp", otemp) --afficher données self:updateView("Lbl1", "text", "Temp. INT = "..htemp .. "°C") self:updateView("Lbl2", "text", "HUMID = "..hhum .. "%") self:updateView("Lbl3", "text", "Temp. EXT = "..otemp .. "°C") end, error = function(error) self:debug('error: ' .. json.encode(error)) end }) -- LOOP fibaro.setTimeout(tonumber(interval)*1000, function() -- Vérifie toutes les n secondes les nouvelles données self:loop(text) end) end --================================================= --=================================================== Modifié le 23 février 2022 par flamalex 1
flacon030 Posté(e) le 3 février 2022 Signaler Posté(e) le 3 février 2022 (modifié) @Julien92130 Ton grafana me plais beaucoup serai t’il possible de partager ta réalisation Merci Modifié le 3 février 2022 par flacon030
flamalex Posté(e) le 23 février 2022 Signaler Posté(e) le 23 février 2022 (modifié) J'arrive à intégrer les températures actuelles OK, (ok pour la lecture aircon/get_sensor_info) mais comment fonctionne la récupération des températures de consigne chaud/froid du QA "Système HVAC automatique" "coolingThermostatSetpoint et heatingThermostatSetpoint" Je ne trouve rien sur le net, concernant l'exploitation de ce QA alors c'est vrai, j'arrive 2 ans après avec mes questions , mais ça fait 3 semaines que je suis sur ce QA , j'avais un super VD DAIKIN sur HC2 et j'essaie de le reproduire en partant de tous les QA que je trouve sur le net pour comprendre (idem pour mon VD arrosage) quel galère mais je dois très probablement mal chercher je souhaite reproduire ceci sur hc3 Modifié le 24 février 2022 par flamalex
JLT Posté(e) le 23 février 2022 Signaler Posté(e) le 23 février 2022 il y a une heure, flamalex a dit : j'arrive à intégrer les températures actuelles OK, (ok pour la lecture aircon/get_sensor_info) mais comment fonctionne la récupération des températures de consigne chaud/froid du QA "Système HVAC automatique" "coolingThermostatSetpoint et heatingThermostatSetpoint" Je ne trouve rien sur le net, concernant l'exploitation de ce QA alors c'est vrai, j'arrive 2 ans après avec mes questions , mais ça fait 3 semaines que je suis sur ce QA , j'avais un super VD DAIKIN sur HC2 et j'essaie de le reproduire en partant de tous les QA que je trouve sur le net pour comprendre (idem pour mon VD arrosage) quel galère mais je dois très probablement mal chercher même réflexion en ce qui concerne le "slider" dans la QA ("DAIKIN AC LIVING SWITCH") Quelque soit la position choisie, rien ne change pour la température demandée... Une idée ?
Julien92130 Posté(e) le 24 février 2022 Auteur Signaler Posté(e) le 24 février 2022 Le 02/07/2021 à 12:29, Cardane a dit : Salut @Julien92130, est-ce que tu pourrais partager le QA qui permet de récupérer les infos de consommation des PAC ? ou simplement envoyer la commande que tu utilises ? et le top, si tu as la possibilité de partager ca, ce serait la partie Grafana, ca m'intéresse de voir comment tu a construit ton dashboard, je pense éventuellement faire un truc comme ca aussi par la suite. merci Salut, désolé je ne me connecte pas très souvent. Voilà ce que j'utilise pour récupérer la conso de la PAC. A adapter, et surement pas développé dans les règles de l'Art, mais ça fonctionne daikin_conso.lua 1
Messages recommandés