3.3 KiB
3.3 KiB
Updates publiceren zonder gebruikersconfiguratie te vervangen
Indeling van de code en gegevens
mainis de distributiebranch voor de app en beide firmwarepakketten. De Guition-branch blijft beschikbaar voor bordwerk; publiceer gedeelde releases altijd ook naar main.screen_manager/config.yamlbevat de appversie. Verhoog die bij iedere apprelease. Git push alleen is niet genoeg om een bestaande app een update aan te bieden.- De appimage bevat uitsluitend code. Indelingen leven in
/data/screens.json(version: 1,screens: {...}). Een update/herbuild behoudt deze volumegegevens. - De eigen ESPHome-YAML bevat naam, wifi-verwijzingen en unieke API/OTA-sleutels. Gedeelde pakketten bevatten geen secrets, vaste eigenaarsentiteiten of wifi.
- CYD-kalibratie staat in ESP32-preferences. Behoud de preference-key, structuur en partitie-indeling, of schrijf een expliciete migratie.
- Het tegelprotocol gebruikt
v: 1. Houd oudere velden en domeinen bruikbaar. Een gewijzigde opslagversie moet een geteste migratie met back-up krijgen. De app weigert onbekende versies in plaats van de data leeg te overschrijven.
Voor elke release
- Pas de bronprofielen en gedeelde componenten aan. Draai
python3 tools/generate_packages.py; bewerkpackages/*.yamlnooit rechtstreeks. - Draai alle Python-tests met aiohttp geïnstalleerd, alle
tests/*.cpp, de generator met--check, en compileer beide Easy Setup-profielen plus de bestaande handmatige profielen. Controleer dat er geen secrets in Git staan. - Test appstart, opslaan, opnieuw starten/updaten met bestaande indelingen, opnieuw verbinden met HA en een ESP-herstart. Test een nieuwe kaart op echte hardware. Een goede build vervangt fysieke touchacceptatie niet.
- Verhoog appversie en firmwareprojectversie; schrijf CHANGELOG en concrete testresultaten. Publiceer alleen compatibele wijzigingen rechtstreeks op main.
- Commit en push main. Maak een onveranderlijke tag
screens-vX.Y.Zvan dezelfde commit. Werk de Guition-branch bij. Test de remote YAML in een lege map: alle componenten/fonts moeten via GitHub kunnen worden opgehaald. - De gebruiker controleert de appwinkel op updates en update ESP Screen Manager.
Voor nieuwe schermfuncties: bestaand ESPHome-apparaat → Install → Wirelessly.
De bestaande YAML blijft staan;
refresh: 0shaalt bij elke build actuele code.
Lokale ontwikkeling
Kopieer alleen screen_manager/ naar de gedeelde addons/esp_screen_manager/.
Herlaad de appwinkel, installeer de lokale versie en bouw na codewijzigingen opnieuw.
Een lokale testversie heeft een andere add-onidentiteit dan de GitHub-versie; de
gegevens verhuizen niet automatisch. Test voor de uiteindelijke installatie de
GitHub-versie en zet de lokale versie uit om twee schrijvers te voorkomen.
Voor backendtests op een ontwikkelcomputer:
python3 -m venv .venv-portal
.venv-portal/bin/pip install aiohttp PyYAML
.venv-portal/bin/python -m unittest discover -s tests
Een tijdelijke ontwikkelserver ondersteunt SCREEN_DEV=1, HA_API (eindigt op
/api), HA_TOKEN_FILE en SCREEN_DATA. Hij bindt alleen op localhost. Zet een
token nooit in broncode, URL's of Git. Productie gebruikt Supervisor en accepteert
alleen het Ingress-proxyadres; er is geen extra publieke poort.