Difference between revisions of "SmartCampus2014/Tutoriels"
Simon.Planes (talk | contribs) (Created page with "= Mosquitto = Mosquitto est une implémentation de MQTT, un protocole de M2M de type publish-subscribe. == Installation == * Documentation officielle : [http://mosquitto.org...") |
Simon.Planes (talk | contribs) |
||
Line 80: | Line 80: | ||
Ici, lorsque l'interrupteur de la lumière du garage est actionné, le subscriber Mosquitto reçoit 0 ou 1. |
Ici, lorsque l'interrupteur de la lumière du garage est actionné, le subscriber Mosquitto reçoit 0 ou 1. |
||
− | Pour plus d'informations, voir le [ |
+ | Pour plus d'informations, voir le wiki officiel [https://github.com/openhab/openhab/wiki/MQTT-Binding ici] ou [https://github.com/openhab/openhab/wiki/MQTT-Binding là]. |
Revision as of 18:44, 4 February 2014
Mosquitto
Mosquitto est une implémentation de MQTT, un protocole de M2M de type publish-subscribe.
Installation
- Documentation officielle : [1]
- Pour Debian/Ubuntu et dérivés: [2]
- Ensuite télécharger le client en ligne de commande:
sudo apt-get install mosquitto python-mosquitto sudo apt-get install mosquitto-clients
Exemple de communication
- Dans un premier terminal on lance le broker :
>mosquitto 1391181009: mosquitto version 1.2.3 (build date 2013-12-04 21:22:55+0000) starting 1391181009: Using default config. 1391181009: Opening ipv4 listen socket on port 1883. 1391181009: Opening ipv6 listen socket on port 1883.
Sur certaines distributions, mosquitto peut se trouver dans /usr/sbin/.
- Dans un second terminal on crée un topic "toto" sur lequel on publie des messages.
mosquitto_sub -d -t toto
- Dans un dernier terminal on publie sur le topic "toto".
mosquitto_pub -t toto -m "Hello world "
- Pour communiquer entre différents devices, il faut lancer le broker sur chacun d'eux, puis indiquer lors du subscribe l'adresse IP du publisher.
Par exemple :
mosquitto_sub -d -h 192.168.0.1 -t toto
Comment utiliser openHAB avec Mosquitto ?
Requis
Il faut en premier lieu ajouter le bundle MQTT bindings (disponible ici) dans le dossier "addons" du runtime openHAB.
Ne pas oublier de lancer le broker Mosquitto (commande mosquitto).
Ajouter l'URL du broker dans le fichier de configuration d'openHAB (e.g. openhab.cfg) :
mqtt:mosquitto.url=tcp://localhost:1883
Subscribe
Lier un item à un topic en indiquant l'alias du broker, le type des messages transmis, et l'action effectuée sur openHAB sur réception des messages :
{ mqtt="<[<broker>:<topic>:<type>:<transformation>]" }
où <type> est soit "command" soit "state" (pour l'update), et où <transformation> est "default".
Par exemple :
Number Temperature_GF_Corridor "Temperature [%.1f °C]" <temperature> (Temperature, GF_Corridor) { mqtt="[mosquitto:temperature:state:default]" }
On peut alors publier avec "mosquitto_pub" sur le topic défini (e.g. "temperature") est voir le changement dans l'interface openHAB.
Publish
Le principe est relativement semblable. On lance "mosquitto_sub" sur le topic voulu (e.g. "light"). Lier un item à un topic en indiquant l'alias du broker, le type des messages transmis, le déclencheur de l'envoi de message, et la transformation :
{ mqtt=">[<broker>:<topic>:<type>:<trigger>:<transformation>]" }
Par exemple :
Switch Light_Outdoor_Garage "Garage" (Outdoor, Lights) { mqtt=">[mosquitto:light:command:ON:1],>[mosquitto:light:command:OFF:0]" }
Ici, lorsque l'interrupteur de la lumière du garage est actionné, le subscriber Mosquitto reçoit 0 ou 1.