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
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:)
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.
-
Install the Node Red Addon
-
Before starting the Node Red Addon make sure that you include the
comelit-client
undernpm_packages
. For some reason the GUI was not working properly, so I had to add it manually in yaml:
npm_packages:
- comelit-client
-
Now you may start the Node Red Addon and make sure no error occurs.
-
In the next step should add a trigger of your choice (for testing purposes, you may use
inject
) and connect it to afunction
node. -
Double click on the
function
node and go to settings and add the two moduleslog4js
andcomelit-client
. To do so, you should click onadd
type inlog4js
andcomelit-client
under module. The variable filed is filled automatically. However, it should belog4js
anscomelitClient
. -
Now leave the
start
andend
tab untouched and copy the above mentioned code to thefunction
tab (the English name might be different). -
Replace
X.X.X.X
by the ip address of your Comelit device. -
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 -
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 → ChooseNode-Red
in the top right corner.
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.
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:
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?