Reutilizar contactos de puerta y PIR de una antigua central de alarma como entradas de Hermetry
Traducido del English por IA ·
Hola a todos, perdonad si este no es el lugar adecuado, soy bastante nuevo en todo esto.Hemos tomado un edificio que tenía un antiguo sistema de alarma monitorizado. El contrato de monitorización se ha cancelado y la central se está retirando, pero todos los sensores siguen en las paredes: unos 14 contactos magnéticos de puerta y 6 detectores de movimiento (PIR) en la planta baja. Cada uno tiene un cable de 4 hilos que vuelve al armario de la central. Algunos de los contactos de puerta solo usan 2 hilos.Mi idea es conservar los sensores y poner un ESP32 en el armario en lugar de la central, para poder ver en Hermetry qué puertas están abiertas fuera del horario y recibir una alarma. Ya tengo un ESP32 que envía una temperatura a Hermetry por MQTT (copiado de la guía de inicio), así que la parte de envío funciona.Lo que no entiendo:
- ¿Cómo conecto un contacto de puerta al ESP32? ¿Es simplemente un interruptor?
- Los PIR dicen 12VDC en la etiqueta. ¿Puede el ESP32 alimentarlos?
- El electricista dice que en algunos hay «resistencias al final de la línea». ¿Para qué sirven y tengo que quitarlas?
He medido un bucle de puerta con un multímetro: unos 2,2k ohmios con la puerta cerrada, circuito abierto con la puerta abierta.
Hi everyone, sorry if this is the wrong place, I’m pretty new to all of this.
We took over a building that had an old monitored security system. The monitoring contract is cancelled and the panel is being removed, but all the sensors are still in the walls: about 14 magnetic door contacts and 6 motion detectors (PIRs) on the ground floor. Each one has a 4-wire cable going back to the panel closet. Some of the door ones only have 2 wires used.
My idea is to keep the sensors and put an ESP32 in the closet instead of the panel, so I can see in Hermetry which doors are open after hours and get an alarm. I already have one ESP32 sending a temperature to Hermetry over MQTT (copied from the getting started guide), so the sending part works.
What I don’t understand:
- how do I wire a door contact to the ESP32? Is it just a switch?
- the PIRs say 12VDC on the label. Can the ESP32 power them?
- the electrician says there are «resistors at the end of the line» on some of them. What are those for and do I need to remove them?
I measured one door loop with a multimeter: about 2.2k ohms with the door closed, open circuit with the door open.
Traducido del English por IA ·
Siguiendo con esto, tenemos los mismos sensores sobrantes en dos de nuestros hoteles.
Following this, we have the same leftover sensors in two of our hotels.
Traducido del English por IA ·
Los contactos de puerta son simples interruptores reed, sí. Los PIR no pueden alimentarse desde el ESP32, necesitan su propia fuente de 12 V. ¿Sabes si las salidas de los PIR son contactos de relé o colector abierto? Normalmente está escrito en la placa dentro de la cubierta.
Door contacts are plain reed switches, yes. The PIRs will not run from the ESP32, they need their own 12 V supply. Do you know if the PIR outputs are relay contacts or open collector? It’s usually written on the board inside the cover.
Traducido del English por IA ·
He abierto uno. Pone «ALARM N.C. RELAY» junto a dos de los terminales y «TAMPER» junto a otros dos. El modelo es un DSC LC-100.
Opened one up. It says «ALARM N.C. RELAY» next to two of the terminals and «TAMPER» next to two others. Model is a DSC LC-100.
Traducido del English por IA ·
Bien, entonces todo es solo un contacto seco y esto es fácil. Hace un tiempo hice casi lo mismo para el almacén de un cliente.Los 2,2k que midió son la resistencia de fin de línea (EOL). El panel antiguo la usaba para distinguir entre «cerrado», «cable cortado» y «cortocircuito». Tiene dos opciones:
- Lo más sencillo: omitirla o ignorarla y leer cada bucle como una entrada digital. Puerta cerrada = 2,2k a tierra, que con el pull-up interno del ESP32 (alrededor de 45k) se lee como LOW. Abierta = HIGH. Funciona, pero un cable cortado se ve exactamente igual que una puerta abierta.
- Mantener la supervisión: lea cada bucle en un pin ADC con un pull-up de 10k a 3,3 V. Cerrado son unos 0,6 V, abierto 3,3 V, en cortocircuito 0 V. Así podrá enviar un valor
faultaparte.
Para 20 bucles se quedará sin pines ADC utilizables, así que yo usaría entradas digitales o añadiría un expansor I2C MCP23017 para las entradas.PIR: coloque una fuente de 12 V en el armario, alimente los PIR desde ella y conecte el contacto N.C. del relé a una entrada exactamente como una puerta. Conecte el negativo de 12 V a la tierra del ESP32 solo si es necesario, el relé ya está aislado. Los contactos de sabotaje también pueden ir a entradas si quiere saber cuándo alguien abre una tapa.En el lado de Hermetry, envíe cada entrada como 0/1, no como true/false, para obtener un historial en gráfico. Algo como:
{"door_lobby": 0, "door_dock": 1, "pir_hall": 0, "tamper_any": 0}
Envíe en cada cambio y además una vez por minuto, para que el último valor esté actualizado. Luego una regla de alarma como door_dock == 1 en el perfil, y una condición horaria para fuera de horario.
Good, then everything is just a dry contact and this is easy. I did almost the same thing for a client’s warehouse a while back.
The 2.2k you measured is the end-of-line (EOL) resistor. The old panel used it to tell «closed» from «wire cut» from «short». You have two choices:
- Simplest: bypass or ignore it and read each loop as a digital input. Closed door = 2.2k to ground, which with the ESP32 internal pull-up (around 45k) reads as LOW. Open = HIGH. That works, but a cut wire looks exactly like an open door.
- Keep the supervision: read each loop on an ADC pin with a 10k pull-up to 3.3 V. Closed is about 0.6 V, open is 3.3 V, shorted is 0 V. Then you can send a separate
faultvalue.
For 20 loops you will run out of usable ADC pins, so I’d do digital inputs, or add an MCP23017 I2C expander for the inputs.
PIRs: put a 12 V supply in the closet, power the PIRs from it, and wire the N.C. relay contact to an input exactly like a door. Tie the 12 V negative to the ESP32 ground only if you need to, the relay is isolated anyway. The tamper contacts can go to inputs too if you want to know when someone opens a cover.
On the Hermetry side, send each input as 0/1, not true/false, so you get a chart history of it. Something like:
{"door_lobby": 0, "door_dock": 1, "pir_hall": 0, "tamper_any": 0}
Send on every change plus once a minute, so the latest value is fresh. Then an alarm rule like door_dock == 1 on the profile, and a time condition for after hours.
Traducido del English por IA ·
Un pequeño añadido: aplique un antirrebote a los contactos reed en el firmware (20-50 ms) o una puerta cerrada de golpe enviará tres cambios seguidos.
Small add: debounce the reed switches in firmware (20-50 ms) or a slammed door will send three changes in a row.
Traducido del English por IA ·
^ sí. Y usa pines GPIO que no tengan función de arranque, así que evita 0, 2, 12 y 15 para los bucles.
^ yes. And use GPIO pins that have no boot role, so avoid 0, 2, 12 and 15 for the loops.
Traducido del English por IA ·
Ya funciona en un banco de pruebas con 4 puertas y 1 PIR. Elegí la opción 1, entradas digitales, y moví un bucle del GPIO 12 después de que la placa se negara a arrancar con la puerta abierta, justo lo que habías advertido. Ahora envío 0/1 y la gráfica se ve bien. Estoy pidiendo un MCP23017 para el resto. ¡Gracias a todos!
Got it working on a test bench with 4 doors and 1 PIR. I went with option 1, digital inputs, and moved one loop off GPIO 12 after the board refused to boot with the door open, which is exactly what you warned about. Sending 0/1 now and the chart looks right. Ordering an MCP23017 for the rest. Thanks all!
- Debes estar registrado para responder a este debate.
Únete a la conversación
Inicia sesión para preguntar y responder, dar me gusta a las publicaciones útiles y marcar la respuesta que resolvió tu problema. Cada aportación suma puntos y niveles.

