Skip to main content

Fully Kiosk Browser integration for Gladys Assistant

Fully Kiosk Browser integration for Gladys Assistant

Discover Fully Kiosk tablets over MQTT or by IP, and control them through their local HTTP API.

Discover your Fully Kiosk Browser Android tablets from the status reports they already publish over MQTT (IP address, battery, current page, kiosk mode...), then control them - screen on/off, kiosk lock, load a URL, text-to-speech, restart, reboot... - through their local HTTP REST API.

How it works

  • Discovery: MQTT, or manual add by IP. Fully Kiosk can periodically publish a JSON "deviceInfo" report to an MQTT broker (Settings > Other Settings > MQTT Settings, in the Fully Kiosk app) - but that MQTT feature requires a Fully Kiosk PLUS license, it isn't in the free edition. This integration connects to the configured broker and subscribes to everything under a topic prefix (fully/# by default): any JSON message that looks like a deviceInfo report (it carries a device identifier) is picked up, and the tablet appears in Gladys. Without a PLUS license, use the Add a tablet by IP action instead: it queries the tablet's REST API directly (which is free) to add it, no MQTT involved.
  • Control: local HTTP. Every command (screen on/off, load URL, restart app...) is sent straight to the tablet's own REST API (http://<tablet-ip>:2323/?cmd=...), which Fully Kiosk protects with a password set per tablet (Settings > Other Settings > Remote Administration > Remote Admin Password). Register that password once the tablet has been added to Gladys, using the Set a tablet's REST API password action - no need to type its IP, pick it from the dropdown.

MQTT broker: dedicated or existing

Only relevant if you use MQTT discovery, which requires a Fully Kiosk PLUS license (see above). The MQTT broker configuration field offers three modes:

  • Run a dedicated broker (recommended): this integration starts and manages its own Mosquitto broker (a sub-container), with an automatically generated username and password - nothing else to install. Use the Show managed broker credentials action (in the Configuration tab) to get the address, username, password and Device Info Topic to enter in each tablet's MQTT settings.
  • Connect to an existing broker: if you already run an MQTT server (Mosquitto, EMQX...), fill in its host/port/credentials in the fields provided.
  • Disable MQTT: if you only add tablets via the Add a tablet by IP action, this mode stops (or never starts) the Mosquitto sub-container and never attempts an MQTT connection - no point running a broker you don't use.

Configuration

With a Fully Kiosk PLUS license (MQTT discovery)

  1. Pick a broker mode (above). With the dedicated mode, save the configuration once first so the broker starts and its credentials get generated, then fetch them with the Show managed broker credentials action.
  2. In each tablet's Fully Kiosk app, enable MQTT (Settings > Other Settings > MQTT Settings) and point it at the broker address/credentials from step 1 - the exact topic you set there does not matter as long as it starts with the prefix configured here (fully by default).
  3. In each tablet's Fully Kiosk app, also enable Remote Administration (Settings > Other Settings > Remote Administration) and note the Remote Admin Password you set - Fully Kiosk's REST API needs it for every command.
  4. Save, then run Refresh the tablet list (or open the Discovery tab) once a tablet has sent its first MQTT report, and add it to Gladys.
  5. Run the Set a tablet's REST API password action, pick the tablet from the dropdown (only already-added tablets show up there), and enter its Remote Admin Password (and a custom REST port, if it isn't the default 2323). Repeat for each tablet.

Without a PLUS license (add by IP)

  1. Set MQTT broker to Disable MQTT (unless you plan to also add other, PLUS-licensed tablets later).
  2. In each tablet's Fully Kiosk app, enable Remote Administration (Settings > Other Settings > Remote Administration) and note its Remote Admin Password and IP address.
  3. Run the Add a tablet by IP action, enter the IP address, the password (and a custom REST port, if it isn't the default 2323). The tablet is added immediately and its password saved in the same step - no need for MQTT or for the "Set a tablet's REST API password" action. Repeat for each tablet.

This path doesn't depend on any MQTT broker: neither the MQTT broker configuration nor the topic prefix affect tablets added this way.

Why an action instead of a config field

Gladys external integrations only expose one flat, integration-wide configuration form - there is no built-in per-device settings screen. A manifest action can declare its own mini-form, though, including a dropdown pre-populated with the integration's already-created devices - the Set a tablet's REST API password action uses exactly that, so no one has to type or copy an IP address by hand. The password is stored keyed by the tablet's stable Gladys device id, not its IP, so it survives the tablet's next DHCP lease change unlike an IP-keyed list would.

For the same reason, there's also no conditional config field that would only appear for one of the two discovery modes (MQTT or IP): Gladys' configuration form is a flat list, with no "only show this field if..." logic. That's why adding a tablet by IP is its own action too, rather than an extra field in the main configuration form.

Available actions per tablet

FeatureEffect
ScreenTurn the tablet's screen on/off
Kiosk lockEnable/disable Fully Kiosk's lockdown (kiosk) mode
ScreensaverStart/stop the screensaver
Current pageRead-only: the URL/app currently in the foreground
Load URLWrite a URL to load it immediately
Text to speechWrite text to have the tablet speak it
Restart appRestart the Fully Kiosk app
Reload start URLReload the configured start URL
Reboot deviceReboot the whole tablet (requires Device Owner/root on Android)
Clear cacheClear the browser cache
Exit appExit the Fully Kiosk app
Battery / ChargingRead-only, when reported by the tablet

Limitations

  • Local network only: no cloud account, nothing works if the tablet or (in MQTT mode) the MQTT broker is unreachable.
  • MQTT reporting is a Fully Kiosk PLUS-licensed feature - not in the free edition. Without PLUS, use the Add a tablet by IP action instead: it only relies on Fully Kiosk's REST API, available in the free edition.
  • The "Set a tablet's REST API password" and "Add a tablet by IP" actions show the password in clear while you type it - Gladys does not mask secret-type fields inside an action's own form (only in the main Configuration form), so this integration uses a plain field there instead of a broken masked one. The value is still stored securely server-side and never displayed again afterwards.
  • Managed broker mode publishes the broker's port on your Gladys server's LAN - anyone on that network who has the generated credentials can connect to it. Fine for a home LAN, worth knowing on a shared/untrusted network.
  • The managed broker's password file has to be world-readable (Gladys runs every sub-container with all Linux capabilities dropped, so this integration cannot chown it to the broker's own user) - Mosquitto 2.0.18 only warns about this; a future Mosquitto version may refuse to start under that condition, which would need this integration's pinned Mosquitto image tag to be revisited.
  • No live push for commands' effect: the dashboard reflects a tablet's real state only after its next scheduled MQTT report (or a manual poll).
  • Fully Kiosk's exact MQTT/REST field names have drifted across app versions and are not formally versioned; if a field (e.g. current page) never populates, check the raw payload (logged at debug level, LOG_LEVEL=debug) against your Fully Kiosk version.
  • A tablet added right after its MQTT connection may show fewer features than expected in the Discovery tab (no Battery/Charging, no Technical parameters section) if its very first report didn't carry that information yet (Wi-Fi/battery not reported yet). Unlike should_poll, this isn't frozen at creation time: just run Refresh the tablet list again once a fuller report has come in - no need to delete and re-add the device.
  • "Reboot device" and some settings commands require the tablet to be a Device Owner (or rooted) - otherwise Fully Kiosk rejects the command, independently of this integration.

Configuration settings

These are the settings Fully Kiosk Browser asks for in its configuration screen in Gladys.

SettingTypeRequiredDescription
Fully Kiosk Browser, over MQTT + local HTTPsectionNoThis integration discovers your Fully Kiosk Browser tablets from MQTT status messages, then controls them through their local REST API. MQTT reporting requires a Fully Kiosk PLUS license - on the free edition, use the "Add a tablet by IP" action instead, no MQTT needed. Fully Kiosk's REST API (used to control tablets either way) is protected by a password set per tablet (Fully Kiosk settings > Remote Administration).
MQTT brokerselectNoOnly relevant if you use MQTT discovery (requires a Fully Kiosk PLUS license). If you only add tablets via the "Add a tablet by IP" action, pick "Disable MQTT" - no broker is started or contacted. "Run a dedicated broker": this integration starts and manages its own Mosquitto broker - nothing else to install, generated credentials shown by the "Show managed broker credentials" action below. "Connect to an existing broker": use the MQTT server you already run, with the fields further down.
MQTT broker host (external mode only)stringNo
MQTT broker port (external mode only)numberNo
Use TLS (mqtts://) (external mode only)booleanNo
MQTT username (external mode only)stringNo
MQTT password (external mode only)secretNo
MQTT topic prefixstringNoThis integration subscribes to "<prefix>/#" and reads any JSON message that looks like a Fully Kiosk deviceInfo report. Must match the "MQTT Report Topic" root configured in each tablet's Fully Kiosk settings.
Tablets serve their REST API over HTTPSbooleanNo

How to install Fully Kiosk Browser in Gladys

  1. In Gladys, open Integrations: Fully Kiosk Browser appears in the catalog, next to the native integrations, with a community badge.
  2. Click Install. Gladys pulls the Docker image (ghcr.io/vincentbesseau/gladys-fullykiosk:1.0.0), starts it in a sandbox isolated from the core, and generates the integration's interface (devices, discovery and configuration).
  3. Open the Configuration screen of the integration, fill in the settings, and save.
  4. You can also install it directly from its repository URL: https://github.com/vincentBesseau/gladys-fullykiosk.

Fully Kiosk Browser requires Gladys >=4.86.0. The catalog inside Gladys refreshes every hour, so a new version becomes available at most one hour after its release.

Not running Gladys yet? It is free and open source: follow the installation guide to get started.

About external integrations

Fully Kiosk Browser is an external integration: a community integration packaged as a Docker container and published on GitHub, that Gladys installs in one click and runs in a sandbox isolated from its core. It is published and maintained by vincentBesseau, not by the Gladys core team.

Subscribe to the Gladys Assistant newsletter

A few emails per month about new releases and project news. Sent by Pierre-Gilles Leymarie, founder of the project. Unsubscribe anytime 🙂