Aller au contenu
sebcbien

YAJTOH (Yet Another Jeedom To HC2)

Recommended Posts

Bonjour,

Pour ne pas polluer le topic de @ADN182 et comme les solutions divergent, voici le post avec une solution pour pousser les valeurs de Jeedom vers un HC2 en utilisant l' API PUT

Les deux soluitions font la même chose

La solution de ADN182 effectue la plupart du traitement sur la HC2 alors que ici c'est via ce script sur Jeedom.

La solution de ADN182 convertit les noms des pièces/devices automatiquement en ID, on peut donc utiliser la même url de push dans tous les modules Z-Wave

Ce script ne le fait pas (encore) la recherche automatique d'id sera peut être ajouté par la suite, éventuellement par ADN182 :rolleyes:

La solution de ADN182 ne peut être utilisé que avec la commande push et non dans des scénarios ou ailleurs.

 

Ce script peut être utilisé pour modifier des valeurs de fake/dead devices sur une HC2
   exemple de format de l'url http:
   arguments:
   id: id du device Fibaro
   value: valeur numérique
   value_bin: valeur binaire, 0 et 1 seront transformés en false et true
   properties: si non sspécifié, le script utilisera value.
 exemple:
 appel via script "message"  :
 http://127.0.0.1/plugins/script/core/ressources/put2hc2V2.php?id=#title#&value=#message#
 appels via url:
 http://127.0.0.1/plugins/script/core/ressources/put2hc2V2.php?value_bin=0&id=1245
 appel via push url d'un device:
 http://127.0.0.1/plugins/script/core/ressources/put2hc2V2.php?value_bin=#value#&id=1245
 http://127.0.0.1/plugins/script/core/ressources/put2hc2V2.php?value=150&id=1245&properties=power

 

Installation:

Installer un script php dans jeedom via le plugin script:

2016-12-22_00-16-41.png

 

Affichage sur le dashboard, pratique pour tester:

2016-12-22_00-21-00.png

 

Utilisation dans un scénario (ou ailleurs, plugins, alarme, modes etc...) dans Jeedom:

2016-12-22_00-22-59.png

 

Dans la zone push d'un device:

2016-12-22_00-33-38.png

 

Contenu du script put2hc2.php:

Version2:

<?php
// ce script peut être utilisé pour modifier des valeurs de fake/dead devices sur une HC2
  // exemple de format de l'url http: 
  // arguments:
  // id: id du device Fibaro
  // value: valeur numérique
  // value_bin: valeur binaire, 0 et 1 seront transformés en false et true
  // properties: si non sspécifié, le script utilisera value.
// exemple:
// appel via script "message"  
// http://127.0.0.1/plugins/script/core/ressources/put2hc2.php?id=#title#&value=#message#
// appels via url
// http://127.0.0.1/plugins/script/core/ressources/put2hc2.php?value_bin=0&id=1245
// appel via push url d'un device
// http://127.0.0.1/plugins/script/core/ressources/put2hc2.php?value_bin=#value#&id=1245
// http://127.0.0.1/plugins/script/core/ressources/put2hc2.php?value=150&id=1245&properties=power
// V2.0 22/12/2016
  
$userName = "XXXXXXXXX";
$password = "XXXXXXXXXXXXXXXXXXX";
$ipHc2 = "192.168.XXX.XXX";
$tcpPort = "80";
$default_properties="value"; // si pas de properties spécifiée utiliser celle-ci (convient à quasiment tout les cas)

//si value vide, tester value_bin et transformer
if (isset($_GET['value'])) {
		$value=$_GET['value'];
	}else{
		$value_bin=$_GET['value_bin'];
		// transformer 0 et 1 en true/false
		if ($value_bin=="1") {
			$value="true";    
		}
		if ($value_bin=="0") {
			$value="false";
		}
}
// récupérer l'id
$id=$_GET['id'];

//si properties vide, mettre properties=value
if (isset($_GET['properties'])) {
    $properties=$_GET['properties'];    
}else{  
    $properties=$default_properties;
}

//pour debug
//if !isset($id) then $id="2153" end;
//$properties=value;
//$value= true;

$request = "/api/devices/".$id;
$data_string = '{"properties":{"'.$properties.'": '.$value.'}}';
$url = 'http://'.$userName.':'.$password.'@'.$ipHc2.':'.$tcpPort .$request;
 
$ch = curl_init($url);

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string); 
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:application/json'));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$result = curl_exec($ch);
curl_close($ch);
// retours possibles pour debug
//echo $result;
//echo $data_string;
//echo $properties.$value;
?>

 

Plus de détails et d'explications déjà données sur le fil de ADN182:

https://www.domotique-fibaro.fr/topic/9659-jeedom-to-hc2/?do=findComment&comment=148369

https://www.domotique-fibaro.fr/topic/9659-jeedom-to-hc2/?do=findComment&comment=148353

améliorations futures:

https://www.domotique-fibaro.fr/topic/9659-jeedom-to-hc2/?do=findComment&comment=148355

 

  • Upvote 3

Partager ce message


Lien à poster
Partager sur d’autres sites

Super, je l'avais rate celui la !!

Merci @sebcbien. TOP du top

 

Du tonnerre pour le RFX dont j'ai besoin..mais pas encore mis lol

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut Sebcbien,

 

pourrais-tu stp me donner un équivalent pour appuyer sur le bouton d'un vd sur la hc2 ?

Il y aurait donc l'id du module et le numéro du bouton.

Je souhaite le faire en passant par un scénario.

 

Merci d'avance. :13:

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut @trainkill666

 

Dans le sens  Jeedom --> HC2 pour appuyer sur un bouton tu peux le faire en utilisant l'api http de la HC2 en passant par le plugin script de jeedom, et après dans le scénario tu dois pouvoir passer par le plugin script non ? 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Je viens de tester ça fonctionne ;-) 

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci pepite

 

mais euh, j'ai compris la démarche en passant par un script php et l'api hc2,

tout est bien expliqué dans ce tuto, il me manque juste ce script modifié pour ne pas agir sur un fake device mais plutôt sur le bouton du vb.

Le 22/12/2016 à 00:35, sebcbien a dit :

put2hc2.php

Le reste étant identique je suppose pour le scénario.

Partager ce message


Lien à poster
Partager sur d’autres sites

De mémoire je ne sais pas te répondre, mais je peux essayer de trouver un peu de temps d'ici ce weekend.



Sent from my SM-N910F using Tapatalk

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour à tous,

 

Un grand merci @sebcbien, @ADN182 et le reste de la communauté pour votre travail sur les Fake Device. J'allais prendre la décision de revendre ma HC2 et migré sur Jeedom pour la compatibilité avec les autres protocoles et je suis tombé sur votre topic qui ma fait changer d'avis.

J'ai passé deux nuits blanches a essayé de comprendre pourquoi ça ne fonctionnai pas chez moi et j'ai fini par trouver. J’utilisai pas mon compte admin HC2, mais un compte utilisateur normal à cause du "@" de l'adresse mail et après relecture du tuto de @ADN182 je me suis aperçu qu'il donnait la solution du "%40 ".

 

@+Guiro

  • Like 2

Partager ce message


Lien à poster
Partager sur d’autres sites

Bonjour.

 

Désolé de vous déranger, je tente d'incoporer une prise meross présente sur jeedom sur une HC2. 

J'utilise sur hc2 un dead device qui est une prise fibaro FGWP102 mais je n'arrive pas envoyer la valeur power depuis jeedom vers hc2. 

Mais je n'ai pas de retour sur la hc2, la valeur reste à 0, voici la commande que j'envoie: 

"http://127.0.0.1/plugins/script/data/put2HC2.php?value=15& id=98&properties=power"

j'arrive à modifier via votre script les valeurs binaires.

 

Pourriez vous m'aider?

 

Rémi

Partager ce message


Lien à poster
Partager sur d’autres sites

×