CV besturing met de Arduino microcontroller

In plaats van de FHT8W (zie mijn voorgaande post op ) ben ik zelf aan de slag gegaan om mijn FHT kamerthermostaten aan de CV te koppelen. Voor wat hij biedt vind ik de FHT8W een vrij simpel (en duur) apparaat. Uitbreiden (bijvoorbeeld besturen via GSM of Internet) is niet mogelijk. De koppeling heb ik gemaakt op basis van een Arduino microcontroller. In dit geval een JeeNode USB. De JeeNode is compatible met de Arduino, draait op 3Volt en is voorzien van een 868Mhz zend en ontvang module (die het FHT signaal wel kan verzenden, maar jammergenoeg niet kan ontvangen). De pinnetjes van de JeeNode zijn zodanig gerangschikt in groepjes met steeds dezelfde layout. Dat is erg handig voor het aankoppelen van extra eletronica.

Functioneel bestaat de besturing uit de volgende componenten: Een ontvanger (RX-868, elv.de) voor het draadloze signaal van de FHT kamerthermostaten, Een optocoupler (4N35) waarmee de CV kan worden in of uitgeschakeld. Daartussen zit een JeeNode die het FHT signaal decodeerd, bepaalt of er warmtevraag is, en vervolgens de optocoupler aanstuurt. Die optocoupler is verbonden met de zgn. DIGI ingang van mijn Remeha Celcia 20 thermostaat. Als deze ingang wordt gesloten gaat de CV over naar de spaarstand. Schematisch ziet dit er als volgt uit:

In het schema is het niet aangegeven, maar de JeeNode wordt gevoed via de miniusb aansluiting. De optocoupler en de RX868 zijn op twee afzonderlijke pluggen gesoldeerd zodat deze zo op een JeeNode kunnen worden gezet. Hieronder de beide gesoldeerde pluggen

Na het in elkaar zetten ziet het geheel er zo uit (De JeeNode zit nu op de kop).

Bij het maken van de software op de JeeNode ben ik uitgegaan van het mooie voorbeeld van de JeeLabs website voor het werken met ‘OOK’ signalen. Dit voorbeeld heb ik uitgebreid met een decoder voor het FHT protocol. Meer informatie over het FHT protocol is beschikbaar op deze wiki. Om het zo simpel mogelijk te houden wordt alleen berichten met een ventielstand gebruikt (cmd = 0x06). Per kamerthermostaat wordt de laatst bekende ventielstand bijgehouden. Als minimaal 1 kamerthermostaat een ventiel heeft geopend wordt de DIGI ingang van de CV thermostaat gesloten, en gaat de CV aan.

Als voorbeeld hierbij de door mij gebruikte code in de vorm van een Arduino project.

CV_controller_20100211.zip

CV regelingen

Eerst een introductie over CV regelingen en programmeerbare kamerthermostaten.

Tegenwoordig bestaan er radiator-thermostaatkranen met een instelbaar programma. Hiermee is het mogelijk om ruimtes alleen te verwarmen op het moment dat dit nodig is (bijvoorbeeld alleen overdag). Een tijd geleden heb ik thermostaten van het FHT systeem (verkrijgbaar bij conrad geinstalleerd). Deze thermostaten bestaan uit een stelaandrijving en een wandthermostaat. De stelaandrijving wordt in plaats van een normale thermostaatkraan op de radiator wordt geschroefd. De wandthermostaat wordt aan de muur gehangen net zo als een ‘gewone’ thermostaat van de centrale verwarming (CV). De wandthermostaat meet de temperatuur, en verstuurd draadloos (868Mhz) de gewenste instelling naar de stelaandrijving. Op deze manier kan iedere ruimte worden voorzien van een eigen thermostaat regeling. De stelaandrijving en de kamerthermostaat worden gevoed met 2 AA batterijen. Die gaan verbazingwekkend lang mee (meer dan een jaar). Meestal vervang ik ze aan het begin van het stookseizoen.

Het is wel belangrijk om rekening te houden met het soort regeling van de CV. Die kan op twee manieren: op ruimte- of buitentemperatuur. Bij ruimteregeling (dit wordt het vaakst gebruikt) wordt de CV geregeld op basis van de temperatuur bij de CV thermostaat. In deze kamer zijn alle radiatoren volledig opengedraaid, en in de andere kamers kunnen al dan niet programmeerbare thermostaatkranen worden gebruikt. Dit systeem schijnt het meest zuinig te zijn. Een bekend nadeel is dat als de kamer van de thermostaat warm wordt door andere dingen dan de CV zelf (open haard, zon op het zuiden), de CV afslaat en de rest van het huis niet meer verwarmd wordt.

Bij regeling op basis van de buitentemperatuur wordt het leidingwater van de CV gestookt op basis van de buitentemperatuur (buiten kouder, binnen warmer water). Alle kamers kunen worden voorzien van programmeerbare kamerthermostaten. De regeling op basis van de buitentemperatuur schijnt minder efficient te zijn dan regeling op basis van ruimtetemperatuur. Dit wordt voornamelijk veroorzaakt omdat de CV niet direct weet of er warmtevraag is. De CV moet daarom continu water rondpompen. Dat kost energie (en geld). Moderne CV’s hebben de mogelijkheid om op bepaalde tijden (bijvoorbeeld s’nachts) de pomp minder vaak te laten draaien.

Tot voorheen had het FHT systeem geen mogelijkheid om de CV te laten weten of er warmtevraag is. Nu kan dit wel met de module FHT8W. Deze module werkt door enerzijds te `luisteren` naar het signaal dat alle kamerthermostaten naar hun stelaandrijvingen sturen. Als blijkt dat minimaal één stelaandrijvingen open is, kan de CV worden ingeschakeld. In de FHT8W zit een relais. Dit relais kan worden gekoppeld aan de digitale ingang van een moderne CV thermostaat. Onze CV thermostaat (Remeha Celcia 20) heeft zo’n digitale ingang. Sommige thermostaten van HoneyWell (ChronoTherm serie) hebben ook zo’n digitale ingang (daar heb ik zelf geen ervaring mee). Door het schakelen van de digitale ingang wordt de CV geforceerd in de spaarstaand gezet.

In plaats van een FHT8W te kopen ben ik zelf aan de gang gegaan om de koppeling tussen de kamerthermostaten en de CV te maken. Daarover later meer.