Hey everyone! It’s been a long time since the last update. We are not writing that much, but that doesn’t mean we are sleeping! In fact a huge amount of work has been done since the last release of v2. Let’s present you some new stuff and what work we have done so far.
A lot of work has been done on calaos_server. First many rewrite of some not so good component were done. This was mainly to improve stability and robustness of the server. For example before, a lot of blocking work was done directly inside calaos_server. Now all action that takes time to perform, runs on a separate process. A good example is communication with hardware (like Wago, or 1Wire), that was done in the main process, and thus blocking before calaos_server can continue executing more rules. This was also a problem when some hardware were not responding, calaos_server could have been very slow to respond to events (like pressing on a switch).
Using that same infrastructure allows us to also make all LUA scripts run outside of calaos_server. And now, starting from v3, scripts can run for long time and they would not slow down calaos_server anymore.
New hardware support
Of course, all of this comes also with new hardware support! Calaos now supports all those new hardware devices:
- MySensors nodes, DIY wireless platform (http://mysensors.org)
- Open Lighting Architecture, DMX server that supports USB DMX or LAN interfaces (https://www.openlighting.org/ola/)
- Generic LAN devices (Ping and WakeOnLan objects)
- Direct KNX support (using eibnetmux)
- Milight/Limitless low cost led bulbs
- USB Blinkstick devices
- Philips Hue bulbs
The calaos_server API for communicating with all clients has been improved a lot. Before today, there was a simple HTTP+JSON API plus a not-so-good TCP API. Today the TCP API is dropped and a new Websocket API comes in.
Websocket allows us to keep long time connection through HTTP. The most useful enhancement we directly have is no more polling for checking IO states. Calaos mobile and web-app benefits right away from this feature, and they are way faster than before.
Calaos has been updated to use latest EFL and Websocket.
The web app was actually in a bad shape and because the code base was a mess, we decided to rewrite entirely (well not entirely actually) and use the brand new websocket API. Now the webapp is small, fast and optimized.
Calaos mobile has been improved. It supports now the new websocket API (that saves bandwidth on mobile network), but keeps compatibility with the old v2 calaos_server and its HTTP only API. This will allow us to update the app on the stores soon. All reported bugs are also fixed, and neat features have been added such as Automatic Login when you start the app, or 3D touch Quick Actions on iOS9/iPhone6S (Quick Actions lists the most used scenarios you have for quick start).
Also cameras is finally working. But unfortunately it will only work with the next v3, as there is a nasty bug in v2 that prevents calaos_mobile to get camera pictures…
On calaos-os we have updated a lot of packages for improving security. But most importantly, we made calaos-os working with websocket and SSL connections. This was done by dropping lighttpd and using haproxy instead because right now calaos_server is a real HTTP server and serves all web pages for calaos-webapp. Some required tools are also installed (but disabled by default) like OLA (Open Lightning Architecture) or KNX (eibnetmux daemon).
We also improved running the image in virtual machine like Virtualbox.
Another great tools we are going to write for the next release is a backup/restore script. This will let you easily migrate from V2 to V3 just by doing a backup before the update, and restoring the backup after installation. The tool will take care of putting all your configuration files where they need to be. Updates are going to be fast! 🙂
We implemented something really great in Calaos installer, automatic documentation for IO. That means that the doc is automatically generated and displayed to the user for all IO properties. To explain better here is a screenshot when going under properties dialog of an IO:
All properties that were obscure before, are now correctly explained and you know what value can be set or not. This is going to help a lot of users understand how to configure correctly all options.
The script section also gained new features, and of course the support of all new hardware has been added.
When will the V3 be out?
In the next weeks we are going to to some alpha builds, so you guys can test out all the new functions. So stay tuned for the next update!