Home hacking – utveckling och systemintegration i hemmet, Del 1

Dela på
Home hacking – utveckling och systemintegration i hemmet, Del 1


Att automatisera hemmet har blivit alltmer populärt de senaste åren. För mig handlar det främst om att förenkla vardagen genom att minska beroendet av flera olika fjärrkontroller. Att kunna styra el och apparater trådlöst via ett gemensamt gränssnitt har även andra fördelar, både ekonomiska och miljömässiga. Jag har främst använt mig av webb-tekniker vilket borde tilltala fler än mig i IT-konsult-branschen.



I de flesta hushåll finns det en uppsjö av elektriska apparater, fjärrkontroller och strömbrytare. Ju fler apparater man har desto fler kontroller blir det och det kan vara svårt att hålla reda på alla till slut.



Det finns en enklare lösning som innebär att man skaffar en multifjärrkontroll som kan styra flera apparater. De är tyvärr oftast låsta till en typ av gränssnitt (IR) så många apparater uteblir, speciellt om man även vill styra belysning. Ett annat problem är interaktionsdesignen på fjärrkontroller generellt. Fjärrkontrollen till min Yamaha-förstärkare har nästan 200 knappar. Jag använder regelbundet ca 10 av dem — alltså ca 5%. Det är volym samt åtta olika HDMI-input-väljare. De är numrerade 1-8 och avslöjar inget om vad som är inkopplat på respektive port.



Lösningen — Utveckla och integrera!

Jag kom fram till att det bästa alternativet var att utveckla fjärrkontrollen själv, med de tekniker jag kan bäst. Jag ville skapa en fjärrkontroll med ett webb-gränssnitt som därmed skulle bli tydlig och plattformsoberoende, men framförallt kunde användas i mobiltelefonen. Hur lyckas man då med att styra lampor som kör RF 433 MHz och en projektor som normalt kör IR, med samma fjärrkontroll? Man får helt enkelt bygga sin egna integrationsplattform! Hur har jag då gått till väga?



Hårdvaran

(Apple Time Capsule, Nexa-strömbrytare, Tellstick NET, Raspberry Pi, Yamaha RX-A810, Roxcore motordriven projektorduk, Epson TW-6000W projektor, RS-232 till USB seriell adapter)
Apple Time Capsule
All data-kommunikation i systemet går via routern där alla komponenter är inkopplade. Fabrikatet har ingen betydelse för funktionen.



Nexa-brytare och Tellstick NET
Det finns flera alternativ på marknaden för att styra eluttag och lampor. Till att börja med måste man ta ställning till vilka typer av trådlösa strömbrytare man vill ha/behöver. Två av de populäraste fabrikaten är Nexa och Zwave. Man behöver en mottagarenhet per eluttag/lampknapp.



Fakta Nexa (http://www.nexa.se/):



  • Kör på standardfrekvensen 433 MHz, precis som många andra konsumentprodukter på marknaden, som t. ex många projektordukar.
  • Relativt sett billiga komponenter
  • Stort utbud och många återförsäljare
  • Helt asynkront system, en enhet kan inte skicka tillbaka data som redovisar enhetens state (on/off).
  • Klarar att skicka signaler inom en radie på 30 meter.
Fakta Z-Wave (http://www.z-wave.com/):



  • Kör på frekvensen 868 MHz.
  • Något mer störningskänslig och kortare räckvidd.
  • Relativt sett dyra men robusta komponenter.
  • Klarar att skicka information i båda riktningarna och därmed ”tala om” vilket state en enhet har.
Rent tekniskt har Z-Wave ett övertag och det är lättare att bygga en applikation som kan monitorera i vilket läge olika strömbrytare står. Den kortare räckvidden kompenseras av att signalen kan åka ”snålskjuts” på en inaktiv komponent som sedan skickar vidare signalen precis som en trådlös accesspunkt.



Mitt val föll ändå på Nexa av flera själ. Jag ägde redan flera sådana enheter, så det skulle bli betydligt billigare att fortsätta på det spåret, och den Nexa-kompatibla enheten ”Tellstick NET” (http://telldus.se/) hade precis nått marknaden. ”Tellstick NET” är en 433 MHz-sändare som kan kopplas in i router och styras via nätverket. Den styrs i huvudsak av det det dedikerade (och undermåliga) gränssnittet i molnet som man kommer åt via sitt google-konto var man än befinner sig. Tack vare ett öppet API finns det C#- och Python-bibliotek tillgängliga.



Raspberry Pi
För att kunna få till ett webb-gränssnitt behövs en server. Valet blev en Raspberry Pi model B som är kopplad till routern via ethernet. Förutom Debian-distributionen Raspian, installerade jag Apache, PHP och senaste Python på den. (http://www.raspberrypi.org/, http://www.raspbian.org/, http://apache.org/,http://www.php.net/, http://www.python.org/). I många steg krävs det att man inte är rädd för att knacka i Linux-terminalen, men det finns mycket bra dokumentation online (http://www.google.se/). Raspberryn är navet i systemet där alla kommandon behöver passera.



Projektroduk
Duken är från Roxcore och styrs precis som strömbrytarna med RF 433 MHz. När man skaffar duk gäller det att försäkra sig om att den stöder det trådlösa gränssnitt man tänkt sig. I mitt fall var det 433 MHz och ett uttryckligt stöd för Roxcore i Tellsticks dokumentation.



Förstärkare
För att få ett komplett intelligent hem måste man, enligt mig som är medieteknikingenjör, även blanda in ljud och bild. Jag kör en Yamaha RX-A810 Aventage. Precis som många andra high-end-modeller är den utrustad med ett nätverksuttag och kan kopplas till routern. Andra tillverkare som erbjuder liknande gränssnitt är t.ex Pioneer och Onkyo. Yamaha använder sig av ett XML-API där man genom XML-data över HTTP kan monitorera och styra alla funktioner utan att använda IR-fjärrkontrollen.



Projektor
Valet av projektor påverkas av huruvida den har stöd för att styras med extern kontrollpanel. Då brukar de nämligen ha en dedikerad port till det, antingen USB eller RS-232 serieport. Min Epson TW-6000W har en serieport. Projektorn styrs genom att man skickar hex-kodade textsträngar på den porten.



USB till RS-232 adapter
För att kunna skicka kommandon till projektorn från servern behövs en adapter. Den kopplas in i en USB-port på Raspberryn.



Schematisk översikt

I “Home hacking – utveckling och systemintegration i hemmet, Del 2? tar vi en titt på mjukvaran i systemet.




06 Maj
User Story Mapping

User Story Mapping

Uttrycket User Story Mapping myntades av Jeff Patton i boken med samma titel. En så kallad User Story Map är i grunde...

24 Apr
Mitt traineeprogram

Mitt traineeprogram

När jag först steg in på kontoret min första dag i början på september förra året visste jag inte riktigt vad jag sku...

02 Apr
Övergången från React till React Native

Övergången från React till React Native

För ett par veckor sedan bestämde jag mig för att lära mig React Native. Jag ville testa att bygga en mini-app som hä...