Estou usando o Raspberry Pi para criar um quiosque da web não interativo - uma página específica (medições de uma estação de monitoramento remoto) a ser exibida em uma tela no modo de tela cheia, com o conteúdo atualizado com frequência pelo AJAX.
Agora, existem algumas soluções para transformar o Raspberry em um quiosque, e tenho certeza de que poderei fazê-lo bem, mas o quiosque deve ser bastante livre de manutenção. Especialmente na situação em que a energia acaba e volta a ligar, mas de alguma forma a infraestrutura do roteador / modem / rede não ficou totalmente online.
Nessa situação, o Midori apresentará uma página sobre "incapaz de conectar" ou algo assim e ela ficará paralisada até que alguém desligue e ligue novamente - uma vez que a página da Web, incluindo seu próprio mecanismo de atualização automática, não foi carregada!
Agora, como posso forçar o Midori a carregar a página quando a rede estiver disponível novamente, ou algo com o mesmo efeito (atualização automática sempre a cada 15 minutos ou mais ou continuar atualizando até que a página carregue ou algo assim)?
Se essa opção não estiver disponível para o Midori, você pode recomendar outra solução?
qdbus
(do pacotelibqt4-dbus
) ou alguma ferramenta semelhante e procurar o Midori lá. Então você provavelmente pode acionar uma atualização da página.Respostas:
Supondo que você tenha o Python no seu sistema, existe uma alternativa para
cron
. Eu criei um rápido script Python 2.7.3 que recarregará o Midori a cada 5 minutos.Se você precisar alterar a quantidade de tempo de descanso, basta alterar a
rest_time
variável.Novo Script
Como você disse que precisava que o programa fosse "inteligente", eu o editei para fazê-lo. Ao usar este programa, não abra o Midori manualmente; abra-o a partir do script. Eu tenho um hábito estranho de travar devido ao Discador rápido, se você fizer o contrário. Também roda em Python 2.7.3. Se você não quiser fazer toda essa cópia e colagem, visite minha pasta do código.
fonte
Caso alguém apareça e procure uma resposta atualizada, o Midori agora tem uma opção de linha de comando
--inactivity-reset=SECONDS
(ou-i
abreviada).Juntamente com a
-a
opção, você pode obter um navegador constantemente reiniciando no modo quiosque a cada x segundos.por exemplo
Abre o http://www.google.com/ em uma janela de tela cheia e atualiza a página após 2 minutos de inatividade. (
-e
executa um comando)fonte
Decidi abordá-lo de um lado diferente, principalmente independente do navegador.
O navegador é iniciado no modo quiosque, apontando para um documento local específico:
watchdog.html
Agora, neste arquivo, o valor do tempo limite é ajustado para conter duas atualizações automáticas normais da página remota e mais algumas, e
reload_url
é definido como sua URL.A página remota possui um trecho que é executado toda vez que sua atualização é realizada corretamente:
Se algo de ruim acontecer - a página falha ao carregar, carrega como 404 ou erro ou seu javascript pára por qualquer motivo, ou algum redirecionamento de invasão nos leva a uma página diferente, se duas mensagens de atualização consecutivas falharem, o quadro de watchdog redefine o URL ao original, que executa automaticamente a recarga.
Observe que o try ... catch é para evitar problemas com navegadores mais antigos, que podem não suportar o postMessage. Isso não será um problema no quiosque, pois controlamos o ambiente e sempre podemos garantir que o navegador correto será usado. OTOH, em computadores-cliente aleatórios sem o quadro ouvindo as mensagens, a operação postMessage não funciona, desde que não cause erro de abortamento de script, portanto, tente ... capturar.
fonte
Eu uso o xdotool para simular um pressionamento de tecla f5
e então no meu crontab eu corro esse script a cada minuto
fonte