Comment envoyer et recevoir des messages domotique avec son RFXtrx433 simplement ? à l’aide d’Eventghost !
Eventghost
Eventghost est une sorte d’ordonnanceur libre. Il permet de créer des scenarios précis en fonction de déclencheur spécifique dont le système peut avoir connaissance.
Prérequis
- Une machine Windows
- EventGhost
Disponible sur le site du projet (Prendre la Latest Release) - Le plugin RFXtrx pour Eventghost
Régulièrement mis à jour sur le forum Eventghost
Installation du plugin
- Dézippez le fichier téléchargé sur le forum eventghost
- Vous obtenez un repertoire RFXtrx
- Copiez-Collez ce dossier RFXtrx dans le répertoire des plugins de Eventghost
Cela dépend de l’endroit où vous avez installé EventGhost
Sur un Windows7 x64, cela va se trouver par défaut ici : C:\Program Files (x86)\EventGhost\plugins - Fermez puis rouvrez Eventghost
Interfacer EventGhost avec le RFXtrx433
Ajoutez le plugin à Eventghost
Le sélectionner dans la liste « External Equipment »
Double cliquez ensuite sur le plugin fraîchement ajouté. Vous pouvez choisir quels protocoles domotiques vous souhaitez prendre en charge
Notez la sélection du « Allow duplicated events » : si ce n’est pas coché, EG ne prendra en compte qu’une seule fois un évènement. Pour une sonde de température, il ne prendra que la première valeur, les suivantes seront omises.
Le plugin est installé ! Vous devriez voir apparaître dans la log des entrées ressemblant à cela :
Dans mon cas, il s’agit de sonde de température Oregon. Une placée dehors d’identifiant 63745, une autre à l’intérieur d’identifiant 41729.
Programmer des scenarios
Prenons l’exemple des sondes de températures. On veut enregistrer dans une base MySQL chaque relevé de température, de chaque sonde.
Pour cela, j’ai écrit un script PHP hébergé sur un serveur qui prend en paramètres GET l’identifiant et la température de la sonde. Nous allons demandé à EventGhost d’appeler ce script à chaque nouvelle température.
- On crée un répertoire « ‘Sonde de température »
- On crée une Macro « Température extérieure »
Dans EventGhost, une macro est un bloc contenant des déclencheurs et des actions
Si au moins un déclencheur est activé, les actions de la macro sont exécutées, dans l’ordre - On fait un glissé déplacé dans cette macro, d’un Evénement qui s’est déjà produit (et qui est donc visible dans la log sur la partie gauche)
- Ajoutez ensuite une Action
Vous pouvez choisir d’envoyer des messages particuliers via le RFXtrx433 par ici, mais nous souhaitons appeler une page web - On choisit alors l’action EventGhost > Python Script
- Voici le script Python utilisé :
le principe est le suivant :- on parse l’évènement en tableau séparé par des espaces.
- Les données seront toujours dans les mêmes cases du tableau.
- On met en variables ces valeurs. (Notez que ce sont des variables globales, donc pour éviter de récupérer les valeurs d’un autre évènement, j’ai suffixé chaque variable par un identifiant unique)
- On appelle l’executable wget avec l’url construite
entete_41729 = eg.event.string entete_41729 = entete_41729.split(' ')data_41729 = eg.event.payload data_41729 = data_41729.split(' ')id_41729=entete_41729[5] #temperature valeur1_41729=data_41729[2] #hygrometrie valeur2_41729=data_41729[6] signal_41729=data_41729[11] batterie_41729=data_41729[13]appel_ws_41729='http://192.168.0.10/dhome/webservice.php?' appel_ws_41729+='id='+id_41729+'&' appel_ws_41729+='signal='+signal_41729+'&' appel_ws_41729+='batterie='+batterie_41729+'&' appel_ws_41729+='valeur1='+valeur1_41729+'&' appel_ws_41729+='valeur2='+valeur2_41729 eg.plugins.System.Execute('C:\\Program Files (x86)\\GnuWin32\\bin\\wget.exe', appel_ws_41729, 3, False, 2, u'', False)
Voici un exemple d’appels multiples. Une télécommande appelle le même scripts, mais avec des paramètres différents :