Fully Kiosk Browser Custom Component

Just adding my thanks here, integration works great.

Having the display brightness and control as a light entity is really handy.

Thank you. I am not able to get the reboot device to reboot the Fire hd8. Does the reboot device work for others on a FireHD 8?
The error I seem to be getting is

websocket_api script: Error executing script. Unexpected error for call_service at pos 1: ('Error', 'Missing device owner or root rights to reboot the device')

Reboot requires root access to the device. If you’re running FireOS on the tablets you would need to look and see if there is a root available for that (some devices were rootable but Amazon keeps them pretty locked down). I got lucky with my 8" Fire tablets and found a root that let me flash them with LineageOS which gives me root access and got rid of all the Amazon bloat.

Just installed - great integration - was wondering if there is an entity for motion on the tablet, to essentially use it as a motion sensor ?

No entity for motion detection currently, as we have to poll the Fully remote admin API (so motion events could get missed or be up to 30 seconds delayed). Fully can publish motion status to MQTT though, and you could use an MQTT sensor for that.

Release 1.0.0 :tada: just got published. Some refactoring to make it easier to maintain, and new number and button entities.

2 Likes

Nice work with this component.

Since updating I was seeing this error in the logs when opening the auto generated lovelace dashboard.

2022-01-04 10:53:00 ERROR (MainThread) [frontend.js.latest.202112290] https://homeassistant.url.com/frontend_latest/3ac4c648.js:1:351 Uncaught RangeError: Value need to be finite number for Intl.RelativeTimeFormat.prototype.format()

Long story short I tracked it down to this component, specifically the “Last App Start” sensor which was Showing “invalid timestamp” as below on my fire tablets.

disabling this entity has stopped the errors.

it seems that the 3 fire tablets I’m using are creating this key in 12 hour clock (even though the time is set to 24hour in settings) and the one that is not a fire tablet is outputting 24 hour.

fire tablet

non fire tablet

the US date format is causing issues too

let me know if you want me to help with any more investigation

2 Likes

Hi Charles,

I am trying to get this set up with the configuration below but I get unexpected error when I enter my IP and remote password (port 2323). I have copied the log below my config.I have tried 3 separate installations from HACs and got the same result. I can connect remotely through any remote device with the same IP and password via a url so connection is there. Any advice gratefully received.
Thanks,

Johnny

Configuration:
VM HASS
Home Assistant OS core-2022.7.0b2
Home Assistant OS 8.2
Fully Kiosk Browser 1.48
Fully Kiosk Browser integration for Home Assistant 1.1.0
Logs:

This error originated from a custom integration.

Logger: custom_components.fullykiosk.config_flow
Source: custom_components/fullykiosk/config_flow.py:49
Integration: Fully Kiosk Browser (documentation, issues)
First occurred: 19:13:48 (1 occurrences)
Last logged: 19:13:48

Unexpected exception
Traceback (most recent call last):
  File "/config/custom_components/fullykiosk/config_flow.py", line 50, in validate_input
    deviceInfo = await fully.getDeviceInfo()
  File "/usr/local/lib/python3.10/site-packages/fullykiosk/__init__.py", line 30, in getDeviceInfo
    result = await self.sendCommand("deviceInfo")
  File "/usr/local/lib/python3.10/site-packages/fullykiosk/__init__.py", line 22, in sendCommand
    data = await self._rh.get(
  File "/usr/local/lib/python3.10/site-packages/fullykiosk/__init__.py", line 139, in get
    async with self.session.get(
  File "/usr/local/lib/python3.10/site-packages/aiohttp/client.py", line 1138, in __aenter__
    self._resp = await self._coro
  File "/usr/local/lib/python3.10/site-packages/aiohttp/client.py", line 535, in _request
    conn = await self._connector.connect(
  File "/usr/local/lib/python3.10/site-packages/aiohttp/connector.py", line 542, in connect
    proto = await self._create_connection(req, traces, timeout)
  File "/usr/local/lib/python3.10/site-packages/aiohttp/connector.py", line 907, in _create_connection
    _, proto = await self._create_direct_connection(req, traces, timeout)
  File "/usr/local/lib/python3.10/site-packages/aiohttp/connector.py", line 1175, in _create_direct_connection
    transp, proto = await self._wrap_create_connection(
  File "/usr/local/lib/python3.10/site-packages/aiohttp/connector.py", line 986, in _wrap_create_connection
    return await self._loop.create_connection(*args, **kwargs)  # type: ignore[return-value]  # noqa
  File "/usr/local/lib/python3.10/asyncio/base_events.py", line 1049, in create_connection
    sock = await self._connect_sock(
  File "/usr/local/lib/python3.10/asyncio/base_events.py", line 960, in _connect_sock
    await self.sock_connect(sock, address)
  File "/usr/local/lib/python3.10/asyncio/selector_events.py", line 500, in sock_connect
    return await fut
asyncio.exceptions.CancelledError

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/config/custom_components/fullykiosk/config_flow.py", line 80, in async_step_user
    info = await validate_input(self.hass, user_input)
  File "/config/custom_components/fullykiosk/config_flow.py", line 49, in validate_input
    with timeout(15):
  File "/usr/local/lib/python3.10/site-packages/async_timeout/__init__.py", line 116, in __exit__
    self._do_exit(exc_type)
  File "/usr/local/lib/python3.10/site-packages/async_timeout/__init__.py", line 212, in _do_exit
    raise asyncio.TimeoutError
asyncio.exceptions.TimeoutError

What a great integration! Thank you!

I know this might sound trivial, but I have Fully Kiosk configured to turn off the screen after 30 seconds. However, when the doorbell rings I would like to override or loop some sort of “keep awake” command to keep the screen on for 2 minutes. I can’t find a way to do it with the integration? Is it possible? Am I missing something?

I take a different approach; Home Assistant tells fullykiosk when the screen should turn off based on a single automation that is triggered by a motion sensor in the area turning off, or if the screen has been on for a certain amount of time.

Meanwhile I have a number of triggers to turn the screen on, such as motion in the hallway, alarm state change, the heating system kicking in, etc

- alias: 'Dim Panel'
  id: dim_panel
  trigger:
  - platform: state
    entity_id: binary_sensor.downstairs_hallway_motion_sensor
    to: 'off'
    for:
      minutes: 2
  - platform: state
    entity_id: binary_sensor.downstairs_hallway_motion_sensor
    to: 'off'
    for:
      minutes: 10
  - platform: state     
    entity_id: light.hallway_panel
    to: 'on'
    for:
      minutes: 15
  action:
  - entity_id: light.hallway_panel
    service: homeassistant.turn_off
  condition:                           
    condition: state
    entity_id: light.hallway_panel
    state: 'on'

You could still have a setting in fully kiosk to turn off the screen after say 1 hour, just in case the home assistant automations fail.

@cgarwood, does this integration support talking to Fully remote admin over HTTPS? Provided that HTTPS has been enabled on Fully, obviously.

Hi All,

Im getting this error since the 2022.11 updates:

This error originated from a custom integration.

Logger: custom_components.fullykiosk.coordinator
Source: helpers/update_coordinator.py:182
Integration: Fully Kiosk Browser (documentation, issues)
First occurred: 08:53:51 (81 occurrences)
Last logged: 10:41:05

Error fetching 192.168.100.135 deviceInfo data: Cannot connect to host 192.168.100.135:2323 ssl:default [Connect call failed ('192.168.100.135', 2323)]

I dont really understand the error regarding the “ssl:default” part. Is there a config that Im missing maybe?

Thanx for any advice.

1 Like

I have the same problem and still no clue …

I resolved my issue…when I looked on my router I noticed that the tablet had changed its IP! I just added the integration again using the new IP and then deleted the original and all working ok again now. I also set a static IP for the tablet on my router…

1 Like

If you ask me FIRST mandatory thing to do is to set static IP to all devices (tablets, PC’s, phones, esphome’s….) you use inside HA…. Nothing but problems if you don’t…

3 Likes

I’m trying to load a url using the integration, getting

File "/usr/src/homeassistant/homeassistant/components/fully_kiosk/services.py", line 30, in async_load_url
    coordinator = hass.data[DOMAIN][list(device.config_entries)[0]]
KeyError: '0bd611c97b6d51c9da49dff9c42a4d6b'

both using an automation and from the developer service tab. I have no idea what this key is or where it’s coming from.

I’m using the Fully Kiosk Browser Custom Component on four different Amazon Fire tablets. On three of the four, I can turn the screen on and off from HA, but on the fourth, that option is grayed out (see pic below). I can access the remote administration webpage from the local IP address of the Fully Kiosk instance and turn the screen on and off just fine from Fully’s remote control. I have tried rebooting the tablet and readding the Fully device. Nothing seems to make that screen entity available. Any thoughts?

Any reason why you guys are using the custom component and not the built-in integration?

The official integration was built off of this custom one. There’s one feature left in the custom component that hasn’t made its way tot he official integration, the set_config service. Once that’s added I’m planning to archive the custom component.

Would you explain what this service do? In github page is not mentioned…