Sonoff 4ch pro : signal rf émis par rfxcom
Publié : 19 janv. 2019, 14:06
J'ai acheté un relais sonoff 4 ch pro pour piloter un système d'arrosage diy avec des électrovannes de machine à laver.
Le contrôle wifi de ce relais ne m'intéresse pas étant donné que le système sera au fond du jardin, hors de portée du signal wifi.
Je n'ai nulle part trouvé de moyen d'émettre directement le signal rf par mon rfxcom sans flasher le relais, et j'ai tenté de comprendre comment était composé ce signal.
Je vous donne un moyen qui marche chez moi, mais, étant débutant, je n'assure pas que cela marchera avec toutes les installations.
(install raspberry3 sous raspbian jessie pixel, rfxcom RFXTRX433E, domoticz)
Il s'agit tout d'abord d'installer rfxcmd.py sur votre raspberry par exemple en suivant ce tuto :
https://github.com/digiltd/rfxcmd-restored-wiki
Notez que rfxcmd.py ne fonctionne pas avec python3.
Le code à transmettre est un signal de type lightning4, sous-type PT2262.
Il est construit de cette façon :
09 13 00 01 -- -- -- 01 72 80 en hexadécimal
dans lequel :
09 correspond à la longueur du signal (-1) en octets
13 est le type lightning4
00 est le sous-type PT2262
01 est le sequence number
01 72 donne le pulse (qui doit être de 370usec)
80 est le signal level
Source rfxcom manuel (page 49) : http://www.rfxcom.com/WebRoot/StoreNL2/ ... _Guide.pdf
Ces paramètres ne peuvent pas être mofifiés pour contrôler un sonoff 4 ch pro.
Pour les 6 octets variables symbolisés par des - :
Les 5 premiers sont l'id de votre relais (à choisir en hexadécimal : chiffres de 0 à 9 et lettres de A à F)
Le 6e octet correspond au bouton de votre relais : 1 pour le bouton 1, 2 pour le bouton 2, 4 pour le bouton 3, et 8 pour le bouton 4.
Ainsi, pour appairer le relais 1 du sonoff, en choisissant l'id A123E,il faut lancer dans le shell :
sudo python2 /opt/rfxcmd/rfxcmd.py -d /dev/ttyUSB0 -s 09130001A123E1017280
(Ne pas oublier d'appuyer deux fois sur le bouton du relais, comme pour l'appairage avec télécommande)
La même commande permet après appairage d'activer ou éteindre le relais.
Quelques remarques sur cette commande shell :
/opt/rfxcmd/rfxcmd.py est le chemin standard où est installé rfxcmd, à modifier si vous l'installez ailleurs.
-d /dev/ttyUSB0 permet de préciser le port USB du rfxcom, à adapter à votre cas.
J'ignore si cela pourrait marcher avec d'autres relais sonoff, mais j'ai bon espoir de faire fonctionner des relais "Sonoff RF" de la même manière.
J'ai ensuite créé dans domoticz un interrupteur virtuel déclenchant un script pour contrôler chacun des relais.
Je me rend compte que cette méthode est "alambiquée" mais c'est la seule que j'ai trouvée : je répète que je suis novice, soyez indulgents
Peut être quelqu'un de plus calé que moi pourra s'en inspirer pour ajouter un protocole sonoff directement dans domoticz.
En espérant que cela servira à d'autres !
Kekus
Le contrôle wifi de ce relais ne m'intéresse pas étant donné que le système sera au fond du jardin, hors de portée du signal wifi.
Je n'ai nulle part trouvé de moyen d'émettre directement le signal rf par mon rfxcom sans flasher le relais, et j'ai tenté de comprendre comment était composé ce signal.
Je vous donne un moyen qui marche chez moi, mais, étant débutant, je n'assure pas que cela marchera avec toutes les installations.
(install raspberry3 sous raspbian jessie pixel, rfxcom RFXTRX433E, domoticz)
Il s'agit tout d'abord d'installer rfxcmd.py sur votre raspberry par exemple en suivant ce tuto :
https://github.com/digiltd/rfxcmd-restored-wiki
Notez que rfxcmd.py ne fonctionne pas avec python3.
Le code à transmettre est un signal de type lightning4, sous-type PT2262.
Il est construit de cette façon :
09 13 00 01 -- -- -- 01 72 80 en hexadécimal
dans lequel :
09 correspond à la longueur du signal (-1) en octets
13 est le type lightning4
00 est le sous-type PT2262
01 est le sequence number
01 72 donne le pulse (qui doit être de 370usec)
80 est le signal level
Source rfxcom manuel (page 49) : http://www.rfxcom.com/WebRoot/StoreNL2/ ... _Guide.pdf
Ces paramètres ne peuvent pas être mofifiés pour contrôler un sonoff 4 ch pro.
Pour les 6 octets variables symbolisés par des - :
Les 5 premiers sont l'id de votre relais (à choisir en hexadécimal : chiffres de 0 à 9 et lettres de A à F)
Le 6e octet correspond au bouton de votre relais : 1 pour le bouton 1, 2 pour le bouton 2, 4 pour le bouton 3, et 8 pour le bouton 4.
Ainsi, pour appairer le relais 1 du sonoff, en choisissant l'id A123E,il faut lancer dans le shell :
sudo python2 /opt/rfxcmd/rfxcmd.py -d /dev/ttyUSB0 -s 09130001A123E1017280
(Ne pas oublier d'appuyer deux fois sur le bouton du relais, comme pour l'appairage avec télécommande)
La même commande permet après appairage d'activer ou éteindre le relais.
Quelques remarques sur cette commande shell :
/opt/rfxcmd/rfxcmd.py est le chemin standard où est installé rfxcmd, à modifier si vous l'installez ailleurs.
-d /dev/ttyUSB0 permet de préciser le port USB du rfxcom, à adapter à votre cas.
J'ignore si cela pourrait marcher avec d'autres relais sonoff, mais j'ai bon espoir de faire fonctionner des relais "Sonoff RF" de la même manière.
J'ai ensuite créé dans domoticz un interrupteur virtuel déclenchant un script pour contrôler chacun des relais.
Je me rend compte que cette méthode est "alambiquée" mais c'est la seule que j'ai trouvée : je répète que je suis novice, soyez indulgents
Peut être quelqu'un de plus calé que moi pourra s'en inspirer pour ajouter un protocole sonoff directement dans domoticz.
En espérant que cela servira à d'autres !
Kekus