2023-08-12_16:44:32_CEST [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=/home/openhabian + 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 == *\ * ]] + echo repositoryurl=https://github.com/openhab/openhabian + 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 ]] + [[ main == *\ * ]] + echo clonebranch=main + 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 ]] + 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 '' ]] + apt_update + export PID_APT=4940 + PID_APT=4940 + nohup apt-get update + whiptail_check ++ command -v whiptail + [[ -x /usr/bin/whiptail ]] + 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-08-12_16:44:32_CEST [openHABian] Loading configuration file '\''/etc/openhabian.conf'\''... ' 2023-08-12_16:44:32_CEST [openHABian] Loading configuration file '/etc/openhabian.conf'... ++ getent group openhabian + [[ ! -n openhabian:x:1000:openhabian ]] + 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 ++ clonebranch=main ++ 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 + openhabian_console_check + [[ -z 1 ]] ++ tput cols + [[ 150 -ge 120 ]] + return 0 + openhabian_update_check + [[ -z 1 ]] + local branch + local introText + local unsupportedOSText + branch=main + introText='Additions, improvements or fixes were added to the openHABian configuration tool. Would you like to update now and benefit from them? The update will not automatically apply changes to your system.\n\nUpdating is recommended.' + unsupportedOSText='You are running an old Linux release that is no longer officially supported.\nWe recommend upgrading to the most current stable release of your distribution (or current Long Term Support version for distributions that offer LTS).\nDo you really want to continue using openHABian on this system?' ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 ++ get_git_revision ++ local branch ++ local commitDate ++ local shorthash +++ git -C /opt/openhabian rev-parse --abbrev-ref HEAD ++ branch=main +++ git -C /opt/openhabian log --pretty=format:%aI -n 1 ++ commitDate=2023-08-12T11:24:10+02:00 +++ git -C /opt/openhabian log --pretty=format:%h -n 1 ++ shorthash=c6a2fa1 ++ echo '[main]{2023-08-12T11:24:10+02:00}(c6a2fa1)' + echo '2023-08-12_16:44:32_CEST [openHABian] openHABian configuration tool version: [main]{2023-08-12T11:24:10+02:00}(c6a2fa1)' 2023-08-12_16:44:32_CEST [openHABian] openHABian configuration tool version: [main]{2023-08-12T11:24:10+02:00}(c6a2fa1) ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-08-12_16:44:32_CEST [openHABian] Checking for changes in origin branch main... ' 2023-08-12_16:44:32_CEST [openHABian] Checking for changes in origin branch main... + is_stretch + [[ '' == \s\t\r\e\t\c\h ]] ++ cat /etc/os-release + [[ PRETTY_NAME="Raspbian GNU/Linux 11 (bullseye)" NAME="Raspbian GNU/Linux" VERSION_ID="11" VERSION="11 (bullseye)" VERSION_CODENAME=bullseye 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" =~ stretch ]] + return 1 + is_xenial + [[ '' == \x\e\n\i\a\l ]] ++ cat /etc/os-release + [[ PRETTY_NAME="Raspbian GNU/Linux 11 (bullseye)" NAME="Raspbian GNU/Linux" VERSION_ID="11" VERSION="11 (bullseye)" VERSION_CODENAME=bullseye 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" =~ xenial ]] + return 1 + git -C /opt/openhabian config user.email openhabian@openHABian + git -C /opt/openhabian config user.name openhabian + git -C /opt/openhabian fetch --quiet origin ++ git -C /opt/openhabian rev-parse main ++ git -C /opt/openhabian rev-parse '@{u}' + [[ c6a2fa10a80e14335c0cb347e6c0845434e65394 == c6a2fa10a80e14335c0cb347e6c0845434e65394 ]] + echo OK OK + openhabian_announcements + [[ -z 1 ]] + local altReadNews + local newsFile + local readNews + altReadNews=/tmp/NEWS.md + newsFile=/opt/openhabian/NEWS.md + readNews=/opt/openhabian/docs/NEWS.md + cmp --silent /opt/openhabian/NEWS.md /opt/openhabian/docs/NEWS.md + cmp --silent /opt/openhabian/NEWS.md /tmp/NEWS.md ++ cat /opt/openhabian/NEWS.md + whiptail --title 'openHABian announcements' --yes-button 'Stop displaying' --no-button 'Keep displaying' --defaultno --scrolltext --yesno 'Hit tab to unselect buttons and scroll through the text using UP/DOWN or PGUP/PGDN. All announcements are stored in `/opt/openhabian/docs/CHANGELOG.md` for you to lookup. ## openHAB branch name changes to install openHAB 4 ## August 12, 2023 The default openHABian branch name (this is something like the openHABian *version*) changed from "openHAB3" to "openHAB". The openHAB2 branch name changed from "stable" to "legacy". You can use these names whenever you want to install a fresh openHABian system with a specific openHAB version right in the first place using clonebranch= in openhabian.conf. ## IMPORTANT: installing openHAB 4 ## June 25, 2023 We will install openHAB 4 from now on. It will be the latest available milestone release until general availability of the openHAB 4 release. If you are on the default branch openHAB3 so far, please use menu option 01 to change to openHAB branch when you upgrade/move to openHAB 4.' 27 84 ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-08-12_16:44:34_CEST [openHABian] Switching to branch main... ' 2023-08-12_16:44:34_CEST [openHABian] Switching to branch main... + git -C /opt/openhabian checkout --quiet main + echo OK OK ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo '2023-08-12_16:44:34_CEST [openHABian] Checking openHAB Signing Key expiry.' 2023-08-12_16:44:34_CEST [openHABian] Checking openHAB Signing Key expiry. + check_keys openhab + local repoKey=/usr/share/keyrings/openhab.gpg ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-08-12_16:44:34_CEST [openHABian] Checking expiry date of apt keys... ' 2023-08-12_16:44:34_CEST [openHABian] Checking expiry date of apt keys... + [[ ! -f /usr/share/keyrings/openhab.gpg ]] ++ gpg --with-colons --fixed-list-mode --show-keys /usr/share/keyrings/openhab.gpg ++ cut -d: -f7 ++ awk NF + gpgKeys='1915194593 1915211934' ++ date +%s + currentTime=1691851474 + [[ -n 1915194593 1915211934 ]] + IFS= + read -r keyExpiry + diff=223343119 + daysLeft=2584 + [[ 2584 -lt 30 ]] + IFS= + read -r keyExpiry + diff=223360460 + daysLeft=2585 + [[ 2585 -lt 30 ]] + IFS= + read -r keyExpiry + echo OK OK + return 0 + jsscripting_npm_check openhab + '[' openhab == '' ']' + '[' '!' -d /etc/openhab/automation/js/node_modules/openhab ']' + return 0 + jsscripting_npm_check openhab_rules_tools + '[' openhab_rules_tools == '' ']' + '[' '!' -d /etc/openhab/automation/js/node_modules/openhab_rules_tools ']' + return 0 + show_main_menu + local choice + local version +++ get_git_revision +++ local branch +++ local commitDate +++ local shorthash ++++ git -C /opt/openhabian rev-parse --abbrev-ref HEAD +++ branch=main ++++ git -C /opt/openhabian log --pretty=format:%aI -n 1 +++ commitDate=2023-08-12T11:24:10+02:00 ++++ git -C /opt/openhabian log --pretty=format:%h -n 1 +++ shorthash=c6a2fa1 +++ echo '[main]{2023-08-12T11:24:10+02:00}(c6a2fa1)' ++ whiptail --title 'openHABian Configuration Tool — [main]{2023-08-12T11:24:10+02:00}(c6a2fa1)' --menu 'Setup Options' 24 118 16 --cancel-button Exit --ok-button Execute '00 | About openHABian' 'Information about the openHABian project and this tool' '' '' '01 | Select Branch' 'Select the openHABian config tool version ("branch") to run' '02 | Upgrade System' 'Update all installed software packages (incl. openHAB) to their latest version' '03 | Install openHAB' 'Install or upgrade to latest openHAB' '04 | Import config' 'Import an openHAB configuration from file or URL' '' '' '10 | Apply Improvements' 'Apply the latest improvements to the basic openHABian setup ►' '20 | Optional Components' 'Choose from a set of optional software components ►' '30 | System Settings' 'A range of system and hardware related configuration steps ►' '40 | openHAB Related' 'Switch the installed openHAB version or apply tweaks ►' '50 | Backup/Restore' 'Manage backups and restore your system ►' + choice='03 | Install openHAB' + RET=0 + '[' 0 -eq 1 ']' + '[' 0 -eq 255 ']' + [[ 03 | Install openHAB == '' ]] + [[ 03 | Install openHAB == \0\0* ]] + [[ 03 | Install openHAB == \0\1* ]] + [[ 03 | Install openHAB == \0\2* ]] + [[ 03 | Install openHAB == \0\3* ]] + wait_for_apt_to_finish_update + local 'spin=-\|/' + local i + [[ -z 4940 ]] ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-08-12_16:44:40_CEST [openHABian] Updating Linux package information... ' 2023-08-12_16:44:40_CEST [openHABian] Updating Linux package information... + kill -0 4940 + echo OK OK + is_buster + [[ '' == \b\u\s\t\e\r ]] ++ cat /etc/os-release + [[ PRETTY_NAME="Raspbian GNU/Linux 11 (bullseye)" NAME="Raspbian GNU/Linux" VERSION_ID="11" VERSION="11 (bullseye)" VERSION_CODENAME=bullseye 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" =~ buster ]] + return 1 + is_stretch + [[ '' == \s\t\r\e\t\c\h ]] ++ cat /etc/os-release + [[ PRETTY_NAME="Raspbian GNU/Linux 11 (bullseye)" NAME="Raspbian GNU/Linux" VERSION_ID="11" VERSION="11 (bullseye)" VERSION_CODENAME=bullseye 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" =~ stretch ]] + return 1 ++ apt-cache madison openhab ++ head -n 1 ++ awk '{ print $3 }' ++ cut -d. -f1 + [[ '' = 4 ]] ++ apt-cache madison openhab ++ head -n 1 ++ awk '{ print $6 }' ++ cut -d/ -f1 + repo= + openhab_setup openHAB stable + 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 + [[ stable == \s\n\a\p\s\h\o\t ]] + [[ stable == \u\n\s\t\a\b\l\e ]] + [[ stable == \r\e\l\e\a\s\e ]] + [[ stable == \m\i\l\e\s\t\o\n\e ]] + [[ stable == \t\e\s\t\i\n\g ]] + [[ -n 1 ]] + whiptail --title 'openHAB software change' --yes-button Continue --no-button Cancel --yesno '' 20 80 + echo OK OK + export DEBIAN_FRONTEND=noninteractive + DEBIAN_FRONTEND=noninteractive + 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-08-12_16:44:41_CEST [openHABian] Adding required keys to apt... ' 2023-08-12_16:44:41_CEST [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 '' ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-08-12_16:44:42_CEST [openHABian] Installing selected openHAB version... ' 2023-08-12_16:44:42_CEST [openHABian] Installing selected openHAB version... + apt-get clean --yes -o DPkg::Lock::Timeout= + 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://raspbian.raspberrypi.org/raspbian bullseye InRelease Hit:3 http://archive.raspberrypi.org/debian bullseye InRelease Hit:4 https://deb.nodesource.com/node_18.x bullseye InRelease Reading package lists... Done + return 0 ++ apt-cache madison openhab ++ head -n 1 ++ cut '-d|' -f2 ++ xargs + openhabVersion= + [[ -n '' ]] + installVersion='openhab openhab-addons' + cond_redirect apt-get install --allow-downgrades --yes -o DPkg::Lock::Timeout= --option Dpkg::Options::=--force-confnew 'openhab openhab-addons' + [[ -n '' ]] + echo -e '\n\033[90;01m$ apt-get install --allow-downgrades --yes -o DPkg::Lock::Timeout= --option Dpkg::Options::=--force-confnew openhab openhab-addons \033[39;49;00m' $ apt-get install --allow-downgrades --yes -o DPkg::Lock::Timeout= --option Dpkg::Options::=--force-confnew openhab openhab-addons + apt-get install --allow-downgrades --yes -o DPkg::Lock::Timeout= --option Dpkg::Options::=--force-confnew 'openhab openhab-addons' Reading package lists... Done Building dependency tree... Done Reading state information... Done E: Unable to locate package openhab openhab-addons + return 100 + echo FAILED FAILED + return 1 + '[' 1 -ne 0 ']' + whiptail --msgbox 'There was an error or interruption during the execution of:\n "03 | Install openHAB"\n\nPlease try again. If the error persists, please read /opt/openhabian/docs/openhabian-DEBUG.md or https://github.com/openhab/openhabian/blob/main/docs/openhabian-DEBUG.md how to proceed.' 14 80 + return 0 + true + show_main_menu + local choice + local version +++ get_git_revision +++ local branch +++ local commitDate +++ local shorthash ++++ git -C /opt/openhabian rev-parse --abbrev-ref HEAD +++ branch=main ++++ git -C /opt/openhabian log --pretty=format:%aI -n 1 +++ commitDate=2023-08-12T11:24:10+02:00 ++++ git -C /opt/openhabian log --pretty=format:%h -n 1 +++ shorthash=c6a2fa1 +++ echo '[main]{2023-08-12T11:24:10+02:00}(c6a2fa1)' ++ whiptail --title 'openHABian Configuration Tool — [main]{2023-08-12T11:24:10+02:00}(c6a2fa1)' --menu 'Setup Options' 24 118 16 --cancel-button Exit --ok-button Execute '00 | About openHABian' 'Information about the openHABian project and this tool' '' '' '01 | Select Branch' 'Select the openHABian config tool version ("branch") to run' '02 | Upgrade System' 'Update all installed software packages (incl. openHAB) to their latest version' '03 | Install openHAB' 'Install or upgrade to latest openHAB' '04 | Import config' 'Import an openHAB configuration from file or URL' '' '' '10 | Apply Improvements' 'Apply the latest improvements to the basic openHABian setup ►' '20 | Optional Components' 'Choose from a set of optional software components ►' '30 | System Settings' 'A range of system and hardware related configuration steps ►' '40 | openHAB Related' 'Switch the installed openHAB version or apply tweaks ►' '50 | Backup/Restore' 'Manage backups and restore your system ►' + choice= + RET=1 + '[' 1 -eq 1 ']' + return 255 + system_check_default_password + 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 0 + return 0 + local algo + local defaultPassword + local defaultUser + local generatedPassword + local introText + local originalPassword + local salt + 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 0 + return 0 + id -u pi + 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 0 + return 0 + defaultUser=openhabian + defaultPassword=openhabian ++ grep -w openhabian /etc/shadow ++ cut -d: -f2 + originalPassword='$6$lcY0Csc7PgslXNgy$mbFm2JLHt7hfWgT7I26sJWhrG95Vk/BnR966dyu7yhJob7ei6MK37IBFrwG3LscedyNv96jYQHOWrjs3oVa/R0' ++ echo '$6$lcY0Csc7PgslXNgy$mbFm2JLHt7hfWgT7I26sJWhrG95Vk/BnR966dyu7yhJob7ei6MK37IBFrwG3LscedyNv96jYQHOWrjs3oVa/R0' ++ cut '-d$' -f2 + algo=6 + introText='The default password was detected on your system! That is a serious security concern. Bad guys or malicious programs in your subnet are able to gain root access!\n\nPlease set a strong password by typing the command '\''passwd openhabian'\''!' ++ echo '$6$lcY0Csc7PgslXNgy$mbFm2JLHt7hfWgT7I26sJWhrG95Vk/BnR966dyu7yhJob7ei6MK37IBFrwG3LscedyNv96jYQHOWrjs3oVa/R0' ++ cut '-d$' -f3 + salt=lcY0Csc7PgslXNgy + export algo defaultPassword salt ++ perl -le 'print crypt("$ENV{defaultPassword}","\$$ENV{algo}\$$ENV{salt}\$")' + generatedPassword='$6$lcY0Csc7PgslXNgy$mbFm2JLHt7hfWgT7I26sJWhrG95Vk/BnR966dyu7yhJob7ei6MK37IBFrwG3LscedyNv96jYQHOWrjs3oVa/R0' ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-08-12_16:44:50_CEST [openHABian] Checking for default openHABian username:password combination... ' 2023-08-12_16:44:50_CEST [openHABian] Checking for default openHABian username:password combination... ++ id -u openhabian + [[ -n 1000 ]] + [[ $6$lcY0Csc7PgslXNgy$mbFm2JLHt7hfWgT7I26sJWhrG95Vk/BnR966dyu7yhJob7ei6MK37IBFrwG3LscedyNv96jYQHOWrjs3oVa/R0 == \$\6\$\l\c\Y\0\C\s\c\7\P\g\s\l\X\N\g\y\$\m\b\F\m\2\J\L\H\t\7\h\f\W\g\T\7\I\2\6\s\J\W\h\r\G\9\5\V\k\/\B\n\R\9\6\6\d\y\u\7\y\h\J\o\b\7\e\i\6\M\K\3\7\I\B\F\r\w\G\3\L\s\c\e\d\y\N\v\9\6\j\Y\Q\H\O\W\r\j\s\3\o\V\a\/\R\0 ]] + [[ -n 1 ]] + whiptail --title 'Default password detected' --msgbox 'The default password was detected on your system! That is a serious security concern. Bad guys or malicious programs in your subnet are able to gain root access!\n\nPlease set a strong password by typing the command '\''passwd openhabian'\''!' 11 80 + echo FAILED FAILED ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -e '2023-08-12_16:44:52_CEST [openHABian] We hope you got what you came for! See you again soon ;)' 2023-08-12_16:44:52_CEST [openHABian] We hope you got what you came for! See you again soon ;) + cd /home/openhabian