Showing posts with label FHT. Show all posts
Showing posts with label FHT. Show all posts

Friday, November 9, 2012

Dashboard once again

It's been more than a year since I last published about the dashboard. And that it because not much happened in that front.

Meanwhile, a friend gave me a tablet, cheap chinese thing, which I planned to use to display the dashboard in a visible place in the house.
The thing could even display the HTML5 and handle the AJAX calls and all, but it was unstable, sleep mode would spend the battery almost as fast as normal mode, slow to boot, bad touchscreen (resistive), and so on, and so on, so I quit on it, and consequently on the progress on the dashboard, as the experience while using it is, in my opinion, of great importance!

A few months later, my wife offered me an iPad, the new retina display model! so that rekindled my interest in the dashboard. I came back to iWeb, expanded the design a bit, and have spend a couple of evenings implementing the functionality...this is the result:


And for the explanation:

electricity and gas consumption: the pointers move, as the data is updated, and shake slightly when stable, to indicate that the thing is alive. The numbers are updated twice a minute.

House control: this interfaces mainly with the FHZ1000 part of the automation. It reads set, measure and desired temperatures, displays the measured, and makes the box green if the room is set for comfort temperature (even if it has not yet been reached) and blue for low temperature. The boxes turn orange is there is no reply.
The buttons for the awnings are toggle buttons: click to extend them and click to retract them, since the system has no idea of what their status is (they can be operated locally). They briefly blink through orange to give feedback that something happened!
climate limited: is a button to limit the maximum temperature to which any room can be set
holiday mode: should set all rooms to a low temperature and out of the standard program. this is the only button not yet functional (and therefore transparent).

Door events: list of the last 4 events on the RFID door.

System messages: reports errors on the system, like now, the weather station has stopped transmitting.

Agendas: list a few items (enough to fill the respective boxes) taken from google calendar. I have a google calendar for the house, where I put the garbage schedule, and other maintenance activities that need to take place.

Outside temperature: like the name says, displays the data from the weather station. Now it displays nothing, since the station stopped working - see system messages :)

And that is it! data is updated on timers, and the agendas on loading of the page.

There has been talk in the tubes about some mechanisms to update data in real-time. That should be the next development, but that might take another few years :) This is nice enough to show to my friends :)

AH! last but not the least, I found out that one can include some lines in an HTML page to make it a iPad app, so, by adding:

    <meta name="apple-mobile-web-app-capable" content="yes" />
    <meta name="apple-mobile-web-app-status-bar-style" content="black-translucent" />

I can save the page onto the iPad desktop (is it what it is called?) and run it as any other app, without the safari address bar. Only the top bar with the clock and stuff is still visible, but that is even a plus, as it gives you a clock and iPad info!

I'll try to post a screenshot from the iPad soon!

Tuesday, June 23, 2009

Heating system rundown

Recently I met one of the persons behind the Wattcher, a nice little device to measure the electricity consumption of the house and show it in an accessible way to the users. Furthermore, it is a design piece as it was designed by the famous dutch designer Marcel Wanders.
Talking about the wattcher and my own power ball, I mentioned by automated heating system, and he was interest in it, so I wrote an extensive email about it, which I think should come here to the blog as well. So here it is, slighly adapted for the bolg:


Here is a quick breakdown of how my system works.
First, in Holland, the central heating works by having a thermostat in the living room which commands the boiler to burn gas when heat is needed. The remaining rooms then keep a temperature which is relative to the temperature in the living room, since the radiators in those other rooms will be more or less opened depending on the wishes of the inhabitants.
Some places have thermostatic valves, in which you can set the desired temperature and it will open and close the radiators according to the need of heat. However, for this last setting to function it is necessary that the living room thermostat turn on the boiler time enough for the heat to get there, and at the necessary moments.

This situation always annoyed me, since to get some decent temperature in the sleeping room in the morning, the living room would have to be heated up in order for heat to circulate in the system and heat up the sleeping room. The same for e.g. the bathroom.

So, I thought of a system where each room would have its own thermostat, able to request heat from the boiler (turn it on) and ways of opening and closing the radiator valves.

These systems are not new, and they exist for office buildings, high end residential buildings, and in other countries where the standard central heating system works according to different principles. Companies like Honeywell also have similar packages, but they are very expensive.


So, I found these room thermostats and radio controlled valve actuators, in elv.de

http://www.elv.de/FHT-80b-Set-2-Raumregler-FHT-80b,-1-Stellantrieb,-Batterien,-Adapterset/x.aspx/cid_74/detail_10/detail2_10647/flv_1

These are room thermostats, and function just like a thermostatic valve (like mentioned above), but one that you can program the day/night cycle. Furthermore, these thermostats can communicate with another device from ELV:

http://www.elv.de/FHZ-1000-PC-Software-zur-Ansteuerung-der-FS20-,-HMS-100-Komponenten-der-FHT-80b/x.aspx/cid_74/detail_10/detail2_9859/flv_1

which is a device to connect to a computer and that receives state data from the thermostats.

So, I got all these together, and built a computer system which receives desired and current temperature data from the thermostats and decides if the boiler needs to be on or not. If the boiler needs to be on (somewhere there is need for heat in the system) the system turns on a relay switch (also a wireless switch from ELV) that turns the boiler on.

I hope I didn't make it very confusing.

Meanwhile, ELV developed a device that does essentially the same:

http://www.elv.de/Wauml;rmebedarfsrelais-FHT-8W/x.aspx/cid_74/detail_10/detail2_22834

Saturday, May 30, 2009

Daylight measurements

The next project, now that the door bell growls in the mac and the power orb is orbing like mad, is to make a small weather station, with a wind speed meter and a daylight meter in order to control the sun shade in the kitchen.

In the late afternoon the kitchen gets a lot of direct sun, and while that is a good thing in the winter months, it is not as nice in the summer, as it makes it very hot and the refrigerator has to work overtime.

I have an electric sun shade, of the extending type, which is connected to an ELV device making it controllable from the server. However, I cannot lower it automatically, since if it is raining or windy or simply cloudy, it is not a very wise thing to do. I do raise it automatically every day at 20:30, which should cover it most of the year, and in case I need to go out of the house and don't come back till late while the shades are off.

So I started the weather station by getting an LDR and connecting it to the arduino. Using the standalone temperature logger I made a few months back I could leave the arduino in the kitchen the whole day logging the amount of light.


The results are great I think! with the steep rise around 14:00 which is when the sun comes around the bend, and a clear difference between the times when the sun shines and when it doesn't. I think a threshold at around 800 will do the trick.
Furthermore I am quite happy with the excursion of the sensor, going from 0 to 916 at least, which is a 89% coverage of the 5V conversion range!
Now, off to the wind speed! Already spent the night disassembling an old VCR, and got some promising parts out of there!

One more note. I thought a lot about how to make a rain sensor. Not necessarily measuring it, but just to detect if it is raining or not, but concluded that if it is rainy, the sky will be overcast, so it won't be necessary to lower the shades!

Thursday, January 29, 2009

Log rotation

The heating system of my house creates a log file per week, per zone ( currently 3 zones: living room, kitchen and sleeping room). Every week, and on the same day of the week as the first day of the year, it starts a new log file. So to see the nice little graphs plotting temperature - actual and desired - and valve state, once a week, I have to ssh onto the server, manually adapt a little script and run it.
Until today!
I finally beat my laziness, and wrote a php script, took about 5 minutes to write. It is a brute force script just to get the job done. This to prove that a lot of time is wasted in activities that can very easily be automated and are of no interest to be kept manual.
So here is my script.
All, or almost all of my home automation run on php scripts being executed by a crontab.
Now, once a year I'll have to adapt the crontab file...maybe I should think about automating that also..

$comand = "rm kitchen.log livingRoom.log sleepRoom.log";
exec($comand);
$comand = "ln -s kitchen-";
$comand = $comand . date("Y-W");
$comand = $comand . ".log kitchen.log";
exec($comand);
$comand = "ln -s livingRoom-";
$comand = $comand . date("Y-W");
$comand = $comand . ".log livingRoom.log";
exec($comand);
$comand = "ln -s sleepRoom-";
$comand = $comand . date("Y-W");
$comand = $comand . ".log sleepRoom.log";
exec($comand);

and the crontab line

#once per week, for 2009 on thursday, first thing in the day, rotate the logs
15 0 * * thu /usr/bin/php /tmp/automate_log_change.php