Fully Kiosk Browser

I am running mine on 5.1, one some Chinese 8 inch tablets around the house.

Does a good job displaying HADashboard, and the Alarm Panel in the HA UI.


Hi You can send TTS messages to Fully Kisok via the rest API’s.

I send commands for some of the tablets to say when the back door has been left open for 5 mins, then the alarm is set to Home Mode and Disarmed.

I also use the rest commands to show the front door camera, then the doorbell rings in HADashboard on all the tablets so you can who is at the door from the rooms with the tablet in.

Also do a nightly restart of Fully Kisok via the rest interface from HA, its quite powerful

1 Like

Could you share an example of sending TTS messages to Fully Kisok via the rest API’s.

Hi here is one of my TTS to say when the Alarm is disarmed, I simply use automation to turn this switch on when the arm is disarmed.

- platform: command_line        
      command_on: /usr/bin/curl -k "http://TabletIP:2323/?cmd=textToSpeech&text=The+House+Alarm+Has+Been+Disarmed&password=FullyOpenKisokPassword"
      friendly_name: Dining Room Dashboard Nofify Alarm Disarmed Open
1 Like

Tips on tablet model and apps, can you share your solution, thanks

I’m in the same boat working on an android kiosk. Actually, you can stream IP cam in Floorplan live, not just snapshot, through background-image. Quite simple really, comment out the background-color and just add some background lines to floorplan.css:

svg, svg * {
vector-effect: non-scaling-stroke !important;
pointer-events: all !important;
/* background-color: #e3e2db; */
linear-gradient(to right, rgba(30, 75, 115, 1), rgba(255, 255, 255, 0));
background-size: 25% 33.4%, 25% 33.4%, 25% 33.4%, 25% 33.4%, 25% 33.4%, 25% 33.4%, 25% 33.4%, 100% 100%;
background-repeat: no-repeat, no-repeat, no-repeat, no-repeat, no-repeat, no-repeat, no-repeat, no-repeat;
background-position: top left, center left, bottom left, top center, top right, center right, bottom right, top center;
background-attachment: fixed;

linear-gradient just add the background color back with effects and you can customize the position and size of each stream ipcam.
The streaming works on my Android IP Webcam but not Amcrest cam though so YMMV.


So about Tablet Models I don’t have a unique model I work with, depends on what can I reuse from famly :slight_smile: in the kitchen I have a Samsung Galaxy Tab3 on the wall. In my office I have a Woxter 7’’ Tablet and in my room I have a kindle.

About Apps, I mainly work with 3 apps.

  • IP Cam - To stream the tablet’s cam to HASS
  • Yatse - To manage kodi devices
  • Squeezer - To manage the Squeezebox speakers.

solutions like this will really help me to unify the tablet requirements and secure them to avoid curiosity to break things :stuck_out_tongue:

let me know if you want more details.

Thanks @JTPublic, I’ll have to play with that.

Nice think I have a play on my days off

How did you enable kiosk mode in the kindle fire? I tried and it keeps telling me to make it the default home app but not seeing anywhere to change that

Hey @3vasi0n check this out for kiosk mode: http://www.ozerov.de/fully-kiosk-browser/#kioskmode

can you share how

in HASSIO, anyone knows how to send curl post commands?

I use this below, but have 2 problems. 1. the switch is not working, and 2 the state I don’t know how to input the command with all the ’ " (it recognizes up to the password not the rest)

    url: !secret mi5splus_screen_on
    method: POST
    url: !secret mi5splus_screen_off
    method: POST
    url: !secret mi5splus_screen_state
    method: GET
  - platform: command_line
        command_on: switch.mi5splus_screen_on
        command_off: switch.mi5splus_screen_off
        command_state: switch.mi5splus_screen_state
        value_template: '{{ value == "on" }}'
        friendly_name: Mi5splus Screen

in secret

############## FULLY KIOSK
mi5splus_rest:  # FULLY KIOSK
mi5splus_screen_on: ''
mi5splus_screen_off: ''
mi5splus_screen_state: ' |grep "Screen status" |grep "on\|off" |sed "s/<[^>]*>//g" |sed "s/Screen status//g" |sed "s/Turn on//g" |sed "s/Turn off//g"' |grep “Screen status” |grep “on|off” |sed “s/<[^>]*>//g” |sed “s/Screen status//g” |sed “s/Turn on//g” |sed “s/Turn off//g”

basically this command shows in browser the fully kiosk server, and it asks for a passsword (although the password is correct)

can you explain what this is? And if possible how to put it in a rest_command

Also I am not sure how the grep command work, and how to put it in rest_command

This command in a browser works well, so it works (pretty cool!!!)

I like the idea of a nightly restart of the Kiosk. I have to look into how to do this…

Its quite simple, but I have basically created a page within HADashboard that takes the live camera feed and shows it on a page, after 30 secs reverts back to the main page of my dashboards.

An automation is kicked off then the doorbell is pressed to then kick off a script shown below.

Example of the Switch Config -

- platform: command_line
      command_on: /usr/bin/curl -k "http://KisokIP:2323/?cmd=loadURL&url=http://HADashboardIP:5050/Doorbell&password=KisokPassword"
      command_off: /usr/bin/curl -k "http://KioskIP:2323/?cmd=loadURL&url=http://HADashboardIP:5050/Home&password=KisokPassword"
      friendly_name: Doobell Display Bedroom

Example of the Script

    alias: Show Bedroom Camera When Doorbell Rings Bedroom
      - service: homeassistant.turn_on
          - switch.bedroomdashwakeup
          - switch.doorbelldashbedroom
      - delay:
#### Show for 30 then go back to Main menu
          seconds: 30
      - service: homeassistant.turn_off
          entity_id: switch.doorbelldashbedroom

I have an automation that turns on this switch at 5:30 each day, and then 30 secs later turns it off, I could use a toggle thinking about it.

- platform: command_line  
      command_on: /usr/bin/curl -k "http://KisokIP:2323/?cmd=restartApp&password=KisokPassword"
      friendly_name: Restart Landing Dashboard App

anyone knows why I receive this error?

2018-02-07 17:32:56 ERROR (SyncWorker_8) [homeassistant.components.switch.command_line] Command failed: rest_command.mi5splus_screen_on

    url: ''
    method: post
    url: ''
    method: post

  - platform: command_line
        command_on: rest_command.mi5splus_screen_on
        command_off: rest_command.mi5splus_screen_off
        friendly_name: Mi5splus Screen

If I put this in a browser it works perfectly