Linux Home Server as an IoT Gateway

GraysonPeddie

Active Member
First off, I don't know where to post, so if moderators could move my thread to where it's appropriate, I'd appreciate that. Anyway...
 
Protocols, protocols, protocols... Weave, SmartThings, AllJoyn...
 
With a lot of companies backing up different IoT protocols, is it possible for my Linux home server to be an IoT gateway? It's not like I could communicate with Nest thermostat with BASH scripting, can I? I mean, there are a couple of IoT hubs that run Linux.
 
I suppose I'm talking in terms of hardware and not software.
 
I am reading stuff about Ubuntu and IoT playing well together.
 
Here have migrated my Homeseer (main mothership) stuff to Ubuntu 14.04 64 bit. 
 
I am also running a VB of Windows Server 32 bit on the same box for a few things that I want to run in Windows.
 
Homeseer 3 lets you connect plugins remotely such that I can run stuff on the RPi2 - Linux or a Mini PC - Windows 10.
 
My current base of touchscreens are running in XPe using Microsoft SAPI (Homeseer speaker client and Homeseer touch client) such that they each can have unique voices and display whatever console pieces I need for the touch interface.  I am currently testing using W7e and W10 for similiar and it works fine.  (you can do similiar with Homeseeer Android or iOS created touch interfaces )
 
Recently here tested using the two new Homeseer 3 plugins:
 
1 - Amazon Alexa software (Alexa Voice Service) and
2 - Microsoft Kinect device
 
on a Baytrail PC running Windows 10 and remotely connecting to the Ubuntu mothership.  
 
It works well here giving me the best of both worlds.  
 
All I need for this to run is just the mini PC and the Kinect and no monitor. 
 
Currently building a W7e client for the sole purpose of running the Amazon Alexa and Kinect software.
 
I'm starting to think that IoT is going to be heavily WiFi and that, with some exceptions, when you bring a device home, you'll connect to it using  your phone, tablet, or PC using Direct Wi-Fi so as to configure it to access your Wi-Fi internet router, and from that point on it will be talking directly to the cloud through your Wi-Fi router.  In addition to accessing it through the cloud, you and/or other modules can also still access it with Direct WiFi and/or through your WiFi router.  Consider that an ESP8266 module can already do all that and costs around $2 in quantity one with free delivery.  It won't be for everything or for everyone, but 80-20 rule suggests it will be a de facto standard.  After all, just about everybody has a wi-fi router that's already setup, internet connected, reliably working, and has good coverage.
 
I've started playing with these modules just recently.  The original models had just 512K of flash memory.  The newest one, the ESP-13, packs 8x that amount (4 megabytes), but still costs just $2-3 dollars and has more GPIO pins exposed for use.  I think a lot of new stuff is going to manifest by means of the extra flash space for programs. If you want, you can program it using the Arduino IDE or a more professional IDE if you prefer..  It has more compute power than any of the arduino's, and it has more RAM than any of the arduinos except for the Due.  It doesn't have as many GPIO pins as some of the Arduino's, but it has enough for most things, and more can be added with I2C boards, etc.  Whether you like it or not, it's an existence proof and can do real work today.
 
I bring it up because the hub wars may no longer be terribly relevant, and that's probably a good thing for overall market growth.  Rather than remain stuck, I think the market is starting to bypass that adoption obstacle, and that's because, unlike before, it's now incredibly cheap to do so.
 
I'm playing with this kind of stuff right now. I've built several IoT devices (ChipKit and Fubarino, Arduino like boards). These devices are working with Misterhouse (and node.js, node-red, Perl, Python, and Bash). I'm now adding support for CloudMQTT access to both Misterhouse and the boards. This is both private MQTT and Cloud MQTT (just so I can learn about it).

I have several WiFi devices (several esp8266 boards and other boards), I'll get to those boards later. My working boards are Ethernet based, which is easier to prototype with. There are several issues I'm working through (and not just the personal one's ;-) ). Security is my biggest issue because limited resource microcontrollers have a difficult time with protocols designed for computers (like SSL/TLS).

If you don't mind DIY, then I think you might find node-red useful. Node-Red has lots of support for interfacing with internet services. Node-Red requirs some Javascript, which is not a terrible language for glueing things together. But you do need to get used to the idea of event based programming rather than the more common sequential programming. Node-Red easily sits on a Linux box. I'm not really happy with the small boards like Raspberry Pi for stuff like this because too much gets written to the flash card. But I have other boards that have a SATA interface which solves that problem.
 
Update: I've found an ESP8266 project ( http://tuanpm.net/rock-solid-esp8266-wifi-mqtt-restful-client-for-arduino/ ) that contains code for SSL. I'll see if I can integrate it into my Chipkit based projects. This will be interesting.
 
NeverDie said:
... the hub wars may no longer be terribly relevant, and that's probably a good thing for overall market growth.  Rather than remain stuck, I think the market is starting to bypass that adoption obstacle, and that's because, unlike before, it's now incredibly cheap to do so.
I don't see any winners in the hub wars seems they all seem to be pretty big losers. Too bad they didn't learn to get along and play nice.

Various services (IFTT) seemed to have learned though I don't know which one's will survive (and not that I've needed it).
 
Back
Top