Dario Di Maio edited this page Oct 21, 2015 · 14 revisions
Clone this wiki locally


Arduino based Distributed Networking Framework for Smart Homes and IoT

Souliss is an open-source project that collects code and people with common interest in the field of SmartHome and Internet of Things. It's designed to be light and scalable, runs across multiple nodes and communication media. You can use Souliss to build an entire home automation system based on Ethernet and RS485, create your own ZigBee, Z-Wave like wireless intelligent devices or simply to open your garage door from your Android smartphone.

The wiki contains all the information needed to setup a Souliss network, it include details on supported architectures and implementations.

Brief about Souliss

Souliss is build over three layers that builds a complete network of nodes with distributed logics and functionality, all nodes can exchange data in peer-to-peer and there is no need for a central node that coordinate logic and communications. Thanks to its scalable structure, the functionality of Souliss can be moved over different nodes or merged on a single one, the best solution can be oriented to the network size and requirements.

If you already have a compatible board, you can start from any of the Examples

Network Architecture and User Interfaces

You can define an architecture that mix different communication media like Ethernet, Wireless point-to-point and RS485 as per your needs having all the data reported to a Gateway node that acts as collector of data for user interface like SoulissApp Android application or openHAB.

You can start from a single Ethernet node as Gateway adding other nodes time by time.

Logics and Interfaces

Every node runs a set of user defined logic (aka Typicals), these offer a common way of interacting with the user interface, reducing the configuration effort and increasing the standardization between nodes.

Data are not by default stored in the Gateway that acts as pass-through, if required you can setup the Interfaces, a collection of protocols for data transfer designed to integrate Souliss with other devices.

Souliss Hardware

There are several platforms available that can run Souliss, all are based on AVR microcontrollers and has different transceiver of I/O extension. Have a look to the Supported Hardware Platform.

Getting Started with Souliss

If you are new to the Arduino world and its IDE, follow the first upload and getting started guide.

The examples are the best starting point, start from an Ethernet node. Consider that you always need to configure the framework in order to specify the hardware platform and the option to enable.

Getting Started with Souliss Android Application

The Android application is your interface to the network.

Next step

Once you are ready to learn more, the following topic will be of interest

Advanced Configuration and Customization