• Have you tried out dark mode?! Scroll to the bottom of any page to find a sun or moon icon to turn dark mode on or off!

diy solar

diy solar

Solar assistant: do you use it?

Do you use solar assistant with your solar system

  • Yes

  • I used to, not anymore

  • No but I plan to use it one day

  • No and I don't see a reason to purchase it


Results are only viewable after voting.
I have tried another powered hub, and still no success.
I'm just going to live with it, unless someone finds a foolproof fix.
 
If it would hold consistent, I would physically shuffle the inverters to satisfy my OCD. But it changes every once in a while, and I don't feel like playing AIO wack-A-mole.
 
As I understand it: When a new device turns up, the kernel looks to see if udev rules have any suggestions, if not, it will give it the first default name for the class of thing.

If you've made a rule that USB device 0123:4567, with serial number 012345678 should be called "/dev/ttyUSB7" and you plug that device in, it will get called 7. If you plug a similar, but un-ruled, device in, you'll get /dev/ttyUSB0 -- the first default.

This means that if you have a comprehensive set of rules for your set of devices, they will always stay put. Even if some are disconnected/missing at boot, or removed and re-inserted after boot. Even if the kernel spots them in a wacky order, they will populate where you want them to.

It's possible to mess up the kernel by removing and re-adding a device, and finding it walks from USB0 to USB1 ... with USB0 being "No such device" and USB1 being "this is your device!". Until you disconnect and reconnect, and goes back to USB0.

Edit: I see what you mean about paucity of examples of fixing USB0 rather than creating a symlink to "my new nonstandard /dev/ttyWhizbang". Hmmm. Try /dev/ttyUSBA ... B ... C ... if SA's scanning is loose enough it might let you see them as they start with USB. On the other hand, they might have been really tight and said only recognise /dev/ttyUSB[0-9][0-9] ...
I've tried to use symlinks with names ttyUSBL1A, etc. but they are still not showing up in SA.

I've also tried to manually create symlinks in the /dev/serial/by-id/ and /dev/serial/by-path/ folders to the new udev symlinks - but after a SA reboot to commit the changes, these links are gone. I have no idea how to dynamically create symlinks in these two folders via rules.

Also I had no success to re-assign the standard names ttyUSB1-ttyUSB6 via udev rules.

I've plugged in 7 USB adapters (1 for the RS485 battery comm and 6 for the RS232 inverters comm) via an external powered USB HUB (with a separate ON/OFF button for each USB socket).

I've tried to fix assign all 7 USB adapters to specific standard tty names with the following udev rule:
ttyUSB0 is assigned to the ONE modbus RS485-USB adapter to communicate with my batteries. ttyUSB1-ttyUSB6 are assigned to the RS232-USB adapters to the inverters. I've tried this with the following udev rule.

Code:
SUBSYSTEM=="tty", ATTRS{idVendor}=="1a86", ATTRS{idProduct}=="7523", SYMLINK+="ttyUSB0"
SUBSYSTEM=="tty", ATTRS{idVendor}=="067b", ATTRS{idProduct}=="23a3", ATTRS{serial}=="A9CAb116L16", SYMLINK+="ttyUSB1"
SUBSYSTEM=="tty", ATTRS{idVendor}=="067b", ATTRS{idProduct}=="23a3", ATTRS{serial}=="AKBSb119D15", SYMLINK+="ttyUSB2"
SUBSYSTEM=="tty", ATTRS{idVendor}=="067b", ATTRS{idProduct}=="23a3", ATTRS{serial}=="EOCMb119D15", SYMLINK+="ttyUSB3"
SUBSYSTEM=="tty", ATTRS{idVendor}=="067b", ATTRS{idProduct}=="23a3", ATTRS{serial}=="DEBCb119D15", SYMLINK+="ttyUSB4"
SUBSYSTEM=="tty", ATTRS{idVendor}=="067b", ATTRS{idProduct}=="23a3", ATTRS{serial}=="EIBSb119D15", SYMLINK+="ttyUSB5"
SUBSYSTEM=="tty", ATTRS{idVendor}=="067b", ATTRS{idProduct}=="23a3", ATTRS{serial}=="EBAQb116L16", SYMLINK+="ttyUSB6"

But this doesn't work! The assignment is not using these rules even if the USB serial numbers are correct.

This is the result after reboot.
Code:
ls -al /dev/serial/by-id/

lrwxrwxrwx 1 root root 13 Apr 23 15:23 usb-1a86_USB2.0-Ser_-if00-port0 -> ../../ttyUSB0
lrwxrwxrwx 1 root root 13 Apr 23 15:23 usb-Prolific_Technology_Inc._USB-Serial_Controller_A9CAb116L16-if00-port0 -> ../../ttyUSB3
lrwxrwxrwx 1 root root 13 Apr 23 15:23 usb-Prolific_Technology_Inc._USB-Serial_Controller_AKBSb119D15-if00-port0 -> ../../ttyUSB2
lrwxrwxrwx 1 root root 13 Apr 23 15:23 usb-Prolific_Technology_Inc._USB-Serial_Controller_DEBCb119D15-if00-port0 -> ../../ttyUSB5
lrwxrwxrwx 1 root root 13 Apr 23 15:23 usb-Prolific_Technology_Inc._USB-Serial_Controller_EBAQb116L16-if00-port0 -> ../../ttyUSB1
lrwxrwxrwx 1 root root 13 Apr 23 15:23 usb-Prolific_Technology_Inc._USB-Serial_Controller_EIBSb119D15-if00-port0 -> ../../ttyUSB6
lrwxrwxrwx 1 root root 13 Apr 23 15:23 usb-Prolific_Technology_Inc._USB-Serial_Controller_EOCMb119D15-if00-port0 -> ../../ttyUSB4

If I use NEW symlinks in the udev rules the assignment with the serial numbers are working, but if I change the rule to overwrite the standard names ttyUSB1-ttyUSB6 the rule with the assignment is not working.
 
It needs to be fixed in Solar Assistant, by Pierre.
It can already tell them apart, because it displays the serial numbers.
We just need the ability to assign them an order of displaying.
 
I've tried to use symlinks with names ttyUSBL1A, etc. but they are still not showing up in SA.
Very specifically, try ttyUSBA ttyUSBB ... ? or ttyUSB10 ttyUSB11 ttyUSB12 ... in the hope that SA will find them.

ttyUSBL1A is a bit too weird, and was probably not something SA expects to find and offer as an inverter/battery comms item.
 
Very specifically, try ttyUSBA ttyUSBB ... ? or ttyUSB10 ttyUSB11 ttyUSB12 ... in the hope that SA will find them.

ttyUSBL1A is a bit too weird, and was probably not something SA expects to find and offer as an inverter/battery comms item.
I've created new symlinks ttyUSB10-ttyUSB15 and the udev assignment to the physical adapter is working again.

The udev rules:
Code:
SUBSYSTEMS=="usb", KERNEL=="ttyUSB*", ATTRS{idVendor}=="067b", ATTRS{idProduct}=="23a3", ATTRS{serial}=="A9CAb116L16", SYMLINK+="ttyUSB10"
SUBSYSTEMS=="usb", KERNEL=="ttyUSB*", ATTRS{idVendor}=="067b", ATTRS{idProduct}=="23a3", ATTRS{serial}=="AKBSb119D15", SYMLINK+="ttyUSB11"
SUBSYSTEMS=="usb", KERNEL=="ttyUSB*", ATTRS{idVendor}=="067b", ATTRS{idProduct}=="23a3", ATTRS{serial}=="EOCMb119D15", SYMLINK+="ttyUSB12"
SUBSYSTEMS=="usb", KERNEL=="ttyUSB*", ATTRS{idVendor}=="067b", ATTRS{idProduct}=="23a3", ATTRS{serial}=="DEBCb119D15", SYMLINK+="ttyUSB13"
SUBSYSTEMS=="usb", KERNEL=="ttyUSB*", ATTRS{idVendor}=="067b", ATTRS{idProduct}=="23a3", ATTRS{serial}=="EIBSb119D15", SYMLINK+="ttyUSB14"
SUBSYSTEMS=="usb", KERNEL=="ttyUSB*", ATTRS{idVendor}=="067b", ATTRS{idProduct}=="23a3", ATTRS{serial}=="EBAQb116L16", SYMLINK+="ttyUSB15"

The links created by the rules (always with the correct assignment after each SA reboot even if the kernel assigned USB1-6 orders are changed):
Code:
$ ls -al /dev/ttyUSB1?
lrwxrwxrwx 1 root root 7 Apr 23 15:54 /dev/ttyUSB10 -> ttyUSB3
lrwxrwxrwx 1 root root 7 Apr 23 15:54 /dev/ttyUSB11 -> ttyUSB2
lrwxrwxrwx 1 root root 7 Apr 23 15:54 /dev/ttyUSB12 -> ttyUSB4
lrwxrwxrwx 1 root root 7 Apr 23 15:54 /dev/ttyUSB13 -> ttyUSB5
lrwxrwxrwx 1 root root 7 Apr 23 15:54 /dev/ttyUSB14 -> ttyUSB6
lrwxrwxrwx 1 root root 7 Apr 23 15:54 /dev/ttyUSB15 -> ttyUSB1

But SA still only showing USB0-USB6 in it's select box.
1745423888434.png 1745423905088.png

I have no idea from which source SA does get the available USB ports to select - maybe it's really from the /dev/serial/ folders where the links to the new USB names are still not exists and I still have no idea how to automatically create these links in a persistent way.
 
An AI gave me the hint how to automatically create symlinks also in the /dev/serial/ folders... just add multiple symlink fields...

This is the new udev rule:

Code:
SUBSYSTEMS=="usb", KERNEL=="ttyUSB*", ATTRS{idVendor}=="067b", ATTRS{idProduct}=="23a3", ATTRS{serial}=="A9CAb116L16", SYMLINK+="ttyUSB10", SYMLINK+="serial/by-id/ttyUSB10", SYMLINK+="serial/by-path/ttyUSB10"
SUBSYSTEMS=="usb", KERNEL=="ttyUSB*", ATTRS{idVendor}=="067b", ATTRS{idProduct}=="23a3", ATTRS{serial}=="AKBSb119D15", SYMLINK+="ttyUSB11", SYMLINK+="serial/by-id/ttyUSB11", SYMLINK+="serial/by-path/ttyUSB11"
SUBSYSTEMS=="usb", KERNEL=="ttyUSB*", ATTRS{idVendor}=="067b", ATTRS{idProduct}=="23a3", ATTRS{serial}=="EOCMb119D15", SYMLINK+="ttyUSB12", SYMLINK+="serial/by-id/ttyUSB12", SYMLINK+="serial/by-path/ttyUSB12"
SUBSYSTEMS=="usb", KERNEL=="ttyUSB*", ATTRS{idVendor}=="067b", ATTRS{idProduct}=="23a3", ATTRS{serial}=="DEBCb119D15", SYMLINK+="ttyUSB13", SYMLINK+="serial/by-id/ttyUSB13", SYMLINK+="serial/by-path/ttyUSB13"
SUBSYSTEMS=="usb", KERNEL=="ttyUSB*", ATTRS{idVendor}=="067b", ATTRS{idProduct}=="23a3", ATTRS{serial}=="EIBSb119D15", SYMLINK+="ttyUSB14", SYMLINK+="serial/by-id/ttyUSB14", SYMLINK+="serial/by-path/ttyUSB14"
SUBSYSTEMS=="usb", KERNEL=="ttyUSB*", ATTRS{idVendor}=="067b", ATTRS{idProduct}=="23a3", ATTRS{serial}=="EBAQb116L16", SYMLINK+="ttyUSB15", SYMLINK+="serial/by-id/ttyUSB15", SYMLINK+="serial/by-path/ttyUSB15"

Symlinks are now in /dev/ and /dev/serial/by-id/ and /dev/serial/by-path/
Code:
ls -al /dev/ttyUSB*
crw-rw---- 1 root dialout 188, 0 Apr 23 16:19 /dev/ttyUSB0
crw-rw---- 1 root dialout 188, 1 Apr 23 16:19 /dev/ttyUSB1
lrwxrwxrwx 1 root root 7 Apr 23 16:16 /dev/ttyUSB10 -> ttyUSB2
lrwxrwxrwx 1 root root 7 Apr 23 16:16 /dev/ttyUSB11 -> ttyUSB1
lrwxrwxrwx 1 root root 7 Apr 23 16:16 /dev/ttyUSB12 -> ttyUSB3
lrwxrwxrwx 1 root root 7 Apr 23 16:16 /dev/ttyUSB13 -> ttyUSB4
lrwxrwxrwx 1 root root 7 Apr 23 16:16 /dev/ttyUSB14 -> ttyUSB5
lrwxrwxrwx 1 root root 7 Apr 23 16:16 /dev/ttyUSB15 -> ttyUSB0
crw-rw---- 1 root dialout 188, 2 Apr 23 16:19 /dev/ttyUSB2
crw-rw---- 1 root dialout 188, 3 Apr 23 16:19 /dev/ttyUSB3
crw-rw---- 1 root dialout 188, 4 Apr 23 16:19 /dev/ttyUSB4
crw-rw---- 1 root dialout 188, 5 Apr 23 16:19 /dev/ttyUSB5
crw-rw---- 1 root dialout 188, 6 Apr 23 16:19 /dev/ttyUSB6

ls -al /dev/serial/by-id/
lrwxrwxrwx 1 root root 13 Apr 23 16:16 ttyUSB10 -> ../../ttyUSB2
lrwxrwxrwx 1 root root 13 Apr 23 16:16 ttyUSB11 -> ../../ttyUSB1
lrwxrwxrwx 1 root root 13 Apr 23 16:16 ttyUSB12 -> ../../ttyUSB3
lrwxrwxrwx 1 root root 13 Apr 23 16:16 ttyUSB13 -> ../../ttyUSB4
lrwxrwxrwx 1 root root 13 Apr 23 16:16 ttyUSB14 -> ../../ttyUSB5
lrwxrwxrwx 1 root root 13 Apr 23 16:16 ttyUSB15 -> ../../ttyUSB0
lrwxrwxrwx 1 root root 13 Apr 23 16:16 usb-1a86_USB2.0-Ser_-if00-port0 -> ../../ttyUSB6
lrwxrwxrwx 1 root root 13 Apr 23 16:16 usb-Prolific_Technology_Inc._USB-Serial_Controller_A9CAb116L16-if00-port0 -> ../../ttyUSB2
lrwxrwxrwx 1 root root 13 Apr 23 16:16 usb-Prolific_Technology_Inc._USB-Serial_Controller_AKBSb119D15-if00-port0 -> ../../ttyUSB1
lrwxrwxrwx 1 root root 13 Apr 23 16:16 usb-Prolific_Technology_Inc._USB-Serial_Controller_DEBCb119D15-if00-port0 -> ../../ttyUSB4
lrwxrwxrwx 1 root root 13 Apr 23 16:16 usb-Prolific_Technology_Inc._USB-Serial_Controller_EBAQb116L16-if00-port0 -> ../../ttyUSB0
lrwxrwxrwx 1 root root 13 Apr 23 16:16 usb-Prolific_Technology_Inc._USB-Serial_Controller_EIBSb119D15-if00-port0 -> ../../ttyUSB5
lrwxrwxrwx 1 root root 13 Apr 23 16:16 usb-Prolific_Technology_Inc._USB-Serial_Controller_EOCMb119D15-if00-port0 -> ../../ttyUSB3

ls -al /dev/serial/by-path/
lrwxrwxrwx 1 root root 13 Apr 23 16:16 platform-fd500000.pcie-pci-0000:01:00.0-usb-0:1.2.2.1.1.1:1.0-port0 -> ../../ttyUSB6
lrwxrwxrwx 1 root root 13 Apr 23 16:16 platform-fd500000.pcie-pci-0000:01:00.0-usb-0:1.2.2.1.2:1.0-port0 -> ../../ttyUSB2
lrwxrwxrwx 1 root root 13 Apr 23 16:16 platform-fd500000.pcie-pci-0000:01:00.0-usb-0:1.2.2.1.3:1.0-port0 -> ../../ttyUSB4
lrwxrwxrwx 1 root root 13 Apr 23 16:16 platform-fd500000.pcie-pci-0000:01:00.0-usb-0:1.2.2.1.4:1.0-port0 -> ../../ttyUSB5
lrwxrwxrwx 1 root root 13 Apr 23 16:16 platform-fd500000.pcie-pci-0000:01:00.0-usb-0:1.2.2.2:1.0-port0 -> ../../ttyUSB0
lrwxrwxrwx 1 root root 13 Apr 23 16:16 platform-fd500000.pcie-pci-0000:01:00.0-usb-0:1.2.2.3:1.0-port0 -> ../../ttyUSB1
lrwxrwxrwx 1 root root 13 Apr 23 16:16 platform-fd500000.pcie-pci-0000:01:00.0-usb-0:1.2.2.4:1.0-port0 -> ../../ttyUSB3
lrwxrwxrwx 1 root root 13 Apr 23 16:16 ttyUSB10 -> ../../ttyUSB2
lrwxrwxrwx 1 root root 13 Apr 23 16:16 ttyUSB11 -> ../../ttyUSB1
lrwxrwxrwx 1 root root 13 Apr 23 16:16 ttyUSB12 -> ../../ttyUSB3
lrwxrwxrwx 1 root root 13 Apr 23 16:16 ttyUSB13 -> ../../ttyUSB4
lrwxrwxrwx 1 root root 13 Apr 23 16:16 ttyUSB14 -> ../../ttyUSB5
lrwxrwxrwx 1 root root 13 Apr 23 16:16 ttyUSB15 -> ../../ttyUSB0

But SA sill showing the same as in the above post - no hint about the newly created ttyUSB10-15 devices.
 
It needs to be fixed in Solar Assistant, by Pierre.
It can already tell them apart, because it displays the serial numbers.
We just need the ability to assign them an order of displaying.
I've just sent them again a detailed email (to info and support) about this still missing feature which are many of us requesting since years. Also, I've wrote them it's not only a "cosmetical" feature to have a well defined order. Also, automation via SA/MQTT/HomeAssistant is not really usable while the MQTT topics only containing the SA inverter number without a glue which physical inverter stands behind each SA inverter number. E.g. there are some useful settings per inverter which may vary between them and are depended on the physical unit (e.g. some may get hotter than others and may require a reduced charging amps or grid charging amps, or because of different MPPT entry usages, etc.).

I hope SA will increase the priority for such a feature and I wrote them that many users in this forum complains about this problem since long time... maybe it helps... still an optimist :)
 
no hint about the newly created ttyUSB10-15 devices.
Damn. I guess SA is smarter than I am then :)

It's entirely reasonable that an app would filter the contents of "/dev/" and only show entries it knows how to handle.

The filter probably doesn't extend to more than USB9 then ... to be honest, how many people have got 10 devices to monitor (0 to 9) ? So ... I'm probably getting you to test past that limit. Worth a try.

As I said, this is a long standing problem/feature in Linux (appearing and disappearing hardware), and is _mostly_ solved with udev and similar tools to nail down hardware. It fails badly when you have devices that are all the same USB Product ID (the 1234:ABCD tag bit) and have _no_ serial number or _all_ have serial number 0000000 etc. -- then there's no way to tell them apart. At least you seem to have serial numbers, so there's hope.

The other technique is to go somewhat primitive, and set the rules based on the physical port things are plugged into. Never looked into that. Very Windows-98 behaviour. Bad flashbacks to "Sorry, your mouse was last seen in the left hand port, and it's not there, so I'm going to ignore the mouse you've plugged in the right hand port". "New Device! Driver needed for unknown mouse in right hand port" ....
 
I can only assume that it's much harder to implement than we think. Or it would have been done, already. If for no other reason, but to calm down the many emails requesting it, for the last few years.
 
and have _no_ serial number or _all_ have serial number 0000000 etc. -- then there's no way to tell them apart.
...
The other technique is to go somewhat primitive, and set the rules based on the physical port things are plugged into.

The latter you can do by identifying which USB port they're on (the devpath).

I use this (not on solar assistant, just on Linux) to get the devpath for every USB to serial converter:


Bash:
#!/bin/bash

for sysdevpath in $(find /sys/bus/usb/devices/usb*/ -name dev); do
    (
        syspath="${sysdevpath%/dev}"
        devname="$(udevadm info -q name -p $syspath)"
        [[ "$devname" == "bus/"* ]] && exit
        eval "$(udevadm info -q property --export -p $syspath)"
        [[ -z "$ID_SERIAL" ]] && exit
        echo "/dev/$devname - $ID_SERIAL - $sysdevpath"
    )
done

This outputs something like this (all the same CP2102 converters without unique serial):

Code:
/dev/ttyUSB7 - Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001 - /sys/bus/usb/devices/usb1/1-3/1-3.2/1-3.2.2/1-3.2.2:1.0/ttyUSB7/tty/ttyUSB7/dev
/dev/ttyUSB10 - Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001 - /sys/bus/usb/devices/usb1/1-3/1-3.2/1-3.2.3/1-3.2.3:1.0/ttyUSB10/tty/ttyUSB10/dev
/dev/ttyUSB6 - Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001 - /sys/bus/usb/devices/usb1/1-3/1-3.2/1-3.2.1/1-3.2.1:1.0/ttyUSB6/tty/ttyUSB6/dev

Which you can then use to map devices to unique identifiers:

Code:
ACTION=="add", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", SUBSYSTEM=="tty", ATTRS{devpath}=="3.2.2", SYMLINK+="bms3"
ACTION=="add", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", SUBSYSTEM=="tty", ATTRS{devpath}=="3.2.3", SYMLINK+="bms1"
ACTION=="add", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", SUBSYSTEM=="tty", ATTRS{devpath}=="3.2.1", SYMLINK+="bms4"

It might be primitive, but it's not like you move/remove these devices frequently, if at all. And yeah, I do have more than 10 devices :)
 
Last edited:
The latter you can do by identifying which USB port they're on (the devpath).

I use this (not on solar assistant, just on Linux) to get the devpath for every USB to serial converter:


Bash:
#!/bin/bash

for sysdevpath in $(find /sys/bus/usb/devices/usb*/ -name dev); do
    (
        syspath="${sysdevpath%/dev}"
        devname="$(udevadm info -q name -p $syspath)"
        [[ "$devname" == "bus/"* ]] && exit
        eval "$(udevadm info -q property --export -p $syspath)"
        [[ -z "$ID_SERIAL" ]] && exit
        echo "/dev/$devname - $ID_SERIAL - $sysdevpath"
    )
done
You may get the same information by just listing the contents of the directory "/sys/bus/usb-serial/devices/":

Code:
ls -al /sys/bus/usb-serial/devices/
total 0
drwxr-xr-x 2 root root 0 Apr 23 16:42 .
drwxr-xr-x 4 root root 0 Apr 23 16:42 ..
lrwxrwxrwx 1 root root 0 Apr 24 01:20 ttyUSB0 -> ../../../devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.2/1-1.2.2/1-1.2.2.2/1-1.2.2.2:1.0/ttyUSB0
lrwxrwxrwx 1 root root 0 Apr 24 01:20 ttyUSB1 -> ../../../devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.2/1-1.2.2/1-1.2.2.3/1-1.2.2.3:1.0/ttyUSB1
lrwxrwxrwx 1 root root 0 Apr 24 01:20 ttyUSB2 -> ../../../devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.2/1-1.2.2/1-1.2.2.1/1-1.2.2.1.2/1-1.2.2.1.2:1.0/ttyUSB2
lrwxrwxrwx 1 root root 0 Apr 24 01:20 ttyUSB3 -> ../../../devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.2/1-1.2.2/1-1.2.2.4/1-1.2.2.4:1.0/ttyUSB3
lrwxrwxrwx 1 root root 0 Apr 24 01:20 ttyUSB4 -> ../../../devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.2/1-1.2.2/1-1.2.2.1/1-1.2.2.1.3/1-1.2.2.1.3:1.0/ttyUSB4
lrwxrwxrwx 1 root root 0 Apr 24 01:20 ttyUSB5 -> ../../../devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.2/1-1.2.2/1-1.2.2.1/1-1.2.2.1.4/1-1.2.2.1.4:1.0/ttyUSB5
lrwxrwxrwx 1 root root 0 Apr 23 16:42 ttyUSB6 -> ../../../devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.2/1-1.2.2/1-1.2.2.1/1-1.2.2.1.1/1-1.2.2.1.1.1/1-1.2.2.1.1.1:1.0/ttyUSB
6

 
Damn. I guess SA is smarter than I am then :)

It's entirely reasonable that an app would filter the contents of "/dev/" and only show entries it knows how to handle.

The filter probably doesn't extend to more than USB9 then ... to be honest, how many people have got 10 devices to monitor (0 to 9) ? So ... I'm probably getting you to test past that limit. Worth a try.

As I said, this is a long standing problem/feature in Linux (appearing and disappearing hardware), and is _mostly_ solved with udev and similar tools to nail down hardware. It fails badly when you have devices that are all the same USB Product ID (the 1234:ABCD tag bit) and have _no_ serial number or _all_ have serial number 0000000 etc. -- then there's no way to tell them apart. At least you seem to have serial numbers, so there's hope.

The other technique is to go somewhat primitive, and set the rules based on the physical port things are plugged into. Never looked into that. Very Windows-98 behaviour. Bad flashbacks to "Sorry, your mouse was last seen in the left hand port, and it's not there, so I'm going to ignore the mouse you've plugged in the right hand port". "New Device! Driver needed for unknown mouse in right hand port" ....
As @upnorthandpersonal mentioned, instead of using an USB serial number it's possible to identify a physical stick (which does not have a serial number) also by it's current socket location in the USB Hub via the Linux devpath. I've tried it and both methods are working to identify a physical USB stick via udev rules.

But unfortunately, it's not possible to change the so called "kernels default device node names" with udev rules, only additional symlinks can be created (which SA does not show). Until we find out from which source SA is creating the list of available tty devices, I don't see a chance to find a workaround. I've tried different alias variants (single digits, single letters, etc.) but nothing shows up in SA...

I'm sure SA could easily fix this annoying issue. Perhaps others in this forum could also submit requests to SA support to make them aware that we have a major problem with this missing feature. With a bit of luck, this feature request will then be given higher priority at SA 🤷‍♂️

Btw. the SA email addresses:

info@solar-assistant.io
support@solar-assistant.io
 
Last edited:
Tried google but no results.
All I got was lots of hits on this forum, because of "Have you tried dark mode?" on every page that happens to also mention Solar Assistant! :)

I've not seen a setting or config option for Dark Mode, or "follow system theme" in Solar Assistant, maybe it's something to request as a feature if you'd find it useful?
 
Are there a way to config the SA to use Dark Mode screen layout?
Tried google but no results.
Here's a theme for Chrome/Firefox:


Someone else was able to do it on Android with their Chrome settings:


I tried real quick but couldn't get it working my phone.

1746633665548.png
 
I already have DM in Chrome but SA has colors coded and does not change.
Btw. the .css above I can't get it to work.
Have googled. Any step by step recipe and not writing code?
 
I already have DM in Chrome but SA has colors coded and does not change.
Btw. the .css above I can't get it to work.
Have googled. Any step by step recipe and not writing code?
I haven't used it, but it looks like you need to install Stylus to use that theme

1746716870256.png
 
Pressing the "Install" only opens another window and show the CODE for the .css file.
What then?

Edit: Nvm. Yeah not installing "Stylus".
 

diy solar

diy solar
Back
Top