des 19

Hjemmeautomasjon

I februar begynte jeg på et nytt prosjekt for å automatisere lys og varme i hele huset. Nå, omtrent et halvt år etter begynner det endelig å se ut som noe fornuftig også. Hadde fra før en hel haug med fjernstyringsmoduler for å sette i kontaktene. Disse er det en smal sak å styre med medfølgende fjernkontroll.

Gikk til innkjøp av en Tellstick Duo og kompilerte inn nyeste versjon av telldus-core og for moro skyld, Telldus-Center. Telldus.conf konfigureres rimelig enkelt og så er det bare å begynne å blinke med lysene. So far so good 🙂

Installerte deretter HomeAutomation v2.0.2. (v3.0 er rett rundt hjørnet) Et webgrensesnitt basert på PHP laget av Tom Rosenback og Daniel Malmgren. Dette settes opp mot telldus-core og MySQL via webleseren. Lag en 3D-skisse over huset og du er i gang. Kort fortalt stort sett plankekjøring 🙂 Hos meg ser det omtrent sånn ut:

Gutta som laget dette programmet har også laget en parser for å enkelt parse temperaturer fra 1-wire micro lan til databasen. Hadde noen sensorer fra før, men som du ser så har det blitt flere etterhvert. Tilsammen er det nå 18 forskjellige sensorer inkludert 8 releer og 2 tellere. Alt er sydd sammen med HomeAutomation og er satt opp til å styre lys, varme og ventilasjon til forskjellige tider på døgnet. Utetemperaturen henter jeg fra værstasjonen som er en Fine Offset WH1080. Som en bonus har jeg parset inn naboens værstasjon som backup til min egen 😉 (Tellstick Duo kan ta i mot signaler fra stort sett alt av trådløst utstyr på 433Mhz-bandet)

Temperaturfølere i frysere i kjeller og i side-by-side skap på kjøkken er av type UPM, kjøpt på Clas Ohlson for mange år siden. Tellstick Duo tar inn disse som protokoll mandolyn og gir både temperatur og luftfuktighet i motsetning til f.eks Oregon EA4C og 1A2D som kun gir temperatur.

Fordelen med Oregon er at den kommer opp med en unik ID, noe som gjør det mye enklere å parse verdier. UPM gir samme ID på alt.

I huset er det også et Villavent VR-700 ventilasjonsaggregat. Etter litt studering av tegninger fant jeg ut at dette har potensialefrie innganger for ukeur, noe som gjorde at det ganske enkelt kan styres med et 1-wire rele. Monterte i tillegg temp sensorer på tilluft, fraluft, inntak og avkast slik at gjennvinningsgraden kunne kalkuleres. Sydde sammen en egen side i PHP og resultatet ble sånn:

Siste skuddet på stammen er nå en CO2-måler fra SenseAir. Denne er koblet opp på samme måte som øvrige instrumenter. Bruker et Perl-script for å kjøre dette opp mot behovsprøvd ventilering. Når verdiene i huset kommer over 700 ppm vil viftene automatisk gasse på. Hvis det ikke hjelper og verdiene stiger ytterligere til over 1000, vil anlegget gå opp på forsert ventilering.

I motsatt ende av skalaen vil anlegget gå i minimum når det ikke er folk i huset. Dette er meget kostnadseffektivt på kalde dager. En slik sensor vil man tjene igjen i løpet av meget kort tid.

Grafene er som vanlig laget ved hjelp av RRDTool. Databaser mates ved hjelp av nevnte Perl-script og deles opp i 24 timer, 7 dager, 1 måned og 1 år.

 

Siste 24 timer

Foto: Co2 måling siste 24 timer. Har lagt til trendlinje for lettere å kunne følge utviklingen.

 

 

 

 

 

 

 

 

asdadasd

Foto: Luftfuktighet siste 24 timer med trendlinje

 

 

 

 

 

 

 

 

 

Har når fått montert fuktighetsmåler fra Hobby-Boards og kjørt den en ukes tid. Denne måler fukten fra avtrekksluften og regulerer hastigheten på viftene deretter. Har sydd dette sammen med eksisterende script for behovsprøvd styring, slik at fuktmåleren overstyrer systemet om nødvendig.

Har tørket klær og vasket i huset for å prøve å trigge sensoren til utslag. Dette gir kun små topper på noen få prosent i noen få minutter. Dette tyder på at ventilasjonen fungerer som den skal om ikke annet. Skal logge trenden fremover mot våren og sommeren når det kanskje blir et lite overskudd av fukt i huset. Har lagt til trendlinje på både CO2 og RH.

Sleipner, min tilårskomne server (Dell Dimension 8300 med Ubuntu 10.04 LTS) som «alt» i huset nå er koblet sammen med, måtte selvsagt også få sin dedikerte side. Statistikk over nettverk og load average genereres med Munin-tool. Resten hentes fra UPS (Powerwalker 2000VA) med Network Ups Tools (NUT). Grafer blir generert ved hjelp av RRDtool.

I tillegg blir temperatur på HD logget ved hjelp av innebygget S.M.A.R.T, parset til MySql og ut på nettsiden. Har også satt opp sms/e-post varsling hvis temperaturen på en av diskene skulle bli unormal høy.

Å lese av strømforbruket var egentlig hovedårsaken til at jeg montere 1-wire-nettet. For å lese av strømmen bruker jeg optikken av ei trådløs datamus som er koblet til en 1-wire teller som teller pulsene. 10000 pulser tilsvarer 1 kWh, så her blir det fort store tall.. Man får kjøpt ferdige kit med optikk for å lese av måleren, men det er mye mer moro å frese i gang loddebolten og gjøre det sjæl. Disse grafene genereres med RRDtool og data blir matet inn ved hjelp av et Perl-script som leser av 1-wire telleren.  Målerstand leses av automatisk og sendes på mail og sms så ofte jeg vil. Har et script som logger seg inn hos nettselskapet og legger inn målerstand der, men fant ut at dette ikke var noen god ide om det skulle oppstå en feil i 1-wire nettet.

Et 1-wire nett er uhyggelig følsomt for feil og kobler man en sensor feil vil hele nettet bryte sammen. Dette vil føre til at f.eks. tellere på 1-wire går bananas og gir et hinsides forbruk omtrent på linje med en plattform i Nordsjøen 😀

Bruddene i grafen skyldes at jeg driver og setter opp et varslingssystem for strømbrudd. Bruker en Huawei E353 usb-dongle til dette. Er ikke helt i mål enda, men må ha litt å pjuske med også.

Meteolinger heter programmet som leser av værstasjonen. Et program laget i Perl og som mater grafer via RRDtool. Et litt uferdig program, som jeg har tatt ut litt programkode fra og satt sammen til mitt eget. Foreløpig er værsiden i beta, men er i stadig utvikling. Har lagt til en formel for beregning av vindens kjølende effekt og heat index. I tillegg har jeg lagt til en formel for beregning av skyenes høyde (Cumulus Base height).

Det aller ferskeste skuddet på stammen til nå er lyndetektoren. I grunn en helt enkel am-mottaker med 24″ antenne som jeg har plassert på loftet med egen separat jording. Denne er koblet sammen med (nok en) en 1-wire teller. Denne gangen er det et bash script som henter ut info fra telleren og mater RRDTool som igjen genererer grafen. Detektoren har en rekkevidde på ca 20 mil. Ved hjelp at grafen kan intensiteten beregnes og man ser omtrent hvor langt unna lynet er.

Skal prøve å oppdatere med siste nytt etter hvert som de kommer. Anbefaler å handle 1-wire-utstyr fra Hobby Boards i US. Ellers er Erik Freiholtz på m.nu også en grei kar å handle med.

En stor takk til Tom Rosenback og Jørn Skorstad for super hjelp med diverse PHP-koder. 

Last edit: 08.01.2013