PAC Mitsibishi

Capteurs et actionneurs HTTP

PAC Mitsibishi

Messagepar la mouche » 19 Mars 2017 18:54

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
la mouche
 
Messages : 18
Inscription : 11 Mars 2017

Re: PAC Mitsibishi

Messagepar la mouche » 02 Avr 2017 11:45

personne n'as de solution ?? :cry: :(
la mouche
 
Messages : 18
Inscription : 11 Mars 2017

Re: PAC Mitsibishi

Messagepar eedomusbox » 03 Avr 2017 08:18

Salut, il doit être possible d'adapter le script en php. Il y a un peu de boulot
eedomusbox
 
Messages : 887
Inscription : 12 Sep 2014
Localisation : 69

Re: PAC Mitsibishi

Messagepar la mouche » 03 Avr 2017 09:48

Merci beaucoup eedomusbox , il y a donc un espoir , en ce servant de la base de celui pour domoticz se serait possible ? :?
la mouche
 
Messages : 18
Inscription : 11 Mars 2017

Re: PAC Mitsibishi

Messagepar eedomusbox » 03 Avr 2017 11:45

Exact
eedomusbox
 
Messages : 887
Inscription : 12 Sep 2014
Localisation : 69

Re: PAC Mitsibishi

Messagepar la mouche » 04 Avr 2017 08:38

faut que je me mette au script alors :lol: , merci
la mouche
 
Messages : 18
Inscription : 11 Mars 2017

Re: PAC Mitsibishi

Messagepar Floman321 » 05 Avr 2017 10:45

Bonjour,

je te conseille de partir de cette exemple :
https://github.com/floman321/melcloud/b ... .class.php
Floman321
 
Messages : 174
Inscription : 30 Avr 2014

Re: PAC Mitsibishi

Messagepar la mouche » 18 Avr 2017 09:29

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 . ;)
la mouche
 
Messages : 18
Inscription : 11 Mars 2017

Re: PAC Mitsibishi

Messagepar Floman321 » 19 Avr 2017 10:00

Je peux t'aider si tu veux,

qu'est que tu veux faire en premier ?

Regler la consigne ?
Floman321
 
Messages : 174
Inscription : 30 Avr 2014

Re: PAC Mitsibishi

Messagepar la mouche » 22 Avr 2017 10:01

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:
la mouche
 
Messages : 18
Inscription : 11 Mars 2017

Re: PAC Mitsibishi

Messagepar la mouche » 08 Mai 2017 09:41

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 ;)
la mouche
 
Messages : 18
Inscription : 11 Mars 2017

Re: PAC Mitsibishi

Messagepar dardevil91 » 08 Mai 2017 10:01

moi je regarde du côté des produits MCO Home.
les produits référence MH8-FC4 et MH8-FC.
dardevil91
 
Messages : 54
Inscription : 07 Juil 2014

Re: PAC Mitsibishi

Messagepar Floman321 » 09 Mai 2017 07:55

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");
Floman321
 
Messages : 174
Inscription : 30 Avr 2014

Re: PAC Mitsibishi

Messagepar Floman321 » 09 Mai 2017 08:49

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"
Floman321
 
Messages : 174
Inscription : 30 Avr 2014

Re: PAC Mitsibishi

Messagepar g4fa » 24 Août 2017 00:45

]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
g4fa
 
Messages : 13
Inscription : 06 Mars 2016

Re: PAC Mitsibishi

Messagepar g4fa » 24 Août 2017 20:34

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
g4fa
 
Messages : 13
Inscription : 06 Mars 2016

Re: PAC Mitsibishi

Messagepar Floman321 » 24 Août 2017 20:38

Bravo et merci pour le partage
Floman321
 
Messages : 174
Inscription : 30 Avr 2014

Re: PAC Mitsibishi

Messagepar yahyah » 31 Août 2017 15:17

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
yahyah
 
Messages : 17
Inscription : 04 Sep 2015

Re: PAC Mitsibishi

Messagepar g4fa » 03 Sep 2017 08:36

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
g4fa
 
Messages : 13
Inscription : 06 Mars 2016

Re: PAC Mitsibishi

Messagepar yahyah » 03 Sep 2017 20:54

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 ?
yahyah
 
Messages : 17
Inscription : 04 Sep 2015

Suivant

Retour vers Requêtes HTTP

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 12 invité(s)