Asystent AI
OH3 współpraca z RS...
 
Powiadomienia
Wyczyść wszystko

OH3 współpraca z RS485 HAT 2-kanały izolowane na SC16is752

3 Wpisów
2 Użytkownicy
2 Reactions
1,369 Wyświetleń
(@andry)
Wpisów: 16
Praktykant
Autor tematu
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 
[#2158]

Mam pytanie. Na moim RPi4 mam zainstalowany OH3 oraz 2-CH RS485 HAT https://www.waveshare.com/2-ch-rs485-hat.htm

Próbuję połączyć się nim przez MODBUS RTU. Jednak po ustawieniu w pliku modbus.things

Bridge modbus:serial:localSerial [port="/dev/ttySC1", baud=9600, stopBits="1", parity="none", dataBits=8, encoding="rtu"]
{
Bridge poller Licznik [ start=0, length=1, refresh=6000, type="holding" ]
{
Thing data Energia [ readStart="0", readValueType="uint16" ]
}}

Na stronie wyświetla pięknie online ale na tym się kończy. Dodam, że ten HAT działa prawidłowo z Node-red na tym samym RPi i mam komunikacje z licznikiem.

 

W logach /var/log/openhab/openhab.log dostaje coś takiego:

2021-01-14 12:34:45.133 [ERROR] [ing.ModbusSlaveConnectionFactoryImpl] - Error connecting connection SerialConnection@7aa846[portName=/dev/ttySC1,port=<null>] for endpoint ModbusSerialSlaveEndpoint@1da4fef[portName=/dev/ttySC1]: Could not get port identifier, maybe insufficient permissions. null
2021-01-14 12:34:45.135 [WARN ] [rt.modbus.internal.ModbusManagerImpl] - Could not connect to endpoint ModbusSerialSlaveEndpoint@1da4fef[portName=/dev/ttySC1] -- aborting request ModbusReadRequestBlueprint@2fa254[slaveId=1,functionCode=READ_MULTIPLE_REGISTERS,start=0,length=1,maxTries=3] [operation ID 69972665-5097-497a-b9d5-71a543bfdb61]

Jest to prawdopodobnie związane z permissions opisanymi w https://www.openhab.org/docs/installation/linux.html#privileges-for-common-peripherals

jednak polecenie w terminalu sudo adduser openhab tty

daje The user `openhab' is already a member of `tty'.

Proszę o pomoc choć być może rozwiązanie jest trywialne ale nie jestem specjalistą ani linuxa ani OH3.


 
Dodane : 14/01/2021 2:01 pm
(@ldywicki)
Wpisów: 78
Kontrybutor
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

Same uprawnienia to jedno, druga rzecz to dodatkowe porty szeregowe które OH powinien widzieć. Standardowe porty, które łapie openHAB to ttyUSB, ttyACM plus kilka innych. Nazwa którą masz ttySC może nie być obsługiwana w domyślnej konfiguracji.

Jako że jesteś na malince podejrzewam że korzystasz z instalacji przez openhabiana. W pliku /etc/default/openhab dodaj do linii EXTRA_JAVA_OPTS tą część "-Dgnu.io.rxtx.SerialPorts=/dev/ttySC1". Jeśli na początku linii jest znak # to go usuń, ponieważ jest to znak komentarza, który powoduje zignorowanie tej linii.

EDIT: Jak by ktoś się zastanawiał jakie nazwy portów są obsługiwane to niestety nie ma tego w oficjalnej dokumentacji i trzeba to wygrzebać ze źródeł biblioteki obsługującej porty szeregowe: https://github.com/NeuronRobotics/nrjavaserial/blob/master/src/main/java/gnu/io/RXTXCommDriver.java#L650


 
Dodane : 14/01/2021 2:21 pm
andry i adrian zareagowali
(@andry)
Wpisów: 16
Praktykant
Autor tematu
Translate
English
Spanish
French
German
Italian
Portuguese
Russian
Chinese
Japanese
Korean
Arabic
Hindi
Dutch
Polish
Turkish
Vietnamese
Thai
Swedish
Danish
Finnish
Norwegian
Czech
Hungarian
Romanian
Greek
Hebrew
Indonesian
Malay
Ukrainian
Bulgarian
Croatian
Slovak
Slovenian
Serbian
Lithuanian
Latvian
Estonian
 

@ldywicki bardzo dziękuję za wskazówki. Zrobiłem wszystko według instrukcji. Zadziałało! 😀

Oryginalnie w tym pliku jest już linia: EXTRA_JAVA_OPTS="-Xms192m -Xmx320m" którą tylko rozszerzyłem zgodnie z radą kolegi.

EXTRA_JAVA_OPTS="-Xms192m -Xmx320m -Dgnu.io.rxtx.SerialPorts=/dev/ttySC1"

Dziękuję także za link do źródeł biblioteki obsługującej porty szeregowe przyda się na przyszłość. 👍 

 

 


 
Dodane : 14/01/2021 6:11 pm
Udostępnij: