yorickpeterse / openflow

A ventilation system built around Itho Daalderop's DemandFlow system, written in Inko
Mozilla Public License 2.0
7 stars 0 forks source link

Controlling individual valves #6

Closed bf closed 4 months ago

bf commented 5 months ago

Hey, thanks for the great work!

I'm planning on getting an ITHO QualityFlow system and I want to know if your tool (and the ITHO wifi module) can only control the speed of the main ITHO unit or can you also control the individual valves?

I mean these: https://www.ventilationland.co.uk/en_GB/p/itho-demandflow-qualityflow-klep-per-stuk/6948/

Or does your software just emulate a CO2 sensor which is linked to a certain valve slot interally within the ITHO and then the ITHO controller takes over and changes the valve?

Thank you!

bf commented 5 months ago

Sorry it might have been a stupid question, it seems that the wifi module emulates virtual remote controls as described in https://github.com/arjenhiemstra/ithowifi/wiki/DemandFlow#a-step-by-step-guide-to-link-virtual-remotes-to-independent-rooms-from-the-demandflow

yorickpeterse commented 5 months ago

@bf The WiFi module provides an API that lets you control not only the speed of the ventilation unit (e.g. a HRU ECO series), but also the settings of the individual valves (the one you linked to). This project then uses said API in combination with a set of sensors to control the system as a whole, basically overruling the DF/QF system. It does however require a DF/QF box, because it uses that to control the valves. The resulting setup is something that looks like this:

example

Here the yellow box is a 3D printed case containing the WiFi module, connected to the DF/QF box with a short Cat6 cable. The resulting "flow" of information is then as follows:

flowchart TD
    openflow{Openflow} --> |Send commands, get status, etc| wifi{WiFi Module} --> dfqf{DF/QF box};
    dfqf --> |Control the speed| hru{HRU ECO};
    dfqf --> |Read the bathroom humidity| humidity{Humidity sensor};
    dfqf --> |Open or close the valves| valves{Valves};
    openflow --> |Read CO2 levels| co2{CO2 sensors};

Openflow then runs on something like a Raspberry Pi. I have it running on a small form factor computer hidden in the electrical closet ("meterkast").

I've been thinking about one day making a homebrew replacement for the DF/QF box as it's not always stable (I experience I2C errors every now and then, and once every few months need to reboot it), but based on some preliminary research it seems this would be rather expensive (due to the hardware needed to control all the servos), and involve quite a bit of soldering, building a case, etc. The errors don't occur that often, so it's not really been a priority anyway.

This means you'd need at least the following:

  1. A HRU ECO or similar device supported by the WiFi module
  2. A DF/QF box
  3. A bunch of valves, one for each room
  4. The Itho Daalderop humidity sensor, plugged into the DF/QF box
  5. One or more MoreSense CO2 sensors, one for each room
  6. One or more Philips Hue motion sensors (I use two: one for the bathroom, and one for the toilet), and a Philips Hue bridge. This is optional if you either run the bathroom/toilet at a fixed speed, or control them using a CO2 sensor.
  7. A computer to run Openflow on

Optionally you can also set up Grafana for monitoring, so you can set up dashboards like this:

image

I've been meaning to get rid of the motion sensors because they aren't great (the bridge in particular is very chatty with sending data to Philips, so you definitely want to block it from accessing the internet), and replace them with CO2 sensors. I've also been meaning to replace the Itho humidity sensor with one built into a MoreSense sensor, as the Itho sensor isn't great (expect it to report values either 5-10% above or below the actual value, with this somewhat randomly changing). I haven't done either because I just couldn't be bothered yet :)

yorickpeterse commented 5 months ago

Oh to add to that: if you get the WiFi module with the RF receiver, Openflow can use that to control ventilation in response to pushing a button.

Specifically, this is the configuration I'm using:

{
  "rooms": {
    "living_room": {
      "exhaust": 115,
      "co2": "192.168.1.247",
      "flow": {
        "correction": 1.05,
        "minimum": 0,
        "default": 20,
        "low": 30,
        "medium": 40,
        "medium_high": 60,
        "high": 80,
        "maximum": 90
      }
    },
    "kitchen": {
      "exhaust": 113,
      "co2": "192.168.1.247",
      "flow": {
        "correction": 1.05,
        "minimum": 0,
        "default": 20,
        "low": 30,
        "medium": 40,
        "medium_high": 60,
        "high": 80,
        "maximum": 90
      }
    },
    "extractor": {
      "exhaust": 112,
      "flow": {
        "correction": 1.05,
        "minimum": 0,
        "default": 0,
        "low": 40,
        "medium": 50,
        "medium_high": 65,
        "high": 75,
        "maximum": 100
      }
    },
    "toilet": {
      "exhaust": 114,
      "motion": 8,
      "flow": {
        "correction": 1.10,
        "minimum": 0,
        "default": 0,
        "low": 30,
        "medium": 50,
        "medium_high": 65,
        "high": 75,
        "maximum": 80
      }
    },
    "office_yorick": {
      "exhaust": 122,
      "co2": "192.168.1.245",
      "flow": {
        "correction": 1.0,
        "minimum": 0,
        "default": 20,
        "low": 40,
        "medium": 60,
        "medium_high": 75,
        "high": 85,
        "maximum": 95
      }
    },
    "office_REDACTED": {
      "exhaust": 120,
      "co2": "192.168.1.246",
      "flow": {
        "correction": 1.05,
        "minimum": 0,
        "default": 20,
        "low": 40,
        "medium": 60,
        "medium_high": 75,
        "high": 85,
        "maximum": 95
      }
    },
    "bedroom": {
      "exhaust": 121,
      "co2": "192.168.1.248",
      "co2_minimum": 600,
      "flow": {
        "correction": 1.05,
        "minimum": 0,
        "default": 20,
        "low": 35,
        "medium": 45,
        "medium_high": 65,
        "high": 80,
        "maximum": 110
      }
    },
    "bathroom": {
      "exhaust": 118,
      "motion": 17,
      "humidity": "RH bathroom 1 (%)",
      "flow": {
        "correction": 1.10,
        "minimum": 10,
        "default": 0,
        "low": 30,
        "medium": 50,
        "medium_high": 65,
        "high": 75,
        "maximum": 150
      }
    },
    "attic": {
      "exhaust": 117,
      "flow": {
        "correction": 1.0,
        "minimum": 0,
        "default": 0,
        "low": 40,
        "medium": 50,
        "medium_high": 65,
        "high": 75,
        "maximum": 50
      }
    }
  },
  "remote": {
    "id": "kitchen",
    "buttons": {
      "high": {
        "rooms": ["attic"],
        "duration": 10800
      },
      "cook30": {
        "rooms": ["extractor"],
        "duration": 3600
      },
      "cook60": {
        "rooms": ["extractor"],
        "duration": 7200
      },
      "timer1": {
        "rooms": ["kitchen", "living_room"],
        "duration": 10800
      },
      "timer2": {
        "rooms": ["office_yorick"],
        "duration": 10800
      }
    }
  },
  "humidity": {
    "high": 90,
    "low": 85,
    "correction": -5
  },
  "itho": {
    "ip": "192.168.1.240",
    "manual_id": 111,
    "speed_id": 124,
    "minimum_flow": 116,
    "maximum_flow": 350
  },
  "metrics": {
    "ip": "192.168.1.174",
    "port": 8089
  },
  "hue": {
    "ip": "192.168.1.5",
    "user": "..."
  }
}

You can't just copy everything though, as certain values need to actually be measured (e.g. the pressure loss between rooms, the humidity sensor correction, etc).

This means you'll need to get a air pressure/speed sensor as well, and create some sort of "enclosure" you can put around the exhaust such that all the air passes through the sensor. I just used a cardboard box with a hole in it, and taped the sensor to that. I used this sensor. The sensor measure in m/h or km/h (don't remember) but you need m3. There's a formula for that floating around on https://tweakers.net/ somewhere, but I recall it was something like measured speed x 2 for this particular sensor.

bf commented 5 months ago

Thank you very much for your quick answer!

I assume when you speak about "DF/QF box" you mean the Itho Daalderop DEMND Q-FL REGELR 12AANSL - 536-0414 controller which needs to be bought extra and mounted on the metal enclosure DF/QF plenum wandmontage 12 aansluitingen.

Unfortunately the form factor of the metal enclosure itself is a bit of a problem in my case. I was wondering if I could use the humidity readings from the moresense co2 sensors instead of using the itho sensor, and DIY a "DF/QF metal enclosure" and find a way to control the electric valves.

This would allow me to use one big pipe throughout the whole house and then have several openings in the pipe, and on each opening there would be an individual valve "Dem/Qual.Flow klep compleet, per stuk" mounted.

The latest ITHO product offering, the "duozone" system has these flexible valves already, and they don't need a specific controller. These valves can be mounted either right at the main ventilator device or at the end of the pipe, as per the manual. Unfortunately they only have 2 (duozone) or 4 (quadrozone).

Also there is an ITHO system which only removes air (cas optima) but for this they offer individual ventilation valves which are electronically controlled right at the end of the pipe.

So it'd be great if one could open and close these valves devices via API, either their modern version or the older DF/QF system. Do you know of any possibility to use any of these valves via API?

yorickpeterse commented 5 months ago

@bf

I assume when you speak about "DF/QF box" you mean the Itho Daalderop DEMND Q-FL REGELR 12AANSL - 536-0414 controller which needs to be bought extra and mounted on the metal enclosure DF/QF plenum wandmontage 12 aansluitingen.

Correct.

Unfortunately the form factor of the metal enclosure itself is a bit of a problem in my case. I was wondering if I could use the humidity readings from the moresense co2 sensors instead of using the itho sensor, and DIY a "DF/QF metal enclosure" and find a way to control the electric valves.

I know from the Tweakers forums that some people have managed to control the valves themselves by buying the appropriate servo stepping motor, but I haven't looked into this myself. The Itho humidity sensor is just a wire you plug into the DF/QF box on one end, and stick into one of the valve connectors (the blue circle thingies) on the other end. The MoreSense sensors have the option for an optional humidity sensor, but Openflow currently has no support for reading and using that data as I didn't include this option when I bought the sensors.

This would allow me to use one big pipe throughout the whole house and then have several openings in the pipe, and on each opening there would be an individual valve "Dem/Qual.Flow klep compleet, per stuk" mounted.

The usual setup is that each room has its own individual pipe leading up to the floor the metal box is in. For the last 1m or so you then use flexible tubings (get the "Sonodec non-woven" ones, the ones that Itho sells are shit) to connect the fixed pipes to the metal box.

If you're running a single long exhaust pipe and only connect rooms very close to that pipe, I suspect you'll run into significant pressure loss/differences based on what rooms are ventilated. I also suspect you'll need a rather big pipe to combat noise, as you'll end up funneling more air/pressure through a single pipe (= bigger means less noise).

Based on what you've explained so far, it seems you currently don't have an Itho ventilation system. In this case I'd actually recommend against using Itho hardware and instead go Zehnder. Zehnder has a similar system, but unlike Itho actually uses room-specific CO2 sensors instead of the braindead "single sensor for the entire house" setup Itho uses, though I'm pretty sure Zehnder's sensors are not NDIR sensors given how compact they are (meaning they won't be accurate).

Zehnder's valves should also be a bit more quiet based on the mechanism they use (basically a rotating lid, instead of a cover that "screws" into the hole). The motors Itho uses make a distinct "bzzzt" noise you can hear two floors down through the pipes.

Zehnder also sells an official module you can use to control the system remotely, instead of requiring homebrew solutions. I haven't actually used this thoug, so I can't comment on how useful it is.

Openflow in turn is really meant for the case of "I have an existing Itho system and I don't want to spend €5000 to replace it with something sane", it's not a generic "hook it up to any ventilation system" kind of setup.

bf commented 5 months ago

Thanks again and sorry for going off-topic :)

Based on what you've explained so far, it seems you currently don't have an Itho ventilation system. In this case I'd actually recommend against using Itho hardware and instead go Zehnder. Zehnder has a similar system, but unlike Itho actually uses room-specific CO2 sensors instead of the braindead "single sensor for the entire house" setup Itho uses, though I'm pretty sure Zehnder's sensors are not NDIR sensors given how compact they are (meaning they won't be accurate).

This is a funny coincidence, but today I called Zehnder Germany and asked their salesperson if they have a solution with individual CO2 sensor in each room and individual valves for each room. He said he has never heard of such thing and they only do stuff according to DIN norms (German industry-written norms). I told him about the ITHO system and the electrically controlled valves and he said they don't have electrically controlled vales and they only do the initial calculation/measurement of air flow according to German norms, and that air flow stays the same no matter how many people are in the room.

When I asked him about the CO2 sensor of Zehnder he said that if one room measures high CO2, it will increase speed of the whole system, e.g. suck out air from non-occupied rooms as well instead of just focusing the air flow on the room which has actually high CO2 reading.

So I did a deep dive into ITHO because it seemed to me nobody else is offering the electrically controlled valves.

Do you have a specific Zehnder product in mind? Unfortunately the Tweakers forum is not in English language and it's hard for me to discover things there.

yorickpeterse commented 5 months ago

@bf The last time I looked into Zehnder, I thought of the following setup:

Mind you I haven't looked too deeply into this system yet. My plan was to basically find a reputable dealer at some point and have them figure out what I need, based on my requirements (quiet, remotely controllable, etc).

bf commented 5 months ago

Thanks for your answer. I've looked at it yesterday but it seems Zehnder is not pushing this kind of product for the German market. The technical drawings at https://www.123installatieshop.nl/files/92/5B/81E18DBFAD98.pdf show that their wall-mounted CO2 sensorss provide the 0-10V that is needed in order to control the duct damper motor. It is a clever system, but still a bit expensive (1000€ for two rooms).

I've done a lot of research and currently I am deciding between the basic WIFI-controlled hvac damper with ON/OFF setting or getting a "smart vent" from keen or flair (or whoever is the current best, most open product in that category).

Do you know if the ITHO ECO 350 balances ventilation speed and air volumes of intake/exhaust the same as the Zehnder ComfoAir Q350 can?

yorickpeterse commented 4 months ago

@bf The ECO 350 runs at a maximum of 350 m3/h, which is the same as the Q350 I believe.

Do keep in mind that Itho's products tend to be rather loud, even when advertised as "quiet". I ended up having to make a wooden box around the unit and fill that with insulation, in order to keep the noise under control (it's a bit of a hack job due to the flexible tubing preventing me from fully enclosing the unit). Don't get me started about their heat pumps :smile:

As an aside, Itho doesn't sell any units with a enthalpy exchanger if I'm not mistaken. This means that during the dry winter months you'll end up with very dry indoor air. This winter I measured the lowest value to be around 30% indoors. Similarly, in the humid summer months you'll get the opposite effect as there's no humidity removal system, though for that you'd need a separate airco-like unit anyway.

You might also want to look into Orcon and Brink, as they too sell ventilation systems with a heat exchanger. I have no idea if they support any kind of zoning system though, nor do I know anything about their noise levels.

Either way, the software here isn't meant to control arbitrary setups using custom hardware. For that you probably need to build your own setup using something like Home Assistant.

yorickpeterse commented 4 months ago

Given that there's nothing to do here from Openflow's side of things, I'll close this issue :smiley: