Categories
VSCP

State of #VSCP

Hello everyone, must post a state of VSCP to show that things are rolling on even if activity looks dead right now. Yes, VSCP is still on active development. It is maybe not every user/developers favorite IoT framework but at least it’s maintainer (who does not love a child?) and a few others still like it.

For me I work on the next version of VSCP Works which I hope will be more stable and more useful then the present version which I personally never liked much, mostly due to the choice of using wxWidgets as a framework to build it. To get this thing out is the highest priority for me right now.

The new version of the VSCP daemon is quite stable as of the latest release. The thing that still needs to be done there is porting of some of the level II drivers to the new level II driver API. I just have’t found the time to do this yet. But will deliver on this point during this winter. I hope.

New things coming to the VSCP daemon is that MQTT client support will be built in instead being in a separate driver. This is in the line of work to use node-red for user interface tasks.

Also UDP and multicast support will go into the VSCP daemon again.

Both will be present in the next release of the VSCP daemon.

I use node-red with VSCP daily here at my location and much functionality in this house now is dependent on this setup. VSCP and node-red is a really a nice combination. More tools will come also here.

I added some VSCP functionality to ESPEasy (ESP8266/ESP32) for some time ago (a controller). It is hard to add generic functionality to a system that is not at all generic. But I gave up on this. Tired of trying to adjust to another really thoughtless solution. If I ever get time there will be sample code for the platforms some day. Tasmota is very nice but not at all generic when it comes to messages either. I plan to do a VSCP translator on MQTT level for my own use there as I really love many things about it.

Currently I am mounting some hardware here to control some stuff. It takes more time then I expected (does it not always?). But the thought is to have some things to work with and write demos and how-to’s around when the winter arrives with snow and cold temperatures (it’s late this year thankfully). Currently I am mounting hardware for lights and a weather station in my garage. More on this later.

well just a few words to show that this project still is alive and well.

Have fun!
/Ake

Categories
General

Vdx – An Intuitive Commandline Wrapper To FFmpeg – OSTechNix

Vdx is an intuitive commandline wrapper to FFmpeg. Using Vdx, we can do most common audio and video encoding and transcoding operations.

Source: Vdx – An Intuitive Commandline Wrapper To FFmpeg – OSTechNix

Categories
General VSCP

“Post is delivered” #vscp #nodered

Snow here today, quite a lot, so I am glad to have the “post is delivered sensor” so I don’t have to walk out to the postbox more than one time. So when I get the message on my phone today I am very pleased.

Yes it should be “there is” and that is changed now. But working. Yes!

I have written about this before here and here and I will probably write about this setup again as it is useful for many other areas.

I have not looked at battery voltage and signal strength before so I decided to email all events the sensor sends to me. This is simple in node-red of course

Just added the last row with a filter on just the sensors GUID.

The full flow is at the end of this post.

Now I receive six emails when the post is delivered. And I will go through them all here

Event #1

The email is

{
  "vscpHead":32864,
  "vscpClass":10,
  "vscpType":6,
  "vscpGuid":"FF:FF:FF:FF:FF:FF:FF:FE:5C:CF:7F:07:76:03:00:00",
  "vscpObId":5,
  "vscpTimeStamp":11704000,
  "vscpDateTime":"2020-10-20T10:51:17.000Z",
  "vscpData":[168,64,214,0,0]
}

which is

a temperature measurement (class=10, Type=6). The data is a bit cryptic when we need to decode it manually. But info on how to do that is here so we can try it out.

The data coding byte is 168 which is 0xA8 in hexadecimal and 0x10101000 in binary. The three leftmost bits (0b101) is the coding and in this case we have a 32-bit floating point value in byte 1,2,3,4. Bits 0,1,2 of the data coding byte is the sensor index and it is zero here so this is from sensor 0. Bits 3,4 is the unit. And if we look in the spec. we see that the unit is degrees Celsius.

The floating point value 64,214,0,0 is on MSB form and I am on a PC so it should be be 0,0,214,64. I can use a simple C program to find the floating point value

#include <stdio.h>
#include <string.h>
#include <inttypes.h>

int main() {
    uint8_t iv[4] = {0,0,214,64};
    memcpy( (uint8_t *)&fvalue, (uint8_t *)&iv, 4 );
    printf("Memconversion: %f\n", fvalue);
    return 0;
}

This will print

Memconversion: 6.687500

which is totally wrong as the temperature is around -1.5 degrees C here right now. Maybe the post bin is a very nice place to be in or maybe there is some self heating going on. Room for investigation.

Event #2

The email is

{
  "vscpHead":32864,
  "vscpClass":1040,
  "vscpType":6,   "vscpGuid":"FF:FF:FF:FF:FF:FF:FF:FE:5C:CF:7F:07:76:03:00:00",
  "vscpObId":5,
  "vscpTimeStamp":11776000,
  "vscpDateTime":"2020-10-20T10:51:17.000Z",
  "vscpData":[0,0,0,1,54,46,54,56,56,0]
}

In the VSCP Specification we find that class=1040, type=6 is also a a temperature measurement, but here as a Level II event and on string form. In the specification we see that first byte is sensor index (0), the second is the zone (0), the third byte is the sub zone (0), and the fourth byte is the unit (1). Byte 4,5,6,7,8,9 make up the string with the value which is 6.688. The zero at the end is the string termination. Not needed but often given. So again the temperature is 6.688 degrees Celsius.

Event #3

The email is

{
  "vscpHead":32864,
  "vscpClass":10,
  "vscpType":16,
  "vscpGuid":"FF:FF:FF:FF:FF:FF:FF:FE:5C:CF:7F:07:76:03:00:00",
  "vscpObId":5,
  "vscpTimeStamp":11849000,
  "vscpDateTime":"2020-10-20T10:51:17.000Z",
  "vscpData":[137,131,11,83]
}

Class=10, type=16 is a Voltage measurement. This is the battery voltage (electric potential). Again we look at the coding byte which is 137, which is 0x89 in hexadecimal and 0b10001001 in binary. Data coding is 0b100 which tells that the data is a normalized integer. For a normalized integer the second byte is the exponent of the number. Here 131 which is 0x83 in hexadecimal. Bit 7 is set which means the decimal point for the integer in the following bytes should be shifted to the left.Bits 0-5 tells how many steps, tree in this case. The integer is 0xB53 which is 2899 in decimal. Shifting the decimal point three steps to the right gives 2.899 V. And we know the battery voltage.

Event #4

The email is

{
  "vscpHead":32864,
  "vscpClass":15,
  "vscpType":6,
  "vscpGuid":"FF:FF:FF:FF:FF:FF:FF:FE:5C:CF:7F:07:76:03:00:00",
  "vscpObId":5,
  "vscpTimeStamp":11921000,
  "vscpDateTime":"2020-10-20T10:51:17.000Z",
  "vscpData":[85,45,56,54]
}

Here class=15, type=6 which is Signal strength. Again the first byte is the coding byte and is 85 which is 0x55 in hexadecimal and 0b01010101 in binary. Data coning is 0v010 which tells the rest of the bytes is a string and if we decode that we get -86 The unit bits are 0b10 (bits 5,6) and we see in the specification that this dBm. So signal strength is -86 dBm. Pretty good for a snowy day.

Event #5

The last email is

{
  "vscpHead":32864,
  "vscpClass":20,
  "vscpType":29,
  "vscpGuid":"FF:FF:FF:FF:FF:FF:FF:FE:5C:CF:7F:07:76:03:00:00",
  "vscpObId":5,
  "vscpTimeStamp":11660000,
  "vscpDateTime":"2020-10-20T10:51:16.000Z",
  "vscpData":[0,0,0]
}

Class=20 and type=29. According to the specification this is an information event telling that something has woken up. Data is index,zone,subzone and they are all set to zero as the GUID clearly tells who woke up in this case.


You may wounder about the vscpHead=32864. What is the meaning? This is a bit field (full definitions is here) giving some info about the event. In this case it tells that this event comes from a dumb node (but 15 is set). That is a node that does not have registers, a decision matrix and the other attributes of a smart node. It also have priority set to normal priority. This is selldome used in VSCP though.

The vscpObId is a channel number that end users normally does not need to care about.

Instead of manually decoding the data, the use of VSCP works would be preferred of course. It would have done the job above automatically. Bur now you know a little more about VSCP events in general.


The promised node-red flow is here

[{"id":"8387a5b3.258038","type":"vscp-tcp-in","z":"5ffcb26.533894c","name":"Localhost","host":"eaaa0283.83ca08","username":"admin","password":"secret","filter":"","keyctx":"vscp2","x":140,"y":120,"wires":[["9fe6d87d.7e56d","bee0ea0b.013a9"]]},{"id":"9fe6d87d.7e56d","type":"vscpfilter","z":"5ffcb26.533894c","vscppriority":"","vscpclass":"20","vscptype":"29","vscpguid":"FF:FF:FF:FF:FF:FF:FF:FE:5C:CF:7F:07:76:03:00:00","name":"Filter on Woken Up from mailbox","x":420,"y":120,"wires":[["b237b908.eb9ee8","e6bf6581.256c98","cb6535fa.e7dc38"]]},{"id":"b8a49e5b.388688","type":"inject","z":"5ffcb26.533894c","name":"","props":[{"p":"payload"},{"p":"topic","vt":"str"}],"repeat":"","crontab":"","once":false,"onceDelay":0.1,"topic":"","payload":"Post","payloadType":"str","x":430,"y":220,"wires":[["b237b908.eb9ee8","e6bf6581.256c98"]]},{"id":"b237b908.eb9ee8","type":"function","z":"5ffcb26.533894c","name":"Define message","func":"msg = {\n payload : 'There is post to collect in the mailbox',\n topic : 'There is post',\n to : 'akhe@grodansparadis.com',\n from: 'akhe@grodansparadis.com'\n}\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":820,"y":120,"wires":[["ccf59966.89df9"]]},{"id":"ccf59966.89df9","type":"e-mail","z":"5ffcb26.533894c","server":"mailhost.ljusnet.se","port":"25","secure":false,"tls":false,"name":"akhe@grodansparadis.com","dname":"Ljusnet","x":1000,"y":120,"wires":[]},{"id":"17d730fb.949a3f","type":"telegram sender","z":"5ffcb26.533894c","name":"telegram","bot":"42a44e6b.b2fde","x":1000,"y":220,"wires":[[]]},{"id":"e6bf6581.256c98","type":"function","z":"5ffcb26.533894c","name":"Define message","func":"\nmsg.payload = {};\nmsg.payload.chatId = \"1105118733\";\nmsg.payload.type = \"message\";\nmsg.payload.content = \"There is post to collect in the mailbox\";\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":820,"y":220,"wires":[["17d730fb.949a3f"]]},{"id":"cb6535fa.e7dc38","type":"function","z":"5ffcb26.533894c","name":"Define message","func":"msg.payload = \"Post has been delivered\";\nreturn msg;\n","outputs":1,"noerr":0,"initialize":"","finalize":"","x":820,"y":300,"wires":[["6d1af59f.bb754c"]]},{"id":"6d1af59f.bb754c","type":"ui_audio","z":"5ffcb26.533894c","name":"sound","group":"b5541ba5.781d38","voice":"en-GB","always":true,"x":990,"y":300,"wires":[]},{"id":"bee0ea0b.013a9","type":"vscpfilter","z":"5ffcb26.533894c","vscppriority":"","vscpclass":"","vscptype":"","vscpguid":"FF:FF:FF:FF:FF:FF:FF:FE:5C:CF:7F:07:76:03:00:00","name":"Filter on Woken Up from mailbox","x":440,"y":380,"wires":[["3bbfc1f1.3d2f36"]]},{"id":"3bbfc1f1.3d2f36","type":"e-mail","z":"5ffcb26.533894c","server":"mailhost.ljusnet.se","port":"25","secure":false,"tls":false,"name":"akhe@grodansparadis.com","dname":"Ljusnet","x":800,"y":380,"wires":[]},{"id":"eaaa0283.83ca08","type":"vscp-tcp-config-host","name":"Localhost","host":"localhost","port":"9598","timeout":"10000","interface":"","keepalive":""},{"id":"42a44e6b.b2fde","type":"telegram bot","botname":"pi11_bot","usernames":"brattberg_pi11_bot","chatids":"1234","baseapiurl":"","updatemode":"polling","pollinterval":"300","usesocks":false,"sockshost":"","socksport":"6667","socksusername":"anonymous","sockspassword":"","bothost":"","localbotport":"8443","publicbotport":"8443","privatekey":"","certificate":"","useselfsignedcertificate":false,"sslterminated":false,"verboselogging":false},{"id":"b5541ba5.781d38","type":"ui_group","name":"Temperatures","tab":"b0073866.5d3d68","order":1,"disp":true,"width":"6","collapse":false},{"id":"b0073866.5d3d68","type":"ui_tab","name":"Home","icon":"dashboard","order":2,"disabled":false,"hidden":false}]
Categories
General

Again. thanks to our sponsors

This is really a great help.

Thank you again Rusoku and Ajje for you generous support of the VSCP project.

Categories
node-red socketcan VSCP

New release 1.0.7 of node-red-contrib-socketcan

node-red-contrib-socketcan (1.0.7) was published at 2020-09-29T07:13:01.967Z Fixes problem with format for received data.

Categories
VSCP vscpworks

New version 13.2.2 of VSCP-Works

Version 13.2.2

**A bug fix release. **

  • Fixes a problem with abstraction editing when abstraction is float/double/long/longlong

VSCP Works is deprecated.

Categories
the VSCP Daemon

vscpd install problem workaround

If you get

Created symlink /etc/systemd/system/multi-user.target.wants/vscpd.service → /lib
/systemd/system/vscpd.service.
Job for vscpd.service failed because the service did not take the steps required
by its unit configuration.
See "systemctl status vscpd.service" and "journalctl -xe" for details.

when installing the VSCP daemon the install program did not install the directory structure needed for the VSCP subsystem. The workaround is easy. Just run

sudo vscpd -s

and then terminate immediately and all should be alright. This will create the necessary folders. You need to issue

sudo systemctl start vscp

to start the VSCP daemon after doing this. As an alternative you can reboot.

I will fix this in the next release.

Categories
the VSCP Daemon VSCP

Version vscpd 14.0.5 Silicon released

A new version vscpd 14.0.5 Silicon of VSCP & Friends has been released. It’s available for download here. This release mainly fixes a resource allocation problem that appears on Raspberry Pi and similar devices. If you have experienced connection problems on this or other platforms you should upgrade. Full list of changes is on the release page.

Enjoy!
/Ake

Categories
General

Stacey on IoT | CHIP products will be out next year

The Zigbee Alliance this week offered — nine months after announcing it was forthcoming — an update on Project Connected Home over IP, an effort by Apple, Amazon, Google, Samsung, and others to create some kind of interoperability standard for the smart home. There are A LOT of cooks in this kitchen, with 145 separate companies and more than 1,300 individuals signed working on CHIP. It is a titanic effort.The good news is that the standard is still on track, with a certification coming later this year and actual certified products anticipated in 2021. The Alliance also provided a list of devices that CHIP will focus on; it includes lighting, HVAC, locks, security, shades, and more, but neither smart speakers nor white goods, such as large appliances. And to round things out, it offered a GitHub repository and a detailed look at some of the levels where CHIP will seek standardization. (The diagram can be found in the photo accompanying the podcast post below). But in many ways, the update was disappointing.

Source: Stacey on IoT | CHIP products will be out next year

Categories
General

It works

The mailbox sensor still works. Not for I trust it fully yet. But I will, eventually.