Buenas emergencio
No, los programas P2P no tienen nada que ver, si te refieres a tipo torrent, emule y tantos otros. Comparten similitudes, pero funcionalidades extremadamente diferentes. Si quieres usar emule/torren de forma adecuada, tienes por narices que abrir un puerto en el Router o usar upnp para que lo haga por tí. En este caso ese P2P es por la creación de una red distribuída donde te puedas conectar a decenas o cientos o miles de diferentes dispositivos, a la vez que tu propio equipo forma parte de esa misma red.
Una cámara IP o cualquier dispositivo de este tipo P2P no tiene nada que ver. Se usa P2P para facilitar la conexión entre ambas partes, teniendo por partes una tu dispositivo perosnal por ejemplo el movil con la aplicación que sea, y por otro lado la cerradura en este caso. No se crea una red distribuída ni mucho menos, y requiere siempre un servidor central, que precisamente es antagónico de lo que una red distribuída pretende. Si el servidor central cierra o tiene problemas, no te funcionará, así de simple, porque tu aplicación jamás podrá conectarse a la cerradura.
Sí, como te he dicho este tipo de dispositivos funcionan en muchas ocasiones. El problema no es que funcione en muchas ocasiones, el problema es que puede no funcionar en otras muchas. Depende como te he dicho de como lo haga el mismo fabricante, del Router que tenga uno delante de la cerradura (en este caso la cerradura pero pueden ser otros dispositivos) y por otro lado el Router que esté detrás del dispositivo desde el que quieres conectarte, sea por red de datos móviles que usa CGNAT o desde otra conexión WIFI.
Esto repito no es algo que yo me invente, puedes buscar en Google información sobre ello, son problemas muy habituales. No es complicado entender el motivo.
Cuando tenemos que usar NAT, y el Router o usa, tus equipo tienen una IP local, por ejemplo 192.168.1.2, que vamos a abreviar como 2, y el Router 192.168.1.1 que la abreviamos como 1. Cuando 2 quiere conectarse a Internet, envía el dato al Router. El Router tiene que la dirección de origen es la 2, pero esa no se puede enviar a internet, así que hace SNAT y cambia tu IP 2 por la IP pública que tiene asignada. El Router reenvía el paquete al destino. El destino no ve tu IP local, ve la IP de origen del Router, y envía la repuesta. El Router comprueba que el puerto y la dirección de origen de ese dato corresponde a una petición que el ha lanzado, así que lo revierte y hace DNAT, cambia el destino de la IP (que es la ip pública del Router) le pone la 2, y te lo manda a ti.
Si desde fuera se inicia la conexión, a menos que exista un puerto abierto en el Router, cuando el dato llegue al Router, comprueba que la IP/puerto de origen no está su tabla de seguimientos NAT, nadie ha intentando conectar con ellos, y descarta el paquete. Si existe un puerto abierto, lo reenvía según las reglas que tenga para ese puerto.
----------
La idea detrás de estas compañías es que primero dependas de ellas, y segundo que no requieras saber nada de Router. ¿Como se hace? Si la conexión la inicia el exterior, se bloquea. Si la conexión la inicia el enterior se permite, ¿pero como se reenvía al dispositivo que quiere acceder? No se puede. Así que usan un servidor intermedio. Tu cerradura se conecta SIEMPRE a dicho servidor, es una conexión saliente, NAT lo permite. La conexión se mantiene abierta y la cerradura tiene un UID, un identificador único. Cuando tu desde fuera te intentas conectar, no te conectas a la cámara, te conectas al servidor al que se conecta tu cámara. hace de intermediario.
Llegados a este punto uno podría pensar que ya está todo hecho, que el servidor puentea la conexión, y como el ya tiene una conexión establecida, te envía por ella. Pero esto no funciona prácticamente nunca, hay diferentes tipos de NAT, pero el más habitual es bloqueo de IP/puerto. El Router está permitiendo la conexión del servidor porque le llega todo siempre desde la misma IP y puerto de origen, si empieza a enviar datos tu dispositivo a la IP/puerto del Router (la conexión que mantiene el servidor central), el Router verá que el puerto es el mismo, pero la IP de origen no, y bloqueará la conexión.
Ante esto se suelen usar servidores STUN, pero estos tampoco valen cuando se usa NAT simétrica. Llegado este punto tan solo se puede intentar hacer Hole Punching. Problema... de nuevo esto no es universal, y solo funciona bien en el caso de que el NAT del Router aplique una lógica por lo general de incremento secuencia de puerto a usar, para que se pueda "adivinar". Hole Punching lo que hace es falsear paquetes de datos que envía a ambos lados (a la aplicación y a la cerradura) con la IP y puerto del otro, con la esperanza de que se abra entre ellos dos una conexión que antes era imposible.
Pero repito, esto no es universal, depende de mucho factores para que esto sea o no factible. Volviendo al punto de salida, mientras se usen dispositivos cuya conexión sea de tipo P2P, no puedes tener garantía de que funcione, estás dependiendo de un servidor de tercero que intenta forzar a lo bruto una conexión que el propio Router está diseñado por seguridad para evitar.
Saludos.