Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
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 build 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 coordinates 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.
Network Architecture and User Interfaces
You can define an architecture that mixes 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.
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
- Supported Hardware Platform
- Load Souliss on your Nodes
- Step by step with screenshots
- Data Structure
Getting Started with Souliss Android Application
The Android application is your interface to the network.
Once you are ready to learn more, the following topic will be of interest