Sommaire
- INSTALLATION DE PYTHON PIP GIT & DES LIBRAIRIES BROADLINK
- CREATION DES FICHIERS D’APPRENTISSAGE ET D’ENVOI DES COMMANDES
- CREATION DU FICHIER D’APPRENTISSAGE
- CREATION DU FICHIER D’ENVOI
- ENREGISTRER UN CODE/UN ORDRE :
- ENVOYER UN CODE / UN ORDRE
- INTEGRATION DANS DOMOTICZ
- « Oui mais moi ma Tv c’est le même bouton pour ON et OFF ! »
- Partager :
- WordPress:
- Articles similaires
INSTALLATION DE PYTHON PIP GIT & DES LIBRAIRIES BROADLINK
Connectez vous en SSH grâce à PuTTY à votre serveur domotique Puis saisissez :sudo apt-get install python2.7 -yPython a besoin d’une base de donnée pour télécharger certains éléments complémentaires « les librairies » : pip Pour l’installer :
sudo apt-get install python-pip -y sudo apt-get install python-dev libgmp-devEnfin nous allons installer la librairie qui va nous permettre de « parler » avec notre Rm Pro / RM Mini, pour ce faire nous allons copier le Github (site de développeur) où se trouve la librairie : On installe GIT :
sudo apt-get install git -yPuis on copie la librairie :
git clone https://github.com/mjg59/python-broadlinkElle s’installe dans le répertoire où vous vous trouvez :

cd python-broadlinkIl faut installer la librairie en saisissant :
python setup.py install
CREATION DES FICHIERS D’APPRENTISSAGE ET D’ENVOI DES COMMANDES
Une fois la librairie installée, il faut créer deux fichiers :- un pour apprendre/copier le code de votre télécommande
- un pour envoyer le code appris précédemment
sudo nano locatrm.pyPuis y coller (un clique droit de votre souris va coller automatiquement le texte sélectionné ci dessous) :
#!/usr/bin/python #Script to locate Broadlink devices on local network by Graeme Brown Dec 23 2016 #These must be set up using the Broadlink app first! import broadlink import time print "************************************************" print "Using python library created by Matthew Garrett" print "https://github.com/mjg59/python-broadlink" print "************************************************" print "Scanning network for Broadlink devices...." mydevices = broadlink.discover(timeout=5) print "Found " + str(len(mydevices )) + " broadlink devices" time.sleep(1) print "..............." for index, item in enumerate(mydevices): mydevices[index].auth() ipadd = mydevices[index].host ipadd = str(ipadd) print "Device " + str(index + 1) +" Host address = " + ipadd[1:19] macadd = ''.join(format(x, '02x') for x in mydevices[index].mac[::-1]) macadd = str(macadd) mymacadd = macadd[:2] + " " + macadd[2:4] + " " + macadd[4:6] + " " + macadd[6:8] + " " + macadd[8:10] + " " + macadd[10:12] print "Device " + str(index + 1) +" MAC address = " + mymacadd print "..............."Ensuite on l’exécute et il va trouver tout seul notre Broadlink RM Pro/Mini :
python locatrm.py

CREATION DU FICHIER D’APPRENTISSAGE
Nous allons maintenant créer le fichier d’apprentissage :sudo nano learn.pyEt copier ceci dedans : (un clique droit de votre souris va coller automatiquement le texte sélectionné ci dessous) :
#!/usr/bin/python import broadlink import time import sys device = broadlink.rm(host=("ici votre adresse ip avec les points il faut conserver les guillemets",80), mac=bytearray.fromhex("ici votre adresse mac il faut conserver les guillemets")) print "Connecting to Broadlink device...." device.auth() time.sleep(1) print "Connected...." codeName = raw_input("Please Enter Code Name e.g. tvOff ") time.sleep(1) print "When Broadlink white led is lit press the button on your remote within 5 seconds" device.host device.enter_learning() time.sleep(5) ir_packet = device.check_data() #convert code to hex myhex = str(ir_packet).encode('hex'); if ir_packet == None: print "No button press read - quitting" sys.exit() else: # record learned hex code to file f = open(codeName +".txt",'w') f.write(myhex) f.close() print "Hex code written to file named " + codeName + ".txt"ATTENTION DE BIEN METTRE VOTRE ADRESSE IP ET MAC A LA LIGNE
device = broadlink.rm(host=("ici votre adresse ip avec les points il faut conserver les guillemets",80), mac=bytearray.fromhex("ici votre adresse mac il faut conserver les guillemets"))
CREATION DU FICHIER D’ENVOI
Maintenant le script pour émettre les ordres :sudo nano play.pyEt y coller ceci : (un clique droit de votre souris va coller automatiquement le texte sélectionné ci dessous) :
#!/usr/bin/python import broadlink import time import sys try: fileName = sys.argv[1] except IndexError: fileName = 'null' if fileName == 'null': print "Error - no file name parameter suffixed" sys.exit() else: device = broadlink.rm(host=("ici votre adresse ip il faut mettre les ; et conserver les guillemets",80), mac=bytearray.fromhex("ici votre adresse mac sans les : et conserver les guillemets")) print "Connecting to Broadlink device...." device.auth() time.sleep(1) print "Connected...." time.sleep(1) device.host file = open(fileName, 'r') myhex = file.read() device.send_data(myhex.decode('hex')) print "Code Sent...."ATTENTION DE BIEN METTRE VOTRE ADRESSE IP ET MAC A LA LIGNE
device = broadlink.rm(host=("ici votre adresse ip avec les points il faut conserver les guillemets",80), mac=bytearray.fromhex("ici votre adresse mac il faut conserver les guillemets"))Nous allons maintenant essayer nos scripts :
ENREGISTRER UN CODE/UN ORDRE :
Attraper votre télécommande Infra Rouge ou « Radio 433 Mhz » Puis taper (pas trop fort) :python learn.py


- Pour une télécommande Infra Rouge, pointez la vers la passerelle tout en étant assez prés
- Pour une télécommande Radio placez vous assez près de la passerelle pour éviter les interférences
ENVOYER UN CODE / UN ORDRE
Il vous faut saisir :python play.py tvOff.txttvOff.txt étant le nom du fichier correspondant à l’ordre que vous souhaitez envoyer.


sudo nano play.pyet commenter les lignes de print et time à partir de la ligne 19 en ajoutant des # devant ce qui donne :
#print "Connecting to Broadlink device...." device.auth() #time.sleep(1) #print "Connected...." #time.sleep(1) device.host file = open(fileName, 'r') myhex = file.read() device.send_data(myhex.decode('hex')) #print "Code Sent...."Cela a pour but de rendre le script Muet et va accélérer le temps de réaction de Domoticz.

INTEGRATION DANS DOMOTICZ
Une fois que cela fonctionne vous allez devoir copier les fichiers learn.py, play.py et tvOff.txt dans le répertoire scripts/python de Domoticzcp /home/pi/python-broadlink/learn.py /home/pi/domoticz/scripts/python/learn.py cp /home/pi/python-broadlink/play.py /home/pi/domoticz/scripts/python/play.py cp /home/pi/python-broadlink/tvOff.txt /home/pi/domoticz/scripts/python/tvOff.txt cp /home/pi/python-broadlink/tvOn.txt /home/pi/domoticz/scripts/python/tvOn.txt Puis il faut donner les droits à Domoticz d'utiliser les scripts sudo chmod 777 /home/pi/domoticz/scripts/python/learn.py sudo chmod 777 /home/pi/domoticz/scripts/python/play.pyPuis créer un Interrupteur Virtuel de type ON/OFF : Réglages->Materiels->Dummy->Interrupteur Ensuite nous allons l’éditer : Et placer cette ligne dans la case action ON :
script:///home/pi/domoticz/scripts/python/play.py /home/pi/domoticz/scripts/python/tvOn.txtet dans la case action OFF :
script:///home/pi/domoticz/scripts/python/play.py /home/pi/domoticz/scripts/python/tvOff.txt

script://Indique à Domoticz que si l’interrupteur passe à On il faut exécuter un script.
/home/pi/domoticz/scripts/python/play.pyIndique à Domoticz quel script il doit utiliser et son emplacement, souvenez vous play.py c’est celui qui lance/envoi les ordres et nous l’avons copié dans /home/pi/domoticz/scripts/python/
/home/pi/domoticz/scripts/python/tvOn.txtC’est l’emplacement du fichier .txt qui contient le code que la passerelle doit envoyer
« Oui mais moi ma Tv c’est le même bouton pour ON et OFF ! »
Pas de soucis, que des solutions, après avoir enregistré le bouton, suivre la même procédure, jusqu’à l’édition de l’interrupteur, mais il faut y mettre deux fois la même ligne dans action On et action Off En personnalisant l’icône, on a quelque chose de très sympa :