Over the past year or so I have been looking for an IoT project. Last summer I came up with one which was to capture caller id information and display it on our multiple computers around the house so we can see who is calling with out getting up and checking the phone.
For the project I used the opensource Mosquitto MQTT Broker running on a Raspberry PI configured with self signed certificates. I used TLS connections with usernames and password to secure communications between the nodes.
I captured the caller id using an old US Robotics Sportster modem connected to an original Raspberry PI Model B using a serial to USB adapter. I started the project with the goal of working with Node.js but but had problems getting the node.js serial module running on the old Raspberry PI. I switched over to a simple C program to capture the caller id information from the modem and publish it to the MQTT Broker.
So far I have built a Windows client which displays the caller id information using a notification from a tray icon.
The project took me a couple of months to get up and working. This was in part due to having limited time to work on it and partly as I spent a good bit of time getting familiar with node.js. I found Mosquitto very easy to use. The documentation for Mosquitto and the Mosquitto API very good.
The setup has been running for several weeks now. Both my wife and my computers have the CallerID Subscriber installed on them and we get notifications with caller id when calls come in.
One tool that I used extensively during the development process was mqtt-spy which I would recommend to anyone working with MQTT.