Brak odczytu zmienn...
 
Powiadomienia
Wyczyść wszystko

Brak odczytu zmiennych modbusowych coils

Tom01
(@tom01)
Młodzik

Testuję openHAB-a i natrafiłem na dziwaczny problem, może ktoś się spotkał? Otóż nie odczytuje zmiennych modbusowych, ale tylko jednobitowych (coils). Zdefiniowałem obiekty modbus:tcp, modbus:poller i modbus:data oczywiście z powiązaniami jedno do drugiego. Następnie tworzę rzecz np typu switch i dupa. Zapisuje bez problemu, ale nie odczytuje w przypadku zmiany stanu w urządzeniu modbus. W przypadku zmiennych typu registers jest poprawny odczyt i zapis w obie strony. Oczywiście komórka w urządzeniu jest typu read/write, typy się zgadzają itd. Robiłem to setki razy na różnym sofcie, ale tu poległem zupełnie.

Konfiguracja w OH jest banalna, podanie nr rejestru, typ danych i tyle. Nie ma gdzie się pomylić. Tym bardziej, że identyczna konfiguracja przy typie registers, działa, tylko coils coś połowicznie. Zrozumiałbym, jakby zapis nie chodzi, ale odczyt??? Sprawdzane przy dwóch różnych urządzeniach komunikujących się modbusem i w obu jest tak samo, więc to nie problem protokołu po stronie urządzenia, a samego openHAB-a.

Jakby ktoś miał pomysł, bardzo proszę o informację.

PS. Wersja najnowsza, wczoraj postawiona z gotowego obrazu.

Cytuj
Autor tematu Dodane : 21/01/2021 5:35 pm
adrian
(@adrian)
Prezes Zasłużony dla Forum, Patron Strony

Może wklej co tam masz - może czegoś nie widzisz?

Tego Switch'a to musisz definiować jako Thing? nie możesz od razu jako Item i korzystać z Thing data od modbus?

To raczej nie jest problem, ale tak mnie zastanawia dlaczego tak robisz/łeś

pzdr.a

 

OdpowiedzCytuj
Dodane : 21/01/2021 6:24 pm
Tom01
(@tom01)
Młodzik

Mam tak:

Definicje po kolei:

UID: modbus:tcp:06554cc59c
label: WAGO PLC 750-8202
thingTypeUID: modbus:tcp
configuration:
timeBetweenTransactionsMillis: 60
connectMaxTries: 1
reconnectAfterMillis: 0
port: 502
timeBetweenReconnectMillis: 0
host: 192.168.0.60
connectTimeoutMillis: 10000
id: 1
enableDiscovery: true


UID: modbus:poller:06554cc59c:9872adddc8
label: Odczyt rejestrów PLC światła
thingTypeUID: modbus:poller
configuration:
length: 1
start: 19656
refresh: 500
maxTries: 3
cacheMillis: 50
type: coil
bridgeUID: modbus:tcp:06554cc59c


UID: modbus:data:06554cc59c:d423e486d7
label: Przekaźnik 1
thingTypeUID: modbus:data
configuration:
readValueType: bit
writeTransform: default
writeType: coil
readStart: "19656"
updateUnchangedValuesEveryMillis: 1000
writeValueType: bit
writeMultipleEvenWithSingleRegisterOrCoil: false
writeMaxTries: 3
writeStart: "19656"
bridgeUID: modbus:poller:06554cc59c:9872adddc8


OdpowiedzCytuj
Autor tematu Dodane : 21/01/2021 6:33 pm
Tom01
(@tom01)
Młodzik

W channels obiektu modbus:data jest stworzony kanał value as switch. Jest też widoczny w Items. No i działa jak napisałem na początku. Przełącza zmienną, ale nie pokazuje jej zmian.

 

Nie bardzo rozumiem sformułowania: "Tego Switch'a to musisz definiować jako Thing? nie możesz od razu jako Item i korzystać z Thing data od modbus?" Mogę oczywiście zrobić switcha jako Item, ale nie widzę sposobu jak go spiąć z obiektem Things.

 

PS. Ok, już wiem jak zrobić link, ale nie różni się od zrobienia "w drugą stronę". Struktura taka sama, tylko przy stworzeniu od strony channels, item switch tworzy się od razu sam.

OdpowiedzCytuj
Autor tematu Dodane : 21/01/2021 6:34 pm
adrian
(@adrian)
Prezes Zasłużony dla Forum, Patron Strony

Hm.... od strony OH UI w zasadzie mam identyczne. Natomiast, ja konfiguruje sobie wszystko w pliku - szybciej dla mnie niż w UI. Może spróbuj skonfigurować tego PLC poza UI - na próbę

Wrzucam taki minimalny Thing 

Bridge modbus:tcp:plc "PLC Bridge" [ host="192.168.2.147", port=502, id=1 ] {
       Bridge poller outputs [ start=2001, length=29, refresh=1000, type="coil" ] {
           Thing data m001 "Marker M001" [ readStart="2001", readValueType="bit", writeStart="1", writeValueType="bit", writeType="coil" ]
       }
}
OdpowiedzCytuj
Dodane : 21/01/2021 7:17 pm
Tom01
(@tom01)
Młodzik

Coś ze składnią jest nie tak. Mógłbyś pomóc? Będzie zapewne 100x szybciej niż ja się dokopię.

 Zrzut 2021 01 21 19 24 39
OdpowiedzCytuj
Autor tematu Dodane : 21/01/2021 7:25 pm
Tom01
(@tom01)
Młodzik

@adrian, usunąłem wszystko co stworzyłem w czasie testu, poklikałem jeszcze raz IDENTYCZNIE i działa. Czary.

OdpowiedzCytuj
Autor tematu Dodane : 21/01/2021 7:34 pm
adrian
(@adrian)
Prezes Zasłużony dla Forum, Patron Strony

@tom01 🙂

- ostatnio jak pomagałem znajomemu, to odczyty mu skakały 0,1,0,1 - zrobiliśmy reboot serwera i wszystko się ustabilizowało - też czary-mary

Co do mojego przykładu to robisz plik plc.things z tą teścią co Ci podałem i wgrywasz do /etc/openhab/things - nie przez OH UI

OdpowiedzCytuj
Dodane : 21/01/2021 7:41 pm
Tom01
(@tom01)
Młodzik

Właśnie weryfikuję czy warto się przesiadać z Iobrokera. Na nim takich cyrków nie miałem w ogóle, a używam go kilka lat. Natomiast jest parę cech, która skłania do poszukiwania innego rozwiązania, choćby natywny habpanel, który na Iobrokerze jest portowany.

Przy okazji, mogę zapytać o inną rzecz?

- Czy istnieje sposób aby zbindować bramkę Z-Way? Z tego co zauważyłem, można na OH postawić taką bramkę, ale nie chcę łączyć funkcji. No i na swojej mam skonfigurowanych kilkadziesiąt urządzeń, nie bardzo chcę robić jeszcze raz. W Iobrokerze mam wtyczkę do node-red i proste adresowanie urządzeń z-wave.

OdpowiedzCytuj
Autor tematu Dodane : 21/01/2021 7:49 pm
adrian
(@adrian)
Prezes Zasłużony dla Forum, Patron Strony

OHv3 jest z jakieś 2 miesiące - jeszcze chwilę potrzebuje, żeby się ustabilizować, bo zostało zrobione trochę grubszych zmian

Z-Wave, nie wiem czy potrafię odpowiedzieć na Twoje pytanie, ale tak: wkładasz z-wave adapter do serwera, instalujesz binding z-wave, konfigurujesz go (w zasadzie które USB) i OH powinien ściągnąć z adaptera wszystkie zapisane w nim już urządzenia

Później do zrobienia odpowiednio Item pod odczytane urządzenia - tutaj trochę manualnej pracy

OdpowiedzCytuj
Dodane : 21/01/2021 7:54 pm
Tom01
(@tom01)
Młodzik

Niestety, tak nie zadziała, bo mam Z-Way (nie Z-Wave) w postaci modułu do Pi, nie gwizdek USB i cały system bramki w postaci obrazu. W sytuacji jeśli nie ma metody z poziomu samego OH, istnieje Node-Red do OH? W bindings nie widać.

EDIT: Okazuje się, że binding Z-Way umożliwia jak najbardziej połączenie z serwerem Z-Way i automagiczny import wszystkich urządzeń do sekcji Things.

OdpowiedzCytuj
Autor tematu Dodane : 21/01/2021 7:57 pm
adrian
(@adrian)
Prezes Zasłużony dla Forum, Patron Strony

@tom01 okay, napisałeś w pytaniu na końcu z-wave więc zrozumiałem, że o z-wave pytałeś, pzdr.

OdpowiedzCytuj
Dodane : 21/01/2021 8:41 pm
Alien
(@alien)
Majster

@tom01
Node Red możesz z poziomu openhabiana zainstalować, Optional components -> Node Red

OdpowiedzCytuj
Dodane : 22/01/2021 9:40 pm
Tom01
(@tom01)
Młodzik
Dodane przez: @alien

@tom01
Node Red możesz z poziomu openhabiana zainstalować, Optional components -> Node Red

Dzięki, zdążyłem to odkryć. 🙂

OdpowiedzCytuj
Autor tematu Dodane : 22/01/2021 10:01 pm
Udostępnij: