För en vecka sedan publicerade jag första delen av mina äventyr i hemautomatisering där jag löste problem med gardiner och bordsfläktar, läs den artikeln här: Olas äventyr i hemautomatisering – del 1. Här kommer fortsättningen med två projekt till, och avslutningsvis mina tankar efter dessa fyra projekt.
Projekt: Automatisk elementtermostat
Ett annat behov dök upp när jag flyttade till en ny lägenhet där elementen hade ovanan att susa när de är aktiva. Detta var inte ett problem på dagen men om natten så störde det sömnen. När jag skruvade på elementens termostater märkte jag att susningarna försvann någonstans mellan nivå 3 till 4 på termostaten. Om det bara fanns något sätt att få termostaterna att skruva ner sig själva på kvällen…
Efter några funderingar kom jag fram till en stegmotor (och styrkrets) kopplad till ett 3D-printat kugghjul monterat på ratten (termostaten) på elementet som kunde skruva det fram och tillbaka. Kombinerat med en Arduino-kompatibel mikrodator med en NTP-driven klocka och en spänningsregulator som kunde ge tillräckligt hög spänning till motorn så kunde jag då låta elementets flöde skruvas ned till en nivå som inte orsakade susningar om natten för att sedan återställa nivån om dagen.
Framtida förbättringar som kan göras här är skapa en låda för att skydda elektroniken, men också att exempelvis koppla en temperatursensor till mikrodatorn för att justera elementet efter inomhustemperaturen eller exponera kontrollen av elementet över en webbsida eller trådlös knapp. Vill man verkligen spara pengar kan man hämta data från elbolaget och justera elementet utifrån förbrukning och pris. Numera finns färdiga produkter (varav vissa är batteridrivna) som kan styra elementtermostater, men detta projekt kan ändå stoltsera med en betydligt lägre prislapp.
Projekt: Luftkvalitetsmätare utan app
Projektidéer kan komma plötsligt och denna kom efter en OVK (Obligatorisk VentilationsKontroll) där jag fick reda på att lägenhetshuset jag bodde i var ett så kallat radonhus. Jag blev nyfiken på vilka halter av radon som fanns i luften i lägenheten och införskaffade en Airthings Wave Plus, en luftkvalitetsmätare innehållandes många olika sensorer. För att läsa av mätvärdena kan användarna installera en mobilapp (skapad av Airthings) som kopplar upp sig till mätaren med Bluetooth och laddar upp datat över WiFi eller 3G/4G/5G till en molntjänst (som drivs av Airthings). Vanligtvis så hade jag kanske inte köpt en apparat som kräver både mobilappar och molntjänster för sin grundläggande funktionalitet, men i det här fallet hade jag gjort undersökningar innan köpet och upptäckt att det redan fanns projekt baserade på öppen källkod som kunde läsa av mätaren över Bluetooth.
Jag använde även för detta projekt en Raspberry Pi med Bluetooth- och WiFi-stöd som mittpunkt. Jag skrev ett Python-program för att var 10:e minut läsa av mätvärdena över Bluetooth med biblioteket “bluepy” och spara dem i en lokal SQLite databas och i en PostgreSQL databas på en annan server. En nackdel med denna lösning var att de två AA batterierna i Wave Plus inte var dimensionerade för att skicka data var 10:e minut och laddas ur snabbare än vid vanlig användning. Detta löste jag genom att byta ut batterierna mot en batterieliminator, en apparat bestående av en batteriformad-adapter som kan kopplas till en vanlig stickkontakt. Slutligen skapade jag också ett kostnadsfritt konto i Grafana’s molntjänst, skapade en dashboard för hemmet och konfigurerade den att hämta data från databasen och visa i en serie grafer.
Med dessa mätningar kan jag dra flera olika slutsatser om inomhusmiljön i hemmet. VOC-nivåerna var här höga under morgonen men dök snabbt när jag öppnade fönstret, liksom koldioxidnivåerna. Radonnivåerna pendlar mellan 240-295 Bq/m3, vilket är över gränsvärdet för nyproduktion (lägenheten är från 1950-talet) men under Strålskyddsdirektivets gränsvärde på 300 Bq/m3.
En möjlig ändring som kan göras på detta projekt är att ersätta Raspberry Pi:n med en liten Arduino-kompatibel mikrodator med Bluetooth och WiFi för att läsa av mätaren och skicka datat till en databas med HTTP-API, förutsatt att Python-koden översätts till C++ eller MicroPython. En annan möjlig förbättring vore att skicka ut någon form av pushnotiser när gränsvärden överskrids så att jag kan vidta åtgärder som att öppna fönster eller automatiskt starta en luftrenare.
Slutsats
Dessa fyra projekt representerar ett urval av de olika lösningar jag byggt för att på olika sätt förenkla eller förbättra vardagen med teknikens hjälp. Med relativt lite kod och förhållandevis billiga apparater kan man nu både mäta och styra olika delar av hemmet som fram tills nu ofta krävt manuell hantering. Och vill man ta ett steg ytterligare och grotta ner sig i elektronik för att automatisera med högre precision så har även det blivit lättare tack vare Arduino, Raspberry Pi och alla de tillverkare av produkter för hemautomatisering som, medvetet eller omedvetet, gjort det enkelt för de tekniskt-lagda att skapa sina egna gränssnitt för kommunikation med produkterna och dessutom delat med sig av sina upptäckter i form av öppen källkod.
Jag vill själv fortsätta i den andan och har därför utvecklat samtliga ovanstående projekt som öppen källkod från början till slut och med fria och tillåtande licenser. Du kan hitta länkarna till koden för samtliga projekt nedan:
- Fjärrstyrda gardiner: https://gitlab.com/decker108/auto-sunrise/
- Automatisk fläkt: https://gitlab.com/decker108/smartfan/
- Automatisk elementtermostat: https://gitlab.com/decker108/auto-radiator
- Luftkvalitetsmätare utan app: https://gitlab.com/decker108/auto-clearskies