+ [[ -v hostname ]] + [[ ourhome == *\ * ]] + echo hostname=ourhome + 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=main =~ ^(#)?[a-zA-Z] ]] + parsed=clonebranch=main + [[ clonebranch=main =~ ^#[a-zA-Z] ]] ++ echo clonebranch=main ++ 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=on =~ ^(#)?[a-zA-Z] ]] + parsed=debugmode=on + [[ debugmode=on =~ ^#[a-zA-Z] ]] ++ echo debugmode=on ++ 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=16608 + PID_APT=16608 + whiptail_check + nohup apt-get update ++ 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-07-23_17:09:19_CEST [openHABian] Loading configuration file '\''/etc/openhabian.conf'\''... ' 2023-07-23_17:09:19_CEST [openHABian] Loading configuration file '/etc/openhabian.conf'... ++ getent group openhabian + [[ ! -n openhabian:x:1000:openhabian,frontail ]] + id -u openhabian + source /etc/openhabian.conf ++ hostname=ourhome ++ 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=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 + openhabian_console_check + [[ -z 1 ]] ++ tput cols + [[ 217 -ge 120 ]] + return 0 + openhabian_update_check + [[ -z 1 ]] + local branch + local introText + local unsupportedOSText + branch=openHAB + 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=openHAB +++ git -C /opt/openhabian log --pretty=format:%aI -n 1 ++ commitDate=2023-07-16T16:22:40+02:00 +++ git -C /opt/openhabian log --pretty=format:%h -n 1 ++ shorthash=f2ceb71 ++ echo '[openHAB]{2023-07-16T16:22:40+02:00}(f2ceb71)' + echo '2023-07-23_17:09:19_CEST [openHABian] openHABian configuration tool version: [openHAB]{2023-07-16T16:22:40+02:00}(f2ceb71)' 2023-07-23_17:09:19_CEST [openHABian] openHABian configuration tool version: [openHAB]{2023-07-16T16:22:40+02:00}(f2ceb71) ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-07-23_17:09:19_CEST [openHABian] Checking for changes in origin branch openHAB... ' 2023-07-23_17:09:19_CEST [openHABian] Checking for changes in origin branch openHAB... + is_stretch + [[ '' == \s\t\r\e\t\c\h ]] ++ cat /etc/os-release + [[ PRETTY_NAME="Raspbian GNU/Linux 10 (buster)" NAME="Raspbian GNU/Linux" VERSION_ID="10" VERSION="10 (buster)" VERSION_CODENAME=buster 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 10 (buster)" NAME="Raspbian GNU/Linux" VERSION_ID="10" VERSION="10 (buster)" VERSION_CODENAME=buster 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 openHAB ++ git -C /opt/openhabian rev-parse '@{u}' + [[ f2ceb71b9906dcace6c1639cce9ad94c178286ed == f2ceb71b9906dcace6c1639cce9ad94c178286ed ]] + 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. ## 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. ## IMPORTANT: openHAB branch to install openHAB 4 ## June 3, 2023 We will change the default branch name to "openHAB". 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. ## IMPORTANT: Java 17 is now the default ## March 22, 2023 As upcoming openHAB 4 will require Java 17 to run, it'\''s time to move so from now on we install Java 17 by default. NOTE: openHAB 3.X is said to work with but isn'\''t thoroughly tested on Java 17 so you might run into issues when you install 3.X. This is also a request to all of you to gather and share experiences. Please switch to (via menu) the *main* branch of openHABian or install it right away as using the default branch (openHAB3) will keep installing Java 11 for the time being. Let us know your feedback via forum. You can also change java versions via menu or on install via openhabian.conf.' 27 84 ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-07-23_17:09:21_CEST [openHABian] Switching to branch openHAB... ' 2023-07-23_17:09:21_CEST [openHABian] Switching to branch openHAB... + git -C /opt/openhabian checkout --quiet openHAB + echo OK OK ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo '2023-07-23_17:09:21_CEST [openHABian] Checking openHAB Signing Key expiry.' 2023-07-23_17:09:21_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-07-23_17:09:21_CEST [openHABian] Checking expiry date of apt keys... ' 2023-07-23_17:09:21_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=1690124961 + [[ -n 1915194593 1915211934 ]] + IFS= + read -r keyExpiry + diff=225069632 + daysLeft=2604 + [[ 2604 -lt 30 ]] + IFS= + read -r keyExpiry + diff=225086973 + daysLeft=2605 + [[ 2605 -lt 30 ]] + IFS= + read -r keyExpiry + echo OK OK + return 0 + jsscripting_npm_check openhab + '[' openhab == '' ']' + '[' '!' -d /etc/openhab/automation/js/node_modules/openhab ']' + local 'introText=Additions, improvements or fixes were added to openhab (npm package) for JS Scripting. Would you like to update now and benefit from them?' + local 'breakingText=\n\nThis update includes BREAKING CHANGES!' + local data + local wantedVersion + local latestVersion + node_is_installed ++ command -v npm + [[ -x /usr/bin/npm ]] ++ node --version + [[ v16.20.1 =~ v1[6-9]* ]] + return 0 + is_armv6l + [[ '' == \a\r\m\v\6\l ]] + case "$(uname -m)" in ++ uname -m + return 1 ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-07-23_17:09:21_CEST [openHABian] Checking for updates of openhab for JS Scripting... ' 2023-07-23_17:09:21_CEST [openHABian] Checking for updates of openhab for JS Scripting... ++ npm outdated --prefix /etc/openhab/automation/js --json + data='{}' + [[ {} =~ "openhab" ]] + echo 'No update available.' No update available. + jsscripting_npm_check openhab_rules_tools + '[' openhab_rules_tools == '' ']' + '[' '!' -d /etc/openhab/automation/js/node_modules/openhab_rules_tools ']' + return 0 + bashrc_copy ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-07-23_17:09:26_CEST [openHABian] Adding slightly tuned bash configuration files to system... ' 2023-07-23_17:09:26_CEST [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_history /home/openhabian/.bash_logout /home/openhabian/.bash_profile + echo OK OK + 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=openHAB ++++ git -C /opt/openhabian log --pretty=format:%aI -n 1 +++ commitDate=2023-07-16T16:22:40+02:00 ++++ git -C /opt/openhabian log --pretty=format:%h -n 1 +++ shorthash=f2ceb71 +++ echo '[openHAB]{2023-07-16T16:22:40+02:00}(f2ceb71)' ++ whiptail --title 'openHABian Configuration Tool — [openHAB]{2023-07-16T16:22:40+02:00}(f2ceb71)' --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='40 | openHAB Related' + RET=0 + '[' 0 -eq 1 ']' + '[' 0 -eq 255 ']' + [[ 40 | openHAB Related == '' ]] + [[ 40 | openHAB Related == \0\0* ]] + [[ 40 | openHAB Related == \0\1* ]] + [[ 40 | openHAB Related == \0\2* ]] + [[ 40 | openHAB Related == \0\3* ]] + [[ 40 | openHAB Related == \0\4* ]] + [[ 40 | openHAB Related == \1\0* ]] + [[ 40 | openHAB Related == \2\0* ]] + [[ 40 | openHAB Related == \3\0* ]] + [[ 40 | openHAB Related == \4\0* ]] +++ get_git_revision +++ local branch +++ local commitDate +++ local shorthash ++++ git -C /opt/openhabian rev-parse --abbrev-ref HEAD +++ branch=openHAB ++++ git -C /opt/openhabian log --pretty=format:%aI -n 1 +++ commitDate=2023-07-16T16:22:40+02:00 ++++ git -C /opt/openhabian log --pretty=format:%h -n 1 +++ shorthash=f2ceb71 +++ echo '[openHAB]{2023-07-16T16:22:40+02:00}(f2ceb71)' ++ whiptail --title 'openHABian Configuration Tool — [openHAB]{2023-07-16T16:22:40+02:00}(f2ceb71)' --menu 'openHAB Related' 23 118 15 --cancel-button Back --ok-button Execute '41 | openHAB Release' 'Install or switch to the latest openHAB Release' ' | openHAB Milestone' 'Install or switch to the latest openHAB Milestone Build' ' | openHAB Snapshot' 'Install or switch to the latest openHAB Snapshot Build' '42 | Upgrade legacy openHABian env' 'Upgrade openHAB 2 based OS environment to work with openHAB 3 or 4' '43 | Remote Console' 'Bind the openHAB SSH console to all external interfaces' '44 | Nginx Proxy' 'Setup reverse and forward web proxy' '45 | OpenJDK 17' 'Install and activate OpenJDK 17 as Java provider (now default)' ' | OpenJDK 11' 'Install and activate OpenJDK 11 as Java provider' ' | Zulu 11 OpenJDK 32-bit' 'Install Zulu 11 32-bit OpenJDK as Java provider' ' | Zulu 11 OpenJDK 64-bit' 'Install Zulu 11 64-bit OpenJDK as Java provider' '46 | Install openhab-js' 'JS Scripting: Upgrade to latest version of openHAB JavaScript library (advanced)' ' | Uninstall openhab-js' 'JS Scripting: Switch back to included version of openHAB JavaScript library' '47 | Install openhab_rules_tools' 'JS Scripting: Manually install openhab_rules_tools (auto-installed)' ' | Uninstall openhab_rules_tools' 'JS Scripting: Uninstall openhab_rules_tools' + choice2='45 | OpenJDK 17' + '[' 0 -eq 1 ']' + '[' 1 -eq 255 ']' + wait_for_apt_to_finish_update + local 'spin=-\|/' + local i + [[ -z 16608 ]] ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-07-23_17:10:00_CEST [openHABian] Updating Linux package information... ' 2023-07-23_17:10:00_CEST [openHABian] Updating Linux package information... + kill -0 16608 + echo OK OK ++ openhab4_is_installed +++ dpkg -s openhab +++ grep -E '^Version' +++ cut -d ' ' -f2 +++ cut -d . -f1 ++ [[ 4 = 4 ]] ++ return 0 ++ echo openHAB ++ echo openHAB3 + version='openHAB openHAB3' + case "$choice2" in + update_config_java 17 + cond_redirect sed -i -e 's|^java_opt.*$|java_opt=17|' /etc/openhabian.conf + [[ -n '' ]] + echo -e '\n\033[90;01m$ sed -i -e s|^java_opt.*$|java_opt=17| /etc/openhabian.conf \033[39;49;00m' $ sed -i -e s|^java_opt.*$|java_opt=17| /etc/openhabian.conf + sed -i -e 's|^java_opt.*$|java_opt=17|' /etc/openhabian.conf + return 0 + source /etc/openhabian.conf ++ hostname=ourhome ++ 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=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 + java_install 17 + openhab_is_running + openhab_is_installed + openhab2_is_installed ++ dpkg -s openhab2 ++ grep Status ++ cut '-d ' -f2 + [[ deinstall =~ ^(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 ++ systemctl is-active openhab + [[ inactive == \a\c\t\i\v\e ]] + 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 ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-07-23_17:10:01_CEST [openHABian] Fetching OpenJDK 17... ' 2023-07-23_17:10:01_CEST [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... Done Building dependency tree Reading state information... Done Some packages could not be installed. This may mean that you have requested an impossible situation or if you are using the unstable distribution that some required packages have not yet been created or been moved out of Incoming. The following information may help to resolve the situation: The following packages have unmet dependencies: openjdk-17-jre-headless : Depends: libc6 (>= 2.29) but 2.28-10+rpt2+rpi1+deb10u2 is to be installed Depends: libgcc-s1 (>= 3.5) but it is not installable E: Unable to correct problems, you have held broken packages. + return 100 + echo FAILED FAILED + return 1 ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-07-23_17:10:04_CEST [openHABian] Installing OpenJDK 17... ' 2023-07-23_17:10:04_CEST [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= openjdk-17-jre-headless + [[ -n '' ]] + echo -e '\n\033[90;01m$ apt-get install --yes -o DPkg::Lock::Timeout= openjdk-17-jre-headless \033[39;49;00m' $ apt-get install --yes -o DPkg::Lock::Timeout= openjdk-17-jre-headless + apt-get install --yes -o DPkg::Lock::Timeout= openjdk-17-jre-headless Reading package lists... Done Building dependency tree Reading state information... Done Some packages could not be installed. This may mean that you have requested an impossible situation or if you are using the unstable distribution that some required packages have not yet been created or been moved out of Incoming. The following information may help to resolve the situation: The following packages have unmet dependencies: openjdk-17-jre-headless : Depends: libc6 (>= 2.29) but 2.28-10+rpt2+rpi1+deb10u2 is to be installed Depends: libgcc-s1 (>= 3.5) but it is not installable E: Unable to correct problems, you have held broken packages. + return 100 + echo FAILED FAILED + return 1 + openhab_is_installed + openhab2_is_installed ++ dpkg -s openhab2 ++ grep Status ++ cut '-d ' -f2 + [[ deinstall =~ ^(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 + 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 + '[' 0 -ne 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=openHAB ++++ git -C /opt/openhabian log --pretty=format:%aI -n 1 +++ commitDate=2023-07-16T16:22:40+02:00 ++++ git -C /opt/openhabian log --pretty=format:%h -n 1 +++ shorthash=f2ceb71 +++ echo '[openHAB]{2023-07-16T16:22:40+02:00}(f2ceb71)' ++ whiptail --title 'openHABian Configuration Tool — [openHAB]{2023-07-16T16:22:40+02:00}(f2ceb71)' --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$m2KIgaj0N.gf.vfQ$KMfsQWSoquvktZLydQuOgrPzT1dsL1i5jV4uaWUnln2ioo2q9kkwO/dsgdvXAaBQHsu0pMSs4B6vABn3CB9QB.' ++ echo '$6$m2KIgaj0N.gf.vfQ$KMfsQWSoquvktZLydQuOgrPzT1dsL1i5jV4uaWUnln2ioo2q9kkwO/dsgdvXAaBQHsu0pMSs4B6vABn3CB9QB.' ++ 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$m2KIgaj0N.gf.vfQ$KMfsQWSoquvktZLydQuOgrPzT1dsL1i5jV4uaWUnln2ioo2q9kkwO/dsgdvXAaBQHsu0pMSs4B6vABn3CB9QB.' ++ cut '-d$' -f3 + salt=m2KIgaj0N.gf.vfQ + export algo defaultPassword salt ++ perl -le 'print crypt("$ENV{defaultPassword}","\$$ENV{algo}\$$ENV{salt}\$")' + generatedPassword='$6$m2KIgaj0N.gf.vfQ$inOz5XI6jWbacsSgKTNCn6X5gD1HU.xaRejFYgteUOa8Y6fEQRbdN2cO91AcEFZ0iGrVtBD7D4QtRWr0vAERk.' ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -n '2023-07-23_17:10:10_CEST [openHABian] Checking for default openHABian username:password combination... ' 2023-07-23_17:10:10_CEST [openHABian] Checking for default openHABian username:password combination... ++ id -u openhabian + [[ -n 1000 ]] + [[ $6$m2KIgaj0N.gf.vfQ$inOz5XI6jWbacsSgKTNCn6X5gD1HU.xaRejFYgteUOa8Y6fEQRbdN2cO91AcEFZ0iGrVtBD7D4QtRWr0vAERk. == \$\6\$\m\2\K\I\g\a\j\0\N\.\g\f\.\v\f\Q\$\K\M\f\s\Q\W\S\o\q\u\v\k\t\Z\L\y\d\Q\u\O\g\r\P\z\T\1\d\s\L\1\i\5\j\V\4\u\a\W\U\n\l\n\2\i\o\o\2\q\9\k\k\w\O\/\d\s\g\d\v\X\A\a\B\Q\H\s\u\0\p\M\S\s\4\B\6\v\A\B\n\3\C\B\9\Q\B\. ]] + echo OK OK ++ timestamp ++ printf '%(%F_%T_%Z)T\n' -1 + echo -e '2023-07-23_17:10:10_CEST [openHABian] We hope you got what you came for! See you again soon ;)' 2023-07-23_17:10:10_CEST [openHABian] We hope you got what you came for! See you again soon ;) + cd /home/openhabian openhabian@ourhome:~ $