Comelit Video Intercom

Ahh thats very cool, appreciate all the info! So the Shelly unit was actually connected to the external comelit unit not the door monitor unit located inside your home?

Yep. Check manual

Any news on this? It would be a really nice add to home assistant!

I found a project on Github which allows unlocking the door through terminal. I tested it out and it actually works pretty well. GitHub - madchicken/comelit-client: Simple CLI to interact with Comelit HUB, Vedo and Comelit Serial Bus

2 Likes

Someone managed to integrate that CLI somehow in HASS?

Tried it today, it’s pretty simple with the Node Red Addon and a few tweaks to the openDoor function.
Seems to work quite well.

You have to add the comelit-client to the config for the node red addon under npm packages.

Now add the code below in a function node (on message): (the code is quick and dirty without any variables, you must hardcode everything).

Finally add the two libraries log4js and comelit-client under the setup page.

Everything should work now.

// 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("X.X.X.X", 64100, logger);
await client.connect();
node.log("Connected!");
try {
  const code = await client.authenticate("XXXXXXX");
  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 === "DOOR NAME");
    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 ${"DOOR NAME"} 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;

Thanks a lot Joe! I managed to get it working - that is great:)

1 Like

Hello! I’m new to Home Assistant. Does anyone know how to expose Comelit 6741W to HomeKit to get the video and calls in HomeKit? Is it even possible?

We are getting this device installed today. I can’t really figure out if it officially has Homekit support to open the door, does that work for you? I don’t need to get video and calls in HASS, but opening would be nice…

Ciao, qualcuno è riuscito ad integrare l’allarme vedo 34?

Can you get a video from doorbell camera? Or only door open switch?

Did you get video from doorbell camera or only switch to open the door?

C’è percaso una guida passo passo?

Let me add a few more details to what joeyboey did above. I tested it for the Comelit 6741W.

  1. Install the Node Red Addon

  2. Before starting the Node Red Addon make sure that you include the comelit-client under npm_packages. For some reason the GUI was not working properly, so I had to add it manually in yaml:


npm_packages:
  - comelit-client

  1. Now you may start the Node Red Addon and make sure no error occurs.

  2. In the next step should add a trigger of your choice (for testing purposes, you may use inject) and connect it to a function node.

  3. Double click on the function node and go to settings and add the two modules log4js and comelit-client. To do so, you should click on add type in log4js and comelit-client under module. The variable filed is filled automatically. However, it should be log4js ans comelitClient.

  4. Now leave the start and end tab untouched and copy the above mentioned code to the function tab (the English name might be different).

  5. Replace X.X.X.X by the ip address of your Comelit device.

  6. To get the client.authenticate (it’s a 32 char long string) please follow the instructions in https://github.com/madchicken/comelit-client/wiki/Get-your-user-token-for-ICONA-Bridge#get-your-user-token-for-icona-brigde-communication

  7. Either you know your door name, then replace DOOR NAME or you take a closer look to the log where all available door names are listed. You may find the log under Home Assistant → Settings → System → Logs → Choose Node-Red in the top right corner.

1 Like

Thanks for the extra info. I’m considering buying the 6741W to replace a 6701W

Is everything fully functional?

Meaning, are you able to receive events for:

  • Someone rings the bell
  • Video from outside camera
  • Communicate with whomever is ringing
  • Open door

Thanks!

Only the open door function is working. Seeing the video or even communicate with the visitor is not (yet?) possible as far as I know.

1 Like

Sorry for the ignorance, but where is the yaml file? I don’t see any in the config folder of node red. Also I don’t see the “npm_packages:” anywhere to include the comelit-client line…
I’m using node red in docker, but not HA-addon.

Not sure if there is a difference between a regular HA-addon or having it running in docker. That is how it looks to me (Settings → Addons → Node-RED → Configuration:

1 Like

I don’t have thi soption, but i managed to install login into a bash of the docker container and typing npm install comelit-client.

Perfect. Did you manage to get the other steps working?