pysiaalarm icon indicating copy to clipboard operation
pysiaalarm copied to clipboard

Bentel Absoluta compatible

Open n0way0ut opened this issue 10 months ago • 3 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.

n0way0ut avatar Sep 10 '23 19:09 n0way0ut

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.

eavanvalkenburg avatar Sep 13 '23 09:09 eavanvalkenburg

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.

n0way0ut avatar Sep 13 '23 20:09 n0way0ut

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.

manu89padovani avatar Oct 06 '23 11:10 manu89padovani