In our latest My Automated home feature, Dave McLaughlin takes us through his journey developing his own smart home system. With some DIY upgrades to existing home automation hardware and some clever software integration he’s built a fascinating system…
All’inizio
Having used Homeseer and a number of wired and wireless devices whilst in the UK, I switched to wireless when I moved overseas to Indonesia in 2005. As I was living in a rented apartment I need a solution that would not require any cables other than maybe Ethernet in the same room.
I decide on a Z-Wave system, later adding Wemo Lamp modules too. For Z-Wave side of things I chose the HomePro Appliance modules for sockets and Everspring Lamp modules for the lighting. Neither of these 2 modules were cheap.
I ran with this setup until the middle of 2016, but the following issues prompted a change. Firstly Z-Wave was temperamental with 2 units at the far end of ou apartment, even though I had an Appliance Module half way between it just never worked reliably. I would have continually press OFF on the Homeseer Touch based tablet to get my bed light to go off. later I would have 2 units that controlled lamps blow up and fail. one of the IC’s that was part of the power supply had split wide open.
The next headache was the Wemo lamp modules. The only way to get these to work was with IFTTT through their Homeseer and Wemo channels. As long as my internet connection was good this worked ok, albeit a bit slow at times. Not exactly a 10 on the WAF scale.
In early 2016 I came across a website run by Peter Scargill who used to run an electronics design company many years ago from Tyneside. at that time I used his AppCON wired controllers for home automation based on the little 8 bit pic microcontrollers. I had hundreds of meters of 4 core alarm cable run all over my apartment. The system was reliable but trying to hide all that cable didn’t go down well with my partner at the time.
Fast forward to 2016 and Peter was back doing home automation with the little ESP8266 based controllers.
These are based on a Cortex M4 core with built in 802.11 WiFi and come with an SDK that allows development with Eclipse as well as an Arduino IDE option.
As my HomePro units were troublesome I decided to re-engineer the internals and keep the mechanical parts. So I took out the old PCB and did all the measurements so I could make my own 2 stack PCB assembly in much the same as the old one. The lower PCB is the POWER supply and solid state RELAY.
I chose the solid state relays as they switch on the zero crossing and avoid any issues with pulling down the AC and causing the power supply to dip. This works faultlessly and I can switch up to 8 AMPS with this arrangement. more than enough for the intended use of these modules.
These images show the new board stack and the old boards within the module and finally the new boards installed into the HomePro enclosure.
There is an LED on the board to show status and I drilled a small hole to allow this to be seen from the outside. It flashes rapidly until it gets a WiFi and MQTT connection. using the button on the front you can press and hold this for around 3-5 seconds just after power up and this will activate an APN and webpage that you can use to configure the device. easier than trying to do this over the serial connection. Peter and Aiden have considered everything with this.
Now the lighting needed to be sorted. The Everspring units that I had purchased from the UK a couple of years ago used to show an annoying fault. They would on occasion started to switch off and then back on again. It was completely random. I replaced one unit with a new one and the same thing happened. then one day I spotted that the on/off fault was occurring when the voltage in the apartment was dropping below 209Vac – Indonesia is not very good when it comes to stability of the mains supply. I opened one of the units and found that they used a very cheap power supply design based on a capacitor/resistor dropper type. These are good when you have a stable power supply but they really don’t like it when the voltage input is too low.
So armed with the HomePro unit design, I set about creating a new PCB to fit the existing enclosures. The ESP12 was located on one side and the AC-DC power on the other. The solid state relay was also on the same side as the power supply. A prog and on/off button were also fitted so I could install the software initially. The web interface would be used to configure it later. You can see the ESP side of the PCB below. The slot in the PCB is to increase the separation of the AC power from the low voltage DC side. The large pads are the AC in and AC out to the lamp.
So now I had a number of upgraded appliance modules and lighting controllers but how was I going to control all of this? It was time to retire my old Homeseer 2 system. The PC was noFine dei guai ed essere Windows 10 deciderebbe che si aggiornerebbe senza la mia autorizzazione. È ora di passare a Linux.
Quindi, in base al blog di Peter, ho deciso di ottenere il mio Raspberry PI3 con il suo LCD da 7 ″ e accendere il nodo-rosso. Nodo-rosso per coloro che non hanno visto questo è un software di controllo di trascinamento molto carino e stabile. All’inizio è stato scoraggiante configurare, ma dopo circa una settimana di gioco ho iniziato a scoprire che era molto facile affrontare. Se hai capacità di programmazione, ti sentirai a casa con lo scripting. Tutti i moduli sono forniti come fonte di script Java e c’è una biblioteca enorme ed sempre crescente sul sito web rosso nodo.
Successivamente avevo bisogno di un broker MQTT poiché il software di Peter comunica utilizzando questo protocollo. Una volta che hai configurato e utilizzato MQTT, ti rendi rapidamente conto di quanto sia efficiente sulla tua rete. Non è necessario polling dispositivi o addirittura conoscere l’indirizzo IP dei dispositivi. Il broker si occupa di questo. Quelli che hanno familiarità con XAP lo capiranno.
Usando il rosso nodo, ho configurato vari timer (grazie a Peter di nuovo per il suo bigtimer) e accendere le luci di notte. Usando un plug -in Wemo ora avevo anche il controllo delle lampade Wemo anche se solo accese e spento. Lo sviluppatore del plug-in rosso nodo ha promesso il controllo di dimming ad un certo punto.
OK, quindi avevo configurazione di nodi-rosso e MQTT, ma ora avevo bisogno di un modo per controllare le luci e gli interruttori sia per la voce che per una qualche forma di interfaccia meccanica o touch. Mi sono imbattuto in alcuni switch wireless da Enocean sul sito Web Element14, quindi ne ho ordinati un paio insieme al modulo enocea Raspberry Pi che si collega ai pin GPIO sul PI e utilizza l’UART per comunicare con il nodo-rosso e un plug-in.
Gli switch hanno un vantaggio in quanto non c’è batteria da installare o di cui prendersi cura. Usano la raccolta di energia attraverso una bobina e un magnete che viene attivato mentre si preme il pulsante. Purtroppo non vengono con nessun apparecchio a parete, quindi devi progettare il tuo. Forniscono un file STL del pulsante a disattivazione che puoi stampare in 3D, quindi ho usato questo e creato il mio montaggio per loro. Ciò ha 2 scopi, uno per coprire il vecchio interruttore sul muro assicurando che rimanga in posizione on in modo che i moduli della lampada siano sempre attivi e in secondo luogo per individuare i controlli in una posizione familiare.
Usando il plug enocean rosso nodo, ottiene un payload del messaggio con gli stati dei pulsanti. Analizzandolo in un interruttore rosso nodo posso inviare il comando appropriato alla luce o all’interruttore ecc. Questo è un esempio del payload inviato dallo switch enocean. È codificato in formato JSON così facile da analizzare. L’ID e V sono ciò che ci interessa.
{“Payload”: {“id”: “002d0932”, “v”: “a0 down”, “unità”: “”, “rssi”: -76, “tipo”: “stato”, “eep”: ” f6-02-03″, “man”: “ENOCEAN_GMBH”, “Desc”: “Rocker switch”, “rV”: “30”, “rawByte”: “55000707017af630002d09323001ffffffff4c000d” }, “_msgid”: “3e6d4c8f.c192b4” }
L’immagine seguente mostra l’interruttore che ha 4 uscite in base al valore msg.payload.v nel telegramma dallo switch enocean. Questi sono quindi diretti al dispositivo appropriato. Uso la funzione di disattivazione all’interno del firmware MQTT per accendere e spegnere il dispositivo dallo stesso interruttore. Ciò significa che ho fino a 4 stati di interruttore da ciascun modulo Enocean.
Ora la parte divertente inizia perché ho un’eco di Amazon e ho sempre desiderato controllare la mia casa con i comandi vocali. Puoi incolpare Scifi per questo
Non esiste un supporto per l’eco diretto, almeno non senza avere una connessione HTTPS al rosso nodo e che purtroppo è impossibile con il mio ISP, quindi avevo bisogno di un’alternativa. Usando questo Amazon Echo Habridge dal correre sullo stesso Raspberry PI3 non sono riuscito a configurare le luci di attivazione vocale ecc. L’Habridge emula un’API di Philips Hue in modo che l’eco vede i dispositivi impostati. Ecco un esempio di un dispositivo chiamato Front Room Fan.
Espruendo quanto segue all’eco, il ventilatore può essere acceso. “Alexa, accendi il fan della sala frontale” o spento dicendo “Alexa, spegnere il fan della sala davanti”
Habridge invia i comandi a nodo-rosso tramite una richiesta HTTP e quindi analizzo l’URL per i valori. Questo è uno script semplice come mostrato di seguito.
Come farlo con moduli a basso costo
Avendo progettato i miei PCB per sostituire i moduli, avevo bisogno di un modo per aggiungere ulteriori moduli di interruttore e controller di luce.
Le mie unità fatte in casa costano circa $ 15 per fare con tutti i PCB e le parti insieme. Quindi ancora a basso costo.
#
Anteprima
Prodotto
Valutazione
Prezzo
1
Jane Choi Raspberry PI 4 B Modello B Kit Starter da 8 GB (8 GB RAM) -Torsboard 64 GB SD CARD, RAFFREDAZIONEFan,…
121 recensioni
£ 222,99
Acquista su Amazon
2
Kit start-up ufficiale Raspberry Pi 400 4GB, layout del Regno Unito
215 recensioni
£ 110,56
Acquista su Amazon
3
Kit starter Ultimate Freenove per Raspberry Pi 4 B 3 B+ 400, tutorial dettagliati da 561 pagine, Python C …
2.835 recensioni
£ 42,95
Acquista su Amazon
Per ottenere questo ancora più in basso mi sono imbattuto nel Slampher Studio ITEAD e sugli switch smart S20. Questi sono circa US $ ciascuno per i moduli S20 e $ 8,50 per i controller della luce, così considerevoli rispetto a uno qualsiasi dei moduli di onda Z sul mercato. Vengono con il firmware di ITEAD controllato da un’app iOS o Android, ma volevo essere in grado di utilizzare il codice di Peter. Peter aveva fatto qualche ricerca su questo e ha scoperto che con piccole modifiche al suo codice, avrebbe programmato le unità e il lavoro ITead. Hai bisogno di un USB a UART con output da 3,3 V per farlo, ma questo è abbastanza semplice se riesci a brandire un saldatore. L’unico aspetto negativo è che i moduli ITEAD sono dotati di un flash da 512kb e per consentire al codice di Peter di eseguire gli aggiornamenti OTA, dobbiamo modificarlo in 8 MB. Gli IC della memoria sono di circa $ 3 per 5 su eBay. Armato di una stazione di rilassazione dell’aria calda (prendi in prestito un amico se non ne hai uno) il lavoro è rapido e non rischia il danno alle schede. L’immagine seguente mostra la parte superiore IC Soic a sinistra dopo aver rimosso quello vecchio e quello nuovo montato.
È inoltre necessario saldare su un’intestazione alla singola riga di 4 fori sul PCB. Ciò applica l’alimentazione alla scheda e consente di programmarlo con il firmware MQTT personalizzato. Ho un blog dettagliato su come farlo.
I moduli S20 sembrano molto intelligenti e moderni. L’interruttore di alimentazione consente di accenderlo e disattivare localmente. Quelli mostrati qui sono prese in euro ma Itead offrirà presto le opzioni statunitensi e del Regno Unito.
I moduli Slampher sono controller di lampade basati su ES27, quindi non sono ideali per il Regno Unito, ma funzionano molto bene.
Considerando che stanno offrendo i moduli Switch come Regno Unito, mi aspetto che una versione a baionetta possa arrivare presto. In realtà preferisco il tipo di vite ora per un’installazione più semplice.
Questi sono facili da aprire e modificare come prima con un ulteriore passaggio diverso dalla sostituzione dell’IC flash e cioè spostare un singolo collegamento a zero ohm fr