Modifications

Sauter à la navigation Sauter à la recherche
1 718 octets ajoutés ,  9 septembre 2017 à 10:58
aucun résumé de modification
Ligne 1 : Ligne 1 :  
{{UniPi-NAV}}
 
{{UniPi-NAV}}
  −
{{traduction}}
      
== Introduction ==
 
== Introduction ==
Ligne 8 : Ligne 6 :  
== Rest API ==  
 
== Rest API ==  
 
=== HTTP Get ===
 
=== HTTP Get ===
To get a state of a device HTTP GET request can be send to the evok
+
Il est possible d'obtenir l'état d'un périphérique en faisant un requête GET sur Evok.
 
   
 
   
 
  GET /rest/DEVICE/CIRCUIT
 
  GET /rest/DEVICE/CIRCUIT
   −
or
+
ou
    
  GET /rest/DEVICE/CIRCUIT/PROPERTY
 
  GET /rest/DEVICE/CIRCUIT/PROPERTY
   −
Where DEVICE can be substituted by any of these: 'relay', 'di' or 'input', 'ai' or 'analoginput, 'ao' or 'analogoutput', 'sensor', CIRCUIT is the number of circuit (in case of 1Wire sensor, it is its address) corresponding to the number in your configuration file and PROPERTY is mostly 'value'.
+
DEVICE peut être substitué par l'une des valeurs suivantes :
 +
* relay
 +
* di ''ou'' input
 +
* ai ''ou'' analoginput
 +
* ao ''ou'' analogoutput
 +
* sensor
 +
 
 +
CIRCUIT est le numéro du circuit
 +
* dans le cas du senseur 1Wire : il s'agit de son adresse 1-Wire.
 +
* correspondant au numéro de dans le fichier de configuration evok.conf.
 +
 
 +
PROPERTY est principalement une 'valeur'.
 +
 
 +
=== Exemples HTTP Get ===
 +
Voici quelques exemples simples utilisant {{fname|wget}} pour obtenir le statut de périphériques :
 +
 
 +
La commande suivante retourne le statut de tous les périphériques configurés dans evok.conf
 +
 
 +
wget -qO- http://l_adresse_ip_de_votre_Raspberry/rest/all
 +
 
 +
La commande suivante retourne le statut du relais avec le n° 1
 +
 
 +
wget -qO- http://l_adresse_ip_de_votre_Raspberry/rest/relay/1
 +
 
 +
La commande suivante retourne la valeur du relais 1, s'il est actif ou inactif (1/0)
 +
 
 +
wget -qO- http://l_adresse_ip_de_votre_Raspberry/rest/relay/1/value
 +
 
 +
La commande suivante retourne la valeur de la '''sortie''' analogique
 +
 
 +
wget -qO- http://l_adresse_ip_de_votre_Raspberry/rest/ao/1/value
   −
Simple example using wget to get status of devices:
+
La commande suivante retourne la valeur de '''l'entrée''' analogique
   −
* wget -qO- http://your.pi.ip.address/rest/all <br />returns status of all devices configured in evok.conf
+
wget -qO- http://l_adresse_ip_de_votre_Raspberry/rest/ai/1/value
* wget -qO- http://your.pi.ip.address/rest/relay/1 <br />returns status of relay with circuit nr. 1
+
 
* wget -qO- http://your.pi.ip.address/rest/relay/1/value <br />returns whether the relay 1 is on or of (1/0)
+
{{ambox|text=Etant donné qu'il s'agit de requête GET, vous pouvez saisir directement l'URL (ex: http://l_adresse_ip_de_votre_Raspberry/rest/all) directement dans la barre de navigation d'un navigateur internet.}}
* wget -qO- http://your.pi.ip.address/rest/ao/1/value <br />returns the value of analog output
+
{{ambox|text=L'utilitaire {{fname|wget}} peut facilement être remplacé par {{fname|curl}} .}}
* wget -qO- http://your.pi.ip.address/rest/ai/1/value <br />returns the value of analog input
      
=== HTTP Post ===
 
=== HTTP Post ===
To control a device, all requests must be sent by HTTP POST. Here is a small example of controlling a relay:
+
Pour contrôler un périphérique, toutes les requêtes doivent être par des requêtes HTTP POST. Voici quelques exemple de contrôle de relais :
 +
 
 +
Activer le relais 3 :
 +
 
 +
wget -qO- http://l_adresse_ip_de_votre_Raspberry/rest/relay/3 --post-data='value=1'
   −
* wget -qO- http://your.pi.ip.address/rest/relay/3 --post-data='value=1' <br />sets relay on
+
Désactiver le relais 3 :
* wget -qO- http://your.pi.ip.address/rest/relay/3 --post-data='value=0' <br />sets relay off
  −
* wget -qO- http://your.pi.ip.address/rest/ao/1 --post-data='value=5' <br />set AO to 5V
      +
wget -qO- http://l_adresse_ip_de_votre_Raspberry/rest/relay/3 --post-data='value=0'
 +
 +
Fixer la sortie analogique A0 à 5V :
 +
 +
wget -qO- http://l_adresse_ip_de_votre_Raspberry/rest/ao/1 --post-data='value=5'
 +
 +
{{ambox-stop|text=L'utilisation d'une requête POST n'autorise malheureusement pas la saisie de celle-ci dans la barre de navigation d'un navigateur.}}
    
== WebSocket ==
 
== WebSocket ==
Register your client at ws://your.unipi.ip.address/ws to receive status messages. Once it is connected, you can also send various commands to the UniPi All messages in websocket are sent in JSON string format, eg. {"dev":"relay", "circuit":"1", "value":"1"} to set Relay 1 On. Check the wsbase.js in www/js/ folder to see example of controlling the UniPi using websocket.
+
Il est possible d'enregistrer un client (un socket client) auprès de {{fname|ws://l_adresse_ip_de_votre_Raspberry/ws}} pour recevoir les messages de statut.
   −
=== Python using JsonRPC ===
+
Une fois le client connecté, vous pouvez envoyer divers commande sur l'UniPi. Tous les messages envoyés sur le websocket sont au format JSON. Par exemple, le message suivant permet d'activer le relais 1 {"dev":"relay", "circuit":"1", "value":"1"} .
You can also control the UniPi using Python library jsonrpclib. See the list of all available methods below.
+
 
 +
Consultez le contenu du fichier wsbase.js dans le répertoire www/js/ pour voir des exemples de contrôle de l'UniPi via websocket.
 +
 
 +
=== Python en utilisant JsonRPC ===
 +
Vous pouvez également contrôler UniPi en utilisant la bibliothèque Python {{fname|jsonrpclib}}. Voyez, ci-dessous, une liste de toutes les méthodes disponibles.
    
<syntaxhighlight lang="python">
 
<syntaxhighlight lang="python">
 
from jsonrpclib import Server
 
from jsonrpclib import Server
s=Server("http://your.pi.ip.address/rpc")
+
s=Server("http://l_adresse_ip_de_votre_Raspberry/rpc")
 
s.relay_set(1,1)
 
s.relay_set(1,1)
 
s.relay_get(1)
 
s.relay_get(1)
 
s.relay_set(1,0)
 
s.relay_set(1,0)
 
s.relay_get(0)
 
s.relay_get(0)
s.ai_get(1)
+
s.ai_get(1)</syntaxhighlight>
</syntaxhighlight>
     −
=== Python using WebSocket ===
+
=== Python en utilisant WebSocket ===
    
<syntaxhighlight lang="python">
 
<syntaxhighlight lang="python">
Ligne 56 : Ligne 95 :  
import json
 
import json
   −
url = "ws://your.unipi.ip.address/ws"
+
url = "ws://l_adresse_ip_de_votre_Raspberry/ws"
    
def on_message(ws, message):
 
def on_message(ws, message):
Ligne 69 : Ligne 108 :     
def on_close(ws):
 
def on_close(ws):
     print "Connection closed"
+
     print "Connection fermee"
   −
#receiving messages
+
# Reception des messages
 
ws = websocket.WebSocketApp(url, on_message = on_message, on_error = on_error, on_close = on_close)
 
ws = websocket.WebSocketApp(url, on_message = on_message, on_error = on_error, on_close = on_close)
 
ws.run_forever()
 
ws.run_forever()
   −
#sending messages
+
# Envoi des messages
 
ws = websocket.WebSocket()
 
ws = websocket.WebSocket()
 
ws.connect(url)
 
ws.connect(url)
Ligne 82 : Ligne 121 :  
</syntaxhighlight>
 
</syntaxhighlight>
   −
=== Perl using JsonRPC
+
=== Perl en utilisant JsonRPC ===
 
+
Voici un exemple simple permettant de contrôler UniPi via RPC en utilisant JSON::RPC::Client;
A simple example of controlling the UniPi via RPC use JSON::RPC::Client;
      
  <nowiki>use JSON::RPC::Client;
 
  <nowiki>use JSON::RPC::Client;
    
my $client = new JSON::RPC::Client;
 
my $client = new JSON::RPC::Client;
my $url    = 'http://your.pi.ip.address/rpc';
+
my $url    = 'http://l_adresse_ip_de_votre_Raspberry/rpc';
    
$client->prepare($url, ['relay_set']);
 
$client->prepare($url, ['relay_set']);
 
$client->relay_set(1,1);</nowiki>
 
$client->relay_set(1,1);</nowiki>
   −
There is also a [https://metacpan.org/pod/AnyEvent::WebSocket::Client websocket client library for Perl] to get more control.
+
Il y a également une [https://metacpan.org/pod/AnyEvent::WebSocket::Client bibliothèque websocket Perl client] pour obtenir plus de contrôle.
    
== Liste des périphériques disponibles ==
 
== Liste des périphériques disponibles ==
Ligne 107 : Ligne 145 :     
== Liste des méthodes disponibles ==
 
== Liste des méthodes disponibles ==
Les méthodes ci-dessous (et plus encore) peuvent être trouvé dans les fichiers source evok.py ou owclient.py.
+
Les méthodes ci-dessous (et plus encore) peuvent être trouvé dans les fichiers source {{fname|evok.py}} ou {{fname|owclient.py}} .
    
* Entrées digitales
 
* Entrées digitales
** {{fname|input_get(circuit)}} - get all information of input by circuit number
+
** {{fname|input_get(circuit)}} - obtenir toutes les informations sur les entrées du circuit mentionné (le numéro).
** {{fname|input_get_value(circuit)}} - get actual state f input by circuit number, returns 0=off/1=on
+
** {{fname|input_get_value(circuit)}} - Obtenir l'état de l'entrée su circuit mentionné (le numéro). Retourne 0=off/1=on
** {{fname|input_set(circuit)}} - sets the debounce timeout
+
** {{fname|input_set(circuit)}} - fixer le temps de déparasitage de l'entrée (debounce timeout)
 
* Relais
 
* Relais
** {{fname|relay_get(circuit)}} - get state of relay by circuit number
+
** {{fname|relay_get(circuit)}} - obtenir l'état du du relais mentionné (le numéro)
** {{fname|relay_set(circuit, value)}} - set relay by circuit number according value 0=off, 1=on
+
** {{fname|relay_set(circuit, value)}} - fixe l'état du relais mentionné (le numéro). La valeur {{fname|value}} peut prendre les valeurs suivantes 0=off, 1=on
** {{fname|relay_set_for_time(circuit, value, timeout)}} - set relay by circuit number according value 0=off, 1=on for time(seconds) timeout
+
** {{fname|relay_set_for_time(circuit, value, timeout)}} - active le relais mentionné à la valeur mentionnée (0=off, 1=on) pour le temps timeout (en secondes). ''Note: La description en anglais n'est pas très claire, il sera nécessaire d'expérimenter la fonction''.
 
* Entrée analogique
 
* Entrée analogique
** {{fname|ai_get(circuit)}} - get value of analog input by circuit number
+
** {{fname|ai_get(circuit)}} - retourne la valeur d'une entrée analogique (par numéro de circuit).
** {{fname|input_get
+
** {{fname|input_get}}
 
* Sortie analogique
 
* Sortie analogique
** {{fname|ao_set_value(circuit, value)}} - set the value(0-10) of Analog Output by circuit number
+
** {{fname|ao_set_value(circuit, value)}} - fixe la valeur (0-10) de la sortie analogique (par numéro de circuit)
 
* Bus 1-Wire
 
* Bus 1-Wire
** {{fname|owbus_scan(circuit)}} - force to scan 1Wire network for new devices
+
** {{fname|owbus_scan(circuit)}} - Force le scan du bus 1Wire pour le détection de nouveaux périphériques.
 
* Senseurs 1-Wire
 
* Senseurs 1-Wire
** {{fname|sensor_get(circuit)}} - returns all information in array [value, is_lost, timestamp_of_value, scan_interval] of sensor by given circuit or 1Wire address
+
** {{fname|sensor_get(circuit)}} - retourne toutes les information dans un tableau [value, is_lost, timestamp_of_value, scan_interval] du senseur pour un circuit donné ou une adresse 1Wire
** {{fname|sensor_get_value(circuit)}} - returns value of a circuit by given circuit or 1Wire address
+
** {{fname|sensor_get_value(circuit)}} - retourne la valeur pour un circuit donné ou une adresse 1Wire
    
{{UniPi-TRAILER}}
 
{{UniPi-TRAILER}}
29 917

modifications

Menu de navigation