Stromverbrauch des Raspberry Pi

Heute habe ich mir die Frage nach dem Stromverbrauch des Raspberry Pi gestellt, da ich zumindest einen im Dauerbetrieb für FHEM betreiben möchte. Ein schneller Blick in die Spezifikationen hilft hier weiter:

  • Raspberry Pi Model A: max. 2,5W (5V, 500 mA)
  • Raspberry Pi Model B: max. 3,5W (5V, 700mA)

Ich habe gerade mal nachgemessen: Beim hochfahren hatte er ~3,2W verbraucht, danach ist er nun bei ~2,8W. Das macht dann übers Jahr rund 25kW, was ich in Ordnung finde:

Raspberry Pi Stromverbrauch
Raspberry Pi Stromverbrauch

Werte der config.txt (=BIOS) des Raspberry Pi erläutert

Seit einiger Zeit habe ich nun einige Raspberry Pi bei mir für diverse Experimente. Da der Raspberry Pi kein konventionelles BIOS mitbringt, werden die Settings über eine Text-Datei namens „config.txt“ gemacht. Diese Datei wird dann von der GPU eingelesen, bevor der ARM-Kern initialisiert wird. Gespeichert ist die optionale Datei unter /boot/config.txt, also auf der boot-Partition. Für die einzelnen Konfigurationseinstellungen empfiehlt es sich diese vorher hier nachzulesen, um eine Erläuterung zu erhalten.

Dort habe ich beispielsweise gelesen, dass man keine Class 6 oder Class 10 SD-Karten verwenden sollte, wenn man den Raspberry Pi ausserhalb der Taktungsspezifikationen betreibt. Das könnte zwar in Kürze behoben sein, jedoch sollte man da wohl vorsichtig sein.

Installation des Busware COC auf dem Raspberry Pi für die Nutzung mit FHEM

Momentan beschäftige ich mich ein wenig mit Heimautomation. Da ich zur Miete wohne, kommt es leider nicht in Frage ein KNX/EIB-System zu installieren, da alle Teile wieder abnehmbar sein müssen. Daher muss ich eine Funklösung her. Als Software verwende ich FHEM, einen in Perl geschrieben Server, welcher die Verwaltung der Geräte übernimmt. Als Funk-Sender & -Empfänger kommt bei mir ein Busware COC zum Einsatz. Auf der Wiki-Seite von Busware wird wunderbar erläutert, wie man diese Einrichtung vollzieht, ich rate auf jeden Fall dazu, dort immer die aktuellsten Schritte nachzuvollziehen. Das folgende Tutorial ist auf dem Stand vom 09.05.2013.

Zunächst starte ich mit einem Raspbian auf dem ich das fhem-Debian-Paket installiere. Für die folgende Schritte wechsle ich auf den User „root“! Die folgenden Schritte sind natürlich auf eigene Gefahr!

Nachdem man die ersten Schritte auf dem System getan hat (SSH-Server einschalten usw.) kommt man dann zur Einrichtung des COC. Zunächst sollte man zuvor avrdude installieren, da man ohne dieses Tool nichts flashen kann:

apt-get install avrdude

Nun muss man zunächst einen Seriellen Port freimachen. Dazu muss man zunächst /etc/inittab editieren und die folgenden Zeilen mit einem Kommentar versehen:

T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100

Sodass diese so aussieht:

# T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100

Anschließend muss man alle Einträge mit ttyAMA0 aus der Datei /boot/cmdline.txt entfernen. Meine Zeile sah vorher so aus:

dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

Und danach dann so:

dwc_otg.lpm_enable=0 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait

Jetzt einmal rebooten und nach dem Boot wieder zu User „root“ wechseln! Anschließend sollte man FHEM erstmal stoppen:

/etc/init.d/fhem stop

Dann wird die Firmware geflashed. Dazu muss man zunächst wissen, ob man einen COC mit 1-Wire oder ohne gekauft hat. Hat man einen mit, so muss man diese Datei herunterladen (COC.hex) andernfalls diese Datei (COC.radio_only.hex). Da ich keine 1-Wire-Extension gekauft hatte, nehme ich letztere:

wget "http://culfw.svn.sourceforge.net/viewvc/culfw/trunk/culfw/Devices/COC/COC.radio_only.hex?revision=HEAD" -O COC.radio_only.hex

Nun muss man den COC mit ein paar Kommandos ansteuern um den Bootloader anzusprechen:

echo "calling COC bootloader..."
if test ! -d /sys/class/gpio/gpio17; then echo 17 > /sys/class/gpio/export; fi
if test ! -d /sys/class/gpio/gpio18; then echo 18 > /sys/class/gpio/export; fi
echo out > /sys/class/gpio/gpio17/direction
echo out > /sys/class/gpio/gpio18/direction
echo 0 > /sys/class/gpio/gpio18/value
echo 0 > /sys/class/gpio/gpio17/value
sleep 1
echo 1 > /sys/class/gpio/gpio17/value
sleep 1
echo 1 > /sys/class/gpio/gpio18/value

Und nun wird die Firmware geflashed (Achtung Dateiname am Ende bei dem anderen Gerätetyp tauschen!):

avrdude -p atmega1284p -P /dev/ttyAMA0 -b 38400 -c avr109 -U flash:w:COC.radio_only.hex

Dies sieht wie folgt aus:

COC-Firmware
COC-Firmware

Abschließend muss man nun noch die Datei /etc/init.d/fhem ein wenig abändern. Suche:

start)

Ersetze durch:

start)
	echo "resetting 868MHz extension..."
	if test ! -d /sys/class/gpio/gpio17; then echo 17 > /sys/class/gpio/export; fi
	if test ! -d /sys/class/gpio/gpio18; then echo 18 > /sys/class/gpio/export; fi
	echo out > /sys/class/gpio/gpio17/direction
	echo out > /sys/class/gpio/gpio18/direction
	echo 1 > /sys/class/gpio/gpio18/value
	echo 0 > /sys/class/gpio/gpio17/value
	sleep 1
	echo 1 > /sys/class/gpio/gpio17/value
	sleep 1

Dies initialisiert die COC-Erweiterung bei jedem Start von FHEM. Wenn man nun noch möchte, kann man einen Watchdog-Prozess installieren, welcher den Raspberry bei dauerhafter hoher CPU-Last durchpustet. Dies ist auf der Busware-Seite ganz unten beschrieben. Dort findet sich auch, wie man die Ansteuerung der 1-Wire und RTC Module vornimmt.