node-red-contrib-socketcan (1.0.7) was published at 2020-09-29T07:13:01.967Z Fixes problem with format for received data.
Category: VSCP
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.
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
A new version of the package VscpTcpClient (1.1.2) was published at 2020-09-08 20:31:00
Fixes problem with connect always using admin/secret as credentials.
Remember the Howto: Snailmail sensor? Of course I need a notification on my phone when mail arrives so I can use my old legs and go out and get it.
I use email and Telegram for this. I also have added a SMS message to but this costs money (to much really) and I like “free”.
The setup is simple.
Common
The first to do is to listen for incoming events from the VSCP daemon where the mailbox thing delivers them. I could have used a MQTT broker here but have chosen to stick to an all VSCP solution for this.
The server is the local machine in this case as I have node-red installed on it as well. Well I have about twelve (last count) node-red installations running here so there are machines to choose from.
The setup is simple
The localhost is setup as
I use a standard setup, just listen on all traffic (no filter), no interface. So at this point I get a lot of events. I could have added a filter here to ease the work for node-red and let the VSCP Daemon do the filtering. But I like when my applications work hard so node-red take care of that task.
Filtering is the next state. The filter looks like this
I filter on CLASS1.INFORMATION /VSCP_TYPE_INFORMATION_WOKEN_UP which is sent when the lid of the postbox is opened. I also filter on the GUID from the postbox device. The GUID from the device is a good example of a GUID derived from a devices MAC address. It is built from a template like this
FF:FF:FF:FF:FF:FF:FF:FE:YY:YY:YY:YY:YY:YY:XX:XX
where YY is the MAC address of the device and XX is something the designer can use the way he/she likes. Read more about this here if you are interested.
After the filter we now only get an event when the Woken up event is sent.
The email setup is using the standard email tool (node-red-node-email). Nothing special with this setup. Just plain old mail delivery.
Before the email node I specify the mail content
I think it is pretty clear from the above picture where all fields go in the email.
Nothing more to it. An email is now sent when physical post arrives.
Telegram
Telegram is a perfect (and free) way to deliver/receive messages. There are apps and tools available for every platform. One just set up a bot (channel) and then subscribe to it on devices that should get the message. Download telegram first for your platform(s) (computer, tablet or phone).
Microsoft have a good walk through here on how to create a new bot. No need for me to repeat the steps.
In node-red I use the node-red-contrib-telegrambot node (telegram sender in this case). There are many other packages around but this one worked fine so I stick to it. My setup is like this
and
The token is the token you get from the setup. It looks something like this
The message needs to be defined here also and that is done in the stage before the telegram sender node. This is how I set it up
Now if you have installed Telegram on your phone/computer/tablet or whatever you will never miss the post delivery again and if you are fast enough you may even have time to wave to the postman/postgirl.
Here is the node-red code for this setup
[{"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"]]},{"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"]]},{"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 are post to collect in the mailbox\";\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","x":820,"y":220,"wires":[["17d730fb.949a3f"]]},{"id":"eaaa0283.83ca08","type":"vscp-tcp-config-host","z":"","name":"Localhost","host":"localhost","port":"9598","timeout":"10000","interface":"","keepalive":""},{"id":"42a44e6b.b2fde","type":"telegram bot","z":"","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}]
Talk
If you want your computer to say “post is delivered” when mail arrives, add this
[{"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":"b5541ba5.781d38","type":"ui_group","z":"","name":"Temperatures","tab":"b0073866.5d3d68","order":1,"disp":true,"width":"6","collapse":false},{"id":"b0073866.5d3d68","type":"ui_tab","z":"","name":"Home","icon":"dashboard","disabled":false,"hidden":false}]
Have fun!
Mail delivery. That is the physical type. That land in a box. Outside. There is one problem with it. You don’t know when or if you get any. So quite often, especially when there is a blizzard, one walk out to the postbox to find that it is empty. And if you have mail almost every day like me one wounder. “Are they late or is there no post for me today?” This usually ends up in me taking another trip to the postbox later when the blizzard is even worse.
A flag – the American style – would be possible. Needing binoculars. The later a habit that also might disturb my neighbors. But now, after all I work with computer. Something more firmware + electronics is my way. A perfect topic for a VSCP howto.
So the problem is simple: I need a notification when mail arrives in my mailbox. It also need to be a VSCP based solution. After all, I came up with the damn protocol.
So I set out to do this.
I like to lean new things. I therefore decided to use Platformio and the esp8266 with the Arduino core for this project. En environment I have not been playing with before. For both there are plenty of “getting started” write-ups available on the net.
This was a design that needed a battery. I have previously noticed the deep sleep capabilities of the ESP8266 so it should work. The device should take only ~20uA when sleeping and about 70mA when doing it’s work. In this app, we talk about a device that just need to wake up for a short moment once (when mail arrives) or twice a day (when I collect the mail).
You have the different sleep modes for the ESP8266 in the table below.
For deep sleep RST and CH_PD on the ESP8266 should be connected together. RST needs a pull-up. Now when set to deep sleep a low pulse on RST will wake the device.
So I came up with this schematic
Nothing strange here. Notice that I added a 1-wire temperature sensor also to get the temperature reported also when the lid is opened. Eagle file are here.
There is suggestions around to use a one shoot at the input. I tested without and it looks like things work as expected so I skipped it. An input switch will bounce so the startup of the unit will probably be a bot chaotic. This will take more juice form the battery and I will change this later on if I find it to be a problem.
I also replaced the reed switch with a mechanical switch on the mailbox. I will probably change that back later on but it was a little harder to get the reed switch approach to fit mechanically and I did not have the time to fix it the way I wanted to when I mounted the hardware.
I never reached 20uA in deep sleep. Rather 200 uA but that is OK for this test (theoretically 260 days or ~8 months on two AAA cells). I will investigate this further when I get more time. But apart from that everything works as expected.
For the firmware you can find it here. It is written so it can be used both with VSCP and MQTT (JSON VSCP events is sent). There are switches at the top of the file to select the version to build. With large EEPROM both can be used simultaneously.
I wrote a general library for VSCP and Arduino with the thought that it can be useful for somebody. Full info is here.
The sample code connects to wifi, then it connects to a VSCP remote host or a MQTT broker. Then it sends five events and then go to deep sleep again. The events that is sent are
- Woken up – to indicate the mailbox lid is open. VSCP_CLASS1_INFORMATION/VSCP_TYPE_INFORMATION_WOKEN_UP.
- Current temperature (level I & floating point value). VSCP_CLASS1_MEASUREMENT/VSCP_TYPE_MEASUREMENT_TEMPERATURE.
- Current temperature (level II and string value). VSCP_CLASS2_MEASUREMENT_STR/VSCP_TYPE_MEASUREMENT_TEMPERATURE.
- Battery voltage (normalized integer). VSCP_CLASS1_MEASUREMENT/VSCP_TYPE_MEASUREMENT_ELECTRICAL_POTENTIAL.
- RSSI (level I string). VSCP_CLASS1_DATA/VSCP_TYPE_DATA_SIGNAL_QUALITY
The two versions of temperature events should be considered as a demo of level I and level II events.
So time to test. Put everything in a box and mount it in the postbox. Our postbox is located a bit from my house
I have a directional wifi antenna in that direction for some stuff in our garage so wifi is OK (-85 dBm) at the location.
I mounted everything a bit after midnight last night.
And now this morning
VSCP Works tells that something has happened at 05:14:44
And yes there is a small package in the mail. Demo accomplished. Might even be useful when connected to node-red so I can get a notification on my phone using Telegram. There may be a short write-up about that also later.
This same setup can of course be used for PIR sensors, window sensors and similar. One can even change the data sent from VSCP to some format. It’s a free world.
Enjoy!
Please support our sponsors
Supporting the VSCP project right now is probably more important than ever. This is the only financing we have to keep servers running and make it possible to buy hardware to do even more releases and provide demos. Currently Github boost community funding so any sponsoring amount actually doubles on our side.
We are VERY grateful to our current sponsors. Please support them.
A new version of the package node-red-contrib-vscp-tcp (1.2.2) was published at 2020-08-31T09:20:38.185Z
Fixes problem with transmit of events to VSCP host.
#VSCP turns 20
Today VSCP turns 20. Not a teenager anymore. So many hours. A game of fools. There will be no party. stop.
The initial release (1.0.0) of the VscpTcpClient library is now available. The VscpTcpClient library can be used to communicate with a VSCP remote host in an easy and intuitive way. The library supports all Arduino Ethernet Client compatible hardware (atmelavr,espressif8266,espressif32).
Repository is here: https://github.com/grodansparadis/arduino-vscptcpclient
Documentation is here: https://grodansparadis.github.io/arduino-vscptcpclient