Aller au contenu

Melcloud Commande De Climatisation Mitsubishi


Messages recommandés

Posté(e)

Bonjour a tous

 

J'ai cru comprendre que l'on peut faire des requette HTTP avec nos HC2

J'ai une climatisation mitsubishi équipé d'un module WIFI pour la piloter depuis internet

c'est le système MELCLOUD

http://innovations.mitsubishi-les.com/fr/commandes/adapteur-wifi

 

Pensez vous qu'il soit possible de la piloter depuis nos HC2

Je voudrais pourvoir l'allumer et l’éteindre et pourquoi pas après changer de mode (froid / chaud) avec la possibilité de changer la T°

 

Sachant qu'il faut se connecter au serveur mitsubishi et avoir des identifiants pour pouvoir se connecter depuis le WEB

https://app.melcloud.com/#page-login

 

Si non dans un premier temps je tacherais déjà  de la piloter en on / off

http://liferoome.com/blogs/thisisliving/13530085-video-air-conditioner-control-using-fibaro

Par l’intermédiaire de mon interface MAC-397IF-E

http://www.climmoinschere.com/Mitsubishi-MAC-397IF-E-interface-climatiseurs-Mitsubishi_94__530.html

et de sa commande mural PAR 31MAA-J

Mais je ne pourrais pas modifier le T° et le mode de chauffage, se qui serait dommage

Posté(e)

Il faudrait trouver la documentation de l' API si elle existe ou bien faire un peu de reverse engineering mais le HC2 ne supporte toujours pas le https donc c'est mort pour le côté app.melcloud.com ... Il faut attendre je pense la prochaine mise àjour majeur du HC2.

Posté(e)

bon reste a espère que le https puisse être géré rapidement

pour le moment je gère ma clim en on / off si mes fenêtres de véranda sont ouvert ou ferme
off si elles sont ouverte, et on autorisé la clim si elles sont fermés et que la T° est superieur a 24°C

mais j'aimerais en faire plus, affaire a suivre

en quoi consiste une documentation API?

comment fait'on une reverse engineering?

  • 2 semaines après...
Posté(e)

Bonjour a tous

Je souhaite avoir votre avis

J'ai un module universelle que j'ai branché a ma clim afin de connaitre le status de cette dernière (savoir si elle est en marche ou a l’arrêt)

J'ai ensuite mis un module FGS 211 pour pourvoir donner l'ordre de mise en marche ou arrêt de la clim

enfin des des capteurs sur mes portes fenêtres pour savoir si elle sont fermé ou ouverte.

 

je voudrais faire un script afin d’éteindre ma clim si une de mes deux fenêtres sont ouvertes et que le status de la clim est en marche.

De plus si pendent le temps ou mes fenêtres sont ouverte et que ma clim change de status (a cause la la télécommande hebdomadaire il y a  redémarrage de cette dernière a une heure donné) je voudrais que le script au bout de quelques secondes coupe la clim et a nouveau.

et enfin quant je referme mes deux fenêtres que ma clim puisse fonctionne a nouveau.

 

Pouvez vous m'aider.

Merci

  • 9 mois après...
Posté(e)

Bonjour, je viens de fiare rentrer une mitsubishi ecodan
vos questions m'intêresse et je prendrais le temps de regarder d'un peu plus

prêt ce qu'on peut faire avec ce type de PAC et HC2.

Je prendrais le temps de vous faire 'remonter' tout ce que j'ai déjà  fait,

si cela vous intêresse toujours.

- Pour le pilotage ON/OFF il faut dans les paramétres utiliser 'Paramètres externe et dire

que l'on est sur OFF et connecter IN4 - TB1 un modules Fibaro relais 1,3 KW pour assurer un contact.

Je m'en sert avec mon offre TEMPO ( ou EJP) pour enclencher avec la HC2 le circuit chaudière

les jours ROUGE ( elle est a 60 mètres de distance) en actionnant une vanne ( relais FIBARO) couplé

avec l'accélérateur de ce circuit d'eau. Pou le reste, je n'utilise que le mode Loi d'eau avec

une miriade de robine Z-Wave DANFOSS. ( génial et régulier). 

Bien cordialement

  • 10 mois après...
Posté(e)

Bonjour,

 

Pouvez vous en dire plus sur l'integration de la PAC - Melcloud  - HC2 ?  Les API sont elles dispo ?

 

Est il possible de laisser la PAC faire son travail MAIS de lui envoyer des consigne de températures via votre HC2 ?

 

Merci :)

  • 4 mois après...
  • 1 mois après...
Posté(e)

J'ai aussi une PAC Mtisu depuis peu et j'aimerai bien que Fibaro se penche la dessus, nous pondres des plugins pour webcam c'est sympa mais la PAC c'est quant même nettement plus pratique.

 

Alors Monsieur Fibaro, vous pouvez nous pondre quelque chose svp ?

  • 4 semaines après...
Posté(e)

Bon j'ai trouver quelque chose, par contre je ne suis pas du tout spécialiste en codage, mais pour ceux que ca intéresse et qui voudrait se lancer dans un petit développement pourquoi pas.

 

http://mgeek.fr/blog/un-peu-de-reverse-engineering-sur-melcloud

 

Depuis quelques mois maintenant, les bureaux de l'entreprise dans laquelle je travaille sont équipés de blocs climatiseurs réversibles Mitsubishi (il doit s'agir de ce modèle).

Ces blocs ont trois modes de fonctionnement :

  • Climatisation
  • Chauffage
  • Ventilation

Ils sont connectés, et peuvent être commandés soit par l'intermédiaire d'une télécommande IR, via l'interface web MELCloud ou via les différentes applications mobiles proposées par Mitsubishi.

MELCloud ?

melcloud_logo.png

Accessible via ce lien, MELCloud est une "webapp" (en ligne ou sur mobile, visiblement du Cordova) qui permet de commander et de surveiller des équipements Mitsubishi.

Vous pouvez trouver le manuel utilisateur ici : MELCloud_Manual_App_FR_20131112.pdf.

L'utilisation est simple et assez intuitive. Vous vous connectez avec les identifiants fournis par l'administrateur et vous arrivez sur un menu regroupant tous les périphériques auxquels vous avez accès. Vous pouvez directement interagir avec ces derniers pour modifier ses paramètres de fonctionnement.

melcloud_lobby.jpgLe lobby MELCloud

melcloud_settings.jpgParamètres d'un bloc climatiseur

Notre problème

Cette idée de reverse-engineering n'est pas venue de nulle part.

Tout à  l'heure je racontais que chaque bureau était équipé d'au moins un convecteur. Selon les goà»ts de chacun, certains étaient en mode chauffage à  25°C, d'autres en ventilation pour stabiliser la température ambiante et certains en mode froid à  19°C.

Sauf que, la situation citée ci-dessus provoque un conflit et rends indisponible (pendant parfois une journée) certains appareils de façon aléatoire.

Malgré plusieurs notes de services et mails d'avertissement, les employés continuaient d'utiliser leur appareil comme bon leur semblait; Il nous fallait donc un outil de monitoring rapide pour avoir une vision et une possibilité de réglage sur tous les appareils à  la fois.

L'inspecteur web

J'avoue que, c'est très petit sexe. L'inspecteur web est la solution la plus simple, mais aussi la plus rapide. Que ce soit Firebug ou l'inspecteur web de WebKit, écouter le trafic entre la webapp et leur serveur était donné (surtout avec des réponses JSON).

Ceci n'est pas une documentation de l'API MELCloud. Les explications ci-dessous sont issues de mes notes personnelles et ne sont en aucun cas exhaustives. Je n'ai gardé que les informations qui semblaient pertinentes pour la résolution de mon problème.

Connexion au service

La connexion se fait via une simple requête POST et quelques paramètres.

URL : https://app.melcloud.com/Mitsubishi.Wifi.Client/Login/ClientLogin
Méthode : POST
Retour : JSON

Paramètres :
AppVersion: 1.7.1.0,
Language: 7,
CaptchaChallenge: null,
CaptchaResponse: null,
Persist: true,
Email: votrelogin@email.com,
Password: monmotdepasseenclair

Note: Language = 7, Français (pour recevoir directement les données en °C il me semble).

Je ne vais pas coller ici l'objet répondu en entier, cependant voici les données pertinentes à  récupérer dans notre cas :

  • ErrorId : Si ErrorId=1, combinaison utilisateur/mot de passe invalide.
  • LoginData.ContextKey : Token utilisé pour effectuer les requêtes suivantes
  • LoginData.Name : Nom complet de l'utilisateur connecté
Liste des appareils

Une fois la ContextKey récupérée, vous pouvez afficher les appareils associés à  votre compte :

URL : https://app.melcloud.com/Mitsubishi.Wifi.Client/User/ListDevices
Méthode : GET
Retour : JSON

En-tête : X-MitsContextKey: XXXXXXXXXXXXXX

Et paf, tout un tas de données à  récupérer :

Tout d'abord, le bâtiment (building) :

  • [x].ID
  • [x].Name
  • [x].AddressLine1
  • [x].AddressLine2
  • [x].City

Pour récupérer la température extérieure via un service externe (pour une auto-régulation des appareils par exemple) :

  • [x].Latitude
  • [x].Longitude

Puis après, l'étage (floor) :

  • [x].Structure.Floors[y].ID
  • [x].Structure.Floors[y].Name

Puis après, la zone (area) :

  • [x].Structure.Floors[y].Areas[z].ID
  • [x].Structure.Floors[y].Areas[z].Name

Puis enfin, l'appareil (device) :

  • [x].Structure.Floors[y].Areas[z].Devices[a].ID
  • [x].Structure.Floors[y].Areas[z].Devices[a].DeviceName

Note: Ce que je nomme par [n] est une instance d'un tableau ou d'un objet.

Dans mon cas, mon compte n'a accès qu'a deux périphériques dans la même zone, sur le même étage et dans le même bâtiment.

État d'un appareil

En plus de la ContextKey, il vous faudra :

  • l'ID du périphérique [x].Structure.Floors[y].Areas[z].Devices[a].ID
  • l'ID du bâtiment [x].ID

URL : https://app.melcloud.com/Mitsubishi.Wifi.Client/Device/Get
Méthode : GET
Retour: JSON
En-tête : X-MitsContextKey: XXXXXXXXXXXXXX

Paramètres :
id: XXXX,
buildingID: XXXX

Note: N'oubliez pas que les paramètres en GET, ça set met derrière l'URL ;)

Données pertinentes :

  • Power (bool)
  • Offline (bool): Il arrive que les appareils soient déconnectés du WiFi (par exemple, plus d'internet).
  • OperationMode (int): 1 = Chauffage / 3 = Climatisation / 7 = Ventilation / 8 = Automatique
  • SetTemperature (int)
  • RoomTemperature (int)
  • SetFanSpeed (int): De 0 à  3 dans mon cas (Si 0, vitesse automatique / Puissance de 1 à  NumberOfFanSpeeds qui définis le maximum)

D'autres choses qui nous seront utiles plus tard :

  • HasPendingCommand (bool)
  • EffectiveFlags (int)
  • NextCommunication (timestamp saucé): Les appareils ne sont pas dotées de push. Ils vont régulièrement chercher leurs paramètres sur le serveur MELCloud.

On dispose aussi d'un Name (non utilisé chez moi) et de différents trucs sur la position des ailettes notamment.

Réglage d'un appareil

Pour modifier les propriétés d'un appareil, il va falloir renvoyer l'objet récupéré dans la requête précédente avec nos modifications.

Chaque propriété dispose d'un "flag", le total étant défini dans la propriété EffectiveFlags. Après quelques tests, j'ai trouvé les résultats suivants :

  • Power : 1
  • OperationMode : 2
  • SetTemperature : 4
  • SetFanSpeed : 8

Exemple :

  • Si la propriété OperationMode est modifiée, il va faloir incrémenter EffectiveFlags de 2.
  • Si les propriétés OperationMode et SetTemperature sont modifiées, il va faloir incrémenter EffectiveFlags de 2 + 4, 6.

Et ainsi de suite.

Ne pas oublier d'également mettre à  jour la propriété HasPendingCommand à  true.

On renvoie ensuite l'objet la façon suivante :

URL : https://app.melcloud.com/Mitsubishi.Wifi.Client/Device/SetAta
Méthode : POST
Retour: JSON
En-tête : X-MitsContextKey: XXXXXXXXXXXXXX

Paramètre : L'objet récupéré dans Device/Get modifié selon nos besoins.

Le retour de cette requête nous intéresse, plus précisément la propriété NextCommunication qui contient la date et l'heure à  laquelle sera appliquée notre modification.

Du C# pour notre réponse

lelcloud_logo.png

Rappelez-vous du problème original ! Plutôt que de refaire un outil web, j'ai décidé de poursuivre mon autoformation C# avec cette application codée un peu avec les pieds.

C'est d'ailleurs pour ça qu'il n'y aura pas de sources publiées, mais ne vous inquiétez pas, j'ai reçu ma Pebble Time et je pense qu'une petite télécommande intégrée dans la montre peut être un bon projet pour l'été.

Voici quelques captures d'écran de LELCloud :

lelcloud_login.pngLe formulaire de connexion

lelcloud_lobby.pngLe lobby

lelcloud_settings.pngPage de configuration d'un appareil

Conclusion

Tout peut s'analyser lorsqu'on y met un peu de bonne volonté. Je rappelle que cette application n'a pas été réalisée pour montrer une quelconque défaillance de système, mais juste pour des besoins internes.

J'ai bien lu les termes et conditions de l'application MELCloud, notamment l'extrait suivant :

3.7 Vous devrez : [...] (g) ne pas copier, adapter, modifier, désassembler, décompiler, décrypter ou créer des solutions dérivées basées sur le Système;

Je citerais comme unique réponse :

L'utilisation du reverse engineering est toléré en Europe dans le cas du fair-use, qui l'autorise lorsque l'utilisation des connaissances acquises répond à  des besoins d'implémentation d'interfaces ou de correction d'erreurs (débogage).

  • Upvote 1
  • 1 mois après...
×
×
  • Créer...