Homebridge SynTex Webhooks
A simple plugin to control and to create HTTP devices.
This plugin is made to cooperate with Homebridge: https://github.com/nfarina/homebridge
It stores accessory data you can request to display the content on your website / app.
Core Features
- Device Control: Create virtual accessory for your Homebridge.
- HTTP Access: Update and read device states via HTTP calls.
- Automation: We integrated our powerful automation API for fast and complex automation.
Troubleshooting
Report
us your Issues
Join
our Discord Server
Installation
- Install homebridge using:
sudo npm install -g homebridge
- Install this plugin using:
sudo npm install -g homebridge-syntex-webhooks
- Update your
config.json
file. See snippet below. - Restart the Homebridge Service with:
sudo systemctl restart homebridge; sudo journalctl -fau homebridge
Example Config
Info: If the baseDirectory
for the storage can't be created you have to do it by yourself and give it full write permissions!
sudo mkdir -p /var/homebridge/SynTex/
( create the directory )sudo chown -R homebridge /var/homebridge/SynTex/
( permissions only for homebridge )sudo chmod 777 -R homebridge /var/homebridge/SynTex/
( permissions for many processes )
"platforms": [
{
"platform": "SynTexWebHooks",
"baseDirectory": "/var/homebridge/SynTex",
"options": {
"port": 1710,
"language": "us"
},
"log": {
"debug": false
},
"accessories": [
{
"id": "sensor1",
"name": "Contact",
"services": [
{ "type": "contact" }
]
},
{
"id": "EC:FA:BC:59:3F:3C",
"name": "Climate",
"services": [
{ "type": "temperature" },
{ "type": "humidity" }
]
},
{
"id": "multi1",
"name": "Multi Switch",
"services": [
{ "type": "switch", "name": "First" },
{ "type": "switch", "name": "Second" }
]
},
{
"id": "multi2",
"name": "Multi Device",
"services": [
{ "type": "switch", "name": "First" },
{ "type": "motion", "name": "Second" },
{ "type": "light", "name": "Third" },
{ "type": "leak", "name": "Leak" },
{ "type": "smoke", "name": "Smoke" },
{ "type": "occupancy", "name": "Present" }
]
},
{
"id": "EC:FA:BC:59:3F:3F",
"name": "Switch",
"services": [
{
"type": "switch",
"requests": [
{
"trigger": "on",
"method": "GET",
"url": "http://192.168.1.100/switch?state=true"
},
{
"trigger": "off",
"method": "GET",
"url": "http://192.168.1.100/switch?state=false"
}
]
}
],
"pingURL": "http://192.168.1.100/ping"
},
{
"id": "EC:FA:BC:59:3F:30",
"name": "Relais",
"services": [
{
"type": "relais",
"requests": [
{
"trigger": "on",
"method": "GET",
"url": "http://192.168.1.100/switch?state=true"
},
{
"trigger": "off",
"method": "GET",
"url": "http://192.168.1.100/switch?state=false"
}
]
}
],
"pingURL": "http://192.168.1.100/ping"
},
{
"id": "light1",
"name": "Dummy Dimmer",
"services": [
{
"type": "dimmer",
"requests": [
{
"trigger": "dimmer",
"method": "GET",
"url": "http://192.168.1.100/brightness="
}
]
}
],
"pingURL": "http://192.168.1.100/ping"
},
{
"id": "light2",
"name": "Dummy Light",
"services": [
{
"type": "rgb",
"spectrum": "RGB",
"requests": [
{
"trigger": "color",
"method": "GET",
"url": "http://192.168.1.100/color"
}
]
}
],
"pingURL": "http://192.168.1.100/ping"
},
{
"id": "event1",
"name": "Events",
"services": [
{
"type": "statelessswitch",
"buttons": 1
}
]
},
{
"id": "blind1",
"name": "Blind",
"services": [
{
"type": "blind",
"delay": {
"up": 11000,
"down": 10000
}
}
]
}
]
}
]
Required Parameters
platform
is always SynTexWebHooks
baseDirectory
The path where cache data is stored.accessories
For the accessory config.
Optional Parameters
port
To control your accessory over HTTP calls.language
You can use your country initials if you want to change it ( Currently supported: us
, en
, de
)
Log Parameters
- Disable certain log level:
error
, warn
, info
, read
, update
, success
and debug
( for example debug: false
)
Accessory Config
- Every device needs these parameters:
id
, name
and services
( required ) id
has to be either a real mac address
or another random unique text
( no duplicates! )name
could be anything.services
see service config below.pingURL
check the device connection.
Service Config
type
should be one of these: airquality
, blind
, contact
, dimmer
, humidity
, leak
, led
, light
, motion
, occupancy
, outlet
, rain
, relais
, rgb
, smoke
, statelessswitch
, switch
, temperature
- For Boolean Devices you can add
requests
( trigger can be: on, off, color ) - For RGB Lights you can add
spectrum
attribute ( to convert to the right output format: RGB / HSL ) - For Stateless Switches you have to add
buttons
attribute.
SynTex UI
Control and set up your devices by installing homebridge-syntex
This plugin is made for plugin management, automation system and device control.
Check out the GitHub page for more information:
https://github.com/SynTexDZN/homebridge-syntex
Update HTTP Devices
- Open
http://
Bridge IP /devices?id=
Device ID &value=
New Value - Insert the
Bridge IP
and Device ID
- For the
New Value
you can type these patterns:
- For boolean devices:
true
/ false
( contact, leak, motion, occupancy, outlet, rain, smoke, switch ) - For numeric devices:
10
/ 12.4
( airquality, blind, humidity, light, temperature ) - For all light bulbs:
true
/ false
( dimmer, led, rgb ) - For dimmable and colored lights add
&brightness=
New Brightness ( has to be a number ) - For colored lights add
&hue=
New Hue ( has to be a number ) - For colored lights add
&saturation=
New Saturation ( has to be a number ) - For accessories with multiple service types add
&type=
SERVICETYPE - For accessories with multiple services with more than one of the same service type add
&counter=
SERVICENUMBER
( First of that type = 0, second = 1 .. )
Example: http://homebridge.local:1710/devices?id=multi2&type=light&counter=0&value=20.5
( Updates the value of Third
from the Example Config to 20.5 LUX
)
Read HTTP Device Values
- Open
http://
Bridge IP /devices?id=
Device ID - Insert the
Bridge IP
and Device ID
- For accessories with multiple service types add
&type=
SERVICETYPE - For accessories with multiple services with more than one of the same service type add
&counter=
SERVICENUMBER
( First of that type = 0, second = 1 .. )
Example: http://homebridge.local:1710/devices?id=multi1&type=switch&counter=1
( Reads the value of Second
from the Example Config )
Remove HTTP Device
- Open
http://
Bridge IP /devices?id=
Device ID &remove=CONFIRM
- Insert the
Bridge IP
and Device ID
- To remove a specific service add
&type=
SERVICETYPE - To remove a specific service from an accessory with more than one of the same service type add
&counter=
SERVICENUMBER
( First of that type = 0, second = 1 .. )
Example: http://homebridge.local:1710/devices?id=ABCDEF1234567890&remove=CONFIRM
( Removes ABCDEF1234567890
from the Config and Home App )
Automation
To enable the automation module you have to create a file named automation.json
in your baseDirectory >> automation
or install the homebridge-syntex
plugin to create them via UI ( only between SynTex plugins )
Example: For manual configuration update your automation.json
file. See snippet below.
{
"automation": [
{
"id": 0,
"name": "Demo Automation",
"active": true,
"trigger": [
{
"id": "multi2",
"name": "Multi Device",
"letters": "F0",
"plugin": "SynTexWebHooks",
"operation": "<",
"value": "1000"
}
],
"condition": [
{
"id": "multi1",
"name": "Multi Switch",
"letters": "41",
"plugin": "SynTexWebHooks",
"operation": "=",
"value": "false"
}
],
"result": [
{
"id": "light1",
"name": "Dummy Light",
"letters": "30",
"plugin": "SynTexWebHooks",
"operation": "=",
"value": "true",
"hue": "218",
"saturation": "100",
"brightness": "100"
},
{
"url": "http://192.168.1.100:1710/devices?id=58757402d8bfc108d0dc&value=true&brightness=100"
}
]
}
]
}
Required Parameters
id
is the same like in your config file ( or in your log )name
The name of the accessory.letters
See letter configuration below.operation
Use the logical operands ( >
, <
, =
)value
The state value of your accessory.
Optional Parameters
plugin
Use the platform name of the plugin ( see supported plugins below )brightness
can be used for dimmable / RGB lights.hue
can be used for RGB lights.saturation
can be used for RGB lights.
Letter Configuration
The letters are split into two parts ( characters )
1. Service Type
- 0 : Occupancy
- 1 : Smoke
- 2 : Airquality
- 3 : RGB
- 4 : Switch
- 5 : Relais
- 6 : Stateless Switch
- 7 : Outlet
- 8 : LED
- 9 : Dimmer
- A : Contact
- B : Motion
- C : Temperature
- D : Humidity
- E : Rain
- F : Light
- G : Blind
2. Duplicate Counter
- If there are more services of the same type the counter indicates which is which
- Simply count from top to bottom.
Example: The first switch in your config has the letters 40
, the second 41
and so on ..
Supported Plugins
- SynTexKNX (
homebridge-syntex-knx
) - SynTexMagicHome (
homebridge-syntex-magichome
) - SynTexTuya (
homebridge-syntex-tuya
) - SynTexWebHooks (
homebridge-syntex-webhooks
)
Currently Supported
- Airquality Sensor
- Contact Sensor
- Humidity Sensor
- Leak / Rain Sensor
- Light Sensor
- Motion Sensor
- Occupancy Sensor
- Smoke Sensor
- Stateless Switch
- Temperature Sensor
- Switch / Relais / Outlet
- LED Lights / Dimmable Lights / RGB Lights
- Blinds / Shutters / Window Coverings