Bonjour Mr. le visiteur, si vous lisez ceci, cela signifie que vous n'êtes pas enregistré. Cliquez ici pour vous inscrire en quelques étapes simples, vous pourrez profiter de toutes les fonctionnalités de notre Forum. Vous pourrez évidemment nous faire partager vos connaissances avec nous ! et voir les images ou vidéos postées



Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Raspberry, déterminer quel port USB est relié à l'onduleur et aux batteries ?
#1
Comment déterminer quel câble est relié à quel appareil ?

Oui, lorsque l’on a un onduleur et des batteries style Pylontech, il faut bien les relier au Raspberry pour pouvoir les commander.
Mais que se passe-t-il si on a 2 fois le même câble ?

Eh bien Linux va être incapable de savoir qui est qui si on ne l’aide pas.
Dans la version actuelle de Smartphoton, je contrôle les Vendeur ID et le Product ID. Si ce sont 2 câbles différents, les valeurs seront différentes.
Pour exemple :

chez moi j’ai 2 câbles (pour être précis, 2 chipsets) différents, donc aucun soucis pour moi de déterminer qui est connecté à qui.
Cela se fait dans le menu «System»

Le cable avec l’ ID 10c4:ea60 est le câble qui est relié à l’onduleur
Le cable avec l’ ID 067b:23a3 est le câble qui est relié aux batteries.
Absolument aucunes ambiguïtés ! Facile !

   

Maintenant prenons l’exemple qui coince. Cas de figure réel !!!
L’utilisateur à 2 câbles série totalement identiques. Voici ce que voit Linux de ces 2 câbles (commande lsusb) :

lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 067b:23a3 Prolific Technology, Inc. ATEN USB to Serial Bridge
Bus 001 Device 003: ID 067b:23a3 Prolific Technology, Inc. ATEN USB to Serial Bridge

Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub


On voit que les 2 câbles ont exactement la même identification. Donc impossible de déterminer qui est qui. Voilà le problème posé.

Alors j’ai eu accès ce matin au Raspberry de Ghislain qui à 2 onduleurs en parallèle et surtout 2 câbles identiques. Du coup j’ai pu faire des tests et aller de l’avant.

En utilisant la commande suivante ls -l /dev/serial/by-path/
La réponse est la suivante :


4 jun 11:47 platform-fd500000.pcie-pci-0000:01:00.0-usb-0:1.2:1.0-port0 -> ../../ttyUSB0
4 jun 12:04 platform-fd500000.pcie-pci-0000:01:00.0-
usb-0:1.3:1.0-port0 -> ../../ttyUSB1

On voit qu’il y a 2 interfaces, 1 sur le path usb-0:1.2:1.0 qui est donc l’interface ttyUSB0 et l’autre sur le path usb-0:1.3:1.0
Ce qui du coup me donne l’information de qui est où, Ghislain m’avait dit que l’onduleur était sur ttyUSB1, donc les batteries seront sur ttyUSB0.

Maintenant, il faut fixer ceci pour que lors du prochain redémarrage, cela soit toujours le cas !

Donc sur Linux on utilise des fichiers spéciaux qui donnent ce genre d’ordres.
Il s’agit du fichier /etc/udev/rules.d/99-usb-serial.rules
par exemple, dans celui-ci, j’ai introduis les lignes sous cette forme :

SUBSYSTEM=="tty",ENV{ID_PATH}=="platform-fd500000.pcie-pci-0000:01:00.0-usb-0:1.2:1.0",SYMLINK+="tty-pylontech"
SUBSYSTEM=="tty",ENV{ID_PATH}=="platform-fd500000.pcie-pci-0000:01:00.0-usb-0:1.3:1.0",SYMLINK+="tty-onduleur"

tty-onduleur et tty-pylontech sont utilisés dans mon programme justement pour m’affranchir des ports USB donnés aléatoirement par Linux.

Du coup lorsque Linux démarre je vais avoir ceci avec la commande
suivante ls -l /dev/tty-onduleur et ls -l /dev/tty-pylontech

4 jun 14:36 /dev/tty-pylontech -> ttyUSB0
4 jun 14:36 /dev/tty-onduleur -> ttyUSB1

Et donc Smartphoton va pouvoir gérer à la fois l’onduleur et les batteries sans confusions. Ce qui était le but à atteindre :)

Pour l’heure, je dois éditer le fichier en mode manuel, mais je regarderai pour que cela soit possible pour l’utilisateur par la suite.

C’était un long exposé, mais je pense qu’il sera utile pour de nombreux «Linuxien» qui comme moi ont lutés pour trouver ce genre d’informations assez obscures tout de même.

Pour information importante, j’ai trouvé la variable {ID_PATH} ci dessus via cette commande :

sudo udevadm info --query=all –name=/dev/ttyUSB0
et
sudo udevadm info --query=all –name=/dev/ttyUSB1

Qui me donne les résultats suivants. Je les mets en comparatifs dans un tableau pour lecture facilitée

   
ChrisPv et papigaz aiment ce post
Jean-Luc
Répondre
#2
enfin on avance ouf ! merci de tout le monde
jlm aime ce post
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)
[-]
Synthèse
Please login or register to use this functionality.

[-]
discussions récentes
parametres injection 37 et 38...
C'est une base voltronic ? Il ...NOLAK — 06:43 AM
Départ de 0
Ah yes je m'en suis douté aprè...gazzzzton — 11:51 PM
parametres injection 37 et 38 ...
comment controler les parametr...bishnoi — 10:56 PM
erreur au démarrage de Smartp...
Il y a du sûrement avoir une m...NOLAK — 09:42 PM
Probleme avec la version Smar...
wes, as-tu 1 W.E.S. de cartele...bishnoi — 08:47 PM
erreur au démarrage de Smartph...
Bonjour, Après avoir instal...lionel — 04:28 PM
Départ de 0
Salut, belle installation, s...jeanma66480 — 08:32 PM
Partage configuration.yaml Ho...
Pour les premiers dashboard tu...NOLAK — 02:45 PM
Départ de 0
Bienvenue et belle installatio...NOLAK — 01:26 PM
Départ de 0
Salut, belle installation, sma...gazzzzton — 01:01 PM
Départ de 0
Bonjour, Je m...jeanma66480 — 11:42 AM

[-]
Rechercher








(Advanced Search)

[-]
Who's Online
There are currently 70 online users. [Complete List]
» 2 Member(s) | 68 Guest(s)
AvatarAvatar

[-]
goals
96.8% of the way to our goal of 6,000 posts!
Only 190 posts left to go!

[-]
Statistics
» Members: 554
» Latest member: jacksoner
» Forum threads: 627
» Forum posts: 5,805

Full Statistics

>