ioBroker Package manifest
ioBroker adapters io-package file
| Type | object |
|---|---|
| File match |
io-package.json
|
| Schema URL | https://catalog.lintel.tools/schemas/schemastore/iobroker-package-manifest/latest.json |
| Source | https://raw.githubusercontent.com/ioBroker/ioBroker.js-controller/master/schemas/io-package.json |
Validate with Lintel
npx @lintel/lintel check
Properties
Contains all common instance attributes
82 nested properties
Name of the adapter without ioBroker
Current adapter version
Platform, normally Javascript/Node.js
Short form of changelog in all supported languages
3 nested properties
Use 'paid' for adapters which do not work without a paid license. Use 'commercial' for adapters which require a license for commercial use only. Use 'limited' if some functionalities are not available without a paid license.
The license this software is published under.
Hyperlink, where information about the license can be found. For non-free licenses the linked page should contain information about free features (if applicable), time of validity, link to shop and seller information. This is required if the license type is different from 'free'. For 'free' licenses an optional link to the license file can be placed here.
Execution mode of the adapter
Lower tiers are started before higher tiers instances, TIER 1: LOGIC, TIER 2: APIs & other data, TIER 3: not fastly needed data, like BackItUp, Visualization, etc.
Longer name of adapter DEPRECATED: For admin version >= 5 this property is no longer required
true if messagebox supported. Hence, the adapter can receive sendTo messages. Up from controller v5, please use common.supportedMessages.custom = true
Array which lists all blocked versions. Blocked versions will not be started. Use semver notation to specify the version ranges. The information is always used from the io-package.json in the GitHub repository.
Object which defines, if the adapter supports receiving messages via sendTo. Additionally, it defines if specific messages are supported.
5 nested properties
If custom messages are supported (same as legacy messagebox)
If adapter supports the device manager and thus responds to the corresponding messages
If notification handling is supported, for information, see https://github.com/foxriver76/ioBroker.notification-manager#requirements-for-messaging-adapters
If adapter supports signal stopInstance. Use number if you need more than 1000 ms for stop routine. The signal will be sent before stop to the adapter. (used if problems occurred with SIGTERM). (Same as legacy supportStopInstance)
If adapter supports getHistory message. (Same as legacy getHistory, to avoid problems, set both flags in parallel for now)
Url of the ReadMe file
Type of the admin UI
3 nested properties
UI type of config page inside admin UI
UI type of custom tab inside admin UI
UI type of tab inside admin UI
Automatically upgrade the adapter in the configured semver range. Best practice is to leave this as none and let the user opt-in.
Definition of the widgets for "devices" adapter
The structure like {"en": "docs/en/README.md", "de": ["docs/de/README.md", "docs/de/README1.md"]} that describes the documentation if not in README.md
Array of authors as string
The license this software is published under.
4 nested properties
Link to module, like 'rules/customRuleBlocks.js'. That means it will loaded from admin/rules directory of the adapter
Name of the module, like 'ActionTelegram'
Translation for the rule block
Define type='module' if rules written with TypeScript
Type of the adapter
The adapter will be executed once additionally after installation and the install event will be emitted during this run. This allows for executing one time installation code.
if the package must be installed with "npm --unsafe-perm" parameter
ioBroker plugins to be used
Custom attributes, that must be shown in admin in the object browser. Like: [{"name": {"en": "KNX address"}, "path": "native.address", "width": 100, "align": "left"}, {"name": "DPT", "path": "native.dpt", "width": 100, "align": "right", "type": "number", "edit": true, "objTypes": ["state", "channel"]}]. type is a type of the attribute (e.g. string, number, boolean) and only needed if edit is enabled. objTypes is a list of the object types, that could have such attribute. Used only in edit mode too.
Adds a Tab which can be shown in admin adapter
5 nested properties
Do not update config TAB if configuration changed (to enable configure settings in TAB)
Link for iframe or JSON config file in the TAB. You can use parameters replacement like this: "https://%ip%:%port%". IP will be replaced with host IP. "port" will be extracted from native.port.
If true, only one TAB for all instances will be shown.
If true, the page sends an 'iobLoaded' event when loaded
Only used by js-controller
allow for "scheduled" adapter to be called "not in the time schedule", if settings changed or adapter started. Or allow scheduled adapter start once after configuration changed and then by schedule.
values for common.mode if more than one mode is possible
if adapter has custom blocks for blockly (admin/blockly.js required)
Type of connection to device
If compact mode supported
Folder relative to iobroker-data where the adapter stores the data. This folder will be backed up and restored automatically. You can use variable '%INSTANCE%' in it
How the data will be received from device
Array like [{"js-controller": ">=2.0.0"}] that describes which ioBroker modules are required for this adapter on the same host
Value should be false so new instances are disabled by default
erase all previous data in the directory before upload
Link to external icon for uninstalled adapters. Normally on GitHub
if adapter supports getHistory message. (Up from controller v5, please use common.supportedMessages.getHistory)
Array like [{"admin": ">=2.0.0"}] that describes which ioBroker modules are required for this adapter on one of the hosts
Object like {"admin": ">=2.0.0", "javascript": ">=3.0.0"} that describes which versions of ioBroker modules are required for this adapter on one of the hosts, but only if this adapter is installed
name of the local icon (should be located in subdirectory "admin")
Similar to keywords in package.json, but can be defined in many languages.
Link to the web service of this adapter. E.g {"_default": "http://localhost:5984/_utils"} for button in admin
Default Loglevel after instance creation
If this adapter receives logs from other hosts and adapters (e.g. to store them somewhere)
Name of the start file. DEPRECATED: For controller >= 3.3 please use package.json main.
If adapter supports > admin3 (materialize style) DEPRECATED: For admin version >= 5 please use the property 'adminUI'
If adapter supports > admin3 for tab (materialize style) DEPRECATED: For admin version >= 5 please use the property 'adminUI'
Do not show configuration dialog for instance DEPRECATED: For admin version >= 5 please use adminUI.config = "none"
never show instances of this adapter on Intro/Overview screen in admin (like icons, widgets)
If adapter delivered with initial installation or has own repository
If true, no install from github directly is possible
This adapter cannot be deleted or updated. It will be updated together with controller.
Say to controller, that adapter has only html files and no main.js, like rickshaw
OS packages which should be installed on adapter installation
String or array of supported operation systems, e.g ["linux", "darwin"]
String (or array) with names of attributes in common of instance, which will not be deleted. E.g. "history", so by setState('system.adapter.mqtt.0", {..}) the field common.history will not be deleted even if new object does not have this field. To delete the attribute it must be explicitly done with common:{history: null}.
Array with names of adapter that must be restarted after this adapter is installed, e.g. ["vis"]
CRON schedule to restart mode daemon adapters
CRON schedule if adapter runs in mode schedule
If adapter can deliver additional states. If true, the path adapter/lib/states.js (or given path as string) will be called and it give following parameters function (objects, states, instance, config, callback). The function must deliver the array of points with values like function (err, result) { result = [{id: 'id1', val: 1}, {id: 'id2', val: 2}]}
Adapter can be installed only once on one host
Adapter can be installed only once in whole system
If adapter must be stopped before update
timeout in ms to wait, till adapter shut down
Variables of this adapter must be subscribed with sendTo to enable updates
If the adapter supports settings for every state. It requires file jsonCustom.json in admin and "common.adminUI":{"custom":"json"}. Sample can be found in ioBroker.history
If adapter supports signal stopInstance (messagebox required). Use number if you need more than 1000 ms for stop routine. The signal will be sent before stop to the adapter. (used if problems occurred with SIGTERM). (Up from controller v5, please use common.supportedMessages.stopInstance)
Overview of vis 2 widgets provided by the adapter, define the name of the provided sets as keys
Overview of vis 2 SVG icon sets provided by the adapter, define the name of the provided sets as keys
Show version as prefix in web adapter (usually - ip:port/material, webByVersion - ip:port/1.2.3/material)
If web server in this adapter can be extended with plugin/extensions like proxy, simple-api
Relative filename to connect the web extension. E.g. in simple-api "lib/simpleapi.js" relative to the adapter root directory. Additionally is native.webInstance required to say where this extension will be included. Empty means, it must run as own web service. "*" means every web server must include it.
Object of parameters that must be included into info.js by webServer adapter. (Example material)
Array of web server's instances that should serve content from the adapters www folder
DEPRECATED: Please use common.localLinks instead. Array of pages, that should be shown on the "web" index.html page. ["vis/edit.html", "vis/index.html"] or [{"link": "vis/edit.html", "name": "Vis editor", "img": "vis/img/edit.png", "color": "blue"}, "vis/index.html"]
DEPRECATED: Please use common.localLinks instead. Array of pages used on access via ioBroker cloud, that should be shown on the "web" index.html page. ["vis/edit.html", "vis/index.html"] or [{"link": "vis/edit.html", "name": "Vis editor", "img": "vis/img/edit.png", "color": "blue"}, "vis/index.html"]
Do not upload the www directory into DB. Used only for admin.
Messages can be shown on adapter installation, update and instance creation
JSON schema for validation
Objects which will be created for the adapter
Objects which will be created for each instance
Register notifications for the built-in notification system
Predefined attributes which are accessible in index_m.html and at runtime via adapter.config.
Array of config attributes which will only be accessible by the own adapter, e.g. ["password"]
Array of config attributes which will be automatically encrypted when stored via Admin configuration page and automatically decrypted at adapter runtime, e.g. ["password", "token"]
Definitions
The license this software is published under.