Enlightened Domotics Alarm Monitoring System(EDAMS)

Hey all!

First, sorry for my poor english :slight_smile: I'm working on a new project a serial interface software for arduino/atmega. I'm still learning programming in C(totally amateur) so my code should be ugly for some C expert but it works and I like it anyway :slight_smile:

So, with EDAMS you can read serial data and show of your sensors with their data in a nice way, but not only you can:

  • Create home room with name, description and picture
  • Affect sensor to home room
  • Create new sensor
  • Browse all your sensor
  • Avoid wars in world...

When EDAMS server get a new serial message it create a temp file with data received in it. EDAMS client parses temp file and show if message say something like "I'm sensor with data of type int" so if it a new sensor it registered this sensor and take values from EDAMS database(for now DHT11, DS18B20, PIR) but you can easily add new ones with sensor creator.

If sensor already exist in your installation, it get data from sensor and display it.

EDAMS is still in heavy developpement, many funcs are lacking, so don't be hard with me...no docs, no support, no beautiful code... no way to compile it :slight_smile: you must have Linux and EFL(http://enlightenment.org) installed to compile it.

Some screenshots should be more "parlants"

Code is available here:
https://code.google.com/p/edams/source/list

Greets,
Alexandre.

Hey!

Big update for EDAMS, new features listed below:

  • Use child process to parse and read serial buffer.
  • New widgets to see data in a nice way.
  • Can affect widgets sensors to a room
  • Real time data process of sensors to see them in room with widgets.
  • Can reset all widgets associated to a room.
  • Many bug fixes and cleanups.
  • New logo and about box
  • French locale updated and more i18n stuff

New screenshot of EDAMS 0.4.0(with french locale):

Roadmap:

  • Code refactoring and always more cleanups.
  • Documenation for installation and examples for Arduino(packages ino files them with sources?).
  • xpl parser. see:xPL.Arduino, émission de messages | Connecting Stuff(in french)
  • New widgets.
  • Improvemment on current widgets(better geometry handling, new animatation sequences).
  • Widget selector for sensor.
  • db click on widget show informations about sensors associated(description,datasheet...).
  • Generic widget to display data when sensor isn't in database(unknown state), maybe use entry text or slider?

See you, later...

Hey!

New EDAMS version, 0.6.0 comes with the following changes:

  • Update all rooms widgets now.
  • Can affect a different meter per meter widget
  • Alphabetical rooms sort order.
  • Sensors sort by its id.
  • Use of a generic preferences widgets(elm_prefs for efl power user :))
  • Add generic "counter" meter widget, in fact a sort of LCD screen too see numerical data in a nice and simple way.
  • Add a faded label "UPDATED" when data updates occurs.
  • Fixes of many memory leaks.
  • Fixes of many segfaults.
  • Clean-up of somes code parts(removed win32 port, removed plugins support, removed obsolete fields in database files).
  • Fix of spec file, RPM packaging is operationnal now. Need testing.

Last screenshot::

I've worked on documentation too(in french, cause as you can see I'm very bad with english :)). But I'm thinking about creating a blog(english+french) to announce release and distributes binaries packages(rpms...) and sources(tar.bz2, svn snapshots...).

See you later for next 0.7.0!

Looks like it's coming along slowly.

How are you connecting the sensors and the master (which I assume is a PC)?


Rob

Hi Graynomad!

What's do you mean by "looks like it's coming along slowly", you speak about software developpement or sensor data?

For now I'm using serial CP2102(USART=>TTL) connected to Atmega(in C) or Arduino. But for testing purpose, I'm using serial buffer emulation(in fact, only printf in forked child with some random data values and sensors). And some times, I'm using CP2102 in loopback mode(TX<=>RX) and use some serial write func to see if all is good in reading serial buffer.

Later and to avoid string serial buffer and to save some bandwith, I think I'll pass data in binary form to arduino/atmega=>PC....

Thanks a for your interest.

EDIT:Since, EDAMS don't use serial anymore. All data are passed to xPL network, so we can say that EDAMS talk 'xPL language'...

you speak about software developpement or sensor data?

Software development.

I'm just trying to get a handle on the topology here. If I've got this right you are talking USB to an Arduino, how is that Arduino talking to the sensors? Presumably they can be all over the house.


Rob

You can use USB to talk to Arduino but to be more precise it's serial communication. In my house sensors are connected to Arduino along an long sort of ethernet cable:

1 line for +5v
1 line for GND
1 line for OneWire(DS18B20)
others depends(DHT11 need 1 cable per sensors)

In fact, sensor's connection aren't not a problem you can use whatever you want(wifi,bluetooth,I2C...).

The only needs is that you use same terminology as EDAMS speak, for now I've (poorly)designed the following data trame:

DEVICE;DEVICE_ID;DEVICE_TYPE;DEVICE_DATA;OK

All trame fields must be seperated by ';'.

DEVICE is use to declare a new device(sensor now, but in next version I'll define more device types).
DEVICE_ID is an integer to identify your device connected to Arduino. It must be unique and should be the same at anytime.
DEVICE_TYPE is a string to identify what's your device, EDAMS use database(you can add your's own device) to compare with this received string. Example "DS18B20" database file is shipped with EDAMS so you can use with it.
DEVICE_DATA is a string to update device data, in case of DS18B20 you should get a T° in float format. EDAMS have generic widget to display this value(counter, thermometer...) so 2 cases: if your sensor is recognized by EDAMS in database, it will set for you in correct format(°F with thermometer widget) in other case, you sensor isn't recognized and EDAMS will show your data in generic way(only a numerical formatted with counter widget).
OK:is just used by EDAMS to verifify correct trame lenght(to avoid serial parasite).

Example:
With arduino, with just a:

serial.println("DEVICE;0;DS18B20;17.296;OK")

you say to EDAMS that you've a device with ID 0(it's your job to generate id number here, you can use another unique ID per sensor) and it's a DS18B20 and 17,296 correspond to it's data.

With EDAMS you'll be able to affect this DS18B20 to a room and select this room to see it's values in a nice way.

I've attached with this message, a sample talk to EDAMS.

EDIT:Since, EDAMS use xPL all description here is obsolete...

edams.ino (732 Bytes)

Hi all!

EDAMS 0.7.0 is here, and comes with:

  • Add xPL support(via xPLLib, integrated in edams!)
  • Add cosm data handling(ex pachube) via feeds and datasteams creation.
  • Add a new general map to see all sensors in one way.
  • Can add same sensor many times on same or different location.
  • Add geolocalization support(+cosm).
  • Many many fixes.

As you cans see, big adds(cosm, xPL) comes with 0.7 version! EDAMS follows references standards(xPL,cosm). General map is a new tool to auto-group your sensors and lets you the ability to move them together(background can be configured to draw your house map image).

To enhance your EDAMS experience, you'll need to configure an xPL hubl(like perl-hub or xPL_Hub).

Screenshots:

Seasons Greetings

Hi all!

Wiki for EDAMS is available! you'll found documentation about:

  • Introduction
  • Installation procedure
  • Example of use case
  • Screenshots of developpement version

Wiki is here: http://code.google.com/p/edams/

Hi all!

Some news about EDAMS:

  • Gnuplot rendering directly viewable in global devices map(press 's' to see generated gnuplot png file.
  • New documentation on the wiki.
  • No more serial code.
  • See location name in global map.
  • Location selected area in global map are resizable.
  • Geometry(position, size) of locations selected area in global map are saved and restored.
  • New style for adding location dialog ui.
  • New style for devices creator ui.
  • New style for preferences dialog ui.
  • Improved geometry layout of location panel in main ui.
  • Background of global map is configurable directly on preferences dialog.
  • Improved debug system(don't use of eina_log anymore).
  • Cleaned of xPL code(removed obsolete stuff and uneeded funcs).
  • Updated database files(DHT11, DS18B20, PIR) to latest edams database format.
  • Announce on e17-stuff.org and xPL google group

Latest developpement screenshots, since no package available:

Hi all!

Some news about EDAMS:

  • New virtual class device to allow you to add widgets like clocks,mail checker...
  • New control.basic class devices to allow you to add these xPL devices and acts on them from global view widgets.
  • New "lightbulb" widget for sensorl.basic device to show state of a lamp or a lightbulb(for example).
  • New "led" widget for sensorl.basic device to show state of a binary device's.
  • New "switch" widget for control.basic device to send CMND with enable/disable state when clicking on it.
  • New virtuals widgets(digital and analog clocks)
  • New action editor, to doing some stuff on some condition(like send a mail when temperature > 20°C...)
  • Added cJSON parser to send better cosm request.
  • Improved freedesktop icons support for better desktop integration.
  • New status bar to see results about some actions(like removing/addind location or widgets...).
  • Removed device's creator, to be 100% xPL compatible!
  • Don't use special xPL device name field, use whatever you want!.
  • Thermometer widget works again.
  • Removed obsolete parts(serial code, thermometer, tacho, xPL-Hub).
  • Bette xPLLib integration by using more EDAMS and EFLs stuff in code.
  • Wiki updates
  • Many, many fixes...

Google code:Google Code Archive - Long-term storage for Google Code Project Hosting.
Introduction:Google Code Archive - Long-term storage for Google Code Project Hosting.
Screenshot:Google Code Archive - Long-term storage for Google Code Project Hosting.

Roadmap:

  • Add global view control.basic widgets support, to act them and send xPL CMND request to xPL network.
  • Improve actions editor, to be easier to use.
  • Add SMS/Mail support and control.basic CMND support to actions editor.
  • Add timing/date support to react at some time( like "on lunday at 8:00 light on the lamp1 xPL device"...).
  • Add global view location add/remove realtime support.
  • New control.basic widgets to handle all types(infrared, slider...).
  • New mail checker virtual widget to show if mail in box in global view.

Hi all!

News about EDAMS:

  • Big modification to avoid multiple interfaces like device selector, widget selector...all is in new widget editor now
  • New scheduler event's editor, use crontab(without breaking your current crons entries), to perfoms EDAMS actions(like send CMND xpl, exec external program, send a mail...)
  • Improved user interface's experience to action editor
  • CMND xPL is handled in global view, so you can send CMND xPL with help of widget(exemple;drag a slider)
  • gnuplot and cosm datastream are options and can be enabled/disabled for each widget
  • Global view realtime modifications when removing/adding location
  • New lock edition virtual widget, to lock edition in global view
  • New mute control.basic widget
  • New mail checker virtual widget(monitoring your local's mbox file)

Hello Alex,

Just wanted say well done and it is good to notice that you are continuing to develop the EDAMS software.

Wishing you every success with it.

Paul

Hey rockwallaby!

Thanks for your comment, very pleasure to see encouragement :slight_smile:

Since Arduino isn't really needed anymore, I will stop to spam Arduino forum about EDAMS evolution 8)

Thanks for all and see you in http://code.google.com/p/edams/ don't hesitate to contact me if you've any comments/suggestions...

Greets,
Alexandre.