Usb relay manager linux

USB Реле типа HID

Который в свою очередь завязан на (http://www.signal11.us/oss/hidapi/). В общем заморочено.

А нельзя управлять этим реле как-нибудь Unixway через /dev/hidraw5?

В общем на коленках собрал и библиотеку libhidapi-hidraw и программку usbrelay.

Device Found type: 16c0 05df path: /dev/hidraw5 serial_number: Manufacturer: www.dcttech.com Product: USBRelay2 Release: 100 Interface: 0 Number of Relays = 2 BITFT_1=0 BITFT_2=0 

Deleted ( 16.02.17 19:32:18 MSK )
Последнее исправление: Deleted 16.02.17 19:33:06 MSK (всего исправлений: 1)

Теперь есть розетка дома, которая включается и выключается вместе с компьютером 🙂

А подскажи, какой модуль подгружается при подключении этого девайса? Взял себе такую платку, но ничего не происходит 🙁

Насколько я понимаю это стандартное HID устройство ввода-вывода Оно в ядре должно быть (современном). У меня оно сразу-же определилось вот так. Я только библиотеку собрал и программу собрал для управления.

Идентификация Производитель: ‎www.dcttech.com Описание: ‎USBRelay2 Класс носителя: ‎Human Interface Device|No Subclass|None Соединение Шина: ‎USB Шина PCI #: ‎6 PCI устройство #: ‎3 ID производителя: ‎0x16c0 ID устройства: ‎0x05df Разн. Модуль: ‎usbhid 

Я уже две купил платы у разных продавцов — работают без нареканий.

Вот что за наркоманы их как HID делают? Ведь CDC значительно удобней.

Обычное поведение людей, для первого что увидел скачивается пример и хренак-хренак модифицируется в продакшен. Как оно там устроено и можно ли по-другому всем пофиг.

Для CDC нужны драйверы в винде, думаю в этом дело.

У меня модуль грузится (попробовал на машинке с Debian и linux 3.2), в dmesg

[342653.244057] usb 9-5: new low-speed USB device number 2 using ohci_hcd [342653.423187] usb 9-5: New USB device found, idVendor=16c0, idProduct=05df [342653.423199] usb 9-5: New USB device strings: Mfr=1, Product=2, SerialNumber=0 [342653.423207] usb 9-5: Product: USBRelay2 [342653.423212] usb 9-5: Manufacturer: www.dcttech.com [342653.447640] usbcore: registered new interface driver usbhid [342653.447642] usbhid: USB HID core driver 

Либа поставлена из репозитория, но утилита просто ничего не выводит.

А, утилита тоже есть в репозитории. Но и с этой тоже пусто.

YAR ★★★★★ ( 26.03.17 12:16:12 MSK )
Последнее исправление: YAR 26.03.17 12:23:51 MSK (всего исправлений: 1)

А вот dmesg на машинке с linux 4.8 уже иначе реагирует:

[ 1192.785479] usb 5-1: new low-speed USB device number 2 using ohci-pci [ 1192.976729] usb 5-1: New USB device found, idVendor=16c0, idProduct=05df [ 1192.976739] usb 5-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0 [ 1192.976745] usb 5-1: Product: USBRelay2 [ 1192.976749] usb 5-1: Manufacturer: www.dcttech.com [ 1192.988768] hid-generic 0003:16C0:05DF.0002: hiddev0,hidraw1: USB HID v1.01 Device [www.dcttech.com USBRelay2] on usb-0000:00:13.0-1/input0 [ 1193.022564] media: Linux media interface: v0.10 [ 1193.061744] Linux video capture interface: v2.00 [ 1193.068930] usbcore: registered new interface driver radio-ma901 

Ну и утилитка зашевелилась:

rain@mpd:~$ sudo usbrelay Device Found type: 16c0 05df path: /dev/hidraw1 serial_number: Manufacturer: www.dcttech.com Product: USBRelay2 Release: 100 Interface: 0 Number of Relays = 2 6H666_1=0 6H666_2=0 

Осталось завести ее и на старых системах.

YAR ★★★★★ ( 26.03.17 12:26:25 MSK )
Последнее исправление: YAR 26.03.17 12:30:12 MSK (всего исправлений: 1)

Читайте также:  Linux посмотреть текущие соединения

Поставил 3.16 с бэкпортов. Там работает. Так чего же ему все же не хватает на 3.2?

Уж не знаю. У меня Linux 4.9.9-nrj-desktop-1rosa-x86_64.

Ну, на 4.9.9 — то понятно. Просто где-то на промежутке 3.8 — 3.16 что-то поменялось и до этого изменения оно не работает. А хотелось прилепить реле на машинки, где вообще пока что 3.2 живет.

Во! Завел. Есть другой проект — https://github.com/pavel-a/usb-relay-hid — вот утилита с него прекрасно работает и на старых ядрах, в том числе и 3.2 из Wheezy.

китайцы кучу девайсов как hid делают, не предназначенных для этого. мне попадались даже hid программаторы. очевидно дело в драйверах.

Т.е. она без библиотеки hidapi работает? Надо попробовать.

Ну, как минимум, оно ее не требовало. При сборке только libusb-dev нужен был.

Бред: для HID тоже «драйвера» нужны. Потому что гребаная мастдайка!

И вообще, на кой хрен ориентироваться на дебилов, у которых вместо операционной системы мастдайка стоит?

Анонимус выше, похоже, правильно сказал: взяли, что под руку попалось, да и наклепали!

А ты потом страдай. Я дня три как-то убил, чтобы разобраться, как работать с турелями — пришлось найти комп с мастдайкой (потому как драйвер к этой железяке только мастдайный был), поставить туда usb-логгер и написать логи подо все действия. Только после этого смог управлялку из-под линукса написать!

Бред: для HID тоже «драйвера» нужны. Потому что гребаная мастдайка!

Неа, не нужны, нужна только софтина, которая будет с устройством общаться.

И вообще, на кой хрен ориентироваться на дебилов, у которых вместо операционной системы мастдайка стоит?

Потому что линуксоидов и маководов очень мало.

нужна только софтина, которая будет с устройством общаться.

И чем это отличается от необходимости установки «драйвера»? Тоже софтина, которая будет с устройством общаться!

Потому что линуксоидов и маководов очень мало.

А гомосятину ты зачем вспомнил?

И чем это отличается от необходимости установки «драйвера»? Тоже софтина, которая будет с устройством общаться!

Драйвер придётся подписывать, иначе винда будет ругаться. Плюс, для его установки нужны права админа. А софтину запустил и пользуйся.

Похожие темы

  • Форум Подсветка HID (2014)
  • Форум открытый релей (2004)
  • Форум закрыть релеи? (2007)
  • Форум USB HID-клавиатура Adafruit Trinket HID Combo (2017)
  • Форум Порекомендуйте USB-реле (2018)
  • Форум hid proxy mode (2021)
  • Форум Linux + Custom USB HID (2018)
  • Форум Вопрос о реле (2014)
  • Форум HID-Кнопка переключения языка (2023)
  • Форум Компиляция общего драйвера HID (2018)

Источник

Installing a USB Relay

Installing a USB Relay images/car_computer/hid_relay_on.jpg

This was fairly easy but not where I wanted to be. I found a library that did a ton of things for me.

There was a python contribution but it broke the build. I spent a few hours trying to get it to build and gave up and just smashed the ugly.

Wrapping C++ code in python isn’t super tough but it takes a lot of time and running through iterations of compilation. Sending it to a process is fairly simple and given the amount of time I will be doing it will give me more time to focus on other things. I’ll come back to this later after I’m out of urgent prototype mode.

Читайте также:  Установка axxon next linux

USB Relay Driver

With HID I was able to see the device/chip in lsusb right away.

I installed the library above from apt and it ran out of the box.

I scripted a tool that will send commands to a sub process. I just need to send and forget. I probably wont use the results of the commands right now. Each time the application loads I will need to get the names of the devices however because I really don’t want that hard coded. I am hard coding each relay because I would like the ability to control things uniquely. I’m probably going to use it to turn on seat heaters in the future as well.

I will say that not everything clicked out of the box. I had to install a few things. Here are just some highlights to my notes which you might be able to follow and if not there are comments below.

apt install firmware-b43-installer apt install git vim openssh-server systemctl enable ssh apt install python3 apt install libpython3.7-dev apt install libhidapi* apt-get install python3-distutils apt install python3-pip git clone https://github.com/darrylb123/usbrelay.git git checkout tags/v0.4 -b v0.4 

Interacting With The Relay

The results come back showing the device with the list of the relays.

Notice this was build with HIDRAW vs HIDUSB lib. I don’t know what the differences are but on some platforms they perform differently.

$> usbrelay Device Found type: 16c0 05df path: /dev/hidraw0 serial_number: Manufacturer: www.dcttech.com Product: USBRelay4 Release: 100 Interface: 0 Number of Relays = 4 QAAMZ_1=0 QAAMZ_2=0 QAAMZ_3=0 QAAMZ_4=0 

I will take the relay names and add them to an array in the code and just replace the numeric ID. The integer at the end is the boolean.

NOTE: It doesn’t hurt to send similar signals to a relay. (or doesn’t seem to) Meaning if it’s on I can send another on and it doesn’t do anything. Same with off.

To get an idea of the code running this:

 if __name__ == "__main__": print("Relay Trip") # get the list of relays result = subprocess.check_output(['usbrelay']) results = result.decode().strip().splitlines() devices = <> for res in results: key, val = res.split('=') devicesUsb relay manager linux = int(val) print(devices) args = parser.parse_args() c1 = args.channel1 c2 = args.channel2 c3 = args.channel3 c4 = args.channel4 for device, state in devices.items(): if device.endswith(f"_1"): subprocess.check_output(['usbrelay', f"="]) if device.endswith(f"_2"): subprocess.check_output(['usbrelay', f"="]) if device.endswith(f"_3"): subprocess.check_output(['usbrelay', f"="]) if device.endswith(f"_4"): subprocess.check_output(['usbrelay', f"="]) 

Below is the test results at prob 1am so don’t mind my groggy voice.

USB Relay on Macbook Pro

I didn’t really know what I was getting into and I do all of my initial research on Mac. So I decided to start there.

Everything is easier on Mac right?

Chipset Variants

There are two variants of USB relays that I am working with. An FTDI and HID version.

The HID version is supposedly able to be picked up by the system as soon as it’s plugged in so that is what I started with.

The data did show me that I was nested. It went through a USB 3.0 hub to a 2.0 hub then down to the device. There was a lot of other things being picked up here that were overlocked. At first I wasn’t sure what I was looking for then saw the name which matched the board. I kinda expected more of a GUID so IDK what will happen if I plug in more of these.

USB 3.0 Bus: Host Controller Driver: AppleUSBXHCISPT PCI Device ID: 0xa12f PCI Revision ID: 0x0031 PCI Vendor ID: 0x8086 USB2.0 Hub: Product ID: 0x2813 Vendor ID: 0x2109 (VIA Labs, Inc.) Version: 90.11 Speed: Up to 480 Mb/sec Manufacturer: VIA Labs, Inc. Location ID: 0x14600000 / 15 Current Available (mA): 500 Current Required (mA): 0 Extra Operating Current (mA): 0 USB 2.0 Hub: Product ID: 0x0801 Vendor ID: 0x1a40 (TERMINUS TECHNOLOGY INC.) Version: 1.00 Speed: Up to 480 Mb/sec Location ID: 0x14640000 / 16 Current Available (mA): 500 Current Required (mA): 100 Extra Operating Current (mA): 0 USB 2.0 BILLBOARD : Product ID: 0x0100 Vendor ID: 0x2109 (VIA Labs, Inc.) Version: 2.01 Serial Number: 0000000000000001 Speed: Up to 480 Mb/sec Manufacturer: VIA Technologies Inc. Location ID: 0x14644000 / 20 Current Available (mA): 500 Current Required (mA): 100 Extra Operating Current (mA): 0 USBRelay4: Product ID: 0x05df Vendor ID: 0x16c0 Version: 1.00 Speed: Up to 1.5 Mb/sec Manufacturer: www.dcttech.com Location ID: 0x14620000 / 25 Current Available (mA): 500 Current Required (mA): 20 Extra Operating Current (mA): 0 

And there it is. USBRelay4

Читайте также:  Linux старый компьютер сервер

Installing a USB Relay images/car_computer/hid_relay_on.jpg

System Report

There is another way to get to this

Installing a USB Relay images/car_computer/system_hardware_usb.jpg

  1. About This Mac
  2. System Report
  3. Hardware > USB

Brew U

Apparently I could have just installed via brew. 😐

$> lsusb 2019-03-18 18:36:56.382 system_profiler[48402:1885449] SPUSBDevice: IOCreatePlugInInterfaceForService failed 0xe00002be Bus 020 Device 015: ID 2109:2813 VIA Labs, Inc. USB2.0 Hub Bus 020 Device 016: ID 1a40:0801 TERMINUS TECHNOLOGY INC. USB 2.0 Hub Bus 020 Device 020: ID 2109:0100 VIA Labs, Inc. USB 2.0 BILLBOARD Serial: 0000000000000001 Bus 020 Device 025: ID 16c0:05df 16c0 USBRelay4 Bus 020 Device 017: ID 05e3:0608 Genesys Logic, Inc. USB2.0 Hub Bus 020 Device 019: ID 046d:c52b Logitech Inc. USB Receiver Bus 020 Device 018: ID 05ac:024f Apple Inc. Matias Backlit Keyboard Serial: FK318VUS Bus 020 Device 027: ID 05ac:12a8 Apple Inc. iPhone Serial: 9dac5dde6e85ef8007a86a42a2785fea667e8bff Bus 020 Device 000: ID 05ac:8600 Apple Inc. iBridge Bus 000 Device 001: ID 2109:0813 VIA Labs, Inc. USB3.0 Hub Bus 000 Device 002: ID 058f:8468 Alcor Micro, Corp. Mass Storage Device Serial: 058F84688461 Bus 000 Device 001: ID 1d6b:ISPT Linux Foundation USB 3.0 Bus Bus 000 Device 001: ID 1d6b:CIAR Linux Foundation USB 3.1 Bus Bus 001 Device 001: ID 1d6b:CIAR Linux Foundation USB 3.1 Bus 

This is much easier to read anyway.

Talking To USB Relay On Mac

This is not going to be as easy as just sending bits over a COM port. I have to walk through a few layers of device controls.

There are some USB specific standards defined that I wont spend time to go into right now:

And here I am stuck. There are no drivers for it so I will bail and go work on Linux for a bit.

Источник

Оцените статью
Adblock
detector