UPDATED v1.1.0: HAOSKiosk Add-on – Display your dashboards directly on your HAOS server

HAOSKiosk allows users to view their dashboards and control Home Assistant using a display attached directly to their HAOS server (e.g., RPi or miniPC).

This efficient, standalone setup avoids the need to use/setup/power a separate device, screen and associated browser just to manage and monitor your HA instance, saving cost, energy, and space.

This update adds 2 important new user functionalities:

  1. OnScreen keyboard for use with touchscreens that allow you to fully control HA and its dashboards with just a touchscreen attached to your HAOS server – no other devices, peripherals, browsers, or displays required. (Of course, you can still use an external keyboard and mouse to interact with HAOSKiosk if you don’t have a touchscreen)

  2. REST API to allow: (a) remote launching of new URL’s/dashboards, (b) control to automatically turn on/off display or refresh the browser (c) ability to launch one or more commands in the HAOSKiosk container for even more custom control of the add-on.

In particular, the REST API can be used to create automations and services to:

  • Turn on/off display based on time-of-day, proximity, event triggers,
    voice commands, etc.

  • Send dashboard (or another 3rd party URL) to HAOSKiosk display based o event triggers or pre-programmed rotation (e.g., to sequentially view different cameras).

Here is the udpated README:

HAOS-kiosk

Display HA dashboards in kiosk mode directly on your HAOS server.

Author: Jeff Kosowsky

Description

Launches X-Windows on local HAOS server followed by OpenBox window manager
and Luakit browser.
Standard mouse and keyboard interactions should work automatically.
Supports touchscreens (including onscreen keyboard) and screen rotation.
Includes REST API that can be used to control the display state and to send
new URLs (e.g., dashboards) to the kiosk browser.

You can press ctl-R at any time to refresh the browser.

NOTE: You must enter your HA username and password in the
Configuration tab for add-on to start.

NOTE: If display does not show up, reboot with display attached (e.g.,
via HDMI cable)

Note: Luakit browser is launched in kiosk-like (passthrough) mode.
To enter normal mode (similar to command mode in vi), press
ctl-alt-esc.
You can then return to passthrough mode by pressing ctl-Z or enter
insert mode by pressing i.
See luakit documentation for available commands.
In general, you want to stay in passthrough mode.

NOTE: Should support any standard mouse, touchscreen, keypad and
touchpad so long as their /dev/input/eventN number is less than 25.

NOTE: If not working, please first check the bug reports (open and
closed), then try the testing branch (add the following url to the
repository: GitHub - puterboy/HAOS-kiosk: Display HA dashboards in kiosk mode directly on your HAOS server). If still no
solution, file an issue on github
bug report and include
full details of your setup and what you did along with a complete log.

Configuration Options

HA Username [required]

Enter your Home Assistant login name.

HA Password [required]

Enter your Home Assistant password.

HA URL

Default: http://localhost:8123
In general, you shouldn’t need to change this since this is running on the
local server.

HA Dashboard

Name of starting dashboard.
(Default: “” - loads the default Lovelace dashboard)

Login Delay

Delay in seconds to allow login page to load.
(Default: 1 second)

Zoom Level

Level of zoom with 100 being 100%.
(Default: 100%)

Browser Refresh

Time between browser refreshes. Set to 0 to disable.
Recommended because with the default RPi config, console errors may
overwrite the dashboard.
(Default: 600 seconds)

Screen Timeout

Time before screen blanks in seconds. Set to 0 to never timeout.
(Default: 0 seconds - never timeout)

Output Number

Choose which of the connected video output ports to use. Set to 1 to
use the first connected port. If selected number exceeds number of
connected ports, then use last valid connected port. (Default: 1)

NOTE: This should always be set to 1 unless you have more than one video
output device connected. If so, use the logs to see how they are numbered.

Dark Mode

Prefer dark mode where supported if true (Default: true)

HA Sidebar

Presentation of left sidebar menu (device-specific).
Options include: (Default: None)

  • Full (icons + names)
  • Narrow (icons only)
  • None (hidden)

Rotate Display

Rotate the display relative to standard view.
Options include: (Default: Normal)

  • Normal (No rotation)
  • Left (Rotate 90 degrees clockwise)
  • Right (Rotate 90 degrees counter-clockwise)
  • Inverted (Rotate 180 degrees)

Map Touch Inputs

Map touch inputs to the selected video output, so that the touch devices
get rotated consistently with the video output. (Default: True)

Cursor Timeout

Time in seconds for cursor to be hidden after last mouse movement or touch.
Cursor will reappear when mouse moved or screen touched again. Set to 0
to always show cursor. Set to -1 to never show cursor. (Default: 5
seconds)

Keyboard Layout

Set the keyboard layout and language. (Default: us)

Onscreen Keyboard

Display an on-screen keyboard when keyboard input expected if set to
true. (Default: false)

To move, resize, or configure keyboard options, long press on the ...
within the Return key. You can also resize the keyboard by pressing and
dragging along the keyboard edges.

You can manually toggle keyboard visibility on/off by tapping extreme top
right of screen.

See GitHub - dr-ni/onboard: Onboard is an onscreen keyboard useful for everybody that cannot use a hardware keyboard; for example TabletPC users, mobility impaired users,... for more details

Save Onscreen Config

Save and restore changes to onscreen keyboard settings made during each
session if set to true. Overwrites default settings. (Default: true)

Xorg.conf

Append to or replace existing, default xorg.conf file.
Select ‘Append’ or 'Replace options.
To restore default, set to empty and select ‘Append’ option.

REST Port

Port used for the REST API. Must be between 1024 and 49151. (Default: 8080)

Note for security REST server only listens on localhost (127.0.0.1)

REST Bearer Token

Optional authorization token for REST API. (Default: “”) If set, then add
line Authorization: Bearer <REST_BEARER_TOKEN> to REST API calls.

Allow User Commands

Allow user to run arbitrary one or more commands in the HAOSkiosk container
via the respective REST APIs: run_command and run_commands (Default:
false)

Warning: Allowing this could allow the user to inject potentially dangerous
root-level commands

Debug

For debugging purposes, launches Xorg and openbox and then sleeps
without launching luakit.
Manually, launch luakit (e.g.,
luakit -U localhost:8123/<your-dashboard>) from Docker container.
E.g., sudo docker exec -it addon_haoskiosk bash

REST APIs

launch_url {“url”: “<url>”}

Launch the specified ‘url’ in the kiosk display. Overwrites current active
tab.

Usage:
curl -X POST http://localhost:<REST_PORT>/launch_url -H "Content-Type: application/json" -d '{"url": "<URL>"}'

refresh_browser

Refresh browser

Usage:

curl -X POST http://localhost:<REST_PORT>/refresh_browser

is_display_on

Returns boolean depending on whether display is on or off.

Usage:

curl -X GET http://localhost:8080/is_display_on

display_on {“timeout”: “<timeout>”}

Turn on display. If optional payload given, then set screen timeout to
<timeout> which if 0 means never turn off screen and if positive
integer then turn off screen after <timeout> seconds

Usage:

curl -X POST http://localhost:<REST_PORT>/display_on
curl -X POST http://localhost:8080/display_on -H "Content-Type: application/json" -d '{"timeout": <timeout>}

display_off

Turn off display

Usage:

curl -X POST http://localhost:<REST_PORT>/display_off

xset

Run xset <args> to get/set display information. In particular, use -q
to get display information.

Usage:

curl -X POST http://localhost:<REST_PORT>/xset -H "Content-Type: application/json" -d '{"args": "<arg-string>"}'

current_processes

Return number of currently running concurrent processes out of max allowed

Usage: curl -X GET http://localhost:8080/current_processes

run_command {“cmd”: “<command>”}

Run command in the HAOSKiosk Docker container where cmd_timeout is an
optional timeout in seconds.

Only allowed if Allow User Commands option is set to true.

Usage:

curl -X POST http://localhost:<REST_PORT>/run_command -H "Content-Type: application/json" -d '{"cmd": "<command>", "cmd_timeout": <seconds>}'

run_commands {“cmds”: [“<command1>”, “<command2>”,…], “cmd_timeout”: <seconds>}}

Run multiple commands in the HAOSKiosk Docker container where cmd_timeout
is an optional timeout in seconds.

Only allowed if Allow User Commands option is set to true.

Usage:

curl -X POST http://localhost:<REST_PORT>/run_commands -H "Content-Type: application/json" -d '{"cmds": ["<command1>", "<command2>",...], "cmd_timeout": <seconds>}'

NOTE: The API commands logs results to the HAOSkiosk log and return:

{
  "success": bool,
  "result": {
    "success": bool,
    "stdout": str,
    "stderr": str,
    "error": str (optional)
  }
}

Note that run_commands returns an array of "results" of form:
"results": [{"success": bool, "stdout": str, "stderr": str, "error": str (optional)},...]

You can format the stdout (and similarly stderr) by piping the output to:
jq -r .result.stdout

In the case of run_commands, pipe the output to:
jq -r '.results[]?.stdout'


You can also configure all the above REST commands in your
configuration.yaml as follows (assuming REST_PORT=8080)

rest_command:
  haoskiosk_launch_url:
    url: "http://localhost:8080/launch_url"
    method: POST
    content_type: "application/json"
    payload: '{"url": "{{ url }}"}'

  haoskiosk_refresh_browser:
    url: "http://localhost:8080/refresh_browser"
    method: POST
    content_type: "application/json"
    payload: "{}"

  haoskiosk_is_display_on:
    url: "http://localhost:8080/is_display_on"
    method: GET
    content_type: "application/json"

  haoskiosk_display_on:
    url: "http://localhost:8080/display_on"
    method: POST
    content_type: "application/json"
    payload: '{% if timeout is defined and timeout is number and timeout >= 0 %}{"timeout": {{ timeout | int }}}{% else %}{}{% endif %}'

  haoskiosk_display_off:
    url: "http://localhost:8080/display_off"
    method: POST
    content_type: "application/json"
    payload: "{}"

  haoskiosk_current_processes:
    url: "http://localhost:8080/current_processes"
    method: GET
    content_type: "application/json"

  haoskiosk_xset:
    url: "http://localhost:8080/xset"
    method: POST
    content_type: "application/json"
    payload: '{"args": "{{ args }}"}'

  haoskiosk_run_command:
    url: "http://localhost:8080/run_command"
    method: POST
    content_type: "application/json"
    payload: '{% if cmd_timeout is defined and cmd_timeout is number and cmd_timeout > 0 %}{"cmd": "{{ cmd }}", "cmd_timeout": {{ cmd_timeout | int }}}{% else %}{"cmd": "{{ cmd }}"}{% endif %}'

  haoskiosk_run_commands:
    url: "http://localhost:8080/run_commands"
    method: POST
    content_type: "application/json"
    payload: '{% if cmd_timeout is defined and cmd_timeout is number and cmd_timeout > 0 %}{"cmds": {{ cmds | tojson }}, "cmd_timeout": {{ cmd_timeout | int }}}{% else %}{"cmds": {{ cmds | tojson }}}{% endif %}'

Note if optional `REST_BEARER_TOKEN~ is set, then add the following two
authentication lines to each of the above stanzas:

    headers:
      Authorization: Bearer <REST_BEARER_TOKEN>

The rest commands can then be referenced from automation actions as:
rest_command.haoskiosk_<command-name>

For example:

actions:
  - action: rest_command.haoskiosk_launch_url
    data:
      url: "https://homeassistant.local/my_dashboard"

  - action: rest_command.haoskiosk_is_display_on

  - action: rest_command.haoskiosk_display_on
  - action: rest_command.haoskiosk_display_on
    data:
      timeout: 300

  - action: rest_command.haoskiosk_display_off

  - action: rest_command.haoskiosk_run_command
    data:
      cmd: "command"
      cmd_timeout: <seconds>

  - action: rest_command.haoskiosk_launch_url
    data:
      args: "<arg-string>"

  - action: rest_command.haoskiosk_current_processes

  - action: rest_command.haoskiosk_refresh_browser

  - action: rest_command.haoskiosk_run_commands
    data:
      cmds:
        - "<command1>"
        - "<command2>"
        ...
      cmd_timeout: <seconds>

REST API Use Cases

  1. Create automations and services to:

    • Turn on/off display based on time-of-day, proximity, event triggers,
      voice commands, etc.

      See ‘examples’ folder for trigger based on ultrasonic distance and HA
      boolean sensor.

    • Send dashboard or other url to HAOSKiosk display based on event
      triggers or pre-programmed rotation (e.g., to sequentially view
      different cameras).

  2. Use custom command(s) to change internal parameters of HAOSKiosk and the
    luakit browser configuration.

4 Likes

Awesome! I am not so technically inclined—does this allow you to expose the display on-off as a light/switch in HA? Or is there some integration for this functionality that accomplishes what I want via the Rest command thing? Not sure how this works

If you add the rest_command section to your configuration.yaml then you can use the associated actions in automations and scripts as per the example towards the end of the README. In particular you can use the actions (aka services): rest_command.haoskiosk_display_on and rest_command.haoskiosk_display_off

If you want them to show as an actual “switch” in HA you would probably need to create either a REST or a template sensor for the switch,
using either the REST API directly or the the REST COMMANDS, respectively.
Here are the two approaches (I haven’t tested the code so please test and let me know).

  1. Using REST API directly:
switch:
  - platform: rest
    name: "HAOS Kiosk Display"
    resource: http://localhost:8080/is_display_on
    method: GET
    is_on_template: "{{ value == 'true' }}"
    headers:
      Content-Type: application/json

    # Commands for turning on/off
    command_on:
      url: http://localhost:8080/display_on
      method: POST
      payload: '{}'
      headers:
        Content-Type: application/json

    command_off:
      url: http://localhost:8080/display_off
      method: POST
      payload: '{}'
      headers:
        Content-Type: application/json

    scan_interval: 10  # How often to check status

  1. Using REST COMMAND actions:
switch:
  - platform: template
    switches:
      display_on:
        friendly_name: "Turn Display On"
        turn_on:
          service: rest_command.haoskiosk_display_on
          data: {}
        turn_off:
          service: rest_command.haoskiosk_display_off
          data: {}

Note that the first platform: rest approach also shows the state of the display while the second platform: template approach just toggles on/off switch regardless of actual current state

1 Like

Just pushed v1.1.1 which automates card detection and in particular solves issues of card0 vs. card1 on RPi4/5.

Hi All!
I install Add-on and it not work:
This is log:

################################################################################
[21:21:11] INFO: ######## Starting HAOSKiosk ########
[21:21:11] INFO: Sun Oct 12 21:21:11 MSK 2025 [Version: 1.1.1]
[21:21:11] INFO: Linux 4c8b21d0-haoskiosk 6.12.34-haos-raspi #1 SMP PREEMPT Mon Sep  8 16:46:45 UTC 2025 aarch64 Linux
[21:21:12] INFO: Core=2025.10.2  HAOS=16.2  MACHINE=raspberrypi3-64  ARCH=aarch64
[21:21:12] INFO: HA_USERNAME=shpg
[21:21:12] INFO: HA_PASSWORD=XXXXXX
[21:21:13] INFO: HA_URL=http://localhost:8123
[21:21:13] WARNING: Config key 'ha_dashboard' unset, setting to default: ''
[21:21:13] INFO: HA_DASHBOARD=
[21:21:13] INFO: LOGIN_DELAY=1.0
[21:21:13] INFO: ZOOM_LEVEL=100
[21:21:13] INFO: BROWSER_REFRESH=600
[21:21:14] INFO: SCREEN_TIMEOUT=0
[21:21:14] INFO: OUTPUT_NUMBER=1
[21:21:14] INFO: DARK_MODE=true
[21:21:14] INFO: HA_SIDEBAR=none
[21:21:15] INFO: ROTATE_DISPLAY=normal
[21:21:15] INFO: MAP_TOUCH_INPUTS=true
[21:21:15] INFO: CURSOR_TIMEOUT=5
[21:21:15] INFO: KEYBOARD_LAYOUT=us
[21:21:15] INFO: ONSCREEN_KEYBOARD=false
[21:21:16] INFO: SAVE_ONSCREEN_CONFIG=true
[21:21:16] WARNING: Config key 'xorg_conf' unset, setting to default: ''
[21:21:16] INFO: XORG_CONF=
[21:21:16] INFO: XORG_APPEND_REPLACE=append
[21:21:16] INFO: REST_PORT=8080
[21:21:17] INFO: REST_BEARER_TOKEN=XXXXXX
[21:21:17] INFO: ALLOW_USER_COMMANDS=true
[21:21:17] WARNING: WARNING: 'allow_user_commands' set to 'true'
[21:21:17] INFO: DEBUG_MODE=true
[21:21:17] INFO: DBus started with: DBUS_SESSION_BUS_ADDRESS=unix:path=/tmp/dbus-riRyMCXc7C,guid=b470ab2bb3e3ed91ca0e37a168ebf19d
[21:21:17] INFO: Attempting to remount /dev as 'rw' so we can (temporarily) delete /dev/tty0...
[21:21:17] INFO: Deleted /dev/tty0 successfully...
[21:21:17] INFO: Starting 'udevd' and (re-)triggering...
starting version 3.2.14
/dev/input event devices:
  /dev/input/event0: /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.1/1-1.1.3/1-1.1.3:1.0/0003:04F3:0733.0001/input/input9/event0
  /dev/input/event1: /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.1/1-1.1.3/1-1.1.3:1.0/0003:04F3:0733.0001/input/input10/event1
  /dev/input/event2: /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.1/1-1.1.3/1-1.1.3:1.0/0003:04F3:0733.0001/input/input11/event2
  /dev/input/event3: /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.1/1-1.1.2/1-1.1.2:1.0/0003:062A:4101.0002/input/input4/event3
  /dev/input/event4: /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.1/1-1.1.2/1-1.1.2:1.1/0003:062A:4101.0003/input/input5/event4
  /dev/input/event5: /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.1/1-1.1.2/1-1.1.2:1.1/0003:062A:4101.0003/input/input6/event5
  /dev/input/event6: /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.1/1-1.1.2/1-1.1.2:1.1/0003:062A:4101.0003/input/input7/event6
  /dev/input/event7: /devices/platform/soc/3f980000.usb/usb1/1-1/1-1.1/1-1.1.2/1-1.1.2:1.1/0003:062A:4101.0003/input/input8/event7
libinput list-devices found:
  event0:                  ELAN Touchscreen
  event3:                  MOSART Semi. 2.4G Keyboard Mouse
  event4:                  MOSART Semi. 2.4G Keyboard Mouse
  event5:                  MOSART Semi. 2.4G Keyboard Mouse Consumer Control
  event6:                  MOSART Semi. 2.4G Keyboard Mouse System Control
[21:21:19] INFO: DRM video cards:
s6-rc: info: service legacy-services: stopping
s6-rc: info: service legacy-services successfully stopped
s6-rc: info: service legacy-cont-init: stopping
s6-rc: info: service legacy-cont-init successfully stopped
s6-rc: info: service fix-attrs: stopping
s6-rc: info: service fix-attrs successfully stopped
s6-rc: info: service s6rc-oneshot-runner: stopping
s6-rc: info: service s6rc-oneshot-runner successfully stopped

Can you help?

1 Like

HAOS for Raspberry Pi3 does not support DRM video…

1 Like

therefore, I cannot use it in any way HAOSKiosk Add-on om my RPi3?

1 Like

A Pi3 only has 1 Gb ram, barely enough to run HA itself, and you want to run a display server on top?

1 Like

raspbian OS +Xwin + HA (supervisor install) previously they worked not quickly, but tolerably well. This is test HA witch small objects count)))

1 Like

Actually, you may be able to get DRM video and hence also the HAOSKiosk add-on working by (manually) modifying the /boot/config/txt as suggested in Kisok not starting a Pi3b+ · Issue #44 · puterboy/HAOS-kiosk · GitHub

I don’t have a Pi3 available to test so I can’t confirm whether this will work but definitely worth a try…

Just set it up on my Surface Pro running HAOS. Works great. Thank you for your work! :slight_smile:

Well. Except for touch, but I didn’t expect that to work and don’t need it.

However, there’s one thing I was wondering. And I have no idea how difficult it is to implement, or if it’s at all possible, but I’m needing some sort of brightness control.
The Surface has a light sensor, and automatic brightness control works in Debian (tested a clean install).
Is this something I can set up myself? Or do you think it would be too difficult to implement?

Thanks in advance!

Also got it running on my Surface Book 2.
Great addition, but hoping the touch would also work.

Is this coming in the future? Because the surface is perfect for HAOS & dashboard​:crossed_fingers:t3::crossed_fingers:t3:

You can use the REST API - it’s documented in the README.
Also there is an example in the examples folder showing how to use the REST_ME to turn on/off the display based on presence detected by ultrasonic sensor.
It should be pretty simple to extend this to work with a brightness sensor if you figure out how to read it… Google/ChaGPT etc. are your friends

Touch is supported and stable in 1.1.1
If not working for you, please submit detailed bug report and logs

Hello,
I installed this add-on and it works great on my touch screen (connected to my RaspberryPi5) !
But I have an error trying to run curl commands (for example “curl -X POST http://192.168.1.190:8080/display_off” from my laptop, or “curl -X POST http://127.0.0.1:8080/display_off” directly in a terminal on my HA), I got everytime “curl: (7) Failed to connect to 192.168.1.190 port 8080 after 2075 ms: Could not connect to server”.
And other thing, I got “502 Bad Gateway” if I click on “Open Web UI” in the add-on page.

Does anyone had the same problem ?
My REST port is 8080 (I checked)

If you look at the README, you will see that for security it currently only listens on localhost (127.0.0.1).
I can consider adding an option in a future release that allows it to listen for requests outside localhost.
Please file this as an issue on the project github.

Thanks

1 Like

Thanks puterboy. But (like I said) I also tried directly from my Raspberry (and send command : curl -X POST http://127.0.0.1:8080/display_off). It should work no ?

If its not working, file an issue with full logs and description.

Thank you SO much for this add-on, it is exactly what I was looking for!!

Really thanks for all this!
few things. i am using 1 Surface Book 2. the touch input doesnt work.
dont know why. this is the log file:

################################################################################
[08:53:47] INFO: ######## Starting HAOSKiosk ########
[08:53:47] INFO: Mon Jan 12 08:53:47 CET 2026 [Version: 1.1.1]
[08:53:47] INFO: Linux 4c8b21d0-haoskiosk 6.12.51-haos #1 SMP PREEMPT_DYNAMIC Tue Nov  4 13:59:29 UTC 2025 x86_64 Linux
[08:53:47] INFO: Core=2025.12.5  HAOS=16.3  MACHINE=generic-x86-64  ARCH=amd64
[08:53:47] INFO: HA_USERNAME=keviinhh
[08:53:47] INFO: HA_PASSWORD=XXXXXX
[08:53:47] INFO: HA_URL=http://localhost:8123
[08:53:47] WARNING: Config key 'ha_dashboard' unset, setting to default: ''
[08:53:47] INFO: HA_DASHBOARD=
[08:53:47] INFO: LOGIN_DELAY=1.0
[08:53:47] INFO: ZOOM_LEVEL=180
[08:53:47] INFO: BROWSER_REFRESH=600
[08:53:47] INFO: SCREEN_TIMEOUT=0
[08:53:47] INFO: OUTPUT_NUMBER=1
[08:53:47] INFO: DARK_MODE=true
[08:53:47] INFO: HA_SIDEBAR=none
[08:53:47] INFO: ROTATE_DISPLAY=normal
[08:53:47] INFO: MAP_TOUCH_INPUTS=false
[08:53:47] INFO: CURSOR_TIMEOUT=5
[08:53:47] INFO: KEYBOARD_LAYOUT=us
[08:53:47] INFO: ONSCREEN_KEYBOARD=true
[08:53:47] INFO: SAVE_ONSCREEN_CONFIG=true
[08:53:47] WARNING: Config key 'xorg_conf' unset, setting to default: ''
[08:53:47] INFO: XORG_CONF=
[08:53:47] INFO: XORG_APPEND_REPLACE=append
[08:53:47] INFO: REST_PORT=8080
[08:53:47] WARNING: Config key 'rest_bearer_token' unset, setting to default: ''
[08:53:47] INFO: REST_BEARER_TOKEN=XXXXXX
[08:53:47] INFO: ALLOW_USER_COMMANDS=false
[08:53:48] INFO: DEBUG_MODE=false
[08:53:48] INFO: DBus started with: DBUS_SESSION_BUS_ADDRESS=unix:path=/tmp/dbus-3LzuLDV2vt,guid=90495221a62cf1b5ca9045ba6964a88c
[08:53:48] INFO: Attempting to remount /dev as 'rw' so we can (temporarily) delete /dev/tty0...
[08:53:48] INFO: Deleted /dev/tty0 successfully...
[08:53:48] INFO: Starting 'udevd' and (re-)triggering...
starting version 3.2.14
/dev/input event devices:
  /dev/input/event0: /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0D:00/input/input0/event0
  /dev/input/event1: /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/LNXVIDEO:00/input/input1/event1
  /dev/input/event2: /devices/pci0000:00/0000:00:1f.3/sound/card0/input2/event2
  /dev/input/event3: /devices/pci0000:00/0000:00:1f.3/sound/card0/input3/event3
  /dev/input/event4: /devices/pci0000:00/0000:00:1f.3/sound/card0/input4/event4
  /dev/input/event5: /devices/pci0000:00/0000:00:1f.3/sound/card0/input5/event5
  /dev/input/event6: /devices/pci0000:00/0000:00:1f.3/sound/card0/input6/event6
libinput list-devices found:
  event0:                  Lid Switch
  event1:                  Video Bus
[08:53:48] INFO: DRM video cards:
  /dev/dri/card0
[08:53:48] INFO: DRM video card driver and connection status:
   card0-DP-1               i915                disconnected
   card0-DP-2               i915                disconnected
   card0-HDMI-A-1           i915                disconnected
   card0-HDMI-A-2           i915                disconnected
  *card0-eDP-1              i915                connected
[08:53:48] INFO: No user 'xorg.conf' data provided, using default...
.
####################################xorg.conf###################################
################################################################################
# Add-on: HAOS Kiosk Display (haoskiosk)
# File: xorg.conf
# Version: 1.1.1
# Copyright Jeff Kosowsky
# Date: September 2025
#
# Minimal xorg.conf to work with OpenGL/DRI video and libinput mice & keyboards
#
################################################################################
Section "ServerLayout"
    Identifier		"DefaultLayout"
    Screen         	0  "Screen0" 0 0
EndSection
Section "Device"
    Identifier		"Card0"
    Driver      	"modesetting"
    Option      	"DRI" "3"
    Option     		"kmsdev" "/dev/dri/card0"
EndSection
Section "Monitor"
    Identifier		"Monitor0"
EndSection
Section "Screen"
    Identifier		"Screen0"
    Device     		"Card0"
    Monitor    		"Monitor0"
    DefaultDepth 	24
EndSection
# General libinput catchall for keyboards
Section "InputClass"
    Identifier		"libinput keyboard"
    MatchIsKeyboard 	"on"
    Driver 		"libinput"
EndSection
# General libinput catchall for mice and touchpads
Section "InputClass"
    Identifier		"libinput pointer"
    MatchIsPointer 	"on"
    Driver 		"libinput"
    Option 		"Tapping" "on"  # Enable tapping on touchpads and touchscreens
    Option 		"NaturalScrolling" "true"  # Optional: enable natural scrolling
EndSection
# General libinput catchall for touchscreens
Section "InputClass"
    Identifier		"libinput touchscreen"
    MatchIsTouchscreen	"on"
    Driver 		"libinput"
    Option 		"Tapping" "on"
    Option		"TappingDrag" "on"  # Enables tap-and-drag
EndSection
################################################################################
.
[08:53:48] INFO: Starting X on DISPLAY=:0...
X.Org X Server 1.21.1.19
X Protocol Version 11, Revision 0
Current Operating System: Linux 4c8b21d0-haoskiosk 6.12.51-haos #1 SMP PREEMPT_DYNAMIC Tue Nov  4 13:59:29 UTC 2025 x86_64
Kernel command line: BOOT_IMAGE=(hd0,gpt2)/bzImage root=PARTUUID=8d3d53e3-6d49-4c38-8349-aff6859e82fd rootwait zram.enabled=1 zram.num_devices=3 systemd.machine_id=90228eb11a3e48ccb72a51a3135db2d2 fsck.repair=yes console=tty0 rauc.slot=A
Current version of pixman: 0.46.4
	Before reporting problems, check http://wiki.x.org
	to make sure that you have the latest version.
Markers: (--) probed, (**) from config file, (==) default setting,
	(++) from command line, (!!) notice, (II) informational,
	(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file: "/var/log/Xorg.0.log", Time: Mon Jan 12 08:53:48 2026
(==) Using config file: "/etc/X11/xorg.conf"
(==) Using system config directory "/usr/share/X11/xorg.conf.d"
[08:53:49] INFO: Restored /dev/tty0 successfully...
[08:53:49] INFO: X server started successfully after 1 seconds...
xinput list:
  ⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
  ⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
  ⎣ Virtual core keyboard                   	id=3	[master keyboard (2)]
      ↳ Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
      ↳ Video Bus                               	id=6	[slave  keyboard (3)]
[08:53:50] INFO: Openbox window manager started successfully...
[08:53:50] INFO: Screen timeout disabled...
[08:53:50] INFO: All video outputs: Screen eDP-1 3240x2160 3200x1800 2880x1620 2560x1600 2560x1440 2048x1536 1920x1440 1856x1392 1792x1344 2048x1152 1920x1200 1920x1080 1600x1200 1680x1050 1400x1050 1600x900 1280x1024 1400x900 1280x960 1440x810 1368x768 1280x800 1280x720 1024x768 960x720 928x696 896x672 1024x576 960x600 960x540 800x600 840x525 864x486 700x525 800x450 640x512 700x450 640x480 720x405 684x384 640x400 640x360 512x384 512x288 480x270 400x300 432x243 320x240 360x202 320x180 DP-1 HDMI-1 DP-2 HDMI-2
[08:53:51] INFO: Connected video outputs: (Selected output marked with '*')
[08:53:51] INFO:   *[1] eDP-1
[08:53:51] INFO: Setting keyboard layout and language to: us
  rules:      evdev
  model:      pc105
  layout:     us
[08:53:51] INFO: Screen: Width=3240  Height=2160
[08:53:51] INFO: Restoring Onboard configuration from '/config/onboard-settings.dconf'
[08:53:51] INFO: Onboard keyboard initialized for: eDP-1 (3240x2160) [landscape]
  Appearance: Layout='/usr/share/onboard/layouts/Small.onboard'  Theme='/usr/share/onboard/themes/Blackboard.theme'  Color-Scheme='/usr/share/onboard/themes/Charcoal.colors'
  Behavior: Auto-Show=true  Tablet-Mode=false  Force-to-Top=true
  Geometry: Height=720  Width=2160  X-Offset=540  Y-Offset=1440
[08:53:51] INFO: Starting Onboard onscreen keyboard
[08:53:51] INFO: Starting HAOSKiosk REST server...
[08:53:51] INFO: Launching Luakit browser: http://localhost:8123/
[    0.246244] I [core/luah]: Loading rc: /etc/xdg/luakit/rc.lua
[    0.282208] I [lua/adblock]: found 0 filter lists
[    0.282289] I [lua/adblock]: subscriptions file '/root/.local/share/luakit/adblock/subscriptions' doesn't exist
[    0.305794] I [lua/styles]: found 0 user stylesheets
[    0.314637] I [lua/userconf]: USERNAME=keviinhh; URL=http://localhost:8123; DARK_MODE=true; SIDEBAR="always_hidden"; LOGIN_DELAY=1.0, ZOOM_LEVEL=180, BROWSER_REFRESH=600,  ONSCREEN_KEYBOARD=true
08:53:52.232 WARNING Config: mousetweaks GSettings schema not found, mousetweaks integration disabled.
[08:53:52] INFO: [rest_server.py] [main] Starting REST server on http://127.0.0.1:8080
[    0.735638] I [lua/webview]: Requested link: http://localhost:8123/ (text/html)
[    0.739188] W [glib]: (unknown): webkit_settings_set_enable_offline_web_application_cache is deprecated and does nothing.
[    0.826804] I [lua/userconf]: URI: http://localhost:8123/
[    0.826952] I [lua/userconf]: Hiding onscreen keyboard...
[    0.834593] I [lua/userconf]: Applying HA settings on dashboard http://localhost:8123/: sidebar=nil
[    0.834687] I [lua/userconf]: Injecting refresh interval: http://localhost:8123/
method return time=1768204433.105068 sender=:1.22 -> destination=:1.24 serial=5 reply_serial=2
http://localhost:8123/frontend_latest/app.fbbdf6702592824b.js:78:130905: CONSOLE JS ERROR Unhandled Promise Rejection: TypeError: Load failed
[    1.598945] I [lua/webview]: Requested link: http://localhost:8123/auth/authorize?response_type=code&redirect_uri=http%3A%2F%2Flocalhost%3A8123%2F%3Fauth_callback%3D1&client_id=http%3A%2F%2Flocalhost%3A8123%2F&state=eyJoYXNzVXJsIjoiaHR0cDovL2xvY2FsaG9zdDo4MTIzIiwiY2xpZW50SWQiOiJodHRwOi8vbG9jYWxob3N0OjgxMjMvIn0%3D (text/html)
[    1.607956] W [glib]: (unknown): webkit_settings_set_enable_offline_web_application_cache is deprecated and does nothing.
[    1.628743] I [lua/userconf]: URI: http://localhost:8123/auth/authorize?response_type=code&redirect_uri=http%3A%2F%2Flocalhost%3A8123%2F%3Fauth_callback%3D1&client_id=http%3A%2F%2Flocalhost%3A8123%2F&state=eyJoYXNzVXJsIjoiaHR0cDovL2xvY2FsaG9zdDo4MTIzIiwiY2xpZW50SWQiOiJodHRwOi8vbG9jYWxob3N0OjgxMjMvIn0%3D
[    1.628888] I [lua/userconf]: Hiding onscreen keyboard...
[    1.635212] I [lua/userconf]: Authorizing: http://localhost:8123/auth/authorize?response_type=code&redirect_uri=http%3A%2F%2Flocalhost%3A8123%2F%3Fauth_callback%3D1&client_id=http%3A%2F%2Flocalhost%3A8123%2F&state=eyJoYXNzVXJsIjoiaHR0cDovL2xvY2FsaG9zdDo4MTIzIiwiY2xpZW50SWQiOiJodHRwOi8vbG9jYWxob3N0OjgxMjMvIn0%3D
[    1.635871] I [lua/userconf]: Logging in: (username: keviinhh): http://localhost:8123/auth/authorize?response_type=code&redirect_uri=http%3A%2F%2Flocalhost%3A8123%2F%3Fauth_callback%3D1&client_id=http%3A%2F%2Flocalhost%3A8123%2F&state=eyJoYXNzVXJsIjoiaHR0cDovL2xvY2FsaG9zdDo4MTIzIiwiY2xpZW50SWQiOiJodHRwOi8vbG9jYWxob3N0OjgxMjMvIn0%3D
[    1.636101] I [lua/userconf]: Injecting refresh interval: http://localhost:8123/auth/authorize?response_type=code&redirect_uri=http%3A%2F%2Flocalhost%3A8123%2F%3Fauth_callback%3D1&client_id=http%3A%2F%2Flocalhost%3A8123%2F&state=eyJoYXNzVXJsIjoiaHR0cDovL2xvY2FsaG9zdDo4MTIzIiwiY2xpZW50SWQiOiJodHRwOi8vbG9jYWxob3N0OjgxMjMvIn0%3D
method return time=1768204433.275450 sender=:1.22 -> destination=:1.25 serial=6 reply_serial=2
[    4.266558] I [lua/webview]: Requested link: http://localhost:8123/?auth_callback=1&code=c63f7c2e7f5146e5a433a4caddeed344&state=eyJoYXNzVXJsIjoiaHR0cDovL2xvY2FsaG9zdDo4MTIzIiwiY2xpZW50SWQiOiJodHRwOi8vbG9jYWxob3N0OjgxMjMvIn0%3D&storeToken=true (text/html)
[    4.300895] W [glib]: (unknown): webkit_settings_set_enable_offline_web_application_cache is deprecated and does nothing.
[    4.328132] I [lua/userconf]: URI: http://localhost:8123/?auth_callback=1&code=c63f7c2e7f5146e5a433a4caddeed344&state=eyJoYXNzVXJsIjoiaHR0cDovL2xvY2FsaG9zdDo4MTIzIiwiY2xpZW50SWQiOiJodHRwOi8vbG9jYWxob3N0OjgxMjMvIn0%3D&storeToken=true
[    4.328346] I [lua/userconf]: Hiding onscreen keyboard...
[    4.339418] I [lua/userconf]: Injecting refresh interval: http://localhost:8123/?auth_callback=1&code=c63f7c2e7f5146e5a433a4caddeed344&state=eyJoYXNzVXJsIjoiaHR0cDovL2xvY2FsaG9zdDo4MTIzIiwiY2xpZW50SWQiOiJodHRwOi8vbG9jYWxob3N0OjgxMjMvIn0%3D&storeToken=true
method return time=1768204435.987869 sender=:1.22 -> destination=:1.26 serial=9 reply_serial=2
http://localhost:8123/frontend_latest/15362.f4b571023d153ab4.js:2:2577: CONSOLE WARN The Material theme is deprecated and will be removed in Vaadin 25.
CONSOLE JS ERROR Unhandled Promise Rejection: TypeError: Script http://localhost:8123/sw-modern.js load failed
http://localhost:8123/frontend_latest/app.fbbdf6702592824b.js:51:18653: CONSOLE ERROR Failure writing unhandled promise rejection to system log: TypeError: Importing a module script failed.
[   14.493679] I [lua/webview]: Requested link: http://localhost:8123/lovelace/0 (text/html)
[   14.506410] W [glib]: (unknown): webkit_settings_set_enable_offline_web_application_cache is deprecated and does nothing.
[   15.044809] I [lua/userconf]: URI: http://localhost:8123/lovelace/0
[   15.044928] I [lua/userconf]: Hiding onscreen keyboard...
[   15.050222] I [lua/userconf]: Injecting refresh interval: http://localhost:8123/lovelace/0
method return time=1768204446.689792 sender=:1.22 -> destination=:1.27 serial=10 reply_serial=2
http://localhost:8123/frontend_latest/15362.f4b571023d153ab4.js:2:2577: CONSOLE WARN The Material theme is deprecated and will be removed in Vaadin 25.

second. i use 2 elo pos pc with touch and they work very well with my parents.
thanks for that.

but there is the thing, when i create yaml cards, they are not supported.
i think its a browser issue, because when i open in chrome or firefox on different pc they just work…

Log file:

[21:14:30] INFO: e[32mAll video outputs: Screen eDP-1 1366x768 1280x720 1024x768 960x720 928x696 896x672 1024x576 960x600 960x540 800x600 840x525 864x486 700x525 800x450 640x512 700x450 640x480 720x405 684x384 640x400 640x360 512x384 512x288 480x270 400x300 432x243 320x240 360x202 320x180 DP-1 HDMI-1 DP-2e[0m
[21:14:30] INFO: e[32mConnected video outputs: (Selected output marked with '*')e[0m
[21:14:30] INFO: e[32m  *[1] eDP-1e[0m
[21:14:31] INFO: e[32mMapping: input device [10|Elo Touch WLIDS 15.6] -->  eDP-1 [SUCCESS]e[0m
[21:14:32] INFO: e[32mMapping: input device [11|Elo Touch WLIDS 15.6 Mouse] -->  eDP-1 [SUCCESS]e[0m
[21:14:33] INFO: e[32mSetting keyboard layout and language to: use[0m
  rules:      evdev
  model:      pc105
  layout:     us
[21:14:33] INFO: e[32mScreen: Width=1366  Height=768e[0m
[21:14:34] INFO: e[32mRestoring Onboard configuration from '/config/onboard-settings.dconf'e[0m
[21:14:34] INFO: e[32mOnboard keyboard initialized for: eDP-1 (1366x768) [landscape]
  Appearance: Layout='/usr/share/onboard/layouts/Small.onboard'  Theme='/usr/share/onboard/themes/Blackboard.theme'  Color-Scheme='/usr/share/onboard/themes/Charcoal.colors'
  Behavior: Auto-Show=true  Tablet-Mode=false  Force-to-Top=true
  Geometry: Height=203  Width=796  X-Offset=299  Y-Offset=564e[0m
[21:14:34] INFO: e[32mStarting Onboard onscreen keyboarde[0m
[21:14:34] INFO: e[32mStarting HAOSKiosk REST server...e[0m
[21:14:34] INFO: e[32mLaunching Luakit browser: http://localhost:8123/e[0m
[21:14:35] INFO: [rest_server.py] [main] Starting REST server on http://127.0.0.1:8080
[    0.292862] I [core/luah]: Loading rc: /etc/xdg/luakit/rc.lua
21:14:35.335 WARNING Config: mousetweaks GSettings schema not found, mousetweaks integration disabled.
[    0.325634] I [lua/adblock]: found 0 filter lists
[    0.325691] I [lua/adblock]: subscriptions file '/root/.local/share/luakit/adblock/subscriptions' doesn't exist
[    0.352064] I [lua/styles]: found 0 user stylesheets
[    0.381117] W [lua/userconf]: Invalid LOGIN_DELAY value: '0.0'; defaulting to 1
[    0.381187] I [lua/userconf]: USERNAME=keviinhh; URL=http://localhost:8123; DARK_MODE=true; SIDEBAR="always_hidden"; LOGIN_DELAY=1.0, ZOOM_LEVEL=100, BROWSER_REFRESH=0,  ONSCREEN_KEYBOARD=true
[    0.954385] I [lua/webview]: Requested link: http://localhost:8123/ (text/html)
[    0.962200] W [glib]: (unknown): webkit_settings_set_enable_offline_web_application_cache is deprecated and does nothing.
[    1.040696] I [lua/userconf]: URI: http://localhost:8123/
[    1.040757] I [lua/userconf]: Hiding onscreen keyboard...
[    1.046845] I [lua/userconf]: Applying HA settings on dashboard http://localhost:8123/: sidebar=nil
method return time=1768162476.086176 sender=:1.20 -> destination=:1.24 serial=5 reply_serial=2
http://localhost:8123/neerslag-card.js:100:5859: CONSOLE INFO %c NEERSLAG-CARD %c 2024.05.05.0 Color: white; font-weight: bold; background: red; 
http://localhost:8123/frontend_latest/app.bf823b7d8b2d264f.js:14:51683: CONSOLE JS ERROR Fetch API cannot load http://localhost:8123/static/locale-data/intl-numberformat/en.json due to access control checks.
[    1.326948] I [lua/webview]: Requested link: http://localhost:8123/auth/authorize?response_type=code&redirect_uri=http%3A%2F%2Flocalhost%3A8123%2F%3Fauth_callback%3D1&client_id=http%3A%2F%2Flocalhost%3A8123%2F&state=eyJoYXNzVXJsIjoiaHR0cDovL2xvY2FsaG9zdDo4MTIzIiwiY2xpZW50SWQiOiJodHRwOi8vbG9jYWxob3N0OjgxMjMvIn0%3D (text/html)
http://localhost:8123/frontend_latest/app.bf823b7d8b2d264f.js:78:121303: CONSOLE JS ERROR Unhandled Promise Rejection: TypeError: Load failed
[    1.333756] W [glib]: (unknown): webkit_settings_set_enable_offline_web_application_cache is deprecated and does nothing.
[    1.366574] I [lua/userconf]: URI: http://localhost:8123/auth/authorize?response_type=code&redirect_uri=http%3A%2F%2Flocalhost%3A8123%2F%3Fauth_callback%3D1&client_id=http%3A%2F%2Flocalhost%3A8123%2F&state=eyJoYXNzVXJsIjoiaHR0cDovL2xvY2FsaG9zdDo4MTIzIiwiY2xpZW50SWQiOiJodHRwOi8vbG9jYWxob3N0OjgxMjMvIn0%3D
[    1.366647] I [lua/userconf]: Hiding onscreen keyboard...
[    1.372875] I [lua/userconf]: Authorizing: http://localhost:8123/auth/authorize?response_type=code&redirect_uri=http%3A%2F%2Flocalhost%3A8123%2F%3Fauth_callback%3D1&client_id=http%3A%2F%2Flocalhost%3A8123%2F&state=eyJoYXNzVXJsIjoiaHR0cDovL2xvY2FsaG9zdDo4MTIzIiwiY2xpZW50SWQiOiJodHRwOi8vbG9jYWxob3N0OjgxMjMvIn0%3D
[    1.373223] I [lua/userconf]: Logging in: (username: keviinhh): http://localhost:8123/auth/authorize?response_type=code&redirect_uri=http%3A%2F%2Flocalhost%3A8123%2F%3Fauth_callback%3D1&client_id=http%3A%2F%2Flocalhost%3A8123%2F&state=eyJoYXNzVXJsIjoiaHR0cDovL2xvY2FsaG9zdDo4MTIzIiwiY2xpZW50SWQiOiJodHRwOi8vbG9jYWxob3N0OjgxMjMvIn0%3D
method return time=1768162476.412270 sender=:1.20 -> destination=:1.25 serial=6 reply_serial=2
[    2.790039] I [lua/webview]: Requested link: http://localhost:8123/?auth_callback=1&code=07dd0d44d419469f94b8025fb2a8daf6&state=eyJoYXNzVXJsIjoiaHR0cDovL2xvY2FsaG9zdDo4MTIzIiwiY2xpZW50SWQiOiJodHRwOi8vbG9jYWxob3N0OjgxMjMvIn0%3D&storeToken=true (text/html)
[    2.797534] W [glib]: (unknown): webkit_settings_set_enable_offline_web_application_cache is deprecated and does nothing.
[    2.801105] I [lua/userconf]: URI: http://localhost:8123/?auth_callback=1&code=07dd0d44d419469f94b8025fb2a8daf6&state=eyJoYXNzVXJsIjoiaHR0cDovL2xvY2FsaG9zdDo4MTIzIiwiY2xpZW50SWQiOiJodHRwOi8vbG9jYWxob3N0OjgxMjMvIn0%3D&storeToken=true
[    2.801640] I [lua/userconf]: Hiding onscreen keyboard...
method return time=1768162477.845961 sender=:1.20 -> destination=:1.26 serial=9 reply_serial=2
http://localhost:8123/neerslag-card.js:100:5859: CONSOLE INFO %c NEERSLAG-CARD %c 2024.05.05.0 Color: white; font-weight: bold; background: red; 
http://localhost:8123/hacsfiles/lovelace-navbar-card/navbar-card.js?hacstag=871106499130:4638:13: CONSOLE INFO %c navbar-card%cv1.3.0  background-color: #555;
      padding: 6px 8px;
      padding-right: 6px;
      color: #fff;
      font-weight: 800;
      font-family: 'Segoe UI', Roboto, system-ui, sans-serif;
      text-shadow: 0 1px 0 rgba(1, 1, 1, 0.3);
      border-radius: 16px 0 0 16px; background-color:rgb(0, 135, 197);
      padding: 6px 8px;
      padding-left: 6px;
      color: #fff;
      font-weight: 800;
      font-family: 'Segoe UI', Roboto, system-ui, sans-serif;
      text-shadow: 0 1px 0 rgba(1, 1, 1, 0.3);
      border-radius: 0 16px 16px 0;
http://localhost:8123/hacsfiles/lovelace-card-mod/card-mod.js?hacstag=190927524410:1:65345: CONSOLE INFO %cCARD-MOD 4.1.0 IS INSTALLED color: green; font-weight: bold
http://localhost:8123/hacsfiles/lovelace-card-mod/card-mod.js?hacstag=190927524410:1:93165: CONSOLE INFO You may not be getting optimal performance out of card-mod.
See https://github.com/thomasloven/lovelace-card-mod#performance-improvements
http://localhost:8123/hacsfiles/stack-in-card/stack-in-card.js?hacstag=248954055020:200:5686: CONSOLE INFO %c STACK-IN-CARD 
%c   Version 0.2.0    color: orange; font-weight: bold; background: black color: white; font-weight: bold; background: dimgray
http://localhost:8123/hacsfiles/button-card/button-card.js?hacstag=146194325701:50:65904: CONSOLE INFO %c BUTTON-CARD %c v7.0.1  color: orange; font-weight: bold; background: black color: white; font-weight: bold; background: dimgray
CONSOLE JS ERROR Unhandled Promise Rejection: TypeError: Script http://localhost:8123/sw-modern.js load failed
http://localhost:8123/frontend_latest/app.bf823b7d8b2d264f.js:51:18640: CONSOLE ERROR Failure writing unhandled promise rejection to system log: TypeError: Importing a module script failed.
[   10.198136] I [lua/webview]: Requested link: http://localhost:8123/lovelace/0 (text/html)
[   10.211507] W [glib]: (unknown): webkit_settings_set_enable_offline_web_application_cache is deprecated and does nothing.
http://localhost:8123/neerslag-card.js:100:5859: CONSOLE INFO %c NEERSLAG-CARD %c 2024.05.05.0 Color: white; font-weight: bold; background: red; 
[   10.453740] I [lua/userconf]: URI: http://localhost:8123/lovelace/0
[   10.453935] I [lua/userconf]: Hiding onscreen keyboard...
method return time=1768162485.503844 sender=:1.20 -> destination=:1.27 serial=10 reply_serial=2
http://localhost:8123/hacsfiles/lovelace-card-mod/card-mod.js?hacstag=190927524410:1:65345: CONSOLE INFO %cCARD-MOD 4.1.0 IS INSTALLED color: green; font-weight: bold
http://localhost:8123/hacsfiles/lovelace-card-mod/card-mod.js?hacstag=190927524410:1:93165: CONSOLE INFO You may not be getting optimal performance out of card-mod.
See https://github.com/thomasloven/lovelace-card-mod#performance-improvements
http://localhost:8123/hacsfiles/lovelace-navbar-card/navbar-card.js?hacstag=871106499130:4638:13: CONSOLE INFO %c navbar-card%cv1.3.0  background-color: #555;
      padding: 6px 8px;
      padding-right: 6px;
      color: #fff;
      font-weight: 800;
      font-family: 'Segoe UI', Roboto, system-ui, sans-serif;
      text-shadow: 0 1px 0 rgba(1, 1, 1, 0.3);
      border-radius: 16px 0 0 16px; background-color:rgb(0, 135, 197);
      padding: 6px 8px;
      padding-left: 6px;
      color: #fff;
      font-weight: 800;
      font-family: 'Segoe UI', Roboto, system-ui, sans-serif;
      text-shadow: 0 1px 0 rgba(1, 1, 1, 0.3);
      border-radius: 0 16px 16px 0;
http://localhost:8123/hacsfiles/stack-in-card/stack-in-card.js?hacstag=248954055020:200:5686: CONSOLE INFO %c STACK-IN-CARD 
%c   Version 0.2.0    color: orange; font-weight: bold; background: black color: white; font-weight: bold; background: dimgray
http://localhost:8123/hacsfiles/button-card/button-card.js?hacstag=146194325701:50:65904: CONSOLE INFO %c BUTTON-CARD %c v7.0.1  color: orange; font-weight: bold; background: black color: white; font-weight: bold; background: dimgray
http://localhost:8123/frontend_latest/52248.d9dc7964e01662f6.js:1:2599: CONSOLE JS ERROR Unhandled Promise Rejection: TypeError: undefined is not an object (evaluating 'this._config.entities')
http://localhost:8123/frontend_latest/app.bf823b7d8b2d264f.js:78:48285: CONSOLE JS ERROR Unhandled Promise Rejection: TypeError: undefined is not an object (evaluating 'this._config.entities')

could u look into that ?