Release 0.4.0

New features

Python compatibility

Domogik is no more compliant with Python 2.6. You need at least Python 2.7 to run Domogik.

New database model

A new database model has been implemented. With this new model we removed the usages but add support for multiple address fields (like address and channel). We also added support for devices that use a different address for receiving commands and for sending there status (like KNX). With this implementation we increased the plugin json_version to 2, meaning that the old plugins will not work in this release.

This new model is really more efficient that the previous one and will allow us to now handle more technologies in a better way.

xPL is no more mandatory for core components

Excepting dedicated xPL components, all core components (manager, rest, admin, ...) do not depend anymore of a working xPL hub to be able to start and work.

But keep in mind that for now, all plugins are using xPL so a hub is still needed to use the plugins.

Domogik Datatypes

All data coming from and going to the domogik database is now in an uniform format, the domogik datatypes. For example here are the available datatypes for boolean based data:

  • DT_Bool
  • DT_Switch
  • DT_Enable
  • DT_Binary
  • DT_Step
  • DT_UpDown
  • DT_OpenClose
  • DT_Start
  • DT_State

New Manager

The manager core component has been fully rewritten. The code is more clear and more flexible.

New Rest

The REST core component has been removed and rewritten. Now it allows only to read data in database and send commands (before it also stored the data sent by the plugins in database and some other things). It is now based on flask for url routing and is RESTFULLY : it uses HTTP methods (GET, POST, PUT, DELETE) and HTTP status codes.

Zero MQ (message queue)

The 0MQ message queue system is now used in Domogik. All the internal communications are now done with 0MQ instead of using xPL. xPL is now only used to handle automation data over the network.

New XplGW core component

The new xPLGW core component is the only gateway to the xpl network, this is the component that translates the mq messages to xPL commands and the received xPL message to message queue published events.

New format for the plugins

The plugin format has been changed. The main changes are:

  • the plugins are no more present in Domogik : each plugin has now its own github (it could be something else) repository.
  • all the files for a plugin are now stored in one directory : you don’t need to search for the plugin files everywhere.
  • there are no more xml files.
  • the json file format has been reviewed and has new parts.
  • the plugin management has been improved a lot for more quality.
  • a test framework has been designed to allow automatic testing on the plugins.
  • a documentation has been written to help you to create your own plugins. Please check the technical documentation for more informations.
  • ...

New administration interface

The administration interface is no more included in Domoweb. It is now included in Domogik and available on http://ip:40406/. This interface is based on Flask and Bootstrap and is light and responsive! Some useful options have been added in the new administration interface.

Tests

A test framework has been created. It allows to create devices, test xPL features, mock some hardware (serial based devices for example).

A continuous integration service is now used : Travis CI. This one is used to validate each Domogik commit but also each plugin commit. There are still some tests to add on Domogik of course, but this is a big step for the quality of the project!

New installations script

The installation script has been totally rewritten. You can now use it with options, skip some steps, ... This will be useful for distribution packagers and also for developers (to quickly set up new environments).

Files moved

A lot of files have been moved in the source tree.