Monitor your plants with Home Assistant

I love to have a lot of plants in my apartment, but unfortunately I sometimes forget to water them. So why not using modern technology to make sure, I don’t ever forget it again.

What you need

  • A Raspberry Pi or a Linux-PC with a supported Bluetooth LE interface.
  • Bluez
  • Mi Plant flower sensor for every plant
  • Home assistant

Setup

Home assistant

First you should install Home Assistant and make sure everything works well. Home assistant provides good documentation how to setup the platform.

Bluetooth software

The Linux bluetooth software might not yet be installed on your system.

Check communication with the plant sensor

The easiest way to make sure your PC can read data from the sensor is using the hcitool command line tool.

hcitool lescan
LE Scan ...
XX:XX:XX:XX:XX:XX (unknown)
XX:XX:XX:XX:XX:XX Flower mate

It might list a lot of other devices. Just make sure, it can also see the “Flower mate” device. If you can’t see this device, the distance between the flower sensor and your PC might be too large. Try moving the plant near your PC and check if it works then.

Integrate polling into Home Assistant

First, you need to poll the data from the sensor in Home Assistant:

sensor
  platform: miflora
  mac: xx:xx:xx:xx:xx:xx
  name: Flower 1
  force_update: false
  monitored_conditions:
   - moisture
   - light
   - temperature
   - conductivity

As the MAC address, you need to use the address that is shown in the hcitool lescan output.

Notify yourself when you come home

It doesn’t make much sense to send you a notification during the day that you should water the flowers. You might have forgotten it already when you come home. So let’s just send a notification when you come home.

Setup presence detection

Home Assistant documentation how to do this. There are a lot of different device trackers. Have a look and decide what works best for you.

Setup notifications

The next step is sending a notification to you. For this guide I use Pushetta, but Home Assistant provides a large number of notification mechanisms. Have a look at them and select the one that fits best for you.

An example notifier configuration might look like this:

notify
  name: pushetta
  platform: pushetta
  channel_name: mychannel
  api_key: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Define the automation

Now comes the new rule:

automation:
  alias: Alarm me to water plants
  trigger:
    platform: state
    entity_id: device_tracker.myname
    from: 'not_home'
    to: 'home'
  condition:
    condition: numeric_state
    entity_id: sensor.flower1_moisture
    below: 20
  action:
    service: notify.pushetta
    data:
      message: 'Water Flower 1!'

What does this do? First it checks it check, if you came from (device tracker changes from not_home to home) and check then if the moisture is below a well-defined threshold. The value might be a bit different for your plant, you need to adjust this. If the moisture is too low, it sends a notification via Pushetta.

You can combine multiple plants in the condition statement or create an automation for every single plant. I personally prefer the latter as I then know exactly which plant I should water.

Long-term monitoring

It often helps to have long-term data available to optimize not only watering, but also fertilize in the right intervals. While you can store the whole history within Home assistant, it isn’t really optimized for this use case. Therefore I recommend to use InfluxDB for this. This is a time-series database specifically designed to store sensor data over a long period. To visualize the data, I use Grafana. With this, you can create nice reports like this:
TODO

Reverse engineering the Mi flora plant sensor

The Xiaomi Mi plant sensor is a well-made plant sensor that does not only measure the humidity, but also fertility, temperature and environment light. Pretty cool for a small device like this. And even cooler is that it uses Bluetooth Low energy for communication with your mobile device. This should make it easily hackable.

Ok, let’s start and check what characteristics are available:

handle = 0x0002, char properties = 0x02, char value handle = 0x0003, uuid = 00002a00-0000-1000-8000-00805f9b34fb
handle = 0x0004, char properties = 0x02, char value handle = 0x0005, uuid = 00002a01-0000-1000-8000-00805f9b34fb
handle = 0x0006, char properties = 0x0a, char value handle = 0x0007, uuid = 00002a02-0000-1000-8000-00805f9b34fb
handle = 0x0008, char properties = 0x02, char value handle = 0x0009, uuid = 00002a04-0000-1000-8000-00805f9b34fb
handle = 0x000d, char properties = 0x22, char value handle = 0x000e, uuid = 00002a05-0000-1000-8000-00805f9b34fb
handle = 0x0011, char properties = 0x1a, char value handle = 0x0012, uuid = 00000001-0000-1000-8000-00805f9b34fb
handle = 0x0014, char properties = 0x02, char value handle = 0x0015, uuid = 00000002-0000-1000-8000-00805f9b34fb
handle = 0x0016, char properties = 0x12, char value handle = 0x0017, uuid = 00000004-0000-1000-8000-00805f9b34fb
handle = 0x0018, char properties = 0x08, char value handle = 0x0019, uuid = 00000007-0000-1000-8000-00805f9b34fb
handle = 0x001a, char properties = 0x08, char value handle = 0x001b, uuid = 00000010-0000-1000-8000-00805f9b34fb
handle = 0x001c, char properties = 0x0a, char value handle = 0x001d, uuid = 00000013-0000-1000-8000-00805f9b34fb
handle = 0x001e, char properties = 0x02, char value handle = 0x001f, uuid = 00000014-0000-1000-8000-00805f9b34fb
handle = 0x0020, char properties = 0x10, char value handle = 0x0021, uuid = 00001001-0000-1000-8000-00805f9b34fb
handle = 0x0024, char properties = 0x0a, char value handle = 0x0025, uuid = 8082caa8-41a6-4021-91c6-56f9b954cc34
handle = 0x0026, char properties = 0x0a, char value handle = 0x0027, uuid = 724249f0-5ec3-4b5f-8804-42345af08651
handle = 0x0028, char properties = 0x02, char value handle = 0x0029, uuid = 6c53db25-47a1-45fe-a022-7c92fb334fd4
handle = 0x002a, char properties = 0x0a, char value handle = 0x002b, uuid = 9d84b9a3-000c-49d8-9183-855b673fda31
handle = 0x002c, char properties = 0x0e, char value handle = 0x002d, uuid = 457871e8-d516-4ca1-9116-57d0b17b9cb2
handle = 0x002e, char properties = 0x12, char value handle = 0x002f, uuid = 5f78df94-798c-46f5-990a-b3eb6a065c88
handle = 0x0032, char properties = 0x0a, char value handle = 0x0033, uuid = 00001a00-0000-1000-8000-00805f9b34fb
handle = 0x0034, char properties = 0x1a, char value handle = 0x0035, uuid = 00001a01-0000-1000-8000-00805f9b34fb
handle = 0x0037, char properties = 0x02, char value handle = 0x0038, uuid = 00001a02-0000-1000-8000-00805f9b34fb
handle = 0x003b, char properties = 0x02, char value handle = 0x003c, uuid = 00001a11-0000-1000-8000-00805f9b34fb
handle = 0x003d, char properties = 0x1a, char value handle = 0x003e, uuid = 00001a10-0000-1000-8000-00805f9b34fb
handle = 0x0040, char properties = 0x02, char value handle = 0x0041, uuid = 00001a12-0000-1000-8000-00805f9b34fb

Looks like some standard characteristics (the uuid’s starting with 00002) and a lot of non-standard. Let’s check the standard characteristics first. UUID 00002a00-0000-1000-8000-00805f9b34fb should contain the device name:

# gatttool --device=C4:7C:8D:60:8F:E6 --char-read -a 0x03
Characteristic value/descriptor: 46 6c 6f 77 65 72 20 6d 61 74 65 

“46 6c 6f 77 65 72 20 6d 61 74 65” is “Flower mate” in ASCII. Cool. Seems that Xiaomi is using the standards – not something we see from every Chinese company.

How do you know that this UUID contains the name? Check out the list of GATT characteristics on the Bluetooth web site.

Ok, let’s have a look at all characteristics that return values:

0x03 : 160823-164329 : 46 6c 6f 77 65 72 20 6d 61 74 65
0x05 : 160823-164329 : 00 00
0x07 : 160823-164329 : 00
0x09 : 160823-164329 : 0a 00 14 00 00 00 f4 01
0x0e : 160823-164329 : 01 00 ff ff
0x12 : 160823-164329 : c3 c8 fd 30
0x15 : 160823-164329 : 98 00
0x17 : 160823-164329 : 1f 8e 8e 13 86 dd a0 d8 52 66
0x1d : 160823-164329 : 4c cc ca 13 fc fa f7 a6 51 50 c6 85 ee 61 85 47 7f 3d d6 6b
0x1f : 160823-164329 : 2e a1 bc 3e b3 87 94 e9 68 6f ff b7
0x2f : 160823-164329 : 00
0x33 : 160823-164329 : aa bb
0x35 : 160823-164329 : f5 00 00 00 00 00 00 10 61 00 00 00 00 00 00 00
0x38 : 160823-164329 : 64 10 32 2e 36 2e 32
0x3c : 160823-164329 : aa bb cc dd ee ff 99 88 77 66 55 44 33 22 11 10
0x3e : 160823-164329 : aa bb cc
0x41 : 160823-164329 : 81 8d 23 00

Hmm, look pretty wild. Looking at the data you have no idea what they might encode.

Let’s try something different and dump all values every 10 minutes.

We see a lot of values that do not change at all like this:

0x38 : 160823-073844 : 64 10 32 2e 36 2e 32
0x38 : 160823-074852 : 64 10 32 2e 36 2e 32
0x38 : 160823-075856 : 64 10 32 2e 36 2e 32
0x38 : 160823-080859 : 64 10 32 2e 36 2e 32
0x38 : 160823-081909 : 64 10 32 2e 36 2e 32
0x38 : 160823-082914 : 64 10 32 2e 36 2e 32
0x38 : 160823-083918 : 64 10 32 2e 36 2e 32
0x38 : 160823-084922 : 64 10 32 2e 36 2e 32
0x38 : 160823-085925 : 64 10 32 2e 36 2e 32
0x38 : 160823-090931 : 64 10 32 2e 36 2e 32
0x38 : 160823-091936 : 64 10 32 2e 36 2e 32
0x38 : 160823-092940 : 64 10 32 2e 36 2e 32
0x38 : 160823-093945 : 64 10 32 2e 36 2e 32
0x38 : 160823-094951 : 64 10 32 2e 36 2e 32
0x38 : 160823-100006 : 64 10 32 2e 36 2e 32
0x38 : 160823-101010 : 64 10 32 2e 36 2e 32
0x38 : 160823-102014 : 64 10 32 2e 36 2e 32
0x38 : 160823-103018 : 64 10 32 2e 36 2e 32
0x38 : 160823-104022 : 64 10 32 2e 36 2e 32

Others seem to change randomly like this

0x41 : 160823-073844 : d4 0d 23 00
0x41 : 160823-074852 : 31 10 23 00
0x41 : 160823-075856 : 8e 12 23 00
0x41 : 160823-080859 : f0 14 23 00
0x41 : 160823-081909 : 4d 17 23 00
0x41 : 160823-082914 : aa 19 23 00
0x41 : 160823-083918 : 02 1c 23 00
0x41 : 160823-084922 : 5f 1e 23 00
0x41 : 160823-085925 : bc 20 23 00
0x41 : 160823-090931 : 19 23 23 00
0x41 : 160823-091936 : 76 25 23 00
0x41 : 160823-092940 : d3 27 23 00
0x41 : 160823-093945 : 30 2a 23 00
0x41 : 160823-094951 : 97 2c 23 00
0x41 : 160823-100006 : f4 2e 23 00
0x41 : 160823-101010 : 51 31 23 00
0x41 : 160823-102014 : ae 33 23 00
0x41 : 160823-103018 : 06 36 23 00
0x41 : 160823-104022 : 63 38 23 00
0x41 : 160823-105025 : c0 3a 23 00

But then there is one characteristic with very controlled changes:

0x35 : 160823-073844 : f2 00 00 68 00 00 00 10 66 00 00 00 00 00 00 00
0x35 : 160823-074852 : f2 00 00 54 00 00 00 10 66 00 00 00 00 00 00 00
0x35 : 160823-075856 : f1 00 00 54 00 00 00 10 66 00 00 00 00 00 00 00
0x35 : 160823-080859 : f2 00 00 54 00 00 00 10 66 00 00 00 00 00 00 00
0x35 : 160823-081909 : f2 00 00 68 00 00 00 10 66 00 00 00 00 00 00 00
0x35 : 160823-082914 : f2 00 00 54 00 00 00 10 66 00 00 00 00 00 00 00
0x35 : 160823-083918 : f2 00 00 68 00 00 00 10 65 00 00 00 00 00 00 00
0x35 : 160823-084922 : f2 00 00 68 00 00 00 10 66 00 00 00 00 00 00 00
0x35 : 160823-085925 : f2 00 00 57 00 00 00 10 66 00 00 00 00 00 00 00
0x35 : 160823-090931 : f2 00 00 57 00 00 00 10 65 00 00 00 00 00 00 00
0x35 : 160823-091936 : f2 00 00 57 00 00 00 10 65 00 00 00 00 00 00 00
0x35 : 160823-092940 : f2 00 00 57 00 00 00 10 65 00 00 00 00 00 00 00
0x35 : 160823-093945 : f2 00 00 57 00 00 00 10 65 00 00 00 00 00 00 00
0x35 : 160823-094951 : f2 00 00 6b 00 00 00 10 65 00 00 00 00 00 00 00
0x35 : 160823-100006 : f2 00 00 6b 00 00 00 10 63 00 00 00 00 00 00 00
0x35 : 160823-101010 : f2 00 00 6b 00 00 00 10 63 00 00 00 00 00 00 00
0x35 : 160823-102014 : f2 00 00 79 00 00 00 10 65 00 00 00 00 00 00 00
0x35 : 160823-103018 : f2 00 00 79 00 00 00 10 63 00 00 00 00 00 00 00
0x35 : 160823-104022 : f2 00 00 6b 00 00 00 10 65 00 00 00 00 00 00 00
0x35 : 160823-105025 : f2 00 00 79 00 00 00 10 65 00 00 00 00 00 00 00

Seems like there are 4 bytes of values and a lot of zeros. Could these 4 byte be the sensor values? They are!
Now let’s check the values in the Mi app on the iPhone:

  • 24.2 degree celcius
  • 121 Lux
  • 16% moisture
  • 101 us/cm fertility (whatever this means)

Except for the temperature these values map nicely to the data:

  • 16 = 0x10 – byte 8
  • 121 = 0x79 – byte 4
  • 101 = 0x65 – byte 9

The only thing that isn’t yet clear is the encoding of the temperature.

Also the sensor should be able to measure up to 10000 lux. This won’t work with a single byte. So, let’s put another plant it into the bright sunlight:

25 01 00 f7 26 00 00 28 0e 01 00 00 00 00 00 00
  • Fertility is now 270, which is bytes 9 and 10 (MSB byte 9, LSB byte 10)
  • Sunlight is 9975 lux which is stored in bytes 4 and 4 (MSB byte 4, LSB byte 5)
  • And now it is also getting clear how the temperature is encoded. It is in 0.1 degree Celcius steps in bytes 1 and 2, which gives us 29.3 degree celcius in this example (which fits the data displayed by the app).

Überwachung von Waschmaschine und Trockner

Vermutlich kennen viele das Problem: Man legt die Wäsche in die Waschmaschine und vergisst sie dann. Wenn die Wäsche ein paar Stunden im Trockner liegt, ist das bei modernen Trocknern kein grosses Problem, aber die Wäsche in der Waschmaschine für einige Stunden zu vergessen ist kein Spass.

Nolan Gilley hat einen interessanten Artikel geschrieben, wie man Beschleunigngssensoren nutzen kann, um Waschmaschine und Trockner mit Home Assistant zu überwachen. Hier geht es zum englischsprachigen Artikel.

protoboard

I werde das demnächst mal selbst probieren. Es wäre sicher spannend, das Konzept auszubauen und statt des ESP8266 eine Bluetooth-Low-Energy chip zu nutzen und die Betriebsspannung direkt aus den Vibrationen zu erzeugen. Allerdings sind Piezo-Elemente für derartige Anwendungen recht teuer, weshalb sich das wohl finanziell nicht lohnt.

Anschluss eines Feinstaubsensors an PC oder Mac

Ein einem früheren Artikel haben wir Feinstaubsensoren vorgestellt. Viele dieser Sensoren kommen mit einem kleinen 8-poligen Anschluss. Mit etwas Glück findet man sogar ein englischsprachiges Datenblatt. Es könnte aber sein, dass es nur ein Chinesisches gibt, wie z.B. dieses hier:

pmsensor-cover

Glücklicherweise haben die Pins englischsprachige Bezeichnungen.

datasheet

Das ist eigentlich schon alles, was wir brauchen, um dieses Gerät mit dem PC zu verbinden. Die Betriebsspannung ist 5V, die I/O-Pins nutzen 3.3V- Das passt perfekt für die meisten Anwendungen. Weiterhin gibt es eine serielle Schnittstelle (RX/TX) und einen SET und einen RESET Eingang.

Jetzt brauchen wir nur noch einen USB/Seriell Adapter. Diese Schaltungen gibt es in den verschiedensten Varianten. Sie sehen z.B. so aus:

usbser1 usbser2

usbser3

Beim Kauf sollte man darauf achten, dass der Adapter sowohl 5V als auch 3.3V bereitstellen kann. Für dieses Projekt brauchen wir zwar nur 5V, aber es kann später hilfreich sein, wenn auch gleich noch 3.3V zur Verfügung stehen. Weiterhin sollte der Adapter einen DTR-Ausgang haben (den werden wir nutzen, um den Sensor ein- und auszuschalten).

Jetzt verbinden wir das ganze wie folgt:

 VCC pin 1  5V
 GND pin 2 GND
 TX pin 4  RX
 RESET  pin 6  DTR

Achtung: Die Pinnummern beziehen sich auf oben gezeigten Sensor. Die Anschlussbelegung ist nicht bei allen Sensoren gleich und sollte daher umbedingt geprüft und an den genutzten Sensor angepasst werden.

Warum ist RX nicht verbunden? Alle derartigen Sensoren, die ich bisher gesehen haben, geben lediglich Daten aus. Das heisst, dass RX-Signal wird nicht genutzt. Daher muss es auch nicht verbunden werden. Wer will kann auch RX anschliessen.

Letztendlich sollte es etwa so aussehen:

dust-sensor-interface

Das ist schon alles was getan werden muss, um den Sensor mit dem PC oder Mac zu verbinden. Nun können die Daten ausgelesen werden. Wie das geht, zeige ich in einem weiteren Artikel.

5 Ways to start Home Automation for under $50

Home Automation is getting more and more simple with each day. Using WiFi, almost everything in your house can become ‘smart’. For under $50 you can begin to monitor and control your house, from anywhere, without breaking the bank.

Hook-Budget-Home-Automation-SystemHook: The Hook home hub finds its origins in DIY Home Automation. With successful crowdfunding, Hook is a low-cost Automation system that can control up to 15 devices remotely; in partnership with IOS, Android, Amazon Alexa, and the IFTTT web server. With Radio Frequency compatibility, Hook can convert any cheap RF socket to a smart socket. The Hook hub ships this month for just $49.95.

tplinkTP Link: This smart outlet is an affordable Home Automation device that can give your house a lived-in look to deter burglars with its ‘away mode’ protocols, turn your devices on and off from afar, and control your appliances. Compatible with Android, iOS and Amazon Alexa, the outlet also integrates energy monitoring, and can be controlled through their free Kasa app. A low-cost beginning that save you money and monitors your home, the TP Link comes with a 2-year warranty and 24/7 customer support to guide you through the transition of smart-proofing your home. The TP Link can be purchased for $40.72, with cheaper options starting at $29.95.

huePhilips Hue lighting:  Starting at $29.99, your investment need not go beyond a lightbulb. The Philips hue lighting products offer lighting protocols that adjust to your time of day; creating a natural light that can also be customized for specific moods and settings. With daily routines and quick-control features, you can flick the switch; dimming or turning off your lighting, from your smart light-switch on your phone. With the addition of an optimized, open source Home Automation system such as Hobson, this investment can be the first piece of your Home Automation framework, and control your in-home lighting remotely, for ‘lived-in’ protection in your house. Philips Hue also offers a free app tailored specifically towards this product.

insteonforscamInsteon Remote Control Plug-In On/Off Module: This small hub can control lamps and other small appliances. The perfect introduction to Home Automation, Insteon is compatible with smartphones for remote accessibility. Starting at $49.99, the Insteon can also be connected to a larger hub, for when you need to expand upon your Home Automation.

Foscam Camera: Using Home Automation, you can check on your house remotely with this IP camera. With its own remote viewing and recording system, this device can easily be linked into any open source software, as part of your User Interface; growing with multiple devices. Pricing for Foscam IP cameras start at $39.99

Home Automation has become a vast and diverse landscape of options. Expanding outside of WiFi’s limitations, Investment in Home Automation seeks to revitalize your household with Infrared, Bluetooth and Z-wave compatibility.

Umbau des H801 LED Dimmers

Heute erhielt ich nach nicht allzu langer Wartezeit den H801 LED Dimmer. Beim Untersuchen des Gerätes konnte ich mir jedoch nicht vorstellen, was die Anschlüsse W1 und W2 sein sollen (die anderen Anschlüsse waren mehr oder weniger selbsterklärend). Also habe ich das Gehäuse entfernt und das Board genauer angeschaut. Positiv überrascht stellte ich fest, dass ich sich nicht um einen 3-Kanal-, sondern sogar um einen 5-Kanal-Dimmer handelt. W1 und W2 sind 2 zusätzliche Kanäle, die man z.B. für gemischte RGB/Weiss-LED-Streifen nutzen kann.

Die weitere Installation erschient nicht kompliziert. An die Stromversorgung anschliessen und starten.

Jetzt kann man mit dem Laptop oder Smartphone auf den Accesspoint HCX_856705 (die Zahlen können evtl. anders sein) verbinden. Etwas Suche brauchte das Passwort, aber ich konnte es am Ende finden. Das Standardpasswort ist 8888888. Jetzt fangen die Probleme an, wenn man kein Android-Telefon besitzt. Ich hätte wenigstens ein simples Webinterface erwartet, aber es ist nichts derartiges vorhanden. Die einzige Methode zur Steuerung des Gerätes scheint eine Android-App zu sein.

Nun gab es für mich zwei Option: eine andere Firmware programmieren und aufspielen oder einen Android-Emulator zu benutzen. Letzteres schien die schnellere Methode zu sein. Also probierte ich es mit Droid4X – leider erfolglos. Ich bin nicht sicher, was das Problem war, evtl. wollte der Android-Emulator die Netzwerkverbindung meines Macs nicht nutzen.

Also zurück zur ersten Variante – eine neue Firmware. Etwas derartiges mache ich nicht gerne, aber bei einem Gerät, was weniger als 20 Euro kostet und anderweitig nicht nutzbar ist, was das doch die sinnvollste Option.Glücklicherweise ist das Flashen einer alternativen Firmware sehr einfach. Es gibt bereits einen RX/TX/GND/3.3V header und den J3 header, der zur Programmierung kurzgeschlossen werden muss. Also schnell ein paar Header auflöten und das Board neu programmieren.

h801-header
Als Software nutzte ich die Software von Eryk.io und passte diese leicht an. Den angepassten Code findet man in meinem Github repository.

Die GPIOs sind wie folgt belegt:

Pin Function
15 Ausgang Rot
13 Ausgang Grün
12 Ausgang Blau
14 Ausgang Weiss 1
4 Ausgang Weiss 2
1 Status-LED grün
5 Status-LED rot

Raspberry Pi as a Home Automation Server

The Raspberry Pi is a credit card-sized Linux computer on a single circuit board that runs on an SD card. It is powered off a 5V supply – so it can run all day it uses very little electricity and only costs around £25 – £45. The Raspberry Pi has a graphical output with a HDMI plug and a good standard of audio processing. It has networking capabilities, so you can plug it into your home network if you want to and configure it to automatically connect in the future, or you can plug it into a USB Wi-Fi dongle. As it is wireless, you can then place this server anywhere in your house because it is so portable (in a cupboard, below your desk, in the garage – even outside). The server is low cost, high performing and as of 2015, Raspberry Pi had sold over 8 million computers after launching in just 2012). The latest model is the Raspberry Pi 3 – modified to include wireless LAN and Bluetooth; making IoT and mobile projects more accessible. They were first designed to teach children how computers are made/ work, but are increasingly being used for a variety of other projects.

Moving your home automation code and programs over to the Raspberry Pi makes is simplistic in nature. You can connect low-level electronics to it, so you can read from sensors, but at the same time run Python scripts and interface with other devices on your network such as a Philips Hue hub – as well as pulling data from the internet. You also have the ability to create a graphical display if you want to; you can plug it into a monitor and plug in a keyboard and mouse and use it like a fully graphical-interfaced computer to do the programming. And because it is a Linux server too, you can connect to it via SSH on your home network.

The Raspberry Pi Foundation is committed to helping people learn about computers and how to solve problems in the digital world, so the company’s profits go straight into funding the training of teachers to help people use the technology they offer. They are a forward-thinking company, solving the modern-day shortage of programmers and coders by educating, training and enabling people to build their own HA servers in their own homes.

Phillips HUE-Emulation mit dem ESP8266

Ich bin bekennender Fan des ESP8266. Auf einigen Chinesischen Webseiten findet man unter dem Namen “H801” einen billigen LED Dimmer, der diesen Chip nutzt. Dieser Dimmer kann RGB-LED-Streifen ansteuern.

Einige technische Informationen sind auf dieser holländischen Webseite zu finden.

H801_small

Ein Problem ist die Ansteuerung dieses Dimmers. Das relativ einfache Protokoll wurde mittlerweile dokumentiert. Es ist allerdings komplett proprietär und daher schwer in bestehende Automatisierungslösungen zu integrieren.

Eine mögliche Lösung dieses Problems könnte eine Phillips Hue Emulation sein. Es gibt das Github-Projekt ESP8266HueEmulator welches das Hue-Protokoll auf dem ESP8266 implementiert.

Achtung: Der Dimmer ist zwar im Internet käuflich erhältlich. Das Gerät hat aber kein CE-Zertifizierung und darf daher in der EU nicht in Betrieb genommen werden.

Home Security with Raspberry Pi and a Webcam

Home security has never been easier. Though the terms “front end development” and “open source” may be daunting to some, Raspberry Pi hardware is a cost-effective and efficient solution that makes Home Automation a DIY commodity.

For $39.99, Raspberry Pi, is paired with a Mirco SD card (at least 2GB), USB Hub and a compatible webcam, to create a simple means of home security.

The Raspberry Pi is a self-powered motherboard, that either remotely or connected to a monitor and keyboard via its own USB ports. Having inserted a formatted SD card into the slot of the Motherboard, you can begin set up your Home Automation system. Your Webcam needs to be connected to a USB hub which is then connected to the motherboard in order to supply power to your camera.

First, Raspberry Pi needs to install an operating system to its motherboard. Whereas you can access your OS’s terminal directly, use of NOOBS’ Raspbian integrated OS, is the most convenient set up for beginners. Note that this option can be booted directly onto your Raspberry Pi, through a preloaded SD card.

Having inserted your SD card into your computer’s card reader, you will first need to format it to FAT-32. Following this, you can then download NOOBS and its integrated Raspbian software. Upon installing Raspbian on your computer, Windows Clients will need to download Win32 in order to burn this OS to an SD card, whereas Mac and Linux clients can do so by opening the Disk Utility and Terminal.

Once this is done, your SD card can be inserted into the Raspberry Pi.

For the convenience of simply controlling your electronics; such as a webcam, Raspberry Pi can then be controlled remotely from another device over a local network using a Secure Shell (SSH).

For remote access, you will need to download a free IP Scanner client and an SSH client such as Putty.  This will identify your Raspberry Pi from your OS. Taking note of your hardware’s IP address in the scan, you can remotely configure your Pi through the SSH client.

To install the camera connected to your USB hub, you will need to configure your Raspberry Pi’s terminal to enable it, and create a webcam server. Over a remote control server, the webcam can then be accessed from using the Pi’s IP address. There is also configuration available online to access your webcam stream from an internet browser. Alternatively, you can connect a camera module to Raspberry Pi’s CSI port, enabling your Raspberry Pi to become its own IP webcam.

Home Assistant für Hausautomation

Wer auf der Suche nach Hausautomatisierungen-Software ist, wird auf viele verschiedene Projekte stossen. Im Moment ist das Thema “hip” und viele Entwickler arbeiten an Hausautomatisierungeprojekten. Viele Projekte legen den Hauptfokus auf die Visualisierung. Zwar ist eine gut aussehendes und gut bedienbare Benutzerschnittstelle wichtig, aber eigentlich sollte eine Hausautomatisierung die meisten Sachen automatisch tun.

Ein Projekt, welches im Bereich “Automatisierung” sehr flexibel ist ist Home Assistant. Die Systemarchitektur ist sehr klar und einfach. Es gibt eine saubere Trennung zwischen Visualisierung und Backend. Durch eine Webschnittstelle ist es einfach möglich, für die Visualisierung und die Steuerung ein eigenes GUI zu entwickeln und nutzen. Für mich persönlich ist es auch ein Vorteil, dass die Software in Python geschrieben ist, was die Erweiterung um zusätzliche Funktionalitäten vereinfacht.

Eine Home Assistent Architecture könnte wir folgt aussehen:

ha-architecture

KNX ist im Moment (Mitte Juni 2016) noch nicht unterstützt, aber ich arbeite gerade an einem Modul. Ich hoffe, dass dieses demnächst in Home Assistant integriert werden kann.