-
Notifications
You must be signed in to change notification settings - Fork 30
INTEGRATIONS
github-actions[bot] edited this page Mar 30, 2026
·
1 revision
Connect FreeKiosk to your automation stack
Important
REST API and MQTT can run simultaneously on the same device.
FreeKiosk offers two main integration methods:
| Channel | Best For | Documentation |
|---|---|---|
| REST API | On-demand control via HTTP | REST API Docs |
| MQTT | Real-time telemetry + Home Assistant | MQTT Docs |
| Feature | REST API | MQTT |
|---|---|---|
| Control Method | Request/response | Push commands |
| Telemetry | Polling | Real-time |
| HA Discovery | Manual | Auto |
| Availability | HTTP status | LWT |
| Security | API key | Username/password |
HTTP-based control for on-demand device management.
- 40+ Endpoints - Complete device control
- Device Status - Real-time sensor data
- Navigation Control - URL and app switching
- Media Capture - Screenshot & camera access
- API Security - Optional API key authentication
- Home Assistant HTTP integration
- Mobile app control
- Shell scripts (curl/wget)
- Web dashboards (JavaScript)
# Get device status
curl -H "X-Api-Key: your-key" http://tablet-ip:8080/api/status
# Navigate to new URL
curl -X POST -H "X-Api-Key: your-key" \
-H "Content-Type: application/json" \
-d '{"url":"https://new-dashboard.com"}' \
http://tablet-ip:8080/api/url
# Take screenshot
curl -H "X-Api-Key: your-key" http://tablet-ip:8080/api/screenshot -o screenshot.pngTip
See the complete REST API Reference for all endpoints.
Real-time telemetry and Home Assistant auto-discovery.
- MQTT Protocol - v5 / v3.1.1 support
- HA Discovery - Auto-configuration in Home Assistant
- Availability - LWT (Last Will Testament) status
- Telemetry - Real-time sensor publishing
- Remote Control - Command subscription topics
- Home Assistant integration (auto-discovery)
- Continuous monitoring
- Event-based automation
- Multi-device management
Home Assistant configuration:
mqtt:
broker: your-broker-ip
port: 1883
discovery: true
discovery_prefix: homeassistantTopic structure:
freekiosk/lobby/availability # Device online/offline
freekiosk/lobby/state # All sensor data (JSON)
freekiosk/lobby/set/brightness # Set brightness command
freekiosk/lobby/set/url # Navigate to URL
Tip
See the complete MQTT Reference for topics and commands.
Configure integrations via ADB for mass deployment.
REST API:
-
rest_api_enabled- Enable REST API ("true") -
rest_api_port- API port ("8080") -
rest_api_key- API authentication key
MQTT:
-
mqtt_enabled- Enable MQTT ("true") -
mqtt_broker_url- Broker IP/hostname -
mqtt_port- Broker port ("1883") -
mqtt_username- MQTT username -
mqtt_password- MQTT password -
mqtt_discovery_prefix- HA discovery prefix ("homeassistant")
REST API only:
adb shell am start -n com.freekiosk/.MainActivity \
--es rest_api_enabled "true" \
--es rest_api_port "8080" \
--es rest_api_key "my-secret-key" \
--es pin "1234"MQTT only:
adb shell am start -n com.freekiosk/.MainActivity \
--es mqtt_enabled "true" \
--es mqtt_broker_url "192.168.1.100" \
--es mqtt_username "homeassistant" \
--es mqtt_password "mqtt-password" \
--es pin "1234"Both together:
adb shell am start -n com.freekiosk/.MainActivity \
--es rest_api_enabled "true" \
--es rest_api_port "8080" \
--es rest_api_key "my-secret-key" \
--es mqtt_enabled "true" \
--es mqtt_broker_url "192.168.1.100" \
--es mqtt_username "homeassistant" \
--es mqtt_password "mqtt-password" \
--es pin "1234"Note
See the complete ADB Configuration Guide for all parameters.
| Use Case | Recommended | Why |
|---|---|---|
| Home Assistant | MQTT | Auto-discovery + real-time |
| Mobile App | REST API | Simple HTTP requests |
| Monitoring | REST API | Polling for status |
| Event Automation | MQTT | Push-based notifications |
| Web Integration | REST API | JavaScript friendly |
| Multi-Device Fleet | MQTT | Central broker |
| Scripts | REST API | Easy curl commands |
| Real-time Control | Both | Best of both worlds |
Use both for maximum flexibility:
- MQTT - Continuous telemetry and HA discovery
- REST API - On-demand commands and media capture
- ADB - Initial provisioning and bulk configuration
- REST API: Complete endpoint reference
- MQTT: Topics, discovery, and commands
- ADB Configuration: Headless provisioning
- Installation: Device setup guide
- FAQ: Common questions