Automatisk omladdning av extern webbsida med felhantering

Raspberry Pi Kiosk mode går vi igenom hur man kan göra för att starta upp en Raspberry Pi och direkt visa en webbsida i helskärmsläge. Sidan som visas uppdaterar sig självt, och det finns ett par olika sätt att se till att sidan fortsätter att visas (med gamal kopia visserligen) om internetuppkopplingen går ner. Det är ju inte särskilt kul om systemet visar ”Sidan kan inte nås” eller liknande fel.

Det finns flera sätt att lösa detta problem på.

Shellscript

Vi har löst det med ett litet skript som körs via crontab en gång per minut. Scriptet laddar ner den externa sidan till vår Raspberry Pi. I praktiken fortsätter därmed vår Raspberry Pi att visa den lokala sidan, och skriptet ser till att den lokala kopian är uppdaterad så långt det går. Om internetuppkopplingen går ner kommer filerna sluta att uppdateras, men Inget felmeddelande visas på vår Raspberry Pi.

I korthet kan scriptet sammanfattas med att två filer xxx.php och xxx.css laddas ner och scriptet kollar så att filerna inte är tomma innan de kopieras in och ersätter filerna som visas på vår Raspberry Pi.

 

Javascript

Ett lite elegantare sätt att lösa det på är via Javascript,

I exemplet nedan visas en klocka som uppdateras via javascript, men hela sidan laddas även om med förinställt intervall så länge det går att nå servern. (För mer detaljer om vad exemplet egentligen gör, se denna forumtråd)

I korthet fungerar scriptet på följande sätt:

  1. När sidan laddas körs funktionen start().
  2. I startfunktionen finns tre setInterval-funktioner:
    1. En som uppdaterar progressbaren längst ner på sidan (det går att se hur lång tid det är kvar till nästa uppdatering, och progressbaren ändrar färg om det inte går att uppdatera sidan)
    2. En som uppdaterar klockan
    3. En som efter förinställd tid kör funktionen doesConnectionExist. Om funktionen returnerar true går det att nå servern och sidan laddas om. Om servern inte går att nå kommer sidan inte att laddas om och nytt försök görs efter det förinställda intervallet.

 

Ett svar till Automatisk omladdning av extern webbsida med felhantering

  • […] midori -e Fullscreen -a  http://localhost/helskarm.php Startar webbläsaren midori i helskärmsläge med angiven url. Vi har valt att köra sidan lokalt på vår raspberry pi, men det går lika bra att hämta en extern sida. (I själva verket är det en extern sida som hämtas via ett crontab-jobb, vi vill inte att vi ska få upp felmedelanden om internetanslutningen går ner. Här finns beskrivet hur vi gjort för att ladda ner den externa sidan till vår Raspberry pi.) […]

  • Kommentera