Inim Alarm

Hi everyone,

Some of you may remember me from previous posts in this thread back in 2024. I wanted to share an update because I finally have something concrete to show!

:white_check_mark: I’ve created a Home Assistant integration for INIM alarm systems

It’s available here on GitHub:
:point_right: GitHub - pla10/homeassistant_inim_alarm

This integration allows you to:

  • Connect to your INIM alarm via the INIM Cloud API using your email and password (the same credentials you use in the Inim Home app)
  • Read the state of zones (doors, windows, motion sensors)
  • Monitor area status (armed/disarmed)
  • Arm and disarm the system directly from Home Assistant using configurable scenarios
  • Monitor peripheral voltages (keypads, expanders, Nexus GSM module)
  • GSM module info (operator, signal strength)
  • Expose entities as standard HA alarm_control_panel + binary_sensor + sensor

The integration is based on analyzing the official INIM Home app’s API calls, so it doesn’t require any proprietary SDK or special hardware. It handles authentication and token refresh automatically – you just need your INIM Cloud credentials.

Easy installation via HACS! Just add the repository as a custom integration.

I’d love feedback from anyone who tries it out. Also, if anyone wants to contribute or suggest improvements, feel free to open issues or pull requests on the repo.

It feels great to finally provide a working native HA experience for INIM alarms, something that has been requested here for years. :raised_hands:

Thanks for checking it out!

Hi everyone,

following up on the recent post about the INIM Cloud–based integration, I’d like to share a different but complementary approach I’ve been working on for a while.

I’ve developed a local Home Assistant integration for INIM Prime alarm panels, which communicates directly with the panel over LAN via PrimeLAN, using the official local Web API (no cloud involved).

:link: GitHub repository:

Key differences

  • Local communication (no Internet / no INIM Cloud)
  • Works only with Prime panels
  • Requires PrimeLAN network card

Current features

The integration currently allows you to:

  • Monitor panel, GSM, zones and partitions
  • Read zone states, alarm memories and diagnostics
  • Track event logs from the panel
  • Exclude/include zones
  • Set partition modes (disarmed, instant, partial, total)
  • Clear alarm memories

It is installable via HACS, and the repository includes detailed documentation covering:

  • Prime/STUDIO configuration
  • PrimeLAN & Web API setup
  • Home Assistant installation and usage

Limitations & future work

This is my first Home Assistant integration, and it should be considered experimental.
Some features (notably scenarios and outputs) are not currently supported due to limitations or issues in firmware 4.07 (at least on my panel).

I’d love feedback from anyone willing to try it out — bug reports, suggestions and constructive criticism are more than welcome.

:warning: Important notes

  • Community-developed, not affiliated with INIM Electronics
  • Active development, breaking changes may occur
  • Not all panel features are supported
  • Do not rely on it as the sole security/control system
  • LAN-only usage recommended (PrimeLAN uses outdated TLS)

Thanks, and I’m happy to answer any technical questions :slightly_smiling_face:

Pitscheider, well done! Thank you very much! It works on my Prime 60S fw 4.07. How often is the zone status read? Is it possible to adjust it?

Thanks for the kind words! Regarding the update interval, currently the value is hardcoded to 10 seconds for most request (including zones), except logs, which are updated every 20 seconds. In a future release I will add the ability to change this value and peraphs add a more granular control on timing, depending on the type of request.

I’ve now released v0.1.3, and it includes exactly what I mentioned earlier — custom scan intervals with per-coordinator control (Zones, Partitions, GSM, System Faults, and Panel Log Events).

So you can now fine-tune how often Home Assistant polls the panel depending on the type of data you care about most.

With the new default values, for instance, zones responsiveness is significantly better.

Release notes here:

Let me know if you have any feedback or ideas for further improvements!

Fantastic work! Seems that the voltage of the peripherals is not being updated.

It would also be interesting to have information on:

  • Zone and area alarm memory
  • Faults
  • Peripheral firmware version
  • JOY MAX keyboard temperatures

Everything can be found with the call

https://api.inimcloud.com/?req={“Params”:{“Info”:4223},“Node”:“”,“Name”:“Inim Home”,“ClientIP”:“”,“Method”:“GetDevicesExtended”,“Token”:“TOKEN”,“ClientId”:“CLIENTID”,“Context”:“intrusion”}

@pla10
Fantastic project, works perfectly and is very easy to configure.
Finally, thanks to your work, I can have my alarm system controlled by Home Assistant.
Thank you so much for all your hard work.
Keep it up and don’t abandon this project.
Thank you, thank you, thank you!

Hi MrTeo, i’ve tried this on Smartliving 515, but i’ve some problems, like zone problems and area activation doesn’t work.
I’ve tried to sniff the traffic beween smartleague and the central, but i don’t know how to proceed to have the right command and the right interpretation, could help me?

Ciao @pla10 , i use your integration for a sicurit aallarmitalia Alarm, (they use inim Cloud). Just a couple of changes into the code and It works perfectly.

Thks

I would be interested in improving the speed of my integration, which currently uses the http api. I am trying to integrate the modbus and having the modbus docs would help me a lot. If you are interested you might contact me thorugh SimpleX at this address: SimpleX Chat - Invitation

Hello @mrteo and congratulations on this integration, which works perfectly (Smartliving 1050 with firmware 6.06 and smartliving SI).
The only problem I’ve encountered is that it doesn’t see the double zones configured on a single terminal.
The Smartleague software assigns them IDs 1 and 501 and labels them “TERMINALE1” and “TERMINALE1D”.
Since it can’t scan up to 501, your integration doesn’t detect the zone.
Is there a way to add them or perform a more extensive scan of the zones to see if it recognizes the double zones with IDs >500?
It would also be nice to be able to see the OC outputs as well; terminals configured as outputs, however, are detected just like the other zones (but at least they are detected).
Thanks

Hi @Pitscheider
In the past I manually integrated my Inim alarm with Prime LAN into Home Assistant (with only few option), and now I ran into your intergration that seems to be great and much better that I did! I would like to try it but I only have the API key and not the serial. Unfortunately the link for Prime Studio software download in your GitHub page is not working anymore and I cannot retrieve the serial number.
Do you have some hints on how to proceed or can you provide a new link for the software? :slight_smile:
Thanks a lot in advance!

Edit: I read the documentation and saw that the serial number is an indentification number checked during the configuration and should not block the addon config. So the problem is maybe related to a wrong API key… The software Prime Studio should be the only way to verify…

Hi, I updated the link for the INIM Prime Studio software in the readme, it should work now.

To be honest the documentation was pretty unclear regarding the role of the serial number. I updated it clarifying that the serial number is not essential in order for the integration to work. I only use the serial number as a unique id that can identify the panel, but currently no operation is performed based on that value, so a MAC Address or any other unique value will work.

I hope you will be able to configure the integration now. In case you have any issue I’ll be glad to help!

Hi. I downloaded the software and I tried to connect to my panel, but, unluckily the passwords I have seem to be not valid (installer, user, cloud…).
In the next days I will retry. Thanks again for your help! :slight_smile:

The default one is “pass”, maybe i should add this to docs as well

Thanks a lot! The password was that one (the only one that I forgot to try :slightly_smiling_face: ). Now I’m able to access the panel. I copied the API key and configured integration in Home Assistant. Now I can see 2 devices (GSM and Inim Prime Panel) and a total of 25 entities, anyway I don’t see any zone/sensor. Problably I’m doing something wrong.
I remember that, during the panel installation, the technician put modbus channel on 010 changing it from the default 001. In your opinion, do you think that it could the problem?
Before changing the configuration of the panel I would prefer to be sure, just to avoid messing up something :smiley:

I sent you a message in direct messages. I would be happy to help you!

Thanks Pitscheider for your precious support you gave me via chat!
I’d like to inform the community that my issue was related to the code associated into the web API page of Prime LAN board. The installer configured, by mistake, a user without permissions for retrieving zones status.
Changing that to a “master” user solved the problem.
After having reconfigured the integration, all the entities are now present!
Thanks a lot again! :slight_smile:

Hi everyone,

A few months ago I published a local INIM Prime integration that used the PrimeLAN HTTP API to control the alarm panel.

As many of you may have noticed, the PrimeLAN HTTP API is slow, incomplete, and appears to be buggy on newer firmware versions (for example, 4.07, where output control is unreliable). Because of these limitations, I started looking for a more robust alternative.

Over the past months, I’ve been analysing the network traffic between INIM Prime/STUDIO software and the alarm panel using Wireshark. After a lot of trial and error, I was able to understand and partially reconstruct the native INIM Prime protocol.

Python library (native protocol)

I’ve now developed an early-stage Python library that communicates directly with the panel using this native binary protocol (the same one used internally by INIM Prime/STUDIO).

Compared to the HTTP API, this approach is significantly faster and more complete.

:backhand_index_pointing_right: Repository: GitHub - Pitscheider/inim-prime-protocol: An unofficial Python library for communicating with Inim Prime alarm panels using the native binary protocol, the same protocol used by the official Inim Prime/STUDIO software. · GitHub

Current status

This project is still alpha / experimental. The wire layer is functional and a small set of operations have been implemented and tested against my own panel setup (Inim Prime 60 zones with PrimeLAN).

There is still no unified client yet, and the API surface is expected to evolve.

What currently works

At the moment, the library supports the following operations:

  • get_panel_info — serial number, firmware version, model

  • get_partition_names — partition names

  • get_partition_statuses — armed state and alarm status per partition

  • get_partitions — combined names + statuses

  • set_partition_modes — arm/disarm (total, partial, instant, disarmed)

  • reset_partitions — reset partition alarm state

  • resolve_address — internal address resolution

Architecture overview

The implementation is based on analysis of the native protocol and includes:

  • AES-128-CBC encrypted communication (keys derived from panel password)

  • CRC-16/ARC frame integrity checks

  • Binary frame parsing (outer + inner headers)

  • Async TCP transport with chunked reads

  • Read/command request handling

The protocol itself appears to be extremely fast and efficient compared to the HTTP interface.

What’s next

My goal is to extend this work to support:

  • Zone / sensor states

  • Outputs control

  • Scenarios

  • Full client abstraction layer

  • Proper packaging and release readiness

Ultimately, the long-term goal is to build a Home Assistant integration based on this native protocol.

Notes on compatibility

This implementation is currently based on observations from a single setup:

  • Inim Prime panel (60 zones)

  • PrimeLAN module installed

I have not yet been able to validate behavior across different panel models or configurations. One interesting possibility is that this protocol may also work without PrimeLAN, but this is currently untested.

How you can help

This is an early-stage research project. It is not yet ready for production use, and the API will change as development continues.

I would really appreciate help from the community, especially from anyone who:

  • has a INIM Prime panel

  • knows a bit of Python

  • is willing to test and validate protocol behavior on different setups

If you’re interested, feel free to reach out via GitHub issues or DM on Home Assistant forums.

Legal notice

This project is an independent, unofficial implementation based on passive observation of network traffic between INIM Prime/STUDIO software and an INIM Prime panel owned by the author.

It is published under the GNU GPL v3.0. See inim-prime-protocol/LEGAL.md at befdc407ccd37ce79cf3d7e3c6efc959ca1980ed · Pitscheider/inim-prime-protocol · GitHub for full legal details and disclaimer.

Hi @Pitscheider, great work on this project! I have an Inim Prime with Onboard LAN (firmware 4.03) and tried to test your library.

Setup:

  • Inim Prime, Onboard LAN, firmware 4.03
  • Port 6004 confirmed open, TCP connection established and stays open, tested with nc command

Observed behavior:

  • Single frame sent successfully (54 bytes)
  • Panel accepts the TCP connection but returns no response at all — silent timeout after 20s
  • Tested with passwords: pass, admin (i have to ask my installator the real password, this is was just a test)

Question: Do you have any insight on what could cause the panel to silently ignore frames? Could the password derivation differ between Onboard LAN and PrimeLAN? Or is there a handshake step expected before the first read request that the library doesn't implement yet?

Happy to test further if useful.