Archives par étiquette : domoticz

Domoticz : script Python pour envois MQTT simples

On le lit ici et là, Domoticz utilise une façon bien à lui pour publier du MQTT, avec ce Json qui n’est pas forcément toujours très utile ni très pratique. Personnellement, il est même plutôt hermétique j’avoue

Voici donc la raison d’exister de ce petit script Python, mqttpub.py, destiné à être appelé depuis un interrupteur Domoticz par exemple.

Le script pour commencer :



#
#
# Récuperation du topic et du message à envoyer en MQTT :
# python mqttpub.py domoticz/in 1234 par ex
#
sujet = sys.argv[1]
msg = sys.argv[2]
#
# Informations de connexion à votre broker MQTT : 
# adresse IP, login, mot de passe
broker = "192.168.1.200"
login = "login_a_moi"
pwd = "mon_password"
#
# on se connecte au broker et on publie le message sur le topic
#
client = mqtt.Client()
client.username_pw_set(username=login,password=pwd)
client.connect(broker, 1883, 60)
client.publish(sujet, msg, qos=0, retain=False)

Sauvegardez ce script dans /home/pi/domoticz/scripts/python et rendez le exécutable avec un chmod +x mqttpub.py

Sur un switch de Domoticz, vous allez alors ajouter dans On Action et Off Action la ligne :



script://python/mqttpub.py home/sonoff/commands/MQTTtoSRFB 4195665

Ceci est un exemple qui diffuse la trame radio 4195655 sur un Sonoff Bridge flashé avec OpenMQTTGateway : à vous de l’adapter à vos trames MQTT. 

Domoticz : relais KS0212

La petite carte 4 relais dont nous avons parlé dans le précédent billet s’interface fort bien avec Domoticz.

Il vous faudra par contre éditer /etc/init.d/domoticz.sh et ajouter :

# Configuration GPIO
/usr/bin/gpio export 4 out
/usr/bin/gpio export 22 out
/usr/bin/gpio export 6 out
/usr/bin/gpio export 26 out
/usr/bin gpio exports

puis redémarrer le Raspberry Pi.
Le premier relai sera sur le GPiO 4, le second 22, puis 6, et finalement 26.

Dans Setup, Hardware, créez un GPIO comme suit :

Vous allez alors pouvoir créer manuellement vos switches en y associant le GPIO voulu, 4, 6, 22, ou 26. Pensez à le tester en cas de doute :

Au final, tous vos GPIO seront présents sur le tableau de bord Domoticz :

ESPEasy : un firmware domotique sur ESP8266

Vous en aviez assez de chercher comment programmer votre ESP8266 avec Arduino ou en Python ? Les langages de programmation vous semblent parfois plutôt opaques ? Et si vous testiez le firmware ESPEasy sur votre petite bestiole 8266 ?

ESPEasy est un firmware qui va rendre votre ESP8266 totalement communiquant :

  • liaison vers un broker MQTT
  • liaison vers Domoticz
  • connexion simplifiée de dizaines de capteurs : température, pression, relais, mesure des gaz, luminosité, relais, interrupteurs, buzzer, etc.
  • connexion simple à votre réseau WiFi local

Pour débuter, le mieux est de se rendre sur le site des concepteurs, ESPEasy.

Coté matériel, nous avons utilisé indifféremment des NodesMCU, un ESP201, un Wemos D1 mini.

Ce dernier se trouve à des tarifs très bas en Asie et reçoit des shields, de petits modules externes qui s’enfichent les uns sur les autres et permettent de fournir les sondes nécessaires à votre usage :

Ici, nous avons en bas le Wemos D1 mini, au dessus une sonde de température/pression, et en dernier un relai. Ainsi équipés, nous pourrions imaginer de venir activer le relai si la température descend en dessous d’un certain seuil, toujours en diffusant l’information en MQTT ou directement sur la domotique de la maison, Domoticz.

D’autres shields sont disponibles :

  • bouton pression
  • écran OLED
  • écran LCD
  • détection de mouvements
  • contrôle de moteurs
  • platine pour poser 1 ou 2 shields supplémentaires