Notificación Push

Las notificaciones push se utilizan cuando es importante estar informado sobre los eventos de forma automática y lo antes posible. Por ejemplo, en el caso de una alarma antirrobo, los clientes son notificados inmediatamente de este evento (véase la aplicación de muestra ESP32MQTTAlarmSystem).

El servidor push RadioShuttle MQTT hace precisamente eso. Los topics MQTT monitorizados se envían inmediatamente a un dispositivo móvil, donde el mensaje se muestra junto con una señal de audio como una notificación push.

Las notificaciones push son una combinación de diferentes componentes:

Servicios push de Apple y Google

Para los dispositivos móviles, los fabricantes ofrecen los llamados servicios push. Esto significa que las notificaciones push se muestran automáticamente directamente en el dispositivo móvil. Si no hay recepción, el mensaje se envía tan pronto como el dispositivo móvil esté disponible de nuevo. Los servicios push son la conexión entre la aplicación RadioShuttle y el servidor push RadioShuttle MQTT.

La aplicación RadioShuttle

La aplicación gestiona la configuración de las notificaciones push. Todas las notificaciones push también se pueden ver allí. Después de una configuración única, las notificaciones push se reciben automáticamente incluso si la aplicación no se está ejecutando. La aplicación es la conexión entre el servidor push RadioShuttle MQTT y los servicios push de Apple o Google respectivamente.

La aplicación ofrece las siguientes funciones:

  • Indicación automática de las notificaciones push con sonido en el dispositivo móvil (incluso si la aplicación no está activa o la pantalla está bloqueada)
  • Notificación en segundos
  • Administración de cuentas de usuario (dirección del servidor MQTT con nombre de usuario y contraseña)
  • Administración de los topics de MQTT, que deben activar una notificación push (alarma). La notificación push puede activarse/desactivarse con sonido para topics individuales
  • Varios usuarios pueden utilizar la misma cuenta. Ejemplo: madre, padre, hijo. Todos utilizan automáticamente la misma configuración. Todos son notificados al mismo tiempo
  • Una aplicación puede utilizar varias cuentas MQTT. Ejemplo: Casa residencial en Getafe, casa de vacaciones en Ciutadella, oficina de negocios en Madrid
  • Se pueden ver los informes de los últimos 30 días

La aplicación RadioShuttle está disponible para iOS y Android y puede descargarse gratuitamente de Apple App Store o Google Play Store. El código fuente del servidor push y de las aplicaciones (Android e iOS) está disponible para nuestros clientes y puede ser adaptado para proyectos/soluciones y publicado como una aplicación separada.

Servidor MQTT (Broker)

El servidor MQTT administra los mensajes de una cuenta de usuario con los topics registrados. Es la conexión entre los nodos o sensores remotos y el servidor push.

Servidor push MQTT

El servidor push RadioShuttle MQTT es el enlace entre el servidor MQTT, la aplicación móvil y las notificaciones push enviadas a través de Google o Apple. El servidor push en sí no tiene sus propias cuentas de usuario, sino que se conecta al servidor MQTT en nombre del usuario y monitorea los mensajes de los topics que se van a convertir en notificaciones push.

Para los usuarios no comerciales, el uso del servidor push público (push.radioshuttle.de) es actualmente gratuito hasta 3 dispositivos móviles y 3 cuentas MQTT.
Los licenciatarios de RadioShuttle, es decir, los clientes de una tarjeta RadioShuttle, pueden beneficiarse permanentemente de este servicio de forma gratuita.

El uso comercial ilimitado del software de servidor push RadioShuttle MQTT para la operación en sus propios servidores está disponible para un alquiler anual de software con soporte incluido. El código fuente escrito en Java del servidor push ya está disponible (sujeto a un acuerdo de confidencialidad). Esto requiere certificados push de Apple o Google.

El servidor push MQTT está optimizado para mayor seguridad y disponibilidad. Las configuraciones en caché (certificados y configuraciones) están cifradas con AES para que los atacantes con acceso root no reciban datos utilizables. El uso indebido de las notificaciones push se reduce y recopila para evitar la sobrecarga y evitar que proveedores como Google o Apple bloqueen el acceso. Cuando se reinicia el servidor push o el servidor MQTT, la conexión se restablece automáticamente.

Preguntas y respuestas

¿Qué sucede si un dispositivo móvil no ha estado activo durante un período de tiempo más largo?

Con las notificaciones de Google Push, se guardan y entregan un máximo de 99 mensajes por dispositivo móvil tan pronto como éste vuelva a estar en línea. Al llegar a más de 100 mensajes pendientes que no pudieron entregarse, Google elimina todas las notificaciones push de este dispositivo móvil. Sólo cuando esté de nuevo en línea, Google activará la recepción de nuevos mensajes para el dispositivo móvil en cuestión. Los dispositivos móviles que están regularmente en línea (menos de 100 mensajes pendientes) funcionan correctamente.

Sin embargo, la próxima vez que se abra la aplicación, los últimos 100 mensajes se cargarán (sincronizarán) directamente desde el servidor, a menos que ya hayan sido enviados a través de Cloud Messaging.

¿Cuántas notificaciones push se pueden enviar?

Básicamente, a los fabricantes de Google y Apple no les gusta ver los dispositivos móviles “spammed” con notificaciones push. Por lo tanto, se recomienda enviar sólo unos pocos mensajes importantes a través de MQTT. El servidor push RadioShuttle MQTT retrasa los mensajes para dispositivos móviles individuales si se envía más de un mensaje en 20 segundos. Este retraso puede variar de 20 segundos a dos horas, dependiendo de cuántos mensajes se envíen por spam. Una vez transcurrido el retraso, los mensajes se entregan de forma colectiva.

Recomendaciones:

  • Envíe mensajes de alarma una vez, envíelos de nuevo después de un minuto si es necesario. Si se desean más mensajes para que el usuario vea a su dispositivo móvil, se recomienda enviar más mensajes sólo a intervalos de 30 minutos
  • Se aconseja enviar mensajes de estado (temperatura, estadísticas, etc.) sólo cada 30 minutos, o sólo si se realizan cambios. Las notificaciones push pueden configurarse en silencio en la aplicación por topic (por ejemplo, “mensajes de estado”) para que el dispositivo móvil no responda pero los mensajes sigan estando disponibles en la aplicación
  • Por favor, asegúrese de que no se envíen más mensajes por dispositivo móvil de los necesarios, por ejemplo, no envíe mensajes idénticos dos veces
  • Se recomienda no enviar más de 50 mensajes al día a un dispositivo móvil. Técnicamente hablando, también es posible hacer más, pero esto no es recomendable a largo plazo

¿Es posible mostrar contenidos de mensajes que no se transmiten en formato de texto?

Por defecto, las notificaciones push MQTT sobre los datos MQTT recibidos se muestran directamente en la ventana “Messages”, que es adecuada para mensajes de texto simples. Sin embargo, las notificaciones MQTT también pueden ser binarias, XML, JSON, o codificadas de otra manera. Aquí, los scripts de filtro basados en JavaScript ofrecen la posibilidad de analizar y formatear las notificaciones para mostrar los datos deseados en forma de mensaje de texto.

¿Qué ocurre si los servicios push de Google/Apple fallan?

Si los servicios push de Apple/Google fallan, el servidor push de RadioShuttle MQTT intenta entregar las notificaciones tan pronto como el servicio vuelve a estar en línea. Así que nada está perdido.

Puede abrir la aplicación en cualquier momento. En este caso, la aplicación se conecta al servidor push MQTT, carga los últimos 100 mensajes en la aplicación y los muestra inmediatamente.

¿Puede el servidor push RadioShuttle MQTT ser operado en su propio servidor?

Instalar y operar el servidor push MQTT en su propio servidor es básicamente posible. Deben cumplirse las siguientes condiciones previas:

  • Ordenador con Java 1.7 (actualización 80) o superior
  • Cuenta de desarrollador propia de Apple y Google
  • El nombre de dominio del propio servidor push debe ser comunicado a nosotros
  • Los licenciatarios de RadioShuttle, es decir, los clientes de una tarjeta RadioShuttle, tienen acceso al software
  • Las aplicaciones Android o iOS deben publicarse bajo su propio nombre y con su propio ID de aplicación
  • Crear un certificado de servidor SSL (de RadioShuttle o de una autoridad de certificación)

¿Funciona esta solución sin Internet público?

El servidor MQTT (“Broker”) y el servidor push RadioShuttle MQTT también pueden ser operados en una red privada. La aplicación también puede ser utilizada en esta red privada a través de WiFi o VPN y ver los últimos 100 mensajes, pero sin notificación push.

Para las notificaciones push, el servidor push RadioShuttle MQTT requiere acceso a Internet para enviarlas. El acceso a Internet es sólo saliente y también puede ser a través de un proxy web.

¿El servidor push RadioShuttle MQTT requiere sus propios datos de acceso?

No, el servidor push RadioShuttle MQTT se conecta al servidor MQTT (“Broker”) y envía los datos de acceso introducidos al servidor MQTT. Este último decide entonces si se permite el acceso.

¿Cómo se pueden desactivar las notificaciones push?

Una forma fácil es quitar la aplicación de tu dispositivo móvil. También puede simplemente borrar la cuenta para el servidor MQTT en la aplicación. Además, los topics individuales pueden ser eliminados de la aplicación.

¿Cuales son las versiones necesarias de Android e iOS?

  • Android 4.1 o posterior
  • iOS 10.3 o posterior