IoT
openHAB 3.0 - mise à jour d'un item via des messages MQTT

openHAB 3.0 - mise à jour d'un item via des messages MQTT

L’objectif de ce tutoriel est de montrer comment mettre à jour l’état d’un item sous openHAB 3.0 lors de la réception de messages MQTT. Nous allons pour cela nous inspirer du tutoriel [OH3] Tasmota relay via MQTT (Sonoff Basic with optional DHT22) pour « lier » un Item au topic testswitch002 de notre broker MQTT. Il nous faut cependant l’adapter à nos besoins:

  • le broker MQTT est déjà configuré dans openHAB (cf. mon précédent tutoriel openHAB 3.0 - création d’un switch qui publie son état via des messages MQTT)
  • l’Item que nous allons créer n’aura pas à commander un device réel (ex: via envoi de messages MQTT); il ne s’agira que d’un Switch « virtuel » dans l’interface d’OH3
  • le nommage de nos topics et les contenus des messages sont très simplifiés par rapport à de vrais capteurs MQTT…

La configuration utilisée est la même que dans openHAB 3.0 - création d’un switch qui publie son état via des messages MQTT et, là aussi, les différentes étapes ont été entièrement réalisées via l’interface graphique d’openHAB3.


Création d’un Generic MQTT Thing

  • SettingsThingsBlue « + »MQTT BindingGeneric MQTT Thing
    • Label = Generic MQTT Thing 001
    • Parent Bridge = MQTT Broker (cf. tests précédents ici)
  • le Generic MQTT Thing apparaît dans la liste des Things et est ONLINE

Generic MQTT Thing 001 - 1
Generic MQTT Thing 001 - 1

Generic MQTT Thing 001 - 2
Generic MQTT Thing 001 - 2


Configuration d’openHAB3 pour lire les valeurs reçues sur le topic MQTT

  • création d’un Channel de type Switch: SettingsThingsGeneric MQTT Thing 001ChannelsAdd Channel
    • Id = mqttchanneltestswitch002
    • Label = MQTT Channel Test Switch 002, On/Off Switch
    • Channel type = On/Off Switch
    • MQTT State Topic = testswitch002
    • cliquer sur Create

MQTT Channel Test Switch 002 - 1
MQTT Channel Test Switch 002 - 1

MQTT Channel Test Switch 002 - 2
MQTT Channel Test Switch 002 - 2

MQTT Channel Test Switch 002 - 3
MQTT Channel Test Switch 002 - 3

  • création d’un Item lié à ce Channel: SettingsThingsGeneric MQTT Thing 001ChannelsAdd Points to Model
    • sélectionner le Channel précédemment créé → MQTT Channel Test Switch 002, On/Off Switch
    • cliquer sur Add to Model
    • le Point ainsi créé apparaît sur notre Channel

MQTT Channel Test Switch 002 Point - 1
MQTT Channel Test Switch 002 Point - 1

MQTT Channel Test Switch 002 Point - 2
MQTT Channel Test Switch 002 Point - 2

MQTT Channel Test Switch 002 Point - 3
MQTT Channel Test Switch 002 Point - 3

  • le Point que nous venons de créer apparaît dans la liste des Items; nous pouvons alors utiliser n’importe quel client MQTT pour envoyer les messages ON ou OFF sur le topic testswitch002 → la valeur de cet Item est mise à jour

MQTT Channel Test Switch 002 Item - 1
MQTT Channel Test Switch 002 Item - 1

MQTT Channel Test Switch 002 Item - 2
MQTT Channel Test Switch 002 Item - 2

Remarques


Conclusion

Après différents tests réalisés à partir d’informations glanées par ci par là sur Internet (parfois relatives à d’autres versions d’openHAB, utilisant parfois des configurations à base de fichiers textes), voici une méthode « simple » sous openHAB3 pour lier l’état d’un item au contenu de messages MQTT reçus sur un topic particulier. Si vous avez des remarques ou des suggestions, n’hésitez pas à me contacter sur manuel.munier@univ-pau.fr.