Demande d'aide Intégration Clim Daikin Wifi - Version imprimable +- Forum Lifedomus (http://forum-lifedomus.com) +-- Forum : Vos automates et applications (http://forum-lifedomus.com/forumdisplay.php?fid=52) +--- Forum : Chauffage (http://forum-lifedomus.com/forumdisplay.php?fid=58) +---- Forum : Demande d'aide (http://forum-lifedomus.com/forumdisplay.php?fid=65) +---- Sujet : Demande d'aide Intégration Clim Daikin Wifi (/showthread.php?tid=4885) |
Intégration Clim Daikin Wifi - natha571 - 10-30-2021 Bonjour à tous, suite à l'arrêt annoncé de lifedomus, les options sont toutes devenues gratuites Ayant chez moi un tri-split avec trois unités intérieures DAIKIN, j'ai voulu essaye d'enfin les intégrer dans mon appli lifedomus afin d'éviter d'utiliser plusieurs applis Malheureusement, mes connaissances sont plus que limitées... Bref, je me lance Suite à la création du connecteur IP "Clim Salon" utilisant mon IP locale. L'API daikin se trouve ici : https://github.com/ael-code/daikin-control j'ai créer un équipement "Climatisation KNX/Daikin" et là, tout se complique pour moi. j'ai réussi a faire plusieurs trucs mais ça casse pas 3 pattes à un canard Pour allumer j'utilise la commande (JS) suivante : command ='aircon/set_control_info?pow=1&mode=1&stemp=26&shum=0&f_rate=B&f_dir=3'; Méthode : GET (Post ne marche pas?) En gros ça dit : allume la clim en mode auto sur 26, en silencieux avec les pales actives. pour éteindre : command ='aircon/set_control_info?pow=0&mode=1&stemp=26&shum=0&f_rate=B&f_dir=3'; ca fonctionne mais impossible de configurer la température ou bien de modifier un paramètre A priori il faudrait plutôt quelque chose du genre : command ='aircon/set_control_info?pow={POWER}&mode={MODE}&stemp={STEMP}&f_rate={FAN_RATE}&f_dir={FAN_DIR}'; mais je ne sais pas comment l'implémenter dans lifedomus... J'ai compris qu'il fallait stipuler des paramètres en mode POST, mais quand je met en post, impossible d'envoyer l'info (le listener ne m'affiche rien) Donc a priori j'arrive envoyer l'info "statique" en figeant tous les paramètres, mais impossible d'avoir un truc variable Savez vous comment faire pour configurer correctement ? Il faut des automates qui remplissent les valeurs de base des variables ? Par contre j'ai enfin réussi in récupérer la température de la pièce via un tuto dispo sur le forum (oui je ne savais pas ou mettre le code et la commande ) et le listener me donne bien la bonne température ! Mais comment faire pour avoir le retour d'état de la clim allumée/éteinte ? j'arrive bien envoyé la commande /aircon/get_control_info qui me renvoie ret=OK,pow=0,mode=7,adv=,stemp=26.0,shum=0,dt1=26.0,dt2=M,dt3=25.0,dt4=25.0,dt5=25.0,dt7=26.0,dh1=0,dh2=50,dh3=0,dh4=0,dh5=0,dh7=0,dhh=50,b_mode=7,b_stemp=26.0,b_shum=0,alert=255,f_rate=A,f_dir=3,b_f_rate=A,b_f_dir=3,dfr1=A,dfr2=5,dfr3=5,dfr4=5,dfr5=5,dfr6=5,dfr7=A,dfrh=5,dfd1=3,dfd2=0,dfd3=0,dfd4=0,dfd5=0,dfd6=0,dfd7=3,dfdh=0 Mais quand j'utilise JSON.parse(trame) (dans le code try .... catch pour les erreurs) j'ai SyntaxError: Unexpected token: r Bref, Si quelqu'un a une idée et serait a même de m'aider , ce serait super merci d'avance RE: Intégration Clim Daikin Wifi - natha571 - 10-30-2021 les captures d'écrans... RE: Intégration Clim Daikin Wifi - sud-domotique-expert - 10-31-2021 peux-tu faire une copie d'écran de ton connecteur , floute juste la partie password ou IP
pour la partie commande : command ='aircon/set_control_info?pow={POWER}&mode={MODE}&stemp={STEMP}&f_rate={FAN_RATE}&f_dir={FAN_DIR}';
EDIT2: il faut que les variables soient exactement de la même syntaxe - sensible à la casse
en général pour contrôler la ligne de commande j'utilise une astuce consistant à mettre dans une variable locale la ligne de commande pour la publier avec ldprint:
command_line ='aircon/set_control_info?pow={POWER}&mode={MODE}&stemp={STEMP}&f_rate={FAN_RATE}&f_dir={FAN_DIR}';ldprint(command_line); command = command_line; toutes données qui sont entre {} sont des variables ,
- soit directes = nom de la variable de l'équipement ==> et dans ce cas elles sont prises sans rien faire, mais il faut les mettre à jour par exemple avec DS
- soit indirectes = automate qui va mettre une valeur dans cette variable ==> alors il faut écrire un automate qui va récupérer une valeur pour la mettre dans cette variable
mais en aucun cas ces variables ne sont des params comme vu dans ton screen
pour la partie retour: ret=OK,pow=0,mode=7,adv=,stemp=26.0,shum=0,dt1=26.0,dt2=M,dt3=25.0,dt4=25.0,dt5=25.0,dt7=26.0,dh1=0,dh2=50,dh3=0,dh4=0,dh5=0,dh7=0,dhh=50,b_mode=7,b_stemp=26.0,b_shum=0,alert=255,f_rate=A,f_dir=3,b_f_rate=A,b_f_dir=3,dfr1=A,dfr2=5,dfr3=5,dfr4=5,dfr5=5,dfr6=5,dfr7=A,dfrh=5,dfd1=3,dfd2=0,dfd3=0,dfd4=0,dfd5=0,dfd6=0,dfd7=3,dfdh=0
si c'est ce que te donne le listener alors le retour n'est pas du json, mais juste du texte et dans ce cas le JSON.parse(trame) ne peut pas marcher , il faut écrire ton .js avec JSON.stringify (trame), qui va mettre le texte en format json pour ensuite exploiter les variables avec leur valeurs
tu peux aussi utiliser dans .js du connecteur la fonction .split() qui va permettre de mettre sous forme de tableau les valeurs retournées
ex: (dans ton cas le délimiteur ne sera pas '&' mais ',' et ton premier argument sera 'trame' à la place de
Code PHP : string.substring(string.indexOf('?')+1) Code PHP : // create a data object to store the information below. RE: Intégration Clim Daikin Wifi - natha571 - 11-01-2021 Super merci pour ta réponse ! et merci pour l'astuce voilà le connecteur [attachment=2769] j'ai rien mis de spécial pour l'instant... j'essaye en local. Ensuite j'ai compris que ca passait via le cloud Daikin (comme dans l'appli daikin) Pour la commande : command ='aircon/set_control_info?pow={POWER}&mode={MODE}&stemp={STEMP}&f_rate={FAN_RATE}&f_dir={FAN_DIR}'; J'arrive l'intégrer et si je défini les paramètres manuellement ca marche. j'ai fais la commutation [attachment=2771] Par contre je me heurte a un nouveau soucis... dans l'application windows, les boutons sont toujours activés, donc les variables restent actives. Dans les applis android c'est un plutôt un appui sec, donc impossible de l'utiliser via l'appli android as tu une solution? et pour le moment, je ne sais pas faire la consigne pour régler la température [attachment=2770] Je ne sais pas comment faire pour que ca fonctionne correctement si ici tu pouvais m'aider... je me pencherai sur le retour d'état quand tout fonctionnera je pense.... mais le code que tu m'as donné, il se charge dans le connecteur c'est bien ça ? merci RE: Intégration Clim Daikin Wifi - sud-domotique-expert - 11-01-2021 on va y aller pas par pas, utilises l'équipement chauffage/climatisation/climatisationKNX/DAIKIN comme support de tes commandes et variables, que tu vas lier au connecteur que tu as là tu vas personnaliser les variables qui existent déjà avec les noms : POWER, MODE, STEMP, F_RATE,F_DIR (et SHUM) si elles n'existent pas en standard ajoute les en string/double en fonction si c'est du texte ou des nombres comme cela ton équipement est déjà tout prêt dans DS (que ce soit en windows ou android) une fois cela fait. tu vas remplir les commandes déjà pré-existantes avec tes lignes de commandes - exactement comme si elles n'existaient pas. quand tu vas activer ou modifier une valeur / bouton dans DS alors ta ligne de commande va s’exécuter directement. ce n'a pas d'importance si toutes les commandes ne sont pas remplies (dans 1 premier temps), rien ne se passera alors lors des appui/modif dans DS je t'invites à remplir toutes les commandes par la suite pour avoir un widget lui-même complet. tu ajouteras par la suite une commande info ou état ou tu pourras ajouter la commande de retour d'état et y mettre le script qui va bien RE: Intégration Clim Daikin Wifi - natha571 - 11-01-2021 (11-01-2021, 03:16 PM)sud-domotique-expert a écrit : on va y aller pas par pas, Oui c'est bien ce que j'ai fais. Le connecteur et l équipement sont créer. Les variables ont bien été renommées (et créé pour SHUM) Pour les commandes j'ai créé avec la commande précédente (en fixant par exemple pow=1 au lieu de pow={Power} pour allumer) Pareil sur les différents mode Et j'ai aussi créé des actions pour la direction des volets avec F_DIR Mais pour la régler la température de consigne je ne sais pas comment faire RE: Intégration Clim Daikin Wifi - sud-domotique-expert - 11-01-2021 normalement tu as une commande: régler la température de consigne dedans tu as un i en bleu qui te donnes le nom de la variable qui a été affectée par lifedomus à la température de consigne (pas CLSID_...., mais "temperature"), tu utilises cette variable {temperature} dans ta commande: régler la température de consigne Nota: au passage c'est n'est pas forcément le nom que tu as mis dans le label de la variable "température de consigne confort", ce label va te servir pour le retour quand tu pourras mettre à niveau les données retour RE: Intégration Clim Daikin Wifi - sud-domotique-expert - 11-01-2021 remarque1: attention dans les variables déjà existantes, beaucoup ne sont pas des STRING/DOUBLE donc dans la partie javascript, il est fort probable que ça ne colle pas lors des comparatifs d'égalité ou même quand tu vas envoyer des données par exemple : est démarré est boolean donc prend les valeurs true/false si tu test POWER==0 ou POWER==1 ça marche pas , il me semble que si test POWER==true non plus je me rappelle plus mais il me semble que ce qui fonctionne c'est POWER=='true' ou 'TRUE' - à retester mais je sais que j'ai eu des galères remarque2: si tu utilises une variable de ton équipement en dehors des quotes "" ou '' alors la syntaxe est POWER pas {POWER} remarque3: if (POWER=1} n'est pas un comparatif mais une affectation qui te retournera toujours true , si tu veux tester c'est if (POWER==1) |