Forum eedomus
https://forum.eedomus.com/

PAC Mitsibishi
https://forum.eedomus.com/viewtopic.php?f=15&t=5353
Page 1 sur 3  Suivant »
Auteur:  la mouche [ 19 Mars 2017 18:54 ]
Sujet du message:  PAC Mitsibishi

Bonjour a tous ,
Je débute dans ce merveilleux domaine qu'est la domotique donc je suis plutôt novice hi level :lol: malgré tout j'ai une eedomus+ que je fait grandir de jour en jour et dans cette optique j'aimerai y coupler mon installation pompe a chaleur Mitsubishi , afin de pouvoir contrôler les différents splits de la maison j'y ai installé des interfaces wifi ( MAC-557If) ce qui fonctionne tres bien sur l'appli Melcloud , j'ai vu qu'il existait des scripts sur Domoticz, peut être une compatibilité Eedomus ?, j'ai fouillé la toile mais mise a part la solution télécommande IR , je n'ai rien trouvé concernant la possibilité de commandé la pac via des commandes HTTP , quelqu'un a t'il une solution ou une idée
Auteur:  la mouche [ 02 Avr 2017 11:45 ]
Sujet du message:  Re: PAC Mitsibishi

personne n'as de solution ?? :cry: :(
Auteur:  eedomusbox [ 03 Avr 2017 08:18 ]
Sujet du message:  Re: PAC Mitsibishi

Salut, il doit être possible d'adapter le script en php. Il y a un peu de boulot
Auteur:  la mouche [ 03 Avr 2017 09:48 ]
Sujet du message:  Re: PAC Mitsibishi

Merci beaucoup eedomusbox , il y a donc un espoir , en ce servant de la base de celui pour domoticz se serait possible ? :?
Auteur:  eedomusbox [ 03 Avr 2017 11:45 ]
Sujet du message:  Re: PAC Mitsibishi

Exact
Auteur:  la mouche [ 04 Avr 2017 08:38 ]
Sujet du message:  Re: PAC Mitsibishi

faut que je me mette au script alors :lol: , merci
Auteur:  Floman321 [ 05 Avr 2017 10:45 ]
Sujet du message:  Re: PAC Mitsibishi

Bonjour,

je te conseille de partir de cette exemple :
https://github.com/floman321/melcloud/b ... .class.php
Auteur:  la mouche [ 18 Avr 2017 09:29 ]
Sujet du message:  Re: PAC Mitsibishi

Un grand merci Floman321 , je comprend pas tout mais avec de la patience on peux tout faire , ou presque ... :lol:
je vais essayer comprendre tout ca , merci encore . ;)
Auteur:  Floman321 [ 19 Avr 2017 10:00 ]
Sujet du message:  Re: PAC Mitsibishi

Je peux t'aider si tu veux,

qu'est que tu veux faire en premier ?

Regler la consigne ?
Auteur:  la mouche [ 22 Avr 2017 10:01 ]
Sujet du message:  Re: PAC Mitsibishi

Merci Floman321 , c'est presque inespéré , super cool , pour un début j'aimerai avoir un état de mes différents Splits ( on/off , température , chauffage ou clim ) et en ce qui concerne les actions possibles c'est un peut pareil ( on/off , changement de temp , passage de chauf a clim ) ce serait un super début .
Je te remercie énormément pour ce coup de main . :thumbup:
Auteur:  la mouche [ 08 Mai 2017 09:41 ]
Sujet du message:  Re: PAC Mitsibishi

bon , après plusieurs essais j'abandonne , je n'y comprend vraiment rien :oops:
si un jour quelqu'un y arrive n'hésitez pas a m'en faire part , je reste évidement preneur ;)
Auteur:  dardevil91 [ 08 Mai 2017 10:01 ]
Sujet du message:  Re: PAC Mitsibishi

moi je regarde du côté des produits MCO Home.
les produits référence MH8-FC4 et MH8-FC.
Auteur:  Floman321 [ 09 Mai 2017 07:55 ]
Sujet du message:  Re: PAC Mitsibishi

Bonjour,

je veux bien vous aider, mais je il me faudrai un accès a une box pour pouvoir coder.

Le principe est celui ci :

pour modifier on/off

https://github.com/floman321/melcloud/b ... .class.php

1- On récupere l'état (le fichier xml) de la clim avec un URL (adresse internet avec le token)
Ligne 40
new com_http('https://app.melcloud.com/Mitsubishi.Wifi.Client/Device/Get?id='.$devideid.'&buildingID='.$buildid);


2- On modifie ce fichier pour mettre l'etat de la clim a 1 (ON) et demande de mofication a 1 pour dire qu'il faut modifier l'etat de la clim
Ligne 45-47


3- On renvoit le fichier à melcloud (le service Mitsubishi)
Ligne 50
curl_setopt($ch, CURLOPT_URL,"https://app.melcloud.com/Mitsubishi.Wifi.Client/Device/SetAta");
Auteur:  Floman321 [ 09 Mai 2017 08:49 ]
Sujet du message:  Re: PAC Mitsibishi

Totu d'abord avez vous recuperer votre token ?

Il faut faire une requete URL POST

https://app.melcloud.com/Mitsubishi.Wif ... lientLogin

paramètres : Email=votreemail@emaiL.fr&Password=monmotdepasse&Language=7&AppVersion=1.10.1.0&Persist=true&CaptchaChallenge=null&CaptchaChallenge=null"
Auteur:  g4fa [ 24 Août 2017 00:45 ]
Sujet du message:  Re: PAC Mitsibishi

]Bonsoir

J'ai commencé à développer un script pour l'eedomus afin de piloter les clim Mitsubishi via Melcloud

J'arrive bien à récupérer les info des climatiseurs. mais impossible de passer des ordres. A chaque fois j'ai l'erreur { Success: false, ErrorMessage: "Forbidden"}

Exemple je teste le lien suivant http://192.168.1.10/script/?exec=melclo ... choix=true

Impossible de comprendre . Si quelqu'un a une idée

Code : Tout sélectionner
<?php

// script créé par G4FA pour eedomus
// ce script permet de piloter depuis l'eedomus les clim MITSUBISHI via MELCLOUD


 

$api_url = 'https://app.melcloud.com/Mitsubishi.Wifi.Client/';
 
$token='';
$code = 'xxxx@xxxx.xxx';
$pwd='xxxxxx';
$BuildingID='9659';


$action=getArg('action');
$DeviceId=getArg('DevideId');
     

echo ('rrrrrrr');

$token=sdk_connect ($api_url,$code,$pwd);
 
 if ($action=='read') {
     
// permet d'avoir une mise en forme plus lisible dans un browser
sdk_header('text/xml');


// XML de sortie

 

$cached_xml = '<?xml version="1.0" encoding="utf8" ?>';
$cached_xml .= '<melcloud>';
$cached_xml .= '<cached>0</cached>';
$cached_xml .= sdk_melcloudversxml($api_url,$token);
$cached_xml .= '</melcloud>';

echo $cached_xml;
$cached_xml = str_replace('<cached>0</cached>', '<cached>1</cached>', $cached_xml);
if ($xml_content != '') // non vide
{
   saveVariable('cached_xml', $cached_xml);
   saveVariable('last_xml_success', time());
}
 };

 if ($action=='update') {
  sdk_melcloudupdate ($api_url,$token,$DeviceId,$BuildingID);
     
 };




function sdk_connect ($api_url,$code,$pwd){

    $postdata  = 'Email=' . $code . "&Password=" . $pwd . '&Language=7&AppVersion=1.10.1.0&Persist=true&CaptchaChallenge=null&CaptchaChallenge=null';
 

  $response = httpQuery($api_url.'Login/ClientLogin', 'POST', $postdata);
  $params = sdk_json_decode($response);
 

  if ($params['error'] != ''){
    die('Erreur lors authentification');
  }

    return $params['LoginData']['ContextKey'];
 };

 
function sdk_melcloudupdate ($api_url,$token,$DeviceId,$BuildingID){
  $choix=getArg('choix');
  $val_choix=getArg('val_choix'); 
   
  $response = httpQuery($api_url.'Device/Get?id=' . $DeviceId . '&BuildingID=' .$BuildingID, 'GET', $post = NULL, $oauth_token=null , array('X-MitsContextKey: '.$token ), $use_cookies = false);
   
 $device =sdk_json_decode(utf8_decode($response));
   
     
            $device[$choix] = $val_choix;
            $device['EffectiveFlags'] = 6;
            $device['HasPendingCommand'] = 'true';
   
   
   $newdevice=str_replace('"EffectiveFlags":0','"EffectiveFlags":6',utf8_decode($response));
     $newdevice1=str_replace('"HasPendingCommand":false','"HasPendingCommand":true',$newdevice);
              $newdevice2=str_replace('"OperationMode":3','"OperationMode":1',$newdevice1);
   
   
   
    $response2 = httpQuery($api_url.'Device/SetAta', 'POST',  $newdevice, $oauth_token=null , array('X-MitsContextKey: '.$token.', content-type: application/json' ), $use_cookies = false);
   
   
    echo(utf8_decode($response));
    echo($newdevice2);
     echo($response2);
    echo (array('X-MitsContextKey: '.$token.', content-type: application/json' ));
    };


function sdk_json_encode ($device){
  $ret='';
    foreach($device  as $cle=>$valeur) {
     if ($cle<>'WeatherObservations') {
   
         if ($ret==''){
            $ret.='{';
        }
         else {
            $ret.=',';
         };
         
         $ret.='"'.$cle.'":';
         
         if ($valeur==''){
             $ret.='null';
                  }
         else {
               if (is_numeric($valeur)==true ||  $valeur=='true' ||  $valeur=='false' ){
                    $ret.=$valeur;
                  }
             else {
         
                $ret.= '"'.$valeur.'"' ;
              }
              };};
             
       
             
        if ($cle=='WeatherObservations') {
                 $ret.=',"WeatherObservations":['; 
                for ($i = 0; $i < count($valeur); $i++) {
                    $ret.=sdk_json_encode ($valeur[$i]  );   
                };
       
               $ret.=']'; 
                 };
           
       
};
       

     $ret.='}';
    return $ret;
}
   
function sdk_melcloudversxml ($api_url,$token){
   
        $response = httpQuery($api_url.'User/ListDevices', 'GET', $post = NULL, $oauth_token=null , array('X-MitsContextKey: '.$token ), $use_cookies = false);
     

  $values = sdk_json_decode($response);

$ret='';
foreach ($values as $maison) {
               $ret.='<'.str_replace(' ','',$maison['Name']).'>';
                for ($i = 0; $i < count($maison['Structure']['Devices']); $i++) {
                   
                    $device = $maison['Structure']['Devices'][$i];
                        $ret.=sdk_melclouddeviceversxml($device);
                }
                // FLOORS
                for ($a = 0; $a < count($maison['Structure']['Floors']); $a++) {
                   $ret.='<'.str_replace(' ','',$maison['Structure']['Floors'][$a]['Name']).'>';
   
                    // AREAS IN FLOORS
                    for ($i = 0; $i < count($maison['Structure']['Floors'][$a]['Areas']); $i++) {
                        for ($d = 0; $d < count($maison['Structure']['Floors'][$a]['Areas'][$i]['Devices']); $d++) {
                            $device = $maison['Structure']['Floors'][$a]['Areas'][$i]['Devices'][$d];
                                           $ret.=sdk_melclouddeviceversxml($device);
                        }
                    }
                    // FLOORS
                    for ($i = 0; $i < count($maison['Structure']['Floors'][$a]['Devices']); $i++) {
                        $device = $maison['Structure']['Floors'][$a]['Devices'][$i];
                                        $ret.=sdk_melclouddeviceversxml($device);
                    }
                     $ret.='</'.str_replace(' ','',$maison['Structure']['Floors'][$a]['Name']).'>';
                }
                // AREAS
                for ($a = 0; $a < count($maison['Structure']['Areas']); $a++) {
                     for ($i = 0; $i < count($maison['Structure']['Areas'][$a]['Devices']); $i++) {
                        $device = $maison['Structure']['Areas'][$a]['Devices'][$i];
                                          $ret.=sdk_melclouddeviceversxml($device);
                    }
                }
 $ret.='</'.str_replace(' ','',$maison['Name']).'>';
            };
   
return $ret;
};
 
function sdk_melclouddeviceversxml ($device){
    $ret='';
       
 
      foreach($device['Device'] as $cle=>$valeur)
    {
      if ($cle  ==  'Power' || $cle  =='AutomaticFanSpeed' ||  $cle  == 'VaneVerticalSwing' || $cle  == 'VaneHorizontalSwing' ) { // ||'SetTemperature' || 'ActualFanSpeed' || 'FanSpeed' ||  'OperationMode' || 'VaneVerticalDirection' || || 'VaneHorizontalDirection' ||  )){
         
          $ret.='<'.$cle.'>'.($valeur==true ? 'true' : 'false').'</'.$cle.'>';
               
}
         
         
         
    } ;
   
   
        $ret='<' . str_replace(' ','',$device['DeviceName']).'>'.$ret.'</'.str_replace(' ','',$device['DeviceName']).'>';
   return $ret;
};
?>


Merci à lui
Auteur:  g4fa [ 24 Août 2017 20:34 ]
Sujet du message:  Re: PAC Mitsibishi

Bonsoir

Avec un peu de patience , j'y suis arrivé
Je peux piloter mes climatiseurs depuis la Box eedomus :D
J'ai créé un script à installer sous un raspberry ou PC/MAC . ( Je n'arrive pas à développer un script pouvant être déposé directement sous la Box eedomus Il manque quelques fonctions de base. Peut être que certains y arriveront !! )

Script et copies d'écran dispo ici https://github.com/g4fa/melcloud

Bonne soirée
Auteur:  Floman321 [ 24 Août 2017 20:38 ]
Sujet du message:  Re: PAC Mitsibishi

Bravo et merci pour le partage
Auteur:  yahyah [ 31 Août 2017 15:17 ]
Sujet du message:  Re: PAC Mitsibishi

Bonjour,

Est-il possible svp d'avoir quelques explications pour l'utilisation du script ? Il faut récupéré un "token" ? Comment ? De même pour le deviceid
J'ai aussi une PAC que je pilote depuis de MELCLoud et je souhaiterai l'utiliser à travers l'eedomus afin l'intégrer des macros. Merci d'avance
Auteur:  g4fa [ 03 Sep 2017 08:36 ]
Sujet du message:  Re: PAC Mitsibishi

Salut

Dans le script PHP, tu as 3 valeurs à renseigner ligne 13 à 15 : ton login melcloud, ton password melcloud et le building ID ( on verra plus tard comment le récupérer )

Sur ton Raspberry, tu installes Apache et PHP ( tuto ci https://www.raspberrypi.org/documentati ... /apache.md )

Tu déposes le script sous /var/www/html

Ensuite tu peux tester ton script sous l'eedomus https://secure.eedomus.com/xpath/. Dans la zone URL tu mets ca http://Ip de ton raspberry/melcloud_eedomus_pi.php?action=read

Dans le résultat tu dois retrouver des devises avec DeviceID et Building ID.

Tu modifies ton script avec le building ID trouvé et ensuite tu paramètres tes modules sous eedomus

Bonne journée
Auteur:  yahyah [ 03 Sep 2017 20:54 ]
Sujet du message:  Re: PAC Mitsibishi

Merci Fabien pour les explications.
Je ne sais pas ce que je ne fais pas bien mais lorsque je teste l'URL http://Ip de mon raspberry/melcloud_eedomus_pi.php?action=read j'ai juste 1 en retour !
J'ai vérifier mon login et le mdp dans le script, j'ai laissé le building ID. Une idée ?
Page 1 sur 3 Le fuseau horaire est UTC+1 heure