My Automated Home: Raspberry Pi + Node-Red + MQTT & Amazon Echo
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…
Na začiatku
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 noKoniec problémov a Windows 10 sa rozhodne, že by sa aktualizoval bez môjho súhlasu. Je čas urobiť presun do Linuxu.
Takže na základe blogu od Petra som sa rozhodol vystúpiť z môjho Raspberry Pi3 so svojím 7 ″ LCD a Fire Up-Red. Uzoly-červené pre tých, ktorí nevideli, je to veľmi pekný a stabilný softvér na riadenie drag and drop. Spočiatku bolo skľučujúce nastavenie, ale asi po týždni hry som začal zistiť, že bolo veľmi ľahké sa s ňou vyrovnať. Ak máte akékoľvek programovacie schopnosti, budete sa cítiť ako doma so skriptovaním. Všetky moduly sú poskytované ako zdroj skriptu Java a na webovej stránke uzlov-červených uzlov je obrovská a stále rastúca knižnica.
Ďalej som potreboval makléra MQTT, pretože softvér od spoločnosti Peter komunikuje pomocou tohto protokolu. Po nastavení a použití MQTT si rýchlo uvedomíte, ako efektívne je vo vašej sieti. Nie je potrebné anketovať zariadenia alebo dokonca poznať IP adresu zariadení. Broker sa o to postará. Tí, ktorí sú oboznámení s XAP, to pochopia.
Pomocou uzlov-červeného nastavujem rôzne časovače (opäť vďaka Petrovi za jeho bigtimer) a v noci zapnite svetlá. Použitím doplnku WEMO som teraz mal tiež kontrolu nad svetlá Wemo, aj keď iba zapínanie a vypínanie. Vývojár doplnku uzlov-červená sľuboval kontrolu stmievania v určitom okamihu.
Dobre, takže som mal nastavenie uzlov a MQTT, ale teraz som potreboval spôsob, ako ovládať svetlá a spínače hlasom a nejakou formou mechanického alebo dotykového rozhrania. Prešiel som cez niektoré bezdrôtové prepínače z Enocean na webovej stránke Element14, takže som si ich objednal spolu s modulom Raspberry Pi Enofean, ktorý sa pripája k kolíkom GPIO na PI a používa UART na komunikáciu s uzlom-červeným a doplnkom.
Prepínače majú odmenu v tom, že nie je na inštaláciu alebo o ňu žiadna batéria. Používajú zber energie cez cievku a magnet, ktorý je aktivovaný pri stlačení tlačidla. Bohužiaľ neprichádzajú so žiadnymi príslušenstvami na stenu, takže musíte navrhnúť svoje vlastné. Poskytujú prepínací súbor STL Button STL, ktorý môžete získať 3D vytlačený, takže som ho použil a vytvoril si pre ne svoju vlastnú montáž. To slúži na 2 účely, jeden na zakrytie starého spínača na stene, ktorý zaisťuje, že zostane v polohe, takže moduly žiarovky sú vždy zapnuté a po druhé, aby sa ovládacie prvky lokalizovali na známom mieste.
Pomocou zástrčky ENOCEAN UNDE-RED INECEAN ZÍSKAJEM Užitočné zaťaženie správy so stavmi tlačidiel. Týmto analyzovaním tohto prepínača v uzlovom red môžem poslať príslušný príkaz na svetlo alebo prepínač atď. Toto je príklad užitočného zaťaženia odoslaného spínačom Enocean. Je kódovaný vo formáte JSON tak ľahko analyzovať. ID a V sú to, čo nás zaujíma.
{“PayLoad”: {“id”: “002d0932”, “v”: “A0 Down”, “Unit”: “”, “RSSI”: -76, “Typ”: “State”, “EEP”: ” F6-02-03 “,„ Man “:„ ENOCEAN_GMBH “,„ DESC “:„ ROCKER SWITCH “,„ RV “:„ 30 “,„ RAWBYTE “:„ 55000707017AF630002D09323001FFFFFFF4C4C „}“, „_MSGID“: „3E6D4C8F.C192B4“ }
Nasledujúci obrázok zobrazuje prepínač, ktorý má 4 výstupy založené na hodnote MSG.PayLoad.v v telegrame od spínača Enocean. Tieto sú potom nasmerované na príslušné zariadenie. Funkciu prepínača vo firmvéri MQTT používam na zapnutie a vypnutie zariadenia z toho istého prepínača. To znamená, že z každého modulu Enocean mám až 4 spínače.
Teraz sa začína zábavná časť, pretože mám Amazon Echo a vždy som chcel ovládať svoj domov hlasovými príkazmi. Za to môžete viniť scifi
Neexistuje žiadna priama podpora ozveny, aspoň nie bez toho, aby som mala pripojenie HTTPS s vaším uzlom-červeným, a to bohužiaľ nie je možné s mojím poskytovateľom internetových služieb, takže som potreboval alternatívu. Pomocou tohto Amazon Echo Habridge z behu na rovnakom Raspberry Pi3 som nemohol nastaviť hlasové aktivácie svetlá atď. Habridge emuluje rozhranie Philips Hue API, takže ozvena vidí zariadenia, ktoré nastavíte. Tu je príklad zariadenia, ktoré sa nazýva ventilátor prednej miestnosti.
Tým, že v Echo vyslovuje nasledujúce, môže byť fanúšik zapnutý. „Alexa, zapnite ventilátor prednej miestnosti“ alebo vypnite tým, že poviete „Alexa, vypnite ventilátor prednej miestnosti“
Habridge odošle príkazy na uzol-červené prostredníctvom požiadavky HTTP a potom analyzujem adresu URL pre hodnoty. Toto je jednoduchý skript, ako je uvedené nižšie.
Ako to urobiť s nízkymi nákladmi modulov
Navrhol som svoje vlastné PCB na nahradenie modulov, potreboval som spôsob, ako pridať ďalšie prepínacie moduly a radiče svetla.
Moje vlastné domáce jednotky stoja okolo nás 15 dolárov na výrobu všetkých PCB a častí spolu. Takže stále nízke náklady.
#
Náhľad
Produkt
Hodnotenie
cena
1
Jane Choi Raspberry Pi 4 B Model B 8GB Štartovacia súprava (8 GB RAM)-Motherboard 64 GB SD karta, COOLIKoniec problémov a Windows 10 sa rozhodne, že by sa aktualizoval bez môjho súhlasu. Je čas urobiť presun do Linuxu.
Takže na základe blogu od Petra som sa rozhodol vystúpiť z môjho Raspberry Pi3 so svojím 7 ″ LCD a Fire Up-Red. Uzoly-červené pre tých, ktorí nevideli, je to veľmi pekný a stabilný softvér na riadenie drag and drop. Spočiatku bolo skľučujúce nastavenie, ale asi po týždni hry som začal zistiť, že bolo veľmi ľahké sa s ňou vyrovnať. Ak máte akékoľvek programovacie schopnosti, budete sa cítiť ako doma so skriptovaním. Všetky moduly sú poskytované ako zdroj skriptu Java a na webovej stránke uzlov-červených uzlov je obrovská a stále rastúca knižnica.
Ďalej som potreboval makléra MQTT, pretože softvér od spoločnosti Peter komunikuje pomocou tohto protokolu. Po nastavení a použití MQTT si rýchlo uvedomíte, ako efektívne je vo vašej sieti. Nie je potrebné anketovať zariadenia alebo dokonca poznať IP adresu zariadení. Broker sa o to postará. Tí, ktorí sú oboznámení s XAP, to pochopia.
Pomocou uzlov-červeného nastavujem rôzne časovače (opäť vďaka Petrovi za jeho bigtimer) a v noci zapnite svetlá. Použitím doplnku WEMO som teraz mal tiež kontrolu nad svetlá Wemo, aj keď iba zapínanie a vypínanie. Vývojár doplnku uzlov-červená sľuboval kontrolu stmievania v určitom okamihu.
Dobre, takže som mal nastavenie uzlov a MQTT, ale teraz som potreboval spôsob, ako ovládať svetlá a spínače hlasom a nejakou formou mechanického alebo dotykového rozhrania. Prešiel som cez niektoré bezdrôtové prepínače z Enocean na webovej stránke Element14, takže som si ich objednal spolu s modulom Raspberry Pi Enofean, ktorý sa pripája k kolíkom GPIO na PI a používa UART na komunikáciu s uzlom-červeným a doplnkom.
Prepínače majú odmenu v tom, že nie je na inštaláciu alebo o ňu žiadna batéria. Používajú zber energie cez cievku a magnet, ktorý je aktivovaný pri stlačení tlačidla. Bohužiaľ neprichádzajú so žiadnymi príslušenstvami na stenu, takže musíte navrhnúť svoje vlastné. Poskytujú prepínací súbor STL Button STL, ktorý môžete získať 3D vytlačený, takže som ho použil a vytvoril si pre ne svoju vlastnú montáž. To slúži na 2 účely, jeden na zakrytie starého spínača na stene, ktorý zaisťuje, že zostane v polohe, takže moduly žiarovky sú vždy zapnuté a po druhé, aby sa ovládacie prvky lokalizovali na známom mieste.
Pomocou zástrčky ENOCEAN UNDE-RED INECEAN ZÍSKAJEM Užitočné zaťaženie správy so stavmi tlačidiel. Týmto analyzovaním tohto prepínača v uzlovom red môžem poslať príslušný príkaz na svetlo alebo prepínač atď. Toto je príklad užitočného zaťaženia odoslaného spínačom Enocean. Je kódovaný vo formáte JSON tak ľahko analyzovať. ID a V sú to, čo nás zaujíma.
{“PayLoad”: {“id”: “002d0932”, “v”: “A0 Down”, “Unit”: “”, “RSSI”: -76, “Typ”: “State”, “EEP”: ” F6-02-03 “,„ Man “:„ ENOCEAN_GMBH “,„ DESC “:„ ROCKER SWITCH “,„ RV “:„ 30 “,„ RAWBYTE “:„ 55000707017AF630002D09323001FFFFFFF4C4C „}“, „_MSGID“: „3E6D4C8F.C192B4“ }
Nasledujúci obrázok zobrazuje prepínač, ktorý má 4 výstupy založené na hodnote MSG.PayLoad.v v telegrame od spínača Enocean. Tieto sú potom nasmerované na príslušné zariadenie. Funkciu prepínača vo firmvéri MQTT používam na zapnutie a vypnutie zariadenia z toho istého prepínača. To znamená, že z každého modulu Enocean mám až 4 spínače.
Teraz sa začína zábavná časť, pretože mám Amazon Echo a vždy som chcel ovládať svoj domov hlasovými príkazmi. Za to môžete viniť scifi
Neexistuje žiadna priama podpora ozveny, aspoň nie bez toho, aby som mala pripojenie HTTPS s vaším uzlom-červeným, a to bohužiaľ nie je možné s mojím poskytovateľom internetových služieb, takže som potreboval alternatívu. Pomocou tohto Amazon Echo Habridge z behu na rovnakom Raspberry Pi3 som nemohol nastaviť hlasové aktivácie svetlá atď. Habridge emuluje rozhranie Philips Hue API, takže ozvena vidí zariadenia, ktoré nastavíte. Tu je príklad zariadenia, ktoré sa nazýva ventilátor prednej miestnosti.
Tým, že v Echo vyslovuje nasledujúce, môže byť fanúšik zapnutý. „Alexa, zapnite ventilátor prednej miestnosti“ alebo vypnite tým, že poviete „Alexa, vypnite ventilátor prednej miestnosti“
Habridge odošle príkazy na uzol-červené prostredníctvom požiadavky HTTP a potom analyzujem adresu URL pre hodnoty. Toto je jednoduchý skript, ako je uvedené nižšie.
Ako to urobiť s nízkymi nákladmi modulov
Navrhol som svoje vlastné PCB na nahradenie modulov, potreboval som spôsob, ako pridať ďalšie prepínacie moduly a radiče svetla.
Moje vlastné domáce jednotky stoja okolo nás 15 dolárov na výrobu všetkých PCB a častí spolu. Takže stále nízke náklady.
#
Náhľad
Produkt
Hodnotenie
cena
1
Jane Choi Raspberry Pi 4 B Model B 8GB Štartovacia súprava (8 GB RAM)-Motherboard 64 GB SD karta, COOLI