Categories
MQTT VSCP

Added live #VSCP #MQTT power demo

Added a live power demo to the existing demo pages. This demo show the actual power usage in our house/office. Data is collected from a smart power meter with an open interface that is installed by our utility company Ellevio.

You can read more about the interfacing of this meter here. On this page you can also find a link to a Python script that does the job if you prefer using it instead of the VSCP driver approach.

Measurements are collected by a VSCP daemon driver vscpl2drv-energy-p1 and sent by the VSCP daemon to the MQTT broker on the vscp demo server. The VSCP daemon collecting data is installed on a Raspberry Pi 3B+ running Raspbian.

More demo data is on the way.

Categories
MQTT VSCP

VSCP MQTT demo

The VSCP MQTT demo code is now also live on our demo server. This is probably the most ugly and boring demo around – it will improve over time – but the technique behind it is interesting. At the moment it basically just show the temperature in our fridge in some different ways. Not very interesting but it’s live and real time data.

It is also worth noting that everything is secured with TLS. From the source up to the actual widget.

The source generating data is a small device (Kelvin NTC10K) that does not have Internet capabilities but instead communicate over a CAN bus which is connected to a VSCP daemon which in turn publish received events to a local MQTT broker on JSON format. This data is then forwarded to the demo server.

With VSCP it is possible to write widgets like this once and then use them for different scenarios multiple times. Just by using the tools we all have been using for many years now. Things that web designer people do well.

Try yourself to plot the data using charts.js for example.

Categories
Demo MQTT VSCP websockets

Demo: Live VSCP MQTT data over websockets

Added some initial demo code for VSCP MQTT events over websockets. Currently a page with an unformatted live event list is available and a gauge displaying the fridge temperature in our kitchen.

The code is here https://github.com/grodansparadis/vscp-demo-mqtt-web

This is initial work and work in progress so please expect a lot of changes and improvements. Posted here for people that want to start development around this technique.

Information about the events available will be added as we go and more will come. There are some info in the wiki already but info is far from complete.

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

Categories
MQTT

Building mosquitto with websocket support

Here is a very good guide on how to build mosquitto mqtt server with websocket support https://gist.github.com/smoofit/dafa493aec8d41ea057370dbfde3f3fc