Welcome to Domotique-fibaro

 

Inscrivez-vous maintenant pour accéder à toutes nos fonctionnalités. Une fois inscrit et connecté, vous serez en mesure de contribuer à ce site en soumettant votre propre contenu ou en répondant au contenu existant. Vous serez en mesure de personnaliser votre profil, de recevoir des points de réputation comme une récompense pour la soumission de contenu, tout en communiquant avec d'autres membres via votre boîte de réception privée, et bien plus encore! Ce message sera supprimé une fois que vous vous êtes connecté.

 

Register now to gain access to all of our features. Once registered and logged in, you will be able to contribute to this site by submitting your own content or replying to existing content. You'll be able to customize your profile, receive reputation points as a reward for submitting content, while also communicating with other members via your own private inbox, plus much more! This message will be removed once you have signed in.

sebcbien

YAJTOH (Yet Another Jeedom To HC2)

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

 

2

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

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:

0

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 ? 

 

0

Partager ce message


Lien à poster
Partager sur d’autres sites

Je viens de tester ça fonctionne ;-) 

 

 

0

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.

0

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

0

Partager ce message


Lien à poster
Partager sur d’autres sites

Merci. :74:

0

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !


Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.


Connectez-vous maintenant