Na het in- en uitschakelen van je Synology NAS wil het voorkomen dat de ‘namen’ van de USB poorten omwisselen. Zo heet ttyUSB0 ineens ttyUSB1 en omgekeerd. Om dat tegen te gaan kun je de USB poorten een naam geven. Dit noem je Persistent USB.
Situatieschets:
Ik heb twee USB apparaten op mijn DS216j. Een RFXcom en een P1 Slimme meter kabel.
Om de apparaten juist aan te sturen gaan we ze een naam geven. Maar dan moeten we eerst weten hoe de NAS de apparaten ziet. We gaan de serial numbers koppelen aan een naam.
Stappenplan voor het instellen van Persistent USB op Synology NAS
- Uitzoeken van Vendor-, ProductID en iSerial door middel van usbutils op de NAS of via Windows
- Aanpassen rules bestand
- Opnieuw instellen van de hardware in Domoticz
Installeren van usbutils op de NAS
LET OP: onderstaande werkt waarschijnlijk niet meer of maar gedeeltelijk omdat jadahl gestopt is met het ontwikkelen van de drivers en usbutils. De eerste stappen kun je dus overslaan, begin bij stap 1 van het volgende hoofdstuk. Voor de volledigheid heb ik de onderstaande informatie niet verwijderd.
- Sluit alle apparaten aan die je wilt beheren. In mijn geval dus de RFXcom en de P1 kabel.
- Open je NAS Package Center en klik op Instellingen.
- Voeg onder Pakketbronnen ‘Jadahl’ toe. De juiste URL verschilt per DSM versie en NAS model. Kijk op www.jadahl.com en kies voor de juiste DSM versie van de Miscellaneous SPK. Kies daarna voor jouw NAS model.
- Bovenaan op de pagina staat een balk met de tekst “Add http://www.jadahl.com/synology6/ to your Synology NAS Package Center sources !”. Kopieer de link en voeg ‘m toe aan je pakketbronnen in je NAS.
- Installeer uit de categorie “Gemeenschap” “usbutils” van Jumbotroll
- Verkrijg Root toegang (DSM 6 of hoger) via deze tutorial van mij. Gebruikers van DSM 5 kunnen bij de volgende stap root invullen als gebruikersnaam, met het administrator wachtwoord.
Achterhalen van Vendor-,Product ID en SerialID via NAS
Gaan de onderstaande stappen je te ver, heb je niet de tools van Jadahl of lukt het niet? Probeer het dan via Windows. Scroll naar het volgende hoofdstuk.
- Donwload Putty en voer het uit. Zorg dat SSH toegang aanstaat op de NAS en onthoud de poort. Door het commando “lsusb” uit te voeren kun je alle benodigde informatie te weten komen van de aangesloten usb apparaten. Voer het volgende commando uit:
sudo lsusb -v | more
Soms werkt het niet, probeer dan:
sudo lsusb
- Je krijgt nu steeds een pagina met veel informatie te zien. Bijvoorbeeld:
0403:6001:0600 00 2.00 12MBit/s 90mA 1IF (RFXCOM RFXtrx433 A12U8WO)
of
idVendor 0x0403 Future Technology Devices International, Ltd idProduct 0x6001 FT232 USB-Serial (UART) IC iSerial 3 A17AJFA
voor een RFXcom.
En voor de P1 meter kabel is dat bijvoorbeeld:
idVendor 0x0403 Future Technology Devices International, Ltd idProduct 0x6001 FT232 USB-Serial (UART) IC iSerial 3 A546CQ3
Noteer van ieder apparaat dat je wilt gebruiken in Domoticz:
*idVendor *idProduct *iSerial (als dit 0 is kun je het weglaten)
Voor het eerste voorbeeld hierboven is het:
idVendor: 0403
idProduct: 6001
iSerial: A12U8WO
Voor de andere twee voorbeelden is het:
idVendor: 0403
idProduct: 6001
iSerial: A17AJFA
en
idVendor: 0403
idProduct: 6001
iSerial: A546CQ3
Achterhalen van Vendor-,Product ID en SerialID via Windows
Het achterhalen van de Vendor, Product en Serial id’s is ook via Windows te doen. Als je het al via de NAS achterhaalt hebt kun je dit overslaan.
- Sluit de apparaten die je normaal aan je NAS hebt aangesloten aan op je Windows PC.
- Wacht tot de drivers zijn geïnstalleerd
- Ga naar Apparaatbeheer
- Klik op Universal Serial Bus-controllers
- Rechtsklik op het apparaat en kies Eigenschappen
- Ga naar het tabje Details
- Kies eigenschap “Pad naar apparaatinstantie”
Als voorbeeld staat er bij mij: “USB\VID_0403&PID_6001\A546CQ3” - Het VID is het VendorID, het PID is het ProductID en A546CQ3 is iSerial.
Aanpassen van usb-rules bestand
- Hier zit het ‘probleem’. De idVendor is voor beide apparaten 0403 en idProduct voor beide 6001 in mijn voorbeeld. De seriele id’s zijn gelukkig niet hetzelfde. Door middel van de seriele id kunnen we dus het verschil maken tussen de apparaten. De NAS spreekt de apparaten aan bij hun Vendor en/of Product id’s. Omdat die hetzelfde zijn denkt de NAS dat ie het juiste apparaat aanspreekt maar krijgt een vreemd antwoord terug. Om dat recht te zetten gaan we het rules bestand aanpassen. Zo vergist de NAS zicht niet meer!
- Log in met WinSCP (met root rechten) en navigeer naar de map:
(de map etc staat op het hoogste niveau, je zult dus alle mappen omhoog moeten tot je niet meer kunt (root of ‘gronddirectory’ ))
Mocht de map en het bestand nog niet bestaan, maak het dan aan./etc/udev/rules.d/
Hier staat het 99-usb-serial.rules bestand. Open het door te dubbelklikken.
- Voer hier de volgende regels toe:
SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", ATTRS{serial}=="A17AJFA", SYMLINK+="ttyUSB-216-RFX433E" SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", ATTRS{serial}=="A546CQ3", SYMLINK+="ttyUSB-216-P1-METER"
Pas natuurlijk wel de juiste waarden en namen aan! Je kunt de apparaten een eigen naam geven die in Domoticz zal verschijnen. Je kunt de volgorde van stekkers in je NAS niet meer aanpassen.
- Sla het bestand op en reboot de NAS. Zo worden de regels toegepast.
- Ga naar Hardware in Domoticz. Nu staan de namen die je gekozen hebt als keuze tussen de beschikbare USB poorten. Stel deze juist in en check of de andere instellingen nog juist staan zoals de baudrate.
Het is gelukt! De data komt weer binnen en de RFXcom stuurt weer commando’s!
Je kunt nu verder met het verder tweaken van je smarthome! Klik hier voor tips en trucs voor je smarthome.
Hallo, ik wil deze patch ook uitvoeren, maar kan nergens de tool USButils van Jumbotroll vinden. Ik heb wel het Jadahl-pad in mijn NAS ingesteld, maar het pakket verschijnt niet in mijn lijst…. Enig idee hoe ik daar bij kan komen, of kun je mij het pakket emailen??
Bedankt, Pim
Beste Pim,
Zo te zien is Jadahl gestopt met de ontwikkeling van de USB tools. Balen zeg! Ik heb helaas het originele pakket niet meer. Ik heb mijn usbutils map geexporteerd van mijn NAS, misschien heb je er wat aan.
In WinSCP (met root toegang) heb ik de usbutils staat op de volgende locatie:
/volume1/@appstore/usbutils
Als je deze zip daar uitpakt werkt het misschien wel, ik heb hiermee ook geen ervaring, het is ook op eigen risico. Ik heb een DS216j
Andere mogelijkheden die mij te binnen schieten:
lsusb uitvoeren met een Ubuntu live usb op je PC
Het jailbreaken van de NAS. Zoek dan op ipkg Synology in Google, want daar heb ik ook verder geen ervaring mee.
Succes! Laat het maar weten!
Wouter
Hallo Wouter, bedankt voor je snelle reactie!
Het vreemde is dat ik vanuit Telnet wel het commando “sudo lsusb -v |more” kan geven, maar dan een foutmelding krijg dat optie “-v” niet geldig is:
admin@Neptune:~$ sudo lsusb -v |more
Password:
Error: option -v not recognized
Usage: lsusb.py [options]
Options:
-h display this help
-i display interface information
-I display interface information, even for hubs
-u suppress empty hubs
-U suppress all hubs
-c use colors
-e display endpoint info
-w display warning if usb.ids is not sorted correctly
-f FILE override filename for /usr/share/usb.ids
Use lsusb.py -ciu to get a nice overview of your USB devices.
En als ik alleen “sudo lsusb” geef, dan krijg ik onderstaande output, maar daar kan ik geen wijs uit:
admin@Neptune:~$ sudo lsusb
|__usb1 1d6b:0002:0206 09 2.00 480MBit/s 0mA 1IF (Linux 2.6.32.12 ehci_hcd Marvell Orion EHCI orion-ehci.0) hub
|__1-1 05e3:0608:0901 09 2.00 480MBit/s 100mA 1IF ( d6a3ebcbfbd5e7a5f6a3) hub
|__1-1.2 0403:6001:0600 00 2.00 12MBit/s 90mA 1IF (RFXCOM RFXtrx433 A12U8WO)
admin@Neptune:~$
Ik heb op mijn DS211J ook een map /volume1/@appstore, maar daar staat usbutils dus niet in. Zou je jouw usbutils ZIP eens kunnen sturen naar pdj@solcon.nl?
Alvast bedankt!
Pim
Ok Wouter, ik heb de usbutils nu als root op mijn NAS gezet in de volgende folder: /volume1/@appstore/usbutils.
Alleen als ik nu in Telnet wil opstarten, dan vindt hij de “oude” lsusb en niet de nieuwe. Omdat te regelen heb ik de tool hernoemd naar “lxusb”, maar die wordt niet gevonden in Telnet. Ws. staat het pad niet goed oid. Enig idee hoe ik dat kan instellen, of hoe ik in Telnet naar bovenstaande folder toe kan om van daaruit op te starten?
B.v.d. Pim
Hoi Pim,
Vergeet het lsusb verhaal. Ik heb een makkelijkere oplossing gevonden:
Ik ga er even vanuit dat je Windows gebruikt.
1. Sluit je USB apparaten aan op je PC. Wacht even tot de stuurprogramma’s geïnstalleerd zijn.
2. Ga naar Apparaatbeheer
3. Kies onder Universal Serial Bus controllers voor je apparaat (bij mijn P1 meter kabel is dat USB Serial Converter)
4. Rechtsklik en kies voor eigenschappen
5. Ga naar tab details
6. Kies eigenschap “Pad naar apparaatinstantie”
Bij mij staat hier “USB\VID_0403&PID_6001\A546CQ3”, precies het resultaat wat ik ook uit lsusb kreeg.
Nu je dit weet kun je verder met stap 11!
We komen er wel, succes!
Laat maar weten of het gelukt is, ik zal tzt de tutorial aanpassen.
Wouter
PS. ik zie, nu ik jouw output beter bekijk, trouwens ook de gegevens die je nodig hebt.
VendorID = 0403
ProductID = 6001
Serial = A12U8WO
Hoi Wouter,
Het duurde even, maar inmiddels heb ik de patch succesvol uitgevoerd. Het bestand 99-usb-serial.rules stond nog niet op mijn NAS, dus moest ik even de folders en het bestand aanmaken. Maar dat is dus gelukt en nu zijn er inderdaad vaste poorten beschikbaar voor mijn hardware. Ik heb zojuist getest met een echte power uitval (wat voorheen altijd problemen gaf) en die wordt nu prima overleefd – alles start automatisch op en alle hardware blijft werken!
Bedankt voor je hulp – dat was erg nuttig!
Groetjes, Pim
Hoi Wouter
Ik kan /etc/udev/rules.d/ niet vinden op mijn NAS (DS216+II)
Heb jij een oplossing ?
Groet
Henny
Beste Henny,
Zoals pjanse hierboven ook al aangeeft, kan het voorkomen dat de mappen en het bestand nog niet bestaan. Je kunt de mappen en het bestand gewoon zelf maken. Ik heb in de blogpost het een en ander verduidelijkt!
Succes verder,
Wouter
Hallo Wouter,
Ik heb e.e.a. proberen uit te dokteren echter krijg het niet aan de praat. Jahdal heeft inmiddels weer een nieuw pakket uitgebracht dat heet USBSERIALDRIVERS 6.2. Deze maakt een rule 60-jadahl.usbserial.rules aan in /lib/udev/rules.d nu heb ik daar jouw 2 regels aan toegevoegd met mijn apparaat details.
Dit is nu de inhoud van de rule maar hij werkt niet, kun je eens meedenken en proberen e.e.a. aan de praat te krijgen?
#rules for USB ACM serial devices
KERNEL==”ttyACM*”, ACTION==”add”, MODE=”0666″
KERNEL==”ttyUSB*”, ACTION==”add”, MODE=”0666″
SUBSYSTEM==”tty”, ATTRS{idVendor}==”0658″, ATTRS{idProduct}==”0200″, ATTRS{serial}==”0″, SYMLINK+=”ttyACM-216-Aeotec”
SUBSYSTEM==”tty”, ATTRS{idVendor}==”0403″, ATTRS{idProduct}==”6001″, ATTRS{serial}==”A546CQ3″, SYMLINK+=”ttyUSB-216-P1-METER”
Alvast bedankt,
André
Beste André,
Wat ik mij zo als eerst kan bedenken is het gebruik van het dubbele aanhalingsteken (“). Het lijkt alsof je twee verschillende door elkaar gebruikt. Probeer eens alleen de rechte te gebruiken.
Ook schijf je dat het bestand 60-jadahl.usbserial.rules heet, misschien kun je proberen het te hernoemen naar 99-usb-serial.rules.
Succes!
Groetjes Wouter
Goede info! heb me te gezocht en hier het goede antwoord gevonden voor mijn DS128 met Domoticz
Inderdaad: de map en het bestand bestaan nog niet.
Maar deze aangemaakt met de info uit sudo lsusb en het werkt ook nog.
Bedankt voor het uitzoekwerk!
Graag gedaan Frank! Veel plezier met het maken van je eigen smart home!
Heb wel een klein probleempje
heb alles ingevuld zie nu in mijn domoticz wel mijn rfxcom met de naam /dev/ttyusb-216-RFX433
maar voor mijn pi kabel blijft de naam /dev/ttyusb0
Dag John,
Ik denk dat je p1 kabel bedoelt 😀
Weet je zeker dat je je eigen id’s hebt gebruikt?
Groet Wouter
Als ik een update krijg van synology, dan ben ik de regels weer kwijt.
Weet iemand hoe ik dit kan voorkomen?
Jacco
Zo ver ik mij herinner raak ik de regels niet kwijt, maar je zou een cronjob (taakplanner) kunnen maken die checkt of regels nog bestaan.
Iemand een beter idee?
Wouter
Alle devices zijn via een USB hub verbonden. Helaas krijg ik alleen de hub te zien in het overzicht lsusb. Is het voldoende alleen de hub persistant in te stellen?
Hoi marvin,
Nee dat denk ik niet. Er was dacht ik nog een ander Linux commando om meer info over je usb apparaten te krijgen. Anders even proberen via windows zoals beschreven.
Succes
Groet Wouter
is het mogelijk om dit ook aan de gang te krijgen via docker ?
Ik heb de file aangemaakt en de nas herstart, maar ik zie nog steeds alleen /dev/ttyUSB0 in my domoticz
Beste Patrick,
Geen idee eigenlijk, ik heb nog nooit met docker gewerkt. Het lijkt me dat je het in ieder geval binnen je docker container van domoticz moet regelen.
Groet wouter
Dank Wouter,
Weet niet of deze werkwijze nog werkt. Beschik over een DS718+ met versie DSM 6.2. Daar vechten de verschillende devices ook om de verschillende poorten…
Heb het volgende bestand met de naam 99-usb-serial.rules aangemaakt in het pad: /etc/udev/rules.d
SUBSYSTEM==”tty”, ATTRS{idVendor}==”0403″, ATTRS{idProduct}==”6001″, ATTRS{serial}==”A17AGOG”, SYMLINK+=”ttyUSB-RFX433E”
SUBSYSTEM==”tty”, ATTRS{idVendor}==”1a86″, ATTRS{idProduct}==”55d4″, ATTRS{serial}==”20220816192926″, SYMLINK+=”ttyUSB-zigbee”
SUBSYSTEM==”tty”, ATTRS{idVendor}==”0658″, ATTRS{idProduct}==”0200″, ATTRS{serial}==”299C1F49″, SYMLINK+=”ttyUSB-AEOTEC”
Maar in Domoticz versie 2022.1 (build 14535) nog de gewone benamingen in de trant van ttyUSB0, ttyACM0 en ttyACM1.
Heb je nog suggesties hoe dit werkend te krijgen…
Hoi Pieter,
Geen idee of het nog werkt want ik gebruik inmiddels home assistant op een aparte pi.
Wat mij opvalt aan bovenstaande is dat je twee verschillende soorten aanhalingstekens gebruikt. Misschien komt het door de website software wordpress dat kan ook maar check het even. Kijk maar naar de aanhalingstekens bij 0403, 6001 en de serials. Je hebt ook de nas herstart na de aanpassingen?
Groet Wouter
H Wouter,
Dank voor response. Heel scherp opgemerkt wat betreft de aanhalingstekens. Was me niet opgevallen. Maar wordt door WordPress verminkt.. In Notepad en de interne editor van Putty zijn ze wel eenvormig.
Wel nog een vraag over symbolic link: Als ik met ls -l /dev/ttyA* alle usb-devices opvraag worden ook de symbolic links getoond. Het OS doet er dus wel iets mee…
Maar weet je misschien waarom er dan steeds een -> met legacy benaming achter staat waardoor de link niet in applicaties als Domoticz of Z-Wave JS UI wordt getoond?
Dit is mijn rules-bestand: (overigens copy/paste via interne editor:-) )
SUBSYSTEM==”tty”, ATTRS{idVendor}==”0403″, ATTRS{idProduct}==”6001″, ATTRS{serial}==”A17AGOG”, SYMLINK+=”ttyUSB-RFX433E”
SUBSYSTEM==”tty”, ATTRS{idVendor}==”1a86″, ATTRS{idProduct}==”55d4″, ATTRS{serial}==”20220816192926″, SYMLINK+=”ttyUSB-zigbee”
SUBSYSTEM==”tty”, ATTRS{idVendor}==”0658″, ATTRS{idProduct}==”0200″, SYMLINK+=”ttyACM-AEOTEC”
SUBSYSTEM==”tty”, ATTRS{idVendor}==”174c”, ATTRS{idProduct}==”55aa”, SYMLINK+=”ttyACM-SATA-bridge”
Dit is resultaat van het commando:
ls -l /dev/ttyUSB*
crw-rw-rw- 1 root root 188, 0 Nov 7 17:44 /dev/ttyUSB0
lrwxrwxrwx 1 root root 7 Nov 7 17:44 /dev/ttyUSB-RFX433E -> ttyUSB0
lrwxrwxrwx 1 root root 7 Nov 7 17:44 /dev/ttyUSB-zigbee -> ttyACM1
ls -l /dev/ttyA*
crw——- 1 root root 166, 0 Nov 7 17:16 /dev/ttyACM0
crw-rw-rw- 1 root root 166, 1 Nov 7 17:49 /dev/ttyACM1
lrwxrwxrwx 1 root root 7 Nov 7 17:07 /dev/ttyACM-AEOTEC -> ttyACM0
De Sata-bridge wordt helemaal niet herkend..
Serial is alleen relevant als er 2 items zijn met zelfde idProduct..
Het hele symbolic link verhaal staat toch los van de applicaties als HA of Domoticz. Het proces gaat al niet helemaal naar verwachting in de OS-omgeving… Waarom steeds die -> ???
Heb overigens idee dat Synology dit iets anders afhandelt dan Ubuntu op Raspberry.