2017-05-31

Pour commander manuellement trois lampes du salon connectées à des commutateurs WiFi Sonoff par ITEAD, j'utilise une télécommande HR12A PalmPad avec l'interface CM19A de X10 branché au Raspberry Pi qui accueille le logiciel de domotique Domoticz. Dans ce billet, je montre comment installer le service Mochad, comment l'intégrer au logiciel de domotique en présentant deux façons de contrôler le commutateur WiFi qui utilise le protocole MQTT.

Ceci est une continuation du billet précédent où j'ai soutenu qu'il est le plus souvent nécessaire de fournir un moyen local pour allumer et éteindre les lampes connectées aux commutateurs WiFi Sonoff. Il y a une légère différence parce que précédemment, j'ai ajouté des interrupteurs qui contrôlent directement l'état du relais du de deux Sonoff. Ici, je décris une façon d'utiliser les Sonoff qui exige que le serveur Domoticz soit en cours d'exécution. Cela peut ne pas être acceptable dans certaines circonstances.

Table des matières

  1. Autre matériel
  2. Installation du service Mochad sur un Raspberry Pi
  3. Installation du matériel Mochad dans Domoticz
  4. Ajout d'un commutateur virtuel caché
  5. Trop compliqué pour rien ?

  1. Autre matériel
  2. Alors que je décris l'utilisation de l'interface CM19A ci-dessous, je suis plutôt sûr que l'interface CM15A ActiveHome Pro pourrait être utilisé à sa place pour recevoir la transmission sans fil de la télécommande. Je ne peux pas être positif parce que, comme je l'ai mentionné précédemment, la partie RF du CM15A que j'ai acheté chez X10 était défectueuse.

    En ce qui concerne la télécommande, un ou des dispositifs parmi la liste suivante devraient fonctionner.

    HR12A (or PHR03) PalmPad Remote Control (photo),
    KR19A (or PHR04) Keychain Remote Control,
    KR22A CreditCard Thin Remote Control,
    SS13A (or PHW04D) Slimline Switch Decorator White.

    La combinaison du service Mochad et du serveur Domoticz peut également être utilisée pour la détection de mouvement avec le capteur de mouvement sans fil ActiveEye MS16A (ou PMS03). Les détails sont donnés ailleurs.

    Cette installation a été effectuée sur un Raspberry Pi 3. Il n'y a aucune raison pour laquelle elle ne fonctionnerait pas sur un plus vieux modèle du Raspberry Pi. En fait, l'installation originale a été faite sur un Modèle B+ du Raspberry Pi sans aucun problème. Il se peut très bien que j'installe le CM19A sur un Raspberry Pi Modèle B lorsque je supprimerai tous les appareils X10 de mon réseau domotique.

  3. Installation du service Mochad sur un Raspberry Pi
  4. N'installez pas la "dernière" version de Mochad disponible chez Sourceforge car le logiciel fourni a des problèmes dans Raspian Jessie. Pour une raison quelconque, Sourceforge fourni actuellement la version 0.1.16 de Mochad même si la version 0.1.17 est disponible depuis déjà plusieurs mois (vérifié le 18 juin 2017). Ce qui suit montre comment installer cette version ultérieure. Cependant, vous devriez vérifier si une version encore plus récente a été créée : https://sourceforge.net/projects/mochad/files/ et ajuster le commandement wget en conséquence.

    pi@rpi2b:~ $ sudo apt-get install libusb-1.0-0-dev pi@rpi2b:~ $ mkdir mochad pi@rpi2b:~ $ cd mochad pi@rpi2b:~/mochad $ wget -O mochad.tgz https://sourceforge.net/projects/mochad/files/mochad-0.1.17.tar.gz/download pi@rpi2b:~/mochad $ tar xf mochad.tgz pi@rpi2b:~.mochad $ cd mochad* pi@rpi2b:~/mochad/mochad-0.1.17 $ ./configure pi@rpi2b:~/mochad/mochad-0.1.17 $ make pi@rpi2b:~/mochad/mochad-0.1.17 $sudo make install

    Vérifiez qu'initialement, le service Mochad ne fonctionne pas, mais qu'il devient actif lorsque l'interface CM19A est branchée dans le Raspberry Pi avec un câble USB.

    pi@rpi2b:~/mochad/mochad-0.1.17 $cd $home pi@rpi2b:~ $ sudo systemctl status mochad ● mochad.service - Start mochad service Loaded: loaded (/lib/systemd/system/mochad.service; disabled) Active: inactive (dead) Brancher le CM19A or CM15A attendre un peu... pi@rpi2b:~ $ sudo systemctl status mochad ● mochad.service - Start mochad service Loaded: loaded (/lib/systemd/system/mochad.service; disabled) Active: active (running) since Tue 2016-11-01 01:37:38 ADT; 10s ago Process: 1296 ExecStart=/usr/local/bin/mochad (code=exited, status=0/SUCCESS) Main PiD: 1301 (mochad) CGroup: /system.slice/mochad.service └─1301 /usr/local/bin/mochad May 31 16:17:41 domo mochad[2094]: Found CM19A May 31 16:17:41 domo mochad[2094]: In endpoint 0x83, Out endpoint 0x04 May 31 16:17:41 domo systemd[1]: Started Start mochad service.

    Testez maintenant que la passerelle peut recevoir les messages d'une télécommande comme le PalmPad HR12A de X10. La première étape dans cette vérification consiste à se connecter au service span class="tm">Mochad sur le port 1099 du Raspberry Pi avec Netcat> pour écouter les communications avec le CM19A. Ensuite, appuyez sur des boutons de la télécommande, le service doit signaler quels boutons ont été enfoncés:

    pi@domo:~ $ nc localhost 1099 05/31 16:19:02 Rx RF HouseUnit: F1 Func: On 05/31 16:19:06 Rx RF HouseUnit: F5 Func: Off 05/31 16:19:08 Rx RF House: F Func: Bright 05/31 16:19:10 Rx RF House: F Func: Dim

  5. Installation du matériel Mochad dans Domoticz
  6. Domoticz prend en charge le matériel Mochad. Cette installation ne se fait qu'une seule fois.

    1. Connectez-vous à la page Web de Domoticz à l'adresse http://192.168.0.22:8080.
    2. Cliquez sur l'onglet Setup.
    3. Cliquez sur Hardware dans le menu déroulant.
    4. Remplissez les champs pour définir le matériel.
      • Sélectionnez Mochad CM15Pro/CM19A bridge with LAN interface dans la liste déroulante du Type.
      • Donnez un nom évocateur au matériel, Mochad semblait être un choix évident.
      • Spécifiez l'adresse et le port utilisés par le service Mochad. Ici ces valeurs sont 192.168.0.22 et 1099, mais j'ai préféré l'adresse 127.0.0.1:1099. Si jamais une adresse Ethernet différente était affectée au Raspberry Pi, il ne sera pas nécessaire d'ajuster ces champs.
        Add Mochad bridge
    5. Cliquez sur le bouton Add.

    6. Le matériel ajouté devrait alors être visible dans le tableau en haut de la page.
      Add hardware

  7. Ajout d'un commutateur virtuel caché
  8. Si l'interface CM19A ou CM15A devait être un élément permanent d'un système de domotique, veuillez lire la section suivante Trop compliqué pour rien? avant de suivre les instructions ci-dessous.

    Les commutateurs virtuels dans la base de données Domoticz sont déjà associés aux commutateurs Sonoff (pour plus de détails, voir MQTT avec Domoticz). Rappelons que le premier de ces commutateurs virtuels s'appelait Test Switch. Nous allons maintenant ajouter un commutateur caché associé à un bouton de la télécommande X10 pour contrôler le dispositif virtuel (en fait, cela n'a pas d'importance si un Sonoff a été reprogrammé, installé et lié au dispositif virtuel, tout ce qui compte, c'est que ce dernier ait été ajouté à la base de données).

    Voici comment ajouter un nouveau dispositif virtuel associé à une paire de boutons marche/arrêt de la télécommande X10 dans Domoticz>

    1. Cliquez sur l'onglet Switches.
    2. Cliquez sur le bouton Learn Light/Switch en haut à droite de la page pour installer automatiquement un dispositif.
    3. Cliquez sur le bouton sur la télécommande associée à la lampe lorsque Domoticz affiche une invitation à appuyer sur la touche de la télécommande .... Soyez rapide, vous n'avez que quelques secondes pour appuyer sur ce bouton. Bien sûr, vous pouvez cliquer sur Learn Light/Switch à nouveau et réessayer aussi souvent que vous le souhaitez.
    4. Remplissez les champs lorsque Domoticz affiche une invite demandant un nom unique pour le dispositif et son type.
      Add Light/Switch Device
      J'ai choisi Test Switch Remote comme nom et On/Off comme type de commutateur.
    5. Cliquez sur le bouton Edit du nouveau dispositif virtuel nommé Test Switch Remote.
    6. Entrer "http://192.168.0.22:8080/json.htm?type=command¶m=udevice&idx=1&nvalue=1" dans le champs On Action. Notez comment la valeur idx=1 correspond à l'index du commutateur virtuel de test du commutateur virtuel Test Switch qui contrôle le commutateur Sonoff par MQTT.
    7. Entrer "http://192.168.0.22:8080/json.htm?type=command¶m=udevice&idx=1&nvalue=0" dans le champs Off Action. Comme ci-dessus, la valeur idx=1 correspond au commutateur virtuel Test Switch.
    8. Cliquez sur le bouton Save.
    9. Cliquez sur le bouton Back pour revenir à l'onglet Switches.

    J'ai essayé 'localhost' et '127.0.0.1' au lieu de l'adresse IP fixe 192.168.0.22 dans les champs On Action et Off Action, mais cela n'a pas fonctionné.

    S'il n'y a pas de télécommande à portée de main lors de l'étape 3 ci-dessus, alors connectez-vous au service Mochad avec netcat et préparez la commande qui correspond au bouton de la télécommande, mais attendez avant d'appuyer sur la touche Entrée jusqu'à ce que soit affiché l'invite à appuyer sur le bouton le bouton de la télécommande:

    pi@rpi2b:~ $ nc localhost 1099 rf f1 on Appuyez sur la touche Entréee à l'invite
    Ceci peut être fait de l'ordinateur de bureau
    michel@hp:~ $ nc 192.168.0.22 1099 rf f1 on Appuyez sur la touche Entréee à l'invite

    Testez que le matériel s'active et se désactive et que les icônes des dispositifs Test Switch Remote et Test Switch reflètent l'état du commutateur lorsque la télécommande est utilisée.

    Si tout fonctionne, placez le signe "$" devant le nom de Test Switch Remote qui cachera le dispositif dans l'onglet Switches. Pour le rendre visible, changez de nouveau le nom, en supprimant le "$", mais dans la liste des dispositifs.

  9. Trop compliqué pour rien ?
  10. Certains pourraient faire valoir que ce qui précède est trop compliqué. En effet, on peut faire plus simple en suivant les étapes énumérées ci-dessous.

    Je crois que tout fonctionnera : l'icône de l'ampoule suivra l'état de l'interrupteur physique alors qu'il est allumé et éteint avec son bouton-poussoir ou avec la télécommande. Et le commutateur physique s'allume et s'éteint en réponse au fait de cliquer sur l'icône de l'ampoule dans Domoticz.

    S'il s'agit d'une utilisation permanente des télécommandes X10 avec l'interface CM19A, je pense que cette dernière approche serait la voie à suivre. Mais, rappelez-vous, je me débarrasse de toutes les choses X10. Il sera simple de supprimer le commutateur virtuel caché lorsque le moment viendra sans perturber le reste du réseau domotique. Si j'utilisais l'approche plus simple, je perdrais les plannings, les notifications, etc. associés à l'interrupteur factice virtuel travaillant exclusivement avec MQTT.