2023-10-10_00:25:29_UTC [openHABian] Starting the openHABian initial setup. 2023-10-10_00:25:29_UTC [openHABian] Storing configuration... OK 2023-10-10_00:25:29_UTC [openHABian] Enable maximum debugging output + rfkill unblock wifi ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-10-10_00:25:29_UTC [openHABian] Starting webserver with installation log... ' 2023-10-10_00:25:29_UTC [openHABian] Starting webserver with installation log... ++ command -v python3 + [[ -x /usr/bin/python3 ]] + bash /boot/firmware/webserver.bash start + sleep 5 ++ ps -ef ++ pgrep python3 + isWebRunning=1128 + [[ -n 1128 ]] + echo OK OK + defaultUserAndGroup=openhabian + userName=openhabian + groupName=openhabian + is_raspbian + [[ '' == \r\a\s\p\b\i\a\n ]] ++ cat /etc/os-release + [[ PRETTY_NAME="Raspbian GNU/Linux 12 (bookworm)" NAME="Raspbian GNU/Linux" VERSION_ID="12" VERSION="12 (bookworm)" VERSION_CODENAME=bookworm ID=raspbian ID_LIKE=debian HOME_URL="http://www.raspbian.org/" SUPPORT_URL="http://www.raspbian.org/RaspbianForums" BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs" =~ Raspbian ]] + return 0 + rm -f /etc/sudoers.d/010_pi-nopasswd ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-10-10_00:25:34_UTC [openHABian] Changing default username and password... ' 2023-10-10_00:25:34_UTC [openHABian] Changing default username and password... + [[ -v openhabian ]] + id openhabian + id openhabian + echo SKIPPED SKIPPED + echo 'watch cat /boot/first-boot.log' + [[ -z '' ]] ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-10-10_00:25:34_UTC [openHABian] Setting up Ethernet connection... ' 2023-10-10_00:25:34_UTC [openHABian] Setting up Ethernet connection... + grep -qs up /sys/class/net/eth0/operstate + echo OK OK + running_in_docker + [[ -n '' ]] + grep -qs 'docker\|lxc' /proc/1/cgroup + [[ -f /.dockerenv ]] + return 1 + tryUntil 'ping -c1 8.8.8.8 &> /dev/null || curl --silent --head https://www.openhab.org/docs/ |& grep -qs '\''HTTP/[^ ]*[ ]200'\''' 5 1 + local cmd + local attempts + local interval + cmd='ping -c1 8.8.8.8 &> /dev/null || curl --silent --head https://www.openhab.org/docs/ |& grep -qs '\''HTTP/[^ ]*[ ]200'\''' + attempts=5 + interval=1 + [[ 5 -le 0 ]] + cond_echo '\nexecuting ping -c1 8.8.8.8 &> /dev/null || curl --silent --head https://www.openhab.org/docs/ |& grep -qs '\''HTTP/[^ ]*[ ]200'\'' \c' + [[ -z 1 ]] + eval 'ping -c1 8.8.8.8 &> /dev/null || curl --silent --head https://www.openhab.org/docs/ |& grep -qs '\''HTTP/[^ ]*[ ]200'\''' ++ ping -c1 8.8.8.8 + out=0 + [[ 0 -eq 0 ]] + break + [[ -z 1 ]] + return 5 ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-10-10_00:25:34_UTC [openHABian] Ensuring network connectivity... ' 2023-10-10_00:25:34_UTC [openHABian] Ensuring network connectivity... + running_in_docker + [[ -n '' ]] + grep -qs 'docker\|lxc' /proc/1/cgroup + [[ -f /.dockerenv ]] + return 1 + tryUntil 'ping -c1 8.8.8.8 &> /dev/null || curl --silent --head http://www.openhab.org/docs |& grep -qs '\''HTTP/1.1 200 OK'\''' 5 1 + local cmd + local attempts + local interval + cmd='ping -c1 8.8.8.8 &> /dev/null || curl --silent --head http://www.openhab.org/docs |& grep -qs '\''HTTP/1.1 200 OK'\''' + attempts=5 + interval=1 + [[ 5 -le 0 ]] + cond_echo '\nexecuting ping -c1 8.8.8.8 &> /dev/null || curl --silent --head http://www.openhab.org/docs |& grep -qs '\''HTTP/1.1 200 OK'\'' \c' + [[ -z 1 ]] + eval 'ping -c1 8.8.8.8 &> /dev/null || curl --silent --head http://www.openhab.org/docs |& grep -qs '\''HTTP/1.1 200 OK'\''' ++ ping -c1 8.8.8.8 + out=0 + [[ 0 -eq 0 ]] + break + [[ -z 1 ]] + return 5 + echo OK OK ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-10-10_00:25:34_UTC [openHABian] Waiting for dpkg/apt to get ready... ' 2023-10-10_00:25:34_UTC [openHABian] Waiting for dpkg/apt to get ready... + wait_for_apt_to_be_ready + local attempts + local interval + local pid + attempts=10 + interval=1 + [[ 10 -le 0 ]] + pid=1146 + apt-get update +++ tail --pid=1146 -f /dev/null ++ eval '' + [[ '' -eq 0 ]] + return 0 + echo OK OK ++ dpkg -s raspberrypi-kernel ++ grep 'Version:[[:space:]]' + firmwareBefore= ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-10-10_00:25:37_UTC [openHABian] Updating repositories and upgrading installed packages... ' 2023-10-10_00:25:37_UTC [openHABian] Updating repositories and upgrading installed packages... + apt-get install --fix-broken --yes +++ apt-get --yes upgrade ++ eval '' + [[ '' -eq 100 ]] ++ dpkg -s raspberrypi-kernel ++ grep 'Version:[[:space:]]' + [[ '' != '' ]] + echo OK OK ++ command -v python3 + [[ -x /usr/bin/python3 ]] + bash /boot/firmware/webserver.bash reinsure_running ++ command -v git + [[ -x '' ]] ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-10-10_00:25:44_UTC [openHABian] Installing git package... ' 2023-10-10_00:25:44_UTC [openHABian] Installing git package... + apt-get install --yes git + echo OK OK ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-11-13_11:39:16_UTC [openHABian] Updating myself from https://github.com/openhab/openhabian.git, openHAB branch... ' 2023-11-13_11:39:16_UTC [openHABian] Updating myself from https://github.com/openhab/openhabian.git, openHAB branch... +++ openhabian_update openHAB ++ eval '' + [[ '' -eq 0 ]] + echo OK OK + ln -sfn /opt/openhabian/openhabian-setup.sh /usr/local/bin/openhabian-config ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo '2023-11-13_11:39:18_UTC [openHABian] Starting execution of '\''openhabian-config unattended'\''... OK' 2023-11-13_11:39:18_UTC [openHABian] Starting execution of 'openhabian-config unattended'... OK + openhabian-config unattended 2023-11-13_11:39:18_UTC [openHABian] Checking for root privileges... OK + export UNATTENDED SILENT DEBUGMAX INTERACTIVE + for shfile in "${BASEDIR:-/opt/openhabian}"/functions/*.bash + source /opt/openhabian/functions/auth.bash + for shfile in "${BASEDIR:-/opt/openhabian}"/functions/*.bash + source /opt/openhabian/functions/backup.bash + for shfile in "${BASEDIR:-/opt/openhabian}"/functions/*.bash + source /opt/openhabian/functions/config.bash + for shfile in "${BASEDIR:-/opt/openhabian}"/functions/*.bash + source /opt/openhabian/functions/ext-storage.bash + for shfile in "${BASEDIR:-/opt/openhabian}"/functions/*.bash + source /opt/openhabian/functions/find.bash + for shfile in "${BASEDIR:-/opt/openhabian}"/functions/*.bash + source /opt/openhabian/functions/habapp.bash + for shfile in "${BASEDIR:-/opt/openhabian}"/functions/*.bash + source /opt/openhabian/functions/helpers.bash ++ ESC='\033[' ++ COL_DEF='\033[39;49;00m' ++ COL_RED='\033[31;01m' ++ COL_GREEN='\033[32;01m' ++ COL_YELLOW='\033[33;01m' ++ COL_BLUE='\033[34;01m' ++ COL_MAGENTA='\033[35;01m' ++ COL_CYAN='\033[36;01m' ++ COL_LGRAY='\033[37;01m' ++ COL_DGRAY='\033[90;01m' ++ export COL_DEF COL_RED COL_GREEN COL_YELLOW COL_BLUE COL_MAGENTA COL_CYAN COL_LGRAY COL_DGRAY + for shfile in "${BASEDIR:-/opt/openhabian}"/functions/*.bash + source /opt/openhabian/functions/influxdb+grafana.bash + for shfile in "${BASEDIR:-/opt/openhabian}"/functions/*.bash + source /opt/openhabian/functions/java-jre.bash + for shfile in "${BASEDIR:-/opt/openhabian}"/functions/*.bash + source /opt/openhabian/functions/menu.bash + for shfile in "${BASEDIR:-/opt/openhabian}"/functions/*.bash + source /opt/openhabian/functions/nodejs-apps.bash + for shfile in "${BASEDIR:-/opt/openhabian}"/functions/*.bash + source /opt/openhabian/functions/nut.bash + for shfile in "${BASEDIR:-/opt/openhabian}"/functions/*.bash + source /opt/openhabian/functions/openhab.bash + for shfile in "${BASEDIR:-/opt/openhabian}"/functions/*.bash + source /opt/openhabian/functions/openhabian.bash + for shfile in "${BASEDIR:-/opt/openhabian}"/functions/*.bash + source /opt/openhabian/functions/packages.bash + for shfile in "${BASEDIR:-/opt/openhabian}"/functions/*.bash + source /opt/openhabian/functions/system.bash + for shfile in "${BASEDIR:-/opt/openhabian}"/functions/*.bash + source /opt/openhabian/functions/vpn.bash + for shfile in "${BASEDIR:-/opt/openhabian}"/functions/*.bash + source /opt/openhabian/functions/wifi.bash + for shfile in "${BASEDIR:-/opt/openhabian}"/functions/*.bash + source /opt/openhabian/functions/zram.bash ++ pwd + OLDWD=/ + cd /opt + update_openhabian_conf + local configFile=/etc/openhabian.conf + local referenceConfig=/opt/openhabian/build-image/openhabian.conf + cp /etc/openhabian.conf /etc/openhabian.conf.BAK + read -r line + [[ # Origin: openhabian.conf =~ ^(#)?[a-zA-Z] ]] + echo '# Origin: openhabian.conf' + read -r line + [[ # =~ ^(#)?[a-zA-Z] ]] + echo '#' + read -r line + [[ # Modify your openHABian settings =~ ^(#)?[a-zA-Z] ]] + echo '# Modify your openHABian settings' + read -r line + [[ # Handle with care, only touch if you need to! =~ ^(#)?[a-zA-Z] ]] + echo '# Handle with care, only touch if you need to!' + read -r line + [[ # This file will only be used on unattended initial install. =~ ^(#)?[a-zA-Z] ]] + echo '# This file will only be used on unattended initial install.' + read -r line + [[ # If you want to change anything after unattended install completed, use menu in openhabian-config. =~ ^(#)?[a-zA-Z] ]] + echo '# If you want to change anything after unattended install completed, use menu in openhabian-config.' + read -r line + [[ '' =~ ^(#)?[a-zA-Z] ]] + echo '' + read -r line + [[ # ATTENTION: to disable an option a line MUST be of the format '# option=value' =~ ^(#)?[a-zA-Z] ]] + echo '# ATTENTION: to disable an option a line MUST be of the format '\''# option=value'\''' + read -r line + [[ # KEEP THE SPACE IT IS IMPORTANT !! =~ ^(#)?[a-zA-Z] ]] + echo '# KEEP THE SPACE IT IS IMPORTANT !!' + read -r line + [[ '' =~ ^(#)?[a-zA-Z] ]] + echo '' + read -r line + [[ # Hostname to set this one to =~ ^(#)?[a-zA-Z] ]] + echo '# Hostname to set this one to' + read -r line + [[ hostname=openhabian =~ ^(#)?[a-zA-Z] ]] + parsed=hostname=openhabian + [[ hostname=openhabian =~ ^#[a-zA-Z] ]] ++ echo hostname=openhabian ++ cut -d= -f1 + param=hostname + [[ -v hostname ]] + [[ openhabian == *\ * ]] + echo hostname=openhabian + read -r line + [[ # if it exists, the default user (with its working environment) will be renamed to this username given here ... =~ ^(#)?[a-zA-Z] ]] + echo '# if it exists, the default user (with its working environment) will be renamed to this username given here ...' + read -r line + [[ username=openhabian =~ ^(#)?[a-zA-Z] ]] + parsed=username=openhabian + [[ username=openhabian =~ ^#[a-zA-Z] ]] ++ echo username=openhabian ++ cut -d= -f1 + param=username + [[ -v username ]] + [[ openhabian == *\ * ]] + echo username=openhabian + read -r line + [[ # ... and given this password. The password will be removed from this file after completion for security reasons. =~ ^(#)?[a-zA-Z] ]] + echo '# ... and given this password. The password will be removed from this file after completion for security reasons.' + read -r line + [[ userpw=openhabian =~ ^(#)?[a-zA-Z] ]] + parsed=userpw=openhabian + [[ userpw=openhabian =~ ^#[a-zA-Z] ]] ++ echo userpw=openhabian ++ cut -d= -f1 + param=userpw + [[ -v userpw ]] + [[ openhabian == *\ * ]] + echo userpw=openhabian + read -r line + [[ # set this to download a SSH key and authorize the owner to login as the admin user =~ ^(#)?[a-zA-Z] ]] + echo '# set this to download a SSH key and authorize the owner to login as the admin user' + read -r line + [[ adminkeyurl="" =~ ^(#)?[a-zA-Z] ]] + parsed='adminkeyurl=""' + [[ adminkeyurl="" =~ ^#[a-zA-Z] ]] ++ echo 'adminkeyurl=""' ++ cut -d= -f1 + param=adminkeyurl + [[ -v adminkeyurl ]] + [[ '' == *\ * ]] + echo adminkeyurl= + read -r line + [[ '' =~ ^(#)?[a-zA-Z] ]] + echo '' + read -r line + [[ # Language and timezone. See Debian documentation for valid values. =~ ^(#)?[a-zA-Z] ]] + echo '# Language and timezone. See Debian documentation for valid values.' + read -r line + [[ timezone=Europe/Berlin =~ ^(#)?[a-zA-Z] ]] + parsed=timezone=Europe/Berlin + [[ timezone=Europe/Berlin =~ ^#[a-zA-Z] ]] ++ echo timezone=Europe/Berlin ++ cut -d= -f1 + param=timezone + [[ -v timezone ]] + [[ Europe/Berlin == *\ * ]] + echo timezone=Europe/Berlin + read -r line + [[ locales="en_US.UTF-8 de_DE.UTF-8" =~ ^(#)?[a-zA-Z] ]] + parsed='locales="en_US.UTF-8 de_DE.UTF-8"' + [[ locales="en_US.UTF-8 de_DE.UTF-8" =~ ^#[a-zA-Z] ]] ++ echo 'locales="en_US.UTF-8 de_DE.UTF-8"' ++ cut -d= -f1 + param=locales + [[ -v locales ]] + [[ en_US.UTF-8 de_DE.UTF-8 == *\ * ]] + echo 'locales="en_US.UTF-8 de_DE.UTF-8"' + read -r line + [[ system_default_locale="en_US.UTF-8" =~ ^(#)?[a-zA-Z] ]] + parsed='system_default_locale="en_US.UTF-8"' + [[ system_default_locale="en_US.UTF-8" =~ ^#[a-zA-Z] ]] ++ echo 'system_default_locale="en_US.UTF-8"' ++ cut -d= -f1 + param=system_default_locale + [[ -v system_default_locale ]] + [[ en_US.UTF-8 == *\ * ]] + echo system_default_locale=en_US.UTF-8 + read -r line + [[ '' =~ ^(#)?[a-zA-Z] ]] + echo '' + read -r line + [[ # WiFi settings. An ethernet connection is recommended. =~ ^(#)?[a-zA-Z] ]] + echo '# WiFi settings. An ethernet connection is recommended.' + read -r line + [[ # If you have a RPi4, RPi3, RPi0W or a supported external WiFi dongle, the WiFi =~ ^(#)?[a-zA-Z] ]] + echo '# If you have a RPi4, RPi3, RPi0W or a supported external WiFi dongle, the WiFi' + read -r line + [[ # interface can be setup and used for the initial installation. =~ ^(#)?[a-zA-Z] ]] + echo '# interface can be setup and used for the initial installation.' + read -r line + [[ # Fill in your SSID and password below, leave empty or put comment in front to =~ ^(#)?[a-zA-Z] ]] + echo '# Fill in your SSID and password below, leave empty or put comment in front to' + read -r line + [[ # have your WiFi remain unchanged/uninitialized. Make sure your Ethernet works. =~ ^(#)?[a-zA-Z] ]] + echo '# have your WiFi remain unchanged/uninitialized. Make sure your Ethernet works.' + read -r line + [[ # ATTENTION: you need to escape these special characters: $, `, ", \, (newline) =~ ^(#)?[a-zA-Z] ]] + echo '# ATTENTION: you need to escape these special characters: $, `, ", \, (newline)' + read -r line + [[ # 'Escaping' means to put an additional \ in front of that character =~ ^(#)?[a-zA-Z] ]] + echo '# '\''Escaping'\'' means to put an additional \ in front of that character' + read -r line + [[ wifi_ssid="" =~ ^(#)?[a-zA-Z] ]] + parsed='wifi_ssid=""' + [[ wifi_ssid="" =~ ^#[a-zA-Z] ]] ++ echo 'wifi_ssid=""' ++ cut -d= -f1 + param=wifi_ssid + [[ -v wifi_ssid ]] + [[ '' == *\ * ]] + echo wifi_ssid= + read -r line + [[ wifi_password="" =~ ^(#)?[a-zA-Z] ]] + parsed='wifi_password=""' + [[ wifi_password="" =~ ^#[a-zA-Z] ]] ++ echo 'wifi_password=""' ++ cut -d= -f1 + param=wifi_password + [[ -v wifi_password ]] + [[ '' == *\ * ]] + echo wifi_password= + read -r line + [[ '' =~ ^(#)?[a-zA-Z] ]] + echo '' + read -r line + [[ # Wi-Fi setting. Select a two-letter country code suitable for your location =~ ^(#)?[a-zA-Z] ]] + echo '# Wi-Fi setting. Select a two-letter country code suitable for your location' + read -r line + [[ # E.g. US (default), DE, AU, NZ... =~ ^(#)?[a-zA-Z] ]] + echo '# E.g. US (default), DE, AU, NZ...' + read -r line + [[ # You may infringe on local legislature otherwise =~ ^(#)?[a-zA-Z] ]] + echo '# You may infringe on local legislature otherwise' + read -r line + [[ # See https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 or /usr/share/zoneinfo/zone.tab =~ ^(#)?[a-zA-Z] ]] + echo '# See https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 or /usr/share/zoneinfo/zone.tab' + read -r line + [[ wifi_country="" =~ ^(#)?[a-zA-Z] ]] + parsed='wifi_country=""' + [[ wifi_country="" =~ ^#[a-zA-Z] ]] ++ echo 'wifi_country=""' ++ cut -d= -f1 + param=wifi_country + [[ -v wifi_country ]] + [[ '' == *\ * ]] + echo wifi_country= + read -r line + [[ '' =~ ^(#)?[a-zA-Z] ]] + echo '' + read -r line + [[ # Eventually disable all IPv6 e.g. on installation problems =~ ^(#)?[a-zA-Z] ]] + echo '# Eventually disable all IPv6 e.g. on installation problems' + read -r line + [[ # values: "enable", "disable" =~ ^(#)?[a-zA-Z] ]] + echo '# values: "enable", "disable"' + read -r line + [[ ipv6=enable =~ ^(#)?[a-zA-Z] ]] + parsed=ipv6=enable + [[ ipv6=enable =~ ^#[a-zA-Z] ]] ++ echo ipv6=enable ++ cut -d= -f1 + param=ipv6 + [[ -v ipv6 ]] + [[ enable == *\ * ]] + echo ipv6=enable + read -r line + [[ '' =~ ^(#)?[a-zA-Z] ]] + echo '' + read -r line + [[ # repo and branch to clone from =~ ^(#)?[a-zA-Z] ]] + echo '# repo and branch to clone from' + read -r line + [[ repositoryurl=https://github.com/openhab/openhabian.git =~ ^(#)?[a-zA-Z] ]] + parsed=repositoryurl=https://github.com/openhab/openhabian.git + [[ repositoryurl=https://github.com/openhab/openhabian.git =~ ^#[a-zA-Z] ]] ++ echo repositoryurl=https://github.com/openhab/openhabian.git ++ cut -d= -f1 + param=repositoryurl + [[ -v repositoryurl ]] + [[ https://github.com/openhab/openhabian.git == *\ * ]] + echo repositoryurl=https://github.com/openhab/openhabian.git + read -r line + [[ clonebranch=openHAB =~ ^(#)?[a-zA-Z] ]] + parsed=clonebranch=openHAB + [[ clonebranch=openHAB =~ ^#[a-zA-Z] ]] ++ echo clonebranch=openHAB ++ cut -d= -f1 + param=clonebranch + [[ -v clonebranch ]] + [[ openHAB == *\ * ]] + echo clonebranch=openHAB + read -r line + [[ '' =~ ^(#)?[a-zA-Z] ]] + echo '' + read -r line + [[ # initial openHAB configuration to import (URL or filename) =~ ^(#)?[a-zA-Z] ]] + echo '# initial openHAB configuration to import (URL or filename)' + read -r line + [[ # the file needs to be a zip archive created from openhab-cli backup =~ ^(#)?[a-zA-Z] ]] + echo '# the file needs to be a zip archive created from openhab-cli backup' + read -r line + [[ # initialconfig=/boot/initial.zip =~ ^(#)?[a-zA-Z] ]] + echo '# initialconfig=/boot/initial.zip' + read -r line + [[ '' =~ ^(#)?[a-zA-Z] ]] + echo '' + read -r line + [[ # debug verbosity mode =~ ^(#)?[a-zA-Z] ]] + echo '# debug verbosity mode' + read -r line + [[ # off, on (verbose output in log) or maximum (show every command) =~ ^(#)?[a-zA-Z] ]] + echo '# off, on (verbose output in log) or maximum (show every command)' + read -r line + [[ debugmode=maximum =~ ^(#)?[a-zA-Z] ]] + parsed=debugmode=maximum + [[ debugmode=maximum =~ ^#[a-zA-Z] ]] ++ echo debugmode=maximum ++ cut -d= -f1 + param=debugmode + [[ -v debugmode ]] + [[ maximum == *\ * ]] + echo debugmode=maximum + read -r line + [[ '' =~ ^(#)?[a-zA-Z] ]] + echo '' + read -r line + [[ # the framebuffer on RPi is enabled by default =~ ^(#)?[a-zA-Z] ]] + echo '# the framebuffer on RPi is enabled by default' + read -r line + [[ framebuffer=enable =~ ^(#)?[a-zA-Z] ]] + parsed=framebuffer=enable + [[ framebuffer=enable =~ ^#[a-zA-Z] ]] ++ echo framebuffer=enable ++ cut -d= -f1 + param=framebuffer + [[ -v framebuffer ]] + [[ enable == *\ * ]] + echo framebuffer=enable + read -r line + [[ '' =~ ^(#)?[a-zA-Z] ]] + echo '' + read -r line + [[ # apt timeout to wait for lock with multiple install actions going on =~ ^(#)?[a-zA-Z] ]] + echo '# apt timeout to wait for lock with multiple install actions going on' + read -r line + [[ apttimeout=60 =~ ^(#)?[a-zA-Z] ]] + parsed=apttimeout=60 + [[ apttimeout=60 =~ ^#[a-zA-Z] ]] ++ echo apttimeout=60 ++ cut -d= -f1 + param=apttimeout + [[ -v apttimeout ]] + [[ 60 == *\ * ]] + echo apttimeout=60 + read -r line + [[ '' =~ ^(#)?[a-zA-Z] ]] + echo '' + read -r line + [[ # fake hardware =~ ^(#)?[a-zA-Z] ]] + echo '# fake hardware' + read -r line + [[ # force treating your box as if it was a ... =~ ^(#)?[a-zA-Z] ]] + echo '# force treating your box as if it was a ...' + read -r line + [[ # pi4, pi4_8gb, cm4, pi400, pi3, cm3, pi3+, cm3+, pi2, pi1, cm1, pi0, pi0w, pi0w2, x86 =~ ^(#)?[a-zA-Z] ]] + echo '# pi4, pi4_8gb, cm4, pi400, pi3, cm3, pi3+, cm3+, pi2, pi1, cm1, pi0, pi0w, pi0w2, x86' + read -r line + [[ # hw= =~ ^(#)?[a-zA-Z] ]] + echo '# hw=' + read -r line + [[ '' =~ ^(#)?[a-zA-Z] ]] + echo '' + read -r line + [[ # Hardware architecture =~ ^(#)?[a-zA-Z] ]] + echo '# Hardware architecture' + read -r line + [[ # x86_64, amd64, armv6l, armv7l, aarch64, arm64 =~ ^(#)?[a-zA-Z] ]] + echo '# x86_64, amd64, armv6l, armv7l, aarch64, arm64' + read -r line + [[ # hwarch= =~ ^(#)?[a-zA-Z] ]] + echo '# hwarch=' + read -r line + [[ '' =~ ^(#)?[a-zA-Z] ]] + echo '' + read -r line + [[ # OS distribution/release =~ ^(#)?[a-zA-Z] ]] + echo '# OS distribution/release' + read -r line + [[ # Valid arguments: raspios, raspbian, debian, ubuntu, stretch, buster, bullseye, bionic, focal =~ ^(#)?[a-zA-Z] ]] + echo '# Valid arguments: raspios, raspbian, debian, ubuntu, stretch, buster, bullseye, bionic, focal' + read -r line + [[ # osrelease= =~ ^(#)?[a-zA-Z] ]] + echo '# osrelease=' + read -r line + [[ '' =~ ^(#)?[a-zA-Z] ]] + echo '' + read -r line + [[ # Java version to install =~ ^(#)?[a-zA-Z] ]] + echo '# Java version to install' + read -r line + [[ # Valid arguments: 11, 17 =~ ^(#)?[a-zA-Z] ]] + echo '# Valid arguments: 11, 17' + read -r line + [[ java_opt=17 =~ ^(#)?[a-zA-Z] ]] + parsed=java_opt=17 + [[ java_opt=17 =~ ^#[a-zA-Z] ]] ++ echo java_opt=17 ++ cut -d= -f1 + param=java_opt + [[ -v java_opt ]] + [[ 17 == *\ * ]] + echo java_opt=17 + read -r line + [[ '' =~ ^(#)?[a-zA-Z] ]] + echo '' + read -r line + [[ # install zram per default, set to "disable" to skip installation =~ ^(#)?[a-zA-Z] ]] + echo '# install zram per default, set to "disable" to skip installation' + read -r line + [[ zraminstall=enable =~ ^(#)?[a-zA-Z] ]] + parsed=zraminstall=enable + [[ zraminstall=enable =~ ^#[a-zA-Z] ]] ++ echo zraminstall=enable ++ cut -d= -f1 + param=zraminstall + [[ -v zraminstall ]] + [[ enable == *\ * ]] + echo zraminstall=enable + read -r line + [[ '' =~ ^(#)?[a-zA-Z] ]] + echo '' + read -r line + [[ # start comitup hotspot if internet is not reachable =~ ^(#)?[a-zA-Z] ]] + echo '# start comitup hotspot if internet is not reachable' + read -r line + [[ hotspot=enable =~ ^(#)?[a-zA-Z] ]] + parsed=hotspot=enable + [[ hotspot=enable =~ ^#[a-zA-Z] ]] ++ echo hotspot=enable ++ cut -d= -f1 + param=hotspot + [[ -v hotspot ]] + [[ enable == *\ * ]] + echo hotspot=enable + read -r line + [[ hotspotpw=openhabian =~ ^(#)?[a-zA-Z] ]] + parsed=hotspotpw=openhabian + [[ hotspotpw=openhabian =~ ^#[a-zA-Z] ]] ++ echo hotspotpw=openhabian ++ cut -d= -f1 + param=hotspotpw + [[ -v hotspotpw ]] + [[ openhabian == *\ * ]] + echo hotspotpw=openhabian + read -r line + [[ '' =~ ^(#)?[a-zA-Z] ]] + echo '' + read -r line + [[ # external SD card device to backup and mirror the internal SD card to =~ ^(#)?[a-zA-Z] ]] + echo '# external SD card device to backup and mirror the internal SD card to' + read -r line + [[ # backupdrive=/dev/sda =~ ^(#)?[a-zA-Z] ]] + echo '# backupdrive=/dev/sda' + read -r line + [[ storageconfig=openhab-dir =~ ^(#)?[a-zA-Z] ]] + parsed=storageconfig=openhab-dir + [[ storageconfig=openhab-dir =~ ^#[a-zA-Z] ]] ++ echo storageconfig=openhab-dir ++ cut -d= -f1 + param=storageconfig + [[ -v storageconfig ]] + [[ openhab-dir == *\ * ]] + echo storageconfig=openhab-dir + read -r line + [[ storagedir=/storage =~ ^(#)?[a-zA-Z] ]] + parsed=storagedir=/storage + [[ storagedir=/storage =~ ^#[a-zA-Z] ]] ++ echo storagedir=/storage ++ cut -d= -f1 + param=storagedir + [[ -v storagedir ]] + [[ /storage == *\ * ]] + echo storagedir=/storage + read -r line + [[ storagetapes=15 =~ ^(#)?[a-zA-Z] ]] + parsed=storagetapes=15 + [[ storagetapes=15 =~ ^#[a-zA-Z] ]] ++ echo storagetapes=15 ++ cut -d= -f1 + param=storagetapes + [[ -v storagetapes ]] + [[ 15 == *\ * ]] + echo storagetapes=15 + read -r line + [[ storagecapacity=1024 =~ ^(#)?[a-zA-Z] ]] + parsed=storagecapacity=1024 + [[ storagecapacity=1024 =~ ^#[a-zA-Z] ]] ++ echo storagecapacity=1024 ++ cut -d= -f1 + param=storagecapacity + [[ -v storagecapacity ]] + [[ 1024 == *\ * ]] + echo storagecapacity=1024 + read -r line + [[ '' =~ ^(#)?[a-zA-Z] ]] + echo '' + read -r line + [[ # mail relay settings =~ ^(#)?[a-zA-Z] ]] + echo '# mail relay settings' + read -r line + [[ # adminmail=john.doe@foo.bar =~ ^(#)?[a-zA-Z] ]] + echo '# adminmail=john.doe@foo.bar' + read -r line + [[ # relayuser=john.doe@foo.bar =~ ^(#)?[a-zA-Z] ]] + echo '# relayuser=john.doe@foo.bar' + read -r line + [[ # relaypass=secret =~ ^(#)?[a-zA-Z] ]] + echo '# relaypass=secret' + read -r line + [[ # smarthost=smtp.gmail.com =~ ^(#)?[a-zA-Z] ]] + echo '# smarthost=smtp.gmail.com' + read -r line + [[ # smartport=587 =~ ^(#)?[a-zA-Z] ]] + echo '# smartport=587' + read -r line + [[ '' =~ ^(#)?[a-zA-Z] ]] + echo '' + read -r line + [[ # Network UPS Tools =~ ^(#)?[a-zA-Z] ]] + echo '# Network UPS Tools' + read -r line + [[ # nutmode=netserver =~ ^(#)?[a-zA-Z] ]] + echo '# nutmode=netserver' + read -r line + [[ # Settings for netserver: =~ ^(#)?[a-zA-Z] ]] + echo '# Settings for netserver:' + read -r line + [[ # nutupsdriver=usbhid-ups =~ ^(#)?[a-zA-Z] ]] + echo '# nutupsdriver=usbhid-ups' + read -r line + [[ # nutupsdescr="" =~ ^(#)?[a-zA-Z] ]] + echo '# nutupsdescr=""' + read -r line + [[ # Settings for netclient: =~ ^(#)?[a-zA-Z] ]] + echo '# Settings for netclient:' + read -r line + [[ # nutupsname=ups =~ ^(#)?[a-zA-Z] ]] + echo '# nutupsname=ups' + read -r line + [[ # nutupshost=xxx.xxx.xxx.xx =~ ^(#)?[a-zA-Z] ]] + echo '# nutupshost=xxx.xxx.xxx.xx' + read -r line + [[ # nutupsuser=monuser =~ ^(#)?[a-zA-Z] ]] + echo '# nutupsuser=monuser' + read -r line + [[ # nutupspw=secret =~ ^(#)?[a-zA-Z] ]] + echo '# nutupspw=secret' + read -r line + [[ '' =~ ^(#)?[a-zA-Z] ]] + echo '' + read -r line + [[ # Tailscale VPN =~ ^(#)?[a-zA-Z] ]] + echo '# Tailscale VPN' + read -r line + [[ # preauthkey=tskey-xxxxxxxxxxxxxxxxx =~ ^(#)?[a-zA-Z] ]] + echo '# preauthkey=tskey-xxxxxxxxxxxxxxxxx' + read -r line + [[ # tstags=tag:client =~ ^(#)?[a-zA-Z] ]] + echo '# tstags=tag:client' + read -r line + [[ '' =~ ^(#)?[a-zA-Z] ]] + echo '' + read -r line + [[ # Custom log files =~ ^(#)?[a-zA-Z] ]] + echo '# Custom log files' + read -r line + [[ # custom_log_files=("/var/log/foo.log" "/var/log/bar.log") =~ ^(#)?[a-zA-Z] ]] + echo '# custom_log_files=("/var/log/foo.log" "/var/log/bar.log")' + read -r line + [[ '' =~ ^(#)?[a-zA-Z] ]] + echo '' + read -r line + [[ # vim: filetype=sh =~ ^(#)?[a-zA-Z] ]] + echo '# vim: filetype=sh' + read -r line + [[ -f /etc/init.d/openhabian-config ]] + cond_redirect wget -nv -O /etc/init.d/openhabian-config https://github.com/RPi-Distro/raspi-config/raw/master/debian/raspi-config.init + [[ -n '' ]] + echo -e '\n\033[90;01m$ wget -nv -O /etc/init.d/openhabian-config https://github.com/RPi-Distro/raspi-config/raw/master/debian/raspi-config.init \033[39;49;00m' $ wget -nv -O /etc/init.d/openhabian-config https://github.com/RPi-Distro/raspi-config/raw/master/debian/raspi-config.init  + wget -nv -O /etc/init.d/openhabian-config https://github.com/RPi-Distro/raspi-config/raw/master/debian/raspi-config.init 2023-11-13 11:39:18 URL:https://raw.githubusercontent.com/RPi-Distro/raspi-config/master/debian/raspi-config.init [1999/1999] -> "/etc/init.d/openhabian-config" [1] + return 0 + sed -i -e s/raspi-config/openhabian-config/ /etc/init.d/openhabian-config + config_ipv6 + local aptConf=/etc/apt/apt.conf.d/S90force-ipv4 + local sysctlConf=/etc/sysctl.d/99-sysctl.conf + [[ enable == \d\i\s\a\b\l\e ]] + [[ enable == \e\n\a\b\l\e ]] + grep -qs '^[[:space:]]*# Disable all IPv6 functionality' /etc/sysctl.d/99-sysctl.conf + [[ -n 1 ]] + export DEBIAN_FRONTEND=noninteractive + DEBIAN_FRONTEND=noninteractive + wait_for_apt_to_finish_update + local 'spin=-\|/' + local i + [[ -z '' ]] + apt_update + export PID_APT=1636 + PID_APT=1636 + nohup apt-get update ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-11-13_11:39:18_UTC [openHABian] Updating Linux package information... ' 2023-11-13_11:39:18_UTC [openHABian] Updating Linux package information... + kill -0 1636 + i=1 + echo -ne '\ \033[2D' \ + sleep 0.5 + kill -0 1636 + i=2 + echo -ne '| \033[2D' | + sleep 0.5 + kill -0 1636 + i=3 + echo -ne '/ \033[2D' / + sleep 0.5 + kill -0 1636 + i=0 + echo -ne '- \033[2D' - + sleep 0.5 + kill -0 1636 + i=1 + echo -ne '\ \033[2D' \ + sleep 0.5 + kill -0 1636 + echo OK OK + load_create_config + local 'questionText=\nWelcome to openHABian!\n\nPlease provide the name of your Linux user i.e. the account you normally log in with.\n\nTypical user names are '\''pi'\'' or '\''ubuntu'\''.' + local input + [[ -f /etc/openhabian.conf ]] ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-11-13_11:39:21_UTC [openHABian] Loading configuration file '\''/etc/openhabian.conf'\''... ' 2023-11-13_11:39:21_UTC [openHABian] Loading configuration file '/etc/openhabian.conf'... ++ getent group openhabian + [[ ! -n openhabian:x:1000: ]] + id -u openhabian + source /etc/openhabian.conf ++ hostname=openhabian ++ username=openhabian ++ userpw=openhabian ++ adminkeyurl= ++ timezone=Europe/Berlin ++ locales='en_US.UTF-8 de_DE.UTF-8' ++ system_default_locale=en_US.UTF-8 ++ wifi_ssid= ++ wifi_password= ++ wifi_country= ++ ipv6=enable ++ repositoryurl=https://github.com/openhab/openhabian.git ++ clonebranch=openHAB ++ debugmode=maximum ++ framebuffer=enable ++ apttimeout=60 ++ java_opt=17 ++ zraminstall=enable ++ hotspot=enable ++ hotspotpw=openhabian ++ storageconfig=openhab-dir ++ storagedir=/storage ++ storagetapes=15 ++ storagecapacity=1024 + echo OK OK + change_swapsize + is_pi + is_pifour + [[ '' == \p\i\4 ]] + grep -q '^Revision\s*:\s*[ 123][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]11[0-9a-fA-F]$' /proc/cpuinfo + return 1 + is_cmfour + [[ '' == \c\m\4 ]] + grep -q '^Revision\s*:\s*[ 123][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]14[0-9a-fA-F]$' /proc/cpuinfo + return 1 + is_pi400 + [[ '' == \p\i\4\0\0 ]] + grep -q '^Revision\s*:\s*[ 123][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]13[0-9a-fA-F]$' /proc/cpuinfo + return 1 + is_cmthreeplus + [[ '' == \c\m\3\+ ]] + grep -q '^Revision\s*:\s*[ 123][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]10[0-9a-fA-F]$' /proc/cpuinfo + return 1 + is_cmthree + [[ '' == \c\m\3 ]] + grep -q '^Revision\s*:\s*[ 123][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]0[aA][0-9a-fA-F]$' /proc/cpuinfo + return 1 + is_pithreeplus + [[ '' == \p\i\3\+ ]] + grep -q '^Revision\s*:\s*[ 123][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]0[dDeE][0-9a-fA-F]$' /proc/cpuinfo + return 1 + is_pithree + [[ '' == \p\i\3 ]] + grep -q '^Revision\s*:\s*[ 123][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]0[8dDeE][0-9a-fA-F]$' /proc/cpuinfo + return 1 + is_pitwo + [[ '' == \p\i\2 ]] + grep -q '^Revision\s*:\s*[ 123][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]04[0-9a-fA-F]$' /proc/cpuinfo + return 1 + is_pione + [[ '' == \p\i\1 ]] + grep -q '^Revision\s*:\s*00[0-9a-fA-F][0-9a-fA-F]$' /proc/cpuinfo + grep -q '^Revision\s*:\s*[ 123][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]0[0-36][0-9a-fA-F]$' /proc/cpuinfo + return 1 + is_cmone + [[ '' == \c\m\1 ]] + grep -q '^Revision\s*:\s*[ 123][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]06[0-9a-fA-F]$' /proc/cpuinfo + return 1 + is_pizerow + [[ '' == \p\i\0\w ]] + grep -q '^Revision\s*:\s*[ 123][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]0[cC][0-9a-fA-F]$' /proc/cpuinfo + return 1 + is_pizerow2 + [[ '' == \p\i\0\w\2 ]] + grep -q '^Revision\s*:\s*[ 123][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]12[0-9a-fA-F]$' /proc/cpuinfo + return 1 + is_pizero + [[ '' == \p\i\0 ]] + grep -q '^Revision\s*:\s*[ 123][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]09[0-9a-fA-F]$' /proc/cpuinfo + return 1 + return 1 + return 0 + timezone_setting + [[ -n '' ]] + [[ -n Europe/Berlin ]] ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-11-13_11:39:21_UTC [openHABian] Setting timezone based on openhabian.conf... ' 2023-11-13_11:39:21_UTC [openHABian] Setting timezone based on openhabian.conf... + running_in_docker + [[ -n '' ]] + grep -qs 'docker\|lxc' /proc/1/cgroup + [[ -f /.dockerenv ]] + return 1 + running_on_github + [[ -n '' ]] + return 1 + cond_redirect timedatectl set-timezone Europe/Berlin + [[ -n '' ]] + echo -e '\n\033[90;01m$ timedatectl set-timezone Europe/Berlin \033[39;49;00m' $ timedatectl set-timezone Europe/Berlin  + timedatectl set-timezone Europe/Berlin + return 0 ++ cat /etc/timezone + echo 'OK (Europe/London)' OK (Europe/London) + locale_setting + local syslocale + dpkg -s locales + [[ -n '' ]] ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-11-13_12:39:21_CET [openHABian] Setting locale based on openhabian.conf... ' 2023-11-13_12:39:21_CET [openHABian] Setting locale based on openhabian.conf... + is_ubuntu + [[ '' == \u\b\u\n\t\u ]] ++ cat /etc/os-release + [[ PRETTY_NAME="Raspbian GNU/Linux 12 (bookworm)" NAME="Raspbian GNU/Linux" VERSION_ID="12" VERSION="12 (bookworm)" VERSION_CODENAME=bookworm ID=raspbian ID_LIKE=debian HOME_URL="http://www.raspbian.org/" SUPPORT_URL="http://www.raspbian.org/RaspbianForums" BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs" =~ Ubuntu ]] + return 1 + for loc in $locales + sed -i '/^#[[:space:]]en_US.UTF-8/s/^#[[:space:]]//' /etc/locale.gen + for loc in $locales + sed -i '/^#[[:space:]]de_DE.UTF-8/s/^#[[:space:]]//' /etc/locale.gen + cond_redirect locale-gen + [[ -n '' ]] + echo -e '\n\033[90;01m$ locale-gen \033[39;49;00m' $ locale-gen  + locale-gen Generating locales (this might take a while)... de_DE.UTF-8... done en_GB.UTF-8... done en_US.UTF-8... done Generation complete. + return 0 + syslocale=en_US.UTF-8 + cond_redirect update-locale LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 LC_CTYPE=en_US.UTF-8 LANGUAGE=en_US.UTF-8 + [[ -n '' ]] + echo -e '\n\033[90;01m$ update-locale LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 LC_CTYPE=en_US.UTF-8 LANGUAGE=en_US.UTF-8 \033[39;49;00m' $ update-locale LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 LC_CTYPE=en_US.UTF-8 LANGUAGE=en_US.UTF-8  + update-locale LANG=en_US.UTF-8 LC_ALL=en_US.UTF-8 LC_CTYPE=en_US.UTF-8 LANGUAGE=en_US.UTF-8 + return 0 + echo 'OK (reboot required)' OK (reboot required) + [[ -n '' ]] + hostname_change + running_in_docker + [[ -n '' ]] + grep -qs 'docker\|lxc' /proc/1/cgroup + [[ -f /.dockerenv ]] + return 1 + local newHostname + [[ -n '' ]] ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-11-13_12:39:26_CET [openHABian] Setting hostname of the base system based on openhabian.conf... ' 2023-11-13_12:39:26_CET [openHABian] Setting hostname of the base system based on openhabian.conf... + newHostname=openhabian + cond_redirect hostnamectl set-hostname openhabian + [[ -n '' ]] + echo -e '\n\033[90;01m$ hostnamectl set-hostname openhabian \033[39;49;00m' $ hostnamectl set-hostname openhabian  + hostnamectl set-hostname openhabian + return 0 + sed -i 's|127.0.1.1.*$|127.0.1.1 openhabian|g' /etc/hosts + echo OK OK + [[ -n '' ]] + memory_split + is_pi + is_pifour + [[ '' == \p\i\4 ]] + grep -q '^Revision\s*:\s*[ 123][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]11[0-9a-fA-F]$' /proc/cpuinfo + return 1 + is_cmfour + [[ '' == \c\m\4 ]] + grep -q '^Revision\s*:\s*[ 123][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]14[0-9a-fA-F]$' /proc/cpuinfo + return 1 + is_pi400 + [[ '' == \p\i\4\0\0 ]] + grep -q '^Revision\s*:\s*[ 123][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]13[0-9a-fA-F]$' /proc/cpuinfo + return 1 + is_cmthreeplus + [[ '' == \c\m\3\+ ]] + grep -q '^Revision\s*:\s*[ 123][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]10[0-9a-fA-F]$' /proc/cpuinfo + return 1 + is_cmthree + [[ '' == \c\m\3 ]] + grep -q '^Revision\s*:\s*[ 123][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]0[aA][0-9a-fA-F]$' /proc/cpuinfo + return 1 + is_pithreeplus + [[ '' == \p\i\3\+ ]] + grep -q '^Revision\s*:\s*[ 123][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]0[dDeE][0-9a-fA-F]$' /proc/cpuinfo + return 1 + is_pithree + [[ '' == \p\i\3 ]] + grep -q '^Revision\s*:\s*[ 123][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]0[8dDeE][0-9a-fA-F]$' /proc/cpuinfo + return 1 + is_pitwo + [[ '' == \p\i\2 ]] + grep -q '^Revision\s*:\s*[ 123][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]04[0-9a-fA-F]$' /proc/cpuinfo + return 1 + is_pione + [[ '' == \p\i\1 ]] + grep -q '^Revision\s*:\s*00[0-9a-fA-F][0-9a-fA-F]$' /proc/cpuinfo + grep -q '^Revision\s*:\s*[ 123][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]0[0-36][0-9a-fA-F]$' /proc/cpuinfo + return 1 + is_cmone + [[ '' == \c\m\1 ]] + grep -q '^Revision\s*:\s*[ 123][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]06[0-9a-fA-F]$' /proc/cpuinfo + return 1 + is_pizerow + [[ '' == \p\i\0\w ]] + grep -q '^Revision\s*:\s*[ 123][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]0[cC][0-9a-fA-F]$' /proc/cpuinfo + return 1 + is_pizerow2 + [[ '' == \p\i\0\w\2 ]] + grep -q '^Revision\s*:\s*[ 123][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]12[0-9a-fA-F]$' /proc/cpuinfo + return 1 + is_pizero + [[ '' == \p\i\0 ]] + grep -q '^Revision\s*:\s*[ 123][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]09[0-9a-fA-F]$' /proc/cpuinfo + return 1 + return 1 + return 0 + enable_rpi_audio + is_pi + is_pifour + [[ '' == \p\i\4 ]] + grep -q '^Revision\s*:\s*[ 123][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]11[0-9a-fA-F]$' /proc/cpuinfo + return 1 + is_cmfour + [[ '' == \c\m\4 ]] + grep -q '^Revision\s*:\s*[ 123][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]14[0-9a-fA-F]$' /proc/cpuinfo + return 1 + is_pi400 + [[ '' == \p\i\4\0\0 ]] + grep -q '^Revision\s*:\s*[ 123][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]13[0-9a-fA-F]$' /proc/cpuinfo + return 1 + is_cmthreeplus + [[ '' == \c\m\3\+ ]] + grep -q '^Revision\s*:\s*[ 123][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]10[0-9a-fA-F]$' /proc/cpuinfo + return 1 + is_cmthree + [[ '' == \c\m\3 ]] + grep -q '^Revision\s*:\s*[ 123][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]0[aA][0-9a-fA-F]$' /proc/cpuinfo + return 1 + is_pithreeplus + [[ '' == \p\i\3\+ ]] + grep -q '^Revision\s*:\s*[ 123][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]0[dDeE][0-9a-fA-F]$' /proc/cpuinfo + return 1 + is_pithree + [[ '' == \p\i\3 ]] + grep -q '^Revision\s*:\s*[ 123][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]0[8dDeE][0-9a-fA-F]$' /proc/cpuinfo + return 1 + is_pitwo + [[ '' == \p\i\2 ]] + grep -q '^Revision\s*:\s*[ 123][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]04[0-9a-fA-F]$' /proc/cpuinfo + return 1 + is_pione + [[ '' == \p\i\1 ]] + grep -q '^Revision\s*:\s*00[0-9a-fA-F][0-9a-fA-F]$' /proc/cpuinfo + grep -q '^Revision\s*:\s*[ 123][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]0[0-36][0-9a-fA-F]$' /proc/cpuinfo + return 1 + is_cmone + [[ '' == \c\m\1 ]] + grep -q '^Revision\s*:\s*[ 123][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]06[0-9a-fA-F]$' /proc/cpuinfo + return 1 + is_pizerow + [[ '' == \p\i\0\w ]] + grep -q '^Revision\s*:\s*[ 123][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]0[cC][0-9a-fA-F]$' /proc/cpuinfo + return 1 + is_pizerow2 + [[ '' == \p\i\0\w\2 ]] + grep -q '^Revision\s*:\s*[ 123][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]12[0-9a-fA-F]$' /proc/cpuinfo + return 1 + is_pizero + [[ '' == \p\i\0 ]] + grep -q '^Revision\s*:\s*[ 123][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]09[0-9a-fA-F]$' /proc/cpuinfo + return 1 + return 1 + return 0 + basic_packages ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-11-13_12:39:26_CET [openHABian] Installing basic can'\''t-be-wrong packages (screen, vim, ...)... ' 2023-11-13_12:39:26_CET [openHABian] Installing basic can't-be-wrong packages (screen, vim, ...)... ++ command -v raspi-config + [[ -x /usr/bin/raspi-config ]] + cp /etc/init.d/raspi-config /etc/init.d/openhabian-config + sed -i -e s/raspi-config/openhabian-config/ /etc/init.d/openhabian-config + cond_redirect apt-get -o DPkg::Lock::Timeout=60 purge --yes raspi-config + [[ -n '' ]] + echo -e '\n\033[90;01m$ apt-get -o DPkg::Lock::Timeout=60 purge --yes raspi-config \033[39;49;00m' $ apt-get -o DPkg::Lock::Timeout=60 purge --yes raspi-config  + apt-get -o DPkg::Lock::Timeout=60 purge --yes raspi-config Reading package lists... Building dependency tree... Reading state information... The following packages were automatically installed and are no longer required: alsa-topology-conf alsa-ucm-conf alsa-utils bluez dos2unix iw libasound2 libasound2-data libatopology2 libfftw3-single3 libsamplerate0 python3-toml rfkill triggerhappy Use 'apt autoremove' to remove them. The following packages will be REMOVED: pi-bluetooth* raspberrypi-net-mods* raspberrypi-sys-mods* raspi-config* userconf-pi* 0 upgraded, 0 newly installed, 5 to remove and 19 not upgraded. After this operation, 324 kB disk space will be freed. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 63457 files and directories currently installed.) Removing pi-bluetooth (0.1.19) ... Removing raspberrypi-net-mods (1.4.0) ... Removing userconf-pi (0.9) ... Removing raspberrypi-sys-mods (20231003) ... Removing 'diversion of /usr/lib/python3.11/EXTERNALLY-MANAGED to /usr/lib/python3.11/EXTERNALLY-MANAGED.orig by raspberrypi-sys-mods' Removing raspi-config (20231018) ... Processing triggers for initramfs-tools (0.142) ... update-initramfs: Generating /boot/initrd.img-6.1.0-rpi4-rpi-v8 update-initramfs: Generating /boot/initrd.img-6.1.0-rpi4-rpi-v7l update-initramfs: Generating /boot/initrd.img-6.1.0-rpi4-rpi-v7 update-initramfs: Generating /boot/initrd.img-6.1.0-rpi4-rpi-v6 (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 63399 files and directories currently installed.) Purging configuration files for pi-bluetooth (0.1.19) ... Purging configuration files for userconf-pi (0.9) ... Purging configuration files for raspberrypi-sys-mods (20231003) ... Purging configuration files for raspberrypi-net-mods (1.4.0) ... Purging configuration files for raspi-config (20231018) ... + return 0 + cond_redirect apt-get -o DPkg::Lock::Timeout=60 install --yes acl arping apt-utils bash-completion bzip2 coreutils curl dirmngr git htop man-db mc multitail nano nmap lsb-release screen software-properties-common telnet usbutils util-linux vfu vim wget whiptail xz-utils zip + [[ -n '' ]] + echo -e '\n\033[90;01m$ apt-get -o DPkg::Lock::Timeout=60 install --yes acl arping apt-utils bash-completion bzip2 coreutils curl dirmngr git htop man-db mc multitail nano nmap lsb-release screen software-properties-common telnet usbutils util-linux vfu vim wget whiptail xz-utils zip \033[39;49;00m' $ apt-get -o DPkg::Lock::Timeout=60 install --yes acl arping apt-utils bash-completion bzip2 coreutils curl dirmngr git htop man-db mc multitail nano nmap lsb-release screen software-properties-common telnet usbutils util-linux vfu vim wget whiptail xz-utils zip  + apt-get -o DPkg::Lock::Timeout=60 install --yes acl arping apt-utils bash-completion bzip2 coreutils curl dirmngr git htop man-db mc multitail nano nmap lsb-release screen software-properties-common telnet usbutils util-linux vfu vim wget whiptail xz-utils zip Reading package lists... Building dependency tree... Reading state information... apt-utils is already the newest version (2.6.1). bash-completion is already the newest version (1:2.11-6). bzip2 is already the newest version (1.0.8-5+b2). bzip2 set to manually installed. coreutils is already the newest version (9.1-1). curl is already the newest version (7.88.1-10+rpi1). dirmngr is already the newest version (2.2.40-1.1). git is already the newest version (1:2.39.2-1.1). htop is already the newest version (3.2.2-2). man-db is already the newest version (2.11.2-2). nano is already the newest version (7.2-1). lsb-release is already the newest version (12.0-1). lsb-release set to manually installed. usbutils is already the newest version (1:014-1). util-linux is already the newest version (2.38.1-5). wget is already the newest version (1.21.3-1+b1). wget set to manually installed. whiptail is already the newest version (0.52.23-1+b1). whiptail set to manually installed. xz-utils is already the newest version (5.4.1-0.2). xz-utils set to manually installed. zip is already the newest version (3.0-13). The following packages were automatically installed and are no longer required: alsa-topology-conf alsa-ucm-conf alsa-utils bluez dos2unix iw libasound2 libasound2-data libatopology2 libfftw3-single3 libsamplerate0 python3-toml rfkill triggerhappy Use 'apt autoremove' to remove them. The following additional packages will be installed: appstream gir1.2-glib-2.0 gir1.2-packagekitglib-1.0 inetutils-telnet libappstream4 libblas3 libgirepository-1.0-1 libglib2.0-bin libglib2.0-data libgpm2 libgstreamer1.0-0 liblinear4 liblua5.3-0 libnet1 libpackagekit-glib2-18 libpcre2-32-0 libpcre3 libsodium23 libstemmer0d libutempter0 libxmlb2 libyascreen0 lua-lpeg mailcap mc-data nmap-common packagekit packagekit-tools python3-blinker python3-cffi-backend python3-cryptography python3-dbus python3-gi python3-httplib2 python3-jwt python3-lazr.restfulclient python3-lazr.uri python3-oauthlib python3-pyparsing python3-software-properties python3-wadllib vim-runtime Suggested packages: apt-config-icons gpm gstreamer1.0-tools liblinear-tools liblinear-dev arj catdvi | texlive-binaries dbview djvulibre-bin epub-utils genisoimage gv imagemagick libaspell-dev links | w3m | lynx odt2txt poppler-utils python python-boto python-tz unar wimtools xpdf | pdf-viewer ncat ndiff zenmap python-blinker-doc python-cryptography-doc python3-cryptography-vectors python-dbus-doc python3-crypto python-pyparsing-doc byobu | screenie | iselect ctags vim-doc vim-scripts The following NEW packages will be installed: acl appstream arping gir1.2-glib-2.0 gir1.2-packagekitglib-1.0 inetutils-telnet libappstream4 libblas3 libgirepository-1.0-1 libglib2.0-bin libglib2.0-data libgpm2 libgstreamer1.0-0 liblinear4 liblua5.3-0 libnet1 libpackagekit-glib2-18 libpcre2-32-0 libpcre3 libsodium23 libstemmer0d libutempter0 libxmlb2 libyascreen0 lua-lpeg mailcap mc mc-data multitail nmap nmap-common packagekit packagekit-tools python3-blinker python3-cffi-backend python3-cryptography python3-dbus python3-gi python3-httplib2 python3-jwt python3-lazr.restfulclient python3-lazr.uri python3-oauthlib python3-pyparsing python3-software-properties python3-wadllib screen software-properties-common telnet vfu vim vim-runtime 0 upgraded, 52 newly installed, 0 to remove and 19 not upgraded. Need to get 6,642 kB/23.6 MB of archives. After this operation, 109 MB of additional disk space will be used. Get:1 http://ftp.agdsn.de/pub/mirrors/raspbian/raspbian bookworm/main armhf inetutils-telnet armhf 2:2.4-2 [102 kB] Get:2 http://ftp.halifax.rwth-aachen.de/raspbian/raspbian bookworm/main armhf libblas3 armhf 3.11.0-2 [100.0 kB] Get:3 http://raspbian.raspberrypi.com/raspbian bookworm/main armhf liblinear4 armhf 2.3.0+dfsg-5 [38.1 kB] Get:5 http://ftp.agdsn.de/pub/mirrors/raspbian/raspbian bookworm/main armhf libpcre3 armhf 2:8.39-15 [313 kB] Get:4 http://ftp.halifax.rwth-aachen.de/raspbian/raspbian bookworm/main armhf liblua5.3-0 armhf 5.3.6-2 [98.3 kB] Get:8 http://raspbian.raspberrypi.com/raspbian bookworm/main armhf nmap armhf 7.93+dfsg1-1 [1,768 kB] Get:6 http://ftp.halifax.rwth-aachen.de/raspbian/raspbian bookworm/main armhf lua-lpeg armhf 1.0.2-2 [32.3 kB] Get:7 http://raspbian.raspberrypi.com/raspbian bookworm/main armhf nmap-common all 7.93+dfsg1-1 [4,148 kB] Get:9 http://raspbian.raspberrypi.com/raspbian bookworm/main armhf telnet all 0.17+2.4-2 [41.0 kB] Fetched 6,642 kB in 2s (2,900 kB/s) Selecting previously unselected package inetutils-telnet. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 63386 files and directories currently installed.) Preparing to unpack .../00-inetutils-telnet_2%3a2.4-2_armhf.deb ... Unpacking inetutils-telnet (2:2.4-2) ... Selecting previously unselected package libutempter0:armhf. Preparing to unpack .../01-libutempter0_1.2.1-3_armhf.deb ... Unpacking libutempter0:armhf (1.2.1-3) ... Selecting previously unselected package screen. Preparing to unpack .../02-screen_4.9.0-4_armhf.deb ... Unpacking screen (4.9.0-4) ... Selecting previously unselected package acl. Preparing to unpack .../03-acl_2.3.1-3_armhf.deb ... Unpacking acl (2.3.1-3) ... Selecting previously unselected package libstemmer0d:armhf. Preparing to unpack .../04-libstemmer0d_2.2.0-2_armhf.deb ... Unpacking libstemmer0d:armhf (2.2.0-2) ... Selecting previously unselected package libxmlb2:armhf. Preparing to unpack .../05-libxmlb2_0.3.10-2_armhf.deb ... Unpacking libxmlb2:armhf (0.3.10-2) ... Selecting previously unselected package libappstream4:armhf. Preparing to unpack .../06-libappstream4_0.16.1-2_armhf.deb ... Unpacking libappstream4:armhf (0.16.1-2) ... Selecting previously unselected package appstream. Preparing to unpack .../07-appstream_0.16.1-2_armhf.deb ... Unpacking appstream (0.16.1-2) ... Selecting previously unselected package libnet1:armhf. Preparing to unpack .../08-libnet1_1.1.6+dfsg-3.2_armhf.deb ... Unpacking libnet1:armhf (1.1.6+dfsg-3.2) ... Selecting previously unselected package arping. Preparing to unpack .../09-arping_2.23-1_armhf.deb ... Unpacking arping (2.23-1) ... Selecting previously unselected package libgirepository-1.0-1:armhf. Preparing to unpack .../10-libgirepository-1.0-1_1.74.0-3+b1_armhf.deb ... Unpacking libgirepository-1.0-1:armhf (1.74.0-3+b1) ... Selecting previously unselected package gir1.2-glib-2.0:armhf. Preparing to unpack .../11-gir1.2-glib-2.0_1.74.0-3+b1_armhf.deb ... Unpacking gir1.2-glib-2.0:armhf (1.74.0-3+b1) ... Selecting previously unselected package libpackagekit-glib2-18:armhf. Preparing to unpack .../12-libpackagekit-glib2-18_1.2.6-5_armhf.deb ... Unpacking libpackagekit-glib2-18:armhf (1.2.6-5) ... Selecting previously unselected package gir1.2-packagekitglib-1.0. Preparing to unpack .../13-gir1.2-packagekitglib-1.0_1.2.6-5_armhf.deb ... Unpacking gir1.2-packagekitglib-1.0 (1.2.6-5) ... Selecting previously unselected package libblas3:armhf. Preparing to unpack .../14-libblas3_3.11.0-2_armhf.deb ... Unpacking libblas3:armhf (3.11.0-2) ... Selecting previously unselected package libglib2.0-data. Preparing to unpack .../15-libglib2.0-data_2.74.6-1_all.deb ... Unpacking libglib2.0-data (2.74.6-1) ... Selecting previously unselected package libglib2.0-bin. Preparing to unpack .../16-libglib2.0-bin_2.74.6-1_armhf.deb ... Unpacking libglib2.0-bin (2.74.6-1) ... Selecting previously unselected package libgpm2:armhf. Preparing to unpack .../17-libgpm2_1.20.7-10+b2_armhf.deb ... Unpacking libgpm2:armhf (1.20.7-10+b2) ... Selecting previously unselected package libgstreamer1.0-0:armhf. Preparing to unpack .../18-libgstreamer1.0-0_1.22.0-2_armhf.deb ... Unpacking libgstreamer1.0-0:armhf (1.22.0-2) ... Selecting previously unselected package liblinear4:armhf. Preparing to unpack .../19-liblinear4_2.3.0+dfsg-5_armhf.deb ... Unpacking liblinear4:armhf (2.3.0+dfsg-5) ... Selecting previously unselected package liblua5.3-0:armhf. Preparing to unpack .../20-liblua5.3-0_5.3.6-2_armhf.deb ... Unpacking liblua5.3-0:armhf (5.3.6-2) ... Selecting previously unselected package libpcre2-32-0:armhf. Preparing to unpack .../21-libpcre2-32-0_10.42-1_armhf.deb ... Unpacking libpcre2-32-0:armhf (10.42-1) ... Selecting previously unselected package libpcre3:armhf. Preparing to unpack .../22-libpcre3_2%3a8.39-15_armhf.deb ... Unpacking libpcre3:armhf (2:8.39-15) ... Selecting previously unselected package libsodium23:armhf. Preparing to unpack .../23-libsodium23_1.0.18-1_armhf.deb ... Unpacking libsodium23:armhf (1.0.18-1) ... Selecting previously unselected package libyascreen0:armhf. Preparing to unpack .../24-libyascreen0_1.97-1_armhf.deb ... Unpacking libyascreen0:armhf (1.97-1) ... Selecting previously unselected package lua-lpeg:armhf. Preparing to unpack .../25-lua-lpeg_1.0.2-2_armhf.deb ... Unpacking lua-lpeg:armhf (1.0.2-2) ... Selecting previously unselected package mailcap. Preparing to unpack .../26-mailcap_3.70+nmu1_all.deb ... Unpacking mailcap (3.70+nmu1) ... Selecting previously unselected package mc-data. Preparing to unpack .../27-mc-data_3%3a4.8.29-2_all.deb ... Unpacking mc-data (3:4.8.29-2) ... Selecting previously unselected package mc. Preparing to unpack .../28-mc_3%3a4.8.29-2_armhf.deb ... Unpacking mc (3:4.8.29-2) ... Selecting previously unselected package multitail. Preparing to unpack .../29-multitail_6.5.0-5_armhf.deb ... Unpacking multitail (6.5.0-5) ... Selecting previously unselected package nmap-common. Preparing to unpack .../30-nmap-common_7.93+dfsg1-1_all.deb ... Unpacking nmap-common (7.93+dfsg1-1) ... Selecting previously unselected package nmap. Preparing to unpack .../31-nmap_7.93+dfsg1-1_armhf.deb ... Unpacking nmap (7.93+dfsg1-1) ... Selecting previously unselected package packagekit. Preparing to unpack .../32-packagekit_1.2.6-5_armhf.deb ... Unpacking packagekit (1.2.6-5) ... Selecting previously unselected package packagekit-tools. Preparing to unpack .../33-packagekit-tools_1.2.6-5_armhf.deb ... Unpacking packagekit-tools (1.2.6-5) ... Selecting previously unselected package python3-blinker. Preparing to unpack .../34-python3-blinker_1.5-1_all.deb ... Unpacking python3-blinker (1.5-1) ... Selecting previously unselected package python3-cffi-backend:armhf. Preparing to unpack .../35-python3-cffi-backend_1.15.1-5+b1_armhf.deb ... Unpacking python3-cffi-backend:armhf (1.15.1-5+b1) ... Selecting previously unselected package python3-cryptography. Preparing to unpack .../36-python3-cryptography_38.0.4-3_armhf.deb ... Unpacking python3-cryptography (38.0.4-3) ... Selecting previously unselected package python3-dbus. Preparing to unpack .../37-python3-dbus_1.3.2-4+b1_armhf.deb ... Unpacking python3-dbus (1.3.2-4+b1) ... Selecting previously unselected package python3-gi. Preparing to unpack .../38-python3-gi_3.42.2-3+b1_armhf.deb ... Unpacking python3-gi (3.42.2-3+b1) ... Selecting previously unselected package python3-pyparsing. Preparing to unpack .../39-python3-pyparsing_3.0.9-1_all.deb ... Unpacking python3-pyparsing (3.0.9-1) ... Selecting previously unselected package python3-httplib2. Preparing to unpack .../40-python3-httplib2_0.20.4-3_all.deb ... Unpacking python3-httplib2 (0.20.4-3) ... Selecting previously unselected package python3-jwt. Preparing to unpack .../41-python3-jwt_2.6.0-1_all.deb ... Unpacking python3-jwt (2.6.0-1) ... Selecting previously unselected package python3-lazr.uri. Preparing to unpack .../42-python3-lazr.uri_1.0.6-3_all.deb ... Unpacking python3-lazr.uri (1.0.6-3) ... Selecting previously unselected package python3-wadllib. Preparing to unpack .../43-python3-wadllib_1.3.6-4_all.deb ... Unpacking python3-wadllib (1.3.6-4) ... Selecting previously unselected package python3-oauthlib. Preparing to unpack .../44-python3-oauthlib_3.2.2-1_all.deb ... Unpacking python3-oauthlib (3.2.2-1) ... Selecting previously unselected package python3-lazr.restfulclient. Preparing to unpack .../45-python3-lazr.restfulclient_0.14.5-1_all.deb ... Unpacking python3-lazr.restfulclient (0.14.5-1) ... Selecting previously unselected package python3-software-properties. Preparing to unpack .../46-python3-software-properties_0.99.30-4_all.deb ... Unpacking python3-software-properties (0.99.30-4) ... Selecting previously unselected package software-properties-common. Preparing to unpack .../47-software-properties-common_0.99.30-4_all.deb ... Unpacking software-properties-common (0.99.30-4) ... Selecting previously unselected package telnet. Preparing to unpack .../48-telnet_0.17+2.4-2_all.deb ... Unpacking telnet (0.17+2.4-2) ... Selecting previously unselected package vfu. Preparing to unpack .../49-vfu_5.07-1_armhf.deb ... Unpacking vfu (5.07-1) ... Selecting previously unselected package vim-runtime. Preparing to unpack .../50-vim-runtime_2%3a9.0.1378-2_all.deb ... Adding 'diversion of /usr/share/vim/vim90/doc/help.txt to /usr/share/vim/vim90/doc/help.txt.vim-tiny by vim-runtime' Adding 'diversion of /usr/share/vim/vim90/doc/tags to /usr/share/vim/vim90/doc/tags.vim-tiny by vim-runtime' Unpacking vim-runtime (2:9.0.1378-2) ... Selecting previously unselected package vim. Preparing to unpack .../51-vim_2%3a9.0.1378-2_armhf.deb ... Unpacking vim (2:9.0.1378-2) ... Setting up python3-dbus (1.3.2-4+b1) ... Setting up lua-lpeg:armhf (1.0.2-2) ... Setting up libsodium23:armhf (1.0.18-1) ... Setting up libgpm2:armhf (1.20.7-10+b2) ... Setting up python3-jwt (2.6.0-1) ... Setting up libxmlb2:armhf (0.3.10-2) ... Setting up inetutils-telnet (2:2.4-2) ... update-alternatives: using /usr/bin/inetutils-telnet to provide /usr/bin/telnet (telnet) in auto mode Setting up libpackagekit-glib2-18:armhf (1.2.6-5) ... Setting up python3-lazr.uri (1.0.6-3) ... Setting up libnet1:armhf (1.1.6+dfsg-3.2) ... Setting up acl (2.3.1-3) ... Setting up libpcre3:armhf (2:8.39-15) ... Setting up libpcre2-32-0:armhf (10.42-1) ... Setting up libblas3:armhf (3.11.0-2) ... update-alternatives: using /usr/lib/arm-linux-gnueabihf/blas/libblas.so.3 to provide /usr/lib/arm-linux-gnueabihf/libblas.so.3 (libblas.so.3-arm-linux-gnueabihf) in auto mode Setting up libglib2.0-data (2.74.6-1) ... Setting up python3-pyparsing (3.0.9-1) ... Setting up python3-wadllib (1.3.6-4) ... Setting up mc-data (3:4.8.29-2) ... Setting up libutempter0:armhf (1.2.1-3) ... Setting up libyascreen0:armhf (1.97-1) ... Setting up nmap-common (7.93+dfsg1-1) ... Setting up liblua5.3-0:armhf (5.3.6-2) ... Setting up multitail (6.5.0-5) ... Setting up python3-httplib2 (0.20.4-3) ... Setting up libgirepository-1.0-1:armhf (1.74.0-3+b1) ... Setting up libstemmer0d:armhf (2.2.0-2) ... Setting up vim-runtime (2:9.0.1378-2) ... Setting up mailcap (3.70+nmu1) ... Setting up libgstreamer1.0-0:armhf (1.22.0-2) ... Setcap worked! gst-ptp-helper is not suid! Setting up python3-cffi-backend:armhf (1.15.1-5+b1) ... Setting up python3-blinker (1.5-1) ... Setting up vim (2:9.0.1378-2) ... update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/ex (ex) in auto mode update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/rview (rview) in auto mode update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/rvim (rvim) in auto mode update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/vi (vi) in auto mode update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/view (view) in auto mode update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/vim (vim) in auto mode update-alternatives: using /usr/bin/vim.basic to provide /usr/bin/vimdiff (vimdiff) in auto mode Setting up arping (2.23-1) ... Setting up telnet (0.17+2.4-2) ... Setting up mc (3:4.8.29-2) ... Setting up libglib2.0-bin (2.74.6-1) ... Setting up screen (4.9.0-4) ... Setting up libappstream4:armhf (0.16.1-2) ... Setting up liblinear4:armhf (2.3.0+dfsg-5) ... Setting up vfu (5.07-1) ... Setting up appstream (0.16.1-2) ... ✔ Metadata cache was updated successfully. Setting up python3-cryptography (38.0.4-3) ... Setting up gir1.2-glib-2.0:armhf (1.74.0-3+b1) ... Setting up packagekit (1.2.6-5) ... Created symlink /etc/systemd/user/sockets.target.wants/pk-debconf-helper.socket → /usr/lib/systemd/user/pk-debconf-helper.socket. Setting up packagekit-tools (1.2.6-5) ... Setting up nmap (7.93+dfsg1-1) ... Setting up gir1.2-packagekitglib-1.0 (1.2.6-5) ... Setting up python3-oauthlib (3.2.2-1) ... Setting up python3-gi (3.42.2-3+b1) ... Setting up python3-lazr.restfulclient (0.14.5-1) ... Setting up python3-software-properties (0.99.30-4) ... Setting up software-properties-common (0.99.30-4) ... Processing triggers for debianutils (5.7-0.4) ... Processing triggers for install-info (6.8-6+b1) ... Processing triggers for libc-bin (2.36-9+rpt2+deb12u3) ... Processing triggers for man-db (2.11.2-2) ... Processing triggers for dbus (1.14.8-2~deb12u1) ... + return 0 + echo OK OK + needed_packages ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-11-13_12:40:35_CET [openHABian] Installing additional needed packages... ' 2023-11-13_12:40:35_CET [openHABian] Installing additional needed packages... + cond_redirect apt-get -o DPkg::Lock::Timeout=60 install --yes apt-transport-https avahi-daemon bc jq mbpoll moreutils python3 python3-pip python3-wheel python3-setuptools sysstat fontconfig + [[ -n '' ]] + echo -e '\n\033[90;01m$ apt-get -o DPkg::Lock::Timeout=60 install --yes apt-transport-https avahi-daemon bc jq mbpoll moreutils python3 python3-pip python3-wheel python3-setuptools sysstat fontconfig \033[39;49;00m' $ apt-get -o DPkg::Lock::Timeout=60 install --yes apt-transport-https avahi-daemon bc jq mbpoll moreutils python3 python3-pip python3-wheel python3-setuptools sysstat fontconfig  + apt-get -o DPkg::Lock::Timeout=60 install --yes apt-transport-https avahi-daemon bc jq mbpoll moreutils python3 python3-pip python3-wheel python3-setuptools sysstat fontconfig Reading package lists... Building dependency tree... Reading state information... avahi-daemon is already the newest version (0.8-10). python3 is already the newest version (3.11.2-1). python3 set to manually installed. The following packages were automatically installed and are no longer required: alsa-topology-conf alsa-ucm-conf alsa-utils bluez dos2unix iw libasound2 libasound2-data libatopology2 libfftw3-single3 libsamplerate0 python3-toml rfkill triggerhappy Use 'apt autoremove' to remove them. The following additional packages will be installed: javascript-common libexpat1-dev libio-pty-perl libipc-run-perl libjq1 libjs-jquery libjs-sphinxdoc libjs-underscore libmodbus5 libonig5 libpython3-dev libpython3.11-dev libsensors-config libsensors5 libtime-duration-perl libtimedate-perl python3-dev python3-distutils python3-lib2to3 python3.11-dev Suggested packages: apache2 | lighttpd | httpd lm-sensors python-setuptools-doc isag The following NEW packages will be installed: apt-transport-https bc fontconfig javascript-common jq libexpat1-dev libio-pty-perl libipc-run-perl libjq1 libjs-jquery libjs-sphinxdoc libjs-underscore libmodbus5 libonig5 libpython3-dev libpython3.11-dev libsensors-config libsensors5 libtime-duration-perl libtimedate-perl mbpoll moreutils python3-dev python3-distutils python3-lib2to3 python3-pip python3-setuptools python3-wheel python3.11-dev sysstat 0 upgraded, 30 newly installed, 0 to remove and 19 not upgraded. Need to get 54.3 kB/8,538 kB of archives. After this operation, 36.5 MB of additional disk space will be used. Get:1 http://ftp.halifax.rwth-aachen.de/raspbian/raspbian bookworm/main armhf libmodbus5 armhf 3.1.6-2.1 [28.3 kB] Get:2 http://raspbian.raspberrypi.com/raspbian bookworm/main armhf mbpoll armhf 1.4.11+dfsg-2 [26.0 kB] Preconfiguring packages ... Fetched 54.3 kB in 0s (123 kB/s) Selecting previously unselected package bc. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 67984 files and directories currently installed.) Preparing to unpack .../00-bc_1.07.1-3_armhf.deb ... Unpacking bc (1.07.1-3) ... Selecting previously unselected package apt-transport-https. Preparing to unpack .../01-apt-transport-https_2.6.1_all.deb ... Unpacking apt-transport-https (2.6.1) ... Selecting previously unselected package fontconfig. Preparing to unpack .../02-fontconfig_2.14.1-4_armhf.deb ... Unpacking fontconfig (2.14.1-4) ... Selecting previously unselected package javascript-common. Preparing to unpack .../03-javascript-common_11+nmu1_all.deb ... Unpacking javascript-common (11+nmu1) ... Selecting previously unselected package libonig5:armhf. Preparing to unpack .../04-libonig5_6.9.8-1_armhf.deb ... Unpacking libonig5:armhf (6.9.8-1) ... Selecting previously unselected package libjq1:armhf. Preparing to unpack .../05-libjq1_1.6-2.1_armhf.deb ... Unpacking libjq1:armhf (1.6-2.1) ... Selecting previously unselected package jq. Preparing to unpack .../06-jq_1.6-2.1_armhf.deb ... Unpacking jq (1.6-2.1) ... Selecting previously unselected package libexpat1-dev:armhf. Preparing to unpack .../07-libexpat1-dev_2.5.0-1_armhf.deb ... Unpacking libexpat1-dev:armhf (2.5.0-1) ... Selecting previously unselected package libio-pty-perl. Preparing to unpack .../08-libio-pty-perl_1%3a1.17-1_armhf.deb ... Unpacking libio-pty-perl (1:1.17-1) ... Selecting previously unselected package libipc-run-perl. Preparing to unpack .../09-libipc-run-perl_20220807.0-1_all.deb ... Unpacking libipc-run-perl (20220807.0-1) ... Selecting previously unselected package libjs-jquery. Preparing to unpack .../10-libjs-jquery_3.6.1+dfsg+~3.5.14-1_all.deb ... Unpacking libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... Selecting previously unselected package libjs-underscore. Preparing to unpack .../11-libjs-underscore_1.13.4~dfsg+~1.11.4-3_all.deb ... Unpacking libjs-underscore (1.13.4~dfsg+~1.11.4-3) ... Selecting previously unselected package libjs-sphinxdoc. Preparing to unpack .../12-libjs-sphinxdoc_5.3.0-4_all.deb ... Unpacking libjs-sphinxdoc (5.3.0-4) ... Selecting previously unselected package libmodbus5:armhf. Preparing to unpack .../13-libmodbus5_3.1.6-2.1_armhf.deb ... Unpacking libmodbus5:armhf (3.1.6-2.1) ... Selecting previously unselected package libpython3.11-dev:armhf. Preparing to unpack .../14-libpython3.11-dev_3.11.2-6_armhf.deb ... Unpacking libpython3.11-dev:armhf (3.11.2-6) ... Selecting previously unselected package libpython3-dev:armhf. Preparing to unpack .../15-libpython3-dev_3.11.2-1_armhf.deb ... Unpacking libpython3-dev:armhf (3.11.2-1) ... Selecting previously unselected package libsensors-config. Preparing to unpack .../16-libsensors-config_1%3a3.6.0-7.1_all.deb ... Unpacking libsensors-config (1:3.6.0-7.1) ... Selecting previously unselected package libsensors5:armhf. Preparing to unpack .../17-libsensors5_1%3a3.6.0-7.1_armhf.deb ... Unpacking libsensors5:armhf (1:3.6.0-7.1) ... Selecting previously unselected package libtime-duration-perl. Preparing to unpack .../18-libtime-duration-perl_1.21-2_all.deb ... Unpacking libtime-duration-perl (1.21-2) ... Selecting previously unselected package libtimedate-perl. Preparing to unpack .../19-libtimedate-perl_2.3300-2_all.deb ... Unpacking libtimedate-perl (2.3300-2) ... Selecting previously unselected package mbpoll. Preparing to unpack .../20-mbpoll_1.4.11+dfsg-2_armhf.deb ... Unpacking mbpoll (1.4.11+dfsg-2) ... Selecting previously unselected package moreutils. Preparing to unpack .../21-moreutils_0.67-1+b1_armhf.deb ... Unpacking moreutils (0.67-1+b1) ... Selecting previously unselected package python3.11-dev. Preparing to unpack .../22-python3.11-dev_3.11.2-6_armhf.deb ... Unpacking python3.11-dev (3.11.2-6) ... Selecting previously unselected package python3-lib2to3. Preparing to unpack .../23-python3-lib2to3_3.11.2-3_all.deb ... Unpacking python3-lib2to3 (3.11.2-3) ... Selecting previously unselected package python3-distutils. Preparing to unpack .../24-python3-distutils_3.11.2-3_all.deb ... Unpacking python3-distutils (3.11.2-3) ... Selecting previously unselected package python3-dev. Preparing to unpack .../25-python3-dev_3.11.2-1_armhf.deb ... Unpacking python3-dev (3.11.2-1) ... Selecting previously unselected package python3-setuptools. Preparing to unpack .../26-python3-setuptools_66.1.1-1_all.deb ... Unpacking python3-setuptools (66.1.1-1) ... Selecting previously unselected package python3-wheel. Preparing to unpack .../27-python3-wheel_0.38.4-2_all.deb ... Unpacking python3-wheel (0.38.4-2) ... Selecting previously unselected package python3-pip. Preparing to unpack .../28-python3-pip_23.0.1+dfsg-1+rpt1_all.deb ... Unpacking python3-pip (23.0.1+dfsg-1+rpt1) ... Selecting previously unselected package sysstat. Preparing to unpack .../29-sysstat_12.6.1-1_armhf.deb ... Unpacking sysstat (12.6.1-1) ... Setting up javascript-common (11+nmu1) ... Setting up fontconfig (2.14.1-4) ... Regenerating fonts cache... done. Setting up libmodbus5:armhf (3.1.6-2.1) ... Setting up apt-transport-https (2.6.1) ... Setting up libio-pty-perl (1:1.17-1) ... Setting up libsensors-config (1:3.6.0-7.1) ... Setting up bc (1.07.1-3) ... Setting up mbpoll (1.4.11+dfsg-2) ... Setting up libexpat1-dev:armhf (2.5.0-1) ... Setting up libpython3.11-dev:armhf (3.11.2-6) ... Setting up libipc-run-perl (20220807.0-1) ... Setting up libsensors5:armhf (1:3.6.0-7.1) ... Setting up libtime-duration-perl (1.21-2) ... Setting up libtimedate-perl (2.3300-2) ... Setting up libjs-jquery (3.6.1+dfsg+~3.5.14-1) ... Setting up python3-lib2to3 (3.11.2-3) ... Setting up sysstat (12.6.1-1) ... Creating config file /etc/default/sysstat with new version update-alternatives: using /usr/bin/sar.sysstat to provide /usr/bin/sar (sar) in auto mode Created symlink /etc/systemd/system/sysstat.service.wants/sysstat-collect.timer → /lib/systemd/system/sysstat-collect.timer. Created symlink /etc/systemd/system/sysstat.service.wants/sysstat-summary.timer → /lib/systemd/system/sysstat-summary.timer. Created symlink /etc/systemd/system/multi-user.target.wants/sysstat.service → /lib/systemd/system/sysstat.service. Setting up libonig5:armhf (6.9.8-1) ... Setting up libjs-underscore (1.13.4~dfsg+~1.11.4-3) ... Setting up python3-distutils (3.11.2-3) ... Setting up moreutils (0.67-1+b1) ... Setting up libpython3-dev:armhf (3.11.2-1) ... Setting up python3-setuptools (66.1.1-1) ... Setting up libjq1:armhf (1.6-2.1) ... Setting up python3.11-dev (3.11.2-6) ... Setting up python3-wheel (0.38.4-2) ... Setting up python3-pip (23.0.1+dfsg-1+rpt1) ... Setting up libjs-sphinxdoc (5.3.0-4) ... Setting up jq (1.6-2.1) ... Setting up python3-dev (3.11.2-1) ... Processing triggers for libc-bin (2.36-9+rpt2+deb12u3) ... Processing triggers for man-db (2.11.2-2) ... Processing triggers for install-info (6.8-6+b1) ... + return 0 + echo OK OK + is_pi_wlan + is_pifour + [[ '' == \p\i\4 ]] + grep -q '^Revision\s*:\s*[ 123][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]11[0-9a-fA-F]$' /proc/cpuinfo + return 1 + is_pi400 + [[ '' == \p\i\4\0\0 ]] + grep -q '^Revision\s*:\s*[ 123][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]13[0-9a-fA-F]$' /proc/cpuinfo + return 1 + is_pithreeplus + [[ '' == \p\i\3\+ ]] + grep -q '^Revision\s*:\s*[ 123][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]0[dDeE][0-9a-fA-F]$' /proc/cpuinfo + return 1 + is_pithree + [[ '' == \p\i\3 ]] + grep -q '^Revision\s*:\s*[ 123][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]0[8dDeE][0-9a-fA-F]$' /proc/cpuinfo + return 1 + is_pizerow + [[ '' == \p\i\0\w ]] + grep -q '^Revision\s*:\s*[ 123][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]0[cC][0-9a-fA-F]$' /proc/cpuinfo + return 1 + is_pizerow2 + [[ '' == \p\i\0\w\2 ]] + grep -q '^Revision\s*:\s*[ 123][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]12[0-9a-fA-F]$' /proc/cpuinfo + return 1 + return 1 + bashrc_copy ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-11-13_12:40:54_CET [openHABian] Adding slightly tuned bash configuration files to system... ' 2023-11-13_12:40:54_CET [openHABian] Adding slightly tuned bash configuration files to system... + cp /opt/openhabian/includes/generic/bash.bashrc /etc/bash.bashrc + cp /opt/openhabian/includes/generic/bashrc-root /root/.bashrc + cp /opt/openhabian/includes/generic/bash_profile /home/openhabian/.bash_profile + cp /opt/openhabian/includes/generic/bash_aliases /home/openhabian/.bash_aliases + chown openhabian:openhabian /home/openhabian/.bash_aliases /home/openhabian/.bash_logout /home/openhabian/.bash_profile + echo OK OK + cp /opt/openhabian/includes/generic/bash_aliases /root/.bash_aliases + vimrc_copy ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-11-13_12:40:54_CET [openHABian] Adding slightly tuned vim configuration file to system... ' 2023-11-13_12:40:54_CET [openHABian] Adding slightly tuned vim configuration file to system... + cp /opt/openhabian/includes/vimrc /etc/vim/vimrc + echo OK OK + install_tailscale install + local 'installText=We will install the tailscale VPN client on your system. Use it to securely interconnect multiple openHAB(ian) instances.\nSee https://tailscale.com/blog/how-tailscale-works/ for a comprehensive explanation how it creates a secure VPN. For personal use, you can get a free solo service from tailscale.com.' + local 'removeText=We will remove the tailscale VPN client from your system.\n\nDouble-check ~/.ssh/authorized_keys and eventually remove the admin key.' + local serviceTargetDir=/lib/systemd/system + local sudoersFile=011_openhab-tailscale + local sudoersPath=/etc/sudoers.d + local keyName=tailscale-archive-keyring + [[ -n 1 ]] + [[ ! -v preauthkey ]] ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo '2023-11-13_12:40:54_CET [openHABian] tailscale VPN installation... SKIPPED (no preauthkey defined)' 2023-11-13_12:40:54_CET [openHABian] tailscale VPN installation... SKIPPED (no preauthkey defined) + return 1 + misc_system_settings ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-11-13_12:40:54_CET [openHABian] Applying miscellaneous system settings... ' 2023-11-13_12:40:54_CET [openHABian] Applying miscellaneous system settings... + cond_echo 'Creating a README note for end user'\''s home folder' + [[ -z '' ]] + echo -e '\033[33;01mCreating a README note for end user'\''s home folder\033[39;49;00m' Creating a README note for end user's home folder + echo -e 'This is your linux user'\''s "home" folder.\nPlace personal files, programs or scripts here.' + cond_echo 'Creating SSH key files' + [[ -z '' ]] + echo -e '\033[33;01mCreating SSH key files\033[39;49;00m' Creating SSH key files + cond_redirect mkdir -p /home/openhabian/.ssh + [[ -n '' ]] + echo -e '\n\033[90;01m$ mkdir -p /home/openhabian/.ssh \033[39;49;00m' $ mkdir -p /home/openhabian/.ssh  + mkdir -p /home/openhabian/.ssh + return 0 + cond_redirect chmod 700 /home/openhabian/.ssh + [[ -n '' ]] + echo -e '\n\033[90;01m$ chmod 700 /home/openhabian/.ssh \033[39;49;00m' $ chmod 700 /home/openhabian/.ssh  + chmod 700 /home/openhabian/.ssh + return 0 + cond_redirect touch /home/openhabian/.ssh/authorized_keys + [[ -n '' ]] + echo -e '\n\033[90;01m$ touch /home/openhabian/.ssh/authorized_keys \033[39;49;00m' $ touch /home/openhabian/.ssh/authorized_keys  + touch /home/openhabian/.ssh/authorized_keys + return 0 + cond_redirect chmod 600 /home/openhabian/.ssh/authorized_keys + [[ -n '' ]] + echo -e '\n\033[90;01m$ chmod 600 /home/openhabian/.ssh/authorized_keys \033[39;49;00m' $ chmod 600 /home/openhabian/.ssh/authorized_keys  + chmod 600 /home/openhabian/.ssh/authorized_keys + return 0 + cond_redirect chown -R openhabian:openhabian /home/openhabian/.ssh + [[ -n '' ]] + echo -e '\n\033[90;01m$ chown -R openhabian:openhabian /home/openhabian/.ssh \033[39;49;00m' $ chown -R openhabian:openhabian /home/openhabian/.ssh  + chown -R openhabian:openhabian /home/openhabian/.ssh + return 0 + is_raspbian + [[ '' == \r\a\s\p\b\i\a\n ]] ++ cat /etc/os-release + [[ PRETTY_NAME="Raspbian GNU/Linux 12 (bookworm)" NAME="Raspbian GNU/Linux" VERSION_ID="12" VERSION="12 (bookworm)" VERSION_CODENAME=bookworm ID=raspbian ID_LIKE=debian HOME_URL="http://www.raspbian.org/" SUPPORT_URL="http://www.raspbian.org/RaspbianForums" BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs" =~ Raspbian ]] + return 0 + sed -i /SystemMax/d /etc/systemd/journald.conf + echo -e 'SystemMaxUse=50M\nSystemMaxFileSize=10M\nSystemMaxFiles=5' + cond_echo 'Creating persistent systemd journal folder location: /var/log/journal' + [[ -z '' ]] + echo -e '\033[33;01mCreating persistent systemd journal folder location: /var/log/journal\033[39;49;00m' Creating persistent systemd journal folder location: /var/log/journal + cond_redirect mkdir -p /var/log/journal + [[ -n '' ]] + echo -e '\n\033[90;01m$ mkdir -p /var/log/journal \033[39;49;00m' $ mkdir -p /var/log/journal  + mkdir -p /var/log/journal + return 0 + cond_redirect systemd-tmpfiles --create --prefix /var/log/journal + [[ -n '' ]] + echo -e '\n\033[90;01m$ systemd-tmpfiles --create --prefix /var/log/journal \033[39;49;00m' $ systemd-tmpfiles --create --prefix /var/log/journal  + systemd-tmpfiles --create --prefix /var/log/journal + return 0 + cond_echo 'Keeping at most 30 days of systemd journal entries' + [[ -z '' ]] + echo -e '\033[33;01mKeeping at most 30 days of systemd journal entries\033[39;49;00m' Keeping at most 30 days of systemd journal entries + cond_redirect journalctl --vacuum-time=30d + [[ -n '' ]] + echo -e '\n\033[90;01m$ journalctl --vacuum-time=30d \033[39;49;00m' $ journalctl --vacuum-time=30d  + journalctl --vacuum-time=30d Vacuuming done, freed 0B of archived journals from /run/log/journal. Vacuuming done, freed 0B of archived journals from /var/log/journal. Deleted archived journal /var/log/journal/3173c65e91354327976051e8a006a34e/system@ec46ea18c6fb481ca83458969217b464-0000000000000001-00060751bd9c242c.journal (4.2M). Vacuuming done, freed 4.2M of archived journals from /var/log/journal/3173c65e91354327976051e8a006a34e. + return 0 + grep -qs '^[[:space:]]*dtparam=i2c_arm=' /boot/config.txt + echo dtparam=i2c_arm=on + grep -qs '^[[:space:]]*dtparam=i2c1=' /boot/config.txt + echo dtparam=i2c1=on + modprobe i2c_dev + cond_redirect install -m 755 /opt/openhabian/includes/INA219.py /usr/local/bin/waveshare_ups + [[ -n '' ]] + echo -e '\n\033[90;01m$ install -m 755 /opt/openhabian/includes/INA219.py /usr/local/bin/waveshare_ups \033[39;49;00m' $ install -m 755 /opt/openhabian/includes/INA219.py /usr/local/bin/waveshare_ups  + install -m 755 /opt/openhabian/includes/INA219.py /usr/local/bin/waveshare_ups + return 0 + cond_echo 'Setting a distinguishable apt User-Agent' + [[ -z '' ]] + echo -e '\033[33;01mSetting a distinguishable apt User-Agent\033[39;49;00m' Setting a distinguishable apt User-Agent + echo 'Acquire { http::User-Agent "Debian APT-HTTP/1.3 openHABian"; };' + echo OK OK + add_admin_ssh_key + [[ -z '' ]] + return 0 + firemotd_setup + running_in_docker + [[ -n '' ]] + grep -qs 'docker\|lxc' /proc/1/cgroup + [[ -f /.dockerenv ]] + return 1 + running_on_github + [[ -n '' ]] + return 1 + local firemotdDir=/opt/FireMotD + dpkg -s bc sysstat jq moreutils make + firemotd_download /opt ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-11-13_12:40:54_CET [openHABian] Downloading FireMotD... ' 2023-11-13_12:40:54_CET [openHABian] Downloading FireMotD... + [[ -d /opt/FireMotD ]] + cond_echo '\nUpdate... ' + [[ -z '' ]] + echo -e '\033[33;01m\nUpdate... \033[39;49;00m'  Update...  + cond_redirect update_git_repo /opt/FireMotD master + [[ -n '' ]] + echo -e '\n\033[90;01m$ update_git_repo /opt/FireMotD master \033[39;49;00m' $ update_git_repo /opt/FireMotD master  + update_git_repo /opt/FireMotD master + local branch + local path + branch=master + path=/opt/FireMotD ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 ++ basename /opt/FireMotD + echo -n '2023-11-13_12:40:54_CET [openHABian] Updating FireMotD, master branch from git... ' 2023-11-13_12:40:54_CET [openHABian] Updating FireMotD, master branch from git... + cond_redirect git -C /opt/FireMotD fetch origin + [[ -n '' ]] + echo -e '\n\033[90;01m$ git -C /opt/FireMotD fetch origin \033[39;49;00m' $ git -C /opt/FireMotD fetch origin  + git -C /opt/FireMotD fetch origin + return 0 + cond_redirect git -C /opt/FireMotD fetch --tags --force --prune + [[ -n '' ]] + echo -e '\n\033[90;01m$ git -C /opt/FireMotD fetch --tags --force --prune \033[39;49;00m' $ git -C /opt/FireMotD fetch --tags --force --prune  + git -C /opt/FireMotD fetch --tags --force --prune + return 0 + cond_redirect git -C /opt/FireMotD reset --hard origin/master + [[ -n '' ]] + echo -e '\n\033[90;01m$ git -C /opt/FireMotD reset --hard origin/master \033[39;49;00m' $ git -C /opt/FireMotD reset --hard origin/master  + git -C /opt/FireMotD reset --hard origin/master HEAD is now at 3d2bea6 fix + return 0 + cond_redirect git -C /opt/FireMotD clean --force -x -d + [[ -n '' ]] + echo -e '\n\033[90;01m$ git -C /opt/FireMotD clean --force -x -d \033[39;49;00m' $ git -C /opt/FireMotD clean --force -x -d  + git -C /opt/FireMotD clean --force -x -d + return 0 + cond_redirect git -C /opt/FireMotD checkout master + [[ -n '' ]] + echo -e '\n\033[90;01m$ git -C /opt/FireMotD checkout master \033[39;49;00m' $ git -C /opt/FireMotD checkout master  + git -C /opt/FireMotD checkout master Already on 'master' Your branch is up to date with 'origin/master'. + return 0 + echo OK OK + return 0 + echo OK OK ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-11-13_12:40:55_CET [openHABian] Installing FireMotD... ' 2023-11-13_12:40:55_CET [openHABian] Installing FireMotD... + cond_redirect make --always-make --directory=/opt/FireMotD install + [[ -n '' ]] + echo -e '\n\033[90;01m$ make --always-make --directory=/opt/FireMotD install \033[39;49;00m' $ make --always-make --directory=/opt/FireMotD install  + make --always-make --directory=/opt/FireMotD install make: Entering directory '/opt/FireMotD' cp FireMotD /usr/local/bin/FireMotD chmod 755 /usr/local/bin/FireMotD mkdir -p /usr/share/firemotd/data mkdir -p /usr/share/firemotd/templates mkdir -p /usr/share/firemotd/themes mkdir -p /usr/share/firemotd/cache cp templates/* /usr/share/firemotd/templates cp themes/* /usr/share/firemotd/themes make: Leaving directory '/opt/FireMotD' + return 0 + cond_redirect make --always-make --directory=/opt/FireMotD bash_completion + [[ -n '' ]] + echo -e '\n\033[90;01m$ make --always-make --directory=/opt/FireMotD bash_completion \033[39;49;00m' $ make --always-make --directory=/opt/FireMotD bash_completion  + make --always-make --directory=/opt/FireMotD bash_completion make: Entering directory '/opt/FireMotD' cp bash_completion.d/FireMotD /etc/bash_completion.d/FireMotD make: Leaving directory '/opt/FireMotD' + return 0 + echo OK OK ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-11-13_12:40:55_CET [openHABian] Generating FireMotD theme... ' 2023-11-13_12:40:55_CET [openHABian] Generating FireMotD theme... + cond_redirect FireMotD -S -d -D all + [[ -n '' ]] + echo -e '\n\033[90;01m$ FireMotD -S -d -D all \033[39;49;00m' $ FireMotD -S -d -D all  + FireMotD -S -d -D all 2023-11-13 12:40:55,428: FireMotD: Info: Debug mode 2023-11-13 12:40:55,432: FireMotD: Info: FireMotD action save started 2023-11-13 12:40:55,435: FireMotD: Info: Action "save" 2023-11-13 12:40:55,439: FireMotD: Info: Exportfile /usr/share/firemotd/data/FireMotD.json not found. 2023-11-13 12:40:55,442: FireMotD: Info: Template type set to all. Overwriting.. 2023-11-13 12:40:55,486: FireMotD: Info: Exploring HostIp 2023-11-13 12:40:55,575: FireMotD: Info: Exploring Release 2023-11-13 12:40:55,703: FireMotD: Info: Exploring Kernel 2023-11-13 12:40:55,788: FireMotD: Info: Exploring Platform 2023-11-13 12:40:55,888: FireMotD: Info: Exploring InstallDate 2023-11-13 12:40:55,972: FireMotD: Info: Exploring Updates W: http://raspbian.raspberrypi.com/raspbian/dists/bookworm/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details. 2023-11-13 12:41:00,085: FireMotD: Info: Exploring Httpd 2023-11-13 12:41:00,180: FireMotD: Info: Exploring Nginx 2023-11-13 12:41:00,264: FireMotD: Info: Exploring Mysql 2023-11-13 12:41:00,388: FireMotD: Info: Exploring Postgres 2023-11-13 12:41:00,472: FireMotD: Info: Exploring Php 2023-11-13 12:41:00,598: FireMotD: Info: Exploring Elasticsearch 2023-11-13 12:41:00,682: FireMotD: Info: Exploring Logstash 2023-11-13 12:41:00,766: FireMotD: Info: Exploring Kibana 2023-11-13 12:41:00,850: FireMotD: Info: Export system data to "/usr/share/firemotd/data/FireMotD.json" finished. 2023-11-13 12:41:00,856: FireMotD: Info: ExportFile: -rwxrw-rw- 1 root root 3245 Nov 13 12:41 /usr/share/firemotd/data/FireMotD.json 2023-11-13 12:41:00,859: FireMotD: Info: FireMotD action save finished + return 0 + cond_redirect FireMotD -G Gray + [[ -n '' ]] + echo -e '\n\033[90;01m$ FireMotD -G Gray \033[39;49;00m' $ FireMotD -G Gray  + FireMotD -G Gray + return 0 + echo OK OK + grep -qs FireMotD /home/openhabian/.bash_profile ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-11-13_12:41:07_CET [openHABian] Setting up FireMotD apt updates count service... ' 2023-11-13_12:41:07_CET [openHABian] Setting up FireMotD apt updates count service... + cond_echo '\nMake FireMotD check for new updates every night... ' + [[ -z '' ]] + echo -e '\033[33;01m\nMake FireMotD check for new updates every night... \033[39;49;00m'  Make FireMotD check for new updates every night...  + cond_redirect install -m 644 /opt/openhabian/includes/firemotd/firemotd.service /opt/openhabian/includes/firemotd/firemotd.timer /etc/systemd/system/ + [[ -n '' ]] + echo -e '\n\033[90;01m$ install -m 644 /opt/openhabian/includes/firemotd/firemotd.service /opt/openhabian/includes/firemotd/firemotd.timer /etc/systemd/system/ \033[39;49;00m' $ install -m 644 /opt/openhabian/includes/firemotd/firemotd.service /opt/openhabian/includes/firemotd/firemotd.timer /etc/systemd/system/  + install -m 644 /opt/openhabian/includes/firemotd/firemotd.service /opt/openhabian/includes/firemotd/firemotd.timer /etc/systemd/system/ + return 0 + cond_redirect systemctl -q daemon-reload + [[ -n '' ]] + echo -e '\n\033[90;01m$ systemctl -q daemon-reload \033[39;49;00m' $ systemctl -q daemon-reload  + systemctl -q daemon-reload + return 0 + cond_redirect systemctl enable --now firemotd.timer + cond_echo '\nMake FireMotD check for new updates after using apt... ' + [[ -z '' ]] + echo -e '\033[33;01m\nMake FireMotD check for new updates after using apt... \033[39;49;00m'  Make FireMotD check for new updates after using apt...  + cond_redirect install -m 644 /opt/openhabian/includes/firemotd/15firemotd /etc/apt/apt.conf.d/ + [[ -n '' ]] + echo -e '\n\033[90;01m$ install -m 644 /opt/openhabian/includes/firemotd/15firemotd /etc/apt/apt.conf.d/ \033[39;49;00m' $ install -m 644 /opt/openhabian/includes/firemotd/15firemotd /etc/apt/apt.conf.d/  + install -m 644 /opt/openhabian/includes/firemotd/15firemotd /etc/apt/apt.conf.d/ + return 0 + cond_echo '\nInitial FireMotD updates check' + [[ -z '' ]] + echo -e '\033[33;01m\nInitial FireMotD updates check\033[39;49;00m'  Initial FireMotD updates check + cond_redirect FireMotD -S + [[ -n '' ]] + echo -e '\n\033[90;01m$ FireMotD -S \033[39;49;00m' $ FireMotD -S  + FireMotD -S W: http://raspbian.raspberrypi.com/raspbian/dists/bookworm/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details. + return 0 + echo OK OK + java_install 17 + openhab_is_running + openhab_is_installed + openhab2_is_installed ++ dpkg -s openhab2 ++ grep Status ++ cut '-d ' -f2 + [[ '' =~ ^(install|hold)$ ]] + return 1 + openhab3_is_installed ++ dpkg -s openhab ++ grep -E '^Version' ++ cut -d ' ' -f2 ++ cut -d . -f1 + [[ '' = 3 ]] + return 1 + openhab4_is_installed ++ dpkg -s openhab ++ grep -E '^Version' ++ cut -d ' ' -f2 ++ cut -d . -f1 + [[ '' = 4 ]] + return 1 + return 1 + return 1 + [[ -d /opt/jdk ]] + openjdk_install_apt 17 + dpkg -s openjdk-17-jre-headless + openjdk_fetch_apt 17 + apt-cache show openjdk-17-jre-headless + dpkg --configure -a ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-11-13_12:41:13_CET [openHABian] Fetching OpenJDK 17... ' 2023-11-13_12:41:13_CET [openHABian] Fetching OpenJDK 17... + cond_redirect apt-get install --download-only --yes openjdk-17-jre-headless + [[ -n '' ]] + echo -e '\n\033[90;01m$ apt-get install --download-only --yes openjdk-17-jre-headless \033[39;49;00m' $ apt-get install --download-only --yes openjdk-17-jre-headless  + apt-get install --download-only --yes openjdk-17-jre-headless Reading package lists... Building dependency tree... Reading state information... The following packages were automatically installed and are no longer required: bluez dos2unix iw python3-toml rfkill triggerhappy Use 'apt autoremove' to remove them. The following additional packages will be installed: ca-certificates-java java-common libavahi-client3 libcups2 libgraphite2-3 libharfbuzz0b liblcms2-2 Suggested packages: default-jre cups-common liblcms2-utils fonts-dejavu-extra fonts-ipafont-gothic fonts-ipafont-mincho fonts-wqy-microhei | fonts-wqy-zenhei fonts-indic The following NEW packages will be installed: ca-certificates-java java-common libavahi-client3 libcups2 libgraphite2-3 libharfbuzz0b liblcms2-2 openjdk-17-jre-headless 0 upgraded, 8 newly installed, 0 to remove and 19 not upgraded. Need to get 40.7 MB/43.0 MB of archives. After this operation, 179 MB of additional disk space will be used. Get:1 http://archive.raspberrypi.com/debian bookworm/main armhf openjdk-17-jre-headless armhf 1:17.0.8+7-1~deb12u1+rpt1 [40.7 MB] Fetched 40.7 MB in 4s (11.0 MB/s) Download complete and in download only mode + return 0 + echo OK OK ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-11-13_12:41:19_CET [openHABian] Installing OpenJDK 17... ' 2023-11-13_12:41:19_CET [openHABian] Installing OpenJDK 17... + cond_redirect java_alternatives_reset + [[ -n '' ]] + echo -e '\n\033[90;01m$ java_alternatives_reset \033[39;49;00m' $ java_alternatives_reset  + java_alternatives_reset + local jdkBin ++ find '/opt/jdk/*/bin' ... -print -quit find: ‘/opt/jdk/*/bin’: No such file or directory find: ‘...’: No such file or directory + jdkBin= + cond_redirect find '' -maxdepth 1 -perm -111 -type f -exec bash -c 'update-alternatives --quiet --remove-all $(basename {})' ';' + [[ -n '' ]] + echo -e '\n\033[90;01m$ find -maxdepth 1 -perm -111 -type f -exec bash -c update-alternatives --quiet --remove-all $(basename {}) ; \033[39;49;00m' $ find -maxdepth 1 -perm -111 -type f -exec bash -c update-alternatives --quiet --remove-all $(basename {}) ;  + find '' -maxdepth 1 -perm -111 -type f -exec bash -c 'update-alternatives --quiet --remove-all $(basename {})' ';' find: ‘’: No such file or directory + return 1 + return 1 + cond_redirect apt-get install --yes -o DPkg::Lock::Timeout=60 openjdk-17-jre-headless + [[ -n '' ]] + echo -e '\n\033[90;01m$ apt-get install --yes -o DPkg::Lock::Timeout=60 openjdk-17-jre-headless \033[39;49;00m' $ apt-get install --yes -o DPkg::Lock::Timeout=60 openjdk-17-jre-headless  + apt-get install --yes -o DPkg::Lock::Timeout=60 openjdk-17-jre-headless Reading package lists... Building dependency tree... Reading state information... The following packages were automatically installed and are no longer required: bluez dos2unix iw python3-toml rfkill triggerhappy Use 'apt autoremove' to remove them. The following additional packages will be installed: ca-certificates-java java-common libavahi-client3 libcups2 libgraphite2-3 libharfbuzz0b liblcms2-2 Suggested packages: default-jre cups-common liblcms2-utils fonts-dejavu-extra fonts-ipafont-gothic fonts-ipafont-mincho fonts-wqy-microhei | fonts-wqy-zenhei fonts-indic The following NEW packages will be installed: ca-certificates-java java-common libavahi-client3 libcups2 libgraphite2-3 libharfbuzz0b liblcms2-2 openjdk-17-jre-headless 0 upgraded, 8 newly installed, 0 to remove and 19 not upgraded. Need to get 0 B/43.0 MB of archives. After this operation, 179 MB of additional disk space will be used. Selecting previously unselected package java-common. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 69724 files and directories currently installed.) Preparing to unpack .../0-java-common_0.74_all.deb ... Unpacking java-common (0.74) ... Selecting previously unselected package libavahi-client3:armhf. Preparing to unpack .../1-libavahi-client3_0.8-10_armhf.deb ... Unpacking libavahi-client3:armhf (0.8-10) ... Selecting previously unselected package libcups2:armhf. Preparing to unpack .../2-libcups2_2.4.2-3+deb12u1_armhf.deb ... Unpacking libcups2:armhf (2.4.2-3+deb12u1) ... Selecting previously unselected package liblcms2-2:armhf. Preparing to unpack .../3-liblcms2-2_2.14-2_armhf.deb ... Unpacking liblcms2-2:armhf (2.14-2) ... Selecting previously unselected package libgraphite2-3:armhf. Preparing to unpack .../4-libgraphite2-3_1.3.14-1_armhf.deb ... Unpacking libgraphite2-3:armhf (1.3.14-1) ... Selecting previously unselected package libharfbuzz0b:armhf. Preparing to unpack .../5-libharfbuzz0b_6.0.0+dfsg-3_armhf.deb ... Unpacking libharfbuzz0b:armhf (6.0.0+dfsg-3) ... Selecting previously unselected package openjdk-17-jre-headless:armhf. Preparing to unpack .../6-openjdk-17-jre-headless_1%3a17.0.8+7-1~deb12u1+rpt1_armhf.deb ... Unpacking openjdk-17-jre-headless:armhf (1:17.0.8+7-1~deb12u1+rpt1) ... Selecting previously unselected package ca-certificates-java. Preparing to unpack .../7-ca-certificates-java_20230103_all.deb ... Unpacking ca-certificates-java (20230103) ... Setting up libgraphite2-3:armhf (1.3.14-1) ... Setting up liblcms2-2:armhf (2.14-2) ... Setting up java-common (0.74) ... Setting up libharfbuzz0b:armhf (6.0.0+dfsg-3) ... Setting up libavahi-client3:armhf (0.8-10) ... Setting up libcups2:armhf (2.4.2-3+deb12u1) ... Setting up openjdk-17-jre-headless:armhf (1:17.0.8+7-1~deb12u1+rpt1) ... update-alternatives: using /usr/lib/jvm/java-17-openjdk-armhf/bin/java to provide /usr/bin/java (java) in auto mode update-alternatives: using /usr/lib/jvm/java-17-openjdk-armhf/bin/jpackage to provide /usr/bin/jpackage (jpackage) in auto mode update-alternatives: using /usr/lib/jvm/java-17-openjdk-armhf/bin/keytool to provide /usr/bin/keytool (keytool) in auto mode update-alternatives: using /usr/lib/jvm/java-17-openjdk-armhf/bin/rmiregistry to provide /usr/bin/rmiregistry (rmiregistry) in auto mode update-alternatives: using /usr/lib/jvm/java-17-openjdk-armhf/lib/jexec to provide /usr/bin/jexec (jexec) in auto mode Setting up ca-certificates-java (20230103) ... Adding debian:ACCVRAIZ1.pem Adding debian:AC_RAIZ_FNMT-RCM.pem Adding debian:AC_RAIZ_FNMT-RCM_SERVIDORES_SEGUROS.pem Adding debian:Actalis_Authentication_Root_CA.pem Adding debian:AffirmTrust_Commercial.pem Adding debian:AffirmTrust_Networking.pem Adding debian:AffirmTrust_Premium_ECC.pem Adding debian:AffirmTrust_Premium.pem Adding debian:Amazon_Root_CA_1.pem Adding debian:Amazon_Root_CA_2.pem Adding debian:Amazon_Root_CA_3.pem Adding debian:Amazon_Root_CA_4.pem Adding debian:ANF_Secure_Server_Root_CA.pem Adding debian:Atos_TrustedRoot_2011.pem Adding debian:Autoridad_de_Certificacion_Firmaprofesional_CIF_A62634068_2.pem Adding debian:Autoridad_de_Certificacion_Firmaprofesional_CIF_A62634068.pem Adding debian:Baltimore_CyberTrust_Root.pem Adding debian:Buypass_Class_2_Root_CA.pem Adding debian:Buypass_Class_3_Root_CA.pem Adding debian:CA_Disig_Root_R2.pem Adding debian:Certainly_Root_E1.pem Adding debian:Certainly_Root_R1.pem Adding debian:Certigna.pem Adding debian:Certigna_Root_CA.pem Adding debian:certSIGN_Root_CA_G2.pem Adding debian:certSIGN_ROOT_CA.pem Adding debian:Certum_EC-384_CA.pem Adding debian:Certum_Trusted_Network_CA_2.pem Adding debian:Certum_Trusted_Network_CA.pem Adding debian:Certum_Trusted_Root_CA.pem Adding debian:CFCA_EV_ROOT.pem Adding debian:Comodo_AAA_Services_root.pem Adding debian:COMODO_Certification_Authority.pem Adding debian:COMODO_ECC_Certification_Authority.pem Adding debian:COMODO_RSA_Certification_Authority.pem Adding debian:DigiCert_Assured_ID_Root_CA.pem Adding debian:DigiCert_Assured_ID_Root_G2.pem Adding debian:DigiCert_Assured_ID_Root_G3.pem Adding debian:DigiCert_Global_Root_CA.pem Adding debian:DigiCert_Global_Root_G2.pem Adding debian:DigiCert_Global_Root_G3.pem Adding debian:DigiCert_High_Assurance_EV_Root_CA.pem Adding debian:DigiCert_TLS_ECC_P384_Root_G5.pem Adding debian:DigiCert_TLS_RSA4096_Root_G5.pem Adding debian:DigiCert_Trusted_Root_G4.pem Adding debian:D-TRUST_BR_Root_CA_1_2020.pem Adding debian:D-TRUST_EV_Root_CA_1_2020.pem Adding debian:D-TRUST_Root_Class_3_CA_2_2009.pem Adding debian:D-TRUST_Root_Class_3_CA_2_EV_2009.pem Adding debian:emSign_ECC_Root_CA_-_C3.pem Adding debian:emSign_ECC_Root_CA_-_G3.pem Adding debian:emSign_Root_CA_-_C1.pem Adding debian:emSign_Root_CA_-_G1.pem Adding debian:Entrust.net_Premium_2048_Secure_Server_CA.pem Adding debian:Entrust_Root_Certification_Authority_-_EC1.pem Adding debian:Entrust_Root_Certification_Authority_-_G2.pem Adding debian:Entrust_Root_Certification_Authority_-_G4.pem Adding debian:Entrust_Root_Certification_Authority.pem Adding debian:ePKI_Root_Certification_Authority.pem Adding debian:e-Szigno_Root_CA_2017.pem Adding debian:E-Tugra_Certification_Authority.pem Adding debian:E-Tugra_Global_Root_CA_ECC_v3.pem Adding debian:E-Tugra_Global_Root_CA_RSA_v3.pem Adding debian:GDCA_TrustAUTH_R5_ROOT.pem Adding debian:GlobalSign_ECC_Root_CA_-_R4.pem Adding debian:GlobalSign_ECC_Root_CA_-_R5.pem Adding debian:GlobalSign_Root_CA.pem Adding debian:GlobalSign_Root_CA_-_R3.pem Adding debian:GlobalSign_Root_CA_-_R6.pem Adding debian:GlobalSign_Root_E46.pem Adding debian:GlobalSign_Root_R46.pem Adding debian:GLOBALTRUST_2020.pem Adding debian:Go_Daddy_Class_2_CA.pem Adding debian:Go_Daddy_Root_Certificate_Authority_-_G2.pem Adding debian:GTS_Root_R1.pem Adding debian:GTS_Root_R2.pem Adding debian:GTS_Root_R3.pem Adding debian:GTS_Root_R4.pem Adding debian:HARICA_TLS_ECC_Root_CA_2021.pem Adding debian:HARICA_TLS_RSA_Root_CA_2021.pem Adding debian:Hellenic_Academic_and_Research_Institutions_ECC_RootCA_2015.pem Adding debian:Hellenic_Academic_and_Research_Institutions_RootCA_2015.pem Adding debian:HiPKI_Root_CA_-_G1.pem Adding debian:Hongkong_Post_Root_CA_1.pem Adding debian:Hongkong_Post_Root_CA_3.pem Adding debian:IdenTrust_Commercial_Root_CA_1.pem Adding debian:IdenTrust_Public_Sector_Root_CA_1.pem Adding debian:ISRG_Root_X1.pem Adding debian:ISRG_Root_X2.pem Adding debian:Izenpe.com.pem Adding debian:Microsec_e-Szigno_Root_CA_2009.pem Adding debian:Microsoft_ECC_Root_Certificate_Authority_2017.pem Adding debian:Microsoft_RSA_Root_Certificate_Authority_2017.pem Adding debian:NAVER_Global_Root_Certification_Authority.pem Adding debian:NetLock_Arany_=Class_Gold=_Főtanúsítvány.pem Adding debian:OISTE_WISeKey_Global_Root_GB_CA.pem Adding debian:OISTE_WISeKey_Global_Root_GC_CA.pem Adding debian:QuoVadis_Root_CA_1_G3.pem Adding debian:QuoVadis_Root_CA_2_G3.pem Adding debian:QuoVadis_Root_CA_2.pem Adding debian:QuoVadis_Root_CA_3_G3.pem Adding debian:QuoVadis_Root_CA_3.pem Adding debian:Secure_Global_CA.pem Adding debian:SecureSign_RootCA11.pem Adding debian:SecureTrust_CA.pem Adding debian:Security_Communication_ECC_RootCA1.pem Adding debian:Security_Communication_RootCA2.pem Adding debian:Security_Communication_RootCA3.pem Adding debian:Security_Communication_Root_CA.pem Adding debian:SSL.com_EV_Root_Certification_Authority_ECC.pem Adding debian:SSL.com_EV_Root_Certification_Authority_RSA_R2.pem Adding debian:SSL.com_Root_Certification_Authority_ECC.pem Adding debian:SSL.com_Root_Certification_Authority_RSA.pem Adding debian:Starfield_Class_2_CA.pem Adding debian:Starfield_Root_Certificate_Authority_-_G2.pem Adding debian:Starfield_Services_Root_Certificate_Authority_-_G2.pem Adding debian:SwissSign_Gold_CA_-_G2.pem Adding debian:SwissSign_Silver_CA_-_G2.pem Adding debian:SZAFIR_ROOT_CA2.pem Adding debian:Telia_Root_CA_v2.pem Adding debian:TeliaSonera_Root_CA_v1.pem Adding debian:TrustCor_ECA-1.pem Adding debian:TrustCor_RootCert_CA-1.pem Adding debian:TrustCor_RootCert_CA-2.pem Adding debian:Trustwave_Global_Certification_Authority.pem Adding debian:Trustwave_Global_ECC_P256_Certification_Authority.pem Adding debian:Trustwave_Global_ECC_P384_Certification_Authority.pem Adding debian:T-TeleSec_GlobalRoot_Class_2.pem Adding debian:T-TeleSec_GlobalRoot_Class_3.pem Adding debian:TUBITAK_Kamu_SM_SSL_Kok_Sertifikasi_-_Surum_1.pem Adding debian:TunTrust_Root_CA.pem Adding debian:TWCA_Global_Root_CA.pem Adding debian:TWCA_Root_Certification_Authority.pem Adding debian:UCA_Extended_Validation_Root.pem Adding debian:UCA_Global_G2_Root.pem Adding debian:USERTrust_ECC_Certification_Authority.pem Adding debian:USERTrust_RSA_Certification_Authority.pem Adding debian:vTrus_ECC_Root_CA.pem Adding debian:vTrus_Root_CA.pem Adding debian:XRamp_Global_CA_Root.pem done. Processing triggers for libc-bin (2.36-9+rpt2+deb12u3) ... Processing triggers for man-db (2.11.2-2) ... Updating FireMotD available updates count ... + return 0 + echo OK OK + openhab_is_installed + openhab2_is_installed ++ dpkg -s openhab2 ++ grep Status ++ cut '-d ' -f2 + [[ '' =~ ^(install|hold)$ ]] + return 1 + openhab3_is_installed ++ dpkg -s openhab ++ grep -E '^Version' ++ cut -d ' ' -f2 ++ cut -d . -f1 + [[ '' = 3 ]] + return 1 + openhab4_is_installed ++ dpkg -s openhab ++ grep -E '^Version' ++ cut -d ' ' -f2 ++ cut -d . -f1 + [[ '' = 4 ]] + return 1 + return 1 + openhab_setup openHAB release + local introText + local keyName=openhab + local openhabVersion + local installVersion + local repo + local successText + [[ openHAB == \o\p\e\n\H\A\B\2 ]] + [[ openHAB == \l\e\g\a\c\y ]] + ohPkgName=openhab + [[ release == \s\n\a\p\s\h\o\t ]] + [[ release == \u\n\s\t\a\b\l\e ]] + [[ release == \r\e\l\e\a\s\e ]] + introText='You are about to install or change to the latest stable openhab release.\n\nPlease be aware that downgrading from a newer unstable snapshot build is not supported. Please consult with the documentation or community forum and be sure to take a full openHAB configuration backup first!' + successText='The stable release of openhab is now installed on your system.\n\nPlease test the correct behavior of your setup. You might need to adapt your configuration, if available. If you made changes to the files in '\''/var/lib/openhab'\'' they were replaced, but you can restore them from backup files next to the originals.\n\nCheck the "openHAB Release Notes" and the official announcements to learn about additons, fixes and changes.' + repo='deb [signed-by=/usr/share/keyrings/openhab.gpg] https://openhab.jfrog.io/artifactory/openhab-linuxpkg stable main' ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-11-13_12:41:33_CET [openHABian] Beginning install of latest openhab release (stable repo)... ' 2023-11-13_12:41:33_CET [openHABian] Beginning install of latest openhab release (stable repo)... + [[ -n '' ]] + echo OK OK ++ date +%y%m%d + [[ 231113 -lt 230801 ]] + running_in_docker + [[ -n '' ]] + grep -qs 'docker\|lxc' /proc/1/cgroup + [[ -f /.dockerenv ]] + return 1 + [[ -z '' ]] + add_keys https://openhab.jfrog.io/artifactory/api/gpg/key/public openhab + local repoKey=/usr/share/keyrings/openhab.gpg ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-11-13_12:41:33_CET [openHABian] Adding required keys to apt... ' 2023-11-13_12:41:33_CET [openHABian] Adding required keys to apt... + curl -fsSL https://openhab.jfrog.io/artifactory/api/gpg/key/public + gpg --dearmor + echo OK OK + rm -f /etc/apt/sources.list.d/openhab.list + echo 'deb [signed-by=/usr/share/keyrings/openhab.gpg] https://openhab.jfrog.io/artifactory/openhab-linuxpkg stable main' + dpkg --configure -a ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-11-13_12:41:33_CET [openHABian] Installing selected openHAB version... ' 2023-11-13_12:41:33_CET [openHABian] Installing selected openHAB version... + apt-get clean --yes -o DPkg::Lock::Timeout=60 + cond_redirect apt-get update + [[ -n '' ]] + echo -e '\n\033[90;01m$ apt-get update \033[39;49;00m' $ apt-get update  + apt-get update Hit:1 http://archive.raspberrypi.com/debian bookworm InRelease Hit:2 http://davesteele.github.io/comitup/repo comitup InRelease Hit:3 http://raspbian.raspberrypi.com/raspbian bookworm InRelease Hit:4 https://deb.nodesource.com/node_18.x bookworm InRelease Hit:5 https://openhab.jfrog.io/artifactory/openhab-linuxpkg stable InRelease Reading package lists... W: http://raspbian.raspberrypi.com/raspbian/dists/bookworm/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details. + return 0 ++ apt-cache madison openhab ++ head -n 1 ++ cut '-d|' -f2 ++ xargs + openhabVersion=4.0.4-2 + [[ -n 4.0.4-2 ]] + installVersion='openhab=4.0.4-2 openhab-addons=4.0.4-2' + cond_redirect apt-get install --allow-downgrades --yes -o DPkg::Lock::Timeout=60 --option Dpkg::Options::=--force-confnew openhab=4.0.4-2 openhab-addons=4.0.4-2 + [[ -n '' ]] + echo -e '\n\033[90;01m$ apt-get install --allow-downgrades --yes -o DPkg::Lock::Timeout=60 --option Dpkg::Options::=--force-confnew openhab=4.0.4-2 openhab-addons=4.0.4-2 \033[39;49;00m' $ apt-get install --allow-downgrades --yes -o DPkg::Lock::Timeout=60 --option Dpkg::Options::=--force-confnew openhab=4.0.4-2 openhab-addons=4.0.4-2  + apt-get install --allow-downgrades --yes -o DPkg::Lock::Timeout=60 --option Dpkg::Options::=--force-confnew openhab=4.0.4-2 openhab-addons=4.0.4-2 Reading package lists... Building dependency tree... Reading state information... The following packages were automatically installed and are no longer required: bluez dos2unix iw python3-toml rfkill triggerhappy Use 'apt autoremove' to remove them. The following NEW packages will be installed: openhab openhab-addons 0 upgraded, 2 newly installed, 0 to remove and 19 not upgraded. Need to get 497 MB of archives. After this operation, 509 MB of additional disk space will be used. Get:1 https://openhab.jfrog.io/artifactory/openhab-linuxpkg stable/main armhf openhab all 4.0.4-2 [104 MB] Get:2 https://openhab.jfrog.io/artifactory/openhab-linuxpkg stable/main armhf openhab-addons all 4.0.4-2 [394 MB] Fetched 497 MB in 57s (8,744 kB/s) Selecting previously unselected package openhab. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 70080 files and directories currently installed.) Preparing to unpack .../openhab_4.0.4-2_all.deb ... Unpacking openhab (4.0.4-2) ... Selecting previously unselected package openhab-addons. Preparing to unpack .../openhab-addons_4.0.4-2_all.deb ... Unpacking openhab-addons (4.0.4-2) ... Setting up openhab (4.0.4-2) ... [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 Setting up openhab-addons (4.0.4-2) ... Updating FireMotD available updates count ... + return 0 + echo OK OK + rm -f /etc/apt/sources.list.d/openhab2.list ++ id -g openhabian + gid=1000 + cond_redirect usermod -g openhab openhabian + cond_redirect usermod -aG 1000 openhabian ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-11-13_12:42:54_CET [openHABian] Setting up openHAB service... ' 2023-11-13_12:42:54_CET [openHABian] Setting up openHAB service... + cond_redirect zram_dependency install openhab + [[ -n '' ]] + echo -e '\n\033[90;01m$ zram_dependency install openhab \033[39;49;00m' $ zram_dependency install openhab  + zram_dependency install openhab + local zramServiceConfig=/etc/systemd/system/zram.service.d/override.conf + local install=yes + [[ -f /etc/ztab ]] + return 0 + return 0 + cond_redirect systemctl enable openhab.service + [[ -n '' ]] + echo -e '\n\033[90;01m$ systemctl enable openhab.service \033[39;49;00m' $ systemctl enable openhab.service  + systemctl enable openhab.service Created symlink /etc/systemd/system/multi-user.target.wants/openhab.service → /lib/systemd/system/openhab.service. + return 0 + echo OK OK + openhab_misc + is_arm + is_armv6l + [[ '' == \a\r\m\v\6\l ]] + case "$(uname -m)" in ++ uname -m + return 1 + is_armv7l + [[ '' == \a\r\m\v\7\l ]] + case "$(uname -m)" in ++ uname -m + return 1 + is_aarch64 + [[ '' == \a\a\r\c\h\6\4 ]] + [[ '' == \a\r\m\6\4 ]] + case "$(uname -m)" in ++ uname -m + return 0 + return 0 ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-11-13_12:42:55_CET [openHABian] Optimizing openHAB to run on low memory single board computers... ' 2023-11-13_12:42:55_CET [openHABian] Optimizing openHAB to run on low memory single board computers... + has_lowmem + local totalMemory ++ awk '/MemTotal/ {print $2}' /proc/meminfo + totalMemory=8137060 + [[ -z 8137060 ]] + [[ 8137060 -lt 900000 ]] + return 1 + has_highmem + local totalMemory ++ awk '/MemTotal/ {print $2}' /proc/meminfo + totalMemory=8137060 + [[ -z 8137060 ]] + [[ 8137060 -gt 1500000 ]] + return 0 + cond_redirect sed -i -e '/^[^#]/ s/\(^.*EXTRA_JAVA_OPTS=.*$\)/EXTRA_JAVA_OPTS="-Xms192m -Xmx768m -XX:+ExitOnOutOfMemoryError"/' /etc/default/openhab + [[ -n '' ]] + echo -e '\n\033[90;01m$ sed -i -e /^[^#]/ s/\(^.*EXTRA_JAVA_OPTS=.*$\)/EXTRA_JAVA_OPTS="-Xms192m -Xmx768m -XX:+ExitOnOutOfMemoryError"/ /etc/default/openhab \033[39;49;00m' $ sed -i -e /^[^#]/ s/\(^.*EXTRA_JAVA_OPTS=.*$\)/EXTRA_JAVA_OPTS="-Xms192m -Xmx768m -XX:+ExitOnOutOfMemoryError"/ /etc/default/openhab  + sed -i -e '/^[^#]/ s/\(^.*EXTRA_JAVA_OPTS=.*$\)/EXTRA_JAVA_OPTS="-Xms192m -Xmx768m -XX:+ExitOnOutOfMemoryError"/' /etc/default/openhab + return 0 + echo OK OK ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-11-13_12:42:55_CET [openHABian] Setting openHAB HTTP/HTTPS ports... ' 2023-11-13_12:42:55_CET [openHABian] Setting openHAB HTTP/HTTPS ports... + cond_redirect sed -i -e 's|^#*.*OPENHAB_HTTP_PORT=.*$|OPENHAB_HTTP_PORT=8080|g' /etc/default/openhab + [[ -n '' ]] + echo -e '\n\033[90;01m$ sed -i -e s|^#*.*OPENHAB_HTTP_PORT=.*$|OPENHAB_HTTP_PORT=8080|g /etc/default/openhab \033[39;49;00m' $ sed -i -e s|^#*.*OPENHAB_HTTP_PORT=.*$|OPENHAB_HTTP_PORT=8080|g /etc/default/openhab  + sed -i -e 's|^#*.*OPENHAB_HTTP_PORT=.*$|OPENHAB_HTTP_PORT=8080|g' /etc/default/openhab + return 0 + cond_redirect sed -i -e 's|^#*.*OPENHAB_HTTPS_PORT=.*$|OPENHAB_HTTPS_PORT=8443|g' /etc/default/openhab + [[ -n '' ]] + echo -e '\n\033[90;01m$ sed -i -e s|^#*.*OPENHAB_HTTPS_PORT=.*$|OPENHAB_HTTPS_PORT=8443|g /etc/default/openhab \033[39;49;00m' $ sed -i -e s|^#*.*OPENHAB_HTTPS_PORT=.*$|OPENHAB_HTTPS_PORT=8443|g /etc/default/openhab  + sed -i -e 's|^#*.*OPENHAB_HTTPS_PORT=.*$|OPENHAB_HTTPS_PORT=8443|g' /etc/default/openhab + return 0 + echo OK OK + create_systemd_dependencies + local targetDir=/etc/systemd/system/openhab.service.d ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-11-13_12:42:55_CET [openHABian] Creating dependencies to jointly start services that depend on each other... ' 2023-11-13_12:42:55_CET [openHABian] Creating dependencies to jointly start services that depend on each other... + cond_redirect mkdir -p /etc/systemd/system/openhab.service.d + [[ -n '' ]] + echo -e '\n\033[90;01m$ mkdir -p /etc/systemd/system/openhab.service.d \033[39;49;00m' $ mkdir -p /etc/systemd/system/openhab.service.d  + mkdir -p /etc/systemd/system/openhab.service.d + return 0 + cond_redirect rm -f /etc/systemd/system/openhab.service.d/override.conf + [[ -n '' ]] + echo -e '\n\033[90;01m$ rm -f /etc/systemd/system/openhab.service.d/override.conf \033[39;49;00m' $ rm -f /etc/systemd/system/openhab.service.d/override.conf  + rm -f /etc/systemd/system/openhab.service.d/override.conf + return 0 + cond_redirect install -m 644 /opt/openhabian/includes/openhab-override.conf /etc/systemd/system/openhab.service.d/override.conf + [[ -n '' ]] + echo -e '\n\033[90;01m$ install -m 644 /opt/openhabian/includes/openhab-override.conf /etc/systemd/system/openhab.service.d/override.conf \033[39;49;00m' $ install -m 644 /opt/openhabian/includes/openhab-override.conf /etc/systemd/system/openhab.service.d/override.conf  + install -m 644 /opt/openhabian/includes/openhab-override.conf /etc/systemd/system/openhab.service.d/override.conf + return 0 + cond_redirect systemctl -q daemon-reload + [[ -n '' ]] + echo -e '\n\033[90;01m$ systemctl -q daemon-reload \033[39;49;00m' $ systemctl -q daemon-reload  + systemctl -q daemon-reload + return 0 + echo OK OK + [[ openhab == \o\p\e\n\h\a\b ]] + dashboard_add_tile openhabiandocs + local application + local dashboardConfig + local ipAddress + local openhabConfig + local tileDesc + local tileImg + local tileURL + application=openhabiandocs + openhabConfig=/etc/openhab + dashboardConfig=/etc/openhab/services/runtime.cfg ++ ip route get 8.8.8.8 ++ awk '{print $7}' ++ xargs + ipAddress=192.168.2.21 ++ grep '^[[:space:]]*tile_desc_openhabiandocs' /opt/openhabian/includes/dashboard-imagedata ++ sed 's|tile_desc_openhabiandocs=||g; s|"||g' + tileDesc='openHABian Help' ++ grep '^[[:space:]]*tile_imagedata_openhabiandocs' /opt/openhabian/includes/dashboard-imagedata ++ sed 's|tile_imagedata_openhabiandocs=||g; s|"||g' + tileImg='data:image/png;base64,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' ++ grep '^[[:space:]]*tile_url_openhabiandocs' /opt/openhabian/includes/dashboard-imagedata ++ sed 's|tile_url_openhabiandocs=||g; s|"||g; s|{HOSTNAME}|192.168.2.21|g' + tileURL=https://www.openhab.org/docs/installation/openhabian.html ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-11-13_12:42:55_CET [openHABian] Adding an openHAB dashboard tile for '\''openhabiandocs'\''... ' 2023-11-13_12:42:55_CET [openHABian] Adding an openHAB dashboard tile for 'openhabiandocs'... + case $application in + true + openhab_is_installed + openhab2_is_installed ++ dpkg -s openhab2 ++ grep Status ++ cut '-d ' -f2 + [[ '' =~ ^(install|hold)$ ]] + return 1 + openhab3_is_installed ++ dpkg -s openhab ++ grep -E '^Version' ++ cut -d ' ' -f2 ++ cut -d . -f1 + [[ 4 = 3 ]] + return 1 + openhab4_is_installed ++ dpkg -s openhab ++ grep -E '^Version' ++ cut -d ' ' -f2 ++ cut -d . -f1 + [[ 4 = 4 ]] + return 0 + return 0 + [[ -d /etc/openhab/services ]] + touch /etc/openhab/services/runtime.cfg + grep -qs openhabiandocs-link /etc/openhab/services/runtime.cfg + [[ -z openHABian Help ]] + [[ -z https://www.openhab.org/docs/installation/openhabian.html ]] + [[ -z data:image/png;base64,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 ]] + echo -e '\norg.openhab.core.ui.tiles:openhabiandocs-link-name=openHABian Help\norg.openhab.core.ui.tiles:openhabiandocs-link-url=https://www.openhab.org/docs/installation/openhabian.html\norg.openhab.core.ui.tiles:openhabiandocs-link-imageurl=data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAV4AAADKCAMAAADaddjJAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAABCFBMVEX6+vz7+vz7/Pz39/rz8/Xl5eXz7u/V2Nuoqaqss7rBvLvt7e/t7vH58/Pl29nh4+fx8fL4+Pjo6On129WyuL7DyMz0zcL45eD7y7P56+j46+j45ODk5uqXl5j/3MXvmH7yuqnyrZjvm4Lwn4bur5zQzs/p4t+2vMPZ3OHf3+DN0dbv8PG9wsjc3+Pe4eTJzdLn6e3r7fDiu7D+7eLvt6frzcbwo4zb3uGkrLObpKzmo47Zvrf+59j/1Ljq6uri4uL09PXx8vTy8/afqLCIk5yEjpeOl6GUnaZ7hpHw7e319vj7rnr8l1P/8+v/4c3/yqf/w5v+uIr9sX/8oGPn6ert7/D/vpP///94KvEMAAAAAWJLR0RXfQrZHwAAAAd0SU1FB+UMChYVItpuVcYAAChlSURBVHja7X2LYqNIkiCFsztNYwolrezrmVN7e3YXI0FOMnXeHcEdAtSuKs/2jJBrzrf//ykXkclTdlm4XvIrLCMeCUJBKN4RaRgAr169MoZgmkdH5pHxGOBIvfqbe+Ebf7NXBvnu++E9m6ZpmN/0Jj4RgBDgVhusDtePPvIN7oHeo3vuv/UoPbaOfxhQsGm/OjlyHOe1O2EHQ91eYISZxhEBHCMygR6OjnbXb8PwxxB/A+1HvdOPeqOQ+IzbHxNeeYcZ0GPvx++n3PnxJ+d//PyHP/z0x+9//p/W99Zsatm/HPND4/DjQMaMARSQkxYPJwotwPpqTMCx3mAk/WYorAwew9FJg7+jZpB5tIPfE6J4Kux9RbpDU3r6L7/axz/+6ddf//Tzn/71X//t33/991+Of6G//OL/8svxoZH4cWDGGbX3jEEK4wGfL8IItlwRzueLecjnf57POaIi5HRBpU1huaB8EfIFpTM8cc7nIqZkMZ/PPcRqHM4lDefh/C9zGnIPkX0kOP/zXM5Dw4gAr8YJ97kI+RsxP5q53bOf/q8/nf/6H8f/+etPf/3rj3/9l1//9Nfz/zi2j48Bt8fhsXNoLH4Uu8yg3y33jQL0CisIAkvChowDESTwL4I0CJD4Yn8aBBxH4G5YBME0xB837LICQQNLBKFC75/hsAY8HdF7Yunt0Diy8VFJEUwDjntO+uj98X//wTD+z7HzE+D317Mff/3xp+9/9J2Qf/c9n07pobF4B34N4r7eMwapdyblnxcBUi+hJ3I2+8sbCXukIlKXntHX8PrujJ599xpWz+h3SK3GyQkMspn0TmZvkJ//ZSFnJ7A+W8C/6+Ojgc3FTM4WnvocEKsL154dzRZzaR71GJfzw5TGxy6uZbYLID33u+++/w7B/eOhkfh50PLA+h2FktkTbKer1c+rlVr8XP+tTm88In3yK3W+OpmZ5u4Y02z2He0IPeJPf2iZmNIUiNLMmMk+ojc8DHUCNYeIwZIwwyTEJEcE1xlBYGp9r3bJ8MWMZvnq1dGr/R/82aDQa5ofu7uHgV6jpaZm3WzezTuUp7vg1U0b63NgMskn8E9dl4L0tGleLGHldTg7ySMvyllu44gSVvLJGpcEx09sEuVRTkg0ATqZTAj8TXBVval9/R31mPbYFxx/EsEC/qMIdkUn6n4iva3gexLden0YcaI29aI9HJGTW8fD6BMbLrd7PzD85NbrqzcjV0ATgONE+GkcTqfJVBxT27M9Ly9sPSAv9LLI6x3wxvA+9Mc1UK+TnfdJb8wXHk/wIbffR6OywW6uvz657fpED/h+9/ok+v728fqR3Pi+zSO69f4d0G7YZAJEWcgz17PtZT4BTBaui4yrBCCsVMBYjkMBpayc4CnswfCHhwwMgagl0xusvwvAaRawq+wGHPrGHwf0EFZjlQzwS/pHkWbLZveh7/xRgMYXqXGHLIPtQsnKwUMoyQv5jgXErsOKZbikvmQx50vOKdgrRS6XElaWy7BFLy71qlre52MIvszIMKU0TW94yBz4ZmR9X/wOb4LJ0DT4zTQi5Q8wtJfgYCjceR8cU0hbxkKA7S1jwQvLSkQynQphWco+Fx1C9RIX5T7sRsDJQTExAEkkB2vcmAtDpEaYBhfe3LSZAbJdjxQUXzAuigxi24mBpxmBBaK93mvoy8BzUO9vDJ/j68IyxIUVGIY15Yb5xqDafmee8W2BGR+3A2q0LQtUHpiUOSsAgHyXOVAw/heNQHNYj4j3UC+3Ejexkhk8I5oG8D8PLDNJPP8iTqSwAceplWj8BpZMqZxa8wtOEyEtN0kAT6klUh/O9iyL4xgLTriADdAdLe4n1BLeRWIGAZ8aRsINBkcuUs6NgKaI8W8J9IeY+gBnZ/EPsR+7mj5q1LMhZzV6GoTRMl9HcWC1VraIvusjU9MPUsKtt9OUW+YxfSsuAvruvYjTAFAjxSVNDUsarjCNIIUtGlzOE99LuJdM0yTgNKBCmO+s1Lq0gJ4TI+CpEQTvpqkQb6w45fB++d4PEssCAg8S/g5+c5QKI/Et43iMI/gLovf4mB8fH08prBwfJ2d9Xtehtiwnu6pC3uK3Xjg9WXfnRyZzIVIaiDSUNDAvwsBYTC2+OOZTN42tC576CaKXeIo5BHHqX3pAxG4qLJ5I244Avb6Zchmm0jNI6iX+e0B+Sj0RRkksDC4u5r4FzyEFjmGnAo8IeHCpn7rpt48Stvx3By+KeJ2S7Shot+gOZcsbFBnf/XG2JaJ0Kkw65Z40Y48aEfUNI6TWlBKgVWFTYx7ph+8Z0uMBl7AzEF5IeACSah5J25ABN+IpCDsa8Og9bIRBKOURtaUhkdNSbgUucqLY8IP5m6krBKfvg/k3x+7H0e50zHQAeQ+5bFdz2IteBOuL3igZeTkQoQ8I+ohF5pAjczB7uC1b9DuN5qB5795LR1/2Tkcy1IcV30YU0nBZUFGECVVK79IrLO6FVISyQ3G7VDoErD8cn+RDBsSXeJteXqbp23fpu7dpevl2ypP04jJ9+7fL3BzitmUPY6j3BTRzWPIQZEIgOCw5FzEtghjMCdjKG22hU95a3vuC3xFQ3qUymLU6Vva0X/26r1H8XKEjyI+B01ceNIphkdNvq7s/UviYzlsO3ssaqU6r+p7xF/SOgJ7Su2sLNwZc2VhtZbfhUD6567KxL8Hy5ouIEFvaGEUxzXk8MyISgU1AJMVd6MExbD8ink0i1yWGa0cYpKEMIzV2ZDNDRpEdGSyKcGF6NDJsSk5sRkwSmYYtI9eXEbG9iJHwBHfidSN3JqUfgk0oI0OHfYhp4IWplxP03MHVDClZ6GKA2WZu4XmwX5oeHCDoMyAzj+TKj0SpbcDC0Jfx4JYx1OS5cGQMehVy8zOMpskwL5Yq9BbikhV5vi5L1lMX2qWzh3qpLyzhWWIKAjIRlgUiU3Lh21YgwD5D75wVeFQEAU8CjwsQpFMrkPDOwXYWHo/hkAWydYqbhFvC8uIpjJvCyRacjaJ45sPF8APwfB7BBl5RJAFefjoNTBdTbKbw4fBhEQlwLEpsD+T2ifDB6rZEbKsrWJh44/ozuA4PCEexPoWbpxIWgSBgqRcwxhcqUQeOiCCZijGeI7ZGYoTLACaSwMKvLySoD3ANTA2y+K7eW1Py2d3Ua9teKIFIYwqadAgU4PmRDQTJqeu7Nl240peGHbozP6bEDReuCIBCwNKlMCIkVFLp+pz60qc2bPpeaFIweBfhjFAuXUnDkNq+j6OBJD25oAasGDMq4BxXegugXvzhUAT8MI/5YE8v6IyLyBe+Cb8uGVMw1HGAB2Oo5S3owvNDai78eI6nuTYJqVzYkR+6BL4PjpTSXfjw+T6lI6kXbTUK3yNWL7jvyWu6pOHZcgmff9a3LJwWw+Xru9F7E/awans/K/8y9hjpG5P9S9of2f9ZwDT5sjUoYaZ5q+qw7ptsZa1KFDz/UrfwreAQ5vJAbVjvKA61A71vsjX7F/y/7lJ8o6OISE+lGkTMIHkkbZBP5E1ku3K+8EMzUsc8L/IwFSSihM5yAiQceaZJWAwCzZUg3CIKLMUHYUWk7WFehheZFAQQMXM4CNLIRVFjgAAk8MO1Z7BhmzbxTuDaEXAoOGCjaLKjyJQ2tWcU5V9EThgIRhpFzKQmpSqFAQQriCs8i0SSRBRuOZLyc9FbY2xtqoyyvoVWdh5erZZ1vh3kvXf9mglKCxBIKNWChYtpnfMQpRWKnSlIHA/4uo8iKdD8HgRQAHaj8L2AepaXXCRpkCZJIjG/5ZK73EqUGQnSD4ZZNlfBq0QqERjkKikU2PxFalmplyTvrTS1AjDtL94nQUKURMPzAspRTqKBKiV8LlxNRFqKJh63ghiFXwBiWXK8ISsI4s9Dr9YGpIeRnxzpt8cFWhdkn27rA3eLtggkTLiY+yCjKZV2DOLAk6FY+CAZZiB25pFH5yA+pAQpBEtK44USMRKkmhdH3Oe+G1IrISCGOJ8TkJEwTIASwX2QK8zFjC0ZEhtEIMgYHyUcfCilIvYjzIPmfhxyEF2czmKGkmsBwsgHCUUw28uL/BPp+/MQdplytghlSIkdzkEKysViHodsQWEfplZ/nt9PYwtuC3URr3WWl2Vn/A403oYJ03Gi7fNsD0Lu3v4M+EaMWOHKzJVyQvMdyi13UNux4herbRyUfZfDmrEhvbYWcevNacj37L6K2fOEmkCdob+hs84GoaAe+b6gdxT0FDGz/u+JNY3Rkg2pGhH8+vHpvYcA/WMvOA9lwZeYQqLx1znRO5dDE2jDXa/F5NC3vgsPK8qmgakIZmGhm8KaYuFRPjQjnB7dNqTLGPuaou130MEMipURKlGK/W5GEl1hoDlIGZmRCVYFIwsKdg1Z5+s15qVh7loEr4h65gJLQ47ABMmJYbsYVoF3Yuemaa5xPYrm1DRMNC7AgpBz9+uhtxZfQLWeXBYSqXdIrp2a1ld7na/JeyNqCQP1e4EuN8YtCivK22WheysIPSSGqTUNORgCYL8EYCug0aDG0MLiyiQA20bYHMyWXFqE4xbo4Z5MhLIjKJgUXDvwvqIOxG6HXk4kY228razZRumUI/XeTwPQ+MGQwJwQ36K2FajAn0/BCERfIRgeiB0+x70CLS6fCeVVFAHQvSf10+BmLHiEliETFoETlG4f0YCj700Zcvi0/H11nZ+H3huhirLBZu28aRzoA3x/C71XFU3hLxt/9WoDy8GavVj4Q/BN7cAhR009kGmSurIJ1omhSrrRIjHXv5t4rhoW4RHza0dk+2pv1KXm1DKtHDgi9R5NyA9FMXuI8qwHmjbzEM1/zgWt3Q69AFwfw51j5wW9owCRtWZSiAQDNoIPTAunl7fXYVxpEy967yjQqFvnufQACm/d13fLIWbLJr+3RE35v14SHfZD2TOI0WRbm7X3oSZeZ2hTtJraE3DpfAu+8ndNmWv9v24cO4wNVIqWeFtSHsN7zTfEdu3QU9+EKG9i1PT3YGSmkpxBhs99eP/NNFw/h4HEwxH5UdS7Sr2GMfQGLRIdsRgpd72mxt3DcfJNizpTlcXYKqra7MT4o+capq10DDhftR1g+LlwNNI3Z/6Gad11VA4jF8bRpz6Kf5SdFDMBsb+vy3KNxFs2qm7Zmsi9Gqw9ei/GsrWSb6HaPxUeRStB5DH3bZXJBvooqLQBKLUXFynlwrKsC8tKMHiRWJakb5SiS7gfK4NiOpfKZAj8SGm7Pmz5BPRXqkIc6KxGrResCDwxCLjvzeudGDwXNsVPlAaI7xMMUUw9jI0ENsE4B9wtHhWx8EKdZoeKs4t6Mre5DvWLTwsL/WODuPtjdVadZdXqp9V2e/WfWZXdMC3Kkg1E293MwcRswHgee77P8d6o7Yt4TrnncuoGMYbA4UvIWYCRGOG/wbgQDLTSqeWDEfae0jCcw/dE4wIuAViUJ3AVn09jgtmFsU/noc9o7Ea+FDQCQ4HjMJuHZhiGPvd4NOcBnkhpHIJ5gViLbcyRB4sYd4R87nPKwkWMB10fbtin8OzgumHI1UbIYx9j+WCETPmntQ35h8LZ2Yd/fvj7hyv4g/erv//zatdJ1jmAx/p72bgjg19dtNDvtBtiDp8iMUZGQMYNZLuDP3LKyacWc/1jgvj6Y/VzlWVnWX6WV0DI2R/XA7dOS8ZOS8kPRe994PB/nYbtmi0jWJtrbULUbNdpAsU9p9mL3jsKsibsruSZNjLW5tADOfT5Plh/70MEjT6MwTOjFWZ5w2idYUCoxzG+rt772SrpJ13gKyjCGo/SonQJIvI1CNoiD6e0V8fWGcU9FXivv/d3M/IJYRHoseQEVNMQVAftyrZp5EUmA5mFui0MUUoxI3OeExPzZSTopR42a4PRJhyfSzcMBSimmCKKuaSo/pKIeqq9E4MtAsrt3BNKsf4Nrv4G83gkdmdCbfY3+JKgvqKiHCnXWWSaxPPQJW948nfTdCXIONCIzd9MT5robwPN8ssUx9XoDYJkak2nlgXK3zLmYQ+Tg2BFOdLfSy9NKlXCJui3oMzaArRZ2J6m1kUQJhdWksJfshBJklgUxiSwz7qAG4D9Pk+tNE1kAAdhEKy+T97bSlH1tF83PuGYZBrwN6gTo9sdE4L83EZHL/W1xq217sVcnRJjGo+NHnpsChdrF7LSbXmOez2V6KM97Ry1R/FFfp01P8i94poW17n8f5PXOZa/9urYWoPY6THjPcyBzE0vnPtUwrfl85CbIabgUh4Ec+FL0FEBj6CvL8TU5zGhqGfy0EqDAPThANNxwP54w6cJHogpB4TlnMvYByLkYuHHJvzMYNMzQYX1QxnaISiznuEJOhfSk7GYU98PMak4AgPCxyRYzEIVIWYZgwoOzyD2ZSxt6kuDwkUJ/HbhEYRwH9KjMve8L+JSuaUms7xV0S173BiZww8jNYePMTRTmUGDZxTd0C4P5Nf4cs6qtmxiAJ0tMYjJdysg2l4UsxFQU6cKU+QtFtu8yP6OxqWjCHm5V3PweIgBmAjb5EUzz3P98ASdMlh1QahUUiaC9eh3wmeEeRF2tTQNWwWCQewQG0sxdB0GSDgM6pAjrKNwpcttg0VHno15rCC+UOC5xI1M27OpZ6t0Urj6kfYj0RDEpcpTpTl10WkEvxJX9ekz4Jwjk3neEfk6ITdNpZOAAqMSYK6Hk0ZDcBr/Qr+4otUf9mgO9L1BfJAhkipposSPhRFc353PVRAY8zwxUiuEb/joAbIxSCmmU2CSU9+eomfBjbl2y/hwBZRtWv4kIqEuBnkXsB/DkZ4PoyxMbaV0qoRWgFxflXJw2/ctHIQiS4JgQ+eNj/UcQdOARSjx+1V6kWp0FVizgbdoYSFmg0XnhnHRZens4b2gFhm2C4Jl5oswXmA1xAJkEKceCaWPKadTwRdYoRCCHgZqWEiBTF0b5JgNsogSQHXs2pgzSjGnl7oho7EIfUltlESuyyX14SdBBXUFAQlFOcVaDPhdgPgKfGzJ69mcSg7UC2KOxtz1XZ/6YYzpridATiHWZpCFj3mrcEtfhXx1KHhSTvL1BMuBJq0U62rY2KDnQ1mbFWMTXz/Su8Ier8Tne/jQjcNH3h0Hd+GrNqrvqHPN+qUVA+3BYR0J12WZ+3nvCxi3KGZlybreIz1nWWNSjMpOf4EaEGNrlsu17pbRaWVdwlMXy2zyHWCl8B/ylAAPBjRGpeAxuuh50ZNjfZO4XW2YyfKHyaFv/TFAE5jE6A2oKkWd9LTeyeLr5No9Qpkv0CRB5WwNL4BOrLFeOLMl27YC4AW9o2Dod6xRuh4kqLcKQz/2tnxB7xhgO2jc2aitY2fg7MW3s7G894EngX1l0CSZL9HfkOvCq+XZpMxzmrNJ3mkNTb5DHcx0zvhdMy4Qi8uA8oVh0+AkCF13wenMpVw+N21Dk2YR8BDNYvQ7nGFmQhAHWF0K22c7ZVg1ooE53IUqPr1M0/RyMb0IpPDRd55iDevFA55k5KuAVnZzTPXQud5BrtJUwrovVHg2FHYNe9jjTrcXMWZwELnwDLoIF7MFpe6M7p3i56lBTZJ5PtElQsV1Y7g1cNOd82K1jQbWbzMwkG5l3yLuPGd1zO2r1lY8HWC3wiBVurGW29R/59vUVjwF0AhbyyKf5NfF5Bq4hMz7ZkXZct5BzG20Yva8QWNO8iDBdkuF6t201DMo9MJtZc+voy2M/WZFtdqwTeawzcZ5sFO+fXXQ6M1Vkw9BJxgvx/qVhlydXuae0ncb/ruHeul7Y7W62l592G6vADaH/pqHgibPQTMETJ1uqq/K4XIg6bB31OSuyxJpZJvV6fZ0ta2qavVsyfeGA6dmsM4gXlFnPg2xfuhbfwzQE11Dv26jNjQobo81Ac4X9I4AjbJ8Wep6n0nHcMtd7tAZFar79D7IVhnLNllmrE6rDb4/R9BIO8OmjGEI4i28pc9012O2pfF97ZFBtJ2iaNtuPzCUbh+2q0N/04OARte1LoihYcyHPKLL0BnQ8F70gmjbbFer09Pq1KlOq9Vq80ypt/PkKi6R971jvXwSp6cD156dQ9/6YwDW0wrKni2sybbcoeTe8tA3/jigE2Idpx1wg0FjWacxNsahl60yJPxNxtAPbzgrkHGnq42jWjDDXvgoh2UMFOPMOK3g+iAK1aejrXdozHwZ9A6DP7c40KKuJT0bPIZ9l5be5sPVlTbb4H21yq6uspXeVEJvpY+cb69W2wyPbq+qLS5xQHVozHwRGNpiLZgKyztZUU5HxGPQC9YfGG2AzxUsT7Nq61Tn59XqvKoQnzi1NeJyBbu324qtcLndgDBcqYfxNEShtoh1em9elMxcm3mYK8NYRnnRZ8V90+4e81Ywp/mkNu272QWG862nAGd4Irwd8SXeJskUu/9Y2BDWp5dCXFoWTjAndH/68gYXvu+0IE8EW/cGRBhPLy+tt4nEepzLVOYC3tM0sdJ3wizb+ETZ2cmjfQ7IE0B8OefO+QYfyAbkGqwCAAGfb5zzKjtXah+IvyyrTlco7tg5SsMNyLoNSkCQiSyrMkOJRwcsQCURH4kerfJ2SzWJNnb6hxVsTQJrHry8fN3z8/acE84YzYHmzmr1AeVUVWVb5LKr86tVI+muNnq10m9bGPjh6r+RG+Og7TYDS+/qHPnw6rwWh04tJ7eKOR8ac+PQWxOmuaMyDNuoN+701sUzhjkQYqDZVm1XTrZaARpXGVhy21OQaVVVKYkG0u1cCTrYka1OYftqVZ3j/mqDog8eAZ4OJ4PhlzF15ulKycXHoVncVBp2oLY12nTUjhWP/YTBlsN6H12/73qDnd0zHi/nBkSRj5HswIzra7xq96Hv/FFAbTrIHOvgcxNUstxsreSGMXQ2cW3QjeK96uogjTabijnV5hwEEpAiyrNDf+lvB3VoBwtxsUAmlly8DsNwGceUFj0fZFeVWfOL/Zem9qaWYyC4/huF1zbbonB6HFLpi0CpNdtQzZMjEnHNubCmoap2XrZKWd9/Nnq2QRtEG5ps6JBEYYTyCwQTCLFDf+lvBwpVBA23PI9wCqZ8Milz4Ad53dVhJzlVbeq8knHXP/QXPCw0squeFEQLN2cYwmzEWi9TkjxztI2FRjcwB/Q5oFlnsKaPkFHUy7S+mmUO2F4OiDfQfMHq2qAVBnbZxnnyD0njK5Ieeh7X+bqvkZXXNZaBUaA512DfGccaaGFcoUeyqpR4g1UQdR/Q8lplH5Q1d3V66K//1dGrfvSvgziORRGr9mhFiLO98mURi+uQx6oxqgiOOeu5H0ZabSjLNtk5Oh/BgFuh2QUG3FW1qVanSsod+ut/dfQq6i2o8AWXYT3tkYUtCHEe6Gs1f1GM+dRBaPQtjPFW2y2feegv/e2g5rJrnQcFzAGrr3CtKMsJ6A9n+VolVms9og5ijspzeAGj73Mw2I3wxO3i7h7+XhRlzoZV6IKsMjTgNoxt1NbTiKXtgxsuHLPR0do+/x2u+z6I/eiluXO1Ahn2IUNTDYy2D+h13KqY2tWHD8/CuEC+MFGGAkH+cO1RdPquh9EJzRB6LrRRsTbQjbNsCyLNyartaQY6GgqzapNVavVZsBeNskJVA6m+tUlI6VTkbGAN7xoZ981zeBaovPWLKwP3GhutcT+O1awboEXIzrHbT0RtHGYvaSQjQZPjenI9qSkz19069cbkhq+36Vw0RjFjbJUZmBqJbkkH/rOnb6bdQEFfIehHLsrBG+uVtjkj00hyZ6vDYhg/03GyZyHPerAbClrfUCV62dQ1hkfG2uB3gGExTCS52qDzYbXdPg91rAONtjV6FHKpHY06qYRd113j0OGwzHutkTWruIe4Yhg1/xwz7/GCxlrBQ1/VEFOOve997P8VFCFXLfqx0pgPiXekU+cFNHrPsDs+YDIRwscerYIutcNhKmIO6sQ0dtgOD95/adMwqm1mVBVSLphsz7E8qDEU1mhdSDpZa7+DLr8qcj1zRTkpm5BmO8vjfuawsB0l0JRcQxH33BivYRiD1OjaKu7AUHqC0x3u5gfZzxwiwlaVAxJtUymP5BNJerwX5H2cDvMceupaL8esxfSh7/xRgEZVRAvkB+hrQDROinKNWsS6MS/6tKvckWPsg5cHoNALOJRxqFwO8H8WUj2RJG7npq6waCKZLfGOaMGHD2PjONkmq0DCMWdjZCvM9a82qhLmPNtgjj8eyZ4uU9bY8vxQRSpCboFqthQxNi8XVlC09kSXY9YowHdelr43qqsG0BWJnshVVlcCYDLJBxR3K7bFWYqeOnqVnoCuhnyJdZkThssS7Ysb5kTnjLjrsoQCrV6tVqfV6nxVYSbkNttgciPmRn6ADTgEG5mRYcLk02Uj7KMwNIYHDkkyGSXZPjLGebrEehMF3eyuN/DaCrS+W6dJI3lRHcaA1rFyusxZ4eWqZiUvltfw6y9wA6OZ12hWFJM81yaFcw+9TKWKwBlZBmvZM3wgGlcysfR0JkIU8G7BMsRe7jghSRCqDnKwGTpdj84xsTZvswL5tgLRVedJPj/81m5IP8bJTUJQyfIY3mROsUVcWGA+SbGEPXEQxrThDs44q40xnbW/crJqhYUpz8/r0GeyJjKGZmPd+W+azBynVyb//Ajxk2BXsu3axWXnZ6h33N/f+4yhR6gat+YQzQNtt7drFHrZFhNIMgcUXFXLBqYb6MGG42ycjSpkqx5Jgc9noBeRmxc4zzbWtUUyX+dhka+lXKtZLLp+Zo5yN5SjY20LTCPB4uxasl1htbCqAOjsuQ9Xh0bA10YvAqUcM/8xUS8WXFrC8rEhasAHif89BjGG904Iyzan2FIH5RtWxG/QaIMl2nNZlVXPgHqRQM08DGkI/9KiRQhqg/Sl9EOLv+53cWjEnE52uPcHfXTjKUO/GBvgOuqJtbxz8+4uPysB9RnBsIdLB+tuZ9vYsMXwuH4OcPHVxkDPI7IgNXN3VjkqAnJ+jufr2bwPjYGvi96PlLyWuk1nL5mkabfDxvZzkAWItlXdXKTxRqpOGdolma1q5+ShcfA10asD8WJ5XeQyXxa5l3tea1J0mu8gY3KcYmaDaMu2qwwdkpnuNnKqMFthdfy2Os9UQ5LVU7aVtdRaBlPM8g8CC1P5kqL1jXVeyCYB9V79HG4C9nXoA3vahrLGYp4XtKBqruICFl0RUEe6fRVidE3xs4eaDTg3eG/Zf+9N/jo+xwxgVeHj0R/yTNL9h7Dbl3cg3Qb62MA+HpUhaW+udB6Jaqz1/NIjjWYq0oE/geyScdlOFt/Ppt576Zyw6nyrW2qtsCnJE7fQboPblbKB9ru7t/wk3vs8mfWQJ+gIO/43M2c6TX5D2fp1xvZzeAFNvTkvyjJfxjlm8easoBhlK/j1ushf54M+UH32u+/KToV9IiuGpUAVttnC7lib7TnuNUal+TwBUG3ipiJJ0rdpklpWMk3fwkYawq4gTd6m1lCiKVzrNOu7LkvfG9k/ddIIppCA9bbRnSE/6O6Rq2fSkgTxRBORJlMrSP+WpoGFM1OlFg9xlip4WZ3KUHYdB/b1c8A0klPVOWurRdtqs0W3JIo6bLW1fS7oVfXCGHLP2ZJjJB44hEr/h1VYm+wqbvrtvnkON3jB8+ANBrtF4d0Rdu3UIL3iqyfu6PpiUO6gt7YhGi5QDvb0y2D30h+2HsmyjbNhm8pZZQ7Wa2PzR+ZszrOn7WnooGWpN+3hLuWpP8dCl81+12VxUpvTq8Zo22arqmkd+bwySmpXjZorc6mRmKt6CpUqWZaT1kXWlAQ5Y/o5gGjboNNxpZpHVqqsraqu1CYG3J5wUuQQvYoalzHlXEw5p3EoAh7zJWyHnMNuEfJ82MxMv40KxA/e+vLsmWDX0H7cIo6bwqvYwgI3WsQ4SQhgNxAib1Xee/VzeIGaOWDhlSq0opN2isx8d7bMHvMd1c8h22J6JOZGgmyDNZRzm80zeyisR5I7zpuy17isbHWGhhXffVmaGput9kVefbjqwfOwJlpoXYx9B6TjtCpEO11QGw4qx/RzANHGqnOVPXKKaZKYKVmdVqfPDr3abMuVlXa2xlxpVXk1OcNe36wj7k4haxoPfMqnnR/6+35j0JgqAuwFFwQC53LkRRxQamG+tMQy7kk7SWZH558aynxmrLf29xZYsi30tOU8vI7jApPOBF2iepa3UeOacEem8MHFs0x1k9U+ZGZsnOrcMTIs3nayuu5ASbtNs8Wwym2TVacb9iSic+0PftIWWQ3s5LLtiDzw6YxKI8mZ6iGJqSPnq9XVVXWaKTPuHI0LXcWt80jApttiG/qrekqbuhDuCUSPHHYDcQOveZvD18q90cGgiBinq9MKHZCniLsKNLMKs0k2WyXqrraVmtQGe8FgcdspuoJ1uQAqHSAPHz8ruVUhG3Skb9JHyp3j9/ycnVU9w012jhtY9Irv7PEzgxtfW6m0OaeoM+SdI6c10QZNzJqEiJfp8EZCjTVscYqvvMvlvYHcsqmyuE8ayflGzVpj4MRt546z2oDo0jKs+eGcq8Z8IMtw6hukaGwz2RwFqVcZeuP8HK/BskfFkOsf/HJJORVWz3vjdJyhdakPDJC9l5aeMtxU2t65ElorJbnQmMOJNLerej6b1aYWgZnupbzKcMCpnvkGawc223bat6vVozJMWnuXNS2gdthCWypYdnvG9XPAbiSAQaDM6srBUm0MYKqJbLBJyRbtOdWIC/QvlWayPWVYEwD7z9WcNjjSwZKBqwxrvLcoBUH5eFQM+kYoqJcr3Z/ktZdfhjCin0MfNupB3vveBuc/SthRc3vm780IRa++4kWyjQONuZyqiSs69PWnFiwbhbdnEE9e8DsKNLqWVmCB4kD7syj0JtpuMevcq5/DC9TozWkY0mUsa9duz3XTy5/uT8300s9hHJS7oo01ZNq3hVkv6f8+/RyePfQk1632ROfhbRlxOdKl8wJNpLjNbTAbvtvTErq0h0b7HdfP4QWQevHHXnBKr6/P1BykPQ3B2UFrpzq85PeOA42wayy5CvSi6LPYsubAmg23hYN7+zm4khz6mz0I0DjLseZqebaMgYpz1iu26rOOXhLfPt5L3gZSeoTO0vmbN7BGI1ce+pseBPo28I5J7AwN5I5R7A8Gkb9Zwd/ei3fpO1CoLy/ev0veJof+pgcBNhRerPEs9EVbWxHktDS9h/d6l554Z6Xv0vcifXfJ0zRI3tmH/qqHgBt5Dj0U76SWDSevuPOqpjQiPpfcpZLH88jjdkgP/U0PAhpzhZCTPPcKmef5ZNJ1L/pIN4eXaMVY0CRJVa02doqbBgG3ip7zcSDc+qbFoe/8UYBWwPJC0iKk+FdQGnYzBjlNn62eYefUatuhb/0xwJDv3pywrRwQbTv2hTmMgxvu9IHrofHl9JIldQbfC3MYBz3Utrm+tc9h6EEfOHz3GsVRpC4+8ibMW7fJEzD8EJUONnsploWX1zXaAydOK+O65B22t7aCcy4pERTNQEr9OfUWgsrYPwlhk9mwsF1YzCX1YQSfcTojXMApklKJTb98nJ8ENrwZ9SWdh74dUY+GhAqbC0pJTCWV+aGxtxc0JpcJKA0JRivaliPlTaz2dIl9zEFSbolICEy6tFTDuVmgIyLwJ/2EW24c1BPmwF4X3gnnU8uOrWCqGuOjB2SaiDkVPLiAQQtsmE9hIIm5SGYc0zIevqWiqTQHfUEul0XffujnPPVWdLcHstffy5A/2ITAC8CnBonsKPIIySMzslluSE8d8WC3bdi2BGZAIiNyJbHxQ+BMAGJGxLRtym2D5XCa4REYx2yD2DmJHj73YDegzwQmrTXcwzup+fShb/0RwP8HZ/woncNgl5UAAAAldEVYdGRhdGU6Y3JlYXRlADIwMjEtMTItMTBUMTg6NTE6MzErMDA6MDD8oA32AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDIxLTEyLTEwVDE4OjUxOjMxKzAwOjAwjf21SgAAAABJRU5ErkJggg==' + echo OK OK ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-11-13_12:42:55_CET [openHABian] Restarting openHAB service to play it safe... ' 2023-11-13_12:42:55_CET [openHABian] Restarting openHAB service to play it safe... + cond_redirect systemctl restart openhab.service + [[ -n '' ]] + echo -e '\n\033[90;01m$ systemctl restart openhab.service \033[39;49;00m' $ systemctl restart openhab.service  + systemctl restart openhab.service + return 0 + echo OK OK + [[ -n '' ]] + import_openhab_config + local initialConfig=/boot/initial.zip + local restoreFile=/boot/initial.zip + [[ -n '' ]] ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-11-13_12:42:55_CET [openHABian] Getting initial openHAB configuration... ' 2023-11-13_12:42:55_CET [openHABian] Getting initial openHAB configuration... + [[ /boot/initial.zip =~ http:* ]] + [[ -n 1 ]] + [[ -f /boot/initial.zip ]] + echo 'SKIPPED (backup not found at /boot/initial.zip)' SKIPPED (backup not found at /boot/initial.zip) + return 0 + openhab_shell_interfaces + local introText + local sshPass + local sshPass1=habopen + local sshPass2 + local successText + introText='\nThe openHAB remote console is a powerful tool for every openHAB user. For details see https://www.openhab.org/docs/administration/console.html\n\nThis menu option will make the console available on all interfaces of your system. Please provide a secure password for this connection. Blank input will get you the default password "habopen".' + successText='The openHAB remote console was successfully activated on all interfaces and openHAB has been restarted. You can reach the console using\n\nssh openhab@openhabian -p 8101\n\nBe aware that the first connection attempt may take a few minutes or may result in a timeout due to key generation.\nThe default password is "habopen".' ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-11-13_12:42:55_CET [openHABian] Activating the openHAB console on all interfaces... ' 2023-11-13_12:42:55_CET [openHABian] Activating the openHAB console on all interfaces... + [[ -n '' ]] + sshPass=habopen + cond_redirect sed -i -e 's|^#.*sshHost = 0.0.0.0.*$|org.apache.karaf.shell:sshHost = 0.0.0.0|g' /etc/openhab/services/runtime.cfg + [[ -n '' ]] + echo -e '\n\033[90;01m$ sed -i -e s|^#.*sshHost = 0.0.0.0.*$|org.apache.karaf.shell:sshHost = 0.0.0.0|g /etc/openhab/services/runtime.cfg \033[39;49;00m' $ sed -i -e s|^#.*sshHost = 0.0.0.0.*$|org.apache.karaf.shell:sshHost = 0.0.0.0|g /etc/openhab/services/runtime.cfg  + sed -i -e 's|^#.*sshHost = 0.0.0.0.*$|org.apache.karaf.shell:sshHost = 0.0.0.0|g' /etc/openhab/services/runtime.cfg + return 0 + cond_redirect sed -i -e 's|openhab = .*,|openhab = habopen,|g' /var/lib/openhab/etc/users.properties + [[ -n '' ]] + echo -e '\n\033[90;01m$ sed -i -e s|openhab = .*,|openhab = habopen,|g /var/lib/openhab/etc/users.properties \033[39;49;00m' $ sed -i -e s|openhab = .*,|openhab = habopen,|g /var/lib/openhab/etc/users.properties  + sed -i -e 's|openhab = .*,|openhab = habopen,|g' /var/lib/openhab/etc/users.properties + return 0 + echo OK OK + [[ -n '' ]] + vim_openhab_syntax ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-11-13_12:42:55_CET [openHABian] Adding openHAB syntax to vim editor... ' 2023-11-13_12:42:55_CET [openHABian] Adding openHAB syntax to vim editor... + cond_redirect mkdir -p /home/openhabian/.vim/ftdetect /home/openhabian/.vim/syntax + [[ -n '' ]] + echo -e '\n\033[90;01m$ mkdir -p /home/openhabian/.vim/ftdetect /home/openhabian/.vim/syntax \033[39;49;00m' $ mkdir -p /home/openhabian/.vim/ftdetect /home/openhabian/.vim/syntax  + mkdir -p /home/openhabian/.vim/ftdetect /home/openhabian/.vim/syntax + return 0 + cond_redirect wget -O /home/openhabian/.vim/syntax/openhab.vim https://github.com/cyberkov/openhab-vim/raw/master/syntax/openhab.vim + [[ -n '' ]] + echo -e '\n\033[90;01m$ wget -O /home/openhabian/.vim/syntax/openhab.vim https://github.com/cyberkov/openhab-vim/raw/master/syntax/openhab.vim \033[39;49;00m' $ wget -O /home/openhabian/.vim/syntax/openhab.vim https://github.com/cyberkov/openhab-vim/raw/master/syntax/openhab.vim  + wget -O /home/openhabian/.vim/syntax/openhab.vim https://github.com/cyberkov/openhab-vim/raw/master/syntax/openhab.vim --2023-11-13 12:42:56-- https://github.com/cyberkov/openhab-vim/raw/master/syntax/openhab.vim Resolving github.com (github.com)... 140.82.121.3 Connecting to github.com (github.com)|140.82.121.3|:443... connected. HTTP request sent, awaiting response... 302 Found Location: https://raw.githubusercontent.com/cyberkov/openhab-vim/master/syntax/openhab.vim [following] --2023-11-13 12:42:56-- https://raw.githubusercontent.com/cyberkov/openhab-vim/master/syntax/openhab.vim Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 2606:50c0:8003::154, 2606:50c0:8002::154, 2606:50c0:8000::154, ... Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|2606:50c0:8003::154|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 6065 (5.9K) [text/plain] Saving to: ‘/home/openhabian/.vim/syntax/openhab.vim’ 0K ..... 100% 17.6M=0s 2023-11-13 12:42:56 (17.6 MB/s) - ‘/home/openhabian/.vim/syntax/openhab.vim’ saved [6065/6065] + return 0 + cond_redirect wget -O /home/openhabian/.vim/ftdetect/openhab.vim https://github.com/cyberkov/openhab-vim/raw/master/ftdetect/openhab.vim + [[ -n '' ]] + echo -e '\n\033[90;01m$ wget -O /home/openhabian/.vim/ftdetect/openhab.vim https://github.com/cyberkov/openhab-vim/raw/master/ftdetect/openhab.vim \033[39;49;00m' $ wget -O /home/openhabian/.vim/ftdetect/openhab.vim https://github.com/cyberkov/openhab-vim/raw/master/ftdetect/openhab.vim  + wget -O /home/openhabian/.vim/ftdetect/openhab.vim https://github.com/cyberkov/openhab-vim/raw/master/ftdetect/openhab.vim --2023-11-13 12:42:56-- https://github.com/cyberkov/openhab-vim/raw/master/ftdetect/openhab.vim Resolving github.com (github.com)... 140.82.121.3 Connecting to github.com (github.com)|140.82.121.3|:443... connected. HTTP request sent, awaiting response... 302 Found Location: https://raw.githubusercontent.com/cyberkov/openhab-vim/master/ftdetect/openhab.vim [following] --2023-11-13 12:42:56-- https://raw.githubusercontent.com/cyberkov/openhab-vim/master/ftdetect/openhab.vim Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 2606:50c0:8003::154, 2606:50c0:8002::154, 2606:50c0:8000::154, ... Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|2606:50c0:8003::154|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 661 [text/plain] Saving to: ‘/home/openhabian/.vim/ftdetect/openhab.vim’ 0K 100% 20.3M=0s 2023-11-13 12:42:56 (20.3 MB/s) - ‘/home/openhabian/.vim/ftdetect/openhab.vim’ saved [661/661] + return 0 + chown -R openhabian:openhabian /home/openhabian/.vim + echo OK OK + nano_openhab_syntax ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-11-13_12:42:56_CET [openHABian] Adding openHAB syntax to nano editor... ' 2023-11-13_12:42:56_CET [openHABian] Adding openHAB syntax to nano editor... + cond_redirect wget -O /usr/share/nano/openhab.nanorc https://github.com/airix1/openhabnano/raw/master/openhab.nanorc + [[ -n '' ]] + echo -e '\n\033[90;01m$ wget -O /usr/share/nano/openhab.nanorc https://github.com/airix1/openhabnano/raw/master/openhab.nanorc \033[39;49;00m' $ wget -O /usr/share/nano/openhab.nanorc https://github.com/airix1/openhabnano/raw/master/openhab.nanorc  + wget -O /usr/share/nano/openhab.nanorc https://github.com/airix1/openhabnano/raw/master/openhab.nanorc --2023-11-13 12:42:56-- https://github.com/airix1/openhabnano/raw/master/openhab.nanorc Resolving github.com (github.com)... 140.82.121.3 Connecting to github.com (github.com)|140.82.121.3|:443... connected. HTTP request sent, awaiting response... 302 Found Location: https://raw.githubusercontent.com/airix1/openhabnano/master/openhab.nanorc [following] --2023-11-13 12:42:56-- https://raw.githubusercontent.com/airix1/openhabnano/master/openhab.nanorc Resolving raw.githubusercontent.com (raw.githubusercontent.com)... 2606:50c0:8003::154, 2606:50c0:8002::154, 2606:50c0:8000::154, ... Connecting to raw.githubusercontent.com (raw.githubusercontent.com)|2606:50c0:8003::154|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 2927 (2.9K) [text/plain] Saving to: ‘/usr/share/nano/openhab.nanorc’ 0K .. 100% 10.6M=0s 2023-11-13 12:42:57 (10.6 MB/s) - ‘/usr/share/nano/openhab.nanorc’ saved [2927/2927] + return 0 + echo -e '\n## openHAB syntax\ninclude "/usr/share/nano/openhab.nanorc"' + echo OK OK + multitail_openhab_scheme ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-11-13_12:42:57_CET [openHABian] Adding openHAB scheme to multitail... ' 2023-11-13_12:42:57_CET [openHABian] Adding openHAB scheme to multitail... + cp /opt/openhabian/includes/multitail.openhab.conf /etc/multitail.openhab.conf + cond_redirect sed -i -e '/^.*multitail.*openhab.*$/d' /etc/multitail.conf + [[ -n '' ]] + echo -e '\n\033[90;01m$ sed -i -e /^.*multitail.*openhab.*$/d /etc/multitail.conf \033[39;49;00m' $ sed -i -e /^.*multitail.*openhab.*$/d /etc/multitail.conf  + sed -i -e '/^.*multitail.*openhab.*$/d' /etc/multitail.conf + return 0 + cond_redirect sed -i -e 's|^# misc.*$|# openHAB logs\\ninclude:/etc/multitail.openhab.conf\\n#\\n# misc|g' /etc/multitail.conf + [[ -n '' ]] + echo -e '\n\033[90;01m$ sed -i -e s|^# misc.*$|# openHAB logs\\ninclude:/etc/multitail.openhab.conf\\n#\\n# misc|g /etc/multitail.conf \033[39;49;00m' $ sed -i -e s|^# misc.*$|# openHAB logs\ninclude:/etc/multitail.openhab.conf\n#\n# misc|g /etc/multitail.conf  + sed -i -e 's|^# misc.*$|# openHAB logs\\ninclude:/etc/multitail.openhab.conf\\n#\\n# misc|g' /etc/multitail.conf + return 0 + echo OK OK + srv_bind_mounts + [[ -f /etc/ztab ]] ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-11-13_12:42:57_CET [openHABian] Preparing openHAB folder mounts under '\''/srv/openhab-*'\''... ' 2023-11-13_12:42:57_CET [openHABian] Preparing openHAB folder mounts under '/srv/openhab-*'... + cond_redirect umount -q /srv/openhab-sys /srv/openhab-conf /srv/openhab-userdata /srv/openhab-addons + [[ -n '' ]] + echo -e '\n\033[90;01m$ umount -q /srv/openhab-sys /srv/openhab-conf /srv/openhab-userdata /srv/openhab-addons \033[39;49;00m' $ umount -q /srv/openhab-sys /srv/openhab-conf /srv/openhab-userdata /srv/openhab-addons  + umount -q /srv/openhab-sys /srv/openhab-conf /srv/openhab-userdata /srv/openhab-addons umount: /srv/openhab-sys: no mount point specified. umount: /srv/openhab-conf: no mount point specified. umount: /srv/openhab-userdata: no mount point specified. umount: /srv/openhab-addons: no mount point specified. + return 128 + cond_redirect rm -f '/etc/systemd/system/srv*.mount' + [[ -n '' ]] + echo -e '\n\033[90;01m$ rm -f /etc/systemd/system/srv*.mount \033[39;49;00m' $ rm -f /etc/systemd/system/srv*.mount  + rm -f '/etc/systemd/system/srv*.mount' + return 0 + cond_redirect mkdir -p /srv/openhab-sys /srv/openhab-conf /srv/openhab-userdata /srv/openhab-addons + [[ -n '' ]] + echo -e '\n\033[90;01m$ mkdir -p /srv/openhab-sys /srv/openhab-conf /srv/openhab-userdata /srv/openhab-addons \033[39;49;00m' $ mkdir -p /srv/openhab-sys /srv/openhab-conf /srv/openhab-userdata /srv/openhab-addons  + mkdir -p /srv/openhab-sys /srv/openhab-conf /srv/openhab-userdata /srv/openhab-addons + return 0 + cond_redirect cp /opt/openhabian/includes/srv_readme.txt /srv/README.txt + [[ -n '' ]] + echo -e '\n\033[90;01m$ cp /opt/openhabian/includes/srv_readme.txt /srv/README.txt \033[39;49;00m' $ cp /opt/openhabian/includes/srv_readme.txt /srv/README.txt  + cp /opt/openhabian/includes/srv_readme.txt /srv/README.txt + return 0 + cond_redirect chmod ugo+w /srv /srv/README.txt + [[ -n '' ]] + echo -e '\n\033[90;01m$ chmod ugo+w /srv /srv/README.txt \033[39;49;00m' $ chmod ugo+w /srv /srv/README.txt  + chmod ugo+w /srv /srv/README.txt + return 0 + cond_redirect create_mount /usr/share/openhab sys + [[ -n '' ]] + echo -e '\n\033[90;01m$ create_mount /usr/share/openhab sys \033[39;49;00m' $ create_mount /usr/share/openhab sys  + create_mount /usr/share/openhab sys + running_in_docker + [[ -n '' ]] + grep -qs 'docker\|lxc' /proc/1/cgroup + [[ -f /.dockerenv ]] + return 1 + local destination + local mountPoint + local source + destination=sys ++ systemd-escape --path /srv/openhab-sys --suffix mount + mountPoint='srv-openhab\x2dsys.mount' + source=/usr/share/openhab ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-11-13_12:42:57_CET [openHABian] Creating mount /usr/share/openhab in '\''/srv/openhab-sys'\''... ' 2023-11-13_12:42:57_CET [openHABian] Creating mount /usr/share/openhab in '/srv/openhab-sys'... + sed -e 's|%SRC|/usr/share/openhab|g; s|%DEST|sys|g' /opt/openhabian/includes/srv_mount_template + cond_redirect systemctl -q daemon-reload + [[ -n '' ]] + echo -e '\n\033[90;01m$ systemctl -q daemon-reload \033[39;49;00m' $ systemctl -q daemon-reload  + systemctl -q daemon-reload + return 0 + cond_redirect systemctl enable --now 'srv-openhab\x2dsys.mount' + [[ -n '' ]] + echo -e '\n\033[90;01m$ systemctl enable --now srv-openhab\x2dsys.mount \033[39;49;00m' $ systemctl enable --now srv-openhab-sys.mount  + systemctl enable --now 'srv-openhab\x2dsys.mount' Created symlink /etc/systemd/system/multi-user.target.wants/srv-openhab\x2dsys.mount → /etc/systemd/system/srv-openhab\x2dsys.mount. + return 0 + echo OK OK + return 0 + cond_redirect create_mount /etc/openhab conf + [[ -n '' ]] + echo -e '\n\033[90;01m$ create_mount /etc/openhab conf \033[39;49;00m' $ create_mount /etc/openhab conf  + create_mount /etc/openhab conf + running_in_docker + [[ -n '' ]] + grep -qs 'docker\|lxc' /proc/1/cgroup + [[ -f /.dockerenv ]] + return 1 + local destination + local mountPoint + local source + destination=conf ++ systemd-escape --path /srv/openhab-conf --suffix mount + mountPoint='srv-openhab\x2dconf.mount' + source=/etc/openhab ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-11-13_12:42:58_CET [openHABian] Creating mount /etc/openhab in '\''/srv/openhab-conf'\''... ' 2023-11-13_12:42:58_CET [openHABian] Creating mount /etc/openhab in '/srv/openhab-conf'... + sed -e 's|%SRC|/etc/openhab|g; s|%DEST|conf|g' /opt/openhabian/includes/srv_mount_template + cond_redirect systemctl -q daemon-reload + [[ -n '' ]] + echo -e '\n\033[90;01m$ systemctl -q daemon-reload \033[39;49;00m' $ systemctl -q daemon-reload  + systemctl -q daemon-reload + return 0 + cond_redirect systemctl enable --now 'srv-openhab\x2dconf.mount' + [[ -n '' ]] + echo -e '\n\033[90;01m$ systemctl enable --now srv-openhab\x2dconf.mount \033[39;49;00m' $ systemctl enable --now srv-openhab-conf.mount  + systemctl enable --now 'srv-openhab\x2dconf.mount' Created symlink /etc/systemd/system/multi-user.target.wants/srv-openhab\x2dconf.mount → /etc/systemd/system/srv-openhab\x2dconf.mount. + return 0 + echo OK OK + return 0 + cond_redirect create_mount /var/lib/openhab userdata + [[ -n '' ]] + echo -e '\n\033[90;01m$ create_mount /var/lib/openhab userdata \033[39;49;00m' $ create_mount /var/lib/openhab userdata  + create_mount /var/lib/openhab userdata + running_in_docker + [[ -n '' ]] + grep -qs 'docker\|lxc' /proc/1/cgroup + [[ -f /.dockerenv ]] + return 1 + local destination + local mountPoint + local source + destination=userdata ++ systemd-escape --path /srv/openhab-userdata --suffix mount + mountPoint='srv-openhab\x2duserdata.mount' + source=/var/lib/openhab ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-11-13_12:43:00_CET [openHABian] Creating mount /var/lib/openhab in '\''/srv/openhab-userdata'\''... ' 2023-11-13_12:43:00_CET [openHABian] Creating mount /var/lib/openhab in '/srv/openhab-userdata'... + sed -e 's|%SRC|/var/lib/openhab|g; s|%DEST|userdata|g' /opt/openhabian/includes/srv_mount_template + cond_redirect systemctl -q daemon-reload + [[ -n '' ]] + echo -e '\n\033[90;01m$ systemctl -q daemon-reload \033[39;49;00m' $ systemctl -q daemon-reload  + systemctl -q daemon-reload + return 0 + cond_redirect systemctl enable --now 'srv-openhab\x2duserdata.mount' + [[ -n '' ]] + echo -e '\n\033[90;01m$ systemctl enable --now srv-openhab\x2duserdata.mount \033[39;49;00m' $ systemctl enable --now srv-openhab-userdata.mount  + systemctl enable --now 'srv-openhab\x2duserdata.mount' Created symlink /etc/systemd/system/multi-user.target.wants/srv-openhab\x2duserdata.mount → /etc/systemd/system/srv-openhab\x2duserdata.mount. + return 0 + echo OK OK + return 0 + cond_redirect create_mount /usr/share/openhab/addons addons + [[ -n '' ]] + echo -e '\n\033[90;01m$ create_mount /usr/share/openhab/addons addons \033[39;49;00m' $ create_mount /usr/share/openhab/addons addons  + create_mount /usr/share/openhab/addons addons + running_in_docker + [[ -n '' ]] + grep -qs 'docker\|lxc' /proc/1/cgroup + [[ -f /.dockerenv ]] + return 1 + local destination + local mountPoint + local source + destination=addons ++ systemd-escape --path /srv/openhab-addons --suffix mount + mountPoint='srv-openhab\x2daddons.mount' + source=/usr/share/openhab/addons ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-11-13_12:43:01_CET [openHABian] Creating mount /usr/share/openhab/addons in '\''/srv/openhab-addons'\''... ' 2023-11-13_12:43:01_CET [openHABian] Creating mount /usr/share/openhab/addons in '/srv/openhab-addons'... + sed -e 's|%SRC|/usr/share/openhab/addons|g; s|%DEST|addons|g' /opt/openhabian/includes/srv_mount_template + cond_redirect systemctl -q daemon-reload + [[ -n '' ]] + echo -e '\n\033[90;01m$ systemctl -q daemon-reload \033[39;49;00m' $ systemctl -q daemon-reload  + systemctl -q daemon-reload + return 0 + cond_redirect systemctl enable --now 'srv-openhab\x2daddons.mount' + [[ -n '' ]] + echo -e '\n\033[90;01m$ systemctl enable --now srv-openhab\x2daddons.mount \033[39;49;00m' $ systemctl enable --now srv-openhab-addons.mount  + systemctl enable --now 'srv-openhab\x2daddons.mount' Created symlink /etc/systemd/system/multi-user.target.wants/srv-openhab\x2daddons.mount → /etc/systemd/system/srv-openhab\x2daddons.mount. + return 0 + echo OK OK + return 0 + echo OK OK + [[ -f /etc/ztab ]] + samba_setup + local serviceFile=/lib/systemd/system/smbd.service + samba_is_installed + dpkg -s samba + return 1 ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-11-13_12:43:03_CET [openHABian] Installing Samba... ' 2023-11-13_12:43:03_CET [openHABian] Installing Samba... + cond_redirect apt-get install --yes -o DPkg::Lock::Timeout=60 samba + [[ -n '' ]] + echo -e '\n\033[90;01m$ apt-get install --yes -o DPkg::Lock::Timeout=60 samba \033[39;49;00m' $ apt-get install --yes -o DPkg::Lock::Timeout=60 samba  + apt-get install --yes -o DPkg::Lock::Timeout=60 samba Reading package lists... Building dependency tree... Reading state information... The following packages were automatically installed and are no longer required: bluez dos2unix iw python3-toml rfkill triggerhappy Use 'apt autoremove' to remove them. The following additional packages will be installed: attr ibverbs-providers libboost-iostreams1.74.0 libcephfs2 libgfapi0 libgfrpc0 libgfxdr0 libglusterfs0 libibverbs1 libldb2 libncurses6 librados2 librdmacm1 libtdb1 libtevent0 liburing2 python3-anyio python3-click python3-colorama python3-dnspython python3-gpg python3-h11 python3-h2 python3-hpack python3-httpcore python3-httpx python3-hyperframe python3-ldb python3-markdown python3-markdown-it python3-mdurl python3-pygments python3-requests-toolbelt python3-rfc3986 python3-rich python3-samba python3-sniffio python3-talloc python3-tdb python3-yaml samba-ad-provision samba-common samba-common-bin samba-dsdb-modules samba-libs samba-vfs-modules tdb-tools Suggested packages: python3-trio python3-aioquic python-markdown-doc python-pygments-doc ttf-bitstream-vera bind9 bind9utils ctdb ldb-tools ntp | chrony ufw winbind heimdal-clients The following NEW packages will be installed: attr ibverbs-providers libboost-iostreams1.74.0 libcephfs2 libgfapi0 libgfrpc0 libgfxdr0 libglusterfs0 libibverbs1 libldb2 libncurses6 librados2 librdmacm1 libtdb1 libtevent0 liburing2 python3-anyio python3-click python3-colorama python3-dnspython python3-gpg python3-h11 python3-h2 python3-hpack python3-httpcore python3-httpx python3-hyperframe python3-ldb python3-markdown python3-markdown-it python3-mdurl python3-pygments python3-requests-toolbelt python3-rfc3986 python3-rich python3-samba python3-sniffio python3-talloc python3-tdb python3-yaml samba samba-ad-provision samba-common samba-common-bin samba-dsdb-modules samba-libs samba-vfs-modules tdb-tools 0 upgraded, 48 newly installed, 0 to remove and 19 not upgraded. Need to get 28.7 MB of archives. After this operation, 109 MB of additional disk space will be used. Get:1 http://ftp.halifax.rwth-aachen.de/raspbian/raspbian bookworm/main armhf python3-dnspython all 2.3.0-1 [152 kB] Get:2 http://ftp.halifax.rwth-aachen.de/raspbian/raspbian bookworm/main armhf libtdb1 armhf 1.4.8-2 [39.6 kB] Get:3 http://ftp.agdsn.de/pub/mirrors/raspbian/raspbian bookworm/main armhf libtevent0 armhf 0.14.1-1 [32.4 kB] Get:4 http://raspbian.raspberrypi.com/raspbian bookworm/main armhf libldb2 armhf 2:2.6.2+samba4.17.8+dfsg-2 [133 kB] Get:5 http://raspbian.raspberrypi.com/raspbian bookworm/main armhf python3-ldb armhf 2:2.6.2+samba4.17.8+dfsg-2 [53.8 kB] Get:6 http://ftp.halifax.rwth-aachen.de/raspbian/raspbian bookworm/main armhf python3-tdb armhf 1.4.8-2 [15.5 kB] Get:10 http://raspbian.raspberrypi.com/raspbian bookworm/main armhf samba-common all 2:4.17.8+dfsg-2 [83.3 kB] Get:7 http://raspbian.raspberrypi.com/raspbian bookworm/main armhf samba-libs armhf 2:4.17.8+dfsg-2 [4,832 kB] Get:8 http://ftp.halifax.rwth-aachen.de/raspbian/raspbian bookworm/main armhf python3-talloc armhf 2.4.0-f2 [13.8 kB] Get:9 http://raspbian.raspberrypi.com/raspbian bookworm/main armhf python3-samba armhf 2:4.17.8+dfsg-2 [2,408 kB] Get:11 http://ftp.halifax.rwth-aachen.de/raspbian/raspbian bookworm/main armhf libncurses6 armhf 6.4-4 [80.0 kB] Get:12 http://raspbian.raspberrypi.com/raspbian bookworm/main armhf samba-common-bin armhf 2:4.17.8+dfsg-2 [1,050 kB] Get:17 http://mirror.de.leaseweb.net/raspbian/raspbian bookworm/main armhf ibverbs-providers armhf 44.0-2 [28.1 kB] Get:13 http://ftp.halifax.rwth-aachen.de/raspbian/raspbian bookworm/main armhf tdb-tools armhf 1.4.8-2 [26.0 kB] Get:14 http://raspbian.raspberrypi.com/raspbian bookworm/main armhf samba armhf 2:4.17.8+dfsg-2 [845 kB] Get:15 http://ftp.halifax.rwth-aachen.de/raspbian/raspbian bookworm/main armhf attr armhf 1:2.5.1-4 [39.3 kB] Get:19 http://mirror.netzwerge.de/raspbian/raspbian bookworm/main armhf librdmacm1 armhf 44.0-2 [59.4 kB] Get:16 http://ftp.halifax.rwth-aachen.de/raspbian/raspbian bookworm/main armhf libibverbs1 armhf 44.0-2 [52.7 kB] Get:20 http://raspbian.raspberrypi.com/raspbian bookworm/main armhf librados2 armhf 16.2.11+ds-2+rpi1 [2,179 kB] Get:18 http://raspbian.raspberrypi.com/raspbian bookworm/main armhf libboost-iostreams1.74.0 armhf 1.74.0+ds1-21 [235 kB] Get:21 http://raspbian.raspberrypi.com/raspbian bookworm/main armhf libcephfs2 armhf 16.2.11+ds-2+rpi1 [473 kB] Get:22 http://ftp.halifax.rwth-aachen.de/raspbian/raspbian bookworm/main armhf libgfxdr0 armhf 10.3-5 [3,102 kB] Get:25 http://debian.bio.lmu.de/raspbian/raspbian bookworm/main armhf libgfapi0 armhf 10.3-5 [3,146 kB] Get:27 http://mirror1.hs-esslingen.de/pub/Mirrors/archive.raspbian.org/raspbian bookworm/main armhf python3-sniffio all 1.2.0-1 [6,372 B] Get:23 http://ftp.halifax.rwth-aachen.de/raspbian/raspbian bookworm/main armhf libglusterfs0 armhf 10.3-5 [3,322 kB] Get:28 http://mirror1.hs-esslingen.de/pub/Mirrors/archive.raspbian.org/raspbian bookworm/main armhf python3-anyio all 3.6.2-1 [54.0 kB] Get:29 http://mirror1.hs-esslingen.de/pub/Mirrors/archive.raspbian.org/raspbian bookworm/main armhf python3-colorama all 0.4.6-2 [36.8 kB] Get:31 http://raspbian.raspberrypi.com/raspbian bookworm/main armhf python3-gpg armhf 1.18.0-3+b1 [340 kB] Get:26 http://debian.bio.lmu.de/raspbian/raspbian bookworm/main armhf liburing2 armhf 2.3-3 [12.7 kB] Get:36 http://mirror.netcologne.de/raspbian/raspbian bookworm/main armhf python3-httpcore all 0.16.3-1 [38.4 kB] Get:38 http://mirror1.hs-esslingen.de/pub/Mirrors/archive.raspbian.org/raspbian bookworm/main armhf python3-mdurl all 0.1.2-1 [9,444 B] Get:24 http://ftp.halifax.rwth-aachen.de/raspbian/raspbian bookworm/main armhf libgfrpc0 armhf 10.3-5 [3,127 kB] Get:41 http://mirror.de.leaseweb.net/raspbian/raspbian bookworm/main armhf python3-rfc3986 all 1.5.0-2 [22.2 kB] Get:30 http://ftp.halifax.rwth-aachen.de/raspbian/raspbian bookworm/main armhf python3-click all 8.1.3-2 [92.2 kB] Get:43 http://mirror1.hs-esslingen.de/pub/Mirrors/archive.raspbian.org/raspbian bookworm/main armhf python3-markdown all 3.4.1-2 [64.7 kB] Get:32 http://ftp.halifax.rwth-aachen.de/raspbian/raspbian bookworm/main armhf python3-h11 all 0.14.0-1 [50.1 kB] Get:42 http://mirror.de.leaseweb.net/raspbian/raspbian bookworm/main armhf python3-httpx all 0.23.3-1 [72.3 kB] Get:33 http://ftp.halifax.rwth-aachen.de/raspbian/raspbian bookworm/main armhf python3-hpack all 4.0.0-2 [25.0 kB] Get:34 http://ftp.halifax.rwth-aachen.de/raspbian/raspbian bookworm/main armhf python3-hyperframe all 6.0.0-1 [14.5 kB] Get:35 http://ftp.halifax.rwth-aachen.de/raspbian/raspbian bookworm/main armhf python3-h2 all 4.1.0-4 [80.8 kB] Get:37 http://raspbian.raspberrypi.com/raspbian bookworm/main armhf python3-pygments all 2.14.0+dfsg-1 [783 kB] Get:39 http://ftp.halifax.rwth-aachen.de/raspbian/raspbian bookworm/main armhf python3-markdown-it all 2.1.0-5 [58.8 kB] Get:40 http://ftp.halifax.rwth-aachen.de/raspbian/raspbian bookworm/main armhf python3-rich all 13.3.1-1 [202 kB] Get:44 http://ftp.halifax.rwth-aachen.de/raspbian/raspbian bookworm/main armhf python3-requests-toolbelt all 0.10.1-1 [41.3 kB] Get:45 http://raspbian.raspberrypi.com/raspbian bookworm/main armhf python3-yaml armhf 6.0-3+b1 [141 kB] Get:46 http://raspbian.raspberrypi.com/raspbian bookworm/main armhf samba-ad-provision all 2:4.17.8+dfsg-2 [413 kB] Get:47 http://raspbian.raspberrypi.com/raspbian bookworm/main armhf samba-dsdb-modules armhf 2:4.17.8+dfsg-2 [277 kB] Get:48 http://raspbian.raspberrypi.com/raspbian bookworm/main armhf samba-vfs-modules armhf 2:4.17.8+dfsg-2 [386 kB] Preconfiguring packages ... Fetched 28.7 MB in 9s (3,168 kB/s) Selecting previously unselected package python3-dnspython. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 71332 files and directories currently installed.) Preparing to unpack .../00-python3-dnspython_2.3.0-1_all.deb ... Unpacking python3-dnspython (2.3.0-1) ... Selecting previously unselected package libtdb1:armhf. Preparing to unpack .../01-libtdb1_1.4.8-2_armhf.deb ... Unpacking libtdb1:armhf (1.4.8-2) ... Selecting previously unselected package libtevent0:armhf. Preparing to unpack .../02-libtevent0_0.14.1-1_armhf.deb ... Unpacking libtevent0:armhf (0.14.1-1) ... Selecting previously unselected package libldb2:armhf. Preparing to unpack .../03-libldb2_2%3a2.6.2+samba4.17.8+dfsg-2_armhf.deb ... Unpacking libldb2:armhf (2:2.6.2+samba4.17.8+dfsg-2) ... Selecting previously unselected package python3-ldb. Preparing to unpack .../04-python3-ldb_2%3a2.6.2+samba4.17.8+dfsg-2_armhf.deb ... Unpacking python3-ldb (2:2.6.2+samba4.17.8+dfsg-2) ... Selecting previously unselected package python3-tdb. Preparing to unpack .../05-python3-tdb_1.4.8-2_armhf.deb ... Unpacking python3-tdb (1.4.8-2) ... Selecting previously unselected package samba-libs:armhf. Preparing to unpack .../06-samba-libs_2%3a4.17.8+dfsg-2_armhf.deb ... Unpacking samba-libs:armhf (2:4.17.8+dfsg-2) ... Selecting previously unselected package python3-talloc:armhf. Preparing to unpack .../07-python3-talloc_2.4.0-f2_armhf.deb ... Unpacking python3-talloc:armhf (2.4.0-f2) ... Selecting previously unselected package python3-samba. Preparing to unpack .../08-python3-samba_2%3a4.17.8+dfsg-2_armhf.deb ... Unpacking python3-samba (2:4.17.8+dfsg-2) ... Selecting previously unselected package samba-common. Preparing to unpack .../09-samba-common_2%3a4.17.8+dfsg-2_all.deb ... Unpacking samba-common (2:4.17.8+dfsg-2) ... Selecting previously unselected package libncurses6:armhf. Preparing to unpack .../10-libncurses6_6.4-4_armhf.deb ... Unpacking libncurses6:armhf (6.4-4) ... Selecting previously unselected package samba-common-bin. Preparing to unpack .../11-samba-common-bin_2%3a4.17.8+dfsg-2_armhf.deb ... Unpacking samba-common-bin (2:4.17.8+dfsg-2) ... Selecting previously unselected package tdb-tools. Preparing to unpack .../12-tdb-tools_1.4.8-2_armhf.deb ... Unpacking tdb-tools (1.4.8-2) ... Selecting previously unselected package samba. Preparing to unpack .../13-samba_2%3a4.17.8+dfsg-2_armhf.deb ... Unpacking samba (2:4.17.8+dfsg-2) ... Selecting previously unselected package attr. Preparing to unpack .../14-attr_1%3a2.5.1-4_armhf.deb ... Unpacking attr (1:2.5.1-4) ... Selecting previously unselected package libibverbs1:armhf. Preparing to unpack .../15-libibverbs1_44.0-2_armhf.deb ... Unpacking libibverbs1:armhf (44.0-2) ... Selecting previously unselected package ibverbs-providers:armhf. Preparing to unpack .../16-ibverbs-providers_44.0-2_armhf.deb ... Unpacking ibverbs-providers:armhf (44.0-2) ... Selecting previously unselected package libboost-iostreams1.74.0:armhf. Preparing to unpack .../17-libboost-iostreams1.74.0_1.74.0+ds1-21_armhf.deb ... Unpacking libboost-iostreams1.74.0:armhf (1.74.0+ds1-21) ... Selecting previously unselected package librdmacm1:armhf. Preparing to unpack .../18-librdmacm1_44.0-2_armhf.deb ... Unpacking librdmacm1:armhf (44.0-2) ... Selecting previously unselected package librados2. Preparing to unpack .../19-librados2_16.2.11+ds-2+rpi1_armhf.deb ... Unpacking librados2 (16.2.11+ds-2+rpi1) ... Selecting previously unselected package libcephfs2. Preparing to unpack .../20-libcephfs2_16.2.11+ds-2+rpi1_armhf.deb ... Unpacking libcephfs2 (16.2.11+ds-2+rpi1) ... Selecting previously unselected package libgfxdr0:armhf. Preparing to unpack .../21-libgfxdr0_10.3-5_armhf.deb ... Unpacking libgfxdr0:armhf (10.3-5) ... Selecting previously unselected package libglusterfs0:armhf. Preparing to unpack .../22-libglusterfs0_10.3-5_armhf.deb ... Unpacking libglusterfs0:armhf (10.3-5) ... Selecting previously unselected package libgfrpc0:armhf. Preparing to unpack .../23-libgfrpc0_10.3-5_armhf.deb ... Unpacking libgfrpc0:armhf (10.3-5) ... Selecting previously unselected package libgfapi0:armhf. Preparing to unpack .../24-libgfapi0_10.3-5_armhf.deb ... Unpacking libgfapi0:armhf (10.3-5) ... Selecting previously unselected package liburing2:armhf. Preparing to unpack .../25-liburing2_2.3-3_armhf.deb ... Unpacking liburing2:armhf (2.3-3) ... Selecting previously unselected package python3-sniffio. Preparing to unpack .../26-python3-sniffio_1.2.0-1_all.deb ... Unpacking python3-sniffio (1.2.0-1) ... Selecting previously unselected package python3-anyio. Preparing to unpack .../27-python3-anyio_3.6.2-1_all.deb ... Unpacking python3-anyio (3.6.2-1) ... Selecting previously unselected package python3-colorama. Preparing to unpack .../28-python3-colorama_0.4.6-2_all.deb ... Unpacking python3-colorama (0.4.6-2) ... Selecting previously unselected package python3-click. Preparing to unpack .../29-python3-click_8.1.3-2_all.deb ... Unpacking python3-click (8.1.3-2) ... Selecting previously unselected package python3-gpg. Preparing to unpack .../30-python3-gpg_1.18.0-3+b1_armhf.deb ... Unpacking python3-gpg (1.18.0-3+b1) ... Selecting previously unselected package python3-h11. Preparing to unpack .../31-python3-h11_0.14.0-1_all.deb ... Unpacking python3-h11 (0.14.0-1) ... Selecting previously unselected package python3-hpack. Preparing to unpack .../32-python3-hpack_4.0.0-2_all.deb ... Unpacking python3-hpack (4.0.0-2) ... Selecting previously unselected package python3-hyperframe. Preparing to unpack .../33-python3-hyperframe_6.0.0-1_all.deb ... Unpacking python3-hyperframe (6.0.0-1) ... Selecting previously unselected package python3-h2. Preparing to unpack .../34-python3-h2_4.1.0-4_all.deb ... Unpacking python3-h2 (4.1.0-4) ... Selecting previously unselected package python3-httpcore. Preparing to unpack .../35-python3-httpcore_0.16.3-1_all.deb ... Unpacking python3-httpcore (0.16.3-1) ... Selecting previously unselected package python3-pygments. Preparing to unpack .../36-python3-pygments_2.14.0+dfsg-1_all.deb ... Unpacking python3-pygments (2.14.0+dfsg-1) ... Selecting previously unselected package python3-mdurl. Preparing to unpack .../37-python3-mdurl_0.1.2-1_all.deb ... Unpacking python3-mdurl (0.1.2-1) ... Selecting previously unselected package python3-markdown-it. Preparing to unpack .../38-python3-markdown-it_2.1.0-5_all.deb ... Unpacking python3-markdown-it (2.1.0-5) ... Selecting previously unselected package python3-rich. Preparing to unpack .../39-python3-rich_13.3.1-1_all.deb ... Unpacking python3-rich (13.3.1-1) ... Selecting previously unselected package python3-rfc3986. Preparing to unpack .../40-python3-rfc3986_1.5.0-2_all.deb ... Unpacking python3-rfc3986 (1.5.0-2) ... Selecting previously unselected package python3-httpx. Preparing to unpack .../41-python3-httpx_0.23.3-1_all.deb ... Unpacking python3-httpx (0.23.3-1) ... Selecting previously unselected package python3-markdown. Preparing to unpack .../42-python3-markdown_3.4.1-2_all.deb ... Unpacking python3-markdown (3.4.1-2) ... Selecting previously unselected package python3-requests-toolbelt. Preparing to unpack .../43-python3-requests-toolbelt_0.10.1-1_all.deb ... Unpacking python3-requests-toolbelt (0.10.1-1) ... Selecting previously unselected package python3-yaml. Preparing to unpack .../44-python3-yaml_6.0-3+b1_armhf.deb ... Unpacking python3-yaml (6.0-3+b1) ... Selecting previously unselected package samba-ad-provision. Preparing to unpack .../45-samba-ad-provision_2%3a4.17.8+dfsg-2_all.deb ... Unpacking samba-ad-provision (2:4.17.8+dfsg-2) ... Selecting previously unselected package samba-dsdb-modules:armhf. Preparing to unpack .../46-samba-dsdb-modules_2%3a4.17.8+dfsg-2_armhf.deb ... Unpacking samba-dsdb-modules:armhf (2:4.17.8+dfsg-2) ... Selecting previously unselected package samba-vfs-modules:armhf. Preparing to unpack .../47-samba-vfs-modules_2%3a4.17.8+dfsg-2_armhf.deb ... Unpacking samba-vfs-modules:armhf (2:4.17.8+dfsg-2) ... Setting up python3-sniffio (1.2.0-1) ... Setting up libibverbs1:armhf (44.0-2) ... Setting up python3-requests-toolbelt (0.10.1-1) ... Setting up python3-anyio (3.6.2-1) ... Setting up python3-hyperframe (6.0.0-1) ... Setting up ibverbs-providers:armhf (44.0-2) ... Setting up python3-hpack (4.0.0-2) ... Setting up python3-colorama (0.4.6-2) ... Setting up python3-talloc:armhf (2.4.0-f2) ... Setting up attr (1:2.5.1-4) ... Setting up libboost-iostreams1.74.0:armhf (1.74.0+ds1-21) ... Setting up libtdb1:armhf (1.4.8-2) ... Setting up python3-yaml (6.0-3+b1) ... Setting up samba-common (2:4.17.8+dfsg-2) ... Creating config file /etc/samba/smb.conf with new version Setting up python3-click (8.1.3-2) ... Setting up libglusterfs0:armhf (10.3-5) ... Setting up python3-tdb (1.4.8-2) ... Setting up python3-pygments (2.14.0+dfsg-1) ... Setting up python3-rfc3986 (1.5.0-2) ... Setting up libtevent0:armhf (0.14.1-1) ... Setting up python3-gpg (1.18.0-3+b1) ... Setting up libncurses6:armhf (6.4-4) ... Setting up tdb-tools (1.4.8-2) ... update-alternatives: using /usr/bin/tdbbackup.tdbtools to provide /usr/bin/tdbbackup (tdbbackup) in auto mode Setting up python3-mdurl (0.1.2-1) ... Setting up python3-markdown (3.4.1-2) ... Setting up python3-h11 (0.14.0-1) ... Setting up python3-markdown-it (2.1.0-5) ... Setting up python3-dnspython (2.3.0-1) ... Setting up samba-ad-provision (2:4.17.8+dfsg-2) ... Setting up python3-h2 (4.1.0-4) ... Setting up liburing2:armhf (2.3-3) ... Setting up libldb2:armhf (2:2.6.2+samba4.17.8+dfsg-2) ... Setting up libgfxdr0:armhf (10.3-5) ... Setting up python3-httpcore (0.16.3-1) ... Setting up librdmacm1:armhf (44.0-2) ... Setting up librados2 (16.2.11+ds-2+rpi1) ... Setting up python3-rich (13.3.1-1) ... Setting up samba-libs:armhf (2:4.17.8+dfsg-2) ... Setting up libcephfs2 (16.2.11+ds-2+rpi1) ... Setting up python3-httpx (0.23.3-1) ... Setting up python3-ldb (2:2.6.2+samba4.17.8+dfsg-2) ... Setting up samba-dsdb-modules:armhf (2:4.17.8+dfsg-2) ... Setting up libgfrpc0:armhf (10.3-5) ... Setting up python3-samba (2:4.17.8+dfsg-2) ... Setting up samba-vfs-modules:armhf (2:4.17.8+dfsg-2) ... Setting up libgfapi0:armhf (10.3-5) ... Setting up samba-common-bin (2:4.17.8+dfsg-2) ... Setting up samba (2:4.17.8+dfsg-2) ... Created symlink /etc/systemd/system/multi-user.target.wants/nmbd.service → /lib/systemd/system/nmbd.service. Created symlink /etc/systemd/system/multi-user.target.wants/samba-ad-dc.service → /lib/systemd/system/samba-ad-dc.service. Created symlink /etc/systemd/system/multi-user.target.wants/smbd.service → /lib/systemd/system/smbd.service. Processing triggers for man-db (2.11.2-2) ... Processing triggers for libc-bin (2.36-9+rpt2+deb12u3) ... Updating FireMotD available updates count ... + return 0 + echo OK OK ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-11-13_12:43:46_CET [openHABian] Setting up Samba network shares... ' 2023-11-13_12:43:46_CET [openHABian] Setting up Samba network shares... + cond_echo '\nCopying over custom '\''smb.conf'\''... ' + [[ -z '' ]] + echo -e '\033[33;01m\nCopying over custom '\''smb.conf'\''... \033[39;49;00m'  Copying over custom 'smb.conf'...  + cond_redirect cp /opt/openhabian/includes/smb.conf /etc/samba/smb.conf + [[ -n '' ]] + echo -e '\n\033[90;01m$ cp /opt/openhabian/includes/smb.conf /etc/samba/smb.conf \033[39;49;00m' $ cp /opt/openhabian/includes/smb.conf /etc/samba/smb.conf  + cp /opt/openhabian/includes/smb.conf /etc/samba/smb.conf + return 0 + cond_echo '\nWriting authentication data to openHABian default... ' + [[ -z '' ]] + echo -e '\033[33;01m\nWriting authentication data to openHABian default... \033[39;49;00m'  Writing authentication data to openHABian default...  + smbpasswd -e openhabian + echo openhabian + echo openhabian + smbpasswd -s -a openhabian + echo OK OK ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-11-13_12:43:46_CET [openHABian] Setting up Samba service... ' 2023-11-13_12:43:46_CET [openHABian] Setting up Samba service... + cond_redirect mkdir -p /var/log/samba /run/samba + [[ -n '' ]] + echo -e '\n\033[90;01m$ mkdir -p /var/log/samba /run/samba \033[39;49;00m' $ mkdir -p /var/log/samba /run/samba  + mkdir -p /var/log/samba /run/samba + return 0 + cond_redirect sed -i -E -e '/PIDFile/d; /NotifyAccess/ a PIDFile=smbd.pid\nRuntimeDirectory=samba' /lib/systemd/system/smbd.service + [[ -n '' ]] + echo -e '\n\033[90;01m$ sed -i -E -e /PIDFile/d; /NotifyAccess/ a PIDFile=smbd.pid\nRuntimeDirectory=samba /lib/systemd/system/smbd.service \033[39;49;00m' $ sed -i -E -e /PIDFile/d; /NotifyAccess/ a PIDFile=smbd.pid RuntimeDirectory=samba /lib/systemd/system/smbd.service  + sed -i -E -e '/PIDFile/d; /NotifyAccess/ a PIDFile=smbd.pid\nRuntimeDirectory=samba' /lib/systemd/system/smbd.service + return 0 + cond_redirect zram_dependency install nmbd smbd + [[ -n '' ]] + echo -e '\n\033[90;01m$ zram_dependency install nmbd smbd \033[39;49;00m' $ zram_dependency install nmbd smbd  + zram_dependency install nmbd smbd + local zramServiceConfig=/etc/systemd/system/zram.service.d/override.conf + local install=yes + [[ -f /etc/ztab ]] + return 0 + return 0 + cond_redirect systemctl enable --now smbd.service + echo OK OK + clean_config_userpw + cond_redirect sed -i -e 's|^userpw=.*$|\#userpw=xxxxxx|g' /etc/openhabian.conf + [[ -n '' ]] + echo -e '\n\033[90;01m$ sed -i -e s|^userpw=.*$|\#userpw=xxxxxx|g /etc/openhabian.conf \033[39;49;00m' $ sed -i -e s|^userpw=.*$|\#userpw=xxxxxx|g /etc/openhabian.conf  + sed -i -e 's|^userpw=.*$|\#userpw=xxxxxx|g' /etc/openhabian.conf + return 0 + frontail_setup + local frontailBase + local frontailUser=frontail + node_is_installed ++ command -v npm + [[ -x '' ]] + return 1 ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-11-13_12:43:47_CET [openHABian] Installing Frontail prerequsites (NodeJS)... ' 2023-11-13_12:43:47_CET [openHABian] Installing Frontail prerequsites (NodeJS)... + cond_redirect nodejs_setup + [[ -n '' ]] + echo -e '\n\033[90;01m$ nodejs_setup \033[39;49;00m' $ nodejs_setup  + nodejs_setup + node_is_installed ++ command -v npm + [[ -x '' ]] + return 1 + local keyName=nodejs + local link=https://nodejs.org/dist/v18.16.1/node-v18.16.1-linux-armv7l.tar.xz + local myDistro + local temp ++ lsb_release -sc + myDistro=bookworm + [[ bookworm == \n\/\a ]] ++ mktemp /tmp/openhabian.XXXXX + temp=/tmp/openhabian.2s05B + [[ -z '' ]] + is_armv6l + [[ '' == \a\r\m\v\6\l ]] + case "$(uname -m)" in ++ uname -m + return 1 + [[ -z '' ]] + add_keys https://deb.nodesource.com/gpgkey/nodesource.gpg.key nodejs + local repoKey=/usr/share/keyrings/nodejs.gpg ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-11-13_12:43:47_CET [openHABian] Adding required keys to apt... ' 2023-11-13_12:43:47_CET [openHABian] Adding required keys to apt... + curl -fsSL https://deb.nodesource.com/gpgkey/nodesource.gpg.key + gpg --dearmor + echo OK OK ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-11-13_12:43:47_CET [openHABian] Adding NodeSource repository to apt... ' 2023-11-13_12:43:47_CET [openHABian] Adding NodeSource repository to apt... + echo 'deb [signed-by=/usr/share/keyrings/nodejs.gpg] https://deb.nodesource.com/node_18.x bookworm main' + echo 'deb-src [signed-by=/usr/share/keyrings/nodejs.gpg] https://deb.nodesource.com/node_18.x bookworm main' + [[ -n '' ]] + cond_redirect apt-get update + [[ -n '' ]] + echo -e '\n\033[90;01m$ apt-get update \033[39;49;00m' $ apt-get update  + apt-get update Hit:1 http://davesteele.github.io/comitup/repo comitup InRelease Hit:2 http://archive.raspberrypi.com/debian bookworm InRelease Hit:3 http://raspbian.raspberrypi.com/raspbian bookworm InRelease Hit:4 https://deb.nodesource.com/node_18.x bookworm InRelease Hit:5 https://openhab.jfrog.io/artifactory/openhab-linuxpkg stable InRelease Reading package lists... W: http://raspbian.raspberrypi.com/raspbian/dists/bookworm/InRelease: Key is stored in legacy trusted.gpg keyring (/etc/apt/trusted.gpg), see the DEPRECATION section in apt-key(8) for details. + return 0 + echo OK OK ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-11-13_12:43:49_CET [openHABian] Installing NodeJS... ' 2023-11-13_12:43:49_CET [openHABian] Installing NodeJS... + [[ -n '' ]] + cond_redirect apt-get install --yes -o DPkg::Lock::Timeout=60 nodejs + [[ -n '' ]] + echo -e '\n\033[90;01m$ apt-get install --yes -o DPkg::Lock::Timeout=60 nodejs \033[39;49;00m' $ apt-get install --yes -o DPkg::Lock::Timeout=60 nodejs  + apt-get install --yes -o DPkg::Lock::Timeout=60 nodejs Reading package lists... Building dependency tree... Reading state information... The following packages were automatically installed and are no longer required: bluez dos2unix iw python3-toml rfkill triggerhappy Use 'apt autoremove' to remove them. The following NEW packages will be installed: nodejs 0 upgraded, 1 newly installed, 0 to remove and 19 not upgraded. Need to get 25.9 MB of archives. After this operation, 177 MB of additional disk space will be used. Get:1 https://deb.nodesource.com/node_18.x bookworm/main armhf nodejs armhf 18.17.1-deb-1nodesource1 [25.9 MB] Fetched 25.9 MB in 4s (6,451 kB/s) Selecting previously unselected package nodejs. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 73852 files and directories currently installed.) Preparing to unpack .../nodejs_18.17.1-deb-1nodesource1_armhf.deb ... Unpacking nodejs (18.17.1-deb-1nodesource1) ... Setting up nodejs (18.17.1-deb-1nodesource1) ... Processing triggers for man-db (2.11.2-2) ... Updating FireMotD available updates count ... + return 0 + echo OK OK + return 0 + echo OK OK ++ npm list -g ++ head -n 1 + frontailBase=/usr/lib/node_modules/frontail + id -u frontail + cond_redirect useradd --groups openhabian,openhab -s /bin/bash -d /var/tmp frontail + [[ -n '' ]] + echo -e '\n\033[90;01m$ useradd --groups openhabian,openhab -s /bin/bash -d /var/tmp frontail \033[39;49;00m' $ useradd --groups openhabian,openhab -s /bin/bash -d /var/tmp frontail  + useradd --groups openhabian,openhab -s /bin/bash -d /var/tmp frontail + return 0 ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-11-13_12:44:13_CET [openHABian] Installing openHAB Log Viewer (frontail)... ' 2023-11-13_12:44:13_CET [openHABian] Installing openHAB Log Viewer (frontail)... + [[ -d /usr/lib/node_modules/frontail ]] + cond_redirect frontail_download /opt + [[ -n '' ]] + echo -e '\n\033[90;01m$ frontail_download /opt \033[39;49;00m' $ frontail_download /opt  + frontail_download /opt ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-11-13_12:44:13_CET [openHABian] Downloading frontail... ' 2023-11-13_12:44:13_CET [openHABian] Downloading frontail... + [[ -d /opt/frontail ]] + cond_echo '\nUpdate... ' + [[ -z '' ]] + echo -e '\033[33;01m\nUpdate... \033[39;49;00m'  Update...  + cond_redirect update_git_repo /opt/frontail master + [[ -n '' ]] + echo -e '\n\033[90;01m$ update_git_repo /opt/frontail master \033[39;49;00m' $ update_git_repo /opt/frontail master  + update_git_repo /opt/frontail master + local branch + local path + branch=master + path=/opt/frontail ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 ++ basename /opt/frontail + echo -n '2023-11-13_12:44:13_CET [openHABian] Updating frontail, master branch from git... ' 2023-11-13_12:44:13_CET [openHABian] Updating frontail, master branch from git... + cond_redirect git -C /opt/frontail fetch origin + [[ -n '' ]] + echo -e '\n\033[90;01m$ git -C /opt/frontail fetch origin \033[39;49;00m' $ git -C /opt/frontail fetch origin  + git -C /opt/frontail fetch origin + return 0 + cond_redirect git -C /opt/frontail fetch --tags --force --prune + [[ -n '' ]] + echo -e '\n\033[90;01m$ git -C /opt/frontail fetch --tags --force --prune \033[39;49;00m' $ git -C /opt/frontail fetch --tags --force --prune  + git -C /opt/frontail fetch --tags --force --prune + return 0 + cond_redirect git -C /opt/frontail reset --hard origin/master + [[ -n '' ]] + echo -e '\n\033[90;01m$ git -C /opt/frontail reset --hard origin/master \033[39;49;00m' $ git -C /opt/frontail reset --hard origin/master  + git -C /opt/frontail reset --hard origin/master HEAD is now at 7ff8dc5 Merge pull request #2 from Gifford47/patch-1 + return 0 + cond_redirect git -C /opt/frontail clean --force -x -d + [[ -n '' ]] + echo -e '\n\033[90;01m$ git -C /opt/frontail clean --force -x -d \033[39;49;00m' $ git -C /opt/frontail clean --force -x -d  + git -C /opt/frontail clean --force -x -d + return 0 + cond_redirect git -C /opt/frontail checkout master + [[ -n '' ]] + echo -e '\n\033[90;01m$ git -C /opt/frontail checkout master \033[39;49;00m' $ git -C /opt/frontail checkout master  + git -C /opt/frontail checkout master Already on 'master' Your branch is up to date with 'origin/master'. + return 0 + echo OK OK + return 0 + echo OK OK + return 0 + cd /opt/frontail + cond_redirect npm audit fix --omit=dev + [[ -n '' ]] + echo -e '\n\033[90;01m$ npm audit fix --omit=dev \033[39;49;00m' $ npm audit fix --omit=dev  + npm audit fix --omit=dev npm WARN old lockfile npm WARN old lockfile The package-lock.json file was created with an old version of npm, npm WARN old lockfile so supplemental metadata must be fetched from the registry. npm WARN old lockfile npm WARN old lockfile This is a one-time fix-up, please be patient... npm WARN old lockfile npm WARN deprecated har-validator@5.1.5: this library is no longer supported npm WARN deprecated uuid@3.3.2: Please upgrade to version 7 or higher. Older versions may use Math.random() in certain circumstances, which is known to be problematic. See https://v8.dev/blog/math-random for details. npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142 added 139 packages, and audited 140 packages in 11s 1 package is looking for funding run `npm fund` for details # npm audit report engine.io 4.0.0 - 6.2.0 Severity: moderate Uncaught exception in engine.io - https://github.com/advisories/GHSA-r7qp-cfhv-p84w fix available via `npm audit fix --force` Will install socket.io@4.7.2, which is a breaking change node_modules/engine.io socket.io 3.0.0-rc1 - 4.4.1 Depends on vulnerable versions of engine.io node_modules/socket.io request * Severity: moderate Server-Side Request Forgery in Request - https://github.com/advisories/GHSA-p8p7-x288-28g6 Depends on vulnerable versions of tough-cookie fix available via `npm audit fix --force` Will install universal-analytics@0.5.3, which is a breaking change node_modules/request universal-analytics <=0.4.23 Depends on vulnerable versions of request node_modules/universal-analytics socket.io-parser 4.0.4 - 4.2.2 Severity: high Insufficient validation when decoding a Socket.IO packet - https://github.com/advisories/GHSA-cqmj-92xf-r6r9 fix available via `npm audit fix` node_modules/socket.io-parser tough-cookie <4.1.3 Severity: moderate tough-cookie Prototype Pollution vulnerability - https://github.com/advisories/GHSA-72xf-g2v4-qvf3 fix available via `npm audit fix --force` Will install universal-analytics@0.5.3, which is a breaking change node_modules/tough-cookie 6 vulnerabilities (5 moderate, 1 high) To address issues that do not require attention, run: npm audit fix To address all issues (including breaking changes), run: npm audit fix --force npm notice npm notice New major version of npm available! 9.6.7 -> 10.2.3 npm notice Changelog: npm notice Run `npm install -g npm@10.2.3` to update! npm notice + return 1 + cond_redirect npm update --audit=false --omit=dev + [[ -n '' ]] + echo -e '\n\033[90;01m$ npm update --audit=false --omit=dev \033[39;49;00m' $ npm update --audit=false --omit=dev  + npm update --audit=false --omit=dev added 13 packages, removed 16 packages, and changed 80 packages in 6s 1 package is looking for funding run `npm fund` for details + return 0 + cond_redirect npm install --global --audit=false --omit=dev + [[ -n '' ]] + echo -e '\n\033[90;01m$ npm install --global --audit=false --omit=dev \033[39;49;00m' $ npm install --global --audit=false --omit=dev  + npm install --global --audit=false --omit=dev added 1 package in 304ms + return 0 + echo OK OK ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-11-13_12:44:32_CET [openHABian] Setting up openHAB Log Viewer (frontail) service... ' 2023-11-13_12:44:32_CET [openHABian] Setting up openHAB Log Viewer (frontail) service... + sed -e 's|%FRONTAILBASE|/usr/lib/node_modules/frontail|g' /opt/openhabian/includes/frontail.service + cond_redirect chmod 644 /etc/systemd/system/frontail.service + [[ -n '' ]] + echo -e '\n\033[90;01m$ chmod 644 /etc/systemd/system/frontail.service \033[39;49;00m' $ chmod 644 /etc/systemd/system/frontail.service  + chmod 644 /etc/systemd/system/frontail.service + return 0 + cond_redirect systemctl -q daemon-reload + [[ -n '' ]] + echo -e '\n\033[90;01m$ systemctl -q daemon-reload \033[39;49;00m' $ systemctl -q daemon-reload  + systemctl -q daemon-reload + return 0 + cond_redirect systemctl enable --now frontail.service + [[ -n '' ]] + echo -e '\n\033[90;01m$ systemctl enable --now frontail.service \033[39;49;00m' $ systemctl enable --now frontail.service  + systemctl enable --now frontail.service Created symlink /etc/systemd/system/multi-user.target.wants/frontail.service → /etc/systemd/system/frontail.service. + return 0 + cond_redirect systemctl restart frontail.service + [[ -n '' ]] + echo -e '\n\033[90;01m$ systemctl restart frontail.service \033[39;49;00m' $ systemctl restart frontail.service  + systemctl restart frontail.service + return 0 + echo OK OK + openhab_is_installed + openhab2_is_installed ++ dpkg -s openhab2 ++ cut '-d ' -f2 ++ grep Status + [[ '' =~ ^(install|hold)$ ]] + return 1 + openhab3_is_installed ++ dpkg -s openhab ++ grep -E '^Version' ++ cut -d . -f1 ++ cut -d ' ' -f2 + [[ 4 = 3 ]] + return 1 + openhab4_is_installed ++ dpkg -s openhab ++ grep -E '^Version' ++ cut -d . -f1 ++ cut -d ' ' -f2 + [[ 4 = 4 ]] + return 0 + return 0 + dashboard_add_tile frontail + local application + local dashboardConfig + local ipAddress + local openhabConfig + local tileDesc + local tileImg + local tileURL + application=frontail + openhabConfig=/etc/openhab + dashboardConfig=/etc/openhab/services/runtime.cfg ++ ip route get 8.8.8.8 ++ awk '{print $7}' ++ xargs + ipAddress=192.168.2.21 ++ grep '^[[:space:]]*tile_desc_frontail' /opt/openhabian/includes/dashboard-imagedata ++ sed 's|tile_desc_frontail=||g; s|"||g' + tileDesc='openHAB Log Viewer' ++ grep '^[[:space:]]*tile_imagedata_frontail' /opt/openhabian/includes/dashboard-imagedata ++ sed 's|tile_imagedata_frontail=||g; s|"||g' + tileImg='data:image/png;base64,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' ++ grep '^[[:space:]]*tile_url_frontail' /opt/openhabian/includes/dashboard-imagedata ++ sed 's|tile_url_frontail=||g; s|"||g; s|{HOSTNAME}|192.168.2.21|g' + tileURL=http://192.168.2.21:9001 ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-11-13_12:44:33_CET [openHABian] Adding an openHAB dashboard tile for '\''frontail'\''... ' 2023-11-13_12:44:33_CET [openHABian] Adding an openHAB dashboard tile for 'frontail'... + case $application in + true + openhab_is_installed + openhab2_is_installed ++ dpkg -s openhab2 ++ grep Status ++ cut '-d ' -f2 + [[ '' =~ ^(install|hold)$ ]] + return 1 + openhab3_is_installed ++ dpkg -s openhab ++ grep -E '^Version' ++ cut -d . -f1 ++ cut -d ' ' -f2 + [[ 4 = 3 ]] + return 1 + openhab4_is_installed ++ dpkg -s openhab ++ grep -E '^Version' ++ cut -d . -f1 ++ cut -d ' ' -f2 + [[ 4 = 4 ]] + return 0 + return 0 + [[ -d /etc/openhab/services ]] + touch /etc/openhab/services/runtime.cfg + grep -qs frontail-link /etc/openhab/services/runtime.cfg + [[ -z openHAB Log Viewer ]] + [[ -z http://192.168.2.21:9001 ]] + [[ -z data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAV4AAADZCAMAAABfN6j8AAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAABXFBMVEXd3d3g4ODJycm6urqpqamYmJiKiors7Oz19fV5eXlpaWnv9PH49vfX6fnW6frY6fnt2PHpx+/w4vPy6PPw4PLrzfC/6dDJ69ej47y258mr5MLe8OXT7d242eXY6ezn7/Hg7O/J4uro7/Gp1OHC2+quwdOfr8Csv9G0yNuYqLi5zuLH3fLmue3iq+uZ4LV12JyH3Kn69vmXzNyIxth+wdah0d+f0N54v9SQn62EkZ58iJT39/fn8uvl7fWlt8iLmafp8PbM4/j26Ojv7+/319eU37Lg3994g4/3yMj4uLj6lpb5p6db0op82qFq1pT29/WfsMCRoK/p6elzfohHznyQ3q/g4N+Bjprn5+dh1I7x8fFOz4H18N/26Lb08un50k36xhP6xQ/27tT6yijxvxTWqxXMoxbDnBbmthS5lRexjhioiBiXexresRV8ZhuLchqegBn42nP5zTT///81J2MaAAAAAWJLR0RzQQk9zgAAAAd0SU1FB+UMChIuFC5vh7sAACcvSURBVHja7X37Y9rIsiYCHHSuGJtHMH5JMiACEn4FBi+JbQiJcybOw2dmz81mZvbsufheHiYOe+bu///DVlW3hCQEBj+C7KEMLXWrJYtCdFd/XV9XILCQhSxkIQvxjQjCSMmEGgJmhcCfXrx1ILC3wA4HsSgYDFonsHN4gSWQF/ghVG3QffxPKZ7qBc2Yr1BICAfDS4GlpaVAMCSY5eFAOGwqEPMBIRx+QjuQhOBIMLQUfgT6FWaXa68ZWloKLy2xNLwUehJcehJ8En4SCIUFKnwSCiwFl0JwFCpByRJoNgDJ0hKdsvQEVB2GE8MPv3mIiLNKhH7pTBy7liwFw09C4b88AT2imp+EnoByQcugrzCUh8IhIfQkDKWgSRRQqhCEk8KhJfwmUOmo6j+xekPBkKXeUMilXnwgn8BzCL9/UJkAz2EQ9RUM4jNJT68QRGVDEWgdH2hoNUCb2Ios4TmgdTgZSx+6gHojILOq9y/w0HH1hv4SdqmXmtwg67uCrA/DGgJ/1OEBZf0da2tZPQFPCATMEpRw8DGoNyJEWJs6m3r/Yqr3yb+5n14ugn1rtdmCy2QQPPYC40ySBycRfHjxswvTPsFu9S7921LoJlbU49DfNcKVOkPzQOrFltVse5/8JTyqXjRig+aDak8DtoZBsOUDrspe59jyjoP+lfuwHELU84GZG8AOMMS6QUr5C/bpzfrHEM/z3pLv2M4J8R12DpWEWH/q+7EHa3GhieBbU4dj9kGEoU4Dgqd6wSjg1gTqJMy0MRRUT9jMhK18kFULBoepVYe0G+Zn80vwKvNW4J1+GVP1OJbqLSPANN/4I2eVuvNmgf0clwScNXz+9N6L8LEde1Mq2A5R2RB7sE4wvzvzbGZx8O/UBfJMO4B8BHJnH9KhvgnXF4Txxx6f3Ooj2k+eqFPven8C9Y5+/EkFrp/0DPoRxlzizyQ3QOAWMrUEZjajFzKD3EC90phc1Eyj9Ce6Dkx9+R9QlpeXcbMizXSu78RSbywWj8ViCTEZS8Qgl4gnIYklk4mnmKaoMJZ6CpvV9Nra6tr6xmY0vSWKsqIoqrKtZCCVJVFSpCzklIwo5jIZFQ7mlIy6nYEdWcaa8KcquZwiQYmiiWJGYfcB49FIBMZMwkr+maYVirqBUlKgKCIIES5wu0GWEQUYqeB5QUgQIkCbGkaoQV/9Hofq3dlNpVDB8QRsUvHdp6jORCyR2onHkvH4TjKxC8U7ori+ube/f7Cxl36eTkdFWS5Xyj+WUSoVWc1VYFsu52RVymnVw8r/qJRzuVzlEMozZTpUoRoy1SpL0UwmGoGRPh/bwGhU0Wu6XjN0/cXLly8KKpTYhyWgRoKsg1y9AqoXwdOjYGgpBN9EcFog8fuqNxVD5cbEJGzoQYWnF5SdAAXDJoUJ5fDp3VjdSB9vHLOnNyOXZVnLZDKgRkhhF15KJqPISkaTQTCFcvjL5CCt5LBQwQOKJllPr0DWBeydFOv1et4o5ut1vWG8YscCQYaLgi7h4RVgiCkGQwHhiGFbggDfC+kc9uetUW/13lSgcVRnqq9cU0FtLi83l1lSWra1vbODWfMXX7VUTKShvHrgPZsf1fsKRJKyUvYVqBczr7IPVsuWepMkbAcS0Up4muRVRHHzePMYXpu4J4oK/+iS6DbZFElCo4w2eERRmY0Gb1WhQ1issKbFmh6IqKVSs1mCv6YGb9wFUUdaBqvg9RvxNcgpbJng/cEdzluzTvXG4rtomiXBcognk/HYbgJttSR0aalUAiyHmJjYhTQOlkP67cHewZppOWSgk4LeKgfvshLN5LADAxHFqpzD7q4MGzmnwfEy1sTeDs0IPE2ukuWAqoJeSyDD4K8rdV2vF5r1Yv2nRr2gFwuF+jNjG3qsQJBPlQbJWmB74ruzs9P3799/gBfYGDBMOt7f/7j/6fxg3pp1qjce342j9ZAAFUIS3038jUxh2I2zwtjuDthooN6ttwef1tJv01HLMKuUD8vVSqUC+iTrq4pmAWSqaIXlYAO2GWgbslXTMINNNZcDy8FlmIkn9dqLhm7oPzd+aTTqelHXG3oeDIgIgf2WfcZnBkC9H85QuUy9cIXN/XO4v/1P89asU72JJJhdyQTsJBKUg8YACmBcgY0C28ONKG5tbsGPT9yUWOOwrdDIQsUhhLqdVVR4qdK2SiMIBQ7TAT6eULJKFccTVF+FMciwcYhw/4ITzagbRaOoySXNKMkyDC60ksqrgFVGwwrrHPHNKQg0Daenb6gE7+/4OL25OW/NOtX7fWSK8bG04iGz9m3Pv+/HGis+tBwek3wP9c4I6Xg9vROvHn0e9cvT6hYbpBNzQDoxBumI1CAnabgMSRKOpbc21tPwxwfF0IrCAACaVUnNgHIgo2KOwB4JWljcSNgiyxk1i8cgJ8sqjB7goGgbFLOWU1gxirJmNI2SVi9oWhHa35LWVAnZiZhT5ALBOLgfhZvZWNtY34SzofF9ffbuzdm7MzQn5q1Zl3p3dlNxBunECdJBy4EgnThCOrEUwhJxE9L5NDTMZIbUMEhHktFIQGtBknJaOVf5sVLOVaGKbEI6Vaz8Y1mujoF0/qfys96oPSvp9drff6rperGu1xpFNXIkeiI7z9fOP55/PPj39ec4zX10dvbh3fv3zI7wgwwNs1gcMR0weVMIQMYQkESUJ0FITxyfZNpHu3dvfS+9ubYJ6oVnFKzYHFm65WpV1jRmBWc0MMwUsobB0s2h5cuqaGShQQHmMzKoV6EhQoD5t6NhVgBLDOyxgp6v6/kCGGZ6nSE7Q+dCQnYI5ImmD9a23q69TT9H2Ec8PQMFn30AeTdvzTrVO70cW904joxw4DXL2diC2GXEJlCbTaPpFlstf0Fi14gPLYdsliMNsIOwDkIQ876nm4oP1WuCZSTzvplbyhDS4e/hxi7mEdweg0jHiJng2wvsZZaYKtFu1ixTh7qShmepbg2qzdLycrOpNZdRsuNvnQ/eIsOs/xBhG6Szg7iCmIw/dUE6OE9BWE48xiGdvYO1zxt7W8xyUDQNOjIZJyKqShTtMEJ5CNLBOYmyJiuZHAE/OJmh4MxFuZxR4JxMDi0Hdh+BIJutCKzU9WJRz9cKhTpYZiv/iyZ8TE8shuWgg5UohMJhMiBw+g1sD3RwO4oEfTrXlrJDOnbDLL6DkM7OTiK2iyYEQjp7B/t762+5YZarVCo01wZGWE6x5toUFfEdPMIhnbLGsvCuMEgHzbcRw0xUn9XAHjPAPPvy05fCKJZDyFooKAbC4SUJvWvZXBsmgSMEzeatUk/1wiP6lNAcHFuINLZI4BxxEt+YIKiTxArpzfTm1vFx+ljc2sRhQSZHII0CzyYiOPhCGEfFeeIMe9GG7WTKOBGX2SZcByEdZncI5HKPqjkxisWioclG0SjoGlpkgkBzxcEAVYiwqWNRoAeX2gaaYg4y31x/NRA3+ilF3blodIrKfOe63or7ObB0OiznyEr8Jr5qqR6f3MHTe8cinaysrOB75eTERHROrj3L9uzShNO93uL0Ym974Q8Mr6cE6SB2k8AkibhOkgPt1CSnt1ah+U2bbW+WjFNJUdkcO02sSSpYXho0q5KUhSZXwhk5NYOzbhJVyGhomUl4gtn2mkSnXxXZKJVkGLmVisVSyShpON2msibWvFn05uGZN+9O4QV/7055w7uKeBOiTT4QO6RDcz8I6TxNxFPMMEvE+IxQakdMYoUUWQ77BwdrpuUgH5ZzhOiAYaCJMpgDZSjJiWIO9tE+kA8R0imXNTzE6lYqcq48hHQEshwY5iAodb2m10t6Qf/7T/rPCOnotSIiZh6QTjB4dHZ2xkGc92RjiJv7v3083//os8kgUCBiOolkPJVKJlOpnaTINYtAD5uAS8XRqgC7d+0z6HiLQzrlCqgT7F7Ql0wgThltYJxrQx0i3JODA2WCdAgpw9LMYRVBHdtUZsCEdOoM0qn/Anou1AnSKaIBYac1mRhQgECc9x/ef/jw/oys5+TxwcH62sHB23lr1qlea6iWtA3akmZiH8gds0luc9QGP3E2eGWDWPztszf/wxff4EuVzcEum58fGbWdlErQKJT4JHyJ7drGhm7q2RsQlpj3J9lhJ5+o1zciqScqvODvhPYonfdN3VT8p95HJTfBe61f3rHkPUpgVpHEdq0K5k40aj9rBBRTl0fkh+Vrfus+aQpGZWg5QL+VYg6oKUyoa4NODs2HJJumQEgiRV3b3vreujlbwUfEMo6O1ajKxr8ZDSwHxHIyWjWDKA/syTh4ZmPjalmhETOfrRCZ+zSNef+6kq/ni/lmQS7W9GIRXR6MYmlFIHZphMbHQoSgB5SIuHoA8vYgHQ1gDjq61x8+4HzF2bw161TvWEgHC5PxnXgiscvn2rb2Pu2/tSAd2QbpyATp/GiDdLj7dC73YznDPXR+rFju01UXpBOKiG/UZ7VGQ9f0Zy9eviQTQm808icS86IOuefaomvnvx38hnNtAV/PtbGZYjYfTDkYYDD3aUiwEH10qDi9tZ5Obx6vHkfTMKzQMvKhpjHnfpkeXIVy7InVEILMaBq8FRhmyJoiVwivZABQxnKfJhoNg3TA0gV7rF4sGPjsFuuFfFFmyA4xPYNBItygyw6esLWRPl5fXd0UI4hKvn6HcgYvn80U30J4Iztl5eusABUdp1mLiy+2M9mL2smU8RO4s7Ac7lV8qF60dIdCBrAHpDPpEY3eL+g0g7g8JJPcOZJ5SPLEKkwkRPKQhJZ3a3OLeUhm+O9Wley/ezS3MirHemCTxR1rwl5S+FmqzX3aXGZF1TT0y9GaTUOGcRtCOtx9etgs2FaseHP6mpwkT09f88L0Fv75zEPSDulAErMgnRRz8t1BF+B4iiaD3tohHXSRPszlylU5V8mIGsILUEKQDmI5CDMg6ADHsZx8SHKVCoITOblM/r3k08QgHXSCqiPKUKrn9b+/1Ot6sQ55Q2Xu0wFzeQiyHDB35HSfJkjn/OP5/m/+dJ8GzaYwsblPk2EGu0lypSbv9L2DjbQ5lUnu01XSWTmngZpzBONklCpCOuRKXQVtIt8KqkBJpVouH2plqCjzuTaBu+BY7tM13dDrDf2XRh0hHbB/zSk3B6Qz4j6NOo8cf9pf2zv45DP1Jk1yhSNBZgWSK8xDWJOYC5IJ6SiqmuFefJBmyYUvK3FPPtxs0wG2DztKDrLqtsSqWNyMiPV7PynJBU3WZMRysJmQobEgL50IqxUQhg0JJq/fvIYXJtzBD+7Kf9wK3wibrUDBSQvaTDFb4VPxn3ofldwFK3NUZrCLRs7PslniZT5ZTNz4B0uMv5YRj8BDMsnBHhoUM0b86jhGvOpmxGdmZMQX84ZRbBY16N0MIy8bmmaUVG9ivBAR03trbz/v7W2hp4Qonp69e32G4jcH1CEj3g3ppMhyiCXRfZoMs1FGfGUMI75KkE4VGfE/zsCIbzT0ElgOP/3EIJ1aIz+WGI/u0/te7tPv561Zp3odjPiknREf4z7UyUSSP71ORnzurhnxz2po7ubrRSQNMn78iTiGGB9N78HXvbGxFUWEh2be0PUfknlr1qneW8gdM+KXl2mgtox+knzH7ijp6eXkl0GwW3xoOUgeMu97uqn4UL3kmE6k+Afsls5lCkb8MJ9MjGPER8cx4nkFkxHPRVUkclPyZsRj21AyaCZ+AhWezR0NfaYFRszylw/1FIz4OPqWoGPvTmwiI167K0Z8LZ/X87X6M32I5XhQ4dlaOtzll9ynl4JHgl/dp+2M+KduSAcRs1hsx3Sf5ox4yzBDdvs1jHh5DCN+1H365Gdyn67rjcZLcp/OelPhA2HMiZb7dAiXKoJ9fz69Q7zXzYg3afH8ZTLit7wY8fhHjHja0HjDyYhXp2HEIwe+pBlysV464cd+HaHCRwIRG62C1O4Ehf0g9/FTmsaXerxIt6LC+0x81VI9PvGfeu9gPQf/DDKuZ8RbhckYDIqfkp/DXTDis25GPGt7BWUcI14k0jxB5pwRj/WRA/+OOPDv0K06Ikob62vraxvpeWvWpd4xjPinWIqLHIqx3fjubvw2jPhDWnSHWQ7VsZCONyN+DKTjAHFwvii5uf8R3af3561Zp3qvY8RTkkpNYsQfHl7PiJfHMeKH7tMzMeKPhhx45j4tHn/eS6+/3Vubt2ad6p1eZmTEu5rN2zPi/WV6TRb/dW0ikuAZYzvLtw8XevCleh8hYuZmxA/ZFOyIieswRrzowYh3m0OcNZEV+ZLUkDfpZuTPwzIejPihcMh3IjH+mMTMIc/idzvTwifq9WTEpyxIBxc5BJsiHhtlxGeIES+PZ8Tn7Iz4zLWMeGTCF0oFI/+lVsjrRr6Yr2uKwIjxgSExnuKXCNH1T5/29w/2ufs0+exAN/f+ve/dp9li3glWuIM4Tyy+OzMjvjIrI/7kGS5yqOn6i8YX7j5d81jkkKaFyH36/O35wf8euk+f+dN9mvykvRjxT2kJavShxg1nxG+OZ8QrN2TER0xGfF4v5o28ASOKvGbA01s0NEnkpHkbMZ6y4nF665goojRv/Obd6SnjaL6et2ad6p1FojMci0ZdxdMx4klWVn5Y+eG6AACehPwjn7hQ+9ByeExy/+qdFV+RmHvZjIx4xz+Mis99surhKCM+4WTEJ4gRz/gsBO/cgBEv3owRnydGvFwaZcRHHhcjPhnf2RFtxKupGfFoRcgc0rkDRnzABekEg+g+/ZAY8QkvRnyML0Ed4ytBrR0gIz46nhGv3QEjvuZkxGcnMeI/jDDiP89bs071WqM2+5iNTcyLd8SIF22MeGksI15tEiNe4yvUM0b8K9sdezDif0dOvHV/C0b8JFEZNYjR4lV6LxjxC/GSG+G9x9bepFHCOEa8c38U72Us+CbnY+LOD5MgHc+L+EWmY8QnkRKErjoc0pmBEZ+ZwIjPeDDiAzMy4tMPiREfG8eI391NJHZiYF1MYMRXpmXEVyYw4iOqziCdnxs2Rrz65vEx4mMWIz5BjHgeUGwCIz5jMeIzd8aIL4ww4gPXMeLfPT5G/NSVh0i6t5xgc/vD9Iz4qJX4UPxoOVjGs8i/Ot/2XNeKH9X7iGSh3nuVhXrvVRbqvVdZqPdeZaHeexVSb2Qh9yCWehdyX7JQ72Qx1z0RHCFIiFA3PMZjfXucvlCvt9BCPQLiSAgdIdiBG7sHtyvHUSmONZmXWajXWyI4+RcR//prgEiLEUamYxoN8GlUR45HRMvSrKGl1YV6pxbETW3OAKIzx6u4zlmod0Y5mpAbFVLv0ULuXobq/cf/Wcidyz9M9f7zP1oLuWu5+I9/cvX+539dLOTO5b/+065eU+kXo4k9D5s2pK12i+1d0M7FRYtdEw9dtM0sntNusyPtlvO/m2fx8vbwf5nHWu4zWs5cmxfxc1rs39tuht9xy3kuZdveN3N/6u10e51u57LV7l52W63uZa990bnsttuXne5l+7LX6Vy0IbnsXlz0+r2v/atvV51Wp9O66F12O4P+ZfcSDsJ5nR682i1IsXLr4qrbgyNQ2uvB6R24WIe2A/OsbgcV1foKZ0C+0+nDkX67dTnAunADF5edy0EfN/1uq41XwL9W66rXv7zo9+HO+1dwxgDqdgfw1+nijXYHg4u2dY0W/hu4CcgP+nDP7X63P+hADsq7dDN4V5DcpYbd6u2DdjuXbbjFS/i38BEHeHPtbq+LH63Txrvu9kC9X//vt2/f/vWvLqq31bvsgwz6vW6/N2iD2r/1e/AhQP1XV986g6+Xvf7V1R/9Xq+Lm+430HfvW79vnQXXaIMCoDIUXF11+n04s92+6n/rwpnfOqC9qz6ot3/Vv2x1en26LlSA6t3LPnzHF334l/3eVb/7la5w1RrA7V1dXbBrfIVrtDpw9hXeCBzoXYJ6O/j/4GZAz1d4M72rXqff69+Heo9QvS14REGX8BzB5uICcvAlY4E9aWOFC/ja4VnpdED/UBO+EspeQjrAp6sP1QaX9IR24LSL9gAf5MsOnQK/jU4bv8Q2luFZnUv6YXawHK+BCehsAA8dnoiPLZTiBtqPFpRdDq7wiaerX14O8DZxD35jbbxa96qFz8XgEq/RYddo0X9vs7vCj9fB3cs2XKM9GAzaeDG8yh0/vUdD9V7b8rSuyVvtV8t1vGXf4833xWi1YcvrvpSrzYV2mo65zjRbWLP1trXKFxf28tbwBHZDrWFHcYfaHVGv/UNZG2eX4NauqQ7r811cuM9qmR8V1NJ2qQoK2w4t2TuZFvWfLd6LPjxxqhfad+jMoAvANg07F2wWoZu7NDuHPuY69OvvYh/Bu4oO/hZ7XepuoPXCfqeHxdiB9aEIfoxd1h/1ev0u9Z/YP0GPd0mbPnVzWBn7FrxsH5sHaEahA+31+3904YbmrarbqJd1bdDwdwdfsa3H7uGP3gA7gj+62Jd8/dYb9LrQR8DH/fYVPvlVH3R11e3DbucKmizoXKDmZRt6iD/gCtB/9HHztY9fyhX0X9CJQM/S6f3xBxzDTgn7MVAgmB/9r9Db0E7/G6of6g3wCOj2Ww+6on/hNzFvVd1MvQ7LARv9Xp/6C9wfoEnWH/QGrFtC8wh6jwHrfKAz6FBX1GHHBt1eG8+gY9BbUEfVvaS+B/ux1mBA/SI8nT3odaCHa1NHR6d38F/xy16yyw46ZMbAqXi99gNtHEZGbfZ23t4htC5cTaR9Oyqukca4ChfDCiMFd27lf3fxUO9C7k4s9f7+3/9vIXcu//27CUj+/s9/WPJP2/53yf/DVTCm3rDc+4jvyn+38N7HILOStGevfxMW+KNRrz9lod57lYV671UW6r1XWaj3XmWh3nuVhQPqvYml3oXclyzUO0HoAWSLBiPnE4VHhcJcgHIiL+UrCotOXuNCvePE7lYaDPB4A7YFURy5gFkzEuGcZyYL9Y4TvmxdgNZfjARE0m8gwnVt5nBlRmRDB9l6wkEe98y8yEK9M8i1EV1GKizUe6/iQ/VmX71iiyLTZpjyYtyyzLxvdAqZNiSTlfCQTLQclBWSKSo6QjKx9QR4iFxrqSeMr8IXBlD5euC4Mjhbx4V+Vgj5RdRmUyvRur0GhmVaZov4arTg97J9we/l0QWMrN+m4AzPhH27wOPszke9E0MyxeCYmBgbkonWox+GZJI9QjLh2vSHFHsQkzEhmTDiUmClWH9Rq+d1HdeHy9fzdb1eN5qYwguX9q0XdFxEQ9d+dYdrYj0Nxg8Kh0O0fAktRCuKoeBSKCzQP5mTeu0hmWKJlC0k0w6ku7i3E+er8GFIplXb+r0UL+HQIyQTlJWt9XtHQjIdjgnJ9OVLrVH7oqNmaw290HjZKDSNeqPx5Uvjpa7n4a3X9MKXoiS6V4AxwzWFlpbC+OHY2n2Ro2CI1CtGgrdQ1a3Uy0IyJewhmRIsGlOS4jIlcC8hjoZkUtwhmXDtXonv87V8FXXbCsl0OAzJlHWGZGIGzUlRLxoYlQnjgciGVpINXLGoZBhyoYD5IpTCxihJojWe5+GaIla4poD5mLLwsXa2zlzUewdyNyuuSMoPIzFtPIpA+Al+WavXS3xoOTwmuVf13uhxliY8qF5y5GY/RX20cNH1IZkSVMiX4IqxhbZWeUimTQzJRMaoGZJJVHnODMm0bQ/JJLGQTCqGZJLcIZlEti6vYhQ1HpIpX3KGZIqgsYjts8BW6qSQTLh+L66shUtrWSGZNtb9HZKJrd9LIZl2wKDYxRhCYE7s7NwuJFO5XC3TQnJmSCbROyRTfTQkU3a6kEzZhxaSKcWiMcXIBE7RIocb9pBMVTMkUxlDMuVcIZlo/d6qGZLpUGYWGlrEFJJJnBCSqVDX88P1e8WgV0gmcTQk08Hb9Prnvb15a9ap3unFFpJJGg3J5ByqSh4hmZwhdz1CMpWMZskVksm2ROciJNPtJJt9laWwTAxdeCjwgqf4UL2PPCSTPXWJGZJJ8grJ5JbscJlCCsmUtbUItoDbHiGZCMTBZJkFZLo+JJN1EQzJJPo6JBP0arh+rz0kU2wnzo7EzJBMb1lIJjS/MigI1mg5FpJJy2iaHB2GZJIxJJPGQzIpGg/JhMujjg/J1CwY+Re1QvEZBrUpaGz93mBEcIRkErxCMr32cUimmCskU4JBOqndeDwRI8ttQkimyv2FZBpFb3hIpucPKCRTjIVkig1DMiXYqr1JKyRTjEIybaUdIZlwKV4ekokHYaKQTNsTQjIp7pBMgj0kU94MySQXbSGZBK+QTJurW8erFJJJoJBM706tICE+kDsMyRSdbiwqTbqG6AjJNBR2kid4A/92yv88B/Gh5fCY5M4Dit1aJJXFYrIiM60oZngms4BtHkIwizEhmVg0JsTUk9DoIs7DYuTxcHjU/PK2l5tfZkgmriIVW2UVjVjYSOK2KyRTZmxIpm2FxWIqaVq+YLC4K2CdFQslPpSDrcyGcuPjNPE5oQhvpUWCKGgg/Z2HfJ4hmRL2kEypHejsdnd2hpCOKyRTtZwrV1lIpgyGZJIhx0My0fr+8qF8CHuukExUywzJJNpDMhV+ednQn72o1TF4UA2Shl78Ia/rtRe6/oter9d0vVDQ6w1DFTxDbwcDYgAn24JHEbioSFN4gaXwE5prm5d647FhSKZEwh6SCYt3Umj9wjF7SKbnZkimshWSCSNq58aGZMpZIZmqmbIVkonhi7aQTF9qOJtWLxQLddBkUa/VCloR9dto1CD/AvSu14s1gwXQtMdpEjAwAKoXtBsKso8XQZxHCIdpru17dzUTQzKNRGMiwQGbNF1IJorlbIVkopcis0JRGhOS6cQosDhMLCRTE1sHoyDDpmkYTTNOE26GZ0bccZoiEZfDzPefg3eq1z+C8ZhOzHhMFJDpZFTUk1evbv+v7l18qN4pxbe2rl1uhPdK1t61IZnG5K8PyWQGBGGbWSEzv0BsrpBMT1lIJtGcrcCQTGz2IvY3G6QzJiSTjCGZtinYEnRYuQzBPTkWkknxCMmkyFZQm5GQTHkKyWTYQjJFeEimiBmSCXNHp2fvrCBM0AQLOFvx6fPBwca8NetSb3w3NQbSIdedVDKxC8Vsru3T/ueNvWtCMmXtIZmq3iGZDj1CMiloIegl/ecX9pBM2TEhmWwgznuqEtnc/7i//8lvc20jIZmSVkimWIINORDgecpCMq1uHZszxRm5jCGZMq6QTBkWRIyFZIK3TNHj5elCMtVtIZnqhcLYkEwBgYIwneEfzRTDEWljfTO9sbo6b8061XsLma2hu24sC21vadktE0IyWWLiPX7q8x6u5fAgxIfqfcWikJ7YwpFOfOIdT6vP/M1cHpLkJG16SCZZAoVJ020SN1ub6c3jrU3TQ5L/bnH0NdQC2m4KG5DRBl/KcMJe4WdlRZuHJDsUUUtas6nBX9OQmxzQ4eiNdb5tXe3jra0tjM7Hcm9OX4unr09BXs9bs071cvdpE9KJOSAdtMnIfZpBOm8/2SAddAip5nKHVTlXzoiZQxlzDNJB9xyEGbTcIRQi7AB18WClQuCEzCAdcQjpQO+0UkfHkVI9/+zvL/W6XqzX6zqiN+gpHTADbZPlgLnoxvn5b799+ph+DlkB7YhTnAny3WQQd5/mkE7c5j6NkA75VMcx2jZ5p+8dbKTf2iCdSpV0VgZdl6tohqH7NLrmoGM1+vGA+YbQTqUCJZXDcuVQKyOmk7MhZgFzrq1ee1HTDb3eAAutjl46NT3P0Bs7OMY9pZ+v7x/A63yVzbW9QzMNles39SZNcoUjwYbBFMa0MLkVosmtULc1aBwl8sjjHnrsTbksFkKG8pTmsC1FFAhr2bkVHIY5KckFzdBkjLMNiSZrWom8dKgKOvgPA3LAVoKb2KSZeDr7Ncgb+Hvtj5l4/3Vt0nA+wpqvOHHU8Fn3NUn8p95HJbdS770AJ1k2N7xM6YpfsJkbim1QHHe4T8eZ+3SSIhTzwlgqBZvV9NoGjDo3NmF4zCAddVuFQbGKCI1EvtIw3EVIJ4OslZySUVUWxxjJK8RgkXOKWcuCdATW9gorxbqmFYq6IRuGUUKTgdwbmKAbD8uIQigYwhzNoUUYxfooMieKyvXq3TEhnaejkE4yHt8hSMd0n94/GEI6aDmY7tNqDkwF8r9RpZxWrRKkA7bEYQ7dp8mBhxOvysx9OjrqPg2Wgl4zdB0hnYIa8ZxPCwVBveElCp1ERUIU4R74Jr43c21K9abo6aUY8fTMxm2QTuxpCoNt04ue3tWN9PHGMXt6MziThv7SYJuhE5mGL4R0coqmEVFQQ+8yGeEdqMEsNJkBQJpkc/4Hwwrv5iQPlm7eKOZxKtM4GR4j32l6VAWsGaSnl4XyEuB7CZFZJ/pKu7fv2qTrQRpnfeWaCipjtpJ/ZGkqLMfH4quWionNrffh+k1z8aN6GeUdPdQfk/u0NyOejdSsUZzoyYgXnYx4Jngk6mLEc1EVy7XazoinHbVkzsBrJeaVg5DO7+4bt5oKGJ85x2nHx3SH89asU70TGfFgOcQYIz7mxYiXh4x4ZQwjXhvDiBftjHi0Av66Utef1QvNerHwUwPJ74VCoW5su8nvyBPCPXSYtkAcZMSLx/v7v+1/Ov88b8061TuREY/uOcxVJzXCiJdnYsQfMhfqsYz4I4J0GjoaZrVG42eaa/tlPKQjvrM5TPO5tvPPB5/OfTbXRmBuwsGITzJG/DAhTvwtGfEZkxG/PcKI55COhlNsRhFBnaJGgwvNIr8LjPzOHPOIQv+GwF2O8NIVtqBlSG9uzluzTvXem8w69eXJKZ7Yt3l4Vftlvs2HlsNjku+h3tkepVmfXicB3mdgpcvPIfk3JyNetDHixVhyCkY8OURajPisxYiXJjPi0UMn8oYgHRsjHnZcjPgI/REjnq0+srWxvrGxvr7J0XQ7P94HMh0jPokmQ2w3tRu/M0Z8bgyk8+soI/4XYsR7IzvRtfOP5x8//fsqzrUFbPx4n00GTWTEJ+KcD+9gxEc9GPGyjRGfYYx4bRIjPnpbRnz6YG0LzPB0VEB3fwc/3gdy54z4oUiOjblDLci1jPjmghF/X2Jjwr966MiOL9X7SBnx10jSmxFPdpGH8ZVl5RYLMyuJUc6flIY/di9GvAn4mtT4iYz4EQ483p9PEB0vRvzTUUY8WQ5JtClSYxjxmpMRzyAdeZQRr03JiC8VjPyXWiGvM0a8whjxv6KTqoMRf3T64ewUezLkwMOAGd2nD84PDj75bLGXlB3ScTPikdeWIC+dnQmM+B+vZ8RXrmfEq5wR/8zOiFc5pGNnxDP3aQ9I57cD/0E6ExnxBPgkwWATEzMw4pVZGPERByO+wBnxGmfEq6yKByP+DdHfOQeewJ50+nhzNe2zhbZmkShbXsTKUcrEUcu+sfYlUYxOorCfLC83XdSV5SmoK0fO/+IT+f/wqErjSYwMPAAAACV0RVh0ZGF0ZTpjcmVhdGUAMjAyMS0xMi0xMFQxODo0NTo0NCswMDowMGw4VPIAAAAldEVYdGRhdGU6bW9kaWZ5ADIwMjEtMTItMTBUMTg6NDU6NDQrMDA6MDAdZexOAAAAAElFTkSuQmCC ]] + echo -e '\norg.openhab.core.ui.tiles:frontail-link-name=openHAB Log Viewer\norg.openhab.core.ui.tiles:frontail-link-url=http://192.168.2.21:9001\norg.openhab.core.ui.tiles:frontail-link-imageurl=data:image/png;base64,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' + echo OK OK + custom_frontail_log add '' + local frontailService=/etc/systemd/system/frontail.service + local addLog + local removeLog + local array + [[ -f /etc/systemd/system/frontail.service ]] + [[ add == \a\d\d ]] + [[ -n '' ]] + [[ -n '' ]] + return 0 + jsscripting_npm_install openhab_rules_tools + '[' openhab_rules_tools == '' ']' + local 'openhabJsText=A version of the openHAB JavaScript is included in the JS Scripting add-on, therefore there is no general need for manual installation it.\n\nPlease only continue if you know what you want.' + node_is_installed ++ command -v npm + [[ -x /usr/bin/npm ]] ++ node --version + [[ v18.17.1 =~ v1[6-9]* ]] + return 0 + is_armv6l + [[ '' == \a\r\m\v\6\l ]] + case "$(uname -m)" in ++ uname -m + return 1 + '[' '' == uninstall ']' ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-11-13_12:44:33_CET [openHABian] Installing openhab_rules_tools for JS Scripting... ' 2023-11-13_12:44:33_CET [openHABian] Installing openhab_rules_tools for JS Scripting... + [[ openhab_rules_tools == \o\p\e\n\h\a\b ]] + cond_redirect sudo -u openhab mkdir -p /etc/openhab/automation/js + [[ -n '' ]] + echo -e '\n\033[90;01m$ sudo -u openhab mkdir -p /etc/openhab/automation/js \033[39;49;00m' $ sudo -u openhab mkdir -p /etc/openhab/automation/js  + sudo -u openhab mkdir -p /etc/openhab/automation/js + return 0 + cond_redirect sudo -u openhab npm install --prefix /etc/openhab/automation/js openhab_rules_tools@latest + [[ -n '' ]] + echo -e '\n\033[90;01m$ sudo -u openhab npm install --prefix /etc/openhab/automation/js openhab_rules_tools@latest \033[39;49;00m' $ sudo -u openhab npm install --prefix /etc/openhab/automation/js openhab_rules_tools@latest  + sudo -u openhab npm install --prefix /etc/openhab/automation/js openhab_rules_tools@latest added 1 package in 773ms + return 0 + echo OK OK + zram_setup + [[ -n 1 ]] + [[ enable == \d\i\s\a\b\l\e ]] + is_arm + is_armv6l + [[ '' == \a\r\m\v\6\l ]] + case "$(uname -m)" in ++ uname -m + return 1 + is_armv7l + [[ '' == \a\r\m\v\7\l ]] + case "$(uname -m)" in ++ uname -m + return 1 + is_aarch64 + [[ '' == \a\a\r\c\h\6\4 ]] + [[ '' == \a\r\m\6\4 ]] + case "$(uname -m)" in ++ uname -m + return 0 + return 0 + has_lowmem + local totalMemory ++ awk '/MemTotal/ {print $2}' /proc/meminfo + totalMemory=8137060 + [[ -z 8137060 ]] + [[ 8137060 -lt 900000 ]] + return 1 + is_pione + [[ '' == \p\i\1 ]] + grep -q '^Revision\s*:\s*00[0-9a-fA-F][0-9a-fA-F]$' /proc/cpuinfo + grep -q '^Revision\s*:\s*[ 123][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]0[0-36][0-9a-fA-F]$' /proc/cpuinfo + return 1 + is_cmone + [[ '' == \c\m\1 ]] + grep -q '^Revision\s*:\s*[ 123][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]06[0-9a-fA-F]$' /proc/cpuinfo + return 1 + is_pizero + [[ '' == \p\i\0 ]] + grep -q '^Revision\s*:\s*[ 123][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]09[0-9a-fA-F]$' /proc/cpuinfo + return 1 + is_pizerow + [[ '' == \p\i\0\w ]] + grep -q '^Revision\s*:\s*[ 123][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]0[cC][0-9a-fA-F]$' /proc/cpuinfo + return 1 + is_pizerow2 + [[ '' == \p\i\0\w\2 ]] + grep -q '^Revision\s*:\s*[ 123][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F]12[0-9a-fA-F]$' /proc/cpuinfo + return 1 ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-11-13_12:44:34_CET [openHABian] Installing zram... ' 2023-11-13_12:44:34_CET [openHABian] Installing zram... + cond_redirect init_zram_mounts install + [[ -n '' ]] + echo -e '\n\033[90;01m$ init_zram_mounts install \033[39;49;00m' $ init_zram_mounts install  + init_zram_mounts install + is_arm + is_armv6l + [[ '' == \a\r\m\v\6\l ]] + case "$(uname -m)" in ++ uname -m + return 1 + is_armv7l + [[ '' == \a\r\m\v\7\l ]] + case "$(uname -m)" in ++ uname -m + return 1 + is_aarch64 + [[ '' == \a\a\r\c\h\6\4 ]] + [[ '' == \a\r\m\6\4 ]] + case "$(uname -m)" in ++ uname -m + return 0 + return 0 + local 'introText=You are about to activate the zram feature.\nBe aware you do this at your own risk of data loss.\nPlease check out the "zram status" thread at https://community.openhab.org/t/zram-status/80996 before proceeding.' + local 'lowMemText=Your system has less than 1 GB of RAM. It is definitely NOT recommended to run zram (AND openHAB) on your box. If you proceed now you will do so at your own risk!' + local zramInstallLocation=/opt/zram + [[ install == \i\n\s\t\a\l\l ]] + [[ -f /etc/ztab ]] + [[ -n '' ]] + dpkg -s make + install_zram_code /opt/zram + local zramGit=https://github.com/ecdye/zram-config ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-11-13_12:44:35_CET [openHABian] Installing zram code... ' 2023-11-13_12:44:35_CET [openHABian] Installing zram code... + cond_redirect mkdir -p /opt/zram + [[ -n '' ]] + echo -e '\n\033[90;01m$ mkdir -p /opt/zram \033[39;49;00m' $ mkdir -p /opt/zram  + mkdir -p /opt/zram + return 0 + [[ -d /opt/zram/zram-config ]] + cond_redirect update_git_repo /opt/zram/zram-config openHAB + [[ -n '' ]] + echo -e '\n\033[90;01m$ update_git_repo /opt/zram/zram-config openHAB \033[39;49;00m' $ update_git_repo /opt/zram/zram-config openHAB  + update_git_repo /opt/zram/zram-config openHAB + local branch + local path + branch=openHAB + path=/opt/zram/zram-config ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 ++ basename /opt/zram/zram-config + echo -n '2023-11-13_12:44:35_CET [openHABian] Updating zram-config, openHAB branch from git... ' 2023-11-13_12:44:35_CET [openHABian] Updating zram-config, openHAB branch from git... + cond_redirect git -C /opt/zram/zram-config fetch origin + [[ -n '' ]] + echo -e '\n\033[90;01m$ git -C /opt/zram/zram-config fetch origin \033[39;49;00m' $ git -C /opt/zram/zram-config fetch origin  + git -C /opt/zram/zram-config fetch origin + return 0 + cond_redirect git -C /opt/zram/zram-config fetch --tags --force --prune + [[ -n '' ]] + echo -e '\n\033[90;01m$ git -C /opt/zram/zram-config fetch --tags --force --prune \033[39;49;00m' $ git -C /opt/zram/zram-config fetch --tags --force --prune  + git -C /opt/zram/zram-config fetch --tags --force --prune + return 0 + cond_redirect git -C /opt/zram/zram-config reset --hard origin/openHAB + [[ -n '' ]] + echo -e '\n\033[90;01m$ git -C /opt/zram/zram-config reset --hard origin/openHAB \033[39;49;00m' $ git -C /opt/zram/zram-config reset --hard origin/openHAB  + git -C /opt/zram/zram-config reset --hard origin/openHAB HEAD is now at ae9363f Add openHAB specific changes + return 0 + cond_redirect git -C /opt/zram/zram-config clean --force -x -d + [[ -n '' ]] + echo -e '\n\033[90;01m$ git -C /opt/zram/zram-config clean --force -x -d \033[39;49;00m' $ git -C /opt/zram/zram-config clean --force -x -d  + git -C /opt/zram/zram-config clean --force -x -d + return 0 + cond_redirect git -C /opt/zram/zram-config checkout openHAB + [[ -n '' ]] + echo -e '\n\033[90;01m$ git -C /opt/zram/zram-config checkout openHAB \033[39;49;00m' $ git -C /opt/zram/zram-config checkout openHAB  + git -C /opt/zram/zram-config checkout openHAB Already on 'openHAB' Your branch is up to date with 'origin/openHAB'. + return 0 + echo OK OK + return 0 + echo OK OK ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-11-13_12:44:35_CET [openHABian] Setting up OverlayFS... ' 2023-11-13_12:44:35_CET [openHABian] Setting up OverlayFS... + cond_redirect make --always-make --directory=/opt/zram/zram-config/overlayfs-tools + [[ -n '' ]] + echo -e '\n\033[90;01m$ make --always-make --directory=/opt/zram/zram-config/overlayfs-tools \033[39;49;00m' $ make --always-make --directory=/opt/zram/zram-config/overlayfs-tools  + make --always-make --directory=/opt/zram/zram-config/overlayfs-tools make: Entering directory '/opt/zram/zram-config/overlayfs-tools' gcc -Wall -std=c99 -c main.c gcc -Wall -std=c99 -c logic.c gcc -Wall -std=c99 -c sh.c gcc main.o logic.o sh.o -o overlay -lm make: Leaving directory '/opt/zram/zram-config/overlayfs-tools' + return 0 + cond_redirect mkdir -p /usr/local/lib/zram-config/ + [[ -n '' ]] + echo -e '\n\033[90;01m$ mkdir -p /usr/local/lib/zram-config/ \033[39;49;00m' $ mkdir -p /usr/local/lib/zram-config/  + mkdir -p /usr/local/lib/zram-config/ + return 0 + cond_redirect install -m 755 /opt/zram/zram-config/overlayfs-tools/overlay /usr/local/lib/zram-config/overlay + [[ -n '' ]] + echo -e '\n\033[90;01m$ install -m 755 /opt/zram/zram-config/overlayfs-tools/overlay /usr/local/lib/zram-config/overlay \033[39;49;00m' $ install -m 755 /opt/zram/zram-config/overlayfs-tools/overlay /usr/local/lib/zram-config/overlay  + install -m 755 /opt/zram/zram-config/overlayfs-tools/overlay /usr/local/lib/zram-config/overlay + return 0 + echo OK OK ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-11-13_12:44:36_CET [openHABian] Setting up zram... ' 2023-11-13_12:44:36_CET [openHABian] Setting up zram... + cond_redirect install -m 755 /opt/zram/zram-config/zram-config /usr/local/sbin + [[ -n '' ]] + echo -e '\n\033[90;01m$ install -m 755 /opt/zram/zram-config/zram-config /usr/local/sbin \033[39;49;00m' $ install -m 755 /opt/zram/zram-config/zram-config /usr/local/sbin  + install -m 755 /opt/zram/zram-config/zram-config /usr/local/sbin + return 0 + has_highmem + local totalMemory ++ awk '/MemTotal/ {print $2}' /proc/meminfo + totalMemory=8137060 + [[ -z 8137060 ]] + [[ 8137060 -gt 1500000 ]] + return 0 + cond_redirect install -m 644 /opt/openhabian/includes/ztab-lm /etc/ztab + [[ -n '' ]] + echo -e '\n\033[90;01m$ install -m 644 /opt/openhabian/includes/ztab-lm /etc/ztab \033[39;49;00m' $ install -m 644 /opt/openhabian/includes/ztab-lm /etc/ztab  + install -m 644 /opt/openhabian/includes/ztab-lm /etc/ztab + return 0 + cond_redirect mkdir -p /usr/local/share/zram-config/log + [[ -n '' ]] + echo -e '\n\033[90;01m$ mkdir -p /usr/local/share/zram-config/log \033[39;49;00m' $ mkdir -p /usr/local/share/zram-config/log  + mkdir -p /usr/local/share/zram-config/log + return 0 + cond_redirect ln -s /usr/local/share/zram-config/log /var/log/zram-config + [[ -n '' ]] + echo -e '\n\033[90;01m$ ln -s /usr/local/share/zram-config/log /var/log/zram-config \033[39;49;00m' $ ln -s /usr/local/share/zram-config/log /var/log/zram-config  + ln -s /usr/local/share/zram-config/log /var/log/zram-config + return 0 + cond_redirect install -m 644 /opt/zram/zram-config/service/zram-config.logrotate /etc/logrotate.d/zram-config + [[ -n '' ]] + echo -e '\n\033[90;01m$ install -m 644 /opt/zram/zram-config/service/zram-config.logrotate /etc/logrotate.d/zram-config \033[39;49;00m' $ install -m 644 /opt/zram/zram-config/service/zram-config.logrotate /etc/logrotate.d/zram-config  + install -m 644 /opt/zram/zram-config/service/zram-config.logrotate /etc/logrotate.d/zram-config + return 0 + echo OK OK + echo ReadWritePaths=/usr/local/share/zram-config/log + [[ -f /etc/systemd/system/find3server.service ]] + [[ -f /lib/systemd/system/influxdb.service ]] + mkdir -p /var/log/nginx + openhab_is_installed + openhab2_is_installed ++ dpkg -s openhab2 ++ grep Status ++ cut '-d ' -f2 + [[ '' =~ ^(install|hold)$ ]] + return 1 + openhab3_is_installed ++ dpkg -s openhab ++ grep -E '^Version' ++ cut -d ' ' -f2 ++ cut -d . -f1 + [[ 4 = 3 ]] + return 1 + openhab4_is_installed ++ dpkg -s openhab ++ grep -E '^Version' ++ cut -d ' ' -f2 ++ cut -d . -f1 + [[ 4 = 4 ]] + return 0 + return 0 ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-11-13_12:44:36_CET [openHABian] Setting up zram service... ' 2023-11-13_12:44:36_CET [openHABian] Setting up zram service... + cond_redirect install -m 644 /opt/zram/zram-config/service/SystemD/zram-config.service /etc/systemd/system/zram-config.service + [[ -n '' ]] + echo -e '\n\033[90;01m$ install -m 644 /opt/zram/zram-config/service/SystemD/zram-config.service /etc/systemd/system/zram-config.service \033[39;49;00m' $ install -m 644 /opt/zram/zram-config/service/SystemD/zram-config.service /etc/systemd/system/zram-config.service  + install -m 644 /opt/zram/zram-config/service/SystemD/zram-config.service /etc/systemd/system/zram-config.service + return 0 + cond_redirect systemctl -q daemon-reload + [[ -n '' ]] + echo -e '\n\033[90;01m$ systemctl -q daemon-reload \033[39;49;00m' $ systemctl -q daemon-reload  + systemctl -q daemon-reload + return 0 + running_in_docker + [[ -n '' ]] + grep -qs 'docker\|lxc' /proc/1/cgroup + [[ -f /.dockerenv ]] + return 1 + running_on_github + [[ -n '' ]] + return 1 + cond_redirect systemctl mask unattended-upgrades.service + [[ -n '' ]] + echo -e '\n\033[90;01m$ systemctl mask unattended-upgrades.service \033[39;49;00m' $ systemctl mask unattended-upgrades.service  + systemctl mask unattended-upgrades.service Unit unattended-upgrades.service does not exist, proceeding anyway. Created symlink /etc/systemd/system/unattended-upgrades.service → /dev/null. + return 0 + cond_redirect systemctl enable --now zram-config.service + [[ -n '' ]] + echo -e '\n\033[90;01m$ systemctl enable --now zram-config.service \033[39;49;00m' $ systemctl enable --now zram-config.service  + systemctl enable --now zram-config.service Created symlink /etc/systemd/system/multi-user.target.wants/zram-config.service → /etc/systemd/system/zram-config.service. + return 0 + echo OK OK + return 0 + echo OK OK + exim_setup + [[ -n 1 ]] + [[ -z '' ]] ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo '2023-11-13_12:44:38_CET [openHABian] Beginning Mail Transfer Agent setup... SKIPPED (no configuration provided)' 2023-11-13_12:44:38_CET [openHABian] Beginning Mail Transfer Agent setup... SKIPPED (no configuration provided) + return 0 + nut_setup + [[ -n 1 ]] + [[ -z '' ]] ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo '2023-11-13_12:44:38_CET [openHABian] Beginning Network UPS Tools setup... SKIPPED (no configuration provided)' 2023-11-13_12:44:38_CET [openHABian] Beginning Network UPS Tools setup... SKIPPED (no configuration provided) + return 0 + permissions_corrections + local gpioDir=/sys/devices/platform/soc + groups=('audio' 'bluetooth' 'dialout' 'gpio' 'tty') + local groups + openhabFolders=('/etc/openhab' '/var/lib/openhab' '/var/log/openhab' '/usr/share/openhab') + local openhabFolders + local openhabHome=/var/lib/openhab + local backupsFolder=/var/lib/openhab/backups + local privkey=/var/lib/openhab/etc/openhab_rsa + local retval=0 ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-11-13_12:44:38_CET [openHABian] Applying file permissions recommendations... ' 2023-11-13_12:44:38_CET [openHABian] Applying file permissions recommendations... + openhab_is_installed + openhab2_is_installed ++ dpkg -s openhab2 ++ cut '-d ' -f2 ++ grep Status + [[ '' =~ ^(install|hold)$ ]] + return 1 + openhab3_is_installed ++ dpkg -s openhab ++ cut -d ' ' -f2 ++ grep -E '^Version' ++ cut -d . -f1 + [[ 4 = 3 ]] + return 1 + openhab4_is_installed ++ dpkg -s openhab ++ cut -d . -f1 ++ grep -E '^Version' ++ cut -d ' ' -f2 + [[ 4 = 4 ]] + return 0 + return 0 + cond_echo '\nSetting Java and arping file capabilites' + [[ -z '' ]] + echo -e '\033[33;01m\nSetting Java and arping file capabilites\033[39;49;00m'  Setting Java and arping file capabilites +++ command -v java ++ realpath /usr/bin/java + cond_redirect setcap 'cap_net_raw,cap_net_admin=+eip cap_net_bind_service=+ep' /usr/lib/jvm/java-17-openjdk-armhf/bin/java + [[ -n '' ]] + echo -e '\n\033[90;01m$ setcap cap_net_raw,cap_net_admin=+eip cap_net_bind_service=+ep /usr/lib/jvm/java-17-openjdk-armhf/bin/java \033[39;49;00m' $ setcap cap_net_raw,cap_net_admin=+eip cap_net_bind_service=+ep /usr/lib/jvm/java-17-openjdk-armhf/bin/java  + setcap 'cap_net_raw,cap_net_admin=+eip cap_net_bind_service=+ep' /usr/lib/jvm/java-17-openjdk-armhf/bin/java + return 0 + cond_redirect setcap 'cap_net_raw,cap_net_admin=+eip cap_net_bind_service=+ep' /usr/sbin/arping + [[ -n '' ]] + echo -e '\n\033[90;01m$ setcap cap_net_raw,cap_net_admin=+eip cap_net_bind_service=+ep /usr/sbin/arping \033[39;49;00m' $ setcap cap_net_raw,cap_net_admin=+eip cap_net_bind_service=+ep /usr/sbin/arping  + setcap 'cap_net_raw,cap_net_admin=+eip cap_net_bind_service=+ep' /usr/sbin/arping + return 0 + for pGroup in "${groups[@]}" + grep -qs '^[[:space:]]*audio:' /etc/group + cond_redirect usermod --append --groups audio openhab + [[ -n '' ]] + echo -e '\n\033[90;01m$ usermod --append --groups audio openhab \033[39;49;00m' $ usermod --append --groups audio openhab  + usermod --append --groups audio openhab + return 0 + cond_redirect usermod --append --groups audio openhabian + [[ -n '' ]] + echo -e '\n\033[90;01m$ usermod --append --groups audio openhabian \033[39;49;00m' $ usermod --append --groups audio openhabian  + usermod --append --groups audio openhabian + return 0 + for pGroup in "${groups[@]}" + grep -qs '^[[:space:]]*bluetooth:' /etc/group + cond_redirect usermod --append --groups bluetooth openhab + [[ -n '' ]] + echo -e '\n\033[90;01m$ usermod --append --groups bluetooth openhab \033[39;49;00m' $ usermod --append --groups bluetooth openhab  + usermod --append --groups bluetooth openhab + return 0 + cond_redirect usermod --append --groups bluetooth openhabian + [[ -n '' ]] + echo -e '\n\033[90;01m$ usermod --append --groups bluetooth openhabian \033[39;49;00m' $ usermod --append --groups bluetooth openhabian  + usermod --append --groups bluetooth openhabian + return 0 + for pGroup in "${groups[@]}" + grep -qs '^[[:space:]]*dialout:' /etc/group + cond_redirect usermod --append --groups dialout openhab + [[ -n '' ]] + echo -e '\n\033[90;01m$ usermod --append --groups dialout openhab \033[39;49;00m' $ usermod --append --groups dialout openhab  + usermod --append --groups dialout openhab + return 0 + cond_redirect usermod --append --groups dialout openhabian + [[ -n '' ]] + echo -e '\n\033[90;01m$ usermod --append --groups dialout openhabian \033[39;49;00m' $ usermod --append --groups dialout openhabian  + usermod --append --groups dialout openhabian + return 0 + for pGroup in "${groups[@]}" + grep -qs '^[[:space:]]*gpio:' /etc/group + cond_redirect usermod --append --groups gpio openhab + [[ -n '' ]] + echo -e '\n\033[90;01m$ usermod --append --groups gpio openhab \033[39;49;00m' $ usermod --append --groups gpio openhab  + usermod --append --groups gpio openhab + return 0 + cond_redirect usermod --append --groups gpio openhabian + [[ -n '' ]] + echo -e '\n\033[90;01m$ usermod --append --groups gpio openhabian \033[39;49;00m' $ usermod --append --groups gpio openhabian  + usermod --append --groups gpio openhabian + return 0 + for pGroup in "${groups[@]}" + grep -qs '^[[:space:]]*tty:' /etc/group + cond_redirect usermod --append --groups tty openhab + [[ -n '' ]] + echo -e '\n\033[90;01m$ usermod --append --groups tty openhab \033[39;49;00m' $ usermod --append --groups tty openhab  + usermod --append --groups tty openhab + return 0 + cond_redirect usermod --append --groups tty openhabian + [[ -n '' ]] + echo -e '\n\033[90;01m$ usermod --append --groups tty openhabian \033[39;49;00m' $ usermod --append --groups tty openhabian  + usermod --append --groups tty openhabian + return 0 + cond_redirect usermod --append --groups openhab openhabian + [[ -n '' ]] + echo -e '\n\033[90;01m$ usermod --append --groups openhab openhabian \033[39;49;00m' $ usermod --append --groups openhab openhabian  + usermod --append --groups openhab openhabian + return 0 + cond_redirect chown --silent openhab:openhab /srv /opt + [[ -n '' ]] + echo -e '\n\033[90;01m$ chown --silent openhab:openhab /srv /opt \033[39;49;00m' $ chown --silent openhab:openhab /srv /opt  + chown --silent openhab:openhab /srv /opt + return 0 + cond_redirect chmod --silent ugo+w /srv + [[ -n '' ]] + echo -e '\n\033[90;01m$ chmod --silent ugo+w /srv \033[39;49;00m' $ chmod --silent ugo+w /srv  + chmod --silent ugo+w /srv + return 0 + cond_redirect chown --recursive openhab:openhab /etc/openhab /var/lib/openhab /var/log/openhab /usr/share/openhab + [[ -n '' ]] + echo -e '\n\033[90;01m$ chown --recursive openhab:openhab /etc/openhab /var/lib/openhab /var/log/openhab /usr/share/openhab \033[39;49;00m' $ chown --recursive openhab:openhab /etc/openhab /var/lib/openhab /var/log/openhab /usr/share/openhab  + chown --recursive openhab:openhab /etc/openhab /var/lib/openhab /var/log/openhab /usr/share/openhab + return 0 + cond_redirect chmod --recursive u+wX,g+wX /opt /etc/openhab /var/lib/openhab /var/log/openhab /usr/share/openhab + [[ -n '' ]] + echo -e '\n\033[90;01m$ chmod --recursive u+wX,g+wX /opt /etc/openhab /var/lib/openhab /var/log/openhab /usr/share/openhab \033[39;49;00m' $ chmod --recursive u+wX,g+wX /opt /etc/openhab /var/lib/openhab /var/log/openhab /usr/share/openhab  + chmod --recursive u+wX,g+wX /opt /etc/openhab /var/lib/openhab /var/log/openhab /usr/share/openhab + return 0 + [[ -d /var/lib/openhab/.ssh ]] + [[ -d /var/lib/openhab/backups ]] + mkdir -p /var/lib/openhab/backups + cond_redirect chown openhab:openhab /var/lib/openhab/backups + [[ -n '' ]] + echo -e '\n\033[90;01m$ chown openhab:openhab /var/lib/openhab/backups \033[39;49;00m' $ chown openhab:openhab /var/lib/openhab/backups  + chown openhab:openhab /var/lib/openhab/backups + return 0 + cond_redirect chmod g+s /var/lib/openhab/backups + [[ -n '' ]] + echo -e '\n\033[90;01m$ chmod g+s /var/lib/openhab/backups \033[39;49;00m' $ chmod g+s /var/lib/openhab/backups  + chmod g+s /var/lib/openhab/backups + return 0 + cond_redirect fix_permissions /home/openhabian openhabian:openhabian + [[ -n '' ]] + echo -e '\n\033[90;01m$ fix_permissions /home/openhabian openhabian:openhabian \033[39;49;00m' $ fix_permissions /home/openhabian openhabian:openhabian  + fix_permissions /home/openhabian openhabian:openhabian + [[ -e /home/openhabian ]] + chown openhabian:openhabian /home/openhabian + [[ -n '' ]] + return 0 + return 0 + cond_redirect setfacl --recursive --remove-all /etc/openhab /var/lib/openhab /var/log/openhab /usr/share/openhab + [[ -n '' ]] + echo -e '\n\033[90;01m$ setfacl --recursive --remove-all /etc/openhab /var/lib/openhab /var/log/openhab /usr/share/openhab \033[39;49;00m' $ setfacl --recursive --remove-all /etc/openhab /var/lib/openhab /var/log/openhab /usr/share/openhab  + setfacl --recursive --remove-all /etc/openhab /var/lib/openhab /var/log/openhab /usr/share/openhab + return 0 + cond_redirect fix_permissions /var/log/unattended-upgrades root:root 644 755 + [[ -n '' ]] + echo -e '\n\033[90;01m$ fix_permissions /var/log/unattended-upgrades root:root 644 755 \033[39;49;00m' $ fix_permissions /var/log/unattended-upgrades root:root 644 755  + fix_permissions /var/log/unattended-upgrades root:root 644 755 + [[ -e /var/log/unattended-upgrades ]] + return 0 + return 0 + cond_redirect fix_permissions /var/log/samba root:root 640 750 + [[ -n '' ]] + echo -e '\n\033[90;01m$ fix_permissions /var/log/samba root:root 640 750 \033[39;49;00m' $ fix_permissions /var/log/samba root:root 640 750  + fix_permissions /var/log/samba root:root 640 750 + [[ -e /var/log/samba ]] + chown root:root /var/log/samba + [[ -n 640 ]] + [[ -f /var/log/samba ]] + [[ -n 750 ]] + [[ -d /var/log/samba ]] + find /var/log/samba -type d -print0 + xargs -0 chmod 750 + return 0 + return 0 + cond_redirect fix_permissions /var/log/openhab openhab:openhabian 664 775 + [[ -n '' ]] + echo -e '\n\033[90;01m$ fix_permissions /var/log/openhab openhab:openhabian 664 775 \033[39;49;00m' $ fix_permissions /var/log/openhab openhab:openhabian 664 775  + fix_permissions /var/log/openhab openhab:openhabian 664 775 + [[ -e /var/log/openhab ]] + chown openhab:openhabian /var/log/openhab + [[ -n 664 ]] + [[ -f /var/log/openhab ]] + [[ -n 775 ]] + [[ -d /var/log/openhab ]] + find /var/log/openhab -type d -print0 + xargs -0 chmod 775 + return 0 + return 0 + mosquitto_is_installed + dpkg -s mosquitto mosquitto-clients + return 1 + zigbee2mqtt_is_installed + [[ -d /opt/zigbee2mqtt ]] + return 1 + zram_is_installed + [[ -s /etc/ztab ]] + [[ -d /opt/zram ]] + return 0 + influxdb_is_installed + dpkg -s influxdb + return 1 + grafana_is_installed + dpkg -s grafana + return 1 + mosquitto_is_installed + dpkg -s mosquitto mosquitto-clients + return 1 + cond_redirect fix_permissions /opt/zram/log.bind/samba root:root 640 750 + [[ -n '' ]] + echo -e '\n\033[90;01m$ fix_permissions /opt/zram/log.bind/samba root:root 640 750 \033[39;49;00m' $ fix_permissions /opt/zram/log.bind/samba root:root 640 750  + fix_permissions /opt/zram/log.bind/samba root:root 640 750 + [[ -e /opt/zram/log.bind/samba ]] + chown root:root /opt/zram/log.bind/samba + [[ -n 640 ]] + [[ -f /opt/zram/log.bind/samba ]] + [[ -n 750 ]] + [[ -d /opt/zram/log.bind/samba ]] + find /opt/zram/log.bind/samba -type d -print0 + xargs -0 chmod 750 + return 0 + return 0 + cond_redirect fix_permissions /opt/zram/log.bind/openhab openhab:openhabian 664 775 + [[ -n '' ]] + echo -e '\n\033[90;01m$ fix_permissions /opt/zram/log.bind/openhab openhab:openhabian 664 775 \033[39;49;00m' $ fix_permissions /opt/zram/log.bind/openhab openhab:openhabian 664 775  + fix_permissions /opt/zram/log.bind/openhab openhab:openhabian 664 775 + [[ -e /opt/zram/log.bind/openhab ]] + chown openhab:openhabian /opt/zram/log.bind/openhab + [[ -n 664 ]] + [[ -f /opt/zram/log.bind/openhab ]] + [[ -n 775 ]] + [[ -d /opt/zram/log.bind/openhab ]] + find /opt/zram/log.bind/openhab -type d -print0 + xargs -0 chmod 775 + return 0 + return 0 + cond_redirect fix_permissions /opt/zram/persistence.bind openhab:openhabian 664 775 + [[ -n '' ]] + echo -e '\n\033[90;01m$ fix_permissions /opt/zram/persistence.bind openhab:openhabian 664 775 \033[39;49;00m' $ fix_permissions /opt/zram/persistence.bind openhab:openhabian 664 775  + fix_permissions /opt/zram/persistence.bind openhab:openhabian 664 775 + [[ -e /opt/zram/persistence.bind ]] + chown openhab:openhabian /opt/zram/persistence.bind + [[ -n 664 ]] + [[ -f /opt/zram/persistence.bind ]] + [[ -n 775 ]] + [[ -d /opt/zram/persistence.bind ]] + find /opt/zram/persistence.bind -type d -print0 + xargs -0 chmod 775 + return 0 + return 0 + echo OK OK + homegear_is_installed + dpkg -s homegear + return 1 + [[ -d /opt/habapp ]] + [[ -f /var/lib/openhab/etc/openhab_rsa ]] + return 0 + setup_mirror_SD install + local src=/dev/mmcblk0 + local srcSize + local dest + local destSize + local 'infoText1=DANGEROUS OPERATION, USE WITH PRECAUTION!\n\nThis will *copy* your system root from your SD card to a USB attached card writer device. Are you sure' + local 'infoText2=is an SD card writer device equipped with a dispensible SD card? Are you sure, this will destroy all data on that card and you want to proceed writing to this device?' + local minStorageSize=4000000000 + local sdIncludesDir=/opt/openhabian/includes/SD + local serviceTargetDir=/etc/systemd/system + local 'sizeError=your destination SD card device does not have enough space' + local storageDir=/storage + local sDir=storage + local 'storageRemovalQuery=Do you also want to remove the storage mount for /storage?\nIf you do not but remove the physical device it is located on, you will have trouble every time you restart your system.\nRemember though it might also contain data you might want to keep such as your Amanda backup data. If /storage is not where your mount is, stop now and enter your mountpoint in /etc/openhabian.conf as the storagedir= parameter.' + local svcname + cond_redirect install -m 755 /opt/openhabian/includes/SD/set-partuuid /usr/local/sbin + [[ -n '' ]] + echo -e '\n\033[90;01m$ install -m 755 /opt/openhabian/includes/SD/set-partuuid /usr/local/sbin \033[39;49;00m' $ install -m 755 /opt/openhabian/includes/SD/set-partuuid /usr/local/sbin  + install -m 755 /opt/openhabian/includes/SD/set-partuuid /usr/local/sbin + return 0 ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-11-13_12:44:41_CET [openHABian] Setting up automated SD mirroring and backup... ' 2023-11-13_12:44:41_CET [openHABian] Setting up automated SD mirroring and backup... + [[ -n 1 ]] + [[ -z '' ]] + echo 'SKIPPED (no configuration provided)' SKIPPED (no configuration provided) + return 0 + install_cleanup ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-11-13_12:44:41_CET [openHABian] Cleaning up... ' 2023-11-13_12:44:41_CET [openHABian] Cleaning up... + cond_redirect systemctl -q daemon-reload + [[ -n '' ]] + echo -e '\n\033[90;01m$ systemctl -q daemon-reload \033[39;49;00m' $ systemctl -q daemon-reload  + systemctl -q daemon-reload + return 0 + cond_redirect apt-get clean -o DPkg::Lock::Timeout=60 + [[ -n '' ]] + echo -e '\n\033[90;01m$ apt-get clean -o DPkg::Lock::Timeout=60 \033[39;49;00m' $ apt-get clean -o DPkg::Lock::Timeout=60  + apt-get clean -o DPkg::Lock::Timeout=60 + return 0 + cond_redirect apt-get autoremove --yes -o DPkg::Lock::Timeout=60 + [[ -n '' ]] + echo -e '\n\033[90;01m$ apt-get autoremove --yes -o DPkg::Lock::Timeout=60 \033[39;49;00m' $ apt-get autoremove --yes -o DPkg::Lock::Timeout=60  + apt-get autoremove --yes -o DPkg::Lock::Timeout=60 Reading package lists... Building dependency tree... Reading state information... The following packages will be REMOVED: bluez dos2unix iw python3-toml rfkill triggerhappy 0 upgraded, 0 newly installed, 6 to remove and 19 not upgraded. After this operation, 5,254 kB disk space will be freed. (Reading database ... (Reading database ... 5% (Reading database ... 10% (Reading database ... 15% (Reading database ... 20% (Reading database ... 25% (Reading database ... 30% (Reading database ... 35% (Reading database ... 40% (Reading database ... 45% (Reading database ... 50% (Reading database ... 55% (Reading database ... 60% (Reading database ... 65% (Reading database ... 70% (Reading database ... 75% (Reading database ... 80% (Reading database ... 85% (Reading database ... 90% (Reading database ... 95% (Reading database ... 100% (Reading database ... 79542 files and directories currently installed.) Removing bluez (5.66-1+rpt1) ... Removing dos2unix (7.4.3-1) ... Removing iw (5.19-1) ... Removing python3-toml (0.10.2-1) ... Removing rfkill (2.38.1-5) ... Removing triggerhappy (0.5.0-1.1) ... Processing triggers for dbus (1.14.8-2~deb12u1) ... Processing triggers for man-db (2.11.2-2) ... Updating FireMotD available updates count ... + return 0 + echo OK OK + cd / + rm -f /opt/openHABian-install-inprogress + touch /opt/openHABian-install-successful ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo '2023-11-13_12:44:54_CET [openHABian] Execution of '\''openhabian-config unattended'\'' completed.' 2023-11-13_12:44:54_CET [openHABian] Execution of 'openhabian-config unattended' completed. ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo '2023-11-13_12:44:54_CET [openHABian] First time setup successfully finished. Rebooting your system!' 2023-11-13_12:44:54_CET [openHABian] First time setup successfully finished. Rebooting your system! ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo '2023-11-13_12:44:54_CET [openHABian] After rebooting the openHAB dashboard will be available at: http://openhabian:8080' 2023-11-13_12:44:54_CET [openHABian] After rebooting the openHAB dashboard will be available at: http://openhabian:8080 ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo '2023-11-13_12:44:54_CET [openHABian] After rebooting to gain access to a console, simply reconnect using ssh.' 2023-11-13_12:44:54_CET [openHABian] After rebooting to gain access to a console, simply reconnect using ssh. + sleep 2 ++ command -v python3 + [[ -x /usr/bin/python3 ]] + bash /boot/firmware/webserver.bash inst_done + sleep 2 ++ command -v python3 + [[ -x /usr/bin/python3 ]] + bash /boot/firmware/webserver.bash cleanup + running_in_docker + [[ -n '' ]] + grep -qs 'docker\|lxc' /proc/1/cgroup + [[ -f /.dockerenv ]] + return 1 + systemctl disable comitup Failed to disable unit: Unit file comitup.service does not exist. + reboot