Я за самоличную установку сервисов, а не накатывание их из готового образа, так я порой узнаю что-то новое и в целом понимаю, что и как работает, анализирую почему не поднимается и что нужно чтобы все заработало. Сегодня у меня будет вспоминание, про OpenHAB, т.е. как поставить OpenHAB на Ubuntu 22.04 Server. Хочу посмотреть, что с прошлого раза изменилось, давным давно я делал себе заметку "Как поставить OpenHAB на Raspberry Pi 3 Model B", но увы если взять ее за основу, ссылка по которой скачивается на 09.02.2024 более не действительна, по сути осталась только заметка которая уже бесполезна, просто показывает что было тогда, сейчас все по-другому. Это заметка будет не последней, а все что у меня сделано на Domoticz по мере возможности попробую разобрать в OpenHAB, вдруг понравится или не стоит даже тратить не это время.

Шаг №1: Обновляю систему до самого актуального состояния в рамках текущего LTS релиза:

ekzorchik@srv-home:~$ sudo apt-get update && sudo apt-get upgrade -y && sudo apt-get dist-upgrade -y && sudo apt-get autoremove -y
ekzorchik@srv-home:~$ apt-cache search oracle-java8-jdk
ekzorchik@srv-home:~$ пакета нет

применяю заметку: "Разбор, как установить Java on Ubuntu 22.04"

Шаг №2: Настройки Locale:

sudo rm -f /etc/localtime
sudo ln -s /usr/share/zoneinfo/Europe/Moscow /etc/localtime
sudo locale-gen en_US.UTF-8
echo "LC_ALL="en_US.UTF-8"" | sudo -s tee /etc/default/locale
echo "LANG="en_US.UTF-8"" | sudo tee -a /etc/default/locale
echo "LANGUAGE="en.US.UTF-8"" | sudo tee -a /etc/default/locale

Шаг №3: Устанавливаю OpenHAB и OpenHAB Addons:

ekzorchik@srv-home:~$ curl -fsSL "https://openhab.jfrog.io/artifactory/api/gpg/key/public" | gpg --dearmor > openhab.gpg
ekzorchik@srv-home:~$ sudo mkdir /usr/share/keyrings
mkdir: cannot create directory ‘/usr/share/keyrings’: File exists
ekzorchik@srv-home:~$ sudo mv openhab.gpg /usr/share/keyrings
ekzorchik@srv-home:~$ sudo chmod u=rw,g=r,o=r /usr/share/keyrings/openhab.gpg
ekzorchik@srv-home:~$ sudo apt-get install -y apt-transport-https
ekzorchik@srv-home:~$ echo 'deb [signed-by=/usr/share/keyrings/openhab.gpg] https://openhab.jfrog.io/artifactory/openhab-linuxpkg stable main' | sudo tee /etc/apt/sources.list.d/openhab.list
deb [signed-by=/usr/share/keyrings/openhab.gpg] https://openhab.jfrog.io/artifactory/openhab-linuxpkg stable main
ekzorchik@srv-home:~$
ekzorchik@srv-home:~$ sudo apt-get update && sudo apt-get install -y openhab openhab-addons
[openHAB] Please use the following commands to launch openHAB on a system restart.
            sudo /bin/systemctl daemon-reload
            sudo /bin/systemctl enable openhab.service
[openHAB] You can start openHAB manually by executing the command:
            sudo /bin/systemctl start openhab.service
[openHAB] WARNING: We were unable to detect Java 17 on your system. This is needed before openHAB can be started.
[openHAB] Please install the current version of Java 17 or check the openHAB documentation for details.
Setting up zip (3.0-12build2) ...
Setting up openhab-addons (4.1.1-1) ...
Processing triggers for man-db (2.10.2-1) ...
Scanning processes...
Scanning linux images...
Running kernel seems to be up-to-date.
No services need to be restarted.
No containers need to be restarted.
No user sessions are running outdated binaries.
No VM guests are running outdated hypervisor (qemu) binaries on this host.
ekzorchik@srv-home:~$

Шаг №4: Снимаю комментарии с параметров работы OpenHAB и указываю IPадрес текущей системы на котором будет работать OpenHAB:

ekzorchik@srv-home:~$ sudo nano /etc/default/openhab
OPENHAB_HTTP_PORT=8080
OPENHAB_HTTPS_PORT=8443
OPENHAB_HTTP_ADDRESS=172.33.33.117
OPENHAB_BACKUPS=/var/lib/openhab/backups
EXTRA_JAVA_OPTS=""

OPENHAB_HOME=/usr/share/openhab
OPENHAB_CONF=/etc/openhab
OPENHAB_RUNTIME=/usr/share/openhab/runtime
OPENHAB_USERDATA=/var/lib/openhab
OPENHAB_LOGDIR=/var/log/openhab
OPENHAB_USER=openhab
OPENHAB_GROUP=openhab

Шаг №5: Затем активирую, дабы сервис OpenHAB стартовал автоматически вместе с системой:

ekzorchik@srv-home:~$ sudo systemctl status openhab.service
○ openhab.service - openHAB - empowering the smart home
     Loaded: loaded (/lib/systemd/system/openhab.service; disabled; vendor preset: enabled)
     Active: inactive (dead)
       Docs: https://www.openhab.org/docs/
             https://community.openhab.org
ekzorchik@srv-home:~$ sudo systemctl daemon-reload
ekzorchik@srv-home:~$ sudo systemctl enable openhab.service
Created symlink /etc/systemd/system/multi-user.target.wants/openhab.service → /lib/systemd/system/openhab.service.
ekzorchik@srv-home:~$ sudo systemctl start openhab.service
ekzorchik@srv-home:~$ sudo systemctl status openhab.service
● openhab.service - openHAB - empowering the smart home
     Loaded: loaded (/lib/systemd/system/openhab.service; enabled; vendor preset: enabled)
     Active: activating (auto-restart) (Result: exit-code) since Fri 2024-02-09 10:08:45 MSK; 1s ago
       Docs: https://www.openhab.org/docs/
             https://community.openhab.org
    Process: 4646 ExecStart=/usr/share/openhab/runtime/bin/karaf ${OPENHAB_STARTMODE} (code=exited, status=1/FAILURE)
   Main PID: 4646 (code=exited, status=1/FAILURE)
        CPU: 234ms

Feb 09 10:08:45 srv-home systemd[1]: openhab.service: Failed with result 'exit-code'.
ekzorchik@srv-home:~$

Шаг №6: Так почему-то не запустился сервис, разбираюсь:

ekzorchik@srv-home:~$ cat /etc/passwd | grep openhab
openhab:x:114:119:openhab runtime user,,,:/var/lib/openhab:/bin/false
ekzorchik@srv-home:~$

Смотрю логи, в каталоге /var/log/openhab ничего нет, а вот в выводе:

ekzorchik@srv-home:~$ journalctl -xe
Automatic restarting of the unit openhab.service has been scheduled, as the result for
░░ the configured Restart= setting for the unit.
Feb 09 10:21:21 srv-home systemd[1]: Stopped openHAB - empowering the smart home.
░░ Subject: A stop job for unit openhab.service has finished
░░ Defined-By: systemd
░░ Support: http://www.ubuntu.com/support
░░
░░ A stop job for unit openhab.service has finished.
░░
░░ The job identifier is 3783 and the job result is done.
Feb 09 10:21:21 srv-home systemd[1]: Started openHAB - empowering the smart home.
░░ Subject: A start job for unit openhab.service has finished successfully
░░ Defined-By: systemd
░░ Support: http://www.ubuntu.com/support
░░
░░ A start job for unit openhab.service has finished successfully.
░░
░░ The job identifier is 3783.
Feb 09 10:21:21 srv-home karaf[5664]: JVM must be version 17. JVM version 11 is unsupported (JAVA_HOME=/usr/lib/jvm/java-11->
Feb 09 10:21:21 srv-home systemd[1]: openhab.service: Main process exited, code=exited, status=1/FAILURE
░░ Subject: Unit process exited
░░ Defined-By: systemd
░░ Support: http://www.ubuntu.com/support
░░
░░ An ExecStart= process belonging to unit openhab.service has exited.
░░
░░ The process' exit code is 'exited' and its exit status is 1.
Feb 09 10:21:21 srv-home systemd[1]: openhab.service: Failed with result 'exit-code'.
░░ Subject: Unit failed
░░ Defined-By: systemd
░░ Support: http://www.ubuntu.com/support
░░
░░ The unit openhab.service has entered the 'failed' state with result 'exit-code'.
ekzorchik@srv-home:~$

вижу в выводе:

Feb 09 10:21:21 srv-home karaf[5664]: JVM must be version 17. JVM version 11 is unsupported (JAVA_HOME=/usr/lib/jvm/java-11->
ekzorchik@srv-home:~$ java --version
openjdk 11.0.21 2023-10-17
OpenJDK Runtime Environment (build 11.0.21+9-post-Ubuntu-0ubuntu122.04)
OpenJDK 64-Bit Server VM (build 11.0.21+9-post-Ubuntu-0ubuntu122.04, mixed mode, sharing)
ekzorchik@srv-home:~$

Так, нужно поставить JVM 17, вопрос как это сделать?

Шаг №7: Устанавливаю OpenJDK 17 JDK & JRЕ, пакеты есть в дефолтных репозитариях Ubuntu 22.04 Server:

ekzorchik@srv-home:~$ sudo apt-get install -y openjdk-17-jdk openjdk-17-jre
ekzorchik@srv-home:~$ java --version
openjdk 17.0.9 2023-10-17
OpenJDK Runtime Environment (build 17.0.9+9-Ubuntu-122.04)
OpenJDK 64-Bit Server VM (build 17.0.9+9-Ubuntu-122.04, mixed mode, sharing)
ekzorchik@srv-home:~$
ekzorchik@srv-home:~$ javac -version
javac 17.0.9
ekzorchik@srv-home:~$

Шаг №8: Возвращаюсь к запуску сервиса OpenHAB:

ekzorchik@srv-home:~$ sudo systemctl daemon-reload
ekzorchik@srv-home:~$ sudo systemctl enable openhab.service
ekzorchik@srv-home:~$ sudo systemctl start openhab.service
ekzorchik@srv-home:~$ sudo systemctl status openhab.service
● openhab.service - openHAB - empowering the smart home
     Loaded: loaded (/lib/systemd/system/openhab.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2024-02-09 10:26:26 MSK; 1min 55s ago
       Docs: https://www.openhab.org/docs/
             https://community.openhab.org
   Main PID: 13043 (java)
      Tasks: 112 (limit: 4558)
     Memory: 1.4G
        CPU: 53.484s
     CGroup: /system.slice/openhab.service
             └─13043 /usr/bin/java -XX:-UsePerfData -Dopenhab.home=/usr/share/openhab -Dopenhab.conf=/etc/openhab -Dopenhab.>

Feb 09 10:26:26 srv-home systemd[1]: openhab.service: Scheduled restart job, restart counter is at 98.
Feb 09 10:26:26 srv-home systemd[1]: Stopped openHAB - empowering the smart home.
Feb 09 10:26:26 srv-home systemd[1]: Started openHAB - empowering the smart home.
lines 1-15/15 (END)

Шаг №9: Проверяю, что сервисы поднялись и прослушивают порты в системе:

ekzorchik@srv-home:~$ sudo netstat -tulpn | grep java
tcp6       0      0 172.33.33.117:8080      :::*                    LISTEN      13907/java
tcp6       0      0 127.0.0.1:37131         :::*                    LISTEN      13907/java
tcp6       0      0 :::5007                 :::*                    LISTEN      13907/java
tcp6       0      0 127.0.0.1:8101          :::*                    LISTEN      13907/java
tcp6       0      0 172.33.33.117:8443      :::*                    LISTEN      13907/java
udp6       0      0 :::5353                 :::*                                13907/java
udp6       0      0 172.33.33.117:44837     :::*                                13907/java
udp6       0      0 :::1900                 :::*                                13907/java
ekzorchik@srv-home:~$

Шаг №10: Отлично, теперь могу произвести обращение к сервису OpenHAB через браузер к IP&DNS адресу текущей системы, в качестве URLадреса использую http://IP&DNS:8080 после URL ссылка трансформируется в "http://172.33.33.117:8080/auth?response_type=code&client_id=http%3A%2F%2F172.33.33.117%3A8080&redirect_uri=http%3A%2F%2F172.33.33.117%3A8080&scope=admin&code_challenge_method=S256&code_challenge=UHtxYTbRRqUH8ZQhR4lkBpiSW9xA7oABNdrQjZqhZV0&state=setup-80170629dc"

полную ссылку в итоге привожу для себя.

и я вижу окно создания административного аккаунта:

Create a first administrator account to continue.

При первом обращении к OpenHAB создаем административную учетную запись.

 

Указываю / Создаю свои данные:

  • User Name: ekzorchik
  • Password: 712mbddr@
  • Confirm New Password: 712mbddr@

и нажимаю "Create Account"

  • Язык: русский
  • Регион: выбираю Россия
  • Часовой пояс: (GMT+3:00) Europe/Moscow

Указываю настройки: языка, региона, часового пояса.

и нажимаю "Начать установку"

Этап "Настройку местоположения" пропускаю

Установку местоположения пропускаем.

нажимаю "Настроить позже в настройках"

Этап "Установить дополнения"

  • ui-basic (Basic UI)
  • automation-jsscripting (JavaScript Scripting)
  • persistence-rrd4j (RRD4j Persistence)

Устанавливаем предлагаемые дополнения.

нажимаю "Установить 3 дополнения" предложенные мастером.

После того как все установилось нажимаю на "Начать" (http://172.33.33.117:8080/overview)

Установка завершена, нажимаем "Начать".

Вот так выглядит Web-интерфейс установленного по умолчанию OpenHAB:

Вот так выглядит Web-интерфейс установленного по умолчанию OpenHAB.

Ну а далее уже открываем документацию с официального сайта и под себя настраиваем либо в голове уляжется, как и что, либо начинаем изучать другие заметки других автором чтобы хотя бы повторить что-нибудь и тогда придет понимание или не придет, окажется что OpenHAB это не ваше, вам милее Home Assistant или Domoticz.

На этом пока заметка завершена, я разобрал что мне нужно было, а именно, как установить от и до OpenHAB на Ubuntu 22.04 Server, с уважением автор блога Олло Александр aka ekzorchik.