Estoy usando Raspberry Pi para crear un quiosco web no interactivo: una página web específica (mediciones desde una estación de monitoreo remota) que se mostrará en una pantalla en modo de pantalla completa, el contenido se actualiza con frecuencia a través de AJAX.
Ahora hay bastantes soluciones para convertir Raspberry en un quiosco, y estoy bastante seguro de que podré hacerlo bien, pero el quiosco debería estar libre de mantenimiento. Especialmente en una situación en la que se corta la energía, luego se vuelve a encender, pero de alguna manera la infraestructura del enrutador / módem / red no se puso en línea.
En esa situación, Midori abrirá una página sobre "no se puede conectar" o algo así y se quedará atascado de esta manera hasta que alguien vuelva a encenderlo, ¡ya que la página web que incluye su propio mecanismo de actualización automática no se cargó!
Ahora, ¿cómo puedo obligar a Midori a cargar la página cuando la red vuelva a estar disponible o algo similar (actualización automática cada 15 minutos más o menos, o seguir actualizando hasta que la página se cargue o algo así)?
Si esa opción no está disponible para Midori, ¿puede recomendar alguna otra solución?
qdbus
(desde el paquetelibqt4-dbus
) o alguna herramienta similar y buscar Midori allí. Entonces lo más probable es que puedas activar una actualización de la página.Respuestas:
Suponiendo que tiene Python en su sistema, hay una alternativa a
cron
. He creado un script rápido de Python 2.7.3 que volverá a cargar Midori cada 5 minutos.Si necesita cambiar la cantidad de tiempo de descanso, simplemente cambie la
rest_time
variable.Nuevo guión
Como dijiste que necesitabas que el programa fuera "inteligente", lo edité para que sea así. Cuando use este programa, no abra Midori manualmente; ábralo desde el guión. Tengo una extraña costumbre de fallar debido al Speed Dialer si lo haces de otra manera. También se ejecuta en Python 2.7.3. Si no desea hacer toda esa copia y pegar, visite mi pastebin del código.
fuente
En caso de que alguien venga y esté buscando una respuesta actualizada, Midori ahora tiene una opción de línea de comando
--inactivity-reset=SECONDS
(o-i
para abreviar).Junto con la
-a
opción, puede lograr un navegador que se reinicia constantemente en modo quiosco cada x segundos.p.ej
Abrirá http://www.google.com/ en una ventana de pantalla completa y actualizará la página después de 2 minutos de inactividad. (
-e
ejecuta un comando)fuente
Decidí abordarlo desde un lado diferente, en su mayoría independiente del navegador.
El navegador se inicia en modo quiosco, apuntando a un documento local específico:
watchdog.html
Ahora en este archivo, el valor de tiempo de espera se ajusta para contener dos actualizaciones automáticas normales de la página remota más algunas, y
reload_url
se establece en su URL.La página remota tiene un fragmento que se ejecuta cada vez que su actualización se realiza correctamente:
Si sucede algo malo: la página no se carga, se carga como 404 o error o su javascript se detiene por cualquier motivo, o alguna redirección de secuestro nos empuja a una página diferente, si dos mensajes de actualización consecutivos no llegan, el marco de vigilancia restablece la URL al original, que realiza automáticamente la recarga.
Tenga en cuenta que el intento ... catch es evitar problemas con navegadores antiguos que pueden no ser compatibles con postMessage. Esto no será un problema con el quiosco ya que controlamos el entorno y siempre podemos asegurar que se usará el navegador correcto. OTOH, en computadoras cliente aleatorias sin el marco escuchando los mensajes, la operación postMessage no funciona, siempre y cuando no cause un error de aborto de script, por lo tanto, intente ... capturar.
fuente
Yo uso el xdotool para simular una pulsación de tecla f5
y luego en mi crontab ejecuto ese script cada minuto
fuente