Saltar al contenido principal

Integración domótica Blocky, gratuita y de código abierto

Integración Blocky para Gladys Assistant

Bloqueador DNS Blocky: pausa del bloqueo por grupo, estadísticas, actualizar las listas.

Siga y controle su proxy DNS y bloqueador de anuncios Blocky desde Gladys, a través de su red local: pause su bloqueo cinco minutos desde el panel cuando un sitio web no funcione, pause solo algunos grupos de listas desde una escena, actualice las listas, vea sus consultas de la última hora y sepa cuándo deja de responder.

Probada con un Blocky v0.35 real (la imagen Docker oficial), todavía no con una instalación real de Gladys: sus comentarios son bienvenidos. Si algo no funciona como se describe, dígalo en el foro de Gladys o en las issues.

Lo que necesita​

  • Gladys Assistant 5.1.0 o posterior (5.2.0 o posterior para el botón Pausa… del widget).
  • Blocky con su puerto HTTP accesible desde Gladys (ports: http: 4000 en config.yml). La API REST de Blocky no tiene contraseña: Gladys se dirige a ella directamente, como el comando blocky.
  • Para las estadísticas, el punto Prometheus de Blocky activado:
prometheus:
enable: true

Sin él, el dispositivo solo tiene el interruptor de bloqueo, y el widget solo el estado y los botones.

Configuración​

  1. Instale la integración desde el catálogo de Gladys.
  2. En Configuración, introduzca la Dirección de su servidor (por ejemplo 192.168.1.2: se añade el puerto 4000; o una dirección completa como http://192.168.1.2:4000 o https://dns.example.net) y, si lo desea, un Nombre. ¿Dos o tres servidores? Rellene también las secciones Segundo servidor y Tercer servidor.
  3. Guarde y haga clic en Probar la conexión: el mensaje bajo el botón indica, para cada servidor, si responde, su versión, el estado de su bloqueo y si las estadísticas están activas.
  4. Abra la pestaña Descubrir: un dispositivo por servidor. Haga clic en Añadir, elija una habitación y guarde.

Opciones:

  • Aceptar certificados autofirmados: para una dirección https:// (el puerto HTTPS de Blocky) con un certificado autofirmado. Déjela desmarcada para las direcciones http://.
  • Intervalo de actualización: con qué frecuencia se leen los servidores, de 30 segundos (por defecto) a 5 minutos.
  • Apagar el interruptor de bloqueo: lo que hace el interruptor del dispositivo al apagarlo: pausar el bloqueo 5 minutos (por defecto), 15, 30 o 60 minutos, o desactivarlo hasta que lo vuelva a encender.
  • Idioma de los nombres de funciones: inglés, francés, alemán o español. Los nombres se asignan al añadir un dispositivo (francés por defecto).

El dispositivo de cada servidor​

FunciónQué es
BloqueoInterruptor: encendido, Blocky bloquea los dominios listados; apagado, deja pasar todo
Consultas DNS (última hora)Consultas recibidas en los últimos 60 minutos
Consultas bloqueadas (última hora)Consultas bloqueadas en los últimos 60 minutos
Proporción bloqueada (última hora)Proporción de consultas bloqueadas, en %, redondeada
Tasa de caché (última hora)Proporción de las consultas enviadas aguas arriba que respondió la caché, en %, redondeada
Dominios bloqueadosEntradas de las listas de bloqueo, todos los grupos juntos
VersiónLa versión instalada de Blocky

Todas las funciones salvo Bloqueo vienen del punto Prometheus. Blocky cuenta desde su arranque; la integración calcula la última hora a partir de dos lecturas separadas por una hora. Justo después del arranque de Gladys, de la integración o de Blocky, las cifras aparecen en la segunda lectura y cubren un tiempo más corto, hasta una hora. Activar o desactivar Prometheus añade o quita estas funciones: Gladys propone entonces Actualizar el dispositivo en la pestaña Descubrir.

El interruptor pasa a apagado en cuanto Blocky indica su bloqueo como desactivado, también cuando solo algunos grupos están en pausa. Cuando una pausa tiene duración, Blocky vuelve a activar el bloqueo por sí mismo al final, y el interruptor lo sigue. La insignia del dispositivo muestra Local cuando el servidor responde e Inaccesible cuando no.

Panel​

Añada el widget Blocky a un panel. Por defecto muestra todos sus servidores juntos; elija uno en su configuración para mostrar solo ese. Pausar un solo servidor de dos no cambia nada: sus dispositivos consultan entonces el otro.

El widget muestra las consultas, las consultas bloqueadas y la proporción bloqueada de la última hora, el estado de cada servidor (bloqueo activo, en pausa con los minutos restantes, desactivado, inaccesible), los grupos de una pausa que no los cubre todos, la tasa de caché y los dominios bloqueados. Sus botones:

  • Pausa 5 min y Pausa 30 min: pausan todo el bloqueo de inmediato;
  • Pausa…: abre un pequeño formulario para introducir la duración en minutos (Gladys 5.2.0 o posterior; un Gladys más antiguo responde que hay que actualizarlo);
  • Reactivar: vuelve a activar el bloqueo. Muestra una marca de verificación mientras el bloqueo está activo en todas partes.

Escenas​

Disparadores​

  • Bloqueo de Blocky en pausa: el bloqueo se ha desactivado, desde Gladys o desde otro lugar (el comando blocky, otra herramienta). Filtro por servidor y por origen (Desde Gladys o Fuera de Gladys). Las acciones pueden leer el nombre del servidor, la duración de la pausa en minutos (duration_minutes, 0 cuando no tiene fin) y los grupos en pausa (groups; una pausa de todo el bloqueo lista todos los grupos, más default).
  • Bloqueo de Blocky reactivado: el bloqueo vuelve a estar activo. El origen indica si la pausa terminó por sí sola (Fin de la pausa), desde Gladys o desde otro lugar; paused_minutes indica cuánto duró.
  • Blocky ya no responde: un servidor no ha respondido a dos lecturas seguidas (la segunda 15 segundos después de la primera). El DNS de su casa puede estar caído. error indica el motivo, en el idioma de la configuración.
  • Blocky vuelve a responder: ha vuelto; down_minutes indica al cabo de cuánto tiempo.

Acciones​

  • Pausar el bloqueo de Blocky: pausa el bloqueo en un servidor, o en todos cuando el campo se deja vacío, durante un número de minutos (5 por defecto, 0 hasta reactivar, un día como máximo). Grupos: déjelo vacío para pausar todo el bloqueo, o introduzca nombres de grupos de sus denylists, separados por comas (por ejemplo ads), para pausar solo esos. Una nueva pausa sustituye a la que está en curso. Las acciones siguientes pueden leer cuántos servidores se pausaron.
  • Reactivar el bloqueo de Blocky: vuelve a activar el bloqueo, en un servidor o en todos.
  • Actualizar las listas de Blocky: vuelve a descargar ahora las listas de bloqueo y de permitidos, por ejemplo tras editar un archivo de lista.
  • Vaciar la caché DNS de Blocky: vacía la caché DNS, por ejemplo tras cambiar un registro, para que las siguientes consultas obtengan una respuesta nueva.
  • Leer las estadísticas de Blocky: lee las consultas de la última hora en una frase, como «En la última hora, 1234 consultas DNS, de ellas 123 bloqueadas (10 %).», en el idioma de la configuración. Las acciones siguientes pueden enviarla (sentence) o usar las cifras (queries_last_hour, blocked_last_hour, blocked_percent, blocking_enabled). Requiere el punto Prometheus.

El interruptor Bloqueo también se puede usar con la acción estándar de Gladys que controla un dispositivo.

Ideas de escenas​

  • Hora de jugar: cada miércoles a las 14:00, Pausar el bloqueo de Blocky durante 120 minutos con el grupo games: los sitios de juegos se abren dos horas, los anuncios siguen bloqueados y el bloqueo vuelve solo.
  • Alerta DNS: Blocky ya no responde → enviar un mensaje «Blocky {{triggerEvent.data.server}} no responde: {{triggerEvent.data.error}}». Y Blocky vuelve a responder → «de vuelta tras {{triggerEvent.data.down_minutes}} min».
  • Red de seguridad: una escena cada tarde a las 20:00 con Reactivar el bloqueo de Blocky, para que un interruptor apagado «hasta volver a encenderlo» nunca se quede apagado toda la noche.

Solución de problemas​

  • «no hay API de Blocky en esta dirección»: otra cosa responde ahí, o el puerto es el del DNS. Introduzca el puerto HTTP de Blocky (ports: http: en config.yml, a menudo 4000): 192.168.1.2, o http://192.168.1.2:4000.
  • «grupo desconocido»: el campo Grupos de la pausa nombra un grupo que no está en las denylists de config.yml (se distinguen mayúsculas y minúsculas).
  • Sin estadísticas: active prometheus: enable: true en config.yml y reinicie Blocky. Probar la conexión indica «estadísticas activas» cuando funciona.
  • «certificado rechazado»: ha introducido una dirección https://; marque Aceptar certificados autofirmados, o use la dirección http://.
  • «la dirección redirige»: introduzca la dirección https://.
  • «una contraseña protege esta dirección»: un proxy inverso con inicio de sesión está delante de Blocky; dé a Gladys la dirección directa de Blocky.
  • «no responde»: compruebe que http://<dirección>:4000/api/blocking/status se abre desde un ordenador de la red de Gladys. Los nombres terminados en .local no suelen funcionar dentro de la integración: use la dirección IP.
  • Registros: en la página de la integración en Gladys, o docker logs en el host. Muestran el arranque, cada servidor perdido y recuperado, los problemas (una vez cada uno, no en cada lectura) y sus órdenes. Inicie el contenedor con LOG_LEVEL=debug para ver cada lectura y cada nuevo intento.

Límites​

  • Una integración gestiona hasta tres servidores. Las instancias de Blocky que comparten su estado mediante Redis se pausan juntas: basta con pausar una.
  • La integración lee cada servidor una vez por intervalo de actualización (dos pequeñas consultas: el estado del bloqueo y la página Prometheus): ninguna cuota está en juego.
  • Las cifras solo cubren la última hora; Gladys guarda su historial.
  • Las proporciones se redondean en el dispositivo (Gladys no tiene sensor de porcentaje decimal); el widget muestra un decimal para la proporción bloqueada.
  • La integración no modifica las listas, ni los grupos de clientes, ni la configuración de Blocky: use config.yml para ello.

Esta integración no está afiliada a Blocky ni a sus autores.

Parámetros de configuración​

Estos son los parámetros que Blocky te pide en su pantalla de configuración en Gladys.

ParámetroTipoObligatorioDescripción
Su servidor BlockysectionNoLa API REST de Blocky, en su puerto HTTP (ports: http: 4000 en config.yml). Para las estadísticas, active también prometheus (enable: true). Hasta tres servidores.
DirecciónstringSíDirección IP o nombre del servidor (puerto HTTP 4000 por defecto), o una URL completa como http://192.168.1.2:4000.
NombrestringNoNombre del dispositivo en Gladys. Vacío: «Blocky» seguido de la dirección.
Segundo servidor (opcional)sectionNoLos mismos campos, para otro servidor Blocky de su red.
DirecciónstringNoDirección IP o nombre del servidor (puerto HTTP 4000 por defecto), o una URL completa como http://192.168.1.2:4000.
NombrestringNoNombre del dispositivo en Gladys. Vacío: «Blocky» seguido de la dirección.
Tercer servidor (opcional)sectionNoLos mismos campos, para otro servidor Blocky de su red.
DirecciónstringNoDirección IP o nombre del servidor (puerto HTTP 4000 por defecto), o una URL completa como http://192.168.1.2:4000.
NombrestringNoNombre del dispositivo en Gladys. Vacío: «Blocky» seguido de la dirección.
OpcionessectionNo
Aceptar certificados autofirmadosbooleanNoPara direcciones https:// (puerto HTTPS de Blocky) con un certificado autofirmado. Márquelo solo para sus propios servidores.
Intervalo de actualizaciónselectNoCon qué frecuencia se leen los servidores Blocky.
Apagar el interruptor de bloqueoselectNoPausa el bloqueo durante este tiempo, o hasta que se vuelva a encender el interruptor.
Idioma de los nombres de funcionesselectNoNombres de las funciones al añadir un dispositivo y textos de los eventos de escena.

Cómo instalar Blocky en Gladys​

  1. En Gladys, abre Integraciones: Blocky aparece en el catálogo junto a las integraciones nativas, con una insignia de comunidad.
  2. Haz clic en Instalar. Gladys descarga la imagen Docker (ghcr.io/guim31/gladys-blocky:1.0.1), la ejecuta en un entorno aislado del núcleo y genera la interfaz de la integración (dispositivos, descubrimiento y configuración).
  3. Abre la pantalla de Configuración de la integración, rellena los parámetros y guarda.
  4. También puedes instalarla directamente desde la URL de su repositorio: https://github.com/guim31/gladys-blocky.

Blocky requiere Gladys >=5.1.0. El catálogo de Gladys se actualiza cada hora, así que una nueva versión está disponible como máximo una hora después de publicarse.

¿Todavía no usas Gladys? Es gratuito y de código abierto: sigue la guía de instalación para empezar.

Sobre las integraciones externas​

Blocky es una integración externa: una integración comunitaria empaquetada como contenedor Docker y publicada en GitHub. Gladys la instala con un clic y la ejecuta en un entorno aislado del núcleo. La publica y mantiene guim31, no el equipo principal de Gladys.

Suscríbete a la newsletter de Gladys Assistant

Unos pocos correos al mes sobre nuevas versiones y novedades del proyecto. Enviados por Pierre-Gilles Leymarie, fundador del proyecto. Puedes darte de baja cuando quieras 🙂