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…
Στην αρχή
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 noend of trouble and being Windows 10 it would decide it would update itself without my permission. Time to make the move to Linux.
So, based on the blog from Peter I decided to get out my Raspberry Pi3 with its 7″ LCD and fire up Node-Red. Node-Red for those who have no seen this is a very nice and stable drag and drop control software. At first it was daunting to setup but after about a week of playing I started to find that it was very easy to get to grips with. If you have any programming skills, then you will feel at home with the scripting. All the modules are provided as Java script source and there is a huge and ever increasing library for it on the Node-Red website.
Next I needed an MQTT broker as the software from Peter communicates using this protocol. once you have setup and used MQTT, you quickly realise how efficient it is on your network. There is no need to poll devices or even to know the devices IP address. The broker takes care of this. Those familiar with xAP will understand this.
Using Node-Red I setup various timers (thanks to Peter again for his BigTimer) and switch on the lights at night. using a Wemo plugin I now also had control of the Wemo Lamps albeit only on and off. The developer of the Node-Red plugin has promised dimming control at some point in time.
Ok, so I had Node-Red and MQTT setup but now I needed a way to control the lights and switches by both voice and some form of mechanical or touch interface. I ran across some wireless switches from Enocean on the Element14 website so I ordered a couple of them along with the Raspberry Pi Enocean module which plug into the GPIO pins on the Pi and uses the UART to communicate with Node-Red and a plugin.
The switches have a perk in that there is no battery to install or take care of. They use energy harvesting through a coil and magnet that is activated as you press the button. They sadly don’t come with any wall fixtures so you have to design your own. They do provide a toggle button STL file that you can get 3D printed so I used this and created my own mounting for them. This serves 2 purposes, one to cover the old switch on the wall ensuring it remains in the ON position so that the lamp modules are always on and secondly to locate the controls in a familiar location.
Using the Node-Red Enocean plug in I get a message payload with the button states. By parsing this in a Node-Red switch I can send the appropriate command to the light or switch etc. This is an example of the payload sent by the Enocean switch. It’s encoded in JSON format so easy to parse. The ID and V are what we are interested in.
{ “payload”: { “id”: “002d0932”, “v”: “A0 down”, “unit”: “”, “rssi”: -76, “type”: “state”, “EEP”: “f6-02-03”, “man”: “ENOCEAN_GMBH”, “Desc”: “Rocker switch”, “rV”: “30”, “rawByte”: “55000707017af630002d09323001ffffffff4c000d” }, “_msgid”: “3e6d4c8f.c192b4” }
The following image shows the switch which has 4 outputs based on the msg.payload.v value in the telegram from the Enocean switch. These are then directed to the appropriate device. I use the toggle feature within the MQTT firmware to switch the device on and off from the same switch. This means I have up to 4 switch states from each Enocean module.
Now the fun part begins because I have an Amazon Echo and I have always wanted to control my home with voice commands. You can blame SciFi for this
There is no direct Echo support, at least not without having an HTTPS connection to your Node-Red and that sadly is impossible with my ISP so I needed an alternative. using this Amazon Echo HABridge from running on the same Raspberry Pi3 I could not setup voice activate lights etc. The HABridge emulates a Philips hue API so the Echo sees the devices you setup. here is an example of a device which is called Front room Fan.
By uttering the following at the Echo, the fan can be turned on. “Alexa, turn on front room fan” or off by saying “Alexa, turn off front room fan”
The HABridge sends the commands to Node-Red via an HTTP request and I then parse the URL for the values. This is a simple script as shown below.
How to do this with low cost Modules
Having designed my own PCB’s to replace the modules I needed a way to add additional switch modules and light controllers.
My own home made units cost around US$15 to make with all the PCB’s and the parts together. So still low cost.
#
Προεπισκόπηση
Προϊόν
Εκτίμηση
Τιμή
1
Jane Choi Raspberry Pi 4 B model B 8GB Starter kit (8GB RAM)-Motherboard 64GB SD Card, CoolingΑνεμιστήρας,…
121 κριτικές
222,99 £
Αγορά στο Amazon
2
Raspberry PI 400 4GB Επίσημο κιτ εκκίνησης, UK Layout
215 κριτικές
110.56 £
Αγορά στο Amazon
3
Freenove Ultimate Starter Kit για Raspberry Pi 4 B 3 B+ 400, 561-σελίδες Λεπτομερές σεμινάρια, Python C …
2.835 κριτικές
42,95 £
Αγορά στο Amazon
Για να το πάρω ακόμα χαμηλότερο, βρήκα το Itead Studio Slampher και τους έξυπνους διακόπτες S20. Αυτά είναι περίπου US $ 12 το καθένα για τις μονάδες S20 και 8,50 δολάρια για τους ελεγκτές φωτός τόσο σημαντικά λιγότερο από οποιαδήποτε από τις ενότητες Z-Wave στην αγορά. Έρχονται με το firmware της ITEAD που ελέγχεται από μια εφαρμογή iOS ή Android, αλλά ήθελα να μπορώ να χρησιμοποιήσω τον κώδικα του Peter. Ο Πέτρος είχε κάνει κάποια έρευνα σε αυτό και διαπίστωσε ότι με μικρές αλλαγές στον κώδικα του, θα προγραμματίσει στις μονάδες και να εργαστεί. Χρειάζεστε ένα USB στο UART με έξοδο 3.3V για να το κάνετε αυτό, αλλά αυτό είναι αρκετά απλό εάν μπορείτε να χειριστείτε ένα συγκολλητικό σίδερο. Το μόνο μειονέκτημα είναι ότι οι ενότητες ITEAD έρχονται με ένα φλας 512KB και για να επιτρέψουμε στον κώδικα του Πέτρου να κάνει ενημερώσεις OTA, πρέπει να το αλλάξουμε σε 8MB. Τα IC μνήμης είναι περίπου $ 3 για 5 στο eBay. Οπλισμένοι με σταθμό ανακατασκευής ζεστού αέρα (δανειστείτε φίλους αν δεν έχετε) η δουλειά είναι γρήγορη και δεν διακινδυνεύει ζημιά στα διοικητικά συμβούλια. Η ακόλουθη εικόνα δείχνει το άνω αριστερό μέρος του SOIC μετά την αφαίρεση του παλιού και του νέου που έχει τοποθετηθεί.
Πρέπει επίσης να συγκολλήσετε σε μια κεφαλίδα στην ενιαία σειρά 4 οπών στο PCB. Αυτό εφαρμόζει την εξουσία στο διοικητικό συμβούλιο και σας επιτρέπει να την προγραμματίσετε με το προσαρμοσμένο υλικολογισμικό MQTT. Έχω ένα λεπτομερές ιστολόγιο για το πώς να το κάνω αυτό.
Οι μονάδες S20 φαίνονται πολύ έξυπνες και μοντέρνες. Ο διακόπτης τροφοδοσίας σας επιτρέπει να ενεργοποιήσετε και να απενεργοποιήσετε τοπικά. Αυτά που εμφανίζονται εδώ είναι οι υποδοχές ευρώ, αλλά η ITEAD θα προσφέρει τόσο τις επιλογές των ΗΠΑ όσο και του Ηνωμένου Βασιλείου πολύ σύντομα.
Οι μονάδες Slampher είναι ελεγκτές λαμπτήρων με βάση το ES27, ώστε να μην είναι ιδανικές για το Ηνωμένο Βασίλειο προς το παρόν, αλλά λειτουργούν πολύ καλά.
Λαμβάνοντας υπόψη ότι προσφέρουν τις μονάδες διακόπτη ως Ηνωμένο Βασίλειο, θα περίμενε κανείς ότι μια έκδοση ξιφολόγου μπορεί να έρθει σύντομα. Προτιμώ πραγματικά τον τύπο βιδών τώρα για ευκολότερη εγκατάσταση.
Αυτά είναι εύκολο να ανοίξουν και να τροποποιηθούν όπως πριν με ένα επιπλέον βήμα διαφορετικό από την αντικατάσταση του flash IC και αυτό είναι να μετακινήσετε ένα ενιαίο σύνδεσμο μηδενικού ohm FR FR