Elmo alarm

Hello, has anyone integrated the elmo alarm system alarm into the home assistant via e-connect?

2 Likes

Following the topic.

no updates ?

Following the topic, I’m interested too

I tried to contact directly ELMO industry asking if they have any plan to implement such kind of integration

Any news?

Did you try with alarmo or RESTful Binary Sensor?

ELMO contacted me and they confirmed currently there is no plan to integrate with any automation system except Goggle or Alexa.

Ok, so we could try to develop it from scratch .
Or possibly starting from an existing one and adapt it leveraging GitHub - palazzem/econnect-python: API adapter used to control programmatically an Elmo alarm system</

very interesting. If you need some tester I’m available to support you if I could.

1 Like

hello everyone,
good news.
Elmo integration is in progress and the author is palazzem but the software on GitHub - palazzem/econnect-python: API adapter used to control programmatically an Elmo alarm system</ is absolutely not updated.

The tests have been underway for a couple of months, Emanuele has just released the beta 4 which has added some useful features and controls.
Soon I hope to have more info for you all.

1 Like

The tests have been underway for a couple of months, Emanuele has just released the beta 4 which has added some useful features and controls.

Ok so this means we should probably stick with the v0.4 of the python client api.
But it is still a client to make requests to e-connect.

The homeassistant integration has to be done from scratch, right?

Hello everyone! Core maintainer of econnect-python here :slight_smile:

Thanks for showing interest and thanks @bagg2 for pointing me out this thread! Considering the growing interest on the project, let me put some clarity to share a bit where I am and what are my next steps.

  • Currently econnect-python is not up to date (0.3.1 is the latest stable) but it’s still working and can be used in any of your projects. That said, the 0.4.x version includes some changes that I needed for a better/easier HA integration. 0.4.x is actually considered unstable (dev) meaning it works but I didn’t put any effort in testing. On top of that, when I will release 0.4.0 stable version, it’s very likely that I’m going to break the public API here and there, so if you use the unstable version you may need to change your code.
  • The reason why I created the 0.4.x branch without updating the library mainstream, is because I need fast iterations (and breaking changes) to support Home Assistant. My plan is to move all the logic and the complexity out of HA project, keeping it in econnect-python. The rationale is it will be easier for HA core maintainers to review the integration, focusing only on HA code and not in how e-connect works.
  • To answer you @davidecavestro , I’ve already created an integration in a kind of “private beta” that I’m happy to bring to a public stage here :slight_smile: You can follow all the details in my fork / PR description (E-Connect Integration by palazzem · Pull Request #1 · palazzem/core · GitHub). It’s successfully used by me and @bagg2 , but I think more feedback is needed. Feel free to use it if you are a HA user!

Important note: my HA integration linked above, uses a long-polling strategy to grab the update in real time (limitation of e-connect system), and it may incur in extra data usage. If you are using metered connection (e.g. your alarm is connected over 3G or so), you may risk to get extra data usage increasing your cost of connection. That doesn’t apply if your alarm is connected over Wifi or LAN. One of the changes I want to make, is to offer a real-time mode (already available) and a polling mode (e.g. check every X minutes you want) to reduce data usage in 3G configurations.

Next steps I have:

  1. Feedback is always welcome! Feel free to give feedback directly in the PR: E-Connect Integration by palazzem · Pull Request #1 · palazzem/core · GitHub
  2. Once the feedback is finalized and I’m ready to move forward, I’ll release a stable 0.4.0 version that very likely will become my official 1.0 (no breaking changes anymore).
  3. At this point, I will update my PR to target the upstream HA project so that it will be officially released. Be aware that this may take time, because even if the code is complete and I need to add some tests, I also need to write the documentation and iterate over core contributors’ feedback.

Let me know if you have more questions! I will constantly update this thread until my contribution is officially released in HA!

1 Like

TL;DR if somebody is not interested in the full update!

I’ve developed a HA Integration that is currently in public beta. If you want to use it, you can follow the installation steps at this link: E-Connect Integration by palazzem · Pull Request #1 · palazzem/core · GitHub

When it’s ready, it will be fully merged in the main HA project. Feel free to write your feedback in the PR in case you struggle with the installation steps, or if it doesn’t work properly. Thanks!

Amazing! Many thanks
@palazzem so in order to test it into a dockerized HA core it should be only a matter of

  • cloning your repo
  • checking out the add-elmo-integration branch
  • building the docker image

That is an option, but you can use the following approach to make updates easier.

This is what I do in a dockerized HA instance:

  • I use an official docker image
  • I export a local config directory (this is a not updated example, but you can see I’m exporting a local etc folder inside the container config folder: hal/docker-compose.yml at a349bad27403627fa74a878503013eff492b8a66 · palazzem/hal · GitHub)
  • Then inside your local folder (it’s etc in my case) create a custom_components folder
  • Download and extract my module in custom_components folder. You can find the download link in my PR under Download the Integration section.
  • Restart home assistant and you are ready to go! No need of custom builds and to upgrade it’s enough you remove/reinstall my module in custom_components folder (restarting the container is always required).

To see if it’s working, you’ll receive a WARNING in your logs, that you are using a custom module. Then you can just search from the UI e-connect and install it. Let me know how it goes!

Edit: for other users that don’t use Docker, you should follow these other steps instead:

  1. Create a new folder in your configuration folder (where the configuration.yaml lives) called custom_components
  2. Download the module into the custom_components folder so that the full path from your config folder is custom_components/econnect_alarm/. You can find the download link here: E-Connect Integration by palazzem · Pull Request #1 · palazzem/core · GitHub
  3. Restart Home Assistant. If it’s your only custom component you’ll see a warning in your logs.
  4. Once Home Assistant is started, from the UI go to Configuration > Integrations > Add Integrations. Search for “E-connect Alarm”. After selecting, dependencies will be downloaded and it could take up to a minute.
1 Like

Hey, you made my day: this integration works like a charm.

The only limitation I’ve found so far (but maybe it’s my fault and I missed something) is that I cannot map area sectors to arm modes like arm away or arm night.
This is due to the fact that the technician configured my alarm using a single Area with multiple sectors.

At the moment I’ve re-mapped the sector binary sensors using Alarmo from HACS

EDIT: so I’d need to activate 3 out of 4 sectors for area 1 on arm night, while on arm away I need to arm all of them.

I’m not familiar with Alarmo from HACS (but I guess I understand how it works more or less), but don’t you have an entity for area_1_mansarda? Can you give me an extract of entities the integration created for you?

Considering this is a public forum, feel free to replace names with fake names. To me is enough understanding the type of inputs and sectors you have. This will help me to understand if there is anything I can change to support your use case!

No prob with real names, they are not mines but from technician :slight_smile:
These are the ids of entities generated by the integration:

alarm_control_panel.alarm_panel
binary_sensor.area_1_mansarda
binary_sensor.area_1_radar_notte
binary_sensor.area_1_repp_notte
binary_sensor.area_1_repp_giorno
binary_sensor.area_2_settore_s1_a2
binary_sensor.area_2_settore_s2_a2
binary_sensor.area_2_settore_s3_a2
binary_sensor.area_2_settore_s4_a2
binary_sensor.area_3_settore_s1_a3
binary_sensor.area_3_settore_s2_a3
binary_sensor.area_3_settore_s3_a3
binary_sensor.area_3_settore_s4_a3
binary_sensor.area_4_settore_s1_a4
binary_sensor.area_4_settore_s2_a4
binary_sensor.area_4_settore_s3_a4
binary_sensor.area_4_settore_s4_a4
binary_sensor.bagno_arancio
binary_sensor.bagno_mans_dx
binary_sensor.bagno_mansar_sx
binary_sensor.camera_mans_dx
binary_sensor.camera_mans_sx
binary_sensor.cameretta_dx
binary_sensor.cameretta_sx
binary_sensor.fin_bagno_verde
binary_sensor.fin_matrim_sx
binary_sensor.fin_alta_mans
binary_sensor.fin_matrim_dx
binary_sensor.ingr_blindato
binary_sensor.porta_cucina
binary_sensor.porta_lavanderia
binary_sensor.pranzo_dx
binary_sensor.pranzo_sx
binary_sensor.radar_notte
...

Please note areas 2 to 4 are unused.

I guess the binary sensors are backed by econnect sectors and inputs. where the sectors are accepted as args by your client.

Brainstorming:

  1. expose a way to have a fine-grained arm type mapping, accepting sectors as well as areas
    image
  2. expose sectors (as well as areas) as switches for external scripting/automations

Oh I see.

From your list I see you have the following sectors:

binary_sensor.area_2_settore_s1_a2
binary_sensor.area_2_settore_s2_a2
binary_sensor.area_2_settore_s3_a2
binary_sensor.area_2_settore_s4_a2
binary_sensor.area_3_settore_s1_a3
binary_sensor.area_3_settore_s2_a3
binary_sensor.area_3_settore_s3_a3
binary_sensor.area_3_settore_s4_a3
binary_sensor.area_4_settore_s1_a4
binary_sensor.area_4_settore_s2_a4
binary_sensor.area_4_settore_s3_a4
binary_sensor.area_4_settore_s4_a4

So you have 4 sectors right? If that’s the case, you can put the numbers in the form you posted as screenshot. I think I wrote a wrong translation, I wrote “areas” but I meant “sectors”.

Can you try and confirm?

1 Like

Ouch, you are right :slight_smile:
I confirm it already works:
setting sector indexes I can selectively map them to arm mode.

Great! But you gave me a very good feedback. Indeed I have to change the naming (names are important!) otherwise it’s a usability issue. I’ve added this item in my backlog so I can tackle it in one of my iterations.

Speaking about your second item:

expose sectors (as well as areas) as switches for external scripting/automations

Can’t you use something like binary_sensor.area_2_settore_s1_a2 or binary_sensor.area_1_mansarda (or what is the actual sector that is triggered) in your automation?

I think you can add a trigger when the binary sensor (whether is an input or a sector) has a change in the state (from off to on or viceversa). But to be honest, I didn’t try this so feel free to give me more inputs (pun intended! :stuck_out_tongue: ) to see if there is a use case you have that I’m not covering properly!

Thanks again for the feedback!