Home Automation med Domoticz og IHC

Maj 2017

Lad det være sagt med det samme: Dette er et sidespor. Det har intet med hverken tog eller modelbygning at gøre. INTET!

Vi havde et gå-hjem møde på arbejde om home-automation.

En af mine kolleger har fundet frem til domoticz.com, som er et program, der kan installeres på stort set hvad som helst – bl.a. Raspberry Pi og NAS’er fra Synology og andre fabrikanter.

Og meningen? Nå ja. Det er måske lidt for sjov. Men det er modeltog jo også.

Det her handler om at samle input fra alt, hvad der foregår i sit hjem, og at sørge for at mest muligt af de ting og sager, man har i samme hjem, kan styres fra en computer af en slags. De ting, der sker, kan logges. Og de kan bruges til at trigge de dimser, der kan styres.

For eksempel har jeg tænkt mig at overvåge vandforbruget. Og såfremt der bliver brugt for meget vand for længe (“man” er ved at vande have, det bliver sent, og “man” går i seng), så tænder Internet-radioen i stuen med “Raindrops are dripping in my hair” på en lydstyrke så man vågner af slummeren og står op og slukker for lyden og lukker for vandet.

En anden detalje er, at Domoticz altid ved, hvornår solen står op og går ned. Det betyder, at i stedet for at bruge et tænd/sluk ur til at styre julelysene (som hen i januar, februar og marts nærmere må betegnes som vinterlys), så er det ret smart at bruge Domoticz, så man kan stille urene i forhold til solen i stedet for at anvende faste klokkeslæt.

Andre bruger det til at se, om der bliver brugt for meget varme, eller om der bliver brugt for meget strøm på TV og lignende.

Hardwaremæssigt skal der bruges en blanding af Raspberry Pi, Arduino, ESP8266, diverse sensorer osv.  osv. Min kollega køber mest ind fra Kina (dx.com). Og jeg har tænkt mig at gøre ligeså. Man skal bare huske ikke at bestille for mere end 80 kroner af gangen. Så holder man sig under Skats bagatelgrænse. Og dimserne koster ikke mere end 15 – 45 kroner stykket – undtagen lige selve Raspberry Pi og diverse gateway tingester. Men dem bestiller man så fra steder i Europa – f.eks Reichelt.de.

Softwaremæssigt er det først og fremmest Domoticz. Men der hører også andet til. Masser af scripts er allerede tilgængelige via domoticz.com. F.eks. et script til at tilgå min Denon forstærker, så man både kan styre og overvåge den. Og ligeledes en komplet meteorologistation for under 100 kroner, baseret på ovennævnte ESP8266.

Og så er der også lige det med at kunne styre lys og stikkontakter i hele huset. Der findes teknologier for enhver. Men jeg har et IHC anlæg i huset, så det skal selvfølgelig integreres. Og det findes allerede på nettet. Se https://sourceforge.net/projects/ihcsoftwarekit/files/IHC%20Server%20(duffman)/En flink mand har siddet i sit ansigts fodsved og lavet et stort og flot stykke arbejde. Rigtigt stort og rigtigt flot endda.

Jeg har allerede tyvstjålet dele af det (og det må man gerne, når nu det er lagt ud som open source) til at tilgå min Denon forstærker lidt mere sofistikeret end det bash script, der ligger på domoticz.com. Specifikt har jeg ladet mig inspirere voldsomt til at lave et C++ program, som kan konfigureres vha. en tekst-fil.

Her kan man (kombineret med Denons egen specifikation) se, hvordan en Denon eller Marantz receiver kan styres: http://blue-pc.net/2013/12/28/denon-av-reciever-ueber-http-steuern/

Og jeg har tænkt mig at bruge hele ihcserver uændret, når det RS485 interface til en Raspberry Pi, som jeg har bestilt fra dx.com, arriverer. Jeg tror nemlig, at jeg kan tilgå både ihcserver (og dermed mit IHC anlæg) og Domotics via deres respektive JSON RPC WEB interfaces fra mit eget C++ program, som jeg har tænkt mig at skrive, for at klistre de to ender sammen.

Og så skal jeg have bygget den ESP8266 (Wemos D1 mini) baserede meterologistation, der foreslås i Domoticz WIKI’en eller på mysensors.org. Og turen kommer også til en Sonos integration. Og det slutter ikke der……

Der findes alternativer til Domoticz. Jeg har prøvet at installere OpenHAB, eller rettere den version til Raspberry Pi, der hedder openhabian. OpenHAB ser umiddelbart ud til at være noget, som henvender sig mere til “almindelige mennesker” og ikke så meget til IT-folk, som Domoticz. Dvs., at der er gjort mere ud af brugergrænsefladen og at der er meget mere plug-and-play i det med at få OpenHAB til at fungere sammen med diverse hardware. Jeg er nået så langt som til, at OpenHAB kan se de Sonos højttalere jeg har, men ikke Denon forstærkeren.  Og så er det som med Microsoft produkter: Plug-and-play burde retteligt hedde plug-and-pray. Når det ikke fungerer, så fungerer det ikke, og man aner ikke, hvad der skal til. Man er kort sagt på den.

Omvendt med Domoticz: Det er umiddelbart lidt vanskeligere at sætte op. Men eftersom man sidder med direkte adgang til diverse scripts m.v., så er det meget nemmere at se, hvad der er galt. Og dermed kan man gøre noget ved det.

Og da OpenHAB på ingen måde er på samme ret høje kvalitetsniveau, som f.eks. Microsoft Windows, så er det med “pray” ikke bare en talemåde eller en vittighed. Jeg har fået den til at fejle i to ud af to tilfælde. Så den er hermed droppet.

Juni 2017

De første pakker fra Kina er begyndt at ankomme. Bl.a. det længe ventede USB-RS485 interface, som gjorde, at jeg i løbet af de to pinsedage har fået forbundet min IHC controller med en Raspberry Pi, hvorpå jeg kører IHCServer. Det i sig selv giver mig en WEB-side, hvorpå der er en knap for hver ind- og udgang på IHC-anlægget. Og når jeg trykker på knapperne på WEB-siden, så togler udgangene eller aktiveres indgangene på IHC anlægget. Dermed kan jeg styre lyset i hele huset fra min iPad. Mht. indgangene var der lige en lille fejl i IHCServer, som jeg rettede og meddelte ophavsmanden til IHCServer, som herved skal have stor tak fra mig for sit udmærkede værk. Det var virkelig nemt at få til at fungere.

Men ikke nok med det. Jeg har også defineret samtlige IHC ind- og udgange i Domoticz som virtuelle switche. Derudover har jeg udvidet IHCServer med en ActivateOutput og en DeactivateOutput mulighed (den har fra “fødslen” kun en ToggleOutput mulighed, fordi det er hvad der er brug for fra dens egen WEB-side), og lavet et script for hver af disse samt for ActivateInput og DeactivateInput. Scriptsene er simple bash scripts, som vha. curl kalder IHCServers WEB service med POST kommandoer. Disse scripts kalder jeg så fra switchene inde i Domoticz.

På den måde får jeg IHCServer og dermed det fysiske IHC anlæg til at reagere på Domoticz switchene. Men Domoticz skal naturligvis også opdateres, når der sker ændringer i de fysiske in- og outputs i IHC anlægget. Det har jeg gjort ved at tilføje lidt kode inde i IHCServer, så den kalder Domoticz’ JSON interface hver gang IHCServer opdager en ændring.

Og tryllerylleri, så er såvel Domoticz som IHCServer nu synkroniserede med tilstandene for alle ind- og udgange i det fysiske IHC anlæg.

“Og hvad kan det så bruges til?”, spørger den undrende læser sandsynligvis.

Svaret er: Næsten alt. Indtil videre har jeg defineret intelligente timere, der tænder lyset i forhold til hvornår solen står op og går ned. Men når jeg får dørklokken, vandmåleren, TV’et osv. integreret med Domoticz, så kan jeg eksempelvis sørge for at tænde passende baggrundslys sammen med TV’et, dæmpe lyden, når det ringer på døren, sende en e-mail til mig selv, hvis jeg har aktiveret alarmtilstand, og der spores en form for aktivitet i huset, ringe med dørklokken og blinke med lyset i stuen, hvis der bruges for meget vand. Og fortsæt selv listen. Man kan alt. Kun fantasien er begrænset. Ikke mulighederne.

Jeg har i øvrigt bestil næste batch af dimsedutter fra Kina. Denne gang satser jeg på aliexpress.com. Det er endnu billigere end dx.com, som i forvejen koster næsten gratis.

September 2018

IHCServer findes nu på Github: https://github.com/skumlos/ihcserver

Husk også at hente de andre projekter af samme forfatter. De er subprojekter.

Jeg har tilføjet Domoticz interfacet som et pull request.

Juli 2019

Mit pull request blev aldrig accepteret. Så nu har jeg lukket det og i stedet lavet et plugin til Domoticz, som i øvrigt er meget lettere at installere og bruge: https://github.com/kjlisby/domoticz-ihc-plugin

Efteråret 2019

Jeg har købt et par IKEA Trådfri pærer. Og en gateway til dem. Og naturligvis er de straks inkluderet i Domoticz via dette plugin: https://github.com/kjlisby/IKEA-Tradfri-plugin, som igen kræver andre stumper software. Men det hele var ret enkelt at installere på min efterhånden antikke Raspberry Pi.

Problemet med IKEA Trådfri og især gateway’en er, at det er ret ustabilt. Og når det falder fra hinanden er der kun en ting at gøre: Reset hele systemet til factory default og begynd forfra. Og det holder altså ikke. Jeg har sat min gateway helt op under taget, og der vil jeg altså ikke kravle op særlig ofte. Og hvis jeg havde endnu flere pærer og fjernbetjeninger ville det være endnu mere håbløst.

Så sidst min fjernbetjening “faldt ud” af gateway’en skrev jeg til IKEA support, som beklagede, men der var altså stadigvæk kun patentløsningen med at resette alt.

Men det er der selvfølgelig: Min løsning hedder Zigbee2MQTT. Og der findes et Domoticz plugin, der gør det nemt. Se https://www.domoticz.com/wiki/Zigbee2MQTT

8452CF3C-8E5C-4F07-B67D-F43203653329

Det hele handler om at anskaffe denne USB dims med en microcontroller og en antenne ombord, så den kan tale med en masse devices, som f.eks. IKEA pærer og fjernbetjeninger. Den sættes i en USB port i Raspberry Pi, efter at man har downloadet firmware i den jvf. beskrivelserne:

Den koster 3 til 4 Euro fra Kina. Og for at programmere den med den rigtige firmware købte jeg også en programmeringsenhed til det dobbelte. Den kan man jvf. diverse beskrivelser godt undvære. Men jeg gad ikke at bøvle med det.

Men vha. dette lille vidunder har min IKEA fjernbetjening nu forbindelse til Domoticz i stedet for til IKEA gateway. Og det giver langt flere muligheder. Nu kan jeg bruge fjernbetjeningen til at styre IHC anlægget, fjernsynet eller hvad end jeg måtte have lyst til.

Altså et amatørprodukt, der er langt billigere, langt mere stabilt og mere brugbart end en IKEA Gateway, som ellers burde være et professionelt produkt.

Januar 2021

8BD115BA-36D1-425C-8BDC-172845421561

Jeg har købt en Google Home mini højttaler. Den skal bare have strøm og sættes op via Google Home app’en:

Den er sådan set meget sjov. Den er stemmestyret, hvis man vil. Den kan streame radio via TuneIn eller musik via Spotify. Og den kan bruges som en almindelig Bluetooth højttaler. Men det vi bruger den allermest til er at spørge den om alt muligt, som f.eks. “OK Google, hvornår døde Charlie Chaplin?” Det svarer den som regel fint på.

Men dens muligheder stopper ikke der. For den kan integreres med en hel masse andre ting, som derved kan stemmestyres. F.eks. IKEA Trådfri gateway. Men ikke Zigbee2MQTT. Og heller ikke min gamle IHC controller, IHCServer eller Domoticz. Så jeg kan ikke bede højttaleren om at tænde og slukke lyset.

Dvs. med ganske få kunstgreb, så lykkedes det alligevel: På samme Raspberry Pi, som jeg bruger til Zigbee2MQTT (det kunne også være et andet sted) har jeg nemlig installeret HomeBridge samt tre plugins heri: Homebridge UI, Homebridge Google Smart Home og Homebridge Edomoticz. Det var lige ud af landevejen, og pludselig er alt i Domoticz (op til 99 switche) blevet stemmestyret.

Det inkluderer i øvrigt at tænde og slukke (m.v.) fjernsynet. Det kan jeg nemlig også gøre fra Domoticz, fordi jeg har forbundet en Raspberry Pi til fjernsynet via HDMI. Og på den Raspberry Pi har jeg installeret LibCEC.

Det skal lige siges, at man ikke skal være alt for nervøst anlagt. Det hele kræver nemlig, at der foregår ting og sager i skyen. Google højttaleren sender de kommandoer, man giver den, videre til Google, som så igen sender en kommando til en Homebridge server, som jeg har givet lov til at styre visse switche i min private Homebridge, som så igen styrer min Domoticz opsætning. Så nogen kan selvfølgelig give sig selv adgang til visse brugsdata, som i de forkerte hænder kan misbruges. Og helt teoretisk kan nogen udefra sådan set også begynde at tænde og slukke lyset hos mig. Sker det, kan jeg dog selvfølgelig bare slukke for min Raspberry Pi eller på anden måde kappe forbindelsen.

Det med dataene er det værste. Men ikke så meget hvilke lamper, jeg tænder og slukker. Det er sådan set meget værre med de spørgsmål, jeg stiller højttaleren.

Translate »