volkszaehler.org Zählerbox

Das volkszaehler.org Projekt nähert sich mit großen Schritten seiner ersten stabilen Version und damit dem ersten Release.

Ich möchte hier nur einen kurzen Überblick über den aktuellen Stand geben. Du kennst das Projekt noch gar nicht? Weiß nicht was Smartmeter sind? Da steigst du besser auf unsere Projekt Website ein!

Für die Entwicklung am Projekt habe ich mir eine kleine Hutschienenbox gebaut. Sie eignet sich perfekt für den mobilen Einsatz und zum Testen neuer Firmware und Funktionen. Mal schnell den Verbrauch des eigenen Kühlschranks zu erfassen ist kein Problem. Derzeit ist mein Schreibtisch an die Box angeschlossen und liefert so aktuelle Daten für die Demo Installation des Projektes.

Die Box enthält folgende Komponenten:

  • ~230V Eingang über Kaltgerätestecker (geerdet, max. 10 Ampere)
  • ~230V Ausgang über Schukostecker (geerdet, max. 16 Ampere)
  • Sicherungsautomat (Ein-/Ausschalter)
  • B&G E-Tech DRS-154D S0-Zähler (einphasig, 2000 Impulse/kWh)
  • Udo’s S0-Server (basierend auf ATMEL AVR’s & ethersex, 10 Mbit/s Ethernet, TFTP Bootloader)
  • Knopf zum manuellen Triggern von Impulsen
  • externer Anschluss von Zählern

Aktueller Stand

Der alte Prototyp wurde nun durch ein flexibleres und modulares System ersetzt. Praktisch jede Kombination von Sensoren, Zählern, Controllern und Frontends ist möglich. Hier sind keine Grenzen mehr gesetzt.

Du kannst das Projekt zum Erfassen des eigenen Strom-/Wasser-/Gasverbrauchs ebenso benutzen wie zur Abrechnung eines ganzen Studentenwohnheims.

Zur Visualisierung bist du nicht mehr an das Browser basierte Web-Frontend gebunden. Durch den modularen Aufbau können viele Frontends gleichzeitig verwendet werden: Smartphone, Laptop etc.. Gleiches gilt für die Sensoren/Zähler. Hier kannst du beliebig viele gleichzeitig auswerten. Sie müssen noch nicht einmal am gleichen Ort installiert sein.

So schwebt derzeit die Idee im Raum ein Sensornetzwerk von Geigerzählern zur verteilten Strahlunsmessung aufzubauen.

Screenshot des Frontends
Die Zählerbox

Ausblick

Die Ideen sprudeln nur so aus unser heraus. Es ist ein Jammer, dass ich gerade nicht mehr Zeit in das Projekt invertieren kann. Aber mein Studium hält mich derzeit sehr in Atem. Nach den Klausuren geht es dann wieder etwas schneller weiter.

Unsere Agenda ist endlos:

  • erste stablie Version veröffentlichen
  • Betriebsstundezähler unterstützen
  • weitere Controller, wie den Flukso und „offizielle“ Smartmeter unterstützen
  • Radioaktivität messen
  • Visualisierung für Smartphones
  • Visualisierung über Moodlights
  • Installation vereinfachen

Hast du weitere Ideen, Anregungen, möchtest etwas verbessern oder eigene Features hinzufügen? Dann bist du immer auf unsere Mailingliste willkommen! Wir freuen uns über jeden fleißigen Helfer 😉

 

Conway’s Game of Life

Als Übung für meine Informatik Vorlesung an der RWTH Aachen habe ich diese C Implementation von Conways Game of Life geschrieben.

Dieses simple „zero player“ Game wird komplett im Terminal ausgeführt. Mit Mausunterstützung und Farben wurden mit libncurses realisiert.

Den Quelltext findet ihr inklusive eines Makefiles in meinem git-Repository.

Hints & Shortcuts

  • p“ pausiert das Spiel
  • q“ beendet das Spiel
  • c“ leert das Spielfeld
  • die Leertaste setzt eine Zelle
  • die Pfeiltasten bewegen den Cursor
  • die Maus kann zum Bewegen des Cursors genutzt werden
  • 0“ fügt ein chaotisches Anfangsmuster ein
  • 1“ fügt einen Glider in das Spielfeld ein
  • 2“ fügt einen Segler in das Spielfeld ein
  • 3“ fügt einen Buffer in das Spielfeld ein
  • +“ erhöht die Anzahl der Generationen pro Sekunde (frames per second)
  • “ erniedrigt die Anzahl der Generationen pro Sekunde (frames per second)

fnordlicht vu meter

Last time, I showed you my new fnordlicht’s. Today, I’ve a little gift for you: I’ve written a small c program to control the lights according to the current peak level.

The software analyses the audio signal of my system (Ubuntu 10.10 with pulseaudio). So you can dance to everything that can play audio.. 😀

Update: As preparation for a exam, I added a discrete fourier analysis (DFT). Unfortunatly the serial bus is to slow to visualize the audio spectrogram in real time 🙁 The bars are colored with their complex phase->hue (HSV) aquivalent.

The software uses and is distributed together with my fnlib (fnordlicht library) available under: http://web.git.0l.de/libfn.git

Some technical details (in german):

Ich benutze PulseAudio um mich in die Soundkarte des Systems einzuklingen. Das Programm tarnt sich als Recording-Tool. Und kann dadurch den kompletten Audio-Output oder nur bestimmte Programme visualisieren. Sogar das Mikrofon kann ich benutzen :p

PulseAudio liefert mir einen einfachen PCM Stream (44,1kHz Samplingrate, Mono & 16-Bit signed Integers). Derzeit addiere ich immer nur x Werte dieses Bytestreams und mittele diese Summe dann über einen kurzen Zeitraum.

Geplant ist noch eine FFT-Analyse um  die Amplituden verschiedener Frequenzen gemäß der „Ohrkurve“, der Empfindlichkeit des menschlichen Gehörs, gewichten zu können. Der Schritt zur Spektraldarstellung (jedes meiner 10 fnordlichter als VU-Meter für ein bestimmtes Frequenzband) ist dann hoffentlich auch nicht mehr so weit.

Ohrkurve

Hints (for me)

simple mounting of encrypted partitions with encrypted keyfiles

Source: www.clipartlogo.com

My external HDDs are encrypted with LUKS. The keyfiles to decrypt these partitions are encrypted by GnuPG with a private key which is stored on a smartcard.

To easily mount my external HDDs I use this small bash script:

/snippets/blob/master/bash_scripts/mountcrypt
#!/bin/bash
gpg -d /media/usbstick/.secret/luks.key.enc | sudo pmount -p - $1 $2

Tutorial

Thats a quite simple tutorial. Most steps have been described in others howtos. Feel free to link them in the comments.

Setup

  1. Create a PGP keypair
  2. Generate a keyfile for the LUKS partition
  3. Make a copy  of your PGP keyring and the LUKS keyfile and safe them in a safe location
  4. Move your keys to your smartcard and replace your private keys by stubs
  5. Create your LUKS partition
  6. Add the keyfile to a LUKS key slot
  7. Encrypt the LUKS keyfile
  8. Move the encrypted keyfile to an USB stick
  9. Add the script from above to your USB stick

Usage

  1. Insert your smartcard, USB stick and the LUKS encrypted harddisk
  2. Call the script from above from your USB stick
  3. Enter your smartcard pin
  4. Enjoy!

Have fun!