Souliss, Home Automation and IoT using Arduino and Android

Hm, isn't this a lot of complexity to solve a relatively easy problem ? Maybe abstract frameworks are fun, but this looks soo complex that I'm afraid it will be slow on poor Arduinos...

Quite sure that you haven't tryed it, isn't slow.

If you look to many of the home automation project build up to now, you will found nice project that doesn't offer scalability: for example many will not offer both hardwired and serial command or doesn't not support multiple nodes.

If you want to try it and share your suggestion, you will be welcome.

Regards,
Dario.

After the first release of Souliss, I've changed a bit the roadmap moving at high priority an user interface, then docs will follow as much is possible.

The idea at begin of project was build the Souliss frame over different OS, this make PC or mobile devices like nodes able to interact, so make them user interface. To speed-up the development I've moved to a different solution, with a node that collect all data from other nodes and share these data via JSON. Based on this solution is ready (but still not released) a web-based user interface, furthermore an iPhone apps may be worked out by BoomTakZaag.

In attachment there is a screenshot for the user interface, is AJAX based but the webpage isn't loaded from the Arduino and is loaded locally from the PC or mobile device. At this topic an example for TinyWebServer is modified to load the page locally and use JSON, based on this is born the user interface for Souliss.

This interface will be released at end of Jan12 with other improvement, if someone in the mean time would help as alpha-tester will be welcome.

Video

Regards,
Dario.

The release A2 of Souliss is now available on SourceForge at following address: http://sourceforge.net/projects/veseo-souliss/

Additional features:

  • Compatibility with standard Ethernet class (2 sockets),
  • JSON Server for User Interfaces,
  • Browser based User Interface,
  • Support for new typicals (ready to use logics for Home Automation).

Regards,
Dario.

Hi Dario, we met on the italian home automation forum :slight_smile:

I'm studying your approach to home automation, I decided to use some arduino UNO (4, maybe 5) to control some sensors/actuators (about 30, I would say) connected via Ethernet, and it seems I could use souliss, is this correct?

I made some tests on my own in writing a really small and stupid home automation 'framework', to excange state message and commands between nodes: it was almost working, but I had serious RAM issues: as I tried to debug with Serial.print commands, everything got messed up (RAM exausted, I believe) with strange outputs and/or Arduino reboots.

How do you cope with Arduino's small RAM? Did you have to face memory issues? How much RAM does Souliss use? Thank you

I'm an experienced java developer, but my C++ is rusty and I'm an hardware noob. Do you think I could contribute to Souliss if I decided for this library? I'm already registered on sourceforge ... :slight_smile:

Thank you for sharing

shineangelic:
Hi Dario, we met on the italian home automation forum :slight_smile:

Hi,

shineangelic:
I'm studying your approach to home automation, I decided to use some arduino UNO (4, maybe 5) to control some sensors/actuators (about 30, I would say) connected via Ethernet, and it seems I could use souliss, is this correct?

Yes, you can have a network with only ethernet nodes. Is supporter the Wiznet W5100 chip, this is used in Ethernet Shields, Arduino Ethernet board and compatible.

There are two options: use only the base framework (vNet+MaCaco) that give you a P2P communication channel and a communication protocol. Over this framework you can build your own home automation system; use the full Souliss project, that give you also the home automation logics and sharing methods.

shineangelic:
I made some tests on my own in writing a really small and stupid home automation 'framework', to excange state message and commands between nodes: it was almost working, but I had serious RAM issues: as I tried to debug with Serial.print commands, everything got messed up (RAM exausted, I believe) with strange outputs and/or Arduino reboots.

How do you cope with Arduino's small RAM? Did you have to face memory issues? How much RAM does Souliss use? Thank you

The full Souliss project can use from 700 bytes up to 1300 bytes based on the configuration, the heavyiest are "bridge" and "JSON Server" configuration. The communication protocol is binary and quasi state-less, so there is a small RAM footprint.

shineangelic:
I'm an experienced java developer, but my C++ is rusty and I'm an hardware noob. Do you think I could contribute to Souliss if I decided for this library? I'm already registered on sourceforge ... :slight_smile:

There are several ways to contribute, the most appreciated is a Java PC based interface for Souliss. Now Souliss has a simple web based user interface, an iPhone app is under development by a forum user.

If you would like to start, let me know with a PM.

Regards,
Dario.

Is available the release A2.1 on SourceForge http://sourceforge.net/projects/veseo-souliss/, it has the same content but some bugs were fixed.

Android client development going on:

now working on timed and positional triggers (i.e. go out -> automatically shut off lights)

Second Souliss Client video, showing "Programs" functionalities. Still much work to do:

Updated documentation available at http://sourceforge.net/projects/veseo-souliss/files/User%20Guide/

Is now available the project website at www.souliss.net, this topic still will be used for updates and news.

English is not my main language, so sorry if any grammatical error will be in the site.

Regards,
Dario.

Is now available the release A2.3 that support the Android application developed by shineangelic, both can be downloaded from the SourceForge repository, the link for them in the download section of the Souliss site.

Regards,
Dario.

The release A3 with support for ENC28J60 Ethernet controller and KMTronic DINo board is now available for download.

On the Souliss website are available more details about this new release.

Regards,
Dario.

Hi Forum,

is from long time back that I don't include there updates about the Souliss project. We spent more than four months in rebuilding some features to get a better user interaction and now we are ready with the new release A4.

The biggest change is in the communication side, now the whole project is based on binary protocols, up to release A3 only the communication between the board was in binary rather the communication to user interface was based on ASCII protocol (HTTP/JSON).
It was working but when we included support for software IP stack (used in case of ENC28J60 controller) there were a slow down of the performances and too many use of RAM, so we moved to a binary protocol that for the Android interface is Macaco over vNet like for the boards.
Of course MaCaco is not a standard, so we looked into binary protocols available without license fee and we decided to include Modbus RTU and TCP.

Now the performances are really increased and there is a better use of RAM, where some efficiency was get modifying the buffer handling and introducing the oFrame data structure.
There is also a one more, the IP part is moved from TCP to UDP in order to support broadcasting (not yet released).

If we look to these modification in terms of user benefit, we have that now Android does no longer poll Souliss boards for data, because MaCaco is event based; there is more RAM available on the application side (for the boards). Then Modbus is a new starting point, because is supported by many interfaces and let build an own in a simple way.

On the Modbus side, we get the support from IntegraXor that is offering it's SVG SCADA User Interface for Souliss, so now people can drawn their own interface in Inkscape and then control over it their home.

This release is a new starting point for the project.

As usual, more information on our website and now also on twitter @soulissteam.

Please consider to contribute to the project, there are many ways: use Souliss and report improvement and bugs, be a Souliss evangelist, write documentation or tutorial or examples, write code or improve actual features.

Regards,
Dario.

The project is ongoing, here some videos of the integration with Olimex's hardware

A Relay WiFi node controlled via Android application and/or Modbus TCP

A simple network of two nodes, a relay one and an RGB LED controller with p2p interaction

The same RGB LED controller driven by the music played by the smartphone via FFT

Enjoy,
Dario.

SoulissApp client reached version 1.2, some of the new features include RGB support:

FEATURES:
-Automatically detects Souliss nodes and devices, supports sensors, lights, air conditioners, RGB lights and many other appliances
-Define custom Scenarios to group commands together
-custom Programs (timed, geo-referenced, Sensor-based) to automate your home's behaviour
-local Database to collect hystorical data
-Background Service to receive devices' updates
-battery-efficient UDP implementation
-tablet support and optimizations
-customizable look&feel

Lets link a couple of user examples that are quite interesting: the former mix RCSwitch and Souliss in order to have Android controlled RF power sockets; the latter builds a media center using Android mixed with Souliss as light controller.

http://www.souliss.net/2013/09/showcase-lorenzos-souliss.html

Enjoy,
Dario.

A new release of Souliss is available in the download section, this add a really important plug&play feature that allow the nodes to build automatically a network without any user configuration.

Here more details,

Regards,
Dario.

New release and plug&play features, no longer need for network configuration.

Regards,
Dario.