Arduino Smarthome and IoT Networking Framework

Build a p2p net of Arduino based devices using Ethernet, Wireless and USART. Control over Android and openHAB.
Like ZWave, but opensource.

Similar projects worth following
Souliss is a framework that turns Arduino boards into smart objects in 50 lines of code sketch, interconnect your nodes over Ethernet, Wireless, RS485 and control them directly via SoulissApp Android application or into openHAB.

Nodes communicate in p2p using an event-based communication, report data and their functionality to the user interface and discovers automatically the network path.

It share a similar approach of ZWave and Zigbee, but works on multiple communication interfaces (and not only on Wireless 2.4 GHz). Souliss is completely open-source, runs on open-source hardware and is free to use.

Souliss is a flexible and powerful framework, it basically does two things: gives a networking tool that interconnect all your boards; introduce standard logic to handle your interconnected Things.

Once your board runs Souliss, is able to communicate with others and let them know what it can do (lets say control your garage door, but can be anything else). You are free to have multiple nodes, those can communicate in peer-to-peer between them-self and report to an user interface the actual state.

Souliss create a local network, your devices doesn't relay on Internet connection even if can be controlled via Internet. Your data doesn't travel around the world.

You have the freedom to scale from one, a couple of several tens of boards. Mixing Souliss with commercial products for home automation is possible through openHAB.

An overview on how make Smart Home with Arduino and Android and how use Arduino as Smart Home Product are available on the blog.

  • 2 × Arduino Duemilanove/UNO or compatibles Any Arduino compatible board that use ATmega328P or higher
  • 2 × Transceiver W5100, ENC28J60, nRF24L01+, AT86RF230 and others
  • 1 × Relay with embedd driver Or an Arduino boards with relay, like DINov2
  • 1 × Pushbutton and resistors

  • Marco's Power Socket

    plinio01/18/2015 at 09:58 2 comments

    One of the best features of Souliss is the flexibility, so that you can distribute your nodes over the home. Marco has build a set of Power Socket, an all-in-one device that plugs directly into a power socket and give control over Souliss. Similar to WeMo, but cheaper.

    The LED gives indication on the status and on the left side there is the input plug.

    Inside and Arduino, an nRF24L01+ radio with a small 220 VAC/ 5VDC power supply and a relay with a small circuit to drive it.

    The PCB is handmade and straightforward, the input 220 VAC supplies the PSU module and then goes through the relay to give power at the output socket, so that you can control this socket and power on and off anything (have care for the maximum current of the relay) attached to.

  • Arduino, Souliss and openHAB empower this home

    plinio12/14/2014 at 11:05 0 comments

    This picture shows the cabinet that control most of the automation of the Fulvio's home, nodes are interconnected in RS485 and then join an openHAB server via Ethernet.

    Nodes runs Souliss that cares for networking and execution of logics, those are locally executed and doesn't depend on openHAB.

  • Get Souliss in openHAB

    plinio12/12/2014 at 14:22 0 comments

    Fulvio's home is controlled though Souliss and now has openHAB as automation server.

View all 3 project logs

  • 1
    Step 1

    Read the wiki to have a general overview of what Souliss does, the most important are Your First Upload and Getting Started.

  • 2
    Step 2

    Start from an Arduino Ethernet, an Arduino with official Ethernet Shield or ENC28J60 Ethernet Shield. The Hello World example is the right one to start with, use SoulissApp to control your board and turn ON and OFF an LED.

    Read carefully how setup the board.

  • 3
    Step 3

    Once you get the Hello World working, is time to define a network of nodes. Have a look to the supported Hardware Boards and start your design.

    You can mix Ethernet, Wireless and RS485 communication as you like.

View all 3 instructions

Enjoy this project?



midnightcow wrote 05/13/2015 at 04:59 point

Dear Dario.

I'm interested in your souliss project. I'm a engineer of WIZnet.

Your project have a tag such like as W5500, W5200, and W5100.  But I could not find the related post on this & your site. Where I can find them?

If not yet, Do you have a plan to make this project with Wiznet chips instead of ENC28J60?

I will help you. I will sent to you WIZnet products(W5500, W5500 Ethernet shield, WizFi250).

And if you intrested in ARM cortexM, I will send to you WIZwiki-W7500 platform(

If you need a my help, I will send them free to you and feel free send the private message to me.

Thank you.

  Are you sure? yes | no

plinio wrote 05/15/2015 at 16:34 point


yes we support the WIZnet Ethernet transceiver, in this post ( we use the DINo boards from KMP Electronics, that use W5200.

Would love to have contribution from Wiznet.



  Are you sure? yes | no

midnightcow wrote 05/19/2015 at 08:20 point

Dear Dario.

Do you have a relationship with Souliss?

Maybe, are You a member of those companies?

If yes, You have already contribution from WIZnet.  WIZnet museumhad introduced souliss solution.

Thanks so much.

You seem like to be interested only in Arduino(AVR).

Do you think about another MCU platform as ARM mbed.  WIZnet will lauch the WIZwiki-W7500 platform as ARM-silicon partner ASSP.

I will expected to co-work souliss soultions with you.

Thank you.

  Are you sure? yes | no

davedarko wrote 12/08/2014 at 12:06 point
Hey Dario,

There are a lot of Home "Automation" projects around here where you can switch an LED or relay from afar, it would be interesting if you could share how this is different from the others. Is there any automation in your current system setup? Like when you come home your coffee maker starts or your heater preheats your flat/house? If you have the time it would be awesome of you if you could make a little "run through" video of the features. What was your motivation in not using something like mqtt? Is there an "IFTT" way, so you can say "when light_sensor_1 < 255 than light_switch_0 = ON"?

Anyway, I'm always interested in progress in that field, so I will follow your project! Thanks for your direct approach by contacting me by message!

  Are you sure? yes | no

plinio wrote 12/08/2014 at 14:08 point
Hi Dave,

I'm never been good enough explaining, that's probably why it wasn't clear enough the scope of Souliss.

Let me try :)
Souliss haven't been designed to solve a single automation problem, but as framework that scale.
To give you an idea, there are networks of 1 or 2 nodes and others that growth up to 20 nodes and more than 100 electrical appliance controlled.
Those networks run on wireless transceiver, RS485 and Ethernet without constrains on the topology.
When you connect SoulissApp (Android App) it detects automatically your nodes and what electrical appliance are configured there, adapting the user interface.

That's why Souliss is a framework, is build to scale.

You can build simple rules in SoulissApp or in code, because nodes can communicate each other in p2p. Using openHAB is also an option with the binding released in test few days ago.

It helps have comments and opinion, so feel free to share.


  Are you sure? yes | no

Similar Projects

Does this project spark your interest?

Become a member to follow this project and never miss any updates