Я за самоличную установку сервисов, а не накатывание их из готового образа, так я порой узнаю что-то новое и в целом понимаю, что и как работает, анализирую почему не поднимается и что нужно чтобы все заработало. Сегодня у меня будет вспоминание, про 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.
Указываю / Создаю свои данные:
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:
Ну а далее уже открываем документацию с официального сайта и под себя настраиваем либо в голове уляжется, как и что, либо начинаем изучать другие заметки других автором чтобы хотя бы повторить что-нибудь и тогда придет понимание или не придет, окажется что OpenHAB
это не ваше, вам милее Home Assistant
или Domoticz.
На этом пока заметка завершена, я разобрал что мне нужно было, а именно, как установить от и до OpenHAB
на Ubuntu 22.04 Server
, с уважением автор блога Олло Александр aka ekzorchik.