Caching is geïmplementeerd voor API-aanroepen om de prestaties van de webapplicatie te optimaliseren. Een lru_cache decorator en een aangepaste cache-functionaliteit zijn toegevoegd voor het laden van instellingen en het ophalen van weers- en Sonos-zonegegevens. Deze wijzigingen verminderen de belasting van externe bronnen en verbeteren de reactiesnelheid van de applicatie door herhaalde aanroepen binnen een korte tijdsduur te vermijden.
De installatie van de Puffin browser via Pi-Apps is verwijderd om het script te vereenvoudigen. In plaats daarvan wordt nu Chromium direct geïnstalleerd voor betere compatibiliteit en onderhoudsgemak. Dit vermindert externe afhankelijkheden en stroomlijnt het installatieproces voor de gebruiker.
Chromium-browser is nu geïnstalleerd en wordt gebruikt voor kiosk-modus, ter vervanging van Puffin. De installatie en het gebruik van Pi-Apps voor Puffin zijn verwijderd, samen met de specifieke commando's voor de Puffin-browser. Dit zorgt voor een gestroomlijnder configuratieproces en maakt gebruik van Chromium's optimalisaties voor performance en veiligheid.
De browser is gewijzigd van Chromium naar Puffin voor verbeterde prestaties op de Raspberry Pi 3. Puffin biedt 4x snellere snelheid en verbruikt 80MB minder RAM dankzij cloud rendering. Aanpassingen zijn gemaakt in beide setup scripts om deze wijziging te ondersteunen, inclusief het uitschakelen van Chromium en het optimaliseren van de opstartparameters voor Puffin.
Chromium is verwijderd en vervangen door de Puffin browser in zowel pi-setup-desktop.sh als pi-setup.sh. De installatiestappen voor Puffin zijn toegevoegd met behulp van Pi-Apps. Dit zorgt voor een naadloze installatie en configuratie voor gebruik van Puffin in kiosk mode. Overbodige Chromium-specifieke browseropties zijn verwijderd, en relevante opties voor Puffin zijn behouden om de werking te optimaliseren.
Chrome's vertaalbanner is uitgeschakeld door het toevoegen van de flags --disable-translate, --disable-features=Translate en --lang=nl aan beide setup scripts. Dit zorgt voor een consistente gebruikerservaring zonder vertaalprompts, wat vooral handig is voor Nederlandstalige implementaties en kiosken. Het kan ook invloed hebben op de gebruikers die andere taalondersteuning nodig hebben.
Deze update implementeert diverse hardware- en systeemoptimalisaties om de opstarttijd van Raspberry Pi-systemen te verkorten tot minder dan 60 seconden. Dit omvat het uitschakelen van niet-noodzakelijke services, het overklokken van CPU en SD-kaart, en aanpassingen aan kernelparameters. HDMI audio instellingen en Docker image preload zijn ook verbeterd. Deze wijzigingen zijn vooral gunstig voor setups die snelle herstarten vereisen zonder invloed op cruciale functionaliteiten. Test zorgvuldig op stabiliteit, vooral bij overklokinstellingen.
Voegt extra snelheidsoptimalisaties toe aan het Raspberry Pi setup script. Dit omvat het uitschakelen van onnodige services zoals bluetooth, hciuart, triggerhappy, avahi-daemon, en ModemManager. Verder zijn boot parameters in /boot/config.txt aangepast voor snellere opstarttijden, waaronder 'boot_delay=0' en 'disable_splash=1'. Daarnaast is de Docker systemd service gewijzigd van Type=oneshot naar Type=forking voor betere prestaties. Hierdoor zou de totale boot tijd nu ongeveer 30-45 seconden zijn.
Verwijdert de sectie die git installeert en de adhaan repository cloned uit het pi-setup script. Dit vermindert afhankelijkheden en vereenvoudigt het installatieproces, ervan uitgaande dat deze stappen niet langer nodig zijn of elders beheerd worden.
De URL voor het klonen van de Adhan repository is bijgewerkt naar een nieuwe locatie. Dit zorgt ervoor dat de juiste repository wordt gekloond, zoals gehost op git.tarikfaik.nl, in plaats van de eerdere GitHub-locatie.
Deze wijziging voegt de installatie van git toe aan het pi-setup script, waarmee wordt gezorgd dat git beschikbaar is voor verdere taken zoals het clonen van repositories. Daarnaast wordt de adhan repository gekloond of geüpdatet afhankelijk van de aanwezigheid van de bestaande map. Hierdoor kunnen gebruikers eenvoudiger benodigde projecten op hun systeem instellen.
Deze commit voegt automatische configuratie van HDMI audio toe, zowel in de pi-setup als in het kiosk script. Het kiosk script is uitgebreid met een startroutine voor Docker-containers en verbeterde browser instellingen zoals autoplay en veiligheidsoverwegingen. Ook is er een test toegevoegd voor de Docker-setup om configuratieproblemen vroegtijdig te detecteren. Dit zorgt voor een soepelere opstartprocedure van het Adhaan Kiosk systeem.
Het volume-instellingssysteem is geüpdatet om persistentie te ondersteunen, zelfs in Docker-containers. Het configureren van het volume met `amixer` is nu conditioneel, en als er in een Docker-omgeving wordt gewerkt, wordt alleen de instelling opgeslagen zonder directe toepassing. Een nieuw opstartscript `pi-volume-startup.sh` is toegevoegd om het HDMI-volume van de Pi automatisch in te stellen bij het opstarten op basis van de opgeslagen instellingen. Dit verbetert de gebruikerservaring en het onderhoud van het volume-instellingensysteem.
De functie voor het opslaan van instellingen is verbeterd met uitgebreide foutafhandeling door gebruik te maken van try-except blokken. Er is nu een controle toegevoegd om te bepalen of de code in een Docker-container draait voordat 'amixer' commando's worden uitgevoerd, wat ongewenste fouten voorkomt als 'amixer' niet beschikbaar is. Dit verhoogt de robuustheid bij het instellen van Pi HDMI volume. Onverwachte fouten worden gelogd en het proces gaat verder zonder onderbreking.
Nieuwe instructies toegevoegd voor het uitvoeren van een git pull, wijzigen van uitvoerrechten en opnieuw uitvoeren van pi-setup-desktop.sh. Dit zorgt ervoor dat gebruikers de bijgewerkte HDMI audio configuraties zonder problemen kunnen toepassen.
Deze commit introduceert de mogelijkheid om het HDMI volume van de Raspberry Pi in te stellen via de webapplicatie.
Belangrijkste wijzigingen:
- Toevoeging van een nieuwe invoercontrole (slider) in de instellingenpagina voor het aanpassen van het Pi HDMI volume.
- Implementatie van een backend API endpoint dat het volume instelt via amixer, met validatie en foutafhandeling.
- Testfunctie toegevoegd waarmee gebruikers onmiddellijk het ingestelde volume kunnen testen.
- Automatische HDMI audio configuratie toegevoegd in pi-setup-desktop.sh script.
Dit verbetert de gebruiksvriendelijkheid, doordat gebruikers eenvoudig het audio-uitgangsvolume kunnen beheren en testen zonder directe toegang tot de hardware.
Een nieuwe sectie voor audiotests is toegevoegd aan de debugpagina om browser (HDMI) en Sonos audio te testen. Drie nieuwe knoppen activeren respectievelijk tests voor browseraudio, Sonosaudio of beide. Bijbehorende JavaScript-functies zijn geïmplementeerd om de tests uit te voeren en statusupdates weer te geven. In pi-setup-desktop.sh worden nu HDMI audio-uitvoer, volume instellingen, en kiosk browseropstartparameters geconfigureerd ter ondersteuning van automatische audiotests en weergave-optimalisaties.
Docker volume mounts zijn toegevoegd voor app.py, config.py en adhan_cron.py om directe wijzigingen mogelijk te maken zonder de containers opnieuw te moeten bouwen. De containers zijn succesvol herstart met deze nieuwe configuratie, wat het IP-adres probleem definitief zou moeten oplossen.
Deze wijziging in de docker-compose-pi.yml voegt extra bestandskoppelingen toe voor app.py, config.py en adhan_cron.py als read-only mounts. Dit is bedoeld om ervoor te zorgen dat deze essentiële bestanden beschikbaar zijn binnen de Docker-container zonder dat ze kunnen worden gewijzigd, wat zorgt voor meer stabiliteit en consistentie van de applicatie.
SONOS_API_IP is verplaatst van adhan_cron.py naar de config module om de configuratiegegevens centraler en onderhoudbaarder te maken. Deze wijziging verbetert de leesbaarheid van de codebase en faciliteert eenvoudiger aanpassingen aan API-gerelateerde configuraties zonder direct de hoofdcode te moeten wijzigen.
Het hardcoded IP-adres voor de SONOS API is verwijderd uit app.py. In plaats daarvan wordt het IP-adres nu geïmporteerd uit config.py, wat configuratiebeheer vergemakkelijkt en flexibiliteit biedt bij het wijzigen van netwerkinstellingen.
Het IP-adres voor de Sonos API is bijgewerkt van 192.168.0.114 naar 192.168.0.112 in de configuratie. Deze wijziging is nodig om overeen te komen met de nieuwe netwerkinstellingen, zodat de applicatie correct verbinding kan maken met de Sonos-service. Zorg ervoor dat dit overeenkomt met de actuele netwerkconfiguratie om verbindingsproblemen te vermijden.
De commit introduceert een debug tijdsynchronisatie tussen de cron script, de hoofdpagina en de Flask API. Deze functies maken het mogelijk om de huidige tijd te simuleren met een instelbare offset voor testdoeleinden. Het volume en de gebedstijden passen zich nu aan op basis van deze debug tijd indien actief. Debugger gebruikers kunnen via de nieuwe '/api/debug-time' endpoint de tijd aanpassen. De wijzigingen verbeteren de testbaarheid van de applicatie en zorgen ervoor dat gebedsafroepen en volumebepaling correct functioneren onder simulatieomstandigheden.
Hadith-interval kan nu via instellingen worden aangepast met de toevoeging van 'hadith_interval_seconds' aan settings.json, settings.html en app.py. De update interval voor hadiths in JavaScript gebruikt deze variabele. Daarnaast is de instellingenpagina herzien en georganiseerd in vier tabbladen: Audio & Volume, Gebedstijden, Functies, Systeem. Nieuwe CSS-styling en JavaScript-functionaliteit zijn toegevoegd om het schakelgedrag van tabbladen te beheren, waarbij de laatst actieve tab in localStorage wordt opgeslagen.
De huidige gebedssectie is verplaatst naar de onderkant van het scherm met absolute positionering. De oude `huidig-gebed` CSS is verwijderd en vervangen door de nieuwe `huidig-gebed-bottom` klasse. Dit zorgt voor een consistentere en responsieve gebruikersinterface. Daarnaast zijn flexbox layouts geïntroduceerd om de tijds- en weersinformatie naast elkaar weer te geven, waardoor de interface op verschillende schermformaten beter functioneert. JavaScript is bijgewerkt om de juiste klasse te selecteren voor de naamweergave in de countdown.
De CSS-stijlen zijn bijgewerkt om een nieuwe compacte zijbalk en een verbeterde weersectie te ondersteunen, met speciale aandacht voor responsiviteit en gebruikerservaring. De hadith-sectie is visueel gescheiden van andere inhoudselementen met aangepaste themakleuren voor betere leesbaarheid in zowel licht als donker modus. Er is ook een glasmorphisme-effect aan de weersectie toegevoegd voor een moderne uitstraling. Deze veranderingen verbeteren de gebruiksvriendelijkheid van de webapp door belangrijke informatie op een georganiseerde en duidelijke manier weer te geven.
De instelling 'debug_mode' is toegevoegd aan de settings.json om ontwikkelaars te ondersteunen bij het opsporen van problemen. Deze wijziging biedt meer flexibiliteit bij het testen en verfijnen van functionaliteit, maar zorg ervoor dat deze optie wordt uitgeschakeld in productieomgevingen om ongewenste informatielekken te voorkomen.
Debug functionaliteit is nu alleen toegankelijk wanneer debug_mode is ingeschakeld. Dit omvat het omleiden van gebruikers naar de hoofdpagina als debug_mode uitgeschakeld is en het tonen van een foutmelding bij een niet-geautoriseerde API-aanroep. Ook is de debug knop in de UI alleen zichtbaar als debug_mode aan staat. Dit verhoogt de veiligheid en beperkt toegang tot debugging opties.
Een nieuw centraal kleurensysteem is geïntroduceerd via colors.css, waardoor het eenvoudiger wordt om het kleurenschema van de Adhan-app te beheren en aan te passen. Dit verbetert de consistentie en onderhoudbaarheid van de stijlen in verschillende componenten van de app.
Daarnaast is een functie toegevoegd voor automatische dhikr-wisseling in adzkaar.html, die elke 30 seconden naar de volgende dhikr schakelt. Hierdoor verbetert de gebruikerservaring door een soepele en intuïtieve navigatie tussen de dhikr-items mogelijk te maken.
Deze commit implementeert een nieuw Adzkaar-scherm dat automatisch verschijnt na de gebedstijden. Belangrijke wijzigingen omvatten:
- Toevoeging van instellingen voor het inschakelen en aanpassen van de duur van het Adzkaar-scherm in `settings.json` en de bijbehorende HTML.
- Implementatie van nieuwe routes `/adzkaar` en `/api/trigger-adzkaar` om respectievelijk het scherm weer te geven en te debuggen.
- Update van de countdown-logica om het Adzkaar-scherm drie seconden na het adhan af te spelen.
- Nieuwe frontend-elementen voor een interactieve, kaart-voor-kaart weergave van de Adzkaar met ondersteuning voor navigatie en toetsenbordbediening.
- Aanpassing van bestaande templates om integratie van de nieuwe functionaliteiten te faciliteren.
Deze toevoegingen verbeteren de gebruikerservaring door meer spirituele betrokkenheid mogelijk te maken na de gebedstijden.
De countdown script is bijgewerkt om de logica voor gebedstijden te verbeteren. De huidige en volgende gebeden worden nu correct geanalyseerd, inclusief ondersteuning voor het identificeren of het volgende gebed op de volgende dag valt. Gebedstitels bevatten nu "morgen" indien nodig. CSS en HTML aanpassingen zorgen voor een verbeterde layout van de instellingenpagina met een drie-kolommen structuur en betere zichtbaarheid in lichte modus. Deze wijzigingen zorgen voor een nauwkeurigere weergave van gebedstijden en een gebruiksvriendelijke interface.
Dit commit voegt een nieuw installatie script toe dat een Raspberry Pi configureert om een desktop-gebaseerde kiosk te draaien. Het script installeert noodzakelijke software zoals Docker en Chromium, maakt een autostart configuratie aan voor de kiosk, schakelt power management uit, en zorgt ervoor dat het systeem automatisch naar de desktop omgeving boot met autologin. Dit behoudt volledige desktop functionaliteit en vermijdt complexe boot configuraties.
De commit voegt nieuwe instructies toe voor het opzetten van de Adhaan applicatie als een kiosk op een Raspberry Pi. Inclusief stappen zoals Raspberry Pi OS installatie, project downloaden en het uitvoeren van een automatische setup via een script. Daarnaast is de repository-URL in het installatieproces bijgewerkt naar de correcte URL.
Nieuwe functies toegevoegd aan de Raspberry Pi setup script om het opstartgedrag te verbeteren: automatische startx zonder display manager, uitgeschakelde splash screen voor snellere boot, en console login optimalisaties. Dit verhoogt de efficiëntie van het systeem en biedt gebruikers een direct beschikbare kiosk mode zonder inlogschermen. SSH blijft beschikbaar voor remote toegang, en handmatige bediening is vereenvoudigd.
Deze update verbetert de configuratie van de Raspberry Pi door automatische login te verfijnen en de boot-snelheid te optimaliseren. De splash screen wordt uitgeschakeld voor een snellere start, en het login scherm is verwijderd om direct toegang te krijgen tot de console in multi-user mode. Gebruikers worden automatisch ingelogd zonder een wachtwoord in te voeren. SSH blijft beschikbaar voor externe toegang, en instructies voor lokale terminal toegang via Ctrl+Alt+F2 zijn toegevoegd.
Deze commit introduceert een volledige installatiehandleiding en scripts voor het instellen van de Adhaan applicatie in fullscreen kioskmodus op een Raspberry Pi. Inclusief nieuwe bestanden voor automatische installatie, Docker configuraties, en aanpassing van instellingen. Hierdoor wordt de installatie gemakkelijker en efficiënter, met automatische configuratie van systeemdiensten en kiosk start-up.
Gebedstijd offsets zijn toegevoegd waarmee gebruikers tijdaanpassingen kunnen maken aan de tijden verkregen van de VUMG API. Dit biedt meer flexibiliteit door de mogelijkheid te geven om minuten toe te voegen of af te trekken van elke specifieke gebedstijd (Fajr, Zuhr, Asr, Maghrib, Isha). Het template voor instellingen is aangepast om deze nieuwe offset functionaliteit op een gebruiksvriendelijke manier toegankelijk te maken. Ook zijn er kleine correcties uitgevoerd om de seconden correct uit de gebedstijden te halen voor een betere verwerking.