Comelit Video Intercom

Hello,
I managed to register the device with your steps but even though it does connect and says it opens the door, it does not at the end.
Also, have you got a solution for notifications when someone rings and if possible with a snapshot ?

sorry but could you help out? i tried the whole day to get this working but i can’t . i never used node red before. i made the steps, i know how to make sensors and buttons, so i tried them but i don’t see how to make it work. i don’t know if the inject and function are right, i just did what you said but i feel like missing steps and ai also doesnt really help

i didn’t change anything in inject, i just connected to function:

// Code added here will be run once
// whenever the node is started.
const logger = log4js.getLogger("out");
logger.level = "info";

node.log("Trying to connect...");

const client = new comelitClient.IconaBridgeClient("192.xxxxxxx", 64100, logger);
await client.connect();
node.log("Connected!");
try {
    const code = await client.authenticate("xxxxxxxxxxxxxxxxxxx");
    if (code === 200) {
        const addressBook = await client.getConfig("none", false);
        node.warn(addressBook);
        const serverInfo = await client.getServerInfo(false);
        node.warn(serverInfo);
        const addressBookAll = await client.getConfig("all", false);
        node.warn(addressBookAll);
        const item = addressBookAll.vip["user-parameters"][
            "opendoor-address-book"
        ].find((doorItem) => doorItem.name === "front door");
        if (item) {
            node.warn(
                `Opening door ${item.name} at address ${item["apt-address"]} and index ${item["output-index"]}`
            );
            node.warn(await client.getServerInfo());
            await client.openDoor(addressBookAll.vip, item);
        } else {
            logger.error(
                `No door with name ${"front door"} found in config. Available door names are: ${addressBookAll.vip[
                    "user-parameters"
                ]["opendoor-address-book"]
                    .map((d) => d.name)
                    .join(", ")}`
            );
        }
        await client.shutdown();
    } else {
        node.error(
            `Error while authenticating: server responded with code ${code}`
        );
    }
} catch (e) {
    node.error("Error while executing openDoor command", e);
} finally {
    await client.shutdown();
}

return msg;

You could have a look at the protocols (Home Assistant → Settings → System → Protocol and select Node Red at the top right corner). You should see something like:

12 Jul 21:46:40 - [info] [function:Open door] Connected!
12 Jul 21:46:40 - [warn] [function:Open door] get-configuration
12 Jul 21:46:40 - [warn] [function:Open door] server-info
12 Jul 21:46:40 - [warn] [function:Open door] get-configuration
12 Jul 21:46:40 - [warn] [function:Open door] [object Object]
12 Jul 21:46:40 - [warn] [function:Open door] Opening door Entrance lock at address SB100001 and index 1
12 Jul 21:46:40 - [warn] [function:Open door] server-info

This might help to figure out where and what goes wrong in your case.

Can you take a look at the protocol as well? Maybe some more node.log() statements help to figure out why the door won’t open.

Unfortunately I haven’t found a way to get notifications if the door rings…

I don’t have errors, but it feels like i miss steps after your explanation and last step.

It is a bit strange that your log shows nothing at all. It should at least display some logs from the starting procedure, like:

Welcome to Node-RED
===================

11 Jul 06:45:26 - [info] Node-RED version: v4.0.2
11 Jul 06:45:26 - [info] Node.js  version: v18.20.3
11 Jul 06:45:26 - [info] Linux 6.6.31-haos-raspi arm64 LE
[...]

Is Node-Red really running? Do you have some filters applied that only error messages are shown and no info and warn messages?

yes it is running:

this is the config:

theme: default
http_node:
username: xxxxx
password: xxxxxxxxx1
http_static:
username: xxxxx
password: xxxxxxxxx1
ssl: false
certfile: fullchain.pem
keyfile: privkey.pem
system_packages:
npm_packages:

  • comelit-client
    init_commands:


i didnt change anything here

and this is the code in function:

// Code added here will be run once
// whenever the node is started.
const logger = log4js.getLogger("out");
logger.level = "info";

node.log("Trying to connect...");

const client = new comelitClient.IconaBridgeClient("192.xxx.xxx.xxx", 64100, logger);
await client.connect();
node.log("Connected!");
try {
    const code = await client.authenticate("0xxxxxxxxxxxx09cf0a5xxxxxx5");
    if (code === 200) {
        const addressBook = await client.getConfig("none", false);
        node.warn(addressBook);
        const serverInfo = await client.getServerInfo(false);
        node.warn(serverInfo);
        const addressBookAll = await client.getConfig("all", false);
        node.warn(addressBookAll);
        const item = addressBookAll.vip["user-parameters"][
            "opendoor-address-book"
        ].find((doorItem) => doorItem.name === "front door");
        if (item) {
            node.warn(
                `Opening door ${item.name} at address ${item["apt-address"]} and index ${item["output-index"]}`
            );
            node.warn(await client.getServerInfo());
            await client.openDoor(addressBookAll.vip, item);
        } else {
            logger.error(
                `No door with name ${"front door"} found in config. Available door names are: ${addressBookAll.vip[
                    "user-parameters"
                ]["opendoor-address-book"]
                    .map((d) => d.name)
                    .join(", ")}`
            );
        }
        await client.shutdown();
    } else {
        node.error(
            `Error while authenticating: server responded with code ${code}`
        );
    }
} catch (e) {
    node.error("Error while executing openDoor command", e);
} finally {
    await client.shutdown();
}

return msg;

From what I see everything looks fine. However, it would be interesting to see the Node Red log because then we could exactly see what is going on there. I’m wondering why loggin doesn’t work…

By the way: Are you sure ā€œfront doorā€ is the right name of the door? For me eg. it’s ā€œEntrance lockā€.

no the name of the door is SB100001, but i also tried that in naming part. i changed it now to the original name and tried with an helper to create a door opener button but it doesn’t work unfortunately, i also don’t see a new entity or something. what did you do after step 9?

Hi, good to see, that there is already an integration for Comlit devices. We have a new office. This office contains a Comelit Ethernet Adapter 1406A4. Over this adapter we can view the video camera of the whole office building and open the main door. This can be done with this App.

Does anybody know, if this adapter is compatible with Home Assistant?

Hi @joeyboey what Node Red addon are you referring to?
I’ve searched in the palette but I can’t find anything to install with the term ā€œcomelitā€.
Thanks!

Hi all Comelit users, I’d like to ask a question upstream the HA integration, related to the intercom install.
A company is about to install in our building a Comelit system and I have to choose between a few intercom models, but they have scalpers prices!
Can I opt for the cheaper 2738W now, and easily swap it for a used 6721W or 6741W later without telling the installer ?
Thanks !

Is it now possible to use the Comelit 6741W with Home Assistant? My primary concern is being able to open the door. I don’t want to use that terrible app every time. I’ve seen that it works with Ring Intercom, but I just wanted to ask if there are any other methods available.

2 Likes

Hi everyone, I also have a 6741w intercom and managed to setup the trigger via NODE-Red, however I am facing the following issue, if I wake up the intercom from the inside and trigger the open door command it works as expected, but if I do it after ringing the doorbell from the outside I get the following error in the logs:

[ERROR] out - Error: write EPIPE
    at afterWriteDispatched (node:internal/stream_base_commons:159:15)
    at writeGeneric (node:internal/stream_base_commons:150:3)
    at Socket._writeGeneric (node:net:971:11)
    at Socket._write (node:net:983:8)
    at doWrite (node:internal/streams/writable:598:12)
    at clearBuffer (node:internal/streams/writable:783:7)
    at Socket.Writable.uncork (node:internal/streams/writable:531:7)
    at drainHandler (/config/node_modules/promise-writable/src/promise-writable.ts:139:18)
    at /config/node_modules/promise-writable/src/promise-writable.ts:166:7
    at new Promise (<anonymous>) {
  errno: -32,
  code: 'EPIPE',
  syscall: 'write'
}

My device is in building mode btw. Has anyone managed to trigger the device from the outside during a ring call session?

Thanks in advance

Hey everyone,

I’ve been following this thread for quite some time now and have been dealing with the same Comelit integration challenges. Now, I’ve finally created a native Home Assistant component that might help.

What it does: Connects directly to Comelit intercoms (ICONA Bridge protocol) to control doors/gates. No ring notifications or video/audio support yet, but door opening works reliably.

GitHub: GitHub - nicolas-fricke/ha-component-comelit-intercom: Custom Add-Ons for Home Assistant

Installation:

  • HACS: Add https://github.com/nicolas-fricke/ha-component-comelit-intercom as custom repository and select ā€œIntegrationā€ (see docs) and install the Comelit Intercom integration
  • Manual: Copy the custom_components/comelit_intercom folder to your HA config (it should be located under config/custom_components/comelit_integration)
  • After either step, restart your HA
  • Go to ā€œSettingsā€ → ā€œDevices & servicesā€ → ā€œAdd Integrationā€, there search for ā€œComelit Intercomā€ (don’t confuse it with the ā€œComelit SimpleHomeā€ one).

Setup: Add the integration in HA and simply enter your intercom’s IP. It’ll try to extract the token automatically (works if you haven’t changed the default ā€˜comelit’ password). If the automatic extraction doesn’t work but you know your token (e.g. from the node-red workflow), just enter it right at setup.

Before, I was using a custom setup with madchicken’s comelit-client in Docker with an MQTT layer, but it wasn’t super stable, especially after HA restarts. This is a Python rewrite that runs natively in HA. It’s been built with Claude Code (AI assistant) based on madchicken’s protocol work.

It’s been stable for me but needs more testing. Issues and PRs welcome. I would especially appreciate testing on different Comelit models.

Let me know if it works for you!

1 Like

Amazing work! I’ve just installed and it works great. The automatic token extraction didn’t work (even if I had the default password) but following the instructions it’s easy to get it manually

1 Like

Hi, I have a Comelit 6741w Version: 2.1.0. I installed the Comelit Intercom Integration on the latest HA 2025.8.3. The feature only works successfully the first time I press the button. When I close the gate and try to open it again, it doesn’t work anymore. Is there any test I can make ?

Thank you for this. Worked perfectly. I didn’t try auto discovery, I just copied the token from node-red and finally disabled node-red.

Works for me as well ! Thanks :+1:t3:

Sorry for not getting back before. This was reported by a few people, but the latest version published about a month ago should have fixed the issue :slight_smile: Please let me know if you still have issues.