Developers
Developer Documentation
Build custom integrations and extend HomeFlowHub functionality with our APIs.
Open Development
HomeFlowHub is designed to be extensible. All APIs use standard protocols and formats.
IFTTT Webhook Integration
Webhook Configuration
Configure IFTTT webhooks to trigger applets from HomeFlowHub
Each button can be configured to send a webhook request to IFTTT. The webhook URL format is:
https://maker.ifttt.com/trigger/{event}/with/key/{your_key}Request Format
HomeFlowHub sends a POST request with JSON payload:
{
"value1": "button_name",
"value2": "optional_value",
"value3": "optional_value"
}Example: Kitchen Timer
Trigger a 20-minute kitchen timer and activate cooking scene:
{
"event": "kitchen_action",
"value1": "timer",
"value2": "20",
"value3": "cooking_scene"
}Your IFTTT applet can parse these values to start a timer and trigger the appropriate scene.
Security & Token Storage
Encrypted Storage
All sensitive tokens are encrypted using ESP32 Secure NVS
- • AES-256 encryption for all stored credentials
- • Hardware-backed encryption keys
- • Tokens never transmitted in plain text
- • Secure erase on factory reset
Best Practices
- • Use HTTPS for all webhook endpoints
- • Rotate IFTTT keys periodically
- • Limit webhook permissions to necessary actions
- • Monitor webhook activity for anomalies
API Examples
Hue Scene Activation
Activate a Philips Hue scene via local bridge:
PUT /api/{username}/groups/{group_id}/action
{
"scene": "bedroom_relax"
}Light Control
Control individual lights or groups:
PUT /api/{username}/lights/{light_id}/state
{
"on": true,
"bri": 200,
"ct": 350,
"transitiontime": 10
}Response Handling
HomeFlowHub provides visual feedback based on API responses:
// Success response
{
"success": {
"/lights/1/state/on": true
}
}
// Error response
{
"error": {
"type": 3,
"address": "/lights/1/state/on",
"description": "resource not available"
}
}Device Configuration
Settings Structure
Configuration is stored in encrypted NVS partitions
{
"wifi": {
"ssid": "encrypted",
"password": "encrypted"
},
"hue": {
"bridge_ip": "192.168.1.100",
"username": "encrypted"
},
"ifttt": {
"webhooks": [
{
"name": "Kitchen Timer",
"event": "kitchen_action",
"key": "encrypted"
}
]
},
"power": {
"dim_timeout": 30,
"sleep_timeout": 120,
"brightness": 200
}
}