Product en Vendor ID in ApparaabeheerProduct en Vendor ID in Apparaabeheer

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

  1. Uitzoeken van Vendor-, ProductID en iSerial door middel van usbutils op de NAS of via Windows
  2. Aanpassen rules bestand
  3. 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.

  1. Sluit alle apparaten aan die je wilt beheren. In mijn geval dus de RFXcom en de P1 kabel.
  2. Open je NAS Package Center en klik op Instellingen.
  3. 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.

    Jadahl voor DSM 6
    Jadahl voor DSM 6
  4. 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.
  5. Installeer uit de categorie “Gemeenschap” “usbutils” van Jumbotroll

    usbutils van Jumbotroll
    usbutils van Jumbotroll
  6. 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.

  1. 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
  2. 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

    RFXcom lsusb
    RFXcom lsusb

 

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.

  1. Sluit de apparaten die je normaal aan je NAS hebt aangesloten aan op je Windows PC.
  2. Wacht tot de drivers zijn geïnstalleerd
  3. Ga naar Apparaatbeheer

    Apparaabeheer
    Apparaatbeheer
  4. Klik op Universal Serial Bus-controllers
  5. Rechtsklik op het apparaat en kies Eigenschappen
  6. Ga naar het tabje Details
  7. Kies eigenschap “Pad naar apparaatinstantie”
    Als voorbeeld staat er bij mij: “USB\VID_0403&PID_6001\A546CQ3”
  8. Het VID is het VendorID, het PID is het ProductID en A546CQ3 is iSerial.
    Product en Vendor ID in Apparaabeheer
    Product en Vendor ID in Apparaatbeheer

Aanpassen van usb-rules bestand

  1. 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!

    RFXcom lsusb
    RFXcom lsusb op Synology NAS
  2. 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.

    99-usb-serial.rules op Synology NAS
    Locatie 99-usb-serial.rules op Synology NAS
    /etc/udev/rules.d/

    Hier staat het 99-usb-serial.rules bestand. Open het door te dubbelklikken.

  3. 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.

  4. Sla het bestand op en reboot de NAS. Zo worden de regels toegepast.
  5. 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.
    Persistent USB domoticz
    Persistent USB domoticz

    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.

Wat vond je van deze blogpost?

Klik op een ster om een beoordeling te geven!

Gemiddelde score 5 / 5. Aantal stemmen: 1

Er heeft nog niemand gestemd. Wees de eerste, het kost niets en geen registratie!

Jammer dat de post niet behulpzaam was.

Laten we deze post verbeteren!

Wat zou er beter kunnen?

Door Wouter

23 gedachten over “Persistent USB voor Domoticz op een Synology NAS”
  1. 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

    1. 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

  2. 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

  3. 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

    1. 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.

      |__1-1.2 0403:6001:0600 00 2.00 12MBit/s 90mA 1IF (RFXCOM RFXtrx433 A12U8WO)

      VendorID = 0403
      ProductID = 6001
      Serial = A12U8WO

      1. 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

          1. 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

  4. 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é

    1. 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

  5. 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!

  6. 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

  7. Als ik een update krijg van synology, dan ben ik de regels weer kwijt.
    Weet iemand hoe ik dit kan voorkomen?

    Jacco

    1. 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

  8. 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?

    1. 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

  9. 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

    1. 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

  10. 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…

    1. 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

      1. 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.

Laat weten wat je van dit artikel vindt!

Deze site gebruikt Akismet om spam te verminderen. Bekijk hoe je reactie-gegevens worden verwerkt.

%d bloggers liken dit: