Startphase von SmartHomeNG
Für das tiefere Verständnis und Fehlersuche ist es unter Umständen wichtig zu wissen, wie der Start von SmartHomeNG abläuft. Prinzipiell gibt es 8 Bereiche die man betrachten kann:
- Der Kern mit Basisfunktionalitäten
- Zeitplanung von Ereignissen (Scheduler)
- Verbindungen über Netzwerke
- Module
- Plugins
- Items
- Logiken
- Szenen
Folgende Schritte werden beim Start von SmartHomeNG durchlaufen:
Zunächst Initialisierungen und Vorbereitungen für den Kern:
- Logging initialisieren aus etc/logging.yaml
- Startzeit überprüfen: Ist Echtzeit für Raspi vorhanden?
- Laden von etc/smarthome.yaml (bzw. smarthome.conf)
- Aktuelle Zeitzone prüfen
- Versionsinformationen ausgeben
- Zeichensatz UTF-8 im System voreingestellt?
- Objekte für Sonne und Mond erstellen (dazu wird Länge, Breitengrad und Höhe benötigt)
Dann der Hauptthread der nacheinander folgende Aufgaben ausführt und dann in einer Schleife weiterarbeitet
- Init Scheduler
- Start Scheduler
- Init Connections
- Laden von etc/module.yaml
- Init Modules z.B. http, dummy –> cherrypy wird gestartet (wird für das Backend benötigt)
- Start Modules
- Laden von etc/plugin.yaml
- Init Plugins z.B. backend, database, knx, …
- Laden von plugins/pluginname/plugin.yaml
- Laden von plugins fertig: sh.plugin_load_complete == True
- Start initialization of items
- Laden von items/*.yaml bzw. *.conf
- Laden von Items fertig sh.item_load_complete == True Achtung: Änderung zu erwarten, wenn Items dynamisch erstellt/verändert/gelöscht werden
- Init logics
- Laden von Logiken aus etc/logics.yaml bzw. etc/logics.conf
- Laden von Logiken fertig wird nicht signalisiert, da es ab Version 1.4 während der Laufzeit neue Logiken geben kann
- Init Scenes
- Scheduler für Connections hinzufügen
- Plugins starten
- plugin_start_complete == True Achtung: Änderung zu erwarten, wenn Plugins zur Laufzeit eingebunden/aktiviert/deaktiviert/entfernt werden
- Scheduler für Garbage Collection hinzufügen
- Hauptschleife
- Verbindungen auf anliegende Daten prüfen
- läuft bis ein Signal zum Beenden empfangen wird
0 Kommentare