eavanvalkenburg / pysiaalarm

A python package to connect to a SIA DC-09 based alarm system.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Bentel Absoluta compatible

n0way0ut opened this issue · comments

hello,
I have a Bentel Absoluta alarm system that runs as SIA client over FIBRO (UDP), so it needs a receiver to communicate.
Do you know if this python module is compatible with it?
Can you please share a simple code to run an UDP server and parse the client message with pysiaalarm lib?

thanks.

I have not been able to test that feature with a actual device because I don't have one. Taking this as an example: https://github.com/eavanvalkenburg/pysiaalarm/blob/master/tests/run_aio.py should get you going, with protocol = CommunicationsProtocol.UDP in the initialization of the Client.

ok, I just added:

async with SIAClient(
        config["host"], config["port"], account, function=func, protocol = CommunicationsProtocol.UDP
    ) as client

but I get these errors:

DEBUG:asyncio:Using selector: EpollSelector
DEBUG:pysiaalarm.aio.client:Starting SIA.
ERROR:asyncio:Exception in callback SIAServerUDP.connection_made(<_SelectorDat...e, bufsize=0>>)
handle: <Handle SIAServerUDP.connection_made(<_SelectorDat...e, bufsize=0>>)>
Traceback (most recent call last):
  File "/usr/lib/python3.11/asyncio/events.py", line 80, in _run
    self._context.run(self._callback, *self._args)
  File "/sia_alarm/lib/python3.11/site-packages/pysiaalarm/aio/server.py", line 86, in connection_made
    assert isinstance(transport, asyncio.DatagramTransport)
AssertionError
--------------------------------------------------
Running for another 12000 seconds

and then I do not receive any events.

Hi,
i'm also interested on this part. I'm developing for testing purpose a .NET udp client to receive event from Bentel Absoluta (SIA over FIBRO) but the problem is that Fibro protocol is not public and is so hard to reverse engineering it without specifications.

As far as I discoverd, Fibro works with UDP protocol and implements a manual handshake between the alarm panel and the receiver:
AP => RC (handshake messagge)
RC => AP (kissoff message)

at this point, AP starts to send events to the receiver but every event must be kissedoff:
AP => RC (event with SIA information visible)
RC => AP (kissoff - event received)

the difficult part is to understand which response the Alarm Panel accept, in order to estabilsh a correct communication.