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

Publique en Mastodon desde una escena, reaccione a menciones y seguidores, siga sus contadores.
Conecta una cuenta de Mastodon a Gladys: las escenas pueden publicar en Mastodon y escribir en privado a las personas que usted conoce, y pueden iniciarse cuando la cuenta es mencionada, recibe una mención privada, consigue un nuevo seguidor o ve una publicación impulsada o marcada como favorita. Un dispositivo sigue los contadores de la cuenta (seguidores, cuentas seguidas, publicaciones, notificaciones sin leer), y un widget del panel muestra las últimas notificaciones.
Funciona con cualquier servidor que hable la API de Mastodon: Mastodon, GoToSocial, Akkoma, Pleroma.
Probada con un servidor GoToSocial real, todavía no con el propio Mastodon ni con un Gladys real: sus comentarios son bienvenidos en GitHub.
Lo que necesita
- Gladys 5.1 o posterior.
- Una cuenta de Mastodon. Es preferible una cuenta dedicada a la casa (marcada como bot en su perfil): todo lo que publican las escenas se publica en su nombre.
- Un token de acceso de esta cuenta: en el servidor, abra Preferencias → Desarrollo → Nueva aplicación, dele un nombre (Gladys), marque los permisos read y write:statuses (y write:media para adjuntar imágenes), guarde, abra la aplicación y copie Su token de acceso. En GoToSocial: Ajustes → Aplicaciones, y después solicite un token para la aplicación.
Configuración inicial
- Instale la integración: Integraciones → Instalar desde GitHub, dirección
https://github.com/guim31/gladys-mastodon. - En su pestaña Configuración, rellene:
- Dirección del servidor: la dirección de su servidor, p. ej.
https://mastodon.social. - Token de acceso: el token copiado arriba.
- Cuentas autorizadas: las cuentas cuyas menciones inician escenas, separadas por comas,
p. ej.
[email protected], bob(bobes una cuenta de su propio servidor). Vacío: ninguna mención inicia una escena. Estas cuentas también pueden recibir menciones privadas de las escenas. - Idioma de los nombres: el idioma de las funciones del dispositivo y de los errores devueltos a las escenas.
- Dirección del servidor: la dirección de su servidor, p. ej.
- Guarde. El estado pasa a «conectado», y la cuenta aparece en la pestaña Descubrir: añádala para obtener sus contadores.
- Probar la conexión comprueba el token y muestra la cuenta, sus seguidores y sus notificaciones sin leer.
El dispositivo
Un dispositivo por cuenta, llamado Mastodon @cuenta@servidor, con cuatro contadores: Seguidores,
Siguiendo, Publicaciones y Notificaciones sin leer. Se leen cada 5 minutos, y justo después de una
notificación. Las notificaciones sin leer son las posteriores al marcador de lectura de las aplicaciones de
Mastodon: leerlas en la interfaz web de Mastodon o en una aplicación compatible las devuelve a 0. En los
servidores sin el recuento de Mastodon 4.3 (GoToSocial, Mastodon más antiguo), se cuentan 40 como máximo.
Panel
El widget Mastodon muestra si la cuenta está conectada, sus seguidores y notificaciones sin leer, y las cinco últimas notificaciones (menciones, seguidores, impulsos, favoritos). Las menciones privadas nunca aparecen: el panel lo ve toda la casa. Dos botones: Marcar como leído (cuando hay notificaciones sin leer) mueve el marcador de lectura a la notificación más reciente, Probar la conexión lanza la prueba de arriba.
Escenas
Disparadores
- Mención de Mastodon recibida: una publicación pública, no listada o solo para seguidores menciona la
cuenta. Filtros: Autor (una dirección como
[email protected]) y Visibilidad. Variables: el autor (dirección y nombre visible), el texto sin las menciones iniciales, la visibilidad, el identificador del mensaje y su dirección. - Mención privada de Mastodon recibida: una mención privada (un mensaje directo) ha llegado a la cuenta. Filtro: Autor. Las mismas variables, sin la visibilidad.
- Nuevo seguidor de Mastodon: alguien sigue la cuenta, o lo solicita cuando la cuenta está bloqueada. Variables: el autor y si se trata de una solicitud de seguimiento por aprobar.
- Publicación de Mastodon impulsada o favorita: alguien ha impulsado o marcado como favorita una
publicación de la cuenta. Filtro: Tipo. Variables: el tipo (
boostpara un impulso,favouritepara un favorito), el autor, el texto y la dirección de la publicación.
Solo las menciones de las Cuentas autorizadas inician una escena: con la lista vacía, ninguna (los seguidores, impulsos y favoritos activan sus disparadores para todos). La propia cuenta nunca inicia un disparador, y las notificaciones de más de 10 minutos (recibidas mientras Gladys estaba detenido) no inician nada.
Acciones
- Publicar en Mastodon: publica un mensaje. Visibilidad: no listada por defecto (en el perfil, no en
las líneas públicas), pública o solo seguidores. Advertencia de contenido opcional, y una imagen
opcional: una Dirección de la imagen en http(s) que la integración pueda alcanzar (la dirección de
instantánea de una cámara, por ejemplo
http://usuario:contraseñ[email protected]/snapshot.jpg; JPEG, PNG, GIF o WebP, 8 MB como máximo) con su Descripción de la imagen para los lectores de pantalla. El texto se corta a la longitud que permite el servidor (500 caracteres por defecto en Mastodon). - Enviar una mención privada de Mastodon: escribe en privado a una cuenta. El Destinatario debe ser una
cuenta autorizada o seguida por la cuenta: la integración nunca escribe a un desconocido. En respuesta a
(identificador) toma la variable identificador del mensaje de un disparador, para responder en la misma
conversación. Las demás
@del mensaje se neutralizan (les sigue un carácter invisible): un texto tomado de un disparador nunca añade un destinatario.
Ambas acciones devuelven Enviado, el Identificador del mensaje, la Dirección del mensaje y el Error, para las acciones siguientes de la escena. Las escenas publican 30 mensajes por hora como máximo: por encima, se omiten.
Ideas de escenas
- Han llamado a la puerta: cuando se pulsa el timbre → Publicar en Mastodon, solo seguidores, «Alguien ha llamado a la puerta», con la dirección de instantánea de la cámara de la entrada.
- Una orden por mención privada: Mención privada de Mastodon recibida, autor
[email protected]→ si el texto es «garaje», cerrar el garaje, y después Enviar una mención privada de Mastodon al autor, en respuesta al identificador del mensaje: «El garaje se está cerrando.» - Un nuevo seguidor: Nuevo seguidor de Mastodon → una notificación en el teléfono de la casa, con el autor.
Solución de problemas
- «token de acceso rechazado»: el token se revocó o se copió mal; cree uno nuevo.
- «rechazado: ¿tiene el token los permisos read y write:statuses?»: a la aplicación le falta un permiso; márquelo y utilice el nuevo token.
- Ningún disparador aunque los contadores funcionan: puede que un proxy inverso bloquee la API de
streaming (paso a WebSocket). La integración lee entonces las notificaciones cada minuto: los disparadores
llegan con retraso, pero llegan. Compruebe que su proxy transmite
/api/v1/streamingcomo WebSocket. - Una mención no inicia nada: compruebe que su autor figura en Cuentas autorizadas (dirección completa, p. ej.
[email protected]) y el filtro Autor del disparador; ajusteLOG_LEVEL=debugpara ver las menciones ignoradas en los registros. - Falta la imagen: la dirección debe ser accesible desde el contenedor de la integración y responder con un tipo de imagen.
Límites
- Una cuenta por Gladys. El token da a la integración los derechos de la cuenta: utilice una cuenta dedicada.
- Las menciones surten efecto en un segundo aproximadamente gracias a la API de streaming; las notificaciones perdidas durante un corte se releen después, pero las de más de 10 minutos no inician ninguna escena, y se releen 200 como máximo.
- Gladys no da sus imágenes de cámara a una integración de dispositivos: la imagen de una publicación viene de una dirección.
- Mastodon limita una cuenta a 300 publicaciones en 3 horas y 300 solicitudes en 5 minutos; la integración hace unas 3 solicitudes cada 5 minutos, más cuando llegan notificaciones.
- Las encuestas, ediciones y notificaciones de administración no son disparadores. Solo texto: el HTML de las publicaciones se convierte en texto plano.
- Sin relación con Mastodon gGmbH. Mastodon es una marca de Mastodon gGmbH.
Parámetros de configuración
Estos son los parámetros que Mastodon te pide en su pantalla de configuración en Gladys.
| Parámetro | Tipo | Obligatorio | Descripción |
|---|---|---|---|
| Para empezar | section | No | En su servidor Mastodon, abra Preferencias → Desarrollo → Nueva aplicación, marque los permisos read y write:statuses, guarde y copie el token de acceso. Es preferible una cuenta dedicada a la casa. |
| Dirección del servidor | string | Sí | La dirección de su servidor Mastodon (o GoToSocial, Akkoma, Pleroma), p. ej. https://mastodon.social. |
| Token de acceso | secret | No | El token de acceso de la aplicación creada en Preferencias → Desarrollo. |
| Cuentas autorizadas | string | No | Cuentas cuyas menciones activan escenas, separadas por comas, p. ej. [email protected], bob. Vacío: nadie. También pueden recibir menciones privadas. |
| Idioma de los nombres | select | No | Idioma de las funciones del dispositivo y de los errores devueltos a las escenas. |
Cómo instalar Mastodon en Gladys
- En Gladys, abre Integraciones: Mastodon aparece en el catálogo junto a las integraciones nativas, con una insignia de comunidad.
- Haz clic en Instalar. Gladys descarga la imagen Docker (
ghcr.io/guim31/gladys-mastodon: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). - Abre la pantalla de Configuración de la integración, rellena los parámetros y guarda.
- También puedes instalarla directamente desde la URL de su repositorio: https://github.com/guim31/gladys-mastodon.
Mastodon 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
Mastodon 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.
- Explorar todas las integraciones, nativas y de la comunidad
- Crear y publicar tu propia integración externa
- Código fuente en GitHub — fuente de esta documentación