Dev Meeting February

Happy TwosDay (22.2.22) dear community, also in the last month a lot happened at ioBroker. After a longer development time the new js-controller 4.0 (release name "Isabelle") is available in the beta/test repository. Besides some optimizations and improvements, the main focus of this release was on performance improvements. Furthermore, there are more news from the developer meeting and beyond, which we have summarized for you here.

JS Controller 4.x

With the new release, support for Node.js 10.x, which has not been maintained since April last year, has been dropped. Additionally, compatibility for Node.js 16.x and NPM 7 or 8 has been added. The supported Node.js versions are thus: 12.x, 14.x and 16.x, although we recommend Node.js version 14.x at this point.

With js-controller 4.0, the database is internally changed from "file" to "jsonl". This happens automatically during the installation without any further actions if file is used. After the migration is done, the next time you open Admin 5, you will also see information about this. But what is so better about the JSONL database instead of file? The file DB regularly stores everything in one big JSON file. This can cause a lot of I/O and is not optimal especially with SD card based systems, but also with a SSD, because it puts a lot of load on the card. Additionally, there is the problem that a crash during writing leads to the fact that the whole file is defective. ioBroker falls back in these cases then with the next start on a backup file. JSONL works differently: Changes are only appended to the file and - only if necessary - the file is "compressed" and rewritten. A broken byte in the DB does not break everything and a crash during the write process only makes sure that the not yet written changes are lost, not everything. JSONL also conserves the SD card by doing fewer and smaller writes.

The new version is also expected to be available in the stable branch by the end of the month. For more information on JS Controller 4, see the forum.

Ack/Confirmed

One topic that keeps coming up is the Ack flag. It starts with the Blockly with the "control" or "update", goes over the colors (red, green, yellow) of the values in the admin and ends with the developers, who have to use this flag correctly. In principle it is quite simple: The Ack or Confirmed flag tells whether a value represents a command or represents the final value confirmed by the device. Let's assume you switch on a lamp via ioBroker. To do this, you set the datapoint value to true. ioBroker sends a command to the lamp, but has not yet received a response. So the ack flag is set to "false". This value is now not confirmed and appears red in the admin. As soon as the action has been executed, the lamp reports its new state to ioBroker. This state is set with ack flag "true" and you can be sure that the value reflects the actual state of the lamp. Admin shows this in green. If a value is shown in Admin in yellow, it is simply the default value of a datapoint or some other substitute value that is neither from a control action nor confirmed by the device.

When setting the value of a datapoint, you always have the option to set the flag or not. Here it is to be noted that an Ack flag set to true does not represent control, and thus the device will not react to it, because one has explicitly updated only the datapoint. Devices can be controlled only with not set flag!

In Blockly or Rules scripts with the "control" block (Ack false) practically the command is sent to the device. With the "update" (Ack true) a datapoint is simply set to a confirmed value. This is done if, for example, the datapoint was created by the user and you know exactly that the value reflects the current state.

Developers should also make sure that they use the flag at the right time. Here you can find more info about this.

Device Management

At the meeting there was a lot of talk about the idea of a new device manager. In the long term, this should take over the setting of the devices for individual adapters, so that one only has a uniform interface to set, integrate and exclude devices. The idea is still in development and the developers are checking the technical feasibility. As soon as more concrete details exist, we will report about it in more detail.

New adapters

Also, this month we can shine with some new additions.

The temperatures and the wind are still icy cold! At home you can now make yourself comfortable and control the thermostats from Netatmo, as well as the saunas from Huum via ioBroker. In the smart home system area, we are happy to say that we now support devices from Gigaset, Blebox and Panasonic Cloud. In the alarm area, Hikvision cameras and in the energy area, E3DC home power plant and Resol VBus devices can now be integrated.

Furthermore, an adapter for Webuntis was released. With this, the timetables as well as class work of connected schools can be tracked.

The Alexa-Timer-Vis adapter makes it easier to use the timers from Alexa2 and with the Signal Messenger Adapter we now have all major messengers on board.

But not only new adapters have been released. Also the new Material App for Android devices was released. With it you can access the visualization of the Material Adapter on the go. Material is designed to automatically create displays without the user having to invest much time in setup.

Translations

ioBroker now supports 10 languages and they are automatically translated in the first step. We all know these automatic translations and we know that they are more than poor. Since we are always keen on perfecting our project, we have meanwhile transferred the texts of 81 of the existing adapters into an ioBroker Weblate (Tool). Here everyone can help to improve the translations. It is also very simple and can be done from your cell phone.

We ask the community to help us with the translation, because every translated or verified word is a step forward for all of us. Special attention should be paid to languages outside of German and English, although these could certainly use some polishing as well. Here you can find more details for translators. The adapter developers among you we would like to ask to integrate your adapters into the weblate, if your adapter offers a lot of text to translate.

Closing words

This time there were a lot of people at the meeting and we think that's great! ioBroker can only exist and go on with and through you. Right at the beginning of the meeting we remembered the times before Corona and our live meetings that took place annually in Kassel. We hope that these times will come back soon and that we will meet again in Kassel (or wherever).

The next meeting will take place on March 16th. Have fun in the ioBroker world. Stay healthy!