diff --git a/packages/helpermodules/update_config.py b/packages/helpermodules/update_config.py index 8099201ca1..07b0739828 100644 --- a/packages/helpermodules/update_config.py +++ b/packages/helpermodules/update_config.py @@ -242,6 +242,7 @@ class UpdateConfig: "^openWB/optional/et/get/prices$", "^openWB/optional/et/provider$", "^openWB/optional/int_display/active$", + "^openWB/optional/int_display/detected$", "^openWB/optional/int_display/on_if_plugged_in$", "^openWB/optional/int_display/pin_active$", "^openWB/optional/int_display/pin_code$", @@ -488,12 +489,13 @@ class UpdateConfig: ("openWB/internal_chargepoint/0/data/parent_cp", None), ("openWB/internal_chargepoint/1/data/parent_cp", None), ("openWB/optional/et/provider", NO_MODULE), - ("openWB/optional/int_display/active", False), + ("openWB/optional/int_display/active", True), + ("openWB/optional/int_display/detected", True), ("openWB/optional/int_display/on_if_plugged_in", True), ("openWB/optional/int_display/pin_active", False), ("openWB/optional/int_display/pin_code", "0000"), ("openWB/optional/int_display/standby", 60), - ("openWB/optional/int_display/rotation", 180), + ("openWB/optional/int_display/rotation", 0), ("openWB/optional/int_display/theme", dataclass_utils.asdict(CardsDisplayTheme())), ("openWB/optional/int_display/only_local_charge_points", False), ("openWB/optional/led/active", False), diff --git a/runs/atreboot.sh b/runs/atreboot.sh index b82a48efa4..8cf173fd14 100755 --- a/runs/atreboot.sh +++ b/runs/atreboot.sh @@ -232,6 +232,25 @@ chmod 666 "$LOGFILE" echo "cleaning obsolete python cache folders..." "$OPENWBBASEDIR/runs/cleanPythonCache.sh" + # detect connected displays + # set default to "true" as fallback if "tvservice" is missing + displayDetected="true" + if which tvservice >/dev/null; then + echo "detected 'tvservice', query for connected displays" + output=$(tvservice -l) + echo "$output" + if [[ ! $output =~ "HDMI" ]] && [[ ! $output =~ "LCD" ]]; then + echo "no display detected" + displayDetected="false" + else + echo "detected HDMI or LCD display(s)" + fi + else + echo "'tvservice' not found, assuming a display is present" + fi + echo "displayDetected: $displayDetected" + mosquitto_pub -p 1886 -t "openWB/optional/int_display/detected" -r -m "$displayDetected" + # display setup echo "display setup..." displaySetupModified=0 diff --git a/runs/update_local_display.sh b/runs/update_local_display.sh index e50a2e0973..fb3dd1bd46 100755 --- a/runs/update_local_display.sh +++ b/runs/update_local_display.sh @@ -13,7 +13,7 @@ sudo sed -i "s/^xset s .*$/xset s ${timeout}/" "/home/openwb/.config/lxsession/L # enable/disable display default_target=$(systemctl get-default) -if display_active=$(mosquitto_sub -p 1886 -t "openWB/optional/int_display/active" -C 1 -W 1) && [[ $display_active == "true" ]]; then +if display_active=$(mosquitto_sub -p 1886 -t "openWB/optional/int_display/active" -C 1 -W 1) && [[ $display_active == "true" ]] && display_detected=$(mosquitto_sub -p 1886 -t "openWB/optional/int_display/detected" -C 1 -W 1) && [[ $display_detected == "true" ]]; then if [[ $default_target == "graphical.target" ]]; then echo "graphical target already configured" else @@ -37,7 +37,7 @@ else fi if rotation=$(mosquitto_sub -p 1886 -t "openWB/optional/int_display/rotation" -C 1 -W 1); then - rotationValue=$(((rotation / 90 + 4) % 4)) # this allows negative rotation angles + rotationValue=$(((rotation / 90 + 4) % 4)) # this allows negative rotation angles current_rotation=$(grep "^lcd_rotate=[0-3]$" /boot/config.txt | grep -o "[0-3]$") echo "current display rotation: $current_rotation" echo "new display rotation: '$rotation' -> $rotationValue"