In this guide, I’ll show you how to add your Kindle Fire to Home Assistant using Fully-Kiosk browser. I’m then using the Wallpanel integration to set a screensaver slideshow, and am using an external motion detector to turn off the screensaver when someone walks up to the tablet.

This setup works really well (much better than trying to use the Kindle’s built-in camera) and I highly recommend anyone who uses a Fire tablet to do the same!

Once it’s all setup, your setup will look like this:

Let’s get started!


Fully-Kiosk is an application you can install on your Kindle Fire (fireOS) tablet. It allows you to remotely control your Kindle Fire from a web browser or Home Assistant, set a screensaver, or black out the screen. You can also use it to enable “Kiosk-Mode”, which can disable touch, buttons, and more with a PIN code.

Although Fully-Kiosk supports motion detection from the Kindle Fire camera to turn off the screensaver, during my testing the motion detection has been pretty unreliable – especially at night or in dark rooms. So, I am only using Fully-Kiosk for the remote administration capability, to set the “Start URL” (The URL that launches automatically your tablet restarts), and for the Home Assistant integration.

I then use Wallpanel to configure the slideshow and have placed an Aeotec Motion Sensor near the tablet. Whenever I walk up to the tablet, motion is detected by the external sensor, and it turns off the Wallpanel screensaver.

Don’t worry – I’m including all of the settings I use in Fully-Kiosk and Wallpanel below, so if you follow this guide exactly, you too can a tablet that turns the screen on or off when motion is detected.

Step 1: Install Fully-Kiosk on Kindle Fire

There’s a lot of great guides out there showing you how to install the .apk file onto your Kindle Fire, so I won’t be going over that here. I followed along with this video.

Fully-Kiosk is only $8 as a one-time cost per device.

Step 2: Enable Remote Administration

After you purchase and activate your license, the first thing you should do is enable Remote Administration (Launch Fully-Kiosk on the tablet > swipe from the left > Settings > Remote Administration.)

  • Toggle ON “Enable Remote Administration” and then set a password.
  • Toggle ON “Remote Admin from local network”. This will allow you to manage the Fully-Kiosk settings from your web browser instead of the tablet. An IP address on that screen will show you how to access the remote administration webpage.

3. Launch Remote Administration from web browser

Next, go to the URL from the “Remote Admin from Local Network” from your computer. For me, that is

Type the password you created for Fully-Kiosk:

Step 4: Configure Settings

Next, you’ll want to configure some of the settings. I kept almost everything default except for what I changed below.

Web Content Settings

  • Start URL: Set this to a Home Assistant View that you want to load everytime your Fire tablet restarts or Fully-Kiosk is launched (i.e. –
  • Username & Password is recommended

Web Browsing Settings

  • Enable Pull to Refresh: Toggle ON

Advanced Web Settings

  • If “Keep Screen On while in Fullscreen Mode”” is ON, toggle OFF

Tools & Appearance

  • Everything is toggled off


  • Screensaver Timer: Set to 0 (This disables Fully-Kiosks’ screensaver. Remember: We are using Wallpanel to manage the screensaver.) The rest of the values and options here should be disabled or left default.

Device Management

  • Keep Screen On: Toggle ON
  • Keep Screen On (Advanced): Toggle ON
  • Screen Orientation: Horizontal
  • Screen Off Timer: 0
  • Launch on Boot: Toggle ON

Power Settings

  • Toggle off everything

Kiosk Mode

Some of the options can or should be enabled after you initially set everything up. For example, you probably don’t want to lock the tablet or set a kiosk PIN during this initial setup or you’ll constantly be entering the pin.

  • Enable Kiosk Mode: Toggle OFF

Motion Detection

  • All settings should be toggled OFF (Since we aren’t using motion detection from the fire tablet camera)

Device Motion Detection

  • Toggle OFF everything

Export/Import Settings

Once all the settings changes have been made, it’s a good idea to export them as a backup. If you ever make changes that cause unexpected behavior, you can always restore your settings.

Step 5: Install Wallpanel Integration from HACS

Launch Home Assistant, then click HACS from your sidebar. Search for the “Wallpanel” integration and install it.

Once installed, reboot Home Assistant from Settings > System > Restart. Once HA comes back up, navigate to one of your dashboards.

Click the 3 dots in top right corner > Edit > Raw Configuration Editor. Paste the YAML at the TOP just below your resources. (If you place it at the bottom, it won’t load.)

There are a LOT of options you can configure, but I’ve bolded the important ones below.

  • enabled_on_tabs: Sets the screensaver for a specific Home Assistant “View” dashboard
  • idle_time: 0
    • This disables the screensaver from starting automatically on it’s own.
    • We’ll be controlling when to turn it on/off from an Automation instead (Step 6-8)
  • screensaver_stop_navigation_path: Change this to the “View” name of the dashboard you want to display. When the screensaver turns off, it’ll load this page.
  • screensaver_entity: I called mine input_boolean.firescreensaver. In the next step, we’ll be creating that entity. This allows us to toggle on/off the screensaver, which will later be used in an automation.

The rest of the settings can be left at default for now.

Note: If you don’t want an animated card showing the weather in front of the image, remove everything in red. If do want to include the weather card, install Lovelace animated weather card from HACS and replace the weather.my_ecobee with your own weather entity.

  enabled: true
    - firetablet
  debug: false
  hide_toolbar: true
  hide_sidebar: true
  fullscreen: false
  idle_time: 0
  keep_screen_on_time: 86400
  black_screen_after_time: 7200
  control_reactivation_time: 1
  screensaver_stop_navigation_path: /lovelace/firetablet
  image_fit: cover
  image_list_update_interval: 3600
  image_order: sorted
  image_excludes: []
  show_exif_info: false
  fetch_address_data: true
  exif_info_template: >-
    ${|!prefix=!suffix= //
  screensaver_entity: input_boolean.firescreensaver
  info_animation_duration_x: 30
  info_animation_duration_y: 11
  info_animation_timing_function_x: ease-in-out
  info_animation_timing_function_y: ease-in-out
  info_move_pattern: random
  info_move_interval: 0
  info_move_fade_duration: 2
    - type: vertical-stack
        - type: custom:weather-card
          details: true
          forecast: true
          hourly_forecast: false
          name: Weather
          entity: weather.my_ecobee
          current: true
Raw Configuration Editor screen

Step 6: Create Toggle Screensaver entity

Like I mentioned earlier, we set the idle_time to 0. So at this point, the screensaver will never start on it’s own.

But because we set the screensaver_entity: to input_boolean.firescreensaver in the Wallpanel config, we can instead use that to toggle the screensaver on or off.

We just need to create that screensaver entity now.

Settings > Devices & Services > Helpers tab.

Create Helper > Toggle > Name it “firescreensaver

As you can see, creating that helper now gives us the entity input_boolean.firescreensaver which matches the wallpanel config name. If you name your helper something different, make sure to update the Wallpanel config from Step 5.

Step 7: Add Motion Detector to Home Assistant

Since we aren’t the Fire tablet’s camera, you’ll need an external motion sensor. I’m using an Aeotec SmartThings Motion Sensor.

Add that to Home Assistant like normal. Once added, you should see a few of the entities like this. Notice the two state names – Clear and Detected. This is what we’re going to use in the automation that turns on or off the screensaver.

Step 8: Create Automation to toggle ON/OFF screensaver when motion is detected

For this motion sensor, it takes about 20 seconds for the state to change from Detected to Clear. So if I set the seconds: value to 5, it will actually turn the screensaver on after 25 seconds (20 for state change + 5)

This automation basically states:

  • If Kitchen Motion detector detects motion, then toggle off the firescreensaver entity (turns off the screensaver)
  • If Kitchen Motion detector stops detecting motion after 25 seconds, then toggle on the firescreensaver (starts screensaver)

Note: Although the states are “clear” and “detected”, Home Assistant changes these to ON and OFF when you save the automation. Just something to be aware of.

Settings > Automations. Create a new automation > Edit in YAML > Paste the code below.

  • Blue: Binary sensor name for your external motion detector
  • Green: Time until screensaver starts
  • Purple: This is the name of the helper we created in Step 6
alias: If motion detected, turn off wallboard screensaver
description: ""
  - platform: state
      - binary_sensor.kitchen_motion
    from: "off"
    to: "on"
    id: motion-detected
  - platform: state
      - binary_sensor.kitchen_motion
    from: "on"
    to: "off"
      hours: 0
      minutes: 0
      seconds: 5
    id: motion-cleared
condition: []
  - choose:
      - conditions:
          - condition: trigger
            id: motion-detected
          - service: input_boolean.turn_off
            data: {}
              entity_id: input_boolean.firescreensaver
      - conditions:
          - condition: trigger
            id: motion-cleared
          - service: input_boolean.turn_on
            data: {}
              entity_id: input_boolean.firescreensaver
mode: single

That’s it! Your tablet should perform exactly as my demo video at the top of this tutorial does.

Wrapping Up

Hopefully you found this guide useful and simple enough to follow! I spent a lot of time tinkering with this setup. I first tried using Fully-Kiosk’s “motion detection” setting, but it didn’t always trigger. I also tried settings idle_time to 30 in the Wallpanel config so the screensaver would automatically start, but then it wouldn’t always turn off when motion was detected. For the automation, I first tried using “If motion detector starts detecting motion” and “if motion detector stops using motion, but it also didn’t always trigger. So that’s why I’m using State change for the trigger which always work.

Good luck! If you run into any issues or you got it working by following my guide, let others know in the comments!

My Favorite Home Assistant Devices

Below are some of the Home Assistant-compatible devices I personally use in my home. I highly recommend each of them.

The full list of all Home Assistant compatible & recommended devices I use can be found on my Equipment List page.

Similar Posts


  1. Hi Danny. Thanks for the article. You mentioned that using a motion sensor to turn on kiosk mode is much better than using the table’s camera. But I didn’t see the reasons for this anywhere in the article. Can you explain the benefits?

    I currently am using the built in camera for activating the screen. It seems to work well, but I do wish there was a way of deactivating it while watching a movie. When the room is dark, I think the light changing from the TV causes the tablet to constantly turn on/off. I was googling to see if there was a way to control Fully Kiosk settings from within Home Assistant, so I could make some sort of input booleon button to enable/disable Fully Kiosks motion detection when needed.


    1. Hey David,
      I mentioned it briefly in the Overview section. If the built-in camera works for you, then by all means continue to use it! I had a lot of trouble getting the display to wake when I walked up to it with the Fire camera so that’s primarily why I used an external camera.

      When you integrate Fully Kiosk in HA, it does create a switch to toggle motion detection on/off (switch.fire_tablet_motion_detection), so you could just use that.

      1. Appreciate the reply. I didn’t realize HA had a native integration for Fully Kiosk. I’ll give it go. Thanks!

Leave a Reply

Your email address will not be published. Required fields are marked *