NOTE
ELRO Connects probably will also function on the BASE smart home gateway SWM188A and the SITERWELL GS198. Both have not been tested.
The ELRO Connects uses a propriety protocol on the local network over UDP. This is the reversed engineered python implementation of the protocol.
The ERLO K1 connects SF40GA system allows you to connect fire alarms, heat alarms, CO alarms, water alarms and door/window sensors through a hub. The app uses an internet connection, but on the local network it is possible to communicate with the hub through a propriety UDP protocol.
The ELRO connects hub allows only one 'connection' at a time. So running this will discontinue sending data to the app and vice versa.
Features to expect:
- MQTT capabilites -- can connect to an MQTT broker and publishes messages on events
- CLI interface with parameters
- More pythonic implementation
- No threads, but async with trio
Simply install via pip
$ pip install .
usage: elro [-h] -k HOSTNAME -m MQTT_BROKER [-b BASE_TOPIC] [-i ID] [-a]
required arguments:
-k HOSTNAME, --hostname HOSTNAME
The hostname or ip of the K1 connector.
-m MQTT_BROKER, --mqtt-broker MQTT_BROKER
The IP of the MQTT broker.
-b BASE_TOPIC, --base-topic BASE_TOPIC
The base topic of the MQTT topic.
optional arguments:
-i ID, --id ID The ID of the K1 connector (format is ST_xxxxxxxxxxxx).
-a, --ha-autodiscover
Send the devices automatically to Home Assistant.
The MQTT_BROKER
uses the MQTT URL scheme.
{mqtt,ws}[s]://[username][:password]@host.domain[:port]
You can set the base topic of all MQTT messages with the -b
flag. Then this application will publish on
[base_topic]/elro/[device_id]
The following message will be available on the topic above as soon as the devices are synced.
{
"name": "fire_alarm_living_room",
"device_name": "fire_alarm_living_room",
"id": 8,
"type": "0013",
"type_name": "FIRE_ALARM",
"state": "Normal",
"battery": 95,
"signal": 4
}
When the device has an alarm the payload is the same as above, but the state is set to Alarm
or Test Alarm
.
The signal has a scale from 0 to 4, where 4 is the best strength.
To initiate an action through MQTT, use the following topic
[base_topic]/elro/[device_id]/set
The following actions can be set.
Enable or disable the hub to allow devices to join. This payload can only be sent to [device_id] 0. Send false as the value for "permit_join" when the device will not be joined.
{
"permit_join": true|false
}
Remove a device from the network. The [device_id] is the device that will be removed. Use this payload
{
"remove": true
}
Replace a device from the network. The [device_id] is the device that will be replaced. When the device will not be replaced, cancel the replacement by using false as the value for "replace". Use this payload
{
"replace": true|false
}
Change the state of the device
Use this payload
{
"state": "test alarm"
}
To silence an alarm, a payload can only be sent to [device_id] 0, and it will only silence the hub. Use this payload
{
"state": "silence"
}
Change the name of your device. This can be a maximum of 15 characters and consist of the following characters (the , is not allowed): a-z,A-Z, 0-9, ,-,_
Use this payload
{
"name": "Kitchen"
}
- Elro FZ5002R
- Elro FH3801R
- Elro FC4801R
- Elro FW3801R
- Elro SF40MA11