Go Down

Topic: Chattyhome - intelligent house system (Read 2 times) previous topic - next topic

ghrom

Hello All ;)
I finally added PIRs to my system: http://chattyhome.com/blog/ChattyHome_Blog/Blog/Entries/2010/6/28_presence.html

And added some more details about my implementation of water level sensor to the blog: http://chattyhome.com/blog/ChattyHome_Blog/Blog/Entries/2010/6/26_water_level_sensor.html

At the moment I'm working on the third major rewrite of the core scheduler, this time I hope to get it as close to a realtime system as needed to be perceived as one ;) I also had some ideas about making the Overview tab configurable, so sooner or later I will be releasing the software to the public, hopefully someone will be interested ;)

ghrom

Someday, maybe. I really appreciate your comments and suggestions, but right now I will not spend hours if not days of my time trying to fix something which is already fixed. It works, all it needed was the second arduino and the probe loop fits neatly within one minute with plenty of room to grow and it will never interfere with the outputs, and if I ever need more room it's easier still to replace 750ms probes with 10ms probes and the problem is non existent again. I think it is better to spend your precious resources where they are really needed - and in my case this is development of new functionality. Right now I'm spending my time on integrating PIR sensors around the house, which will give my heating system more information, makes a good start for the security alarm, and makes possible funky ideas such as music following you around the house, ...
But I'm really grateful for the ideas - I'll put it on my TODO list and maybe one day I will rewrite the architecture to be event based with some sort of messaging system which is not serial like at the moment, please keep them coming.

Alvaro

Use software timers. It's not hard to implement, and if you use a event-based approach you don't even need to care about synchronization issues.

Something like this maybe ?

http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1267975899/4#4

Álvaro

ghrom

#7
Mar 19, 2010, 09:05 am Last Edit: Mar 19, 2010, 10:14 am by ghrom Reason: 1
Yes I sort of realised that the conversion can be done in a parallel mode - but because of the architecture of the whole system, i.e. how the rest of software which connects to arduino does it, it would be very difficult if not impossible for me to program it so I decided to go the easy way - I have limited time resources and I'm lazy ;)

The server software works in a way that a single command or batch of commands sent to arduino via serial will return a value, and the server will wait for this value until it comes or until timeout.

If I were to add another 18X20 probe all I need to know is its address and I can set it in the server software through UI alone without coding or compiling anything. Add a Probe, set Name, Location, Type, Arduino address, configure a Command for it, which would be something like '1WirePin 12!readDS18B20Temp 284CBAB101000051!' and presto. Optionally you add a relay board driven by any of the remaining arduino pins, set an Action in the software, set its type to Temperature and its Location the same as the Probe you just added, its commands similar to the Probe commands, i.e. '"0"="offPin 24!"; "1"="onPin 24!";' and you are able to schedule temperature in a room via Schedule - still using UI configuration only.

My goal is to be able to offer this software to the public and for this I want to have something which can be configured via UI alone.

I added a rough sketch of the architecture to the blog yesterday: http://chattyhome.com/blog/Chattyhome_blog/Technology.html

pluggy

#6
Mar 18, 2010, 08:19 pm Last Edit: Mar 18, 2010, 08:27 pm by stephen_t Reason: 1
You don't have to wait for the DS1820s, you can do what I do, send the read request, go away and do other stuff and then come back around a second later to get the reading.  I then send the next read request ready for the next time.  Just a matter of learning to code without using delay.

I have one Arduino reading 4 DS1820s, polling the electric meter rotations,measuring AC waveform,watching the gas meter (Interrupt), turning the heating on and off and measuring light levels in 2 rooms.

http://pluggy.is-a-geek.com/index.html

Go Up