Showing posts with label FAQ. Show all posts
Showing posts with label FAQ. Show all posts

Friday, February 12, 2010

FAQ: Getting Google Calendar Dependencies

In order to successfully build dz3-scheduler-gcal, you need some extra dependencies, and in order to run it, you need some more (both come from gdata-java-client library). Following are the steps to make them available (implies wget(1) installed on your system):

cd /tmp && \
wget http://gdata-java-client.googlecode.com/files/gdata-src.java-1.40.2.zip && \
cd /usr/local/src && \
unzip /tmp/gdata-src.java-1.40.2.zip
The /usr/local/src location is hardcoded into dz3-scheduler-gcal/pom.xml, change it if it doesn't work for you.

1.40.2 was the latest version available at the time the development of dz3-schedule-gcal was finalized, feel free to replace it with the latest available - but make sure individual dependency version numbers match.

Why So Ugly?

Because gdata-java-client hasn't been made available to the Maven Central Repository yet.

If you want to make it happen and know how to do it, please do so. If you find out that dependencies in question are already in the central repository by the time you read this, please let me know.

Friday, January 22, 2010

FAQ: How Schedule Periods Work

(IMPORTANT: Google calendar has a bug which makes all "forever" recurring events to last for just two years. If the calendar looks empty, scroll the example back to November 2017 to see the actual complex schedule breakdown).

Period scheduling already looks very similar to what is displayed below, and it will look even more like so as wrinkles are ironed out:



Clicking on the calendar button will request to add this calendar to your list of calendars (if you already have a Google account and are logged in) , or present you with Google authentication page. Adding a calendar is a reversible action - you can always remove it later (go to Settings/Calendars and click on Unsubscribe).

The only benefit of adding the calendar to your list is a nice full screen view of the schedule.

In any case, don't forget to click on individual event descriptions to find out how things work (this doesn't require being logged in). Note that the embedded view is scrollable.

Keep in mind that the link is live, and the content will change as details are sorted out.

At this point it is expected that each zone will have its own calendar, to reduce clutter. Moreover, it is currently expected that cooling and heating schedules will be represented by two sets of calendars, with the same purpose - you can easily select and deselect individual calendars, but it'll be a mess if you have more than one set of settings in the same calendar.

Wednesday, January 6, 2010

FAQ: "Off" Zones

Q: What does it mean when the zone is "off"?

A: It means that the system will not care about the temperature in thos zone at all, other than recording it if it is configured to do so.

Q: How do the dampers behave in the zone that is off?

A: The dampers will stay open when the HVAC unit is off, to give other systems (forced ventilation, humidifiers, dehumidifiers) chance to work without obstruction. The dampers will stay closed when the HVAC unit is running, unless there is a need to dump excess static pressure, in which case they will open barely enough to provide that.

Use Cases

  • You don't need your bedroom at day, you may safely shut it off.
  • You don't need anything other than the bedroom at night, you may safely shut it off.
Warning: Currently, "off" means "off", and there is no minimum temperature override for heating mode to prevent your pipes from bursting. If there is such a chance, lowering the setpoint to minimum allowable is the way to go. In the future, this override will be introduced.

FAQ: Non-Voting Zones

Q: What does it mean when the zone is made "non-voting"?

A: It means that the zone will not cause the HVAC unit to turn on, if it is the first zone to be calling for heating or cooling. Otherwise, it will behave exactly like it normally does - once the HVAC unit is running, this zone will be satisfied, even if it is the last one to be satisfied.

Keep in mind that zone's voting status is subject to schedule - a zone can be voting in one period and non-voting in another.

Use Cases

Good Case

This feature was originally intended to be used with small spaces like closets and bathrooms, which can overheat or cool down very quickly and cause HVAC unit to turn on and off unnecessarily often ("short cycling") - this is bad on the HVAC unit life, efficiency (it is "warming up" for 5 to 20 minutes, depending on the nature (A/C, heat pump, furnace, electric) and implementation), and electric or gas bill.

If the zone you set to non-voting status is satisfied before other zones are, it is a right thing to do.

Bad Case

This feature is not intended to take care of big rooms for the period when they are not occupied. This can be taken care by either setting those zones to "off" status, or lowering the setpoint (for heating) or raising it (for cooling).

If the zone you set to non-voting status still demands cool or heat after other zones are already satisfied, you're misusing the feature.

Sunday, January 3, 2010

Memory Leak Hunt: Aftermath

Q: How much memory does DZ need to run?

A: Within JVM, less than 6MB of heap memory and about 19MB of non-heap, total 25MB - that is with all the features turned on, including JMX and console. Take a look at the picture below.

-Xms4m -Xmx4m

At the same time, JVM takes 177MB virtual memory, 57MB resident, and 10MB shared.

Q: How are you planning to prevent memory leaks in the future?

A: Starting with the next release (3.3.2), DZ JVM will be artificially constrained (-Xms4m -Xmx4m) to make sure that if it blows out of memory, it does it very fast and the leak can be identified and reported immediately.

Q: Will it affect system performance?

A: A little bit, you probably shouldn't care. Garbage collection will be happening once every few minutes instead of once every few hours. After you've ran DZ for a few hours (a day for most paranoid) in minimal configuration, you can safely remove the restriction - instructions will be provided within dz-runner script. Keep in mind, though, that amount of memory that JVM is taking out of the system may be higher if you do that, now, that may affect the system performance.

Q: How did you find the leak?

A: It was a trivial sequence of jmap and jhat runs (details at Monitoring and Managing Java SE 6 Platform Applications). In addition, some small and frequent memory allocations in OWAPI were replaced with local variables, to reduce garbage collection chatter.

Q: You're saying the leak is gone, but I keep getting OutOfMemoryException!

A: Possible. Leak free status was verified for DZ core, 1-Wire sensor driver, and Parallax servo controller driver running on Sun's JDK 1.6.0_17 under Ubuntu 9.10. First thing you need to do is to submit a detailed report including your hardware and platform details. jmap file (see the above link) right after the start and some time before the OutOfMemoryException will be much appreciated.

Wednesday, December 16, 2009

FAQ: minimal sensor hardware

Q: What is the minimal set of sensor hardware do I need to run DZ on?

A: With some luck, you already have it. Look for a DZ entity called ShellSensor, it will allow you to use information provided by lm_sensors or hddtemp to feed the rest of DZ on.

Thursday, December 3, 2009

FAQ: Switch Between Heating & Cooling

Q: How do I switch DZ into heating or cooling mode?

A: For cooling, values of P and I for the PID controller associated with the thermostat have to be positive, for heating, negative.

IMPORTANT: Make sure that P and I values for all thermostats are on the same side, and that they are synchronized with the operation of the actual HVAC device, or you will have a runaway condition in zones that are on the wrong side. In other words, your HVAC will run forever.
Q: Why is it so complicated?

A: Because it makes things much, much simpler in the bigger picture, the time for which hasn't come yet - but I'm working on it.

Q:
Are you ever going to make it so normal people can use it?

A: Yes.

FAQ: Thermostat Sensitivity

Q: Default thermostat settings cause too much of a temperature swing, how do I make my thermostat more sensitive?

A: You increase the value of P for the PID controller associated with this thermostat. Default value of P (1.0) corresponds to a deadband from 1°C below the setpoint to 1°C above. Increasing P to 2 will cause that to change to a range from 0.5°C below the setpoint to 0.5°C above.

Likewise, if you want to dumb down your thermostat because the HVAC switches on and off too often, you need to decrease the value of P. However, be careful, for short cycling (the HVAC term for this phenomenon) may have different causes - but you'll be able to easily see the cause for them on charts DZ generates.

Q: Will there be a UI control for that?

A: Yes.

Thursday, November 19, 2009

DZ3 FAQ: Everything in Celsius?

Q: Why is everything in C°?
A: To avoid a disaster like this.

Q: Will I be able to specify setpoints and see display and monitoring data in F°?
A: Yes, the user interface will take care of this. Default units will be determined by where you are, you're likely to never notice anything.

Saturday, November 14, 2009

DZ3 FAQ: My servos growl and jump!

Q: I've used R/C servos to control my registers/dampers, just as you said, together with controllers that you told me to, but the servos growl even when they don't move!

A: Three causes are possible (ordered by probability):

  • Power is insufficient at the register/damper location, wiring is too weak. Run a 16 gauge speaker wire to it, and put a 470μF electrolytic capacitor from ground to power at each servo, this worked for me.
  • Register/damper is too tight for the servo you used. Either loosen it up mechanically and lubricate well, or use a higher torque servo.
  • Servo is getting old. Old setup I used to run 2001 to 2003 had no problems, but the same servos I used back then growl today, even though they haven't been used for last five years.
Q: Servos are jerking and generally misbehaving, why?

A: Control signal is too weak, servo doesn't recognize it as such anymore. Google up a "servo booster" (there are too many around to recommend anything specific) and install it at servo.

Tuesday, November 10, 2009

DZ3 FAQ: Tests break on my system!

DZ3 tests at this point may often be host specific and work only on the host DZ3 is being developed on. If a specific test breaks on your box, you have two options:

  • Modify the test to fit your system. The problem is often caused a different path (for example, /dev/ttyS0 instead of /dev/ttyUSB0). If it is bigger than that, simply removing the test will help.
  • Skip tests altogether by running mvn install -Dmaven.test.skip instead of mvn install.
If you think the test shouldn't break, please send me the diff(1), if any, between the original test and yours, and output from the test run, so I can investigate your problem and fix it.