hyperion-project / hyperion.ng

The successor to Hyperion aka Hyperion Next Generation
https://hyperion-project.org/
MIT License
3.11k stars 384 forks source link

adalight serial usb does not show up in GUI #1458

Closed ChuckNorris9939 closed 2 years ago

ChuckNorris9939 commented 2 years ago

Bug report

My Arduino Nano serial connection does not show up here: image I flashed my Arduino Nano with this Sketch https://github.com/hyperion-project/hyperion.ng/blob/master/assets/firmware/arduino/adalight/adalight.ino

I am running latest hyperion.ng from https://hub.docker.com/r/sirfragalot/hyperion.ng in my docker enviroment in an LXC Container on Proxmox(should be no Problem, because i am running similar setup with homeassistant and an Zigbee serial device) I passed the ttyUSB0 Device by adding devices:

Steps to reproduce

passthrough an Arduino Nano through docker container.

What is expected?

ttyUSB0 getting recognized as an adalight device in the web gui

What is actually happening?

no serial device gets recognized.

System

Hyperion Server:

Hyperion Server OS:

Lord-Grey commented 2 years ago

@ChuckNorris9939 This has been already addressed via PR #1452

Just to give you some background what is happening:

Given that many users were configuring TTYs or invalid serial devices (and opened cases and forum posts), Hyperion currently only presents serial devices with a defined vendor identifier. Devices without vendor-ID are suppressed. Unfortunately, it seems that some OS (e.g. WebOS on LG and maybe the OS you are using) are not populating the vendor-ID which results in a "No devices discovered" message.

With the above PR, the logic has been changed that way that the "standard" user is still hindered from misconfigurations, while in "Expert" settings level, all devices found are presented. Given a docker setup is already in the "expert" league, I am confident that you will not do any misconfigurations... Hoping that this is a good compromise between usability and non standard setups.

You might try the PR and report back, if it works as expected.

Alternatively, you might check, if a udev definition helps in the interim. udevs are supported too.

ChuckNorris9939 commented 2 years ago

Thanks, it works in docker using your PR: image

No clue why its not getting any vendor ID's even when im running the conatiner in Privileged mode. Also i should have only ttyUSB0 and no ttyUSB1 inside in the Container. I also tested with this device: /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0, but it dont show up. But it works fine, i can control the Arduino Nano now.

Romanchuk commented 2 years ago

@ChuckNorris9939 Hello, could you share your setup? Im using raspberry PI 4 with hassos and hyperion addon. It can't find any usb led devices...

Romanchuk commented 2 years ago

@ChuckNorris9939

I found devices in expert mode but any way i got:

Device disabled, device 'adalight' signals error: 'Operation not permitted'

 2022-07-31T10:02:39.854Z [LEDDEVICE|First LED Hardware instance] (DEBUG) (LedDevice.cpp:135:enable()) Enable device adalight'
2022-07-31T10:02:39.854Z [LEDDEVICE|First LED Hardware instance] (INFO) Opening UART: ttyUSB0
2022-07-31T10:02:39.855Z [LEDDEVICE|First LED Hardware instance] (DEBUG) (ProviderRs232.cpp:162:tryOpen()) _rs232Port.open(QIODevice::ReadWrite): ttyUSB0, Baud rate [115200]bps
2022-07-31T10:02:39.917Z [LEDDEVICE|First LED Hardware instance] (DEBUG) (ProviderRs232.cpp:167:tryOpen()) portName:          ttyUSB0
2022-07-31T10:02:39.917Z [LEDDEVICE|First LED Hardware instance] (DEBUG) (ProviderRs232.cpp:168:tryOpen()) systemLocation:    /dev/ttyUSB0
2022-07-31T10:02:39.917Z [LEDDEVICE|First LED Hardware instance] (DEBUG) (ProviderRs232.cpp:169:tryOpen()) description:       
2022-07-31T10:02:39.917Z [LEDDEVICE|First LED Hardware instance] (DEBUG) (ProviderRs232.cpp:170:tryOpen()) manufacturer:      
2022-07-31T10:02:39.917Z [LEDDEVICE|First LED Hardware instance] (DEBUG) (ProviderRs232.cpp:171:tryOpen()) vendorIdentifier:  0x0
2022-07-31T10:02:39.917Z [LEDDEVICE|First LED Hardware instance] (DEBUG) (ProviderRs232.cpp:172:tryOpen()) productIdentifier: 0x0
2022-07-31T10:02:39.917Z [LEDDEVICE|First LED Hardware instance] (DEBUG) (ProviderRs232.cpp:173:tryOpen()) serialNumber:      
2022-07-31T10:02:39.926Z [LEDDEVICE|First LED Hardware instance] (ERROR) Device disabled, device 'adalight' signals error: 'Operation not permitted'
2022-07-31T10:02:39.928Z [LEDDEVICE|First LED Hardware instance] (DEBUG) (LedDevice.cpp:176:enable()) Device's enablement failed - Start retry timer. Retried already done [3], isEnabled: [0]
Lord-Grey commented 2 years ago

@Romanchuk The user running Hyperion does not have proper access rights to the device. Try to add the user to the „dialout“ group.

Romanchuk commented 2 years ago

@Lord-Grey Thanks for fast answer! What exactly i need to do? Ssh, command? I'm not a Linux guy.

Lord-Grey commented 2 years ago

@Romanchuk Unfortunately, I am not familiar with Hassos. I can only give you a pointer in which direction you need to investigate further (maybe with the Hassos community).