Giter Site home page Giter Site logo

iobroker.repositories's Introduction

ioBroker.repositories

This is GitHub project for storage of latest and stable repositories.

last refresh beta last refresh stable

Update of the version in stable

  1. Be sure that the version is tested in forum by users, or you fix the critical bug with that.
  2. Delete the versionTime, if exists

Add a new adapter to the latest repository

  1. Fork this repo and clone your fork
  2. Run npm i
  3. Run npm run addToLatest -- --name <adapter-name> --type <adapter-type>
    (replace <adapter-name> with your adapter's name (without 'iobroker.' prefix) and <adapter-type> with the adapter type)
  4. Push a commit with the changes to sources-dist.json
  5. Create a PR

Add a new adapter to the latest repository (web frontend)

  1. Go to iobroker.dev
  2. Log in with GitHub
  3. Open the new adapter
  4. Click on manage
  5. Click on action "ADD TO LATEST"

Requirements for adapter to get added to the latest repository

Already required for the latest repository

  1. Your GitHub repository must have the name - ioBroker.<adaptername>. B is capital in "ioBroker", but in the package.json the name must be low case, because npm does not allow upper case letters. Your repository must have "topics". Add these with Manage topics.

  2. Do not use in the title the words ioBroker or Adapter. It is clear anyway that this adapter is for ioBroker.

  3. title in io-package.json (common) is simple short name of adapter in english. titleLang is object that consists short names in many languages. Lang ist not german Länge, but english LANGuages.

  4. Adapter needs to have a README.md with description, detail information and changelog. English is mandatory. Other languages are welcome. See Example of README.md.

    In README.md, there must be a link to the device or the manufacturer's website. Devices must have a photo. Services do not require a photo, but are still welcome.

  5. Adapter must have a predefined license.

  6. Please remove www, widgets and docs directories (admin/tab_m.html, admin/custom_m.html) if not used.

  7. Adapter needs to have at least Adapter basic testing (installing, running) using GitHub actions. More information in Forum from apollon77 (Just take from other adapters the samples)

  8. Define one of the types in io-package.json. See details here

  9. Define one of the connection types (if applied) in io-package.json. See details here

  10. All states must have the according valid roles (and not just "state")

  11. Include author in io-package.json and authors in io-package.json. See here.

  12. Adapter needs to be available as package on npmjs.com. See How to publish on npm

  13. iobroker organisation must be added as an owner to npm package. Why and how to do that.

  14. Add your adapter into the list (first latest and after that into stable, when tested). Examples of entries you can find here.

  15. No new adapters will be accepted to repo without admin3 Configuration dialog. Admin2 dialog is optional!

  16. Port attribute must have name port.

  17. Check and follow the coding best practices listed below.

Note: you can watch the video about it (only german) on YouTube Note: There is a helper https://adapter-check.iobroker.in/ to check many points automatically. Just place your GitHub adapter repo there, e.g. https://github.com/ioBroker/ioBroker.admin and press enter or on the check button.

Development and Coding best practices

  • Best use the adapter creator (https://github.com/ioBroker/create-adapter) or get a fresh relevant version from the Template Repository (https://github.com/ioBroker/ioBroker.template) to start coding to always get the latest basic version and also updates. You should not always copy basic files from former adapters!
  • Do not copy a package.json or io-package.json after an installation because some fields might have been added on installation! e.g. io-package with common.installedFrom eds to be removed
  • Use the Adapter Checker and fix all issues shown there: https://adapter-check.iobroker.in/
  • Respect Object and state definitions, types and roles Values not defined here should not be used. Discussions about missing roles or types are welcome:
  • Only commit .vscode, .idea or other IDE files/helper directories to GitHub if there is a need to. This is to prevent the other user's settings from interfering with yours or make PRs more complex because of this.
  • If you do not need stateChange/objectChange/message please do not implement it
  • if you need to store passwords, please encrypt them. This can be done by just configuration:
  • add all editable fields from index_m.html to io-package.json native with their default values
  • You need to make sure to clean up ALL resources in unload. Clear all Timers, Intervals, close serial ports and servers and end everything. Else this will break the compact mode (or also see next point!)
  • Use adapter.setTimeout/setInterval and corresponding clear Methods to create timers and intervals that are automatically cleaned up when the adapter gets unloaded and make sure to not start new timers/intervals after adapter is stopped already. This can help in many cases and is near to a drop-in replacement for Timers from Node.js (but it is NOT an object, so the methods on Timer objects will not work!)
  • Please test in compact mode! Especially starting, running, stopping adapter and verify that nothing runs any longer and no logs are triggered and also a new start works.
  • Be careful with setObject because it overwrites the object and (especially in js-controller < 2.2) custom settings like history may be removed by this! Use setObjectNotExists or read the object to detect if it exists and use extendObject to update.
  • get familiar with the ack concept of ioBroker. Adapters normally set all "final" values with ack=true and these are mostly ignored in onStateChange handlers. ack=false are commands that normally are handled by Adapters.
  • Do not use process.exit() because this breaks compact mode. Use adapter.terminate() if the method is available.
  • If you consider using a scheduling library in conjunction with external/cloud services, then consider the potential consequences! If your adapter becomes successful, then all users will do their calls to the external service in the exact same second. This can become a DOS stile "attack" to that server with bad consequences. Additionally, to that using a Scheduling library just to implement intervals is overkill :-) setInterval/setTimeout should be completely sufficient AND has a good side effect that requests are not done all at the same second, but start when the adapter starts.
  • When using Intervals together with external communication, think about timeout and error cases - an interval triggers the next call also if the last has not finished. So requests might pile up and you DOS the external API. A better practice might be to use setTimeout and set at the end of one call for the next call
  • If you use connections to other systems (Websockets, MQTT, TCP, Serial or other) please also implement the info.connection state (directly create objects by including in io-package) and set the connection value accordingly. Using this enables Admin to differentiate the status between green (ok, running), yellow (basically running but not connected) and red (not running).
  • Consider and understand the asynchronous nature of JavaScript and make sure to know what will happen in parallel and what makes more sense to be sequential! It is ok to use callbacks or Promises/async/await - the later makes it easier to understand and control how your code really flows.
  • Consider using ESLint or other JavaScript code and type checker to see errors in your code before releasing a new version.
  • Please activate adapter testing with at least package- and integration-tests on GitHub Actions
  • The adapter testing using GitHub Actions is not for us - it is for you! Please check it after pushing changes to GitHub and before telling it to users or publish an NPM package. If testing is "red" you should check the testing log to see what is broken.
  • If you like to increase testing, you can start implementing adapter specific tests that always run when you push changes to GitHub.
  • You can/should use https://translator.iobroker.in/ to auto translate all relevant texts into all needed languages by providing the english text
  • If an adapter instance wants to generate an object structure, it should use objects from the type device, channel or folder to define sub-structures and provide objects of type state only on the last "level". Different levels can be separated by a ".". An object of the type "state" should never have more objects below it. The allowed fields for the relevant object types are documented in https://github.com/ioBroker/ioBroker.docs/blob/master/docs/en/dev/objectsschema.md#core-concept
  • If an adapter opens a port or bind socket to some IP-address, the attributes must be called port and bind (v6bind for IPv6).
  • If an adapter connects to some IP-address, the IP attribute may be not called bind (use ip for that).

Add a new adapter to the stable repository

  1. Fork this repo and clone your fork
  2. Run npm i
  3. Run npm run addToStable -- --name <adapter-name> --version <stable-version>
    (replace <adapter-name> with your adapter's name and <stable-version> with the version that should be added to the stable repo)
  4. Push a commit with the changes to sources-dist-stable.json
  5. Create a PR

Requirements for adapter to get added to the stable repository

Additionally, to all above listed points:

  1. The adapter must have been added to the latest repository previously.
  2. Forum thread with question to test the adapter.
  3. Some feedback on forum.
  4. Important Discovery function! If a device can be found automatically (USB, IP) it should be implemented in discovery adapter after (Discovery PR will be merged after stable acceptance).

Common Rules and Requirements for Commercial Adapters Requiring a License

ioBroker GmbH sponsors all infrastructure and services necessary for the smooth functioning of the ioBroker world. This encompasses the repository, central components, and platforms such as the Forum. While the usage of open-source "non-commercial" adapters is entirely free, the scenario changes when adapters necessitate a purchase.

For an optimal experience, it is recommended to procure licenses through the official ioBroker Website. The ioBroker GmbH facilitates license management and provides secure components for seamless integration into the adapter. In return for this service, a standard share of 30% of revenues is remitted to ioBroker GmbH. For further information or inquiries, please reach out to [email protected].

In cases where purchases are managed by the developer directly, and the adapter is intended for inclusion in the repository, a service fee of typically 15% of the revenue is applicable. For details and negotiations regarding this arrangement, please also contact [email protected].

How-to

How to publish on npm

https://docs.npmjs.com/getting-started/publishing-npm-packages

Add an owner to a packet

We are really happy that other developers are contributing to ioBroker. But some of them with the time lost the enthusiasm and stopped support and maintaining the adapter.

There is no problem with GitHub repository. We can just fork it and maintain it in our organisation, but the situation with npm is different.

If some name is blocked (e.g., iobroker.rpi) we cannot publish the changed adapter under the same name, we must change the name to e.g., iobroker.rpi2.

Then we must change the ioBroker repositories, and the user must install the new adapter and migrate the old settings and objects into new adapter.

This is not suitable.

Because of that, we ask you to give ioBroker organisation publish rights to update the npm package. We will use it only in emergency, or if the author does not react to our requests.

To add the ioBroker organisation to npm packet, you must write the following after the packet is published:

npm access grant read-write iobroker:developers iobroker.<adaptername>

If the command does not work, just add bluefox as an owner.

npm owner add bluefox iobroker.<adaptername>

Attention: bluefox must accept the invite. This might last a day or two. So please be patient until the invite has been accepted. If invite expires, please retry (send a second invite).

Example of README.md

https://github.com/ioBroker/ioBroker.admin/blob/master/README.md

Much better is to write documentation separately for every language like here:

https://github.com/ioBroker/ioBroker.admin/blob/master/io-package.json#L171

and the files are here https://github.com/ioBroker/ioBroker.admin/tree/master/docs

And make the link in your readme file to these files, like here: https://github.com/ioBroker/ioBroker.javascript/blob/master/README.md

Licenses

The following licenses are used now in ioBroker project:

  • MIT (used for most of the adapters and core)
  • Apache 2.0
  • CC-BY
  • OFL-1.1
  • EPL
  • LGPL
  • GPLv3
  • GPLv2
  • CC-BY-NC
  • CC-BY-NC-SA

You can choose the suitable license here: https://ufal.github.io/public-license-selector/

Of course, you can add your own licenses, even WTFPL.

You must, of course, take in count the licenses of components that are used in your adapter. E.g., if you use the main packet under GPLv2 license, you cannot make CC-BY-NC from that.

Testing

The Adapter Creator will create all needed files and deps for the testing, see also https://github.com/ioBroker/ioBroker.example/tree/master/JavaScript/test . Tests are then run by GitHub Action (also pre-generated)

Types

The io-package.json must have an attribute type in common part. An example can be seen here:

  • alarm - security of home, car, boat, ...
  • climate-control - climate, heaters, air filters, water heaters, ...
  • communication - deliver data for other services via RESTapi, websockets
  • date-and-time - schedules, calendars, ...
  • energy - energy metering
  • metering - other, but energy metering (water, gas, oil, ...)
  • garden - mower, springs, ...
  • general - general purpose adapters, like admin, web, discovery, ...
  • geoposition - geo-positioning. These adapters deliver or accept the position of other objects or persons.
  • health - heart pulse, blood pressure, body weight, ...
  • hardware - different multi-purpose hardware, arduino, esp, bluetooth, ...
  • household - vacuum-cleaner, kitchen devices, ...
  • infrastructure - Network, printers, phones, NAS, ...
  • iot-systems - Other comprehensive smarthome systems (software and hardware)
  • lighting - light
  • logic - rules, scripts, parsers, scenes, ...
  • messaging - these adapters send and receive messages from message services: telegram, email, whatsapp, ...
  • misc-data - export/import of some unsorted information, contacts, systeminfo, gazoline prises, share curses, currents (EUR=>USD), ...
  • multimedia - TV, AV Receivers, TV play boxes, Android/apple TV boxes, multi-room music, IR controls, speech input/output, ...
  • network - ping, network detectors, UPnP, ...
  • protocols - Communication protocols: MQTT,
  • storage - logging, data protocols, SQL/NoSQL DBs, file storage, ...
  • utility - different help adapters. Like backup, export/import
  • vehicle - cars
  • visualization - visualisation, like vis, material, mobile
  • visualization-icons - icons for visualization
  • visualization-widgets - iobroker.vis widgets
  • weather - weather info, air quality, environment statistics

You can see the types of existing adapters here and try to find the similar one.

Connection types

If your adapter controls some device/car/house the adapter could be connected with various methods and receive data via different protocols.

Define connectionType in common part of io-package.json as:

  • local - if the communication with device does not require cloud access.
  • cloud - if the communication is via cloud.

Define dataSource in common as:

  • poll - Querying the status means that an update may be noticed later.
  • push - ioBroker will be notified when a new status is available.
  • assumption - The status of the device cannot be determined. ioBroker takes status based on last ioBroker command.

Defined categories for non-repo adapters

  • pilight - iot-systems
  • samsung2016 - multimedia
  • viessmann - climate-control
  • vuplus - multimedia

Authors

Please define the following attributes in package.json :

Samples

For latest (sources-dist.json):

  "admin": {
    "meta": "https://raw.githubusercontent.com/ioBroker/ioBroker.admin/master/io-package.json",
    "icon": "https://raw.githubusercontent.com/ioBroker/ioBroker.admin/master/admin/admin.png",
    "type": "general"
  },

For stable (sources-dist-stable.json):

  "admin": {
    "meta": "https://raw.githubusercontent.com/ioBroker/ioBroker.admin/master/io-package.json",
    "icon": "https://raw.githubusercontent.com/ioBroker/ioBroker.admin/master/admin/admin.png",
    "type": "general",
    "version": "2.0.7"
  },

Note: stable always has a specific version.

Automatic pull request checker

On every pull request to the repository, the GitHub Action will be triggered (see check.yml ). It will check the following things:

  • Detect which adapters are changed by analysing the diff of changed files (See detectAffectedAdapter in lib/check.js)
  • Run an adapter checker from @iobroker/repochecker for each changed adapter.
  • Add the comments to PR with the results of the checks.

Issues to move the latest version of adapter to stable

Every night the GitHub Action will be triggered at 3:15 (see stable.yml ). It will check the following things:

  • If the latest version is good enough for stable and will create an issue if yes (See lib/readyForStable.js)

How is the repository build?

The repository is build executing npm run build. However, this is currently only done on a dedicated server running on AWS. However, before build the repository is pulled and thus uses the code from the repository. Hence, modifications how the repo is built should be made against this repository.

iobroker.repositories's People

Contributors

alcalzone avatar apollon77 avatar arteck avatar benahrdt avatar crycode-de avatar dependabot[bot] avatar dutchmannl avatar forelleblau avatar foxriver76 avatar foxthefox avatar germanbluefox avatar grizzelbee avatar hglab01 avatar hombach avatar instalator avatar jey-cee avatar jogibear9988 avatar klein0r avatar ldittmar81 avatar mcm1957 avatar meistertr avatar misanorot avatar o0shojo0o avatar rg-engineering avatar schmupu avatar simatec avatar skvarel avatar ta2k avatar unltdnetworx avatar zefau avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

iobroker.repositories's Issues

Version from npm instead of sources-dist.json

Hi,

I updated the nello adapter recently to v2 on Github (on master branch) and kept v1 on a dedicated branch (v1).
The sources-dist.json is updated with the v1 Github branch, but npm has been updated to v2 branch.

Though, ioBroker now shows v2 branch as the current branch. From my understanding, the branch from sources-dist.json should have been shown instead?

Cheers,
Zefau

Integration of IoBroker in NethServer

I came across the Open Source Project nethserver https://www.nethserver.org/ while searching the net.
I also tested the whole thing. Is really easy to use and easy to install additional systems / packages from there. It might be interesting to offer iobroker as a system to be installed as well. The whole thing is when I have seen the law a thing from Italy and possibly a possibility to bring iobroker to Italy or to make it better known there. You can also find instructions on how to do this here. https://docs.nethserver.org/projects/nethserver-devel/en/latest/

Automate Stable Selection/Reminders

Developers often forget to bring tested versions into the stable.

We should think about automations. An proposal would be:

  • When duration of a version in latest without a following version is > x (14 days) AND
    ** installations >y% of all installations (5%?) OR installations > z (50/100?) then automatically move into stable once a week
  • When only duration of a version in latest without a following version is > x2 create github issue in adapter repo to remind developer :-)
  • When only duration of a version in latest without a following version is > x3 (30/45?) days BUT installation numbers not reached also move into stable

stable not updated

Hi,
kann es sein, dass die stable versionen nicht upgedated werden? Z.B. bei iQontrol (betrifft aber auch andere) wurde vor 9d die neue stable gemerged, auf github und in der Adapter-Liste steht aber immer noch die alte Version.
VG!

Criteria for inclusion into repository are incorrect

There are two major issues (and yes you may assume this is partly a rant):

  1. This one:

iobroker organisation must be added as owner to npm package. Why and how to do that.

There is no organization AFAIK. You expect everyone to add bluefox as owner to the repository. That is not okay, it only slightly improves the bus factor. In any case, if you do not create the organization at least do not pretend there is one.

  1. Adapter review for new adapters is not mentioned at all. This is slightly irritating as this can lead to quite some delays for new adapters as the process seem to be heavily dependent on spare time of individuals.

Adapter located in wrong category (type) in stable repository?

I've seen that the PushBullet adapter is located in "communications" in the ioBroker adapters default/stable list. The question is: why? The io-package.json in the project is correct (type: "messaging") and even the repository files in this repo are correct (type: "messaging"):

"pushbullet": {
"meta": "https://raw.githubusercontent.com/Jens1809/ioBroker.pushbullet/master/io-package.json",
"icon": "https://raw.githubusercontent.com/Jens1809/ioBroker.pushbullet/master/admin/pushbullet.png",
"type": "messaging"
},

"pushbullet": {
"meta": "https://raw.githubusercontent.com/Jens1809/ioBroker.pushbullet/master/io-package.json",
"icon": "https://raw.githubusercontent.com/Jens1809/ioBroker.pushbullet/master/admin/pushbullet.png",
"type": "messaging",
"version": "0.0.11"
},

Latest repository http://download.iobroker.net/sources-dist-latest.json is also correct:

"pushbullet": {
    "meta": "https://raw.githubusercontent.com/Jens1809/ioBroker.pushbullet/master/io-package.json",
    "icon": "pushbullet.png",
    "type": "messaging",
    "stars": -1,
    "weekDownloads": 5,
    "stat": 372,
    "name": "pushbullet",
    "version": "0.0.11",
    "authors": [
      "Jens1809 &lt;[email protected]&gt;"
    ],
    "title": "Pushbullet Adapter",
    "desc": "Pushbullet adapter",
    "platform": "Javascript/Node.js",
    "mode": "daemon",
    "messagebox": true,
    "extIcon": "https://raw.githubusercontent.com/Jens1809/ioBroker.pushbullet/master/admin/pushbullet.png",
    "loglevel": "info",
    "published": "2015-07-25T20:26:50.201Z",
    "versionDate": "2015-10-11T17:49:44.529Z",
    "stable": "0.0.11"
  },

Issue

How is it possible, that the stable repository file on download.iobroker.net delivers the wrong type communication?

http://repo.iobroker.live/sources-dist.json:

  "pushbullet": {
    "name": "pushbullet",
    "version": "0.0.11",
    "title": "Pushbullet Adapter",
    "desc": "Pushbullet adapter",
    "platform": "Javascript/Node.js",
    "mode": "daemon",
    "messagebox": true,
    "icon": "https://raw.githubusercontent.com/Jens1809/ioBroker.pushbullet/master/admin/pushbullet.png",
    "extIcon": "https://raw.githubusercontent.com/Jens1809/ioBroker.pushbullet/master/admin/pushbullet.png",
    "loglevel": "info",
    "type": "communication",
    "meta": "https://raw.githubusercontent.com/Jens1809/ioBroker.pushbullet/master/io-package.json",
    "published": "2015-07-25T20:26:50.201Z",
    "versionDate": "2015-10-11T17:49:44.529Z",
    "stars": -1,
    "stat": 372,
    "weekDownloads": 5,
    "latestVersion": "0.0.11",
    "issues": 9,
    "score": 1
  },

Cache-Control for iobroker.live/badges

Github is caching the images of README.md, which results in outdated badges, e.g. for the version of an adapter.

See https://camo.githubusercontent.com/51363c5291c21367b9acce7d8b839b101c7be998/687474703a2f2f696f62726f6b65722e6c6976652f6261646765732f6875652d657874656e6465642d737461626c652e737667 vs. http://iobroker.live/badges/hue-extended-stable.svg

Solution is Cache-Control as an additional header information from the server-side of iobroker.live as described in https://github.community/t/how-to-prevent-github-from-caching-images-in-markdown-files/1868

ioBroker states wrong version in latest repository

The file http://repo.iobroker.live/sources-dist-latest.json indicates v2.0.1 for the hue-extended adapter, even though the version v1.1.5 is latest on npm (see https://www.npmjs.com/package/iobroker.hue-extended).

Though, I accidentally pushed v2.0.1 to npm earlier but overrode it afterwards:

image

Apparently ioBroker is not retrieving the latest version but probably the highest number?
Is it possible to fix that? I would not want to push a version v2.0 of my adapter to npm just because I accidentally pushed a wrong version earlier.

Thanks in advanced for your help.

Problem with addToLatest when branch name is main

Hi,

when running addToLatest where branch name in github is now "main", the following entry in sources-dist.json is created:

"diashow": {
    "meta": "https://raw.githubusercontent.com/gaudes/ioBroker.diashow/master/io-package.json",
    "icon": "https://raw.githubusercontent.com/gaudes/ioBroker.diashow/main/admin/diashow.png",
    "type": "visualization"
  },

Second line should also refer to main, not master.

Regards, Ralf

Check for adapters only in latest

Currently an issue is created if an adapter is published at lastest repo for "some time" but this release is not updated at stable.

I suggest to enhance this check (or add a second check) so that an issue is created at the adapter repository if an adapter is published only at latest but not at stable and some criteria (time, downloads, etc.) like at the current check for versionupdate match.

Problems reported for adapters consumtion, ecoflow, ...

  • [58/560] Check consumption
    Types in "consumption" are not equal: logic !== energy

  • [88/562] Check ecoflow
    Types in "ecoflow" are not equal: energy !== metering

  • [276/562] Check minuaru
    [E402] Types of adapter in latest repository and in io-package.json are different "storage" !== "misc-data"

I'll check io-package and soreces*.json and fix if possible without discussion.

Consider adding one decimal place to installation badges (1.0k - 9.9k)

This is what I see in the BLE repo: grafik
It seems that the numbers are rounded, so this can be anything from 500 to 1499. Adding one decimal place (1.4 k in this case) would add a lot of information.
Maybe even limit it to numbers below 10k:

  • 1.0 k ... 9.9 k - one decimal place
  • 10 k ... infinity - no decimal place

remove extendObject

I make an example.

not onlyAddNewObjects - setObject

"common": {
"added_field": "value",
"type": "boolean_overwritten",

results in:
"common": {
"type": "boolean",

'This is the intended behavior. Object should be genereated new, removing no longer defined fields. Its a clean install without having to erase objet tree by hand or reinstall the adapter.
Dont care about history adapter settings here, if lost this is toleratable, because user would use onlyAddNewObjects to ensure its preserved.


onlyAddNewObjects - extendObject

"common": {
"added_field": "value",
"type": "boolean_overwritten",

results in:
"common": {
"added_field": "value",
"type": "boolean",

Unintended behavior, I should keep "boolean_overwritten" .
As you said ExtendObject will override all data that are in the structure and so updates the objects.
Is there a way to control this behavoir?
If not I will go back to setObjectNotExists (see commented out in code), with the small disadvantage that it will not add newly defined fields.

Originally posted by @boellner in #1553 (comment)

LGTM.com will be shut down in December 2022

Ist zwar - glaub ich - schon bekannt. Ich erlaube mir aber hier ein Issue dazu zu öffnen damit es nicht untergeht und im Dezember dann Releases klemmen (da ja hier LTGM Tests laufen)

Zitat von der LTGM Webseite:
LGTM.com will be shut down in December 2022 — we recommend that you use GitHub code scanning instead. Read more in our blog post on the GitHub blog.

Nicht funktionierende Adapter wurde nach Stable verschoben

Ich wollte informieren, das ein schon seit Jahren nicht mehr funktionierender Adapter nach Stable verschoben wurde.

@@ -435,7 +435,7 @@
"meta": "https://raw.githubusercontent.com/soef/ioBroker.find-my-iphone/master/io-package.json",
"icon": "https://raw.githubusercontent.com/soef/ioBroker.find-my-iphone/master/admin/find-my-iphone.png",
"type": "geoposition",
"version": "0.2.15"
"version": "0.2.17"

soef hat das letzte mal 2018 diesen Adapter gepflegt.

Außerdem ist dieser Teil der Community Adapter . Aber auch in dieser Repo funktioniert er nicht. (Issues vorhanden)

Ebenfalls wurde diese Adapterversion

"spotify-premium": {
"meta": "https://raw.githubusercontent.com/iobroker-community-adapters/ioBroker.spotify-premium/master/io-package.json",
"icon": "https://raw.githubusercontent.com/iobroker-community-adapters/ioBroker.spotify-premium/master/admin/spotify-premium.png",
"type": "multimedia",
"version": "1.0.0"
"version": "1.1.3"

nach Stable verschoben. Diese Version funktioniert nicht (Issues vorhanden)
Version 1.1.1 funktioniert eingeschränkt.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.