Dieses Repository enthält den offiziellen Satz von Add-ons, die zusätzlich zu den openHAB Core APIs implementiert werden. Add-ons, die hier akzeptiert wurden, werden von den openHAB-Add-on-Betreuern gepflegt (z. B. an neue Kern-APIs angepasst).
Um mit der Bindungsentwicklung zu beginnen, befolgen Sie unsere Richtlinien und Tutorials unter https://www.openhab.org/docs/developer.
Wenn Sie an der Entwicklung von openHAB Core interessiert sind, laden wir Sie ein, auf https://github.com/openhab/openhab-core vorbeizuschauen.
Einige Add-Ons befinden sich nicht in diesem Repository, sind aber dennoch Teil der offiziellen openHAB-Distribution. Nachfolgend finden Sie eine unvollständige Liste weiterer Repositories:
openHAB-Add-ons sind Java .jar
Dateien.
Das openHAB-Build-System basiert auf Maven. Die offizielle IDE (Integrierte Entwicklungsumgebung) ist Eclipse.
Sie finden die folgende Repository-Struktur:
.
+-- bom Maven buildsystem: Bill of materials
| +-- openhab-addons Lists all extensions for other repos to reference them
| +-- ... Other boms
|
+-- bundles Official openHAB extensions
| +-- org.openhab.binding.airquality
| +-- org.openhab.binding.astro
| +-- ...
|
+-- features Part of the runtime dependency resolver ("Karaf features")
|
+-- itests Integration tests. Those tests require parts of the framework to run.
| +-- org.openhab.binding.astro.tests
| +-- org.openhab.binding.avmfritz.tests
| +-- ...
|
+-- src/etc Auxilary buildsystem files: The license header for automatic checks for example
+-- tools Static code analyser instructions
|
+-- CODEOWNERS This file assigns people to directories so that they are informed if a pull-request
would modify their add-ons.
Um alle Add-ons über die Befehlszeile zu erstellen, geben Sie Folgendes ein:
mvn clean install
Meistens müssen Sie nicht alle Bindungen erstellen, sondern nur die Bindung, an der Sie arbeiten. Um einfach nur Ihre Bindung zu erstellen, verwenden Sie die Option -pl
. Um zum Beispiel nur die Astro-Bindung zu bauen:
mvn clean install -pl :org.openhab.binding.astro
Wenn Sie über eine Bindung verfügen, deren Abhängigkeiten dynamisch sind, wie in der Datei „feature.xml“ angegeben, können Sie eine .kar
anstelle einer .jar
-Datei erstellen. Eine .kar
Datei enthält die Datei „feature.xml“ und lädt und aktiviert beim Hinzufügen zu openHAB alle in der Datei „feature.xml“ angegebenen Abhängigkeiten. Um eine .kar
Datei zu erstellen, führen Sie maven mit dem Ziel karaf:kar
aus:
mvn clean install karaf:kar -pl :org.openhab.binding.astro
Um die Build-Zeiten zu verbessern, können Sie dem Befehl die folgenden Optionen hinzufügen:
Option | Beschreibung |
---|---|
-DskipChecks | Überspringen Sie die statische Analyse (Checkstyle, FindBugs) |
-DskipTests | Überspringen Sie die Ausführung von Tests |
-Dmaven.test.skip=true | Überspringen Sie die Kompilierung und Ausführung von Tests |
-Dfeatures.verify.skip=true | Überspringen Sie die Überprüfung der Karaf-Funktion |
-Dspotless.check.skip=true | Überspringen Sie die Überprüfung des Spotless-Codestils |
-o | Arbeiten Sie offline, damit Maven keine Updates herunterlädt |
-T 1C | Paralleles Erstellen mit 1 Thread pro Kern |
-pl :<add-on directory> | Erstellen Sie ein einzelnes Add-on |
Sie können beispielsweise Prüfungen und Tests während der Entwicklung überspringen mit:
mvn clean install -DskipChecks -DskipTests -pl :org.openhab.binding.astro
Das Hinzufügen dieser Optionen verkürzt die Erstellungszeit, kann jedoch Probleme in Ihrem Code verbergen. Parallele Builds sind außerdem weniger einfach zu debuggen und die erhöhte Last kann dazu führen, dass zeitkritische Tests fehlschlagen.
Zusatzübersetzungen werden über Crowdin verwaltet. Die englische Übersetzung wird aus dem GitHub-Repo von openHAB-addons übernommen und automatisch in Crowdin importiert, wenn Änderungen an der englischen i18n-Eigenschaftendatei vorgenommen werden. Wenn Übersetzungen in Crowdin hinzugefügt oder aktualisiert und genehmigt werden, wird von Crowdin automatisch eine Pull-Anfrage erstellt. Daher sollten Übersetzungen nicht im openHAB-addons Repo bearbeitet werden, sondern nur in Crowdin. Andernfalls wird die Übersetzung durch den automatischen Prozess überschrieben.
Um die englische Eigenschaftendatei zu füllen, führen Sie den folgenden Maven-Befehl für ein Add-on aus:
mvn i18n:generate-default-translations
Dieser Befehl kann die Datei auch aktualisieren, wenn Dinge oder Kanäle hinzugefügt oder aktualisiert werden.
In einigen Fällen funktioniert der Befehl nicht und erfordert den vollständigen Plug-in-Namen. In diesem Fall verwenden Sie:
mvn org.openhab.core.tools:i18n-maven-plugin:3.4.0:generate-default-translations
Um zu überprüfen, ob Ihr Code dem Codestil entspricht, führen Sie Folgendes aus:
mvn spotless:check
Um Ihren Code so neu zu formatieren, dass er dem Codestil entspricht, können Sie Folgendes ausführen:
mvn spotless:apply
Wenn Ihr Add-on auch über einen Integrationstest im itests
-Verzeichnis verfügt, müssen Sie möglicherweise die Runbundles in der itest.bndrun
Datei aktualisieren, wenn sich die Maven-Abhängigkeiten ändern. Maven kann die Integrationstestabhängigkeiten automatisch auflösen, indem es Folgendes ausführt:
mvn clean install -DwithResolver -DskipChecks
Der Build generiert pro Bundle eine .jar
Datei im jeweiligen Bundle- /target
-Verzeichnis.
Auf unserer Website zur Entwicklerdokumentation haben wir einige Schritt-für-Schritt-Anleitungen für verschiedene IDEs zusammengestellt:
https://www.openhab.org/docs/developer/#setup-the-development-environment
Viel Spaß beim Codieren!