Disconnected connections – The missing puzzle piece in an organization’s success, with Tahir Qureshi and Afifa Rahatulain
Author: admin
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
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…
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"
}
}
},
}
]
}
}
GitHub Summerfest | GitHub Resources
Following in the footsteps of our Winterfest traditions, we’ve prepared an hour of virtual games, lightning talks, and expert Q&As for you to kick summer off right. Zoom fatigue? Not with us! Come and join us for a virtual get-together with DevOps and security peers from all over Europe.
Summerfest
Now ready for GitHub Summerfest next week.
Thank you GitHub!
Nice and stable
I have had CAN4VSCP boards running now for many years here on the VSCP hill. Setups like the above for my weather station, take care of things like hot water generation, fridge control, pellets stove and heater, alarms, lights and much, much, much more. The setup is actually incredible stable and have survived many thunderstorms, winter blizzards (several setups is mounted outside like the one above), rain, and power hick ups. It just works.
All CAN4VSCP designs are real open hardware with all documents and firmware open and freee to use. It is OK to build your own, sell them, change them or do whatever you can come up with.
From november this year I will start to sell them again – after this five year stop – aimed to those of you that like to obtain your hardware that way. To buy some hardware is also a good way to support the VSCP project. Some additional cards will appear to at that time. Strangely the designs does not feel old event if many of them are almost ten years at this point. Oldies in electronic terms.
I myself is becoming old to. But still love this more then can express. The work with VSCP will continue.
eSPI Protocol | Prodigy Technovations
eSPI ProtocoleSPI Protocol INTRODUCTIONeSPI stands for enhanced serial peripheral interface. It was developed by Intel. eSPI is an all-in-one bus that was designed to replace the LPC bus as well as the SPI bus, SMbus and sideband signals. For designers of computing applications, migrating from the LPC bus to the eSPI bus offered benefits such
The electronic sensors market is constantly expanding, with double-digit year-over-year growth rates. The main factors driving this growth are the high
Source: I3C, the High-Performance Interface for Next-Generation Sensors