Ir al contenido principal

Domotiza tu Timbre Inteligente con Shelly

Convierte tu timbre convencional en un timbre inteligente con un relé Shelly. Recibe notificaciones en el móvil, haz que Alexa te avise o enciende luces cuando alguien llame a tu puerta.


script_timbre_shelly.js  ·  Shelly 1 Mini Gen4
// --- CONFIGURACIÓN ---
let CONFIG = {
  // Tramo siesta
siestaInicio: 15, // 15:00
siestaFin:
18,    // 18:00
// Tramo noche (cruza medianoche)
nocheInicio:  23,  // 23:00
nocheFin:
7,      // 07:00
relayId:
0,
  // Ventana para contar toques de emergencia
ventanaMs:
1200,
  // Fail-safe: duración del pulso al timbre (ms)
pulsoMs:
1000,
  // Debounce básico (ms)
debounceMs:
80
};
let clickCount = 0;
let timerVigilante = null;
let lastClickTs = 0;

// (Opcional) Forzar Detached desde script.
// Configuración modo separado o Detached Mode. Lo hemos hecho en la App.
// Descomentar para hacerlo sólo en script.
// Shelly.call("Switch.SetConfig", { id: CONFIG.relayId, config: { in_mode: "detached" } });

function estaEnSilencio(hora) {
  // Siesta normal
let enSiesta = (hora >= CONFIG.siestaInicio && hora < CONFIG.siestaFin);
  // Noche: tramo que cruza medianoche (ej. 23 -> 7)
let enNoche = (CONFIG.nocheInicio <= CONFIG.nocheFin)
    ? (hora >= CONFIG.nocheInicio && hora < CONFIG.nocheFin)
    : (hora >= CONFIG.nocheInicio || hora < CONFIG.nocheFin);
  return enSiesta || enNoche;
}

Shelly.addEventHandler(function (event) {
  if (event.component === "input:0" && event.info.event === "btn_down") {
    // Debounce básico para evitar rebotes
let now = Date.now();
    if (now - lastClickTs < CONFIG.debounceMs) return;
    lastClickTs = now;
    clickCount++;
    if (timerVigilante) Timer.clear(timerVigilante);
    timerVigilante = Timer.set(CONFIG.ventanaMs, false, function () {
      let hora = new Date().getHours();
      let silencio = estaEnSilencio(hora);
      if (clickCount >= 3) {
        ejecutarSonido();          // Emergencia: siempre
      } else if (!silencio) {
        ejecutarSonido();          // Normal: solo fuera de silencio
      }
      clickCount = 0;
    });
  }
});

function ejecutarSonido() {
  Shelly.call("Switch.Set", { id: CONFIG.relayId, on: true });
  // Fail-safe por si Auto-OFF no está configurado
Timer.set(CONFIG.pulsoMs, false, function () {
    Shelly.call("Switch.Set", { id: CONFIG.relayId, on: false });
  });
}

EL SCRIPT

¿Cómo funciona y cómo lo personalizo?

No necesitas saber programar. Solo hay cuatro números que puedes cambiar para adaptarlo a tus horarios. El resto lo puedes dejar exactamente como está.

¿Qué hace el script exactamente?

Modo normal — fuera del horario de silencio

Alguien pulsa el timbre → el Shelly activa la campana física y, si tienes la escena de Alexa configurada, tus altavoces avisan en casa. Todo funciona como un timbre normal, pero inteligente.

Modo silencio — durante la siesta o la noche

Alguien pulsa el timbre → la campana física no suena. Nadie en casa se despierta ni se molesta. El evento queda registrado en el Shelly y, si quieres, puedes seguir recibiendo aviso en el móvil o por Alexa sin despertar a nadie.

Modo emergencia — 3 toques rápidos

Si alguien pulsa el timbre 3 veces seguidas en menos de 1,2 segundos, el Shelly entiende que es urgente y activa la campana aunque estés en horario de silencio. Ideal para situaciones donde realmente necesitan avisarte.

¿Cómo cambio los horarios?

Al principio del script verás este bloque. Solo tienes que cambiar los números:

siestaInicio: 15,  // Hora a la que empieza el silencio de siesta (15 = 15:00)
siestaFin:
18,  // Hora a la que termina el silencio de siesta (18 = 18:00)
nocheInicio:  23,  // Hora a la que empieza el silencio nocturno (23 = 23:00)
nocheFin:
7,   // Hora a la que termina el silencio nocturno (7 = 07:00)

Ejemplos prácticos:

✅ Quiero silencio solo por la noche, sin siesta
Pon siestaInicio: 0 y siestaFin: 0 (ambos a cero, así nunca entra en modo siesta). Los valores de noche los dejas como están.
✅ Quiero siesta de 14:00 a 16:30
Cambia a siestaInicio: 14 y siestaFin: 16. El script trabaja en horas enteras, así que lo más cercano sería las 16:00. Si necesitas media hora exacta, habría que modificar el script un poco más.
✅ Quiero que nunca suene (modo vacaciones)
Pon nocheInicio: 0 y nocheFin: 0, y siestaInicio: 0 y siestaFin: 24. El timbre nunca sonará, pero el modo emergencia (3 toques) seguirá funcionando.
✅ Quiero desactivar el modo emergencia
En el script busca la línea if (clickCount >= 3) y cambia el 3 por un número muy alto como 99. Así nunca se activará.

Recuerda: cada vez que cambies algo en el script, guarda los cambios y pulsa Stop → Start para que el Shelly cargue la nueva configuración. Sin ese paso, los cambios no se aplican.

INTRODUCCIÓN

¿Por qué los timbres tradicionales se quedan cortos?

Los timbres clásicos son «tontos»: si duermes la siesta, te despiertan. Si teletrabajas y estás en reunión, te molestan. Si no estás en casa, no te enteras. Y encima, muchos timbres «inteligentes» del mercado, cuando se cae Internet, se quedan como un pisapapeles caro.

Esta guía actualiza el método de 2022 con todo lo aprendido desde entonces: inteligencia local, modo silencio automático, modo emergencia y funcionamiento garantizado incluso sin WiFi.

Modo Normal

Pulsan → suena el timbre físico y Alexa avisa por los altavoces.

Modo Siesta / Noche

Pulsan → la campana no suena, pero el evento queda registrado y Alexa puede avisar.

Modo Emergencia

3 toques rápidos → suena aunque esté en horario de silencio.

PASO 1

Hardware correcto y advertencia importante

Vamos a usar el Shelly 1 Mini Gen4. También podrías usar el Shelly 1 Gen4 o Gen3, pero el Mini Gen4 es el recomendado por tamaño y porque aquí no necesitas más.

La razón clave es su contacto seco: el Shelly separa su alimentación de la del timbre. Actúa como un interruptor, juntando dos cables sin mezclar corrientes donde no toca.

⚠️ Esta guía es para timbres de 230V.

Si tu timbre es de 12V o 24V, el esquema cambia en un punto crítico: nunca puentear la fase al borne I. En 12/24V, el Shelly Mini 1 se alimenta a 230V para funcionar, pero en I y O conectamos los dos cables que vienen del transformador del timbre. El Shelly solo los junta como si fuera un pulsador manual, sin meterles la corriente de casa. De lo contrario, lo quemarás.

Shelly

⚡ Shelly 1 Mini Gen4

El relé compacto para domotizar tu timbre con lógica local. Compra el dispositivo usado en esta guía.

VER PRODUCTO ➜

PASO 2

Esquema de conexión para 230V

Un timbre normal funciona así: hay un pulsador al que llega un cable de fase, del pulsador sale un cable al timbre y del timbre vuelve el neutro. Circuito cerrado. Pulsas → suena. Ahora, borne a borne en el Shelly 1 Mini Gen4:

Borne Función Descripción
L y N Alimentación 230V para que el Shelly funcione.
SW Pulsador Cable que viene del pulsador de la calle.
I Input / Fase Metemos fase (puente desde L). Solo en 230V. En 12/24V este borne no lleva corriente de casa.
O Output / Timbre Cable que va al timbre físico.

⚠️ Seguridad ante todo: trabaja siempre sin electricidad. Baja el magnetotérmico antes de hacer cualquier conexión. Si no lo ves claro, llama a un profesional.

PASO 3

Configuración en la app de Shelly

  1. Levanta el magnetotérmico.
  2. Abre la app de Shelly → Agregar dispositivo → sigue los pasos.
  3. Ponle un nombre al dispositivo (ej.: "Timbre Mini 1").

PASO 4

Auto-Off a 1 segundo: el "seguro de vida"

Este paso es importantísimo para no quemar el timbre. Casi todos los timbres clásicos funcionan con una bobina diseñada para recibir un golpe rápido, no para estar alimentada durante segundos. Si alguien se queda apoyado en el pulsador o el relé se queda pegado, la bobina se calienta, derrite plástico y el timbre muere.

  1. Ve al Shelly Mini 1 → Menú → Icono del reloj.
  2. Activa Apagado Automático → 1 segundo.
  3. Pulsa Guardar. Revisa que esté en 1s y no en 1m.

✅ Con esto, pase lo que pase, el timbre solo recibe un pulso de 1 segundo. Ya puedes presionarlo 30 segundos que no pasará nada.

PASO 5

Detached Mode: el "divorcio eléctrico"

Ve a Ajustes → Entrada/Salida y configura:

  1. Modo: Botón
  2. Tipo de relé: Separado (Detached Mode)

¿Por qué es imprescindible?

Sin Detached Mode el timbre sonará siempre que pulsen, sin ningún tipo de inteligencia. Al ponerlo en Detached hacemos un "divorcio eléctrico": el botón solo avisa al Shelly ("oye, han pulsado") y ahora es el Shelly quien decide si deja pasar corriente al timbre o no. A partir de aquí, el Shelly tiene el control total.

PASO 6

Instalar el script local en el Shelly

Aquí está la diferencia respecto al método de 2022: antes dependíamos de escenas en nube. Ahora el script corre dentro del propio Shelly.

  1. En la app de Shelly → relé → Información del dispositivo → anota la IP.
  2. Desde un PC/tablet/móvil en la misma red, escribe esa IP en el navegador.
  3. Panel del Shelly → Scripts → Nuevo Script.
  4. Pega el código del bloque de arriba.
  5. Pulsa Guardar y luego Start. No basta con pegarlo, hay que darle a Start.

⏱️ ¿Por qué tarda ~1,2 segundos en sonar?

El script espera ese tiempo para ver si vienen más pulsaciones y poder detectar la emergencia (3 toques). Si sonara instantáneo, no habría manera de distinguir "normal" de "3 toques". Esa pausa es intencionada: el sistema está "pensando".

PASO 7

Integración con Alexa

  1. En la app de Shelly crea una nueva escena.
  2. Dispositivo → Shelly Mini 1 → Pulso / Pulsación corta → Siguiente.
  3. Acción: Notificación → Notificar a Alexa. Nombre: "Aviso Alexa".
  4. En Amazon Alexa, integra la Skill de Shelly si no la tienes ya.
  5. Crea una rutina en Alexa: cuando se active "Aviso Alexa" → Alexa dice "Hay alguien en la puerta". Elige qué altavoces hablan.

Si no creas rutina, Alexa dirá el nombre de la escena tal cual. Para mensaje personalizado usa la rutina y desactiva el aviso por voz en la propia escena "Aviso Alexa".

¿Y Google Home?

Google no permite anuncios de voz directos desde un "interruptor". Puedes hacer una automatización con notificación push al móvil, pero no es un anuncio hablado.

PASO 8

Utilidades extra

Registro de eventos: aunque estés en modo siesta, en el "Event Log" queda guardado cuándo tocaron.

Modo vacaciones: ajusta el horario del script para que no suene nunca, pero tú sigues recibiendo avisos en el móvil.

Zona horaria: si está mal en los ajustes de tu Shelly → Time, el modo siesta saltará cuando no toca. Ve a Ajustes → Time y revísalo antes de nada.

PASO 9

Prueba final: ¿y si se va el WiFi?

Si se cae el WiFi, muchos timbres inteligentes se quedan tontos. Aquí no. El modo siesta y el modo emergencia funcionan por cable y código local. La decisión se toma dentro de casa.

✅ Eso sí: si falla la red, no recibirás el aviso por Alexa. Pero la campana física seguirá funcionando según la lógica del script.

¿Y con Sonoff? Se podría hacer, pero de otra manera y apoyándose en automatizaciones externas. Sin plataforma domótica la flexibilidad del script local del Shelly es difícil de igualar.

PASO 10

Telefonillo (con responsabilidad)

⚠️ Si es analógico antiguo (4+N): se puede hacer algo similar.

Si es digital moderno de 2 hilos: no lo hagas. Puedes romper la centralita, y no solo la tuya, sino la de toda la comunidad. Para ese caso existe un producto específico.

FAQ · ERRORES TÍPICOS

Solución rápida a los problemas más comunes

❌ El timbre no suena nunca
Revisa estas tres cosas:

  • ¿Está en modo DetachedSi no, el Shelly no está decidiendo nada.
  • ¿El script está en StartNo basta con pegarlo, hay que arrancarlo.
  • ¿Has puesto el Auto-Off mal configurado? 1 segundo es lo correcto.

❌ Suena siempre aunque esté en modo siesta
Seguramente está en modo normal, no Detached. O la zona horaria está mal configurada. Ve a Settings → Time y comprueba que la hora del Shelly sea la correcta. Si el Shelly cree que son las 3 AM cuando son las 3 PM, la siesta no cuadrará.

❌ No detecta los 3 toques de emergencia
Suele ser por dos motivos:

  • Pulsaciones demasiado lentas.
  • Haber reducido demasiado el parámetro ventanaMs en el script.

El segundo y pico que tarda en sonar no es retraso: es el Shelly escuchando si vienen más toques.

❌ Alexa no dice nada
  • Comprueba que la escena en Shelly esté bien creada.
  • Que en Alexa hayas creado la rutina.
  • Que el dispositivo esté vinculado correctamente a tu cuenta.
  • Como último recurso: borra la Skill y actívala de nuevo.

❌ En 12V no funciona o se comporta raro
Muy probablemente has metido fase de 230V en el borne I. En bajo voltaje el Shelly solo junta los dos cables del transformador; no inyecta corriente. Este punto es clave.

Un timbre que toma decisiones

Respeta tu descanso, la siesta, la noche, tiene modo emergencia y funciona incluso sin internet. Esto es solo la base: podríamos encender luces, mandar un Telegram, abrir el feed de la cámara…

Si has llegado hasta aquí, déjame "Timbre 2026" en los comentarios del vídeo.

⚡ Timbre 2026