Categories
VSCP

vscpl2drv-tcpipsrv version 15.0.0

VSCP level II driver that implements the VSCP tcp/ip link protocol server in the same way as the server that was part of VSCP daemon in releases pre 15.0.0.

Binaries can be downloaded from https://github.com/grodansparadis/vscpl2drv-tcpipsrv/releases/tag/v15.0.0

Docs are here https://docs.vscp.org/#level2drv

Repository is here https://github.com/grodansparadis/vscpl2drv-tcpipsrv

Categories
VSCP

vscpl2drv-tcpiplink version 15.0.0

VSCP level II driver that implements the VSCP client side tcp/ip link protocol.

Binaries can be downloaded from https://github.com/grodansparadis/vscpl2drv-tcpiplink/releases/tag/v15.0.0

Docs are here https://docs.vscp.org/#level2drv

Repository is here https://github.com/grodansparadis/vscpl2drv-tcpiplink

Categories
VSCP

Auto generated #VSCP files

Auto generated VSCP files has been added to the VSCP docs collection page.

Categories
VSCP

Phosphorus 15.0.0

The VSCP Daemon Phosphorus 15.0.0

It is my pleasure to announce that it is now time for release 15.0.0 Phosphorus of the VSCP & Friends package. From version 15 each component will be shipped separately and first out is the VSCP daemon, the server for the VSCP IoT system.

The code for the full VSCP software framework has been fully rewritten and is now C++ standard based. There is no dependencies on external frameworks at all anymore. License is MIT.

The goals for the software part of the project has changed.

First: node-red and similar high level tools will be used for user interface and scheduling tasks.

Secondly: MQTT is now a central part of VSCP and the VSCP daemon is dependent on it to work. VSCP is a good fit for MQTT.

Third: much of the functionality that previously was built into the VSCP daemon is now available as drivers. This is true for the tcp/ip interface, the web server, the two websocket servers and the rest interface and some other functionality like remote variables that will follow.

This release in fact make the VSCP daemon a low level interface to a MQTT based system. A low end driver can be hooked on to the VSCP daemon and the nodes handled by it (if any), or driver embedded functionality, can connect through the VSCP daemon and interface to a MQTT based system.

VSCP stands for the Very Simple Control Protocol, but is nowadays, with it’s existence for more than two decades, more of an IoT/m2m framework. The most important part is still to make sure that a measurement, command etc, is interpreted at the source the same way as it was expected to be by the originator.

The VSCP daemon can be downloaded here. Packages for Debian based systems (also Raspberry Pi) is available. Windows install files will be available later.

If you want to know more about the VSCP framework the project home page is a good start. Most docs are here and especially for the VSCP daemon here. If you want to discuss VSCP this is the place to do so. If you find bugs or problems issue a ticket here

Of course I need to thank my sponsors at this stage. Your support has been a great help.

Enjoy!
/Ake Hedman

Categories
VSCP

New release of the VSCP helper library

New release of the VSCP Helper library 15.0.0

The helper library is a C library for the VSCP IoT/m2m framework. See the repository main page for installation information and links to full documentation.

This is a full rewrite and update of the VSCP helper library to be compliant with the new 15.0.0 release.

Binaries for Debian/Ubuntu and Raspberry Pi is available. Windows binaries will follow. Also the Python, node-red, none.js bindings will be updated soon.

https://github.com/grodansparadis/vscp-helper-lib

Categories
VSCP

1-Wire temps. to VSCP daemon

This is an oldie that now got it’s own repository. It is a python script that send temperatures from any number of digitemp sensors to a remote VSCP daemons tcp/ip link interface. It works with both python 2 and python3

Info and repository is here https://github.com/grodansparadis/vscp-python-digitemp

Categories
the VSCP Daemon VSCP

VSCP driver MQTT topics

For the new VSCP daemon drivers uses mustach escaped topics. It is possible to use this in many ways. For a driver publish config as this one

where the last to topic defines is of interest here.

The first of the two publish events on JSON format. Driver guid/event class/event type/and node nickname is dynamically put into the topic when an event is received by the driver (vscp/…).

This looks like this for events from the VSCP socketcan driver

If we instead want the symbolic names for the vscp-class and vscp-type the second configuration line can be used. This will be published as the last topic in the picture above (vscp2/…).

Of course it is possible to use many other escapes and even set up your own.

Also look at the vscp-daemon topic. At this location VSCP server information is displayed. This is information like available interfaces, discovered nodes etc. You can see that drivers are actually running and alive here.

Just a teaser…

Categories
the VSCP Daemon VSCP

VERY SIMPLE Control Protocol

Sitting here and documenting the VSCP daemon configuration file i must smile for myself. Even the simplest tools need a quite complex configuration file.

VERY SIMPLE? Sure.

Don’t be afraid. There are many options. Most people just need a few of them.

{
    "runasuser" : "vscp",
    "debug" : 0,		
    "guid" : "FF:FF:FF:FF:FF:FF:FF:F5:00:00:00:00:00:00:00:01",
    "servername" : "The VSCP daemon",
    "classtypedb" : "/var/lib/vscp/vscpd/vscp_events.sqlite3",
    "maindb" : "/var/lib/vscp/vscpd/vscp.sqlite3",
    "discoverydb" : "/var/lib/vscp/vscpd/vscp.sqlite3",
    "vscpkey" : "/etc/vscp/vscp.key",
    "logging" : {
        "file-enable-log": true,
        "file-log-level" : "info",
        "file-pattern" : "[vscp] [%^%l%$] %v",
        "file-path" : "/var/log/vscp/vscpd.log",
        "file-max-size" : 5242880,
        "file-max-files" : 7,
        "console-enable-log": false,
        "console-log-level" : "info",
        "console-pattern" : "[vscp] [%^%l%$] %v"
    },

    "mqtt" : {
        "bind" : "",   
        "host" : "192.168.1.7",
        "port" : 1883,
        "mqtt-options" : {
            "tcp-nodelay" : true,
            "protocol-version": 311,
            "receive-maximum": 20,
            "send-maximum": 20,
            "ssl-ctx-with-defaults": 0,
            "tls-ocsp-required": 0,
            "tls-use-os-certs" : 0
        },
        "user" : "vscp",
        "password": "secret",
        "clientid" : "the-vscp-daemon",  
        "publish-format" : "json",
        "subscribe-format" : "auto",
        "qos" : 1,
        "bcleansession" : false,
        "bretain" : false,      
        "keepalive" : 60,
        "reconnect" : {
          "delay" : 2,
          "delay-max" : 10,
          "exponential-backoff" : false
        },
        "tls" : {
            "cafile" : "",
            "capath" : "",
            "certfile" : "",
            "keyfile" : "",
            "pwkeyfile" : "",
            "no-hostname-checking" : true,
            "cert-reqs" : 0,
            "version": "",
            "ciphers": "",
            "psk": "",
            "psk-identity" : ""
        },
        "will": {
            "topic": "Last Will",
            "qos": 0,
            "retain": false,
            "payload": "This is the end"
        },
        "subscribe": [
            {
                "topic": "test1/topic/A",
                "qos": 0,
                "v5-options": 0,
                "format": "auto"
            },
            {
                "topic": "test2/topic/B",
                "qos": 0,
                "v5-options": 0,
                "format": "auto"
            },
            {
                "topic": "test/#",
                "qos": 0,
                "v5-options": 0,
                "format": "auto"
            },
            {
                "topic": "test2/#",
                "qos": 0,
                "v5-options": 0,
                "format": "auto"
            }
        ],
        "bescape-pub-topics": true,
        "user-escapes": {
            "escape1": "valu1",
            "escape2": "valu2"
        },
        "publish": [
            {
                "topic" : "publish/topic/json",
                "qos" : 0,
                "retain" : false,
                "format": "json"
            },
            {
                "topic" : "publish/topic/xml",
                "qos" : 0,
                "retain" : false,
                "format": "xml"
            },
            {
                "topic" : "publish/topic/string",
                "qos" : 0,
                "retain" : false,
                "format": "string"
            },
            {
                "topic" : "publish/topic/binary",
                "qos" : 0,
                "retain" : false,
                "format": "binary"
            },
            {
                "topic" : "publish/topic/{{datetime}}/{{user}}/C",
                "qos" : 0,
                "retain" : false,
                "format": "json"
            }    
        ],      
        "v5" : {
            "user-properties": {
                "prop1" : "value",
                "prop2" : "value"    
            } 
        }
    },

    "drivers" : {
        "level1" : [
            {
                "enable" : false,
                "name" : "logger",
                "config" : "/tmp/canallog.txt",
                "flags" : 1,
                "translation" : 2,
                "path" : "/var/lib/vscp/drivers/level1/vscpl1drv-logger.so",
                "guid" : "FF:FF:FF:FF:FF:FF:FF:F5:01:00:00:00:00:00:00:01",

                "mqtt" : {
                    "bind" : "",   
                    "host" : "192.168.1.7",
                    "port" : 1883,
                    "mqtt-options" : {
                        "tcp-nodelay" : true,
                        "protocol-version": 311,
                        "receive-maximum": 20,
                        "send-maximum": 20,
                        "ssl-ctx-with-defaults": 0,
                        "tls-ocsp-required": 0,
                        "tls-use-os-certs" : 0
                    },
                    "user" : "vscp",
                    "password": "secret",
                    "clientid" : "vscp-level1-logger-driver",  
                    "publish-format" : "json",
                    "subscribe-format" : "auto",
                    "qos" : 1,
                    "bcleansession" : false,
                    "bretain" : false,      
                    "keepalive" : 60,
                    "reconnect" : {
                      "delay" : 2,
                      "delay-max" : 10,
                      "exponential-backoff" : false
                    },
                    "tls" : {
                        "cafile" : "",
                        "capath" : "",
                        "certfile" : "",
                        "keyfile" : "",
                        "pwkeyfile" : "",
                        "no-hostname-checking" : true,
                        "cert-reqs" : 0,
                        "version": "",
                        "ciphers": "",
                        "psk": "",
                        "psk-identity" : ""
                    },
                    "will": {
                        "topic": "Last Will",
                        "qos": 0,
                        "retain": false,
                        "payload": "This is the end"
                    },
                    "subscribe": [
                        {
                            "topic": "test1/topic/A",
                            "qos": 0,
                            "v5-options": 0,
                            "format": "auto"
                        },
                        {
                            "topic": "test2/topic/B",
                            "qos": 0,
                            "v5-options": 0,
                            "format": "auto"
                        },
                        {
                            "topic": "test/#",
                            "qos": 0,
                            "v5-options": 0,
                            "format": "auto"
                        },
                        {
                            "topic": "test2/#",
                            "qos": 0,
                            "v5-options": 0,
                            "format": "auto"
                        }
                    ],
                    "bescape-pub-topics": true,
                    "user-escapes": {
                        "escape1": "valu1",
                        "escape2": "valu2"
                    },
                    "publish": [
                        {
                            "topic" : "publish/topic/json",
                            "qos" : 0,
                            "retain" : false,
                            "format": "json"
                        },
                        {
                            "topic" : "publish/topic/xml",
                            "qos" : 0,
                            "retain" : false,
                            "format": "xml"
                        },
                        {
                            "topic" : "publish/topic/string",
                            "qos" : 0,
                            "retain" : false,
                            "format": "string"
                        },
                        {
                            "topic" : "publish/topic/binary",
                            "qos" : 0,
                            "retain" : false,
                            "format": "binary"
                        },
                        {
                            "topic" : "publish/topic/{{datetime}}/{{user}}/C",
                            "qos" : 0,
                            "retain" : false,
                            "format": "json"
                        }    
                    ],      
                    "v5" : {
                        "user-properties": {
                            "prop1" : "value",
                            "prop2" : "value"    
                        } 
                    }
                },
            },
            {
                "enable" : false,
                "name" : "can4vscp",
                "config" : "/dev/ttyUSB0",
                "flags" : 0,
                "translation" : 2,
                "path" : "/var/lib/vscp/drivers/level1/vscpl1drv-can4vscp.so",
                "guid" : "FF:FF:FF:FF:FF:FF:FF:F5:01:00:00:00:00:00:00:02",

                "mqtt" : {
                    "bind" : "",   
                    "host" : "192.168.1.7",
                    "port" : 1883,
                    "mqtt-options" : {
                        "tcp-nodelay" : true,
                        "protocol-version": 311,
                        "receive-maximum": 20,
                        "send-maximum": 20,
                        "ssl-ctx-with-defaults": 0,
                        "tls-ocsp-required": 0,
                        "tls-use-os-certs" : 0
                    },
                    "user" : "vscp",
                    "password": "secret",
                    "clientid" : "vscp-level1-can4vscp-driver",  
                    "publish-format" : "json",
                    "subscribe-format" : "auto",
                    "qos" : 1,
                    "bcleansession" : false,
                    "bretain" : false,      
                    "keepalive" : 60,
                    "reconnect" : {
                      "delay" : 2,
                      "delay-max" : 10,
                      "exponential-backoff" : false
                    },
                    "tls" : {
                        "cafile" : "",
                        "capath" : "",
                        "certfile" : "",
                        "keyfile" : "",
                        "pwkeyfile" : "",
                        "no-hostname-checking" : true,
                        "cert-reqs" : 0,
                        "version": "",
                        "ciphers": "",
                        "psk": "",
                        "psk-identity" : ""
                    },
                    "will": {
                        "topic": "Last Will",
                        "qos": 0,
                        "retain": false,
                        "payload": "This is the end"
                    },
                    "subscribe": [
                        {
                            "topic": "test1/topic/A",
                            "qos": 0,
                            "v5-options": 0,
                            "format": "auto"
                        },
                        {
                            "topic": "test2/topic/B",
                            "qos": 0,
                            "v5-options": 0,
                            "format": "auto"
                        },
                        {
                            "topic": "test/#",
                            "qos": 0,
                            "v5-options": 0,
                            "format": "auto"
                        },
                        {
                            "topic": "test2/#",
                            "qos": 0,
                            "v5-options": 0,
                            "format": "auto"
                        }
                    ],
                    "bescape-pub-topics": true,
                    "user-escapes": {
                        "escape1": "valu1",
                        "escape2": "valu2"
                    },
                    "publish": [
                        {
                            "topic" : "publish/topic/json",
                            "qos" : 0,
                            "retain" : false,
                            "format": "json"
                        },
                        {
                            "topic" : "publish/topic/xml",
                            "qos" : 0,
                            "retain" : false,
                            "format": "xml"
                        },
                        {
                            "topic" : "publish/topic/string",
                            "qos" : 0,
                            "retain" : false,
                            "format": "string"
                        },
                        {
                            "topic" : "publish/topic/binary",
                            "qos" : 0,
                            "retain" : false,
                            "format": "binary"
                        },
                        {
                            "topic" : "publish/topic/{{datetime}}/{{user}}/C",
                            "qos" : 0,
                            "retain" : false,
                            "format": "json"
                        }    
                    ],      
                    "v5" : {
                        "user-properties": {
                            "prop1" : "value",
                            "prop2" : "value"    
                        } 
                    }
                },
            },
            {
                "enable" : true,
                "name" : "socketcanl1",
                "config" : "can0",
                "flags" : 0,
                "translation" : 2,
                "path" : "/var/lib/vscp/drivers/level1/vscpl1drv-socketcan.so.1.1.1",
                "guid" : "FF:FF:FF:FF:FF:FF:FF:F5:01:00:00:00:00:00:00:03",

                "mqtt" : {
                    "bind" : "",   
                    "host" : "192.168.1.7",
                    "port" : 1883,
                    "mqtt-options" : {
                        "tcp-nodelay" : true,
                        "protocol-version": 311,
                        "receive-maximum": 20,
                        "send-maximum": 20,
                        "ssl-ctx-with-defaults": 0,
                        "tls-ocsp-required": 0,
                        "tls-use-os-certs" : 0
                    },
                    "user" : "vscp",
                    "password": "secret",
                    "clientid" : "vscp-level1-socketcan-driver",  
                    "publish-format" : "json",
                    "subscribe-format" : "auto",
                    "qos" : 1,
                    "bcleansession" : false,
                    "bretain" : false,      
                    "keepalive" : 60,
                    "reconnect" : {
                      "delay" : 2,
                      "delay-max" : 10,
                      "exponential-backoff" : false
                    },
                    "tls" : {
                        "cafile" : "",
                        "capath" : "",
                        "certfile" : "",
                        "keyfile" : "",
                        "pwkeyfile" : "",
                        "no-hostname-checking" : true,
                        "cert-reqs" : 0,
                        "version": "",
                        "ciphers": "",
                        "psk": "",
                        "psk-identity" : ""
                    },
                    "will": {
                        "topic": "Last Will",
                        "qos": 0,
                        "retain": false,
                        "payload": "This is the end"
                    },
                    "subscribe": [
                        {
                            "topic": "test1/topic/A",
                            "qos": 0,
                            "v5-options": 0,
                            "format": "auto"
                        },
                        {
                            "topic": "test2/topic/B",
                            "qos": 0,
                            "v5-options": 0,
                            "format": "auto"
                        },
                        {
                            "topic": "test/#",
                            "qos": 0,
                            "v5-options": 0,
                            "format": "auto"
                        },
                        {
                            "topic": "test2/#",
                            "qos": 0,
                            "v5-options": 0,
                            "format": "auto"
                        }
                    ],
                    "bescape-pub-topics": true,
                    "user-escapes": {
                        "escape1": "valu1",
                        "escape2": "valu2"
                    },
                    "publish": [
                        {
                            "topic" : "publish/topic/json",
                            "qos" : 0,
                            "retain" : false,
                            "format": "json"
                        },
                        {
                            "topic" : "publish/topic/xml",
                            "qos" : 0,
                            "retain" : false,
                            "format": "xml"
                        },
                        {
                            "topic" : "publish/topic/string",
                            "qos" : 0,
                            "retain" : false,
                            "format": "string"
                        },
                        {
                            "topic" : "publish/topic/binary",
                            "qos" : 0,
                            "retain" : false,
                            "format": "binary"
                        },
                        {
                            "topic" : "publish/topic/{{datetime}}/{{user}}/C",
                            "qos" : 0,
                            "retain" : false,
                            "format": "json"
                        }    
                    ],      
                    "v5" : {
                        "user-properties": {
                            "prop1" : "value",
                            "prop2" : "value"    
                        } 
                    }
                },
            },
            {
                "enable" : false,
                "name" : "can232",
                "config" : "/dev/ttyS0;19200;0;0;125",
                "flags" : 0,
                "translation" : 2,
                "path" : "/var/lib/vscp/drivers/level1/vscpl1drv-can232.so",
                "guid" : "FF:FF:FF:FF:FF:FF:FF:F5:01:00:00:00:00:00:00:04",

                "mqtt" : {
                    "bind" : "",   
                    "host" : "192.168.1.7",
                    "port" : 1883,
                    "mqtt-options" : {
                        "tcp-nodelay" : true,
                        "protocol-version": 311,
                        "receive-maximum": 20,
                        "send-maximum": 20,
                        "ssl-ctx-with-defaults": 0,
                        "tls-ocsp-required": 0,
                        "tls-use-os-certs" : 0
                    },
                    "user" : "vscp",
                    "password": "secret",
                    "clientid" : "vscp-level1-can232-driver",  
                    "publish-format" : "json",
                    "subscribe-format" : "auto",
                    "qos" : 1,
                    "bcleansession" : false,
                    "bretain" : false,      
                    "keepalive" : 60,
                    "reconnect" : {
                      "delay" : 2,
                      "delay-max" : 10,
                      "exponential-backoff" : false
                    },
                    "tls" : {
                        "cafile" : "",
                        "capath" : "",
                        "certfile" : "",
                        "keyfile" : "",
                        "pwkeyfile" : "",
                        "no-hostname-checking" : true,
                        "cert-reqs" : 0,
                        "version": "",
                        "ciphers": "",
                        "psk": "",
                        "psk-identity" : ""
                    },
                    "will": {
                        "topic": "Last Will",
                        "qos": 0,
                        "retain": false,
                        "payload": "This is the end"
                    },
                    "subscribe": [
                        {
                            "topic": "test1/topic/A",
                            "qos": 0,
                            "v5-options": 0,
                            "format": "auto"
                        },
                        {
                            "topic": "test2/topic/B",
                            "qos": 0,
                            "v5-options": 0,
                            "format": "auto"
                        },
                        {
                            "topic": "test/#",
                            "qos": 0,
                            "v5-options": 0,
                            "format": "auto"
                        },
                        {
                            "topic": "test2/#",
                            "qos": 0,
                            "v5-options": 0,
                            "format": "auto"
                        }
                    ],
                    "bescape-pub-topics": true,
                    "user-escapes": {
                        "escape1": "valu1",
                        "escape2": "valu2"
                    },
                    "publish": [
                        {
                            "topic" : "publish/topic/json",
                            "qos" : 0,
                            "retain" : false,
                            "format": "json"
                        },
                        {
                            "topic" : "publish/topic/xml",
                            "qos" : 0,
                            "retain" : false,
                            "format": "xml"
                        },
                        {
                            "topic" : "publish/topic/string",
                            "qos" : 0,
                            "retain" : false,
                            "format": "string"
                        },
                        {
                            "topic" : "publish/topic/binary",
                            "qos" : 0,
                            "retain" : false,
                            "format": "binary"
                        },
                        {
                            "topic" : "publish/topic/{{datetime}}/{{user}}/C",
                            "qos" : 0,
                            "retain" : false,
                            "format": "json"
                        }    
                    ],      
                    "v5" : {
                        "user-properties": {
                            "prop1" : "value",
                            "prop2" : "value"    
                        } 
                    }
                },
            }
        ],
        "level2" : [
            {
                "enable" : false,
                "name" : "Logger",
                "path-driver" : "/var/lib/vscp/drivers/level2/vscpl2drv-logger.so",
                "path-config" : "/var/lib/vscp/vscpd/logger2.conf",
                "guid" : "FF:FF:FF:FF:FF:FF:FF:F5:02:00:00:00:00:00:00:01",

                "mqtt" : {
                    "bind" : "",   
                    "host" : "192.168.1.7",
                    "port" : 1883,
                    "mqtt-options" : {
                        "tcp-nodelay" : true,
                        "protocol-version": 311,
                        "receive-maximum": 20,
                        "send-maximum": 20,
                        "ssl-ctx-with-defaults": 0,
                        "tls-ocsp-required": 0,
                        "tls-use-os-certs" : 0
                    },
                    "user" : "vscp",
                    "password": "secret",
                    "clientid" : "vscp-level2-logger-driver",  
                    "publish-format" : "json",
                    "subscribe-format" : "auto",
                    "qos" : 1,
                    "bcleansession" : false,
                    "bretain" : false,      
                    "keepalive" : 60,
                    "reconnect" : {
                      "delay" : 2,
                      "delay-max" : 10,
                      "exponential-backoff" : false
                    },
                    "tls" : {
                        "cafile" : "",
                        "capath" : "",
                        "certfile" : "",
                        "keyfile" : "",
                        "pwkeyfile" : "",
                        "no-hostname-checking" : true,
                        "cert-reqs" : 0,
                        "version": "",
                        "ciphers": "",
                        "psk": "",
                        "psk-identity" : ""
                    },
                    "will": {
                        "topic": "Last Will",
                        "qos": 0,
                        "retain": false,
                        "payload": "This is the end"
                    },
                    "subscribe": [
                        {
                            "topic": "test1/topic/A",
                            "qos": 0,
                            "v5-options": 0,
                            "format": "auto"
                        },
                        {
                            "topic": "test2/topic/B",
                            "qos": 0,
                            "v5-options": 0,
                            "format": "auto"
                        },
                        {
                            "topic": "test/#",
                            "qos": 0,
                            "v5-options": 0,
                            "format": "auto"
                        },
                        {
                            "topic": "test2/#",
                            "qos": 0,
                            "v5-options": 0,
                            "format": "auto"
                        }
                    ],
                    "bescape-pub-topics": true,
                    "user-escapes": {
                        "escape1": "valu1",
                        "escape2": "valu2"
                    },
                    "publish": [
                        {
                            "topic" : "publish/topic/json",
                            "qos" : 0,
                            "retain" : false,
                            "format": "json"
                        },
                        {
                            "topic" : "publish/topic/xml",
                            "qos" : 0,
                            "retain" : false,
                            "format": "xml"
                        },
                        {
                            "topic" : "publish/topic/string",
                            "qos" : 0,
                            "retain" : false,
                            "format": "string"
                        },
                        {
                            "topic" : "publish/topic/binary",
                            "qos" : 0,
                            "retain" : false,
                            "format": "binary"
                        },
                        {
                            "topic" : "publish/topic/{{datetime}}/{{user}}/C",
                            "qos" : 0,
                            "retain" : false,
                            "format": "json"
                        }    
                    ],      
                    "v5" : {
                        "user-properties": {
                            "prop1" : "value",
                            "prop2" : "value"    
                        } 
                    }
                },
            },
            {
                "enable" : false,
                "name" : "lmsensors",
                "path-driver" : "/var/lib/vscp/drivers/level2/vscpl2drv-lmsensors.so",
                "path-config" : "/var/lib/vscp/vscpd/lmsensors.conf",
                "guid" : "FF:FF:FF:FF:FF:FF:FF:F5:06:00:00:00:00:00:00:00",

                "mqtt" : {
                    "bind" : "",   
                    "host" : "192.168.1.7",
                    "port" : 1883,
                    "mqtt-options" : {
                        "tcp-nodelay" : true,
                        "protocol-version": 311,
                        "receive-maximum": 20,
                        "send-maximum": 20,
                        "ssl-ctx-with-defaults": 0,
                        "tls-ocsp-required": 0,
                        "tls-use-os-certs" : 0
                    },
                    "user" : "vscp",
                    "password": "secret",
                    "clientid" : "vscp-level2-lmsensors-driver",  
                    "publish-format" : "json",
                    "subscribe-format" : "auto",
                    "qos" : 1,
                    "bcleansession" : false,
                    "bretain" : false,      
                    "keepalive" : 60,
                    "reconnect" : {
                      "delay" : 2,
                      "delay-max" : 10,
                      "exponential-backoff" : false
                    },
                    "tls" : {
                        "cafile" : "",
                        "capath" : "",
                        "certfile" : "",
                        "keyfile" : "",
                        "pwkeyfile" : "",
                        "no-hostname-checking" : true,
                        "cert-reqs" : 0,
                        "version": "",
                        "ciphers": "",
                        "psk": "",
                        "psk-identity" : ""
                    },
                    "will": {
                        "topic": "Last Will",
                        "qos": 0,
                        "retain": false,
                        "payload": "This is the end"
                    },
                    "subscribe": [
                        {
                            "topic": "test1/topic/A",
                            "qos": 0,
                            "v5-options": 0,
                            "format": "auto"
                        },
                        {
                            "topic": "test2/topic/B",
                            "qos": 0,
                            "v5-options": 0,
                            "format": "auto"
                        },
                        {
                            "topic": "test/#",
                            "qos": 0,
                            "v5-options": 0,
                            "format": "auto"
                        },
                        {
                            "topic": "test2/#",
                            "qos": 0,
                            "v5-options": 0,
                            "format": "auto"
                        }
                    ],
                    "bescape-pub-topics": true,
                    "user-escapes": {
                        "escape1": "valu1",
                        "escape2": "valu2"
                    },
                    "publish": [
                        {
                            "topic" : "publish/topic/json",
                            "qos" : 0,
                            "retain" : false,
                            "format": "json"
                        },
                        {
                            "topic" : "publish/topic/xml",
                            "qos" : 0,
                            "retain" : false,
                            "format": "xml"
                        },
                        {
                            "topic" : "publish/topic/string",
                            "qos" : 0,
                            "retain" : false,
                            "format": "string"
                        },
                        {
                            "topic" : "publish/topic/binary",
                            "qos" : 0,
                            "retain" : false,
                            "format": "binary"
                        },
                        {
                            "topic" : "publish/topic/{{datetime}}/{{user}}/C",
                            "qos" : 0,
                            "retain" : false,
                            "format": "json"
                        }    
                    ],      
                    "v5" : {
                        "user-properties": {
                            "prop1" : "value",
                            "prop2" : "value"    
                        } 
                    }
                },
            },
            {
                "enable" : false,
                "name" : "socketcan",
                "path-driver" : "/var/lib/vscp/drivers/level2/vscpl2drv-socketcan.so",
                "path-config" : "/var/lib/vscp/vscpd/socketcan.conf",
                "guid" : "FF:FF:FF:FF:FF:FF:FF:F5:07:00:00:00:00:00:00:00",

                "mqtt" : {
                    "bind" : "",   
                    "host" : "192.168.1.7",
                    "port" : 1883,
                    "mqtt-options" : {
                        "tcp-nodelay" : true,
                        "protocol-version": 311,
                        "receive-maximum": 20,
                        "send-maximum": 20,
                        "ssl-ctx-with-defaults": 0,
                        "tls-ocsp-required": 0,
                        "tls-use-os-certs" : 0
                    },
                    "user" : "vscp",
                    "password": "secret",
                    "clientid" : "vscp-level2-socketcan-driver",  
                    "publish-format" : "json",
                    "subscribe-format" : "auto",
                    "qos" : 1,
                    "bcleansession" : false,
                    "bretain" : false,      
                    "keepalive" : 60,
                    "reconnect" : {
                      "delay" : 2,
                      "delay-max" : 10,
                      "exponential-backoff" : false
                    },
                    "tls" : {
                        "cafile" : "",
                        "capath" : "",
                        "certfile" : "",
                        "keyfile" : "",
                        "pwkeyfile" : "",
                        "no-hostname-checking" : true,
                        "cert-reqs" : 0,
                        "version": "",
                        "ciphers": "",
                        "psk": "",
                        "psk-identity" : ""
                    },
                    "will": {
                        "topic": "Last Will",
                        "qos": 0,
                        "retain": false,
                        "payload": "This is the end"
                    },
                    "subscribe": [
                        {
                            "topic": "test1/topic/A",
                            "qos": 0,
                            "v5-options": 0,
                            "format": "auto"
                        },
                        {
                            "topic": "test2/topic/B",
                            "qos": 0,
                            "v5-options": 0,
                            "format": "auto"
                        },
                        {
                            "topic": "test/#",
                            "qos": 0,
                            "v5-options": 0,
                            "format": "auto"
                        },
                        {
                            "topic": "test2/#",
                            "qos": 0,
                            "v5-options": 0,
                            "format": "auto"
                        }
                    ],
                    "bescape-pub-topics": true,
                    "user-escapes": {
                        "escape1": "valu1",
                        "escape2": "valu2"
                    },
                    "publish": [
                        {
                            "topic" : "publish/topic/json",
                            "qos" : 0,
                            "retain" : false,
                            "format": "json"
                        },
                        {
                            "topic" : "publish/topic/xml",
                            "qos" : 0,
                            "retain" : false,
                            "format": "xml"
                        },
                        {
                            "topic" : "publish/topic/string",
                            "qos" : 0,
                            "retain" : false,
                            "format": "string"
                        },
                        {
                            "topic" : "publish/topic/binary",
                            "qos" : 0,
                            "retain" : false,
                            "format": "binary"
                        },
                        {
                            "topic" : "publish/topic/{{datetime}}/{{user}}/C",
                            "qos" : 0,
                            "retain" : false,
                            "format": "json"
                        }    
                    ],      
                    "v5" : {
                        "user-properties": {
                            "prop1" : "value",
                            "prop2" : "value"    
                        } 
                    }
                },
            },
            {
                "enable" : false,
                "name" : "mqtt",
                "path-driver" : "/var/lib/vscp/drivers/level2/vscpl2drv-mqtt.so",
                "path-config" : "/var/lib/vscp/vscpd/mqtt.conf",
                "guid" : "FF:FF:FF:FF:FF:FF:FF:F5:08:00:00:00:00:00:00:00",

                "mqtt" : {
                    "bind" : "",   
                    "host" : "192.168.1.7",
                    "port" : 1883,
                    "mqtt-options" : {
                        "tcp-nodelay" : true,
                        "protocol-version": 311,
                        "receive-maximum": 20,
                        "send-maximum": 20,
                        "ssl-ctx-with-defaults": 0,
                        "tls-ocsp-required": 0,
                        "tls-use-os-certs" : 0
                    },
                    "user" : "vscp",
                    "password": "secret",
                    "clientid" : "vscp-level2-mqtt-driver",  
                    "publish-format" : "json",
                    "subscribe-format" : "auto",
                    "qos" : 1,
                    "bcleansession" : false,
                    "bretain" : false,      
                    "keepalive" : 60,
                    "reconnect" : {
                      "delay" : 2,
                      "delay-max" : 10,
                      "exponential-backoff" : false
                    },
                    "tls" : {
                        "cafile" : "",
                        "capath" : "",
                        "certfile" : "",
                        "keyfile" : "",
                        "pwkeyfile" : "",
                        "no-hostname-checking" : true,
                        "cert-reqs" : 0,
                        "version": "",
                        "ciphers": "",
                        "psk": "",
                        "psk-identity" : ""
                    },
                    "will": {
                        "topic": "Last Will",
                        "qos": 0,
                        "retain": false,
                        "payload": "This is the end"
                    },
                    "subscribe": [
                        {
                            "topic": "test1/topic/A",
                            "qos": 0,
                            "v5-options": 0,
                            "format": "auto"
                        },
                        {
                            "topic": "test2/topic/B",
                            "qos": 0,
                            "v5-options": 0,
                            "format": "auto"
                        },
                        {
                            "topic": "test/#",
                            "qos": 0,
                            "v5-options": 0,
                            "format": "auto"
                        },
                        {
                            "topic": "test2/#",
                            "qos": 0,
                            "v5-options": 0,
                            "format": "auto"
                        }
                    ],
                    "bescape-pub-topics": true,
                    "user-escapes": {
                        "escape1": "valu1",
                        "escape2": "valu2"
                    },
                    "publish": [
                        {
                            "topic" : "publish/topic/json",
                            "qos" : 0,
                            "retain" : false,
                            "format": "json"
                        },
                        {
                            "topic" : "publish/topic/xml",
                            "qos" : 0,
                            "retain" : false,
                            "format": "xml"
                        },
                        {
                            "topic" : "publish/topic/string",
                            "qos" : 0,
                            "retain" : false,
                            "format": "string"
                        },
                        {
                            "topic" : "publish/topic/binary",
                            "qos" : 0,
                            "retain" : false,
                            "format": "binary"
                        },
                        {
                            "topic" : "publish/topic/{{datetime}}/{{user}}/C",
                            "qos" : 0,
                            "retain" : false,
                            "format": "json"
                        }    
                    ],      
                    "v5" : {
                        "user-properties": {
                            "prop1" : "value",
                            "prop2" : "value"    
                        } 
                    }
                },
            },
            {
                "enable" : false,
                "name" : "tcpiplink",
                "path-driver" : "/var/lib/vscp/drivers/level2/vscpl2drv-tcpiplink.so",
                "path-config" : "/var/lib/vscp/vscpd/tcpiplink.conf",
                "guid" : "FF:FF:FF:FF:FF:FF:FF:F5:09:00:00:00:00:00:00:00",

                "mqtt" : {
                    "bind" : "",   
                    "host" : "192.168.1.7",
                    "port" : 1883,
                    "mqtt-options" : {
                        "tcp-nodelay" : true,
                        "protocol-version": 311,
                        "receive-maximum": 20,
                        "send-maximum": 20,
                        "ssl-ctx-with-defaults": 0,
                        "tls-ocsp-required": 0,
                        "tls-use-os-certs" : 0
                    },
                    "user" : "vscp",
                    "password": "secret",
                    "clientid" : "vscp-level2-tcpiplink-driver",  
                    "publish-format" : "json",
                    "subscribe-format" : "auto",
                    "qos" : 1,
                    "bcleansession" : false,
                    "bretain" : false,      
                    "keepalive" : 60,
                    "reconnect" : {
                      "delay" : 2,
                      "delay-max" : 10,
                      "exponential-backoff" : false
                    },
                    "tls" : {
                        "cafile" : "",
                        "capath" : "",
                        "certfile" : "",
                        "keyfile" : "",
                        "pwkeyfile" : "",
                        "no-hostname-checking" : true,
                        "cert-reqs" : 0,
                        "version": "",
                        "ciphers": "",
                        "psk": "",
                        "psk-identity" : ""
                    },
                    "will": {
                        "topic": "Last Will",
                        "qos": 0,
                        "retain": false,
                        "payload": "This is the end"
                    },
                    "subscribe": [
                        {
                            "topic": "test1/topic/A",
                            "qos": 0,
                            "v5-options": 0,
                            "format": "auto"
                        },
                        {
                            "topic": "test2/topic/B",
                            "qos": 0,
                            "v5-options": 0,
                            "format": "auto"
                        },
                        {
                            "topic": "test/#",
                            "qos": 0,
                            "v5-options": 0,
                            "format": "auto"
                        },
                        {
                            "topic": "test2/#",
                            "qos": 0,
                            "v5-options": 0,
                            "format": "auto"
                        }
                    ],
                    "bescape-pub-topics": true,
                    "user-escapes": {
                        "escape1": "valu1",
                        "escape2": "valu2"
                    },
                    "publish": [
                        {
                            "topic" : "publish/topic/json",
                            "qos" : 0,
                            "retain" : false,
                            "format": "json"
                        },
                        {
                            "topic" : "publish/topic/xml",
                            "qos" : 0,
                            "retain" : false,
                            "format": "xml"
                        },
                        {
                            "topic" : "publish/topic/string",
                            "qos" : 0,
                            "retain" : false,
                            "format": "string"
                        },
                        {
                            "topic" : "publish/topic/binary",
                            "qos" : 0,
                            "retain" : false,
                            "format": "binary"
                        },
                        {
                            "topic" : "publish/topic/{{datetime}}/{{user}}/C",
                            "qos" : 0,
                            "retain" : false,
                            "format": "json"
                        }    
                    ],      
                    "v5" : {
                        "user-properties": {
                            "prop1" : "value",
                            "prop2" : "value"    
                        } 
                    }
                },
            },
            {
                "enable" : false,
                "name" : "rawethernet",
                "path-driver" : "/var/lib/vscp/drivers/level2/vscpl2drv-raweth.so",
                "path-config" : "/var/lib/vscp/vscpd/raweth.conf",
                "guid" : "FF:FF:FF:FF:FF:FF:FF:F5:0A:00:00:00:00:00:00:00",

                "mqtt" : {
                    "bind" : "",   
                    "host" : "192.168.1.7",
                    "port" : 1883,
                    "mqtt-options" : {
                        "tcp-nodelay" : true,
                        "protocol-version": 311,
                        "receive-maximum": 20,
                        "send-maximum": 20,
                        "ssl-ctx-with-defaults": 0,
                        "tls-ocsp-required": 0,
                        "tls-use-os-certs" : 0
                    },
                    "user" : "vscp",
                    "password": "secret",
                    "clientid" : "vscp-level2-rawethernet-driver",  
                    "publish-format" : "json",
                    "subscribe-format" : "auto",
                    "qos" : 1,
                    "bcleansession" : false,
                    "bretain" : false,      
                    "keepalive" : 60,
                    "reconnect" : {
                      "delay" : 2,
                      "delay-max" : 10,
                      "exponential-backoff" : false
                    },
                    "tls" : {
                        "cafile" : "",
                        "capath" : "",
                        "certfile" : "",
                        "keyfile" : "",
                        "pwkeyfile" : "",
                        "no-hostname-checking" : true,
                        "cert-reqs" : 0,
                        "version": "",
                        "ciphers": "",
                        "psk": "",
                        "psk-identity" : ""
                    },
                    "will": {
                        "topic": "Last Will",
                        "qos": 0,
                        "retain": false,
                        "payload": "This is the end"
                    },
                    "subscribe": [
                        {
                            "topic": "test1/topic/A",
                            "qos": 0,
                            "v5-options": 0,
                            "format": "auto"
                        },
                        {
                            "topic": "test2/topic/B",
                            "qos": 0,
                            "v5-options": 0,
                            "format": "auto"
                        },
                        {
                            "topic": "test/#",
                            "qos": 0,
                            "v5-options": 0,
                            "format": "auto"
                        },
                        {
                            "topic": "test2/#",
                            "qos": 0,
                            "v5-options": 0,
                            "format": "auto"
                        }
                    ],
                    "bescape-pub-topics": true,
                    "user-escapes": {
                        "escape1": "valu1",
                        "escape2": "valu2"
                    },
                    "publish": [
                        {
                            "topic" : "publish/topic/json",
                            "qos" : 0,
                            "retain" : false,
                            "format": "json"
                        },
                        {
                            "topic" : "publish/topic/xml",
                            "qos" : 0,
                            "retain" : false,
                            "format": "xml"
                        },
                        {
                            "topic" : "publish/topic/string",
                            "qos" : 0,
                            "retain" : false,
                            "format": "string"
                        },
                        {
                            "topic" : "publish/topic/binary",
                            "qos" : 0,
                            "retain" : false,
                            "format": "binary"
                        },
                        {
                            "topic" : "publish/topic/{{datetime}}/{{user}}/C",
                            "qos" : 0,
                            "retain" : false,
                            "format": "json"
                        }    
                    ],      
                    "v5" : {
                        "user-properties": {
                            "prop1" : "value",
                            "prop2" : "value"    
                        } 
                    }
                },
            },
            {
                "enable" : false,
                "name" : "sim",
                "path-driver" : "/var/lib/vscp/drivers/level2/vscpl2drv-sim.so",
                "path-config" : "/var/lib/vscp/vscpd/sim.conf",
                "guid" : "FF:FF:FF:FF:FF:FF:FF:F5:0B:00:00:00:00:00:00:00",

                "mqtt" : {
                    "bind" : "",   
                    "host" : "192.168.1.7",
                    "port" : 1883,
                    "mqtt-options" : {
                        "tcp-nodelay" : true,
                        "protocol-version": 311,
                        "receive-maximum": 20,
                        "send-maximum": 20,
                        "ssl-ctx-with-defaults": 0,
                        "tls-ocsp-required": 0,
                        "tls-use-os-certs" : 0
                    },
                    "user" : "vscp",
                    "password": "secret",
                    "clientid" : "vscp-level2-simulation-driver",  
                    "publish-format" : "json",
                    "subscribe-format" : "auto",
                    "qos" : 1,
                    "bcleansession" : false,
                    "bretain" : false,      
                    "keepalive" : 60,
                    "reconnect" : {
                      "delay" : 2,
                      "delay-max" : 10,
                      "exponential-backoff" : false
                    },
                    "tls" : {
                        "cafile" : "",
                        "capath" : "",
                        "certfile" : "",
                        "keyfile" : "",
                        "pwkeyfile" : "",
                        "no-hostname-checking" : true,
                        "cert-reqs" : 0,
                        "version": "",
                        "ciphers": "",
                        "psk": "",
                        "psk-identity" : ""
                    },
                    "will": {
                        "topic": "Last Will",
                        "qos": 0,
                        "retain": false,
                        "payload": "This is the end"
                    },
                    "subscribe": [
                        {
                            "topic": "test1/topic/A",
                            "qos": 0,
                            "v5-options": 0,
                            "format": "auto"
                        },
                        {
                            "topic": "test2/topic/B",
                            "qos": 0,
                            "v5-options": 0,
                            "format": "auto"
                        },
                        {
                            "topic": "test/#",
                            "qos": 0,
                            "v5-options": 0,
                            "format": "auto"
                        },
                        {
                            "topic": "test2/#",
                            "qos": 0,
                            "v5-options": 0,
                            "format": "auto"
                        }
                    ],
                    "bescape-pub-topics": true,
                    "user-escapes": {
                        "escape1": "valu1",
                        "escape2": "valu2"
                    },
                    "publish": [
                        {
                            "topic" : "publish/topic/json",
                            "qos" : 0,
                            "retain" : false,
                            "format": "json"
                        },
                        {
                            "topic" : "publish/topic/xml",
                            "qos" : 0,
                            "retain" : false,
                            "format": "xml"
                        },
                        {
                            "topic" : "publish/topic/string",
                            "qos" : 0,
                            "retain" : false,
                            "format": "string"
                        },
                        {
                            "topic" : "publish/topic/binary",
                            "qos" : 0,
                            "retain" : false,
                            "format": "binary"
                        },
                        {
                            "topic" : "publish/topic/{{datetime}}/{{user}}/C",
                            "qos" : 0,
                            "retain" : false,
                            "format": "json"
                        }    
                    ],      
                    "v5" : {
                        "user-properties": {
                            "prop1" : "value",
                            "prop2" : "value"    
                        } 
                    }
                },
            },
            {
                "enable" : false,
                "name" : "1-wire",
                "path-driver" : "/var/lib/vscp/drivers/level2/vscpl2drv-wire1.so",
                "path-config" : "/var/lib/vscp/vscpd/wire1.conf",
                "guid" : "FF:FF:FF:FF:FF:FF:FF:F5:0C:00:00:00:00:00:00:00",

                "mqtt" : {
                    "bind" : "",   
                    "host" : "192.168.1.7",
                    "port" : 1883,
                    "mqtt-options" : {
                        "tcp-nodelay" : true,
                        "protocol-version": 311,
                        "receive-maximum": 20,
                        "send-maximum": 20,
                        "ssl-ctx-with-defaults": 0,
                        "tls-ocsp-required": 0,
                        "tls-use-os-certs" : 0
                    },
                    "user" : "vscp",
                    "password": "secret",
                    "clientid" : "vscp-level2-one-wire-driver",  
                    "publish-format" : "json",
                    "subscribe-format" : "auto",
                    "qos" : 1,
                    "bcleansession" : false,
                    "bretain" : false,      
                    "keepalive" : 60,
                    "reconnect" : {
                      "delay" : 2,
                      "delay-max" : 10,
                      "exponential-backoff" : false
                    },
                    "tls" : {
                        "cafile" : "",
                        "capath" : "",
                        "certfile" : "",
                        "keyfile" : "",
                        "pwkeyfile" : "",
                        "no-hostname-checking" : true,
                        "cert-reqs" : 0,
                        "version": "",
                        "ciphers": "",
                        "psk": "",
                        "psk-identity" : ""
                    },
                    "will": {
                        "topic": "Last Will",
                        "qos": 0,
                        "retain": false,
                        "payload": "This is the end"
                    },
                    "subscribe": [
                        {
                            "topic": "test1/topic/A",
                            "qos": 0,
                            "v5-options": 0,
                            "format": "auto"
                        },
                        {
                            "topic": "test2/topic/B",
                            "qos": 0,
                            "v5-options": 0,
                            "format": "auto"
                        },
                        {
                            "topic": "test/#",
                            "qos": 0,
                            "v5-options": 0,
                            "format": "auto"
                        },
                        {
                            "topic": "test2/#",
                            "qos": 0,
                            "v5-options": 0,
                            "format": "auto"
                        }
                    ],
                    "bescape-pub-topics": true,
                    "user-escapes": {
                        "escape1": "valu1",
                        "escape2": "valu2"
                    },
                    "publish": [
                        {
                            "topic" : "publish/topic/json",
                            "qos" : 0,
                            "retain" : false,
                            "format": "json"
                        },
                        {
                            "topic" : "publish/topic/xml",
                            "qos" : 0,
                            "retain" : false,
                            "format": "xml"
                        },
                        {
                            "topic" : "publish/topic/string",
                            "qos" : 0,
                            "retain" : false,
                            "format": "string"
                        },
                        {
                            "topic" : "publish/topic/binary",
                            "qos" : 0,
                            "retain" : false,
                            "format": "binary"
                        },
                        {
                            "topic" : "publish/topic/{{datetime}}/{{user}}/C",
                            "qos" : 0,
                            "retain" : false,
                            "format": "json"
                        }    
                    ],      
                    "v5" : {
                        "user-properties": {
                            "prop1" : "value",
                            "prop2" : "value"    
                        } 
                    }
                },
            }
        ]
    }
}

Categories
VSCP

State of #VSCP

I planned to release version 15.0.0 of VSCP today. But as usual plans are one thing and reality is another. I still need some more time. But very soon now...

This has been a very hard release to get out. Mainly because the big rewrite of code. The rewrite has taken nearly two years to accomplish so there are many, many, MANY changes.

The biggest change is that MQTT is used for higher level functionality now. This means that the drivers (both level I and level II) talk to a MQTT broker in the following fashione

It is actually possible to have as many subscribe/publish topics as one need. Like this

So from a higher level view you now subscribe or publish VSCP events on a MQTT broker of choice. Events that can be on four different formats; binary, JSON, XML or ASCII.

The default format is JSON. Ans a VSCP JSON event looks like this

{
    "vscpHead": 2,
    "vscpObId": 123,
    "vscpDateTime": "2017-01-13T10:16:02",
    "vscpTimeStamp":50817,
    "vscpClass": 10,
    "vscpType": 8,
    "vscpGuid": "00:00:00:00:00:00:00:00:00:00:00:00:00:01:00:02",
    "vscpData": [1,2,3,4,5,6,7],
    "note": "This is some text"
}

For measurement events some optional fields can be added

measurement {
    "value" : 1.23,
    "unit" : 0,
    "sensorindex" : 1,
    "zone" : 11,
    "subzone" : 22
}

If you have worked with the VSCP websocket protocol ws2 you recognize this format.

The tcp/ip interface, the web socket interfaces, the decision matrix, the webserver, remote variables are gone from the VSCP daemon with this release. From tghis point the VSCP daemon will do one thing. Have a common interface to drivers and handle the transfer of events between the drivers and MQTT brokers. One can look at it as a pluggable driver interface for MQTT brokers.

Well, a lot of functionality has been written during the year using the VSCP web interface, websocket, tcp/ip etc. But that work does not need to be thrown away. This functionality is now available as drivers to the VSCP daemon. Initially the tcp/ip server and client, the web interface, websockets (ws1/ws2) and the rest interface is in place. Later the decision matrix functionality and remote variables will be added again as well.

Another news is that the VSCP daemon natively now builds on Windows again. Many have asked for that. Most driver will be available there as well.

There are more of course. But more on that latter. If I sit here and just write about the release it will never come out.

Last I want to thank my sponsors. It has been a tremendous help during this long development time to get this sponsorship. It’s been that little drop of water that made the boat go float each month. Thank You!

ps What about VSCP works someone may ask? The rewrite works continue isd trhe answer. A lot to rewrite there as well. ds.

Categories
Drivers VSCP VSCP UX

vscpl2drv-websrv

The VSCP web server has been ported as a level II driver for the upcoming version of VSCP. The content is

  • The web-server (lua and javascript server side support)
  • VSCP ws1 and ws2 websocket interface
  • VSCP REST interface.

Just for the fun of it.