Ankündigung

Einklappen
Keine Ankündigung bisher.

Änderungen am Core - Konfiguration, Instanzen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Änderungen am Core - Konfiguration, Instanzen

    Im aktuellen develop sind zwei Änderungen, auf die wir hinweisen möchten:
    1. Konfigurationsdateien
    2. Instanz-Handling
    1. Konfigurationsdateien

    Konfigurationsdateien werden seit längerem standardmäßig als YAML-Datei angeboten, auch die default-Dateien, die shNG beim Start installiert, wenn keine vom Benutzer erstellte Datei vorhanden ist, sind im yaml-Format.
    Das alte "conf"-Format mit mehrfach geklammerten Überschriften ist nur noch ein Überbleibsel. Wenn zukünftig eine Möglichkeit besteht, die Konfiguration im Betrieb zu ändern und zu schreiben, ist das nur eine zusätzliche Komplikation. Um diesen Weg vorzubereiten und zu vereinfachen, wird die Konfiguration über "conf"-Dateien nicht mehr unterstützt.

    Falls noch jemand conf-Dateien verwendet, sollte vor der Aktualisierung von develop auf den heutigen Stand das Tool "tools/conf_to_yaml_converter.py" genutzt werden.

    2. Instanz-Handling

    Es gibt seit langem die Diskussion, das Instanz-Handling für Multi-Instance-Plugins anzupassen. Seit der letzten Änderung der Plugin-Konfigurationsmöglichkeit (müsste shNG v1.6 gewesen sein) gibt es durchgängig einheitliche Bezeichner für jedes Plugin und jede Plugin-Instanz - den Namen des Abschnittes mit der Plugin-Konfiguration, im Folgenden "configname" genannt:

    Code:
    configname1:
        plugin_name: foo
    
    configname2:
        plugin_name: foo
        instance: bar
    
    configname3:
        plugin: baz
    Daher wäre es im Prinzip unnötig, überhaupt Instanznamen zu vergeben. Es ist darüber hinaus auch redundant, denn im Beispiel kann das erste Plugin über "configname1" oder über "foo#" angesprochen werden, das zweite Plugin über "configname2" oder über "foo#bar".

    Das Plugin "configname3" hat keinen (ausdrücklichen) Instanznamen, da es nur eine Instanz gibt. Es kann über "configname3" oder "baz#" angesprochen werden.

    In der neuen Systematik werden keine Instanznamen mehr per "instance: <name>" mehr zugewiesen. Der Instanzname ist bei nur einmal geladenen Plugins leer (wie bisher), bei mehrfach geladenen Plugins entspricht er dem configname. Damit entfällt die Notwendigkeit, Instanznamen zu vergeben. Stattdessen kann der configname entsprechend genutzt werden:

    Code:
    foo:
    plugin_name: foo
    
    bar:
    plugin_name: foo
    
    baz:
    plugin_name: baz
    Das vereinfacht die plugin.yaml und macht die Nutzung der Plugin-Identifikation simpler.

    Die Möglichkeit, bei mehrfach geladenen Plugins "leere" Instanznamen zu erzeugen, kann durch "default_instance: true" erzwungen werden. Damit kann auch schnell zwischen verschiedenen Versionen eines Plugins (bspw. "cli" und "priv_cli") gewechselt werden, ohne dass die Instanzen in der Item-Konfiguration angepasst werden muss.


    Um nicht durch einen einfachen commit alle Plugin- und Item- Konfigurationen über den Haufen zu werfen, haben wir das Ganze "versteckt". Fürs Erste bleibt das "alte" Konfigurationssystem standardmäßig aktiviert.
    Wer die neue Systematik aktivieren möchte, muss in der "smarthome.yaml" den Eintrag "legacy_instances: false" setzen und ggf. seine plugin.yaml anpassen.

    In einem späteren Release soll die neue Systematik zum Standard werden und der "instance:"-Parameter komplett entfernt werden.
    Zuletzt geändert von Morg; Gestern, 08:53.
Lädt...
X