[Résolu]Plugin Zwave sur RPI4 : utiliser un autre UART que /dev/ttyAMA0

Bonjour à vous tous,
J’espère ne pas m’être trompé d’endroit sur le forum en postant ici. J’ai eu beau chercher partout mais sans succès.
Voici mon souhait / (souci ?) : je me bricole un Jeedom DIY à base de Raspberry Pi 4 avec 3 cartes Pizigate (Zigbee), PiEnocean (Enocean) et Razpberry (Zwave+). Pour des raisons d’encombrement mécanique, je dois déporter 2 cartes sur une carte extension GPIO du RPI4 via une nappe 20 points et laisser la PiZigate sur le connecteur GPIO (/dev/ttyAMA0 + 2 ports en sortie pour Rst et Prog). J’ai réussi l’exercice avec la PiEnocean sur /dev/ttyAMA2 (UART5) mais suis coincé avec la carte Zwave car le plugin ne m’autorise pas une configuration autre que /dev/ttyAMA0 alors que je souhaiterai utiliser /dev/ttyAMA1 (UART4).
Sans vouloir demander une mise à jour du plugin (ce serait top ceci-dit pour être compatible RPI4 qui dispose de 5 UARTs), je cherche à forcer « à coups de tournevis » s’il le faut un port UART autre que le /dev/ttyAMA0. J’espère avoir été clair dans ma description et surtout trouver une solution auprès d’un guru/dev du plugin.
Merci d’avance
Michel

Je suis pas bien sur que tous ces uart soient disponible et libre a l’utilisation …
si cela peut aider :

Bonjour et merci de vous intéresser à mon sujet.
J’ai validé le fonctionnement des UART 4 et 5 en faisant fonctionner la carte EnoceanPi dessus. La Pizigate fonctionne également à condition de forcer 2 entrées supplémentaires à 1 (Prog et Reset de la carte).

C’est bon, j’ai trouvé. Peut-être pas la solution la plus élégante, mais ça fonctionne.
J’ai ajouté 3 lignes au fichier … /openzwave/plugin_info/configuration.php :
ligne 58 : « <option value=/dev/ttyAMA0 »>{{/dev/ttyAMA0}}"
ligne 59 : « <option value=/dev/ttyAMA1 »>{{/dev/ttyAMA1}}"
ligne 60 : « <option value=/dev/ttyAMA2 »>{{/dev/ttyAMA2}}"

(sans aucune guillemet)

Bonjour,

Attention ceci va sauter à la prochaine mise à jour du plugin.

Juste un idée et je ne sais pas si c’est possible avec les UART ni en grand expert de ce genre de config mais ne serait-il pas possible de « mapper » (via une config sur l’os) ce port sur un « port usb virtuel » ainsi il serait « vu » par le plugin en natif (comme le sont les autres dongles usb branchés)

Merci @Mips pour cette remarque. Je vais creuser la question. En attendant, je vais me contenter de mon workaround. Et pourquoi limiter le plugin à AMA0 ? Le Pi4 permet une autre souplesse de ce point de vue.

Effectivement, il faudrait lister tous les ceux disponibles

Bonjour @Patag,

Pour ajouter des /dev/tty pour les UART GPIO dans Jeedom,

regardes la fonction getUsbMapping dans
/var/www/html/core/class/jeedom.class.php
Extrait :

if ($_getGPIO) {
				if (file_exists('/dev/ttyAMA0')) {
					$usbMapping['Raspberry pi'] = '/dev/ttyAMA0';
				}
[...]
				foreach (ls('/dev/', 'ttyACM*') as $value) {
					$usbMapping['/dev/' . $value] = '/dev/' . $value;
				}
                          }

plus de détails ici : Plugin Z-Wave - Odroid-C2 - accès à /dev/ttyAML1
(ce sujet a été fabriqué automatiquement à partir d’une demande d’amélioration en déc 2019 effectuée dans Jeedom, Réglages > Demande de support)

akenad :slight_smile:

Bonjour @akenad
C’est nickel ! J’ai même poussé le vice en ajoutant tous les UARTs disponibles en faisant çà :

/*				if (file_exists('/dev/ttyAMA0')) {
					$usbMapping['Raspberry pi'] = '/dev/ttyAMA0';
				}
*/
				foreach (ls('/dev/', 'ttyAMA*') as $value) {
					$usbMapping['/dev/' . $value] = '/dev/' . $value;
				}

Merci encore !

1 « J'aime »

Plus qu’à faire le PR :wink:

1 « J'aime »

Ouhla @Mips, suis pas à l’aise avec Github et j’ai peur de faire des con****es.
Un tuto peut-être ?

ou tu peux faire une demande d’amélioration dans Réglages > Demande de support
(cf la mienne plus haut)

akenad :slight_smile:

C’est quel fichier que tu as modifié exactement?
je pourrais chercher mais j’ai la flemme

Voici (3-4 messages plus haut) :wink:

PR fait: https://github.com/jeedom/core/pull/1803

Ce sujet a été automatiquement fermé après 24 heures suivant le dernier commentaire. Aucune réponse n’est permise dorénavant.