Fully Kiosk Browser

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; */
background-image:
url(http://<ipcam1_stream_url>),
url(http://<ipcam2_stream_url>),
url(http://<ipcam3_stream_url>),
url(http://<ipcam4_stream_url>),
url(http://<ipcam5_stream_url>),
url(http://<ipcam6_stream_url>),
url(http://<ipcam7_stream_url>),
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.

2 Likes

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)

rest_command:
  mi5splus_screen_on:
    url: !secret mi5splus_screen_on
    method: POST
  mi5splus_screen_off:
    url: !secret mi5splus_screen_off
    method: POST
  mi5splus_screen_state:
    url: !secret mi5splus_screen_state
    method: GET
switch:
  - platform: command_line
    switches:
      mi5splus_screen:
        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: http://192.168.1.50:2323/?cmd=deviceInfo&type=json&password=xxx  # FULLY KIOSK
mi5splus_screen_on: 'http://192.168.1.50:2323/?cmd=screenOn&type=json&password=xxx'
mi5splus_screen_off: 'http://192.168.1.50:2323/?cmd=screenOff&type=json&password=xxx'
mi5splus_screen_state: 'http://192.168.1.50:2323/?password=xxx |grep "Screen status" |grep "on\|off" |sed "s/<[^>]*>//g" |sed "s/Screen status//g" |sed "s/Turn on//g" |sed "s/Turn off//g"'

http://192.168.1.50:2323/?password=xxx |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!!!)

http://192.168.1.50:2323/?cmd=screenOn&type=json&password=xx

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
  switches:
    doorbelldashbedroom:
      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

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

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  
  switches:
    dashrestartlanding:
      command_on: /usr/bin/curl -k "http://KisokIP:2323/?cmd=restartApp&password=KisokPassword"
      friendly_name: Restart Landing Dashboard App
3 Likes

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

rest_command:
  mi5splus_screen_on:
    url: 'http://192.168.1.50:2323/?cmd=screenOn&type=json&password=xxx'
    method: post
  mi5splus_screen_off:
    url: 'http://192.168.1.50:2323/?cmd=screenOff&type=json&password=xxx'
    method: post

switch:
  - platform: command_line
    switches:
      mi5splus_screen:
        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

http://192.168.1.50:2323/?cmd=screenOn&type=json&password=xxx

I do it this way and it works -

- platform: command_line
  switches:
    diningdashwakeup:
      command_on: /usr/bin/curl -k "http://KioskIP:2323/?cmd=screenOn&password=KioskPassword"
      command_off: /usr/bin/curl -k "http://KioskIP:2323/?cmd=screenOff&password=KisokPassword"
      friendly_name: Front Door Dashboard On
2 Likes

I am with HASSIO, I don’t think I can use /usr/bin/curl

I am running HASSIO and it works for me

well HASSIO in a Docker within Ubuntu Server

Try running this:

curl http://192.168.1.50:2323/?password=xxx |grep “Screen status” |grep “on|off” |sed “s/<[^>]*>//g” |sed “s/Screen status//g” |sed “s/Turn on//g” |sed “s/Turn off//g”

On the command line… If you can, post any output.