Aller au contenu

Recommended Posts

Oui sur le bouton je me suis mal exprimé.  Par contre y a t il un espèce de debug identique à ce qu'on trouve sur la Hc2.

 

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Oui, il y a un espèce de print to log si je me souviens bien. Après il faut regarder les logs

Envoyé avec mon pouce.

Partager ce message


Lien à poster
Partager sur d’autres sites

Seb, je crois que c'est mort.. deux jours sans résultat.

dis moi juste car maintenant que j'ai une tête comme une pastèque. Pour ta version il faut deux boutons ? ou un ?

 

J'ai essayer de repartir de zéro mais c'est pire, j'ai l'impression qu'il y a des erreurs dans le copié coller du script..

dernier message d'erreur ci dessous :

Erreur dans l'exécution du terminal, la valeur retournée est : 1. Détails : Could not open input file: /var/www/html/plugins/script/core/ressources/put2hc2V2.php

 

L'abandon est proche...

 

Partager ce message


Lien à poster
Partager sur d’autres sites

Je suis désolé Free, je n'ai pas de temps et pas de pc... Je suis a l'étranger, juste avec mon tel et j'ai bossé tout le weekend,et cette semaine sera idem...
Il me semble avoir écrit que c'est du Jeedom très avancé... Même si ce n'est pas si complexe en sois mais commencer par là, c'est hard si on ne sais pas où regarder.
Je te ferais bien un remote desktop mais là je suis pas en état.
Sorry

Envoyé avec mon pouce.

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut Sebcbien,

 

Je reviens sur ton post, depuis ma dernière question j'ai réussi à mettre en oeuvre ton sujet par contre aujourd'hui j'ai une question assez proche et surement bête mais je galère depuis des heures...en même temps j'ai laissé ma HC2 de côté depuis un moment.

En faite je ne n'arrive pas a trouver le code pour modifier les propriétés d'un capteur fibaro "oeil de chat".

Depuis ma HC2, dans un module virtuel en lua, je souhaite faire un callID..... et affecté un fake device avec une détection de présence soit la propriété value à "True" et "false".

Aurait tu cette solution ? 

 

Merci d'avance

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut, voici comment je fais.

J'utilises le plugin script comme ça j'ai une "passerelle" que je peux appeler depuis plein d'endroits. J'aurais pu le faire depuis un scénario directement je crois, plus simple mais moins universel.

 

<?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 = "xxxxxx%40gmail.com";
$password = "xxxxxxxxxxx";
$ipHc2 = "xxx.xxx.x.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;
?>

J'appelle ce script a partir d'un scénario qui est lancé à chaque changement de la luminosité et je lui passe l'id du fake device fibaro et la valeur.

Seul les deux premières entrées dans le "virtuel" script sont nécessaires (Script et HTTP) les autres sont des raccourcis et des tests.

Le premier héberge le script php, le second permet d'appeler le script avec des paramètres encodés manuellement ou envoyés par un scénario ou directement un device.

Un autre solution est de mettre le php directement dans le scénario via une boite script.

Et tu peux aussi appeler le script directement depuis le device qui push, sans passer par un scénario

Enjoy ! ;-)

2020-11-06_01-18-46.jpg

  • Upvote 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Ok je te remercie, je vais étudier cette méthode. A la base je pensais plutôt une commande direct de la HC2 en lua ou via du http mais cela pourra surement le faire.

Partager ce message


Lien à poster
Partager sur d’autres sites

Ah tu voulais aller chercher la valeur sur jeedom a partir de la hc2 ?

C'est mieux de la faire a partir de jeedom car seul jeedom sais quand la valeur change.

Dans l'autre sens il y aura du "polling" inutile

 

Envoyé de mon SM-N960F en utilisant Tapatalk

 

 

 

 

  • Like 1

Partager ce message


Lien à poster
Partager sur d’autres sites

×