Cannot get my head around [by-id]

Here’s my setup:

  • HA (HassOS 4.15) running on an R-Pi
  • Linux Debian 10 laptop through which I use Firefox (v78.4.0esr) to configure / communicate with HA
  • I have also set up SSH to get to HA through a terminal window on the laptop

I am trying to set up HA to work with my Arduino Mega - this is a brand new setup and a learning experience for me. Thanks for the patience. Here goes:

I find that the new accepted way of interfacing the two is through “Firmata”. On the Firmata page the following is suggested and makes sense:

serial_port string Required

The port where your board is connected to your Home Assistant host. It is recommended to use the by-id reference (instead of numerical like /dev/ttyACM0 or /dev/ttyUSB0 ) since these will never change after a reboot. If you are using HassOS, you can find a list of connected serial devices in the Hardware dialog on the System tab of the Supervisor.

That latter part “you can find a list of connected serial devices in the Hardware dialog on the System tab of the Supervisor.” does not seem to be true for my HA though the board was plugged into the USB of the R-Pi4 running HA.

I searched for information on how to identify the [by-id] for the Mega 2560 and configure it. I came across Setting up a fixed address for a USB Device in Linux

According to the article, parms sought are:

  • ATTRS{manufacturer} and/or
  • ATTRS{product} and take note of the
  • ATTRS{idVendor}
  • ATTRS{idProduct} and
  • ATTRS{serial}

I plug the Mega 2560 into my laptop and run:

udevadm info -a -p $(udevadm info -q path -n /dev/ttyACM0)

I don’t get all the parms from the output from the above list. These are the ones I get are,

  • ATTRS{manufacturer}==“Arduino (www.arduino.cc)”
  • ATTRS{idProduct}==“0042”
  • ATTRS{idVendor}==“2341”
  • ATTRS{serial}==“559303435363510141F2”

Now here’s where I’m stumped.

  1. There is no sense that I follow the rest of the instructions in the article, as far as I can tell because in my mind, the editing of the /etc/udev/rules.d/99-usb-serial.rules should be happening on the R-Pi not on my laptop.
  2. I don’t know how to get to the underlying linux OS on the R-Pi in order to edit the /etc/udev/rules.d/99-usb-serial.rules

Thanks for any guidance.

As an update: I did (finally) find the [Hardware] tab under System. my [by-id] for the arduino is

/dev/serial/by-id/usb-Arduino__www.arduino.cc__0042_559303435363510141F2-if00