Je kachel aansturen met pimatic, de basics

Door Koffie op maandag 6 april 2015 09:52 - Reacties (19)
Categorie: -, Views: 15.716

Na de vele artikelen over homeautomation, is het weer eens een tijd voor een stukje van mijn kant :)

In deze blog wil ik beginnen met het behandelen van aansturing van je kachel door middel van pimatic. Ik ga er vanuit dat je stadsverwarming of een normale CV met thermostaat hebt. Dus geen opentherm toestanden oid. Twijfel je ? Trek je thermostaat van de muur en kijk hoeveel draden er van je thermostaat naar je ketel gaan. Indien dit er 2 zijn, zit je goed :Y)

Wat heb ik allemaal nodig :?
- Raspberry Pi met pimatic geïnstalleerd
- 1 relay (bijvoorbeeld : http://r.ebay.com/1RNzF8 )
- 1 temperatuursensor (DS18B20 + 4.7K weerstand of zelfbouw)
- Diverse kabeltjes (handjevol jumperwires en bijvoorbeeld UTP)

Stap 1 : De CV aansluiten aansluiten
Als allereerste haal je de huidige thermostaat van de muur af, die gaan we niet meer nodig hebben. Straks kun je daar een prachtige tablet hangen om je hele huis aan te sturen.
Laat de kabel zitten, deze hebben we wellicht nog nodig. Sowieso : liever bekabeling nutteloos laten zitten dan dat je een jaar later een probleem hebt omdat er geen kabel meer in de leiding te krijgen is.
De kabel die aan je thermostaat zat, loopt helemaal door naar je CV of stadsverwarmingsklep. De vraag is : waar gaat de Raspberry Pi komen?
Er is geen noodzaak om de Pi in de woonkamer te hangen, dus waarom niet gewoon lekker bij je CV plaatsen?
En nu komt die kabel die er al lag mooi van pas. We kunnen (indien je dat wilt) deze kabel hergebruiken voor de temperatuursensor. Controleer eerst hoeveel aders er van de muur naar je CV gaan. Indien dit er echt maar 2 zijn, zul je de kabel moeten vervangen. Voor de DS18B20 sensor hebben we minimaal 3 aders nodig.
Haal eerst de 2 aders van je CV af, en vervang deze voor 2 nieuwe aders (bijvoorbeeld een stukje UTP).
Verbind de andere kant van de 2 aders aan je relay.
Afhankelijk van je relay heb je verschillende aansluitmogelijkheden. Indien je 3 terminalschroeven hebt, zorg er dan voor dat 1 ader in de COM zit en de andere in de NO. Op deze manier zal je relay zonder tussenkomst van pimatic in een verbroken toestand staan.
Aan de andere kant van je relay zul je hoogstwaarschijnlijk 3 terrminalschroeven hebben : DC+ , DC- en CH1 (of VCC en GND ipv DC).
Verbind de VCC of DC+ met de 5v pin van je Raspberry Pi, en verbind de DC- of GND met de GND van je Raspberry Pi.
Verbind CH1 met GPIO0 van je Raspberry Pi (dat is BCM GPIO nummer 17).
De eerste stap is nu gezet, je ketel is verbonden met je Raspberry Pi :Y)

Voordat we verder gaan, testen we eerst of alles goed werkt. Zorg dat je pimatic goed hebt werken en installeer indien nodig de GPIO plugin.
Zet het volgende stuk code in je config, onder de devices sectie.

code:
1
2
3
4
5
6
    {
      "id": "warmte",
      "class": "GpioSwitch",
      "name": "warmte",
      "gpio": 17
    },


Sla de wijzigingen op en reboot pimatic. Je hebt nu een ON/OFF device met de naam warmte in je installatie. Voeg de knop toe aan je GUI en test de knop uit. Wanneer je deze op ON zet, zal de klep van je stadsverwarming open moeten gaan. Indien je een ketel hebt, zal deze moeten gaan branden.
Gebeurt er niets? Controleer dan je bedrading tussen de Raspberry Pi, relay en CV nogmaals goed.

Stap 2 : Temperatuur in de woonkamer meten
We kunnen nu de CV aan en uit zetten wanneer we maar willen. Victory! Tijd om een stap verder te gaan, we willen namelijk ook weten hoeveel graden het in de woonkamer is.
De makkelijkste manier om de sensor op te hangen op de plek van je oude thermostaat. Er zit al een gaatje in de muur, en er loopt al een kabel naar de CV (waar je Raspberry Pi hangt).
Verbind de 3 pootjes van de sensor aan de 3 aders van je kabel. Onthoud welke kleur aan welk pootje.
Kijk naar het plaatje voor de juiste layout :

http://zooi.oostindie.com/images/247ds18b20_pinout.gif

Aan de andere kant van de kabel hebben we nog 1 onderdeel nodig : een weerstand van 4.7K. Plaats de weerstand tussen de VCC en de data (middeslte poot):

http://zooi.oostindie.com/images/736sensor_connection.png

Verbind vervolgens de VCC aan de 3.3V van de Raspberry Pi, de GND aan de GDN en de data aan GPIO 4 (BCM GPIO 23).
Zorg dat je de DS18B20 plugin geïnstalleerd hebt op Pimatic en pas je modules bestand aan:

sudo nano /etc/modules


Voeg de volgende regels toe:
code:
1
2
w1-gpio
w1-therm

Reboot je Raspberry Pi en kijk of de sensor gevonden word:

cd /sys/bus/w1/devices
ls -l

Je ziet nu 2 directorys, 1 daarvan ziet er zo uit 28-xxxxxxxxxxxx
Indien je geen directory met 28-xxxxxxxxxxxx ziet , klopt je bedrading niet. Controleer deze. Is je sensor gloeiend heet? Dan heb je de VCC en GND omgedraaid of zit je weerstand niet goed. De sensor kun je dan weggooien :(
Onthoud het volledige 28-xxxxxxxxxxxx nummer.

Mocht je meerdere DS18B20 sensors willen toevoegen, dan kan dat. Onthoud goed : alle sensors moeten op 1 kabel met slechts 1 weerstand. Je mag er meerder op 1 lange kabel plaatsen, of vanuit de Raspberry Pi als een soort ster netwerk.
Elke keer als je een nieuwe sensor toevoegt, zul ju op bovenstaande manier het ID moeten achterhalen.

Zet het volgende stuk code in je config, onder de devices sectie.

code:
1
2
3
4
5
6
7
{
  "id": "woonkamer-sensor",
  "name": "Woonkamer",
  "class": "DS18B20Sensor",
  "hardwareId": "28-xxxxxxxxxxxx ",
  "interval": 60000
}


Waarbij 28-xxxxxxxxxxxx dus het eerder onthouden ID van je sensor is.
Sla de wijzigingen op en reboot pimatic. Je hebt nu een temperatuur device met de naam Woonkamer in je installatie. Voeg de sensor toe aan je GUI. Je moet nu de temperatuur van de woonkamer zien.

Stap 3 : Warmte schakelen op basis van omgeving
Nu begint het leuk te worden. We kunnen nu de CV aan of uit zetten wanneer we dat willen, en we kunnen ook nog eens de temperatuur in de woonkamer meten. De Raspberry Pi is ineens een slimme thermostaat geworden :Y)
Door middel van rules kun je nu de CV aan of uit zetten. Je kunt hier zo creatief in zijn als je zelf wil. In een volgende blog ga ik dieper in op de aansturing van je CV om dit zo slim mogelijk en gebruikersvriendelijk mogelijk te doen.

Het lukt niet, ik snap het niet, ik heb hulp nodig! :?
Als je vragen hebt, kun je deze beter in het pimatic topic stellen : het grote pimatic topic - home domotica met je Raspberry Pi
Dat is makkelijker dan her te behandelen (je bereikt ook een groter publiek dan alleen Koffie :P ).

Inhoudelijk reacties op specifiek dit artikel kunnen uiteraard gewoon in de comments.

=[UPDATE]=
Deel 2 is nu ook online: Koffie's tweakblog: Je kachel aansturen met pimatic, een echte thermostaat

(stads)verwarming draadloos schakelen

Door Koffie op woensdag 12 november 2014 21:31 - Reacties (17)
Categorie: -, Views: 8.936

Zoals nu toch wel bekend zou moeten zijn, stuur ik mijn verlichting en verwarming aan met een Raspberry Pi en pimatic. Nog niet mee bekend? Kijk dan vlug bij mijn andere blogs.

Mijn manier van verwarming aansturen verschilt iets van die van de meeste: wij zitten namelijk opgezadeld met stadsverwarming.
Dat betekend dat er simpelweg een gesloten circuit voor mijn radiators in huis aanwezig is, met een aan- en afvoer van heet water van de nuon.
Toen wij dit huis kochten was er niets geregeld om dit te sturen. Geen thermostaat en ook geen afsluiter.
Wij hebben toen direct een honeywell klep op de aanvoer laten zetten, zodat we deze met een normale thermostaat konden bedienen.

Een van de allereerste dingen die ik automatiseerde in huis was dan ook deze afsluiter.
In plaats van een thermostaat, was het nu een relay die de afsluiter open of dicht zette.
Dit heeft tot nu toe altijd prima gewerkt, maar had toch wel 2 nadelen:
- De Raspberry Pi moest in de buurt van het relay geplaatst worden om zo de GPIO rechtstreeks aan het relay te hangen
- Bij een major storing op de Raspberry Pi kan ik de verwarming niet handmatig aanzetten.

Om dit op te lossen heb ik een attiny samen met een RF zender en ontvanger op een klein breadboardje geplaatst. Vervolgens het relay op dezelfde attiny aangesloten en vervolgens afgemaakt met een stukje software.

De attiny reageert op een normaal klik aan klik uit adres van mijn afstandsbediening. Wanneer er een ON signaal ontvangen word, gaat het relay aan. Word er een OFF signaal ontvangen gaat hij weer uit.
Als extra zekerheid word er 5 seconden na het ontvangen van het signaal een antwoord teruggestuurd. Dit antwoord is wederom KaKu, maar nu een ander adres met dezelfdestate als ontvangen is.
Doordat er nu een bevestiging teruggestuurd word, kan ik in pimatic rules maken die een nieuwe poging doen wanneer er na het versturen geen antwoord is ontvangen. Bij een 2e milsukte poging word er dan een alert via push-over verstuurd.

Door bewust een adres van mijn bestaande KaKu afstandsbediening te gebruiken, weet ik zeker dat ik altijd makkelijk met de hand de kachel kan overrulen als er een probleem met de Raspberry Pi is.

Attiny sketch, inclusief pin bezetting, en libraries staan op github: https://github.com/koffienl/attiny-kaku

Foto's en video (let niet op de bende in de meterkast :+ ) :

http://zooi.oostindie.com/images/6042014_11_12_20_tn.55_tn.38_tn.jpg http://zooi.oostindie.com/images/7592014_11_12_20_tn.56_tn.13_tn.jpg

Native RF zenden en ontvangen met pimatic

Door Koffie op vrijdag 7 november 2014 21:46 - Reacties (43)
Categorie: -, Views: 28.112

Na mijn vorige blog over pimatic is er al weer een hoop gebeurt.
Inmiddels is er een eigen topic op het forum: het grote pimatic topic - home domotica met je Raspberry Pi en beik volledig overgestapt van zenden en ontvangen via pilight naar pimatic.

Het is misschien iets moeilijker dan gewoon een zender en ontvanger aan je pi knopen, maar het levert een hoop voordelen op. Zo is mijn CPU verbruik gezakt van gemiddeld 50% naar gemiddeld 5% :Y)

Wat heb ik allemaal nodig :?
Eigenlijk niet veel. Om te beginnen een goed setje RF zender en ontvanger (liefst type "433MHz Superheterodyne") en een Arduino Nano clone. That's it.
Een nano clone is al voor een dollar of 4 te koop op ebay, dus dat zijn de kosten niet.

Hoe sluit ik het allemaal aan :?
Het makkelijkste is om de zender, ontvanger en arduino op een breadboard te plaatsen, en deze vervolgens met jumperwires met elkaar te verbinden.
Hoewel je verschillende pinnen van je arduino kunt gebruiken, is het 't makkelijkst om de standaard te volgen:

http://zooi.oostindie.com/images/862pins_nano.png

Je ontvanger heeft als het goed is 4 pinnen: GND, DATA, DER, VCC
Wij hebben alleen de GND, DATA en VCC nodig. Sluit de GND aan op pin 29 GND, sluit DATA aan op pin 5 D2 en de VCC op pin 27 +5V

Je zender heeft er ook 4 : VCC, DATA, GND, ANT
Sluit de VCC aan op pin 27 +5V, de DATA op pin 7 D4 en de GND op png 29 GND.
Eventueel kun je een jumperwire op de ANT plaatsen.

Sluit vervolgens de nano aan op de USB port van je Raspberry Pi, dubbelcheck dat deze ttyUSB0 toegewezen heeft gekregen:
pi@raspberrypi ~ $ cd /dev
pi@raspberrypi /dev $ ls -l ttyUSB?
crw-rw---T 1 root dialout 188, 0 Nov  7 20:26 ttyUSB0
pi@raspberrypi /dev $


Indien je geen andere gekke dingen aan je Pi hebt hangen zal deze gewoon ttyUSB0 zijn.

Software compileren en naar je Arduino Nano uploaded
Voordat we verder kunnen, hebben we arduino-mk nodig: sudo apt-get install arduino-core avr-libc avrdude binutils-avr gcc-avr libconfig-yaml-perl libftdi1 libyaml-perl screen python-serial.
Na installatie kun je de sketch file downloden: git clone --recursive https://github.com/pimatic/homeduino.git

Bewerk nu met nano het Makefile bestand in de homeduino folder. Er van uitgaande dat je een Arduino Nano Clone op basis van een ATmega328 hebt, kun je de BOARD_TAG gewoon op nano328 laten staan.
Let even goed op de setting MONIOR_PORT deze staat default op /dev/ttyUSB1 terwijl de kans dus groot is dat deze op /dev/ttyUSB0 moet staan.
Sla je wijzigingen op en run het command make upload.

Pimatic configuratie aanpassen
Je hebt nu nog de volgende aanpassingen nodig in je config.json :
code:
1
2
3
4
5
6
7
8
9
10
{
  "plugin": "homeduino",
  "driver": "serialport",
  "driverOptions": {
    "serialDevice": "/dev/ttyUSB0",
    "baudrate": 115200
  },
  "receiverPin": 0,
  "transmitterPin": 4
}


Let hier weer op de ttyUSB0 ;)
De receiverpin en transmitterpin zijn gelijk aan de pinnen van deze handleiding.
Als je nu ook nog debug aan zet in je config, zul je in de logfile alle receives voorbij zien komen:
code:
1
2
3
  "settings": {
    "debug": true,
    "logLevel": "debug",


Sla je wijzigingen op en start pimatic. Bekijk nu je logstream door middel van tail -f pimatic-daemon.log als je nu bijvoorbeeld een KaKu commando verstuurd zul je deze voorbij zien komen:
20:42:47.990 [pimatic-homeduino] debug: switch1:  { id: 9565958, all: false, state: true, unit: 1 }
20:42:48.022 [pimatic-homeduino] debug: contact1:  { id: 9565958, all: false, state: true, unit: 1 }
20:42:48.603 [pimatic-homeduino] debug: data: "RF receive 270 2716 1363 10620 0 0 0 0 010002000202000002000202000002000200020200020002000200020000020200020002000002000200020002000202000200000200020200000200020002020003"


Als je nu een KaKu switch aan je config wil toevoegen, gebruik je het volgende voorbeeld:

code:
1
2
3
4
5
6
7
8
9
10
11
12
{
  "id": "rfswitch",
  "name": "RFSwitch",
  "class": "HomeduinoRFSwitch",
  "protocols": [{
    "name": "switch1",
    "options": {
      "id": 42,
      "unit": 0
    }
  }]
}


Voor een complete lijst van ondersteunde protocollen kun je hier even kijken: https://github.com/pimati.../blob/master/protocols.md

Een van de protocollen die direct mijn aandacht trok is het zogenoemde generic protocol. Met dit ptocol kun je een ID, sensornummer en value versturen.
Oftewel : een volledig build-in protocol voor mijn draadloze tempereatuur sensor :Y)
Geen gedoe meer met een protocol in pilight welke weer omgecat moet worden tot een generic_weather welke weer door pimatic-pilight plugin opgepikt word, maar gewoon rechtstreeks een temperatuur naar pimatig sturen.
Inmiddels draait mijn bestaande sensor op de aangepaste code, maar meer daarover in een andere blogpost.


Resources:
https://github.com/Yves911/generic_433_sender
https://github.com/pimatic/homeduino
https://github.com/pimatic/pimatic-homeduino
https://github.com/pimati.../blob/master/protocols.md
http://r.ebay.com/WucSA6 (Arduino Nano)
http://r.ebay.com/Abfrlq (433 Mhz Superheterodyne)
https://github.com/pimatic/pimatic/issues
het grote pimatic topic - home domotica met je Raspberry Pi

Prototype pimatic-homeduino zender/ontvanger met antenne:
http://zooi.oostindie.com/images/3092014_10_30_19_tn.25_tn.34_tn.jpg http://zooi.oostindie.com/images/2302014_11_05_09_tn.14_tn.08_tn.jpg

Home automation met Pimatic

Door Koffie op woensdag 15 oktober 2014 20:39 - Reacties (42)
Categorie: -, Views: 27.653

Al enkele keren heb ik wat posts gemaakt over home automation met een Raspberry Pi. In het begin gebruikte ik hiervoor Pilight, maar inmiddels ben ik bijna helemaal overgestapt op Pimatic.
Het bijna gedeelte zal ik straks uitleggen ;)

Zoals gezegd: voorheen gebruikte ik pilight als service voor het aansturen van diverse RF devices. Aansturing van dit alles gebeurde met pimatic.
Er waren al wat experimenten om RF rechtstreeks aan te sturen vanuit pimatic, maar sinds begin deze week kan dat ook rechtstreeks via een RF 433 sender en receiver op de GPIO pinnen.

De eerste test zijn veelbelovend te noemen, op wat kleine problemen met KaKu na werkt zenden en ontvangen vlekkeloos. Zonder arduino of filter.
Wanneer mijn KaKu deurcontact goed functioneert, kan ik pilight volledig loslaten en alles via pimatic laten lopen, wel zo makkelijk :Y)

Wat kan pimatic dan wel niet allemaal ?
De allergrootste kracht (en de reden van mijn overstap) is het zogenoemde rules systeem. Door middel van rules kun je pimatic van alles laten uitvoeren - of juist niet :)
Een simpel voorbeeld
code:
1
IF it is after 08:00 THEN turn lamp1 on


Cool he?! Je kunt nu niet alleen je lampen via je browser aan of uit zetten, je kun het nu ook schedulen. Nog leuker word het om allerlei randvoorwaarden aan je rules te koppelen:
code:
1
IF lamp1 is turned off THEN turn lamp2 off

Oftewel : wanneer ik de ene lamp uitzet, ze dan de andere ook uit.

Plugins
Het tweede ijzersterke punt van pimatic is het plugin systeem.
Pimatic beschikt inmiddels over een aardig groeiende lijst met plugins die allemaal ook weer in de rules gebruikt kunnen worden.
Een greep van de plugins die ik gebruik:
• Cron (voor het kunnen sturen op basis van tijd)
• GPIO (voor het rechtstreeks aansturen van een GPIO, of kijken of deze wel of niet verbonden zijn)
• pilight (Vrijwel alle devices van pilight kunnen geïmporteerd en bestuurd worden)
• ping (is een device wel of niet bereikbaar?)
• pushover (Stuur berichtjes middels de pushover API naar je telefoon)
• Mail (Verstuur mail)
• shell-execute (uitvoeren van CMD opdrachten)
• sunrise (Een skala aan zonsop- en ondergang momenten op basis van locatie
• sysinfo (monitor CPU temp, CPU load, memory load, disksize en pimatic DB size)
• weather (Weersinformatie en voorspelling).

User en role systeem
Sinds enige tijd beschikt pimatic over een user en role systeem. Je kunt een oneindig aantal users defineren, samen met een oneinding aantal roles.
Vervolgens koppel je een user aan een role:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    {
      "name": "resident",
      "permissions": {
        "pages": "read",
        "rules": "read",
        "variables": "read",
        "messages": "read",
        "events": "read",
        "devices": "none",
        "groups": "none",
        "plugins": "none",
        "updates": "none",
        "controlDevices": true,
        "restart": false
      }

Zoals je ziet kun je dus door middel van een role een gebruiker behoorlijk afschermen van allerlei functies.

Cool, hoe ziet dat er nu uit?
Op dit moment ziet mijn pimatic er zo uit:

http://zooi.oostindie.com/images/396pimatic01_tn.jpg

Door het aanmaken van diverse pages (tabbladen) en groups (verdelingen over de pages) kun je alles naar eigen inzicht rangschikken.
Het mooie is ook dat een device niet zichtbaar op een pagina hoeft te staan om aangesproken te kunnen worden.
Een device is bekend (en aanspreekbaar) binnen het pimatic systeem, maar is dan nog standaard nog niet zichtbaar. Een device kan ook op meerdere pages geplaatst worden. Zo zou je dus voor elk vertrek een pagina kunnen maken, voorzien van de locatiegebonden devices. En vervolgens een page genaamd 'Favorieten' waar je de meest gebruikte devices bij elkaar zet :)

Vertel nog eens meer over die rules?
Het mooie van de rules is, dat je diverse plugins en devices kunt gebruiken. Zo heb ik een rule om mijn kachel naar 18 graden te zetten na 10 uur 's avonds, echter niet zolang de verlichting nog in gebruik is:
code:
1
IF it is after 22:00 and beneden-thermostaat-runprogram is on and pilight-Beneden-dressoir is off THEN $BenedenTemperatuurInstelling = 18

Dit vanuit de gedachtegang dat als de verlichting nog aan is, ik waarschijnlijk nog niet naar bed ben (en dus niet in de kou wilt zitten)

Het wil soms wel eens voorkomen dat per ongeluk de voeding van mijn draadloze temperatuur sensor losgetrokken word. Om nu te voorkomen dat pimatic ten onrechte denkt dat het heel lang te koud of te warm is, heb ik een rule gemaakt die mij hiervoor waarschuwt :
code:
1
IF temperature of pilight-thermostaat-woonkamerwireless was not updated for 1 hour THEN push title:"Temperature sensor error" message:"Woonkamer wireless is not update since 1 hour" and $BenedenStopWarmte = $BenedenStopWarmte + 1

Als extra veiligheid word de variabele $BenedenStopWarmte opgehoogd met 1. Er zit namelijk een beveiliging in het aansturen van de kachel, Zodra deze variabele hoger is dan 0 word er onherroepelijk gestopt met verwarmen en zal deze ook niet langer verwarmen, totdat deze variabele minstens 5 minuten 0 is.

Een andere rule die zorgt voor het ophogen van deze variabele:
code:
1
IF contact of pilight-Beneden-tuindeur = opened THEN $BenedenStopWarmte = $BenedenStopWarmte + 1


Met dus de volgende rule om te zorgen dat de kachel per direct gestopt word:
code:
1
IF $BenedenStopWarmte > 0 and warmte is on THEN turn warmte off


Waar gebruik jij zelf pimatic nu allemaal voor?
Zelf heb ik 2 onafhankelijke Raspberry Pi's draaien. Eentje in de meterkast voor het aansturen van alle verlichting en de kachel.
Deze leunt nu nog op pilight, maar zal deze week waarschijnlijk volledig op pimatic gaan draaien.

Een tweede Raspberry Pi hangt in de schuur om alles wat maar met het zwembad te maken heeft aan te sturen.
Voor het dagelijks laten draaien van de filterpomp en zoutelectrolyse hoef ik niets meer te doen, dit gaat volledig automatisch. Ook aansturing van verwarming gebeurt via deze installatie, op basis van 2 temperatuursensoren in de waterleidingen.

Hoe installeer ik pimatic?
Installatie is relatief eenvoudig en word hier besproken

Na installatie kun je de homeduino plugin installeren met het commando sudo npm install pimatic-homeduino
Onder de sectie plugins in je config.json plaats je dan de volgende config:
code:
1
2
3
4
5
6
7
    {
      "plugin": "homeduino",
      "driver": "gpio",
      "driverOptions": {},
      "receiverPin": 16,
      "transmitterPin": 15
    }


Waarbij de pin nummering op basis van WiringPi nummering is.

Het gaat te ver om nu alles voor te kauwen in deze blog. Kijk eens rond op de site van pimatic of de issues pagina op github: https://github.com/pimatic/pimatic/issues

Mocht je ergens vragen over hebben, stel ze dan daar of hier in de comments op deze blog maar gelieve geen PM's te sturen met vragen ;)

Update: nog wat coole shizzle die je pimatic kan doen

Mijn zwembad heeft een LED RGB lamp met iets van 15 verschillende standen. Wanneer je de lamp uit zet en binnen x seconden weer aan, is dat een teken voor de lamp om naar het volgende programma te schieten. Zou je langer dan x seconden wachten, blijft hij gewoon bij het huidige programma.
Van begon af aan had ik dus al een knop 'volgend programma' die er voor zorgde dat de lamp uitging en na 1 seconde weer aan.
Later heb ik dit uitgebreid door er een variabele aan te koppelen. Elke keer als er op die knop gedrukt word, word de variabele met +1 opgehoogd.
Een andere rule zorgt er voor dat deze variabele nooit meer dan 15 kan worden, en dus na 15 weer naar 1 schiet.

Van de 15 mogelijke standen heb ik 2 favorieten : volledig wit en een stand waar de lamp heel rustig van kleur naar kleur verloopt.
Vervolgens 2 knoppen gemaakt "wit" en "kleuren programma". Wanneer 1 van die knoppen word ingedrukt, zal een rule net zo lang de lamp aan en weer uit zetten tot het gewenste programma is bereikt (lees: de variabele de juiste inhoud heeft).




Dit is nog een ouder filmpje waar het aansturen van een LCD met python ging, inmiddels kan pimatic rechtstreeks een LCD aansturen: op basis van rules kun je dus verschillende tekst laten zien.



Wanneer pimatic ziet dat er op de knop gedrukt word, stuur ik een python (pi-blaster) script aan die met soft PWM de LED ring van die kop aan of uit zet. Vervolgens word er nog een status info op het LCD gezet.

Building the dream

Door Koffie op donderdag 3 juli 2014 16:06 - Reacties (34)
Categorie: -, Views: 10.513

In de afgelopen weken is een langgekoesterde wens van ons gerealiseerd : het bouwen een eigen zwembad :Y)

Het bouwen van een zwembad en alles wat daarbij komt kijken is iets wat je niet zomaar even doet. Er is veel tijd gegaan in het uitzoeken, afwegen, rekenen en plannen.
Voordat je überhaupt ook maar 1 schep in de grond zet zul je moeten beslissen wat voor type bad je nu eigenlijk wilt hebben.
Grofweg zijn er 3 type baden:

Monoblock/polyester kuip
De meest makkelijke manier een om een bad te plaatsen. Vanaf de fabriek word een grote bak/kuip geleverd welke je alleen nog maar 'even' in de grond hoeft te plaatsen.

http://zooi.oostindie.com/images/328Polyester_zwembad_ibiz_tn.jpg

Ovale stalen wand
Voor dit type bad hoef je alleen 2 steunmuren te maken op de beide lange zijden, vervolgens plaats je een stalen wand tussen de muren, waardoor deze vanzelf ovaal zal gaan staan.

http://zooi.oostindie.com/images/145staalwand_tn.jpg

Bouwkundig bad
De term bouwkundig bas is wat divers maar komt er eigenlijk ook neer dat je van scratch af aan een bak/kuip opbouwt. Meestal is dit met grote betonblokken of styropor bouwstenen.

http://zooi.oostindie.com/images/809Styropor_Gerade_03_300_tn.jpg

Een monoblock viel voor ons af vanwege de prijs en het feit dat deze nogal snel omhoog kunnen 'drijven' bij leegstand en hoog grondwater.
Onze eerste keuze was een stalen wand, maar in overleg met de leverancier hebben we hier vanaf gezien. Bij ons hebben we nogal last van grondwater, en waren toch wel bang dat dit een probleem voor de relatief dunne zou kunnen zijn.
Uiteindelijk hebben we dus gekozen voor een bouwkundig bad.
En dan begint het rekenen, wikken/wegen en uitzoeken in het kwadraat :+

De plek waar het bad globaal moest komen wiste we al, maar nu begon het echte meten. Met touwtjes hebben we een rechthoek van 8 x 4 meter uitgezet

http://zooi.oostindie.com/images/9382013_09_01_11_tn.25_tn.40_tn.jpg http://zooi.oostindie.com/images/1442013_09_01_11_tn.28_tn.39_tn.jpg

Het plan was om pas tegen de zomer te beginnen met de bouw, ook om het financiële plaatje op orde te krijgen.
In de tussentijd kon ik mooi beginnen met alle informatie op te slurpen die er maar te vinden was.
Na veel inlezen, nadenken en afwegen kwamen we op het volgende wensenlijstje uit

Zwembad rechthoek 8x4x1.5
Zandkleurige liner
2 mini inbouw LEDlampen
2 extra brede skimmers
2 inspuiters
stofzuigeraansluiting
Graniet randstenen
Zoutelectrolyse
13 kW warmtepomp (zelf uit Duitsland laten komen)

Ondertussen waren we druk bezig met uitzoeken hoe we de bouw aan zouden pakken. In de eerste instantie gingen we voor een DIY project, maar dat is uiteindelijk volledig uitbesteed. We waren toch wel heel erg bang voor grote problemen met het extreem hoge grondwater wat wij hebben.
Omdat we van tevoren al inzagen dat de tuin naar de knoppen zou gaan door al het bouwmaterieel besloten we ook meteen een stuk terras rondom het bad aan te laten leggen.
Na diverse partijen gesproken te hebben, kwamen we uit bij een bedrijf die alles in volledig eigen beheer wilde uitvoeren, terwijl ik alle spullen zou leveren.

We hebben gezorgd dat alle spullen ruim voor de bouw binnen waren, zodat er marge was om spullen te kunnen omruilen of bijbestellen. Het gevolg is wel dat je hele huis vol meuk staat, maar ik vond het toch wel erg fijn om zo alles tijdig te kunnen regelen.

En toen was het dan zover .. de graafmachines arriveerde en de eerste stukken gras vlogen je om de oren :+





Het graven is op een vrijdag begonnen en op zaterdag afgemaakt. Omdat de kleilaag zo vreselijk hard was hebben we halverweg een extra graafmachine laten komen.
Al bij het graven bleek dat het grondwater (gelukkig) reuze mee bleek te vallen. Sterker nog: op de laagste diepte (circa 1.90) hadden we geen grondwater terwijl het hoger (circa 1.50).
Onze conclusie (achteraf) is dat we niet zozeer last hebben van grondwater, maar dat de kleilaag zo dik is, dat het hemelwater er amper doorheen komt.

Na het afgraven van het gat moest er een betonvloer in komen. Na een dag hard werken stond er een bekisting met daarin 2 lagen betonnetten, klaar om gestort te worden.



http://zooi.oostindie.com/images/5412014_06_10_16_tn.32_tn.45_tn.jpg http://zooi.oostindie.com/images/1292014_06_10_16_tn.33_tn.51_tn.jpg http://zooi.oostindie.com/images/3422014_06_10_16_tn.34_tn.24_tn.jpg

http://zooi.oostindie.com/images/6322014_06_10_16_tn.37_tn.54_tn.jpg http://zooi.oostindie.com/images/7602014_06_10_16_tn.42_tn.26_tn.jpg http://zooi.oostindie.com/images/1952014_06_10_17_tn.14_tn.46_tn.jpg

Nu de vloer er lag kon er een begin gemaakt worden aan het opbouwen van de wanden. Zoals gezegd hebben wij gekozen voor een bouwkundig bad met styropor blokken. Deze blokken zijn zeer stevig en stapelen als lego. Wanneer goed geplaatst, kun je de hele muur van bovenaf volstorten met beton.
Na het plaatsen van de muur (maar vóór het storten) kun je alle inbouwdelen in de muur plaatsen (skimmers, inspuiters, lampen, stofzuigeraansluting.





Nu ging het al echt op een zwembad ijken, helemaal na het dichtgooien van de wanden en voorzichtig uitmeten van de randstenen.



Inmiddels was het minder zomers weer geworden, en dat begon toch wel invloed te hebben op de planning.
Halverwege het aansmeren van de vloer begon het zo hard te regenen dat we alles er weer uit konden scheppen. Gene leuk klusje en zonde van het werk en uren. Direct een tentje erop gebouwd en het maar afgemaakt met egaline.

De volgende was het zover: deze dag zou de liner (zeg maar de folie waar het water er in zit) gaan, spannend!
Het plaatsen van de liner ging sneller dan verwacht en zonder noemenswaardige problemen.



http://zooi.oostindie.com/images/2350445_1445_tn.jpg

Direct na het inhangen van de liner moet je beginnen met vullen met water. Wanneer je een centimeter of 10 onder het eerste inbouwdeel bent, kun je voorzichtig een opening in de liner snijden en de pakking erop schroeven.

Helaas zat er een lang weekend tussen deze en de volgende werkdag, maar daarna kon gelukkig al het water in 1 dag erin lopen.



Het bad zat nu officieel vol! :Y)

Ondertussen is ook het pomphuis zo goed als klaar, nog wat laatste puntjes op de I om alles via de relais van de Raspberry Pi te laten lopen.

http://zooi.oostindie.com/images/577RaspiPool_tn.jpg

http://zooi.oostindie.com/images/9852014_06_30_21_tn.02_tn.34_tn.jpg http://zooi.oostindie.com/images/6362014_06_30_20_tn.26_tn.27_tn.jpg http://zooi.oostindie.com/images/4602014_06_30_21_tn.01_tn.34_tn.jpg

http://zooi.oostindie.com/images/2452014_06_30_21_tn.01_tn.48_tn.jpg http://zooi.oostindie.com/images/6832014_06_29_14_tn.01_tn.17_tn.jpg http://zooi.oostindie.com/images/3152014_06_29_14_tn.01_tn.38_tn.jpg

Voor de geintresseerden naar hoe de timelapse filmpjes zijn gemaakt: Men neme een Raspberry Pi met camera module, bouw deze in een of ander vogelhuisje en hang deze uit het raam van de slaapkamer van je dochter :P

http://zooi.oostindie.com/images/3912014_06_05_18_tn.41_tn.55_tn.jpg http://zooi.oostindie.com/images/4082014_06_05_20_tn.00_tn.29_tn.jpg