Go Down

Topic: Souliss, Home Automation and IoT using Arduino and Android (Read 12486 times) previous topic - next topic

veseo

Nov 28, 2011, 08:46 pm Last Edit: Sep 16, 2013, 11:13 pm by veseo Reason: 1
[UPDATE]
There are a lot of news that wasn't in the original schedule, please refer to the latest post of this topic or have a look to the website www.souliss.net or @soulissteam
[/UPDATE]

Hello Forum,

I would like to share a first step of an Home Automation project called Souliss Home Automation, available at http://sourceforge.net/projects/veseo-souliss/ , it's a framework composed of 3 layers (Souliss, MaCaco and vNet) that make easy build its own home automation applications.

Main features of this framework are listed below:
- It support a P2P network, with a virtualized communication. The application doesn't care about the communication media that is used, routing/bridging within nodes is also provided
- A communication protocol to share data between nodes, a nodes is an Arduino-based device, but the idea is move the framework over many platforms. An example, and Android mobile phone can be a node.

The network virtualization is care of vNet, that offer a virtual network of nodes regardless media used (now are supported a modifed Ethernet and Chibiduino). Frames are automatically bridged and routed within nodes, without any extra code in the application that use it.

The communication protocol is MaCaco, it allow standard polling, pushing of data but also subscribing. If a data is subscribed, the source of data will send frame over the network only when data changes. The subscriber care to check the channel healty.

Using vNet+MaCaco and adding some standard logics for home automation (like lights, doors, ...) the framework is complete and released as Souliss. Some simple examples are provided, to manage light and garage doors, locally and remotely at same time. The approach is distributed, there isn't a central node. Each Arduino has it's own logic and acquire by it-self data from other nodes.

What's next, an UI that now is missing. The idea is start with an Android application that via ethernet acquire data from the nodes, it required a special handling of sockets as per vNet and then move the framework over different platform. This allows and integrated network of Arduinos, mobile phones, computer, media center or whatever.

The ideal roadmap is described below, but the real development progress will be depend on help that I will have, because also if the library is working, there are a lot of todos:
- Develop the framework for Android to get a basic UI,
- Improve RAM requirements,
- Extend broadcast support for vNet (now is there but is not fully working),
- Include RFM22B in vNet,
- Docs,
- Make available more logics in  Souliss,
- Make a full UI Android based,
- Develop the framework for other platform (more is bettter)
- A dedicated board (wireless 434/900Mhz w RFM22B, 24V, 16DI buffered, 8 DO, relays off-board).

People that would like to join this project are welcome, as are welcome any suggestion or comment.

Regards,
Dario.
Souliss - Open-source Distributed Home Automation with Arduino and Android

http://www.souliss.net
Follow at @soulissteam

@veseotech

Graynomad

Sounds interesting.

Re the roadmap, can you move "Docs" to the top :)

______
Rob
Rob Gray aka the GRAYnomad www.robgray.com

veseo

Is somenthing that is going on, I'm writing the user guide and another guy from forum is writing the code documentation.

Based on people that want join the project, roadmap can change.

Regards,
Dario.
Souliss - Open-source Distributed Home Automation with Arduino and Android

http://www.souliss.net
Follow at @soulissteam

@veseotech

Graynomad

It might be a chicken and egg situation, meaning that people may not get interested until they see more information.

For example it seems that each node has to be Ethernet aware, is that the case?

If so the granularity is fairly course but a node can then have "points" etc and monitor/control a lot of things. But is there provision for a node that say just monitors a single switch?

With a publishing/subscribing model everyone (meaning developers) probably has to agree on logical addresses (say the front door publisher has to identify it's data as such) and data formats etc. Is that sort of thing pre-defined or to you define such things at each installation?

______
Rob

Rob Gray aka the GRAYnomad www.robgray.com

veseo

#4
Nov 29, 2011, 05:37 pm Last Edit: Nov 29, 2011, 05:42 pm by veseo Reason: 1
Hi Rob,

Ethernet is not mandatory, just is supported. The vNet library care automatically to bridge and route frames within the network and all the supported media, up to now two are supported: Ethernet and Chibiduino. Furthermore, Ethernet is no longer the standard library, but is a modified that allow multiple user (socket are not used permanently).

The Souliss library is a collection of methods that pre-define the sharing charateristics.

I know that docs are important, but if you look into the example you will found many of the answer to your question.
Please note also, that docs are not ready, but something is provided. For example, from the begin was loaded an user guide for vNet library, that discuss about connectivity and addressing.

Hope that documents will be ready as soon, but I'm looking also for people that would join the project to speedup.

I've not understood the quesiton:
Quote
If so the granularity is fairly course but a node can then have "points" etc and monitor/control a lot of things. But is there provision for a node that say just monitors a single switch?


Regards,
Dario.
Souliss - Open-source Distributed Home Automation with Arduino and Android

http://www.souliss.net
Follow at @soulissteam

@veseotech

veseo

I've loaded a new user guide for Souliss library out of the user guide for vNet that was already loaded, both are available at https://sourceforge.net/projects/veseo-souliss/files/User%20Guide/

Regards,
Dario.
Souliss - Open-source Distributed Home Automation with Arduino and Android

http://www.souliss.net
Follow at @soulissteam

@veseotech

tochinet

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...

veseo

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.
Souliss - Open-source Distributed Home Automation with Arduino and Android

http://www.souliss.net
Follow at @soulissteam

@veseotech

veseo

#8
Dec 28, 2011, 12:42 am Last Edit: Dec 31, 2011, 12:19 pm by veseo Reason: 1
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.
Souliss - Open-source Distributed Home Automation with Arduino and Android

http://www.souliss.net
Follow at @soulissteam

@veseotech

veseo

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.
Souliss - Open-source Distributed Home Automation with Arduino and Android

http://www.souliss.net
Follow at @soulissteam

@veseotech

shineangelic


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

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 ... :)

Thank you for sharing
twitter: @shineangelic

veseo


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


Hi,


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.


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.


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 ... :)


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.
Souliss - Open-source Distributed Home Automation with Arduino and Android

http://www.souliss.net
Follow at @soulissteam

@veseotech

veseo

Is available the release A2.1 on SourceForge http://sourceforge.net/projects/veseo-souliss/, it has the same content but some bugs were fixed.
Souliss - Open-source Distributed Home Automation with Arduino and Android

http://www.souliss.net
Follow at @soulissteam

@veseotech

shineangelic

Android client development going on:

http://www.youtube.com/watch?v=VK7Mra4EQTI

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

shineangelic

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

http://www.youtube.com/watch?v=zY9oYuo3avg
twitter: @shineangelic

Go Up