Category Archives: VSCP

State of #VSCP

Vacation is over and VSCP development is up on speed again.  The aim now is to bring everything up to a release stable state again. With all the new stuff added and new changes incorporated this is heavy work.  So we work on to that goal. Just that

At the moment are some testing under-way for a changed webserver engine. The Civetweb server has been forked and ported and initial tests are good. The advantage here is a MIT license. We try to aim at MIT (or “mitlike”) everywhere if possible to make the system possible to be easily embedded in both commercial and non commercial projects..

Windows support is gone for the  VSCP server. At least for the near future. It’s not worth the time it takes to keep it up and running. However the helper lib and VSCP works will still have Windows versions.

Debian install packages will be available for everything in the next release. The different parts will be separated so there will be several install packages. One for the server, one for works, one for each driver etc. That is no need for compiling the system any-more on most targets.

Well of to work… Have fun!

The #VSCP server now use Duktape for embedded JavaScript

JavaScript has been possible to use for a long time now in the DM of the VSCP server. The DM, which stands for Decision Matrix is a way to tell what should happen when events (some would call them messages) comes in to the server from external sources (local or remote). The old engine V7 has been replaced with Duktape for best functionality and performance.

The decision matrix is documented here if your want to read more about it. Examples of operations (called actions in VSCP terms) is to compare measurement values, log measurements in a database, send data to a remote server,  and a lot of others.  You can of course execute external scripts of any type  and with the built-in JavaScript engine execute code snippets.

A typical example is in the script above where a CLASS1.CONTROL, Type=5, TurnOn event is sent to  Zone=11, Subzone=3 every second.

As scripts can be stored in variables it is possible to remotely and dynamically change the content of the script and therefore also the outcome of the action.

Variable substitution is another dynamic feature where escape variable are filled with dynamic values before the script is executed by the JavaScript engine.  The current list of escapes id available here.

Some custom VSCP functions is available and this list will of course be increased with socket communication and other. It i also possible to load external functionality from disc.

State of #VSCP “things”

Time for a status report again.

My hope was to have a LTS release ready before the summer but I never reached that point.  But things are what they are. There are mainly two reasons for the delay. First I don’t want to rush some big changes in the core structure that force me to do incompatible updates later with code needed for update paths. This mostly relate to the database. Next I want to move as much of the code as possible to MIT licensed which means I have to remove and rewrite some stuff.   Hopefully something will be available soon after the summer.

The multicast channel support is now fully implemented.  This means one can set up groups on the VSCP multichannel group that act as subnets using a specific port.  AES128/AES192/AES256 encryption is available. The multicast announce is also fully in place now. Python and c/c++ samples available.

A  new UDP interface has been implemented. Also here are AES128/AES192 and AES256 encryption available. Python and c/c++ samples available.

Support classes for encryption and frame packaging has been added to the vscphelper lib to make it easier to handle this new functionality.

pyvscp is a pip installable Python module that add VSCP functionality to Python. The main interfaces is in place but more will come and also more documentation. It’s very easy to interface the VSCP server and VSCP with this module. I personally love it.

The libvscphelper library is now packaged as a deb as the first component that will be available on this form. It is needed to be installed to use most of the functionality of pyvscp.  VSCP Works and the vscp server till also be packed in their own deb’s for easy installation.

node.js bindings installable with npm is next and I know there is c# bindings brewing also. Probably have to dig into Java soon also if someone does not volunteer for that job.

A lot of other this to have hap-end of course.

Now I will go on a four-week leave. I am not used to that long vacations and right now I don’t actually know how to survive such a long time without coding. But I have promised my wife to try to to be honest I probably need it. I will check mail occasionally though but wil probably not answer mails on a daily basis.

So all friends out there. Have fun!