{"id":13565406,"url":"https://github.com/openhab/openhab-addons","last_synced_at":"2025-12-17T01:06:04.605Z","repository":{"id":16990190,"uuid":"19753195","full_name":"openhab/openhab-addons","owner":"openhab","description":"Add-ons for openHAB","archived":false,"fork":false,"pushed_at":"2025-05-12T20:51:04.000Z","size":357353,"stargazers_count":1975,"open_issues_count":683,"forks_count":3644,"subscribers_count":194,"default_branch":"main","last_synced_at":"2025-05-13T00:17:22.829Z","etag":null,"topics":["add-ons","java","openhab"],"latest_commit_sha":null,"homepage":"https://www.openhab.org/","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"epl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/openhab.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"custom":["https://www.openhab.org/about/donate.html"]}},"created_at":"2014-05-13T19:41:58.000Z","updated_at":"2025-05-12T20:51:09.000Z","dependencies_parsed_at":"2023-10-01T15:28:07.847Z","dependency_job_id":"7b92b645-0241-4c1d-b015-e9097b627b74","html_url":"https://github.com/openhab/openhab-addons","commit_stats":{"total_commits":4187,"total_committers":506,"mean_commits":8.274703557312254,"dds":0.9044662049199904,"last_synced_commit":"0886a24182eb910409b0e3c36471c53cb4bdcb4e"},"previous_names":[],"tags_count":130,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openhab%2Fopenhab-addons","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openhab%2Fopenhab-addons/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openhab%2Fopenhab-addons/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openhab%2Fopenhab-addons/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openhab","download_url":"https://codeload.github.com/openhab/openhab-addons/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":253843225,"owners_count":21972874,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["add-ons","java","openhab"],"created_at":"2024-08-01T13:01:46.297Z","updated_at":"2025-12-17T01:06:04.556Z","avatar_url":"https://github.com/openhab.png","language":"Java","funding_links":["https://www.openhab.org/about/donate.html"],"categories":["Java"],"sub_categories":[],"readme":"# openHAB Add-ons\n\n\u003cimg align=\"right\" width=\"220\" src=\"./logo.png\" /\u003e\n\n[![GitHub Actions Build Status](https://github.com/openhab/openhab-addons/actions/workflows/ci-build.yml/badge.svg?branch=main)](https://github.com/openhab/openhab-addons/actions/workflows/ci-build.yml)\n[![Jenkins Build Status](https://ci.openhab.org/job/openHAB-Addons/badge/icon)](https://ci.openhab.org/job/openHAB-Addons/)\n[![EPL-2.0](https://img.shields.io/badge/license-EPL%202-green.svg)](https://opensource.org/licenses/EPL-2.0)\n[![Crowdin](https://badges.crowdin.net/openhab-addons/localized.svg)](https://crowdin.com/project/openhab-addons)\n\nThis repository contains the official set of add-ons that are implemented on top of openHAB Core APIs.\nAdd-ons that got accepted in here will be maintained (e.g. adapted to new core APIs)\nby the [openHAB Add-on maintainers](https://github.com/orgs/openhab/teams/add-ons-maintainers).\n\nTo get started with binding development, follow our guidelines and tutorials over at https://www.openhab.org/docs/developer.\n\nIf you are interested in openHAB Core development, we invite you to come by on https://github.com/openhab/openhab-core.\n\n## Add-ons in other repositories\n\nSome add-ons are not in this repository, but still part of the official [openHAB distribution](https://github.com/openhab/openhab-distro).\nAn incomplete list of other repositories follows below:\n\n* https://github.com/openhab/org.openhab.binding.zwave\n* https://github.com/openhab/org.openhab.binding.zigbee\n* https://github.com/openhab/openhab-webui\n\n## Development / Repository Organization\n\nopenHAB add-ons are [Java](https://en.wikipedia.org/wiki/Java_(programming_language)) `.jar` files.\n\nThe openHAB build system is based on [Maven](https://maven.apache.org/what-is-maven.html).\nThe official IDE (Integrated development environment) is Eclipse.\n\nYou find the following repository structure:\n\n```\n.\n+-- bom       Maven buildsystem: Bill of materials\n|   +-- openhab-addons  Lists all extensions for other repos to reference them\n|   +-- ...             Other boms\n|\n+-- bundles   Official openHAB extensions\n|   +-- org.openhab.binding.airquality\n|   +-- org.openhab.binding.astro\n|   +-- ...\n|\n+-- features  Part of the runtime dependency resolver (\"Karaf features\")\n|\n+-- itests    Integration tests. Those tests require parts of the framework to run.\n|   +-- org.openhab.binding.astro.tests\n|   +-- org.openhab.binding.avmfritz.tests\n|   +-- ...\n|\n+-- src/etc   Auxilary buildsystem files: The license header for automatic checks for example\n+-- tools     Static code analyser instructions\n|\n+-- CODEOWNERS  This file assigns people to directories so that they are informed if a pull-request\n                would modify their add-ons.\n```\n\n### Command line build\n\nTo build all add-ons from the command-line, type in:\n\n```shell\nmvn clean install\n```\n\nMost of the time you do not need to build all bindings, but only the binding you are working on.\nTo simply build only your binding use the `-pl` option.\nFor example to build only the astro binding:\n\n```shell\nmvn clean install -pl :org.openhab.binding.astro\n```\n\nIf you have a binding that has dependencies that are dynamically as specified in the feature.xml you can create a `.kar` instead of a `.jar` file.\nA `.kar` file will include the feature.xml and when added to openHAB will load and activate any dependencies specified in the feature.xml file.\nTo create a `.kar` file run maven with the goal `karaf:kar`:\n\n```shell\nmvn clean install karaf:kar -pl :org.openhab.binding.astro\n```\n\nTo improve build times you can add the following options to the command:\n\n| Option                        | Description                                         |\n| ----------------------------- | --------------------------------------------------- |\n| `-DskipChecks`                | Skip the static analysis (Checkstyle, FindBugs)     |\n| `-DskipTests`                 | Skip the execution of tests                         |\n| `-Dmaven.test.skip=true`      | Skip the compilation and execution of tests         |\n| `-Dfeatures.verify.skip=true` | Skip the Karaf feature verification                 |\n| `-Dspotless.check.skip=true`  | Skip the Spotless code style checks                 |\n| `-o`                          | Work offline so Maven does not download any updates |\n| `-T 1C`                       | Build in parallel, using 1 thread per core          |\n| `-pl :\u003cadd-on directory\u003e`     | Build a single add-on                               |\n\nFor example you can skip checks and tests during development with:\n\n```shell\nmvn clean install -DskipChecks -DskipTests -pl :org.openhab.binding.astro\n```\n\nAdding these options improves the build time but could hide problems in your code.\nParallel builds are also less easy to debug and the increased load may cause timing sensitive tests to fail.\n\n#### Translations\n\nAdd-on translations are managed via [Crowdin](https://crowdin.com/project/openhab-addons).\nThe English translation is taken from the openHAB-addons GitHub repo and automatically imported in Crowdin when changes are made to the English i18n properties file.\nWhen translations are added or updated and approved in Crowdin, a pull request is automatically created by Crowdin.\nTherefore translations should not be edited in the openHAB-addons repo, but only in Crowdin.\nOtherwise translation are overridden by the automatic process.\n\nTo fill the English properties file run the following maven command on an add-on:\n\n```shell\nmvn i18n:generate-default-translations\n```\n\nThis command can also update the file when things or channel are added or updated.\n\nIn some cases the command does not work, and requires the full plug-in name.\nIn that case use:\n\n```shell\nmvn org.openhab.core.tools:i18n-maven-plugin:3.4.0:generate-default-translations\n```\n\n\n#### Code Quality\n\nTo check if your code is following the [code style](https://www.openhab.org/docs/developer/guidelines.html#b-code-formatting-rules-style) run:\n\n```shell\nmvn spotless:check\n```\n\nTo reformat your code so it conforms to the code style you can run: \n\n```shell\nmvn spotless:apply\n```\n\n### Integration Tests\n\nWhen your add-on also has an integration test in the `itests` directory, you may need to update the runbundles in the `itest.bndrun` file when the Maven dependencies change.\nMaven can resolve the integration test dependencies automatically by executing: \n\n```shell\nmvn clean install -DwithResolver -DskipChecks\n```\n\nThe build generates a `.jar` file per bundle in the respective bundle `/target` directory.\n\n### How to develop via an Integrated Development Environment (IDE)\n\nWe have assembled some step-by-step guides for different IDEs on our developer documentation website:\n\nhttps://www.openhab.org/docs/developer/#setup-the-development-environment\n\nHappy coding!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenhab%2Fopenhab-addons","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenhab%2Fopenhab-addons","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenhab%2Fopenhab-addons/lists"}