Entwicklung & Branching
Lokale Entwicklung #
FĂŒr die lokale Entwicklung wird ein eigenes, dediziertes Token fĂŒr die Verbindung zu HomematicIP benötigt. Wichtig: Ein Token darf niemals doppelt verwendet werden â immer nur ein System kann ein Token gleichzeitig nutzen. Wird versehentlich ein bereits verwendetes Token eingesetzt, bricht die Verbindung sowohl bei einem selbst als auch bei der anderen Stelle, die das Token nutzt. Deshalb gibt es mehrere Tokens.
HomematicIP-Token erzeugen #
- Ein Python-CLI-Tool installieren:
pip3 install -U homematicip - Das Skript
hmip_generate_auth_token.pyausfĂŒhren. Es fragt nach ein paar Angaben â diese bereithalten:- AccessPointID:
3014F711A00003DD899B37F4 - Pin: siehe Vault/Passwortverwaltung
- Name:
hmip-ct-integration-local-{NAME}(eigenen Namen einsetzen)
- AccessPointID:
- Innerhalb weniger Minuten muss dann am Access Point im Gemeindehaus ein Knopf gedrĂŒckt werden, um die Kopplung zu bestĂ€tigen â also vorher schon jemanden vor Ort informieren bzw. selbst rechtzeitig da sein.
- Das erzeugte Token in die lokale
.env-Datei eintragen.
.env befĂŒllen #
Im Repository liegt eine .env-sample â die kopieren (cp .env-sample .env) und dann die eigenen
Werte eintragen:
- Das eben erzeugte HomematicIP-Token eintragen.
- Einen eindeutigen Wert fĂŒr
ENVIRONMENTsetzen (z. B. den eigenen Namen), damit die eigenen Testdaten in InfluxDB/Grafana spÀter klar von anderen unterscheidbar sind und nicht in den produktiven Graphen auftauchen. - Alle mit
<CHANGEME>markierten Felder mit den Zugangsdaten aus dem Vault befĂŒllen â auĂer Uptime Kuma, das wird lokal nicht benötigt.
Feature-Deployments #
Jeder Branch auĂer main/master wird automatisch als feature-Container deployt. Wegen der
Token-Problematik (siehe oben) kann immer nur ein einziges Feature-Deployment gleichzeitig
existieren â der zuletzt gebaute (und deployte) Feature-Branch bleibt aktiv, bis ein anderer
Feature-Branch deployt wird. Deshalb: nicht mehrere Feature-Branches parallel aktiv verwenden, das
fĂŒhrt sonst zu Verwirrung.
Das Feature-Deployment hat einen eigenen, von der Produktion getrennten Satz an Volumes
(Konfiguration, persistente Daten) â Ănderungen daran wirken sich nicht auf die Produktion aus.
Wird an diesen Volumes etwas geĂ€ndert, das dauerhaft gebraucht wird, muss die gleiche Ănderung
zusĂ€tzlich fĂŒr main/master vorgenommen werden, bevor diese Version deployt wird.
Produktion (main/master) #
Alles, was auf main (nach einem Pull Request) landet, wird sofort produktiv deployt. Die
zugehörigen Volumes enthalten die echten Produktionswerte â entsprechend vorsichtig damit umgehen.