Category Archives: Hacking

Home Automation with Python…

I’ve been giving a talk at Grazer Linuxtage 2017. It’s about Home Automation and how you can use Python to realize it.

The talk covers a simple example of a DIY sensor that runs MicroPython. Finally I give a short introduction to Home Assistant, a Python Home Automation Hub, that allows you to integrate with hundreds of devices. Home Assistant offers integrations to light switches, smart lights (Hue, Trådfri, Lightify,…), door sensors, heat control units, and many others.

There is a video of my talk on my Youtube channel:

Flattr this!

DIY MQTT smart plug with MicroPython…

I’ve been playing around with MicroPython and Home Assistant. MicroPython is a ‘bare-metal’-Python flavor that you can use to program ICs. Home Assistant is a home automation and home control software written in Python 3. It can be hosted on a Raspberry Pi. It enables you to connect a vast amount of different devices: lights, switches, sensors, locks etc.

This is a raw guide on how to make your own smart plug and connecting it to MQTT which is then connected to Home Assistant.

You will need a relay board (single relay), a NodeMCU board, a power adapter for 5V, a case, a button, some wire and a 1k resistor.

Connect the devices according to this schema (WARNING: Don’t do this if you’re not comfortable handling mains power!). Don’t forget earthing (it’s not on the diagram):
circuit diagram

Flash the MicroPython firmware to the NodeMCU board. Put the ‘relay_mqtt.py‘ file on it as main.py. That way it will be run when the device boots up. Adjust the code to connect to your network and MQTT server first.

You can download the code here.

My device looks like this:

See the Home Assistant documentation for how to integrate the MQTT part with Home Assistant.

The nice thing is: you can press the button to switch the device. The status of the device will update via MQTT and Home Assistant gets a correct status update. You can of course switch the device from within Home Assistant as well.

Happy hacking!

Flattr this!

Bitcoin Paper Wallet Treasure Chest…

The Bitcoin Paper Wallet Treasure Chest
The Bitcoin Paper Wallet Treasure Chest
One of the challenges with bitcoin is to store them securely. There have been several well known incidents where Bitcoins have been stolen. It is no mystery. Bitcoin IS money! It’s the same with Euros or Dollars, when you have it lying around it will eventually be missing.

There is a twist with bitcoin to regular money. With Bitcoin one single piece of information is enough for the thief to steal your Bitcoins: Your private key. With Bitcoin it’s about keeping this piece of information secret.

Continue reading Bitcoin Paper Wallet Treasure Chest…

Flattr this!

Open Street Map RL Wallpaper…

The final result
The final result

We wanted to paint one wall in our vestibule to add a little more color to the room. As we could not settle on a specific color, I thought of wallpaper. And is there any better theme than OpenStreetMap Data¹?

 
The theme was settled. It had to be a map, but which tiles? I thought of the beautiful pencil drawn MapBox tiles I saw some time ago:

OpenStreetMap Pencil Tiles by MapBox
OpenStreetMap Pencil Tiles by MapBox

We wanted some redish color so I had to convert the image with ImageMagick:

$ ./colorize.sh 25 file_in.png file_out.png
$ cat colorize.sh

#!/bin/bash
# I found this script in the imagemagick formus:
# http://www.imagemagick.org/discourse-server/viewtopic.php?t=17460#p91820
# It does about the same as gimp with the colorize option.
test -z $1 && exit -1

hue=$1
sat=50
light=0
hue=`convert xc: -format "%[fx:100*$hue/360]" info:`
sat=`convert xc: -format "%[fx:2*$sat]" info:`
test=`convert xc: -format "%[fx:$light<0?0:1]" info:`
light=`convert xc: -format "%[fx:abs($light)]" info:`
if [ $test -eq 0 ]; then
fillcolor="black"
else
fillcolor="white"
fi

convert \
$2 -set colorspace RGB -colorspace gray -set colorspace sRGB \
-fill "hsl($hue%,100%,50%)" -tint 40% \
-modulate 100,$sat,100 \
-fill $fillcolor -colorize $light% $3

the result is something like this:
Continue reading Open Street Map RL Wallpaper…

Flattr this!

Maischebottich Severin EA 3653…

wer zuhause bier braut benötigt neben viel zeit und geduld auch die nötige ausrüstung. etwas mehr der letzteren wenn man direkt mit malz arbeitet.
hier fällt der arbeitsschritt des maischens an.

fürs maischen und würze kochen habe ich mir einen severin einkochautomat (3653) besorgt. das gerät kostet 70 euro und hat die richtige grösse. mit 29 litern fassungsvermögen geht sich ein 20 liter sud gut aus.

es gibt nur ein kleines problem, den überhitzungsschutz. dieser verhindert dass dickflüssige flüssigkeiten im einkochautomat erhitzt werden. er löst aus und das heizelement lässt sich für ein paar stunden nicht zum arbeiten überreden. um maische gut verarbeiten zu können muss man den überhitzungsschutz deaktivieren.

die gebrauchsanweisung zitiert:

Überhitzungsschutz:
Das Gerät ist durch einen speziellen Übertemperaturbegrenzer vor Überhitzung geschützt. Sollte der Überhitzungsschutz das Gerät abschalten, ziehen Sie den Netzstecker und lassen Sie das Gerät abkühlen. Anschließend ist das Gerät wieder funktionsbereit.
Achtung: Der Einkochautomat ist nur zur Erwärmung von Flüssigkeiten ausgelegt. Dickflüssige Speisen dürfen nicht erhitzt werden, da durch die ungleichmäßige Wärmeabnahme der Überhitzungsschutz das Gerät abschalten kann. Reklamationen aus diesem Grund können daher verständlicherweise nicht anerkannt werden.

das habe ich gelesen, nachdem mir der erste einkochautomat beim maischen den dienst quittiert hat und ich diesen beim händler gegen einen neuen ausgetauscht hatte.
nachdem ich wieder dasselbe gerät hatte, musste ich einen weg um den überhitzungsschutz finden. der stand im weg zwischen mir und meinem bier – das geht nicht. ergo überhitzungsschutz deaktivieren…

hier wird beschrieben wie man das macht. Continue reading Maischebottich Severin EA 3653…

Flattr this!

Integrating android devices into the torrent landscape…

Transdroid Screenshot on ICS (Android 4.0)
i’m using bittorrent for downloading. more precisely the transmission daemon on my home server for the heavy lifting (downloading torrents). to administer the downloads the web frontend is perfect. in the background runs the transmission daemon which handles the torrents and accepts requests of all sorts of clients. you can even pass magnet links you clicked, from your desktop to the remote daemon with a little hacking.

To get the same comfort for your android device (phone or tablet), you need an app. i’m using transdroid, which currently is NOT available in the google play store (former android market). get the latest transdroid apk here.

Transdroid download link
Before you install transdroid you might want to read a little about the app on the transdroid website. Further you need to allow apps from ‘unknown sources’ in your android settings. Download the app via the link above or the QR-code (get a qr-code reader here).

Continue reading Integrating android devices into the torrent landscape…

Flattr this!