Bonjour à tous, c’est akenad ,
Aujourd’hui je vais vous présenter un retour d’expérience sur la mise en oeuvre du plugin-rfxcom « NG » (New Generation). C’est une mise à jour « majeure » du plugin-rfxcom existant.
Pour réaliser une migration en douceur, je n’ai pas touché à mon existant et j’ai installé le plugin NG sur un autre Jeedom (mais en reprenant le même boitier RFXtrx433E qui était associé au 1er Jeedom, donc avec appairages RTS mémorisés). J’ai pu ainsi basculer de l’un à l’autre progressivement par ajout d’équipement manuellement, sans utiliser l’inclusion, en reprenant les mêmes ID.
J’ai par exemple basculé :
- un Store banne de terrasse Somfy RTS (avec télécommande Somfy RTS Telis 1 canal) sans avoir à refaire un appairage.
- des prises Chacon
- des sondes Oregon
Références :
- Communication Jeedom 25/11/2020 : Mise à jour majeure du plugin RFXcom – Jeedom – Le Blog
- Ce qui change : https://doc.jeedom.com/fr_FR/plugins/automation%20protocol/rfxcom/changelog
- Guide RFXtrx : http://www.rfxcom.com/WebRoot/StoreNL2/Shops/78165469/MediaGallery/Downloads/RFXtrx_User_Guide_-_FR.pdf
- Guide pour mettre à jour le firmware : Découvrez comment mettre à jour votre interface RFXcom
Depuis le 26/11/2020, le plugin-rfxcom a fait l’objet d’une mise à jour majeure par Jeedom SAS.
C’est un refonte avec mise en conformité par rapport à la documentation officielle RFXcom.
Le démon qui était en python2 a été réécrit en python3.
Certains capteurs nécessitent une ré-inclusion.
/!\ ATTENTION : ne pas activer tous les protocoles en même temps, certains sont incompatibles entre eux. Activer uniquement les protocoles nécessaires à vos équipements.
Jeedom SAS, pour un bon fonctionnement du plugin, indique de mettre le boitier RFXtrx433 en dernière version de firmware.
Il y a 3 modèles de RFXtrx433 (RFXtrx433, RFXtrx433E, RFXtrx433XL) et plusieurs « dernière version de firmware ».
J’ai acheté celui-ci en octobre 2017 (il avait une firmware 1021 EXT) :
Les firmwares au 26/11/2020 sont les suivants (extrait de http://www.rfxcom.com) :
Pour le RFXtrx433E, RFXCOM recommande le Firmware « Pro1 », mais Ext, Ext2 et Pro2 fonctionne aussi. Tout dépend des équipements que l’on souhaite faire fonctionner.
Par exemple, RFXtrx433E_Pro1_firmware.zip contient les firmware 1026 a 1029, 1031 a 1033, 1035 a 1043 et RFXtrx433E_Ext_firmware.zip contient les firmwares 1020 a 1025
. En cas de problème il est possible de revenir en arrière. Pour vérifier la compatibilité d’un équipement en fonction de la version du firmware :
- firmware_history-Pro1-04032020.txt (4,7 Ko)
- firmware_history-Ext-06042018.txt (11,8 Ko)
Pour retrouver la version de son RFXtrx433 :
(si le firmware est trop ancien, je dirais environ plus de 5 ans, cette procédure ne fonctionnera pas. Vérifié à partir d’un firmware 1020)
Exemple d’un RFXtrx433E :
Avec le plugin-rfxcom Stable v2020-11-26 :
Dans « Configuration » du plugin :
- mettre « Niveau log » à Debug
- Sauvegarder
- ReDémarrer le Démon
Au redémarrage du démon,
le plugin transmet un message de commande de statut à l’interface série du RFXtrx : 0d00000102000000000000000000
et reçoit un message de réponse de statut.
Le plugin décode le message de statut, extrait de la log Rfxcom :
[DEBUG] : Firmware version = 0x15 [DEBUG] : RFXtrx433 operating at 433.92MHz [DEBUG] : Hardware major version = 0x01 [DEBUG] : Hardware minor version = 0x03 [DEBUG] : Output power = 0x1C [DEBUG] : Firmware Ext [DEBUG] : Noise level (only used in special firmware) = 0x52
Interprétation :
0x15 = 21 en décimal
mettre 10 à gauche => 1021
Ext => E
=> RFXtrx433E (v1.3), firmware 1021 Ext
Nota : dans une version antérieure du plugin (avant sa mise à jour majeure), il y a moins d’information (et la partie droite du firmware est directement en décimal) :
[DEBUG] : Transceiver type = 433.92MHz|
[DEBUG] : Firmware version = 21
Après mise à jour du firmware (de 1021 EXT à 1043 Pro1):
message de réponse de statut : 1401000102532b000c2f0001030005564658434f4d
[DEBUG] : Firmware version = 0x2B [DEBUG] : RFXtrx433 operating at 433.92MHz [DEBUG] : Hardware major version = 0x01 [DEBUG] : Hardware minor version = 0x03 [DEBUG] : Output power = 0x1C [DEBUG] : Firmware Pro1 [DEBUG] : Noise level (only used in special firmware) = 0x5D
0x2B = 43
=> firmware 1043 Pro1
Exemples d’environnement ou l’installation du plugin-rfxcom fonctionne :
- JeedomSmart Buster Jeedom V4 : [RTEX] Jeedom Smart Recovery mode - passage en Buster Jeedom V4
Compatibilité d’un équipement en fonction du firmware :
Les protocoles implémentés sont différents en fonction du type de firmware : Par exemple, le type « ProXL1 » les inclus tous, alors qu’ils sont différents dans « Pro1 » et « Pro2 ».
Un tableau qui liste les protocoles supportés et les équipements en fonction des types de firmwares se trouve dans le
guide RFXtrx (cf rérérence plus haut). Ce tableau commence à la page 10.
Donc bien vérifier qu’en fonction de votre équipement et de votre firmware, le protocole est dans ce tableau.
Installation des dépendances du plugin-rfxcom :
Voici un extrait du script d’installation au 30/11/2020 :
apt-get update
sudo pip3 uninstall -y serial
sudo apt remove -y python3-serial
apt-get install -y python3-pip python3 python3-requests python3-pyudev
sudo python3 -m pip install --force-reinstall --ignore-installed --no-cache-dir pyserial
- Remarque1 : Ce script désinstalle le module python3 « serial » et le paquet debian python3 « serial » et installe ou réinstalle un module python3 « pyserial » (celui-ci : pyserial · PyPI) pour être compatible avec le plugin.
Cela résout l’erreur : « module ‹ serial › has no attribute ‹ VERSION › ».
/!\ ATTENTION : la désinstallation de « serial » peut avoir un impact sur le fonctionnement d’un autre plugin qui l’utiliserait. - Remarque2 : l’installation de certains paquets debian pour python3, avec apt-get, n’est pas précédé de sudo.
- Remarque3 : En principe les paquets debian python3 et python3-pip sont déjà installés par une installation initiale de Jeedom V4 (exemple sur Smart Buster) :
Exemple du Store banne de terrasse Somfy RTS
(avec télécommande Somfy RTS Telis 1 canal) :
(L’image de l’équipement dans le plugin-rfxcom représente une télécommande Somfy RTS Telis 4 canaux).
Analyse des messages/paquets émis par les commandes Action
(champs « Logical ID » de l’onglet « Commandes » de l’équipement) :
Type de paquet 0x1A : RFY (Somfy RTS)
Taille du paquet = 0x0C (12 octets, premier octet du message non inclus)
Commandes de l’onglet « Commandes » utilisées :
Programme, Monter, Descendre, Stop
Codage des commandes correspondantes dans le message (9 ième octet du message) :
cmnd : Program (0x07), up (0x01), down (0x03), stop (0x00)
#ID# (de l’onglet Commandes) = ID (de l’onglet Equipement) = id sur 3 octets
#GROUP# (de l’onglet Commandes) = ID (de l’onglet Commandes) = unitcode = 0x01 (canal 1)
Exemple Log Debug Rfxcom pour commande « Monter » :
[DEBUG] : Client connected to [127.0.0.1:43066]
[DEBUG] : Message read from socket: b'{"apikey":"XXX","cmd":"send","data":["0C1A000002ABA0010100000000"]}'
[DEBUG] : Client disconnected from [127.0.0.1:43066]
[DEBUG] : Message received in socket JEEDOM_SOCKET_MESSAGE
[DEBUG] : Test message: 0C1A000002ABA0010100000000
[DEBUG] : flushOutput serial port
[DEBUG] : flushInput serial port
[DEBUG] : Write message to serial port
[DEBUG] : Write data to serial port : 0c1a000002aba0010100000000
[DEBUG] : Write message ok : 0C1A000002ABA0010100000000
[DEBUG] : Message: 0402010000
[DEBUG] : Decode : 0402010000
[DEBUG] : Test message: 0402010000
[DEBUG] : PacketType: 0x02
[DEBUG] : Length: 5
[DEBUG] : No decoder found
Le message de réponse du boitier RFXtrx au message de commande n’est pas décodé par le plugin.
C’est un acquittement qui indique que la transmission de la commande est OK.
Résolution de problèmes, erreurs dans la log :
- module ‹ serial › has no attribute ‹ VERSION › => mettre à jour en dernière version du plugin et relancer l’installation des dépendances
- unrecognizable packet (XXXX) : index out of range => mettre à jour le firmware du boîtier RFXtrx433
Voila j’espère que ce retour d’expérience sera utile aux membres Jeedom.
akenad