Aller au contenu
Bloug

Quick App – Cozytouch

Recommended Posts

Merci beaucoup du retour et code. Je n’ai pas de caractère spéciaux dans mon mot de passe mais j’essaierai malgré tout… ce weekend. -en semaine c’est compliqué :-) -

Au fait comme, est ce que vous récupérer l’url du device à commander? J’utilise le plugin jeedom ce qui m’a permis de le trouver dans les logs (je pense) mais j’imagine que ce n’est pas la solution que vous utilisez tous? :-)

 

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

alors, peut être une erreur dans mon code ! A vérifier ensemble point par point, je reste dispo ;) tiens mois au jus !

 

en fait lors de la connexion ( complète ) il récupère un gros Json avec l'ensemble des devices du coup il est possible de le recopier pour l'indiquer dans la variable. 

 

image.png.d9cc8c97f989de6b3d1fe13106898ae3.png

 

 

 

Pour ton Erreur , Impossible d'avoir la suite du message ? https://apis.groupe-atlantic.com/token 400{"error_de

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour @Bloug:

 

petite question : c'est quoi le device URL ? Et comment tu le récupères ?

 

En te remerciant

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut @Manu31 

Effectivement j'ai pas trop détaillé :D

 

Le deviceURL c'est le noms de ton appareil dans le cozytouch

 

dans le QA vers la ligne 306 tu as  :

              --print(response.data)                 -- < < < < < < < < < < I-C-I pour récupérer le Json complet du bridge

il faut la décommenter pour récupérer dans le log de la hc3 le JSON complet. Ensuite j'utilise le viewer   http://jsonviewer.stack.hu/  pour lire/décoder " l'ensemble" 

 

le QA est à modifier en fonction de ton utilisation. dans "mon" utilisation, ayant deux sèches serviettes le device URL en variable me permet de différencier mes deux appareils.

 

une fois ton deviceURL identifié, il faut adapter le QA pour ton besoin

Regarde également avec la ligne suivante :

 --print(k,"=",json.encode(v):sub(1,80))   -- < < < < < < < < < < I-C-I pour récupérer la liste des elements de l'appareil

n'hésite pas à poster ton Json si tu as besoin d'aide.

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut @Bloug,

 

Effectivement, je comprends mieux.

Le JSON est récupéré (par contre je vais rallongé le délais d'update (peur de me faire blacklister si j'intérroge toute les 30sec)).

Par contre j'ai un PAC Atlantic et pas de sèche serviette.

Du coup ca promet de longues heures de dev pour avoir les bons child :'( et faire les actions qui vont bien.

 

Encore merci ;) et si jamais une âme en manque de dev se sent chaud pour aider je suis preneur.
 

Partager ce message


Lien à poster
Partager sur d’autres sites

poste moi ton JSon ! je jette un oeil ;)

 

Pour l'update  je suis a 30sec et j'ai 2 QA_Cozytouch qui tournent. pas de pb :) 

 

Modifié par Bloug

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 20 heures, Bloug a dit :

poste moi ton JSon ! je jette un oeil ;)

 

Pour l'update  je suis a 30sec et j'ai 2 QA_Cozytouch qui tournent. pas de pb :) 

 

Salut @Bloug.

C'est envoyé en MP ;) 

Partager ce message


Lien à poster
Partager sur d’autres sites

J'ai un chauffe eau Atlantic Connecté à Cozytouch

 

Je récupère bien un gros json avec  TEST Cozy.fqa ( il y a bien mes coordonnées dedans .. c'est bien mon chauffe eau)

l'url du device ne ressemble pas io://0810 .....     mais j'ai "modbuslink://1534-2078-8428/1#1

j'insère modbuslink://1534-2078-8428/1 dans la Variable Appareil

 

731150930_Capturedecran2023-10-19a17_21_57.png.b35201943f989a92e30d1900655bd6bc.png

 

 

 

mais j'obtiens error:  https://ha110-1.overkiz.com/enduser-mobile-web/enduserAPI/exec/apply 400{"errorC     Dans function QuickApp:ref()

 

Je vais essayer de chercher mais si quelqu'un sait .. merci de votre aide

 

Partager ce message


Lien à poster
Partager sur d’autres sites

L'erreur est toujours là mais en remplaçant

        --if device and expr.name and (expr.name:sub(1,3)=='io:' or expr.name:sub(1,5)=='core:') and expr.value then             -- Initial 
        if device and expr.name and (expr.name:sub(1,11)=='modbuslink:' or expr.name:sub(1,5)=='core:') and expr.value then      -- HENRI  

 Je récupère bien des valeurs de l'appareil. 

 

Cela étant il reste à trouver la cause de l'erreur. Et modifier tout le QA car ce n'est pas du tout là même structure pout un chauffe-eau attlantic

Mais l'accès au cloud Cosytouch et d'autres fonctions restent bien utiles comme exemple

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Bon J'ai trouvé : la Data pour la requête  refresh Ref (et d'autres) sont codées en dur : local ref =  '{"actions":[{"deviceURL":"io://0810-4343-0200/13610533#1","commands":............

donc là aussi le device Url ne correspond pas -> Erreur

Merci tout de même pour ce QA de @Blougqui permet de se connecter au cloud Cosytouch et sert de modèle pour d'autre besoin

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonsoir, je suis très intéressé si tu avances sur un quickapp cozytouch "Chauffe-eau"! :-)

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut,

 

aidez-moi s'il vous plaît.

 

J'ai été utilement dirigé ici par @Lazer. A utiliser pour mon réservoir Thermodynamique Thermor AeroMax 5.

 

J'ai installé le QA mais j'ai du mal avec le paramètre URL. Comment puis-je le découvrir ? J'ai l'adresse IP du CozyTouch et j'ai aussi le code à 12 chiffres au dos du CozyTouch mais je n'ai rien au format indiqué sur le premier post.

 

Merci d'avance.

Partager ce message


Lien à poster
Partager sur d’autres sites

@Merlin

Je ne suis pas l'auteur du QA mais tu utilise le QA de test à télécharger dans les pages précédentes avec ton user et password de ton appli cozytouch pour obtenir un json global dans lequel en fouillant tu pourra trouver l'URL de 'l'appareil 

Tu recherche deviceURL, tu oublie les internal://  ... dans mon cas le modbus pour un chauffe eau Atlantic.. Attention ce n'est valable que si tu as enregistré ton appareil sur le cloud cozytouch pas d'accès direct.

1523868490_Capturedecran2023-10-21a18_08_59.png.982405d93674dbb5f1352e12c144e7b8.png

 

@Gael

Je ne compte pas faire un QA complet pour le chauffe-eau car je n'ai besoin que d' une fonction pour pouvoir passer  le chauffe-eau en mode absence pendant les jours tempo rouge. J'ai avancé, je sais lire les données de l'appareil et  le mettre en absence sur le cloud (il me faut trouver le code pour que ça passe du cloud au chauffe-eau)  

Quand ça marche je mettrai mon .Lua ici ça pourra servir d'exemple 

Modifié par henri-allauch
Mise en forme et précisions

Partager ce message


Lien à poster
Partager sur d’autres sites

Cozytouch supporte une multitude d’appareils ici c’est pour : un Chauffe-eau Atlantic Chauffe-eau Type LINEO

 

Ce QuickApp m'a servi pour trouver les commandes pour se connecter à l'api du cloud cozytouch,obtenir quelques infos utiles (températures, douches restantes, puissance instantanée) et demander une mise et absence (On ou Off).

 

Il n'est pas auto_adaptatif et sans ChildDevices. Mon besoin etait découverte, mise au point et principalement une commande ABSENCE_ON et ABSENCE_OFF pour les horaires des Jours ROUGES TEMPO afin de ne pas couper son alimentation et décaler sa chauffe en heure creuse.

 

Les commandes émises et les infos recues sont celles du cloud, J’ai toujours un doute entre la liaison Appareil Physique et Appareil cloud qui peut ne pas être à jour suite à une coupure wifi ou autre. 

Il y a peut-être un indicateur d'état de cette liaison dans le Json ..??

 

Je poste ce QA sur le forum tel-que dans le but d'aide : C’est plus un QA de découverte et de Test.

 

Ses Fonctions :

    Un mode MANUEL 

    Il permet de se connecter à l’appareil sur le cloud, de lire quelques informations utiles et de mettre en place un mode absence. 

    D’afficher les status ou les valeurs en retour. 

 

    Un Mode CYCLIQUE :

    L'idée de départ : Login puis cycles de get. Mais avec une timer inter cycle de 2 à 4 minutes  on à une erreur 429 au bout de 10 cycles (429 Trop de cycles)au delà de 4 minutes on est déconnecté et on récupère une erreur 401 sur la commande suivante.

    Donc Solution : un cycle est composé du Login Atlantic, du login Cosytouch API, d'un get des infos avec un inter cycle entre 2 et 5 minutes. En inter cycle d'autres commandes Get ou Set sont possibles.

 

Piège recontrés:

    Pour mettre un mode absence ON il faut aussi une date de début et une date de fin. 

    La date de fin est à priori au moins 24 heures au delà de la date de début. 

    La date doit être complete J M A H m s et WeekDay. Ce dernier au lieu d’être 0 dimanche à 6 Samedi est 0 Lundi à 6 dimanche. (fallait savoir) 

    Et bien d’autres pièges.Les commandes rejetés sont souvent de type 401 sans commentaires.

 

Pour évoluer avec d'autres fonctions : 

    IL faut décortiquer le JSON reçu pour trouver le format des autres commandes suivant vos besoin. 

    Voir vers ligne 320 pour valider la trace du json et vers la ligne 330 pour valider la trace des éléments de l’appareil. 

    Comme d’habitude tout est dans le JSON et une Appli style JSON viewer est bien utile.

 

Les Variables du QA : 

    V_TempoInit -> 1 à n en secondes Attente avant l’init du QA

    V_InfoRam -> ON ou OFF valide les infos Ram et Cpu (from @Lazer)

    V_UserName -> MonMail@lemail.com  Identification Appli Cozytouch

    V_Password -> LePasswordAssocié

    V_Usage -> CYCLIQUE ou MANUEL 

    V_TempoCycle -> 300 tempo en secondes entre deux cycles (LogAtlantic Log_API GetInfos)

 

Bon courage …

 

TestCozyTouch Atlantic Lineo_1.02 .fqa

Modifié par henri-allauch
Correction
  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

IMG_0129.thumb.png.1f2c759765d373e58cf00007c9a29691.png@henri-allauch

 

Merci pour vos efforts. J'ai installé votre contrôle qualité et il semble se connecter correctement, mais aucune valeur n'est renseignée. Mais j'ai le Thermor AeroMax 5, c'est peut-être pour cela que je ne peux rien obtenir d'autre.
 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Oui il doit y avoir des differences

La connexion semble ok

Il vous faut étudier les valeurs contenu dans le json 

Le 26/10/2023 à 16:40, henri-allauch a dit :

 IL faut décortiquer le JSON reçu pour trouver le format des autres commandes suivant vos besoin. 

    Voir vers ligne 320 pour valider la trace du json et vers la ligne 330 pour valider la trace des éléments de l’appareil. 

    Comme d’habitude tout est dans le JSON et une Appli style JSON viewer est bien utile.

Tu peux aussi valider la trace des Keys (un peu plus bas, dans le code) tu aura une liste des champs validé pour cet appareil et ainsi modifier le code du lua pour afficher les données disponibles

Modifié par henri-allauch
  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

En complément voir dans fichier Exemple.lua ci-dessous pour trouver des Keys

 

Exemple.lua  rebaptise le en .txt après chargement

Modifié par henri-allauch

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour,

 

Je cherche à connecter 3 radiators thermor avec le QA proposé, je me posais une question : que faut-il mettre comme adresse url ?

image.png.a757fddbac578e415cfe7d90bafc1e27.png

 

Il s'agit de l'url du cozytouch ou un code du radiateur en lui même ?

 

Merci d'avance de votre support.

Partager ce message


Lien à poster
Partager sur d’autres sites
Le 09/02/2023 à 14:36, Bloug a dit :

Salut @Manu31 

Effectivement j'ai pas trop détaillé :D

 

Le deviceURL c'est le noms de ton appareil dans le cozytouch

 

dans le QA vers la ligne 306 tu as  :


              --print(response.data)                 -- < < < < < < < < < < I-C-I pour récupérer le Json complet du bridge

il faut la décommenter pour récupérer dans le log de la hc3 le JSON complet. Ensuite j'utilise le viewer   http://jsonviewer.stack.hu/  pour lire/décoder " l'ensemble" 

 

le QA est à modifier en fonction de ton utilisation. dans "mon" utilisation, ayant deux sèches serviettes le device URL en variable me permet de différencier mes deux appareils.

 

une fois ton deviceURL identifié, il faut adapter le QA pour ton besoin

Regarde également avec la ligne suivante :


 --print(k,"=",json.encode(v):sub(1,80))   -- < < < < < < < < < < I-C-I pour récupérer la liste des elements de l'appareil

n'hésite pas à poster ton Json si tu as besoin d'aide.

 

voici l'explication

 

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci pour le retour, j'avais loupé ce message. 

Je souhaitais pouvoir couper le chauffage en fonction de tempo, j'ai déjà la QA pour obtenir le jour. Je voudrais savoir comment je pourrais couper le chauffage si je suis rouge.

 

Je voulais faire un scenario mais je n'arrive pas à changer le statut on on/off vers le radiateur radiateur. Auriez vous des idées ou un aiguillage à me donner ?

 

Bonne soirée

Partager ce message


Lien à poster
Partager sur d’autres sites

×