Zabrałem się za integrację rekuperatora firmy jan-gaz z openhab.
Openhab jest na Raspberry Pi 3B+ , do testów użyłem konta openhabian.
Fizycznie używam najtańszego konwertera rs486 na USB
Rekuperator posiada interfejs modbus ascii i używając oprogramowania modpoll 3.10 - FieldTalk(tm) Modbus(R) Master Simulator jestem w stanie odczytywać i zapisywać rejestry.
Ale już konfiguracja w Openhab generuje błędy typu:
2022-01-01 20:59:56.772 [ERROR] [ing.ModbusSlaveConnectionFactoryImpl] - Error connecting connection SerialConnection@e50ebb[portName=/dev/ttyUSB1,port=<null>] for endpoint ModbusSerialSlaveEndpoint@1589d43[portName=/dev/ttyUSB1]: Could not get port identifier, maybe insufficient permissions. null
2022-01-01 20:59:56.774 [WARN ] [rt.modbus.internal.ModbusManagerImpl] - Could not connect to endpoint ModbusSerialSlaveEndpoint@1589d43[portName=/dev/ttyUSB1] -- aborting request ModbusReadRequestBlueprint@6e7239[slaveId=1,functionCode=READ_MULTIPLE_REGISTERS,start=64903,length=1,maxTries=3] [operation ID 0d9e841e-f658-495b-8143-f73fa2b9c66c]
Macie jakieś pomysły?
User systemowy jest już w grupie 5(tty),20(dialout)
Jan-gaz a właściwie sterownik UCS ERC22 mam podpięte w OH3. Sprawdź uprawnienia użytkownika do portu ttyUSB dla użytkownika openhab, a po drugie to w /etc/default/openhab sprawdź czy jest port EXTRA_JAVA_OPTS="-Dgnu.io.rxtx.SerialPorts=/dev/usb2:/dev/ttyUSB3:/dev/USB1"
@jarn, Dzięki 2 podejście i faktycznie nie miałem tych parametrów ustawionych.
Mam kolejne pytania:
1. Jak włączać i wyłączać rekuperator. Odpowiedzialny za to jest rejestr 64641 jest typu init16 holding register. Odczyt 5-włączony 0- wyłączony, ale zapis jest już kodem 85 i 170. Jak zdefiniować thing/item, żeby to obsłużyć ON-OFF? Zrobić konwersję Read/Write Transform czy użyć innego sposobu ?
2. W sterowniku w Jan-gaz jest duża rozpiętość rejestrów, np odczyty temperatur są pod rejestrami 64896 a prędkości wentylatorów pod rejestrami 65219. W Modbus poll mogę jednocześnie odczytywać 8 rejestórw init16. Jak zdefiniować Modbus poll żeby dobrać się do tak skrajnych rejestrów ?
Załączam dokumentacją jaką dostałem do sterownika.
@jarn, Dzięki 2 podejście i faktycznie nie miałem tych parametrów ustawionych.
Mam kolejne pytania:
1. Jak włączać i wyłączać rekuperator. Odpowiedzialny za to jest rejestr 64641 jest typu init16 holding register. Odczyt 5-włączony 0- wyłączony, ale zapis jest już kodem 85 i 170. Jak zdefiniować thing/item, żeby to obsłużyć ON-OFF? Zrobić konwersję Read/Write Transform czy użyć innego sposobu ?
2. W sterowniku w Jan-gaz jest duża rozpiętość rejestrów, np odczyty temperatur są pod rejestrami 64896 a prędkości wentylatorów pod rejestrami 65219. W Modbus poll mogę jednocześnie odczytywać 8 rejestórw init16. Jak zdefiniować Modbus poll żeby dobrać się do tak skrajnych rejestrów ?
Załączam dokumentacją jaką dostałem do sterownika.
Odnośnie sterowania mam tylko zrobione sterowanie prędkością wentylatorów. Pool holding register 65223 lenght 1. Analogiczne modbus data rejestr 65223 uint16.