My take on a home dashboard running on the Lenovo ThinkSmart View and managing multiple devices running Fully Kiosk

First up - thank you very much @pgale for creating these instructions, you encouraged me to sign up for a forum account and make a small contribution. I am going to cover my learnings over the last few days…

The speaker on this device is suprisingly good - I have been streaming music most of today.

The Windows instructions worked fine for me on an old Windows 10 laptop with USB3 ports. The only step I found confusing was the “ADB Sideload” I misinterpreted it and accidentally did a second factory reset.

The new version of WebView can be installed by Googling if from the Browser and clicking the link to the App Store. I also couldn’t find it in the App Store as you mentioned.

The camera seems to work well for waking up the screen using “Motion Detection (PLUS)” in Fully Kiosk Browser. I am still testing it though.

The “Fully Single App Kiosk” with the HA app does not have anywhere near the amount of options and settings as “Fully Kiosk Browser” and I ran into similar issues with it to what I mention below when enabling “Kiosk Mode (PLUS)” in “Fully Kiosk Browser”. Waste of time but a good learning experience.

I tried using “Kiosk Mode (PLUS)” in “Fully Kiosk Browser” and using the Android HA App instead of WebView - Initially I thought it was better but I ran into some inconsistent behaviour and performance issues. Note that I am running the Roon client in the background and playing music through it with controls on the TSV. Roon would crash occasioanlly and the volume controls would stop working.

I have to use the HA servers IP address in the URL as homeassistant.local won’t resolve because the device does not seem to allow using a private DNS server. I get a DNS error when trying to connect the Fully Kiosk Browser integration in HA after enabling “Remote Administration (PLUS)” in the Fully Kiosk Browser app: “OSError(‘DNS server returned answer with no data’)”. I am yet to find a resolution to this.

I have gained more screen realestate by splitting the time and date into two columns. Code is below:
Screenshot 2024-06-24 202651

type: custom:layout-card
layout_type: custom:grid-layout
layout_options:
  grid-template-columns: 40% 60%
  grid-template-rows: auto
  grid-template-areas: |
    “left right”
cards:
  - type: custom:digital-clock
    dateFormat: ' '
    timeFormat:
      hour: 2-digit
      minute: 2-digit
      second: 2-digit
    card_mod:
      style: |
        ha-card {
          font-size: 11px;
          border: 0 !important;
          border-width: 0px !important;
          background: none;
          margin-top: -1.5em;
          margin-bottom: -1.5em;
        }
  - type: custom:digital-clock
    dateFormat:
      weekday: long
      day: 2-digit
      month: long
    timeFormat: ' '
    card_mod:
      style: |
        ha-card {
          font-size: 20px;
          border: 0 !important;
          background: none;
          margin-top: -0.9em;
          margin-bottom: -1.5em;
        }
1 Like

Welcome to the forum :slight_smile:

I’ve been using Music Assistant and snapcast clients in the devices. Works well and seems reliable so far.

DNS - I’m using pihole with its local DNS along with nginx with a let’s encrypt wildcard certificate. That all works ok to enable FQDN entries rather than IP addresses. Maybe something else astray with your setup?

I tried the HA app in the early days but now default to Fully Kiosk Browser as that does give more options and I’ve had success for quite a while with it. Not sure if the HA app exposes and other nice data/sensors though.

I’ve been running motion detect on one device I’ve setup as a bedside table device. As you say, it works well and reliably so far. I also have FKB detect darkness to turn the screen off in complete darkness and an Android auto brightness app that allows you to specify custom brightness curves plus a super dark option. The backlight when the screen is on but the overlay set to near black, is still a little bright. Hence allowing FKB to turn the screen off. It works well but the only issue still to solve is the tap screen to wake obviously doesn’t work so how to turn the screen on when you want it in the middle of the night. FKB turns it off again straight away. Might need to have HA intervene and turn that setting off for a short while. Not sure how I’d trigger it though.

I’ve created a reasonably complex alarm clock automation which is working well - set time, alarm sound, snooze and cancel etc. complete with popups. A few bugs need ironing out but works nicely through the snapcast clients. I found using the FKB media_player to be very unreliable so don’t use that now. I’m actually using snapcast through Music Assistant which gives extra options such as TTS pre-announce and volume setting.

1 Like

I’ve been using the companion app so far, trying to figure out if the switch to FKB makes sense. A few questions:

  1. What are the main advantages of FKB over the app?
  2. How are you handling notifications without the app?

Also, why did you choose snapcast rather than squeezlite? The latter seems simpler, doesn’t it?

There are a whole load of functions exposed by the use of FKB and the HA FKB Integration. This is a screenshot of just some of them but doesn’t include the service calls you can also make.

FKB also exposes a media_player for each device it’s running on but it’s a little limited, hence running snapcast on each too.

I don’t use notifications on the TSV but use custom popups and cards for anything I want to notify. FOr example, I have several conditional cards that popup when the water softener salt level is nearly out, something has been posted through the door or left in my smart parcel box etc, etc. I’ve not tried notifications in the sense of smartphone notifications that the app allows.

You can actually still run the HA companion app and Fully Kiosk Single App version. Doesn’t have quite as many features and options but crucially still allows kiosk mode so no one can close, mess with or navigate away from the dashboard. It’s great at locking down the device (if desired).

FKB is paid for though for the advanced functions. It’s not very expensive and I bought a 10 device volume licence for £63.57 (my charge after the Euro conversion). I think that’s great value given that it gives me a set of kiosk management tools.

Your last point - I never tried squeezelite and went for snapcast as Music Assistant natively has a snapcast server built-in. The app is super simple on each device and works reliably. I don’t think there’s an easier way as it’s such a simple app.

Using FKB, this is a quick demo of my management panel. You obviously can’t see the devices reacting. I can restart the browsers, reload the URL, hide/unhide side bar and headers dynamically and all that other stuff. I also have a nightly restart and reload.

Managemen-demo

1 Like

Are you able to reboot the TSV with Fully? I am not.

When I say restart, I mean restart the browser.

I used to be able to restart the device but I can’t remember if that’s on the old 8.1 ROM - possibly. The restart on Lineage gives a root rights error. I have root permissions etc set in FKB. Maybe it’s a OS issue.

Cool, will give it a try.

As for squeezlite, Music Assistant supports that natively as well, and it’s supposedly easier and less error-prone.

1 Like

I’ll have a look at that too :slight_smile:

Can you point me in the direction of the squeezelite player for Android?

Maybe this?

(not based on experience, just a search result that seems highly rated)

ah, so any squeeze player will work? As there seem to be several.

Yes. It has lots of names (squeeze, slim, logitech media server).

OK will see if I can find a free one to test

1 Like

There’s also this, which is cheaper:

1 Like

So I thought you were running one on your TSV? Is that not the case?

Not currently using music assistant at all, was just wondering why snap over squeeze, which, reading the docs, sounds like a better option.
If you’re not experiencing any problems with snap, I wouldn’t switch.

You can see the comparison here:

I saw your post before you removed it - I presume you’re working OK now?

1 Like

Yeah, it was the USB3 port issue, even though my cable was only USB2.
Annoyingly I didn’t have the issue with mattmon’s image, but did with the Lineage method.
Problem was solved by using the USB-C port and slowing/dumbing down the port with a USB-C to A converter. :slight_smile:
Thanks for checking up though. Got it working nicely now!

2 Likes