Categories
MQTT VSCP

vscpd 15.0.0 Phosphorus

Working hard here on the next release of the vscp daemon dubbed Phosphorus with version number 15.0.0. If nothing strange happens there will be an alpha release next week.

Just want to to share a hint on what is to be expected from the new release. In short I can use one word for it

LESS

A lot of functionality was removed from the vscpd Silicon release. Now even more core functionality is removed.

  • The web server is no longer.
  • The multicast and udp support will be a level II driver.
  • The tcp/ip interface will be moved to a driver.
  • Both websocket interfaces will be moved to drivers.

Added is extensive MQTT support. Meaning that all MQTT tools out there will be useful for VSCP work as well.

This is how it works

The daemon itself will publish events to a configured broker. It can subscribe to as many topics as one like and also publish on as many topics as one like. One topic is a retained topic (typically “guid/interfaces”) which holds a JSON formatted list of interfaces on that daemon. More will come here as we go.

Full control of the topic with some dynamic possibilities such as guid/class/type/nickname etc

Drivers are the same. The can subscribe on as many topics on a selected broker as one like and also drivers can publish on the needed number of topics.

Level I driver config

A level I driver get a new configuration format that looks like this

<!--
            The Level I socketcan driver (You may concider using the
            Level II version instead)
        -->
        <driver enable="true" 
                name="socketcanl1"
                config="can0"
                flags="0"
                translation="0x02"
                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" >
                <!--
                    The MQTT settings for device
                -->    
                <mqtt host="192.168.1.7"
                    port="1883"
                    user="vscp"
		    password="secret"
                    clientid="vscp-drv1-socketcan1"
                    qos="0"
                    bcleansession="false"
                    bretain="false"
                    keepalive="60"
                    cafile=""
    	            capath=""
    	            certfile=""
    	            keyfile=""
		    pwkeyfile="" 
		    format="json" >
                    <subscribe topic="vscp/{{guid}}/#"
                               qos="0"
                               options="0" />
                    <publish topic="vscp/{{guid}}/{{class}}/{{type}}"/>
                </mqtt>                    
        </driver>

Much the same with the added MQTT connection information. MQTT config data is inherited from the main process so if it is the same no need to set it again in the driver.

Level II driver config

Config files for level II drivers looks like this

<!-- Level II tcp/ip link -->
        <driver enable="true" 
                name="tcpiplink"
		        path-driver="/home/akhe/development/VSCP/vscpl2drv-tcpiplink/linux/vscpl2drv-tcpiplink.so.1.1.0"
                path-config="/home/akhe/development/VSCP/vscp/debug/linux/vscpl2drv-tcpiplink/driver-conf.xml"
                guid="FF:FF:FF:FF:FF:FF:FF:F5:22:00:00:00:00:00:00:55" >

                <!--
                    The MQTT settings for driver
                -->    
                <mqtt host="192.168.1.7"
                    port="1883"
                    user="vscp"
		    password="secret"
                    clientid="vscp-drv2-tcpiplink"
                    qos="0"
                    bcleansession="false"
                    bretain="false"
                    keepalive="60"
                    cafile=""
    	            capath=""
    	            certfile=""
    	            keyfile=""
		    pwkeyfile="" 
		    format="json" >
                    <subscribe topic="vscp/{{guid}}/#"
                               qos="0"
                               options="0" />
                    <publish topic="vscp/{{guid}}/{{class}}/{{type}}"/>
                </mqtt>                    
        </driver>

Pretty much the same as before but with the new VSCP level II driver interface which has many new features.

VSCP tcp/ip link interface

The biggest change is probably that the tcp/ip link interface will go. This does not mean that it will not be used anymore. It will still be supported all over the place including in the new VSCP Works version. The link interface is still perfect for higher end hosts and the tcp/ip link driver can connect them all now and will do so in the future.

What do you need to do as a user

Nothing. The current version of the VSCP daemon will still live on until there is a stable version out of the new VSCP works. When that happens the shift will take place. Hopefully sometimes in the spring next year if all goes well. But don’t take my word for it, last year I would have thought it should be out and working already months ago.

If you want to test

The development is carried out in the developer branch och the vscp project. Just clone. configure and make. I think the configuration file is rather straight forward and talk or itself. New manual info will be available soon.

So exciting times for VSCP ahead. It can be only me of course that think that way, but never the same, I think this is rather fun.

/Ake

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.