Integracja z openHAB 2

Post Reply
wosso
Posts: 13
Joined: 28 May 2012, 21:37

Integracja z openHAB 2

Post by wosso »

Witam,
od dłuższego czasu zbierałem się za przygotowanie integracji z jakąś wiodącą platformą. Kiedyś nawet zacząłem coś dłubać pod Domoticz, ale po przejrzeniu jak sprawa aktualnie wygląda, stanęło na openHAB 2 - Domoticz raczej jest w tendencji spadkowej jeśli chodzi o popularność, a dodatkowo openHAB jest pisany w Javie, w której czuję się najlepiej.
Przygotowałem plugin (binding) dla openHAB 2 - na razie załączam tylko skompilowaną wersję, źródła opublikuję, jak tylko doprowadzę je do jakiegoś sensownego wyglądu. Plugin, który załączam jest skompilowany dla wersji openHAB 2.4.0-SNAPSHOT, nie pójdzie na Stable. Należy go wrzucić do folderu 'addons', testowałem go tylko pod Windows.
https://www.openhab.org/download/
Starałem się dodać obsługę wszystkich urządzeń, które powstały, z wyjątkiem Odbiornika/Nadajnika podczerwieni, testowałem jednak niestety tylko na systemie Hapcan złożonym z trzech urządzeń: przycisku UNIV 3.1.0.x, przekaźników UNIV 3.2.1.x i Kontrolera RGB UNIV 3.8.0.x (widocznego w systemie jako 3 osobne dimmery + master).

Podstawowe cechy pluginu:
- integracja przez Ethernet Interface UNIV 3.102.0.0 (brak obsługi RS232 - nie przewiduję dopisywania),
- obsługa urządzeń HAPCAN z procesorami UNIV3 i UNIV1 (oprócz nadajnika/odbiornika podczerwieni),
- urządzenie „Ethernet interface” należy dodać i skonfigurować ręcznie, następnie można skorzystać z automatycznego wykrywania modułów do niego podłączonych,
- wykrywanie rodzaju procesora, urządzenia, aplikacji, opisu itp., odczyt napięć,
- id w systemie openHAB w przypadku dodawania ręcznego musi być w postaci AABB, gdzie AA to nr grupy w hex, a BB nr modułu - w przeciwnym razie automatyczne wyszukiwanie będzie ponownie wykrywać taki moduł (dublować go)
- przyciski jako elementy ‘contact’ (stan on/off) oraz ‘trigger’ (zdarzenia triggerów: PRESSED, RELEASED, SHORT_PRESSED, DOUBLE_PRESSED, LONG_PRESSED, HELD_400MS, HELD_4S)
- kontroler RGB widoczny jako 4 dimmery (może później dodam, żeby był widoczny w systemie jako 'Kolor' + 'Master channel' - sam używam poszczególne 3 kanały jako osobne ściemniacze do taśm LED),
- konfiguracja, skrypty itp. jak dla każdego innego pluginu openHAB 2.

Potencjalne problemy jakie przewiduję i wymagają sprawdzenia:
- działanie sprawdzałem tylko dla 3 ww. urządzeń (tylko UNIV3) - przy oprogramowywaniu innych urządzeń lub ich modeli prawdopodobnie zdarzyły się jakieś błędy,
- wykrywanie urządzeń przy ich dużej ilości w systemie,
- urządzenia w systemie wykrywane są komendami kierowanymi do grupy 00 - czyli wszystkich na raz (np. HAPCAN Programator wykrywa urządzenia w każdej grupie osobno), jeśli będzie to powodować problemy to się poprawi.

Nie oprogramowywałem dotąd samego działania openHAB (skrypty) - tylko przygotowałem plugin, więc nauka konfiguracji openHAB dopiero przede mną.

Włączenie logowania/debugowania dla pluginu Hapcan do oddzielnego pliku – może przydać się, żeby pomóc mi zdiagnozować ewentualne problemy:
- w pliku userdata/etc[skrypt forum blokuje sciezki]/org.ops4j.pax.logging.cfg należy dodać:

Code: Select all

# Logger - Hapcan.log
log4j2.logger.hapcan.name = org.openhab.binding.hapcan
log4j2.logger.hapcan.level = DEBUG
log4j2.logger.hapcan.additivity = false
log4j2.logger.hapcan.appenderRefs = hapcan
log4j2.logger.hapcan.appenderRef.event.ref = HAPCAN

# Hapcan.log file appender
log4j2.appender.hapcan.type = RollingRandomAccessFile
log4j2.appender.hapcan.name = HAPCAN
log4j2.appender.hapcan.fileName = ${openhab.logdir}/hapcan.log
log4j2.appender.hapcan.filePattern = ${openhab.logdir}/hapcan.log.%i
log4j2.appender.hapcan.append = true
log4j2.appender.hapcan.layout.type = PatternLayout
log4j2.appender.hapcan.layout.pattern = %d{yyyy-MM-dd HH:mm:ss.SSS} [%-5.5p] [%-36.36c] - %m%n
log4j2.appender.hapcan.policies.type = Policies
log4j2.appender.hapcan.policies.size.type = SizeBasedTriggeringPolicy
log4j2.appender.hapcan.policies.size.size = 8MB
- logi trafiają do pliku userdata/logs/hapcan.log

Przed wgraniem ewentualnej kolejnej wersji pluginu konieczne jest wyczyszczenie cache’u openHAB, poprzez usunięcie przy wyłączonej aplikacji zawartości folderów: userdata/cache i userdata/logs.

Pozdrawiam i proszę o testy,
Marcin
Attachments
org.openhab.binding.hapcan-2.4.0-SNAPSHOT_v0.1.zip
(77.08 KiB) Downloaded 403 times
wosso
Posts: 13
Joined: 28 May 2012, 21:37

Re: Integracja z openHAB 2

Post by wosso »

Kod pluginu na githubie, na razie bez README czy komentarzy niestety.
https://github.com/marcinHapcan/hapcanOpenHAB
Jacek
Posts: 559
Joined: 17 Feb 2007, 18:00

Re: Integracja z openHAB 2

Post by Jacek »

wosso wrote: - wykrywanie urządzeń przy ich dużej ilości w systemie,
- urządzenia w systemie wykrywane są komendami kierowanymi do grupy 00 - czyli wszystkich na raz (np. HAPCAN Programator wykrywa urządzenia w każdej grupie osobno), jeśli będzie to powodować problemy to się poprawi.
Dzięki wosso za plugin.
Obawiam się, że w taki sposób plugin odnajdzie tylko 42 moduły w sieci, ponieważ tak duży jest bufor wiadomości w module Ethernetowym. Nawet teraz Hapcan Programator niestety jest w stanie wyszukać maksymalnie 42 moduły, ale w każdej grupie. Należałoby opracować jakiś nowy algorytm wyszukiwania modułów jeśli jest ich więcej niż 42 w grupie. Pytanie o pojedynczy moduł mogłoby być trochę za wolne.
Regards
Jacek
Marcin
Posts: 200
Joined: 16 Sep 2011, 13:05

Re: Integracja z openHAB 2

Post by Marcin »

Dobra wiadomość od kilkunastu miesięcy. Uruchomię openHAB'a na innym Raspberry i będę testować.
W razie potrzeby mogę Ci pożyczyć do oprogramowania jakieś moduły.
Czekam na rozwój.

P.S. Możesz podrzucić jakieś screen'y z Twojego Panelu?
Pozdrawiam,
Marcin.
wosso
Posts: 13
Joined: 28 May 2012, 21:37

Re: Integracja z openHAB 2

Post by wosso »

Załączam skompilowaną ostatnią wersję (głównie zmienione wykrywanie modułów i odpytywanie o stan wg sugestii Jacka) - odpytywanie po kolei wybranego zakresu grup - tak jak robi to HAPCAN Programator i parę drobnych poprawek, m.in. zapomniałem w konfiguracji o przekaźniku 10-wyjściowym.
Screeny załączam, ale raczej z konfiguracji, bo jak już mówiłem, jakiejś bardziej skomplikowanej konfiguracji nie pisałem jeszcze.
Attachments
Screenshot2.png
Screenshot1.png
org.openhab.binding.hapcan-2.4.0-SNAPSHOT_v0.2.zip
(77.66 KiB) Downloaded 378 times
wosso
Posts: 13
Joined: 28 May 2012, 21:37

Re: Integracja z openHAB 2

Post by wosso »

Screeny
Attachments
Screenshot5.png
Screenshot4.png
Screenshot3.png
wosso
Posts: 13
Joined: 28 May 2012, 21:37

Re: Integracja z openHAB 2

Post by wosso »

I jeszcze 3

Pozdrawiam
Marcin
Attachments
Screenshot8.png
Screenshot7.png
Screenshot6.png
Marcin
Posts: 200
Joined: 16 Sep 2011, 13:05

Re: Integracja z openHAB 2

Post by Marcin »

Witaj.

Uruchomi się na 2.5.0 SNAPSHOT?

Uruchomił się :))) Wersja pluginu V0.1
Pierwsze pytanie:

Nie pobrał mi opisów kanałów z modułów, przy ponad 50 modułach jest kłopot w powtórnym nazywaniem. Da się to jakoś poprawić ?

Dobra robota.

EDIT:

Po zmianie pluginu na V 0.2 nie pobrał mi wszystkich modułów, brakuje ściemniaczy RC i sterowników RGB i nie linkuje mi automatycznie modułów.
Plugin w wersji 0.2 jest na czystym nowym systemie po formacie karty.
Pozdrawiam,
Marcin.
m.n
Posts: 26
Joined: 12 Apr 2019, 07:07

Re: Integracja z openHAB 2

Post by m.n »

Dzień dobry.

Integracja z openHAB to bardzo dobry pomysł. @wosso – dzięki za podjęcie tematu. :!:

Czy ten plugin ma szansę trafić do oficjalnego repozytorium openHAB? Gdyby trafił, to zastosowanie HAPCAN-a byłoby bajecznie proste nawet dla zwykłego użytkownika.
· Mariusz ·
m.n
Posts: 26
Joined: 12 Apr 2019, 07:07

Re: Integracja z openHAB 2

Post by m.n »

Marcin wrote:Po zmianie pluginu na V 0.2 nie pobrał mi wszystkich modułów, brakuje ściemniaczy RC i sterowników RGB i nie linkuje mi automatycznie modułów.
Plugin w wersji 0.2 jest na czystym nowym systemie po formacie karty.
Ja próbuję instalować plugin w wersji 0.2 na publicznej wersji openHAB 2.4.0. W logu openHAB jest zalogowany wyjątek – niespełnione zależności:
openHAB log wrote:2019-04-12 15:01:35.972 [WARN ] [org.apache.felix.fileinstall ] - Error while starting bundle: file:/usr/share/openhab2/addons/org.openhab.binding.hapcan-2.4.0-SNAPSHOT.jar
org.osgi.framework.BundleException: Could not resolve module: org.openhab.binding.hapcan [13]
Unresolved requirement: Import-Package: org.apache.commons.lang
Może to jest przyczyna?
· Mariusz ·
Marcin
Posts: 200
Joined: 16 Sep 2011, 13:05

Re: Integracja z openHAB 2

Post by Marcin »

Witam.
Czy rozwinąłeś dalej plugin? Myślę o porzuceniu Domoticza na rzecz OpenHaba.
Pozdrawiam,
Marcin.
lukasz
Posts: 2
Joined: 13 Jan 2021, 14:05

Re: Integracja z openHAB 2

Post by lukasz »

Cześć,
Trafiłem całkiem przypadkiem na ten temat szukając w polskim internecie hasła "openhab".

Generalnie - aby dodatek był widoczny dla ludzi w OH potrzeba go opublikować w marketplace (https://marketplace.eclipse.org/taxonom ... 4396/title). Na chwilę obecną ze względu na zmiany w organizacji projektu i odejście z fundacji Eclipse można się spodziewać zmian w tym obszarze.
Dodatek który jest rozdzielny z opasłym repozytorium openhaba jest po prostu łatwiejszy do utrzymania dla osób, które nie zajmują się nim na co dzień. Wszystkie moje wtyczki są w jednym repozytorium niezależnym od tego głównego: http://github.com/connectorio/connectorio-addons

Druga kwestia - integracja CAN + openHAB. Robiłem to w zeszłym roku. Dla jednego klienta pisałem integrację sterowników systemu grzewczego opartego o CANopen (źródła dodatku w linku powyżej). Obsługa CAN w openHAB jest możliwa, w moim przypadku całość idzie przez socketcan na adapter USB skąd już trafia na magistralę. Wiem że dla windowsa to średnie rozwiązanie, dlatego trzeba by się pochylić nad opcją RS232 i bezpośrednim dostępem do portu szeregowego.
Nie przyglądałem się jeszcze protokołowi który jest w hapcan, podejrzewam że nie jest aż tak rozbudowany jak CANopen i da radę go ogarnąć. :-)
Jacek
Posts: 559
Joined: 17 Feb 2007, 18:00

Re: Integracja z openHAB 2

Post by Jacek »

Łukasz wyszedł z propozycja w odrębnym wątku.
viewtopic.php?f=3&t=959
Regards
Jacek
Post Reply