Kategorien
Raspberry Pi

Raspberry Pi – via UMTS ins Netz – Konfiguration | Einstellungen

RaspberryPi_A_UMTS_D
Raspberry Pi Model A connected via UMTS!

Ich habe mir relativ günstig bei Ebay einen ‘Medionmobile’ UMTS Stick ersteigert und zusätzlich bei Aldi ein Aldi Talk Starter-Paket gekauft.

Aldi bietet einen Tarif mit 150MB UMTS und danach GPRS Geschwindigkeit, für 3,99 im Monat und monatlich kündbar.
Es wird zwar ‘nur’ das Eplus Netz genutzt, aber das ist bei mir relativ gut verfügbar.

Kurzzusammenfassung: Was war nötig online zu gehen?

  1. wvdial installieren
  2. /etc/wvdial.conf anpassen
  3. ein zweizeiliges Bash Script für das Setzen der Simkarten PIN erstellen
  4. /etc/network/interfaces anpassen
  5. Verbindungsaufbau

1. wvdial installieren

pi@raspberrypi - $ sudo apt-get install wvdial
.
.
Success!  You can run "wvdial" to connect to the internet.
  (You can also change your configuration by editing /etc/wvdial.conf)
 
pi@raspberrypi - $

2. /etc/wvdial.conf anpassen

Dazu ist ein kleines bisschen Vorarbeit nötig.
Es ist wichtig den Pfad zu kennen, über den das UMTS Device angesprochen wird.
Nach dem Einstecken des Sticks – lsusb eingeben und sehen, ob der Stick erkannt wurde.

pi@raspberrypi ~ $ lsusb
Bus 001 Device 005: ID 12d1:1003 Huawei Technologies Co., Ltd. E220 HSDPA Modem / E230/E270/E870 HSDPA/HSUPA Modem
pi@raspberrypi ~ $

Achtung: Bei der Raspberry Pi Model B hat es nicht funktioniert den Stick direkt an der Pi zu betreiben, da die Stromversorgung zusammengebrochen ist. Der Betrieb über einen USB-Hub ging aber problemlos. Das Model A hält es aus, wohl weil die von Haus aus selbst weniger Strom verbraucht.

Die letzten Einträge von var/log/messages, zeigen zu welchem Pfad das UMTS Modem hinzugefügt wird. In meinem Fall /dev/ttyUSB0.

Feb 20 15:17:26 raspberrypi kernel: [   10.527167] usb 1-1.3: new high-speed USB device number 5 using dwc_otg

. . Feb 20 15:17:26 raspberrypi kernel: [ 11.313066] usbcore: registered new interface driver option Feb 20 15:17:26 raspberrypi kernel: [ 11.323480] USB Serial support registered for GSM modem (1-port) Feb 20 15:17:26 raspberrypi kernel: [ 11.334289] option 1-1.3:1.0: GSM modem (1-port) converter detected Feb 20 15:17:26 raspberrypi kernel: [ 11.345030] usb 1-1.3: GSM modem (1-port) converter now attached to ttyUSB0 Feb 20 15:17:26 raspberrypi kernel: [ 11.354849] option 1-1.3:1.1: GSM modem (1-port) converter detected Feb 20 15:17:26 raspberrypi kernel: [ 11.375418] usb 1-1.3: GSM modem (1-port) converter now attached to ttyUSB1

Nun habe ich die /etc/wvdial.conf für meinen Aldi – Medionmobile Zugang konfiguriert.

pi@raspberrypi /etc $ cat wvdial.conf 
[Dialer Defaults]
Phone = 
Username = 
Password = 
New PPPD = yes
 
[Dialer eplus]
Modem = /dev/ttyUSB0
Phone = *99#
Username = eplus
Password = gprs
Init3 = AT+CGDCONT=1,"IP","internet.eplus.de","0.0.0.0"
ISDN=0
Auto Reconnect=on
Stupid Mode=off
Idle Seconds=0
Auto DNS=on

3. ein zweizeiliges Bash Script für das Setzen der Simkarten PIN erstellen

Wer seine SIM Karte mit einer Pin gesichert hat, muss vor der Einwahl dafür sorgen, dass die PIN dem UMTS Modem auch bekannt ist.
Dazu dient folgendes Bash Script:

pi@raspberrypi /usr/local/bin $ sudo cat setPIN.sh
#!/bin/sh
echo "AT+CPIN=4711\n\r" > /dev/ttyUSB0

Und jetzt noch so absichern, dass nur Root rein schauen darf

pi@raspberrypi /usr/local/bin $ ls -al
insgesamt 352
-rwx--x--x  1 root staff     50 Feb 24 13:14 setPIN.sh

4. /etc/network/interfaces anpassen

Zum Schluss kommen noch 4 Zeilen in die /etc/network/interfaces

pi@raspberrypi - $ sudo cat /etc/network/interfaces ab auto ppp0
auto lo
 
iface lo inet loopback
iface eth0 inet dhcp
 
auto ppp0
iface ppp0 inet wvdial
provider eplus
pre-up /usr/local/bin/setPIN.sh
 
allow-hotplug wlan0
iface wlan0 inet manual
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf
iface default inet dhcp

pre-up /usr/local/bin/setPIN.sh -> verweist auf das Script zur PIN Übergabe.

5. Verbindungsaufbau

Die Verbindung baut sich sofort nach dem booten automatisch auf, vorausgesetzt der Stick steckt.

Nachträglich kann die Verbindung mit folgenden Kommandos auf und abgebaut werden:

pi@raspberrypi - $ sudo ifup ppp0
pi@raspberrypi - $ sudo ifdown ppp0
Kategorien
Raspberry Pi

Raspberry Pi – Keep alive zum Webserver senden

Keep_alive
Das schöne an der Raspberry Pi im Gegensatz zu Mikrocontrollern oder auch Arduino ist, dass die Kommunikation mit dem Internet sehr einfach ist.

Von Haus aus ist eine Netzwerkschnittstelle vorhanden. Eine UMTS – Karte bekommt man sicherlich auch ans Laufen, also eignet sich die Pi sehr gut um Daten / Messwerte ins Netz zu stellen.

Und wie so vieles beginnt dieses mit einem keep alive Signal, ein kleiner Ruf in die Welt, dass die Pi arbeitet und verfügbar ist.Dann noch ein kleines Script, was die Lebenssignale ansprechend darstellt (siehe ganz unten auf der Seite) und schon macht die Sache einen sehr positiven Eindruck.
Wie in der Grafik dargestellt, bedarf es nicht sehr viel, um ein solches ‘Mini’ Projekt umzusetzen.
Ein zeitlich gesteuertes Script (cron) ruft in regelmäßigen Abständen ein Script auf einem Webserver auf, welches einen Eintrag in einer Datenbank vornimmt.
Ruft ein Besucher die Webseite in der die Daten präsentiert werden sollen auf, werden durch ein weiteres serverseitiges Script die Daten zur Verfügung gestellt und präsentiert.

In den folgenden Ausführungen stelle ich die von mir verwendeten Scripts und die Präsentation der Werte am Ende vor.

Perl Script auf der Raspberry Pi

#!/usr/bin/perl -w
# Dieses Script startet ein php script auf meiner Webseite und übergibt via 
# POST Request die aktuelle Zeit, um zu zeigen, dass die RaspberryPi am Leben ist.
# Henry Koch - 20.10.2012 
use strict;
use LWP::UserAgent;
use HTTP::Request::Common qw(POST);
my $CTIME_String = localtime(time);
 
my $browser = LWP::UserAgent->new;
my $resp = 	(POST 'www.xyz.de/dir/dir/script.php', 
			['Timestamp' => $CTIME_String);
 
my $response_to_discard = $browser->request($resp);
print $response_to_discard;

 

PHP Script zum Eintrag der Timestamps in die Web-Datenbank

<?php
//20.2.2013 Dieses Script wird von meiner Raspberry Pi aufgerufen und 
//schreibt Keep alive Timestamps in eine Datenbank Tabelle
//Die Anzahl der Tabelleneinträge ist auf 432 begrenzt 
 
//Anpassung erforderlich
$DBHost   = "HOST";
$DBName   = "DB";
$DBUser   = "ICH";
$DBPasswd = "DU";
$conn = mysql_connect($DBHost, $DBUser, $DBPasswd);
mysql_select_db($DBName);
 
//maximal 432 Datensätze in der Tabelle halten
$sql = "SELECT `lfd_Nr` FROM `keepalive_Tabelle` ORDER BY lfd_Nr 
	DESC LIMIT 430,1";
 
$result = mysql_query($sql);
$row = mysql_fetch_assoc($result);
//laufende Nummer des 432-sten Datensatzes, also des ältesten Erlaubten
$nr = $row['lfd_Nr'];
mysql_free_result($result);
 
$sql = "DELETE FROM `keepalive_Tabelle` WHERE `lfd_Nr` < " . $nr . " ";
$result = mysql_query($sql);
mysql_free_result($result);
 
//Insert Timestamps (dann sind es wieder 432)
$sql = "
	INSERT INTO `keepalive_Tabelle` ( `lfd_Nr`, `ts_Garage`, 
					  `ts_Server`, `RemoteIP` )
	VALUES (
		'', '" . $_POST['Timestamp'] . "', '" . time() . "', '" . 
			 $_SERVER['REMOTE_ADDR'] . "'
	);
";
$result = mysql_query($sql);
mysql_free_result($result);
mysql_close($conn);
echo "Keepalive was run successfully";
?>

 

Parameter der verwendeten Tabelle

CREATE TABLE `keepalive_tabelle` (
  `lfd_Nr` INT(11) NOT NULL AUTO_INCREMENT,
  `ts_Garage` BIGINT(20) NOT NULL,
  `ts_Server` BIGINT(20) NOT NULL,
  `RemoteIP` VARCHAR(25) COLLATE latin1_german1_ci NOT NULL,
  PRIMARY KEY  (`lfd_Nr`)
) ENGINE=MyISAM  DEFAULT CHARSET=latin1 COLLATE=latin1_german1_ci 
  AUTO_INCREMENT=1 ;

 

PHP Script zum Aufarbeiten der Daten

<?php
//20.2.2013 Dieses Script dient zur Aufbereitung der keep alive Daten,
//die die Pi gesendet hat
//Anpassung erforderlich
$DBHost = "HOST";
$DBName = "DB";
$DBUser = "ICH";
$DBPasswd = "DU";
$conn = mysql_connect($DBHost, $DBUser, $DBPasswd);
mysql_select_db($DBName);
 
$sql = " SELECT ts_Server, lfd_Nr
FROM keepalive_tabelle
ORDER BY lfd_Nr DESC";
 
$rows = mysql_query($sql);
$first = true;
$totalCount = 0;
$tage = null;
while ($row = mysql_fetch_assoc($rows)) {
if ($first) {
$totalCount = $row['lfd_Nr'];
$first = false;
}
$timestamp = $row['ts_Server'];
if (isset($tage[date('d.n.Y', $timestamp)])) $trenner = " - ";
else $trenner = "";
$tage[date('d.n.Y', $timestamp)] .= $trenner . date('H:i', $timestamp);
}
mysql_free_result($rows);
mysql_close($conn);
echo "<h3>Die Pi hat insgesamt $totalCount Keep alive Signale gesendet</h3>";
echo "<p>Das sind die letzten 432!</p>";
 
foreach ($tage as $key => $value){
echo "<p><b>" . $key . "</b><br \>" . $value . "</p>";
}
?>

 

Präsentation der Zeitpunkte, zu denen sich die Raspberry Pi gemeldet hat.

Kategorien
Messen - Steuern - Regeln

Drehzahlmessung und Datenerfassung durch Videobeweis

Die Idee entstand beim Versuch zu ermitteln, was aus meinem Kreissägeblatt Scheibengenerator für eine Leistung kommen könnte.

Das Sägeblatt, also der Stator mit den Neodym – Magneten liegt auf einem Drehteller, der eigentlich unter einen Fernseher oder ähnliches gehört und wird per Hand angeschoben. Ein typischer Versuchsaufbau im Heimbereich eben.

Die Spulen für die Stromerzeugung, werden auch per Hand in die Richtung der Magneten geführt, was dafür sorgt, keine Hand mehr frei zu haben.

Ich kann nun punktgenau ablesen wie viel Spannung über einem Verbraucher (kleine Lämpchen) anliegt und wie viel Strom fließt. Daraus ist es einfach auf die abgegebene Leistung zu schließen.
Leider aber nur Pi mal Daumen.
Aussagen wie: Wenn ich schnell drehe, dann Leistung 1, wenn langsam, dann Leistung 2, sind möglich. Unbefriedigend.

Selbst wenn ich nun einen Drehzahlmesser zusätzlich ins Spiel bringe, wird es nicht einfach den Stator anzuschieben, die Spulen zu halten, die Werte punktgenau zur selben Zeit abzulesen.

Die Idee:

  • Sägeblatt an einer Stelle markieren, um eine Umdrehung gut nachvollziehen zu können.
  • Die Versuchsanordnung so aufbauen, dass eine Videokamera das Sägeblatt und die Messgeräte aufnehmen kann.

Das Video zur Idee:

Bemerkungen:

  • geeignet für Drehzahlen unter 300 U/min, da eine normale Videokamera nur 25 Bilder pro Sekunde aufnimmt.
  • Außer der Videokamera, werden nur noch 2 Vielzweckmessgeräte benötigt, die meist bereits vorhanden sind.
  • Das Ergebnis ist verblüffend. Ich kann damit direkt vergleichen, ob eine Änderung im Aufbau sich so auswirkt, wie ich es gern hätte.
  • Die Auswertung ist jederzeit wiederholbar. Habe ich erst mal das Video, kann ich es auch später auswerten.
Kategorien
Raspberry Pi

Intro – RaspberryPI

Seit November 2012 bin ich stolzer Besitzer einer Raspberry Pi. Nach Monate langer Wartezeit, war ich dann doch endlich an der Reihe :-).

Nun werde ich hier von Zeit zu Zeit berichten, was ich so mit dem Teil anstelle.
Mir schwebt vor das embedded Linux System in die Steuerung zur Erzeugung und dem Verbrauch von Sonnenenergie und Windenergie in meiner Garage mit einzubinden.

Da kommen stehen am Anfang die ersten Herausforderungen an, da das Modell B mit bis zu 5 Watt doch recht viel Strom verbraucht.
Gerade in den Wintermonaten gestaltet sich das als recht unvorteilhaft. Es gibt aber reichlich Literatur und Hinweise zum Thema im Netz und so versuche ich mal Fortschritte zu machen.
Der erste Eindruck, was es so gibt für 35 Euro: Ich bin sicher, dass die ersten Weltraumflüge wesentlich schlechter ausgerüstet waren! – Damit kann man bestimmt zum Mond fliegen!

Kategorien
Messen - Steuern - Regeln

002 – automatisierte Verbrauchsgenerierung und Messung

Intro:

Wie bereits im Artikel Manuelle Verbrauchsgenerierung und -Messung dargestellt, möchte ich die Menge der Energie, welche die kleine Solarzelle liefert beziffern können.

Die manuelle Messung hat sich als nicht praktikabel erwiesen. So ist es z.B. Voraussetzung vor Ort zu sein. Scheint die Sonne also stark wenn ich im Urlaub bin, schaltet der Laderegler ab und weg ist er, der Ertrag. Auch ein Grund, warum ich im sonnigen Halbjahr soviel verschenkt habe. Die bisher gemessene Leistung habe ich auf der Seite 10 Kilowattstunden in 2012 zusammengefasst.

Ein paar Bilder vom ‘Messgerät’ und dem Aufbau der Versuchsanlage:

Video:

Zielstellung:

  • Die Batterie soll immer einen gewissen Ladezustand halten, der für Aktivitäten wie Rasen trimmen oder andere diverse Elektrogeräte in der Garage benötigt wird.
  • Die Solarzellen sollen nicht leer laufen. Das heißt, dass alles was die Sonne bringt umgesetzt werden soll und wenn es auch erst einmal nur über die 26 Watt Glühlampe verbraucht wird.
  • Die Lampe soll dementsprechend ein- oder ausgeschaltet werden, um die überschüssige Energie zu verbrauchen
  • Die Anzahl der Minuten ( 10 Minutenintervalle), die die Lampe bereits eingeschaltet war soll via. Bluetooth auf dem Handy angezeigt werden.

Ablaufschema Der entsprechenden Logik:

Quellcode meines Assemblerprogramms:

;Pollin Board Stromverbrauchsgenerator und Messeinheit mit ATMega8
;Ausgabe via UART
.NOLIST
.INCLUDE "m8def.inc"
.LIST
;
; Henry Koch 5.8.2012
;
.def vierSekunden       = r1
.def Ladewert           = r2
.def IntervallCounter   = r3
;----------------------------
.def temp               = r16                   ; Register für kleinere Arbeiten
.def zeichen            = r17                   ; in diesem Register wird das Zeichen an die
                                                ; Ausgabefunktion übergeben
.def count              = r18
.def temp1              = r19
.def temp2              = r20
.def sync1              = r21
.def sync2              = r22
;
;.def messungen  = r23
.equ Schwellwert = 212                          ; 212 entspricht ca. 13,3 Volt bei meinem Spannungsteiler
.equ F_CPU = 4000000                            ; Systemtakt in Hz
.equ BAUD  = 9600                               ; Baudrate
;
; Berechnungen
.equ UBRR_VAL   = ((F_CPU+BAUD*8)/(BAUD*16)-1)  ; clever runden
.equ BAUD_REAL  = (F_CPU/(16*(UBRR_VAL+1)))     ; Reale Baudrate
.equ BAUD_ERROR = ((BAUD_REAL*1000)/BAUD-1000)  ; Fehler in Promille
;
.if ((BAUD_ERROR>10) || (BAUD_ERROR Ende
serout_string_wait:
    sbis    UCSRA,UDRE                          ; Warten bis UDR für das nächste
                                                ; Byte bereit ist
    rjmp    serout_string_wait
    out     UDR, r0
    adiw    zl:zh,1                             ; Zeiger erhöhen
    rjmp    serout_string                       ; nächstes Zeichen bearbeiten
serout_string_ende:
    ret                                         ; zurück zum Hauptprogramm
;
; Umwandlung in Dezimalzahlen
;**********************************************************************
;
; Eine 8 Bit Zahl ohne Vorzeichen ausgeben
;
; Übergabe:      Zahl im Register temp1
; veränderte Register: keine
;
lcd_number:
    push    temp1                               ; die Funktion verändert temp1 und temp2,
    push    temp2                               ; also sichern wir den Inhalt, um ihn am Ende
                                                ; wieder herstellen zu können
 
    mov     temp2, temp1                        ; das Register temp1 frei machen
                                                ; abzählen wieviele Hunderter
                                                ; in der Zahl enthalten sind
 
;** Hunderter **
    ldi     temp1, '0'-1                        ; temp1 mit ASCII '0'-1 vorladen
lcd_number_1:
    inc     temp1                               ; ASCII erhöhen (somit ist nach dem ersten
                                                ; Durchlauf eine '0' in temp1)
    subi    temp2, 100                          ; 100 abziehen
    brcc    lcd_number_1                        ; ist dadurch kein Unterlauf entstanden?
                                                ; nein, dann zurück zu lcd_number_1
    subi    temp2, -100                         ; 100 wieder dazuzählen, da die
                                                ; vorherhgehende Schleife 100 zuviel
                                                ; abgezogen hat
    rcall   lcd_data                            ; die Hunderterstelle ausgeben
;** Zehner  **
    ldi     temp1, '0'-1                        ; temp1 mit ASCII '0'-1 vorladen
lcd_number_2:
    inc     temp1                               ; ASCII erhöhen (somit ist nach dem ersten
                                                ; Durchlauf eine '0' in temp1)
    subi    temp2, 10                           ; 10 abziehen
    brcc    lcd_number_2                        ; ist dadurch kein Unterlauf enstanden?
                                                ; nein, dann zurück zu lcd_number_2
    subi    temp2, -10                          ; 10 wieder dazuzählen, da die
                                                ; vorherhgehende Schleife 10 zuviel
                                                ; abgezogen hat
           rcall lcd_data                       ; die Zehnerstelle ausgeben
 
;** Einer **
    ldi     temp1, '0'                          ; die Zahl in temp2 ist jetzt im Bereich
    add     temp1, temp2                        ; 0 bis 9. Einfach nur den ASCII Code für
    rcall   lcd_data                            ; '0' dazu addieren und wir erhalten dierekt
                                                ; den ASCII Code für die Ziffer
 
    pop     temp2                               ; den gesicherten Inhalt von temp2 und temp1
    pop     temp1                               ; wieder herstellen
    ret                                         ; und zurück
 
lcd_data:
    mov     zeichen, temp1
    loop1:
    rcall   serout                              ; Unterprogramm aufrufen
    rcall   sync
    brne    loop1                               ; solange die Null nicht erreicht ist springe zur loop
    ret
 
my_Schwellwert:     .db "ges. SchwellWert:  ",0
my_Ladewert:        .db "akt. Ladewert:  ",0
my_Intervalle:      .db "Anz. 10 Min. Int.: ",0
my_10MinIntervall:  .db "**10 Min. Int. **",10,0

Schaltplan und technische Details:

Das Pollin Board ist an der Stelle des ATMega8 Prozessors mit einem 4 MHZ Quarz bestückt.
Das ist so, weil der Stromverbrauch des Prozessors so niedriger ist und die 16 MHZ für die Anwendung absolut nicht erforderlich sind.
Das hat den Haken, dass die Baud Rate für die Kommunikation via UART nicht riesig sein kann. Aber 9600 Baud sind vollkommen ok.

Die Relaiseinheit zum schalten der 26 Watt Glühbirne und die Bluetoothkarte ist von Ebay

Die 5V Stromversorgung für das Pollin Board und die Relais Steuereinheit wurde mit einem handelsüblichen KFZ – USB Adapter realisiert.

Wünsche an eine verbesserte Version:

  • Stromzuführung für das Bluetooth Modul mit Taster des Pollin Boards steuern
  • UART Kommunikation in der Programmlogik nur aktiv betreiben, wenn das Bluetooth Modul angeschaltet ist
  • Es sollte ein Tageswechsel erkennbar sein, z.B. Start eines neuen Counters, mit jedem neuen Tag und Ausgabe einer Counterliste
  • Die 10 Minuten AUS Intervalle sind ungünstig. Möglicherweise ist der Ladezustand schon während der 10 Minuten wieder erreicht, bzw. geht so hoch, dass der Laderegler abschaltet. Habe ich am 9.8.2012 beobachtet!
  • normales Relais durch SSR tauschen und dementsprechend ansteuern
  • bessere Stabilisierung der Spannung, so dass die Messwerte nicht so sehr schwanken
  • den Spannungsteiler evtl. mit einer 10 Volt Zehnerdiode realisieren
Kategorien
Messen - Steuern - Regeln

001 – manuelle Verbrauchsgenerierung und Messung

Mein Ziel für 2012 ist es 10 KW Stunden Strom selbst herzustellen.

Das erfordert die hergestellte Menge in irgendeiner Form zu quantifizieren.
Also habe ich mir Gedanken gemacht, wie das am einfachsten, mit einer relativ hohen Genauigkeit realisiert werden kann.

Da ich als Speichermedium eine Autobatterie verwende, bietet es sich an eine Glühlampe vom Auto zu nutzen.
Ich hatte eine Lampe zur Hand, die 2 Glühfäden enthält. Einmal 21 Watt für das Abblendlicht und einmal 5 Watt für das Standlicht. Beide zusammen geschaltet ergibt in Summe 26 Watt.

Wird diese nun eine Stunde lang eingeschaltet, hat Sie genau 26 Wattstunden oder ganze 0,026 KWh Energie verbraucht.
Nach 38,47 Stunden Dauerlicht hat die Lampe 1 KWh verbraucht. Das klingt ewig, aber bei dem kleinen 20 Watt Panel (bei voller Sonneneinstrahlung) dauert es ja auch recht lang bis die Energie mal in die Batterie hinein gelaufen ist.
Da kann ich dann den Verbrauch auch ein wenig genießen.

Vorteile der Lösung:

  • absolut geringer Materialaufwand
  • relativ genau
  • sehr schnell umsetzbar

Nachteile der Lösung:

  • manuelles Ein- und natürlich auch wieder Ausschalten ist erforderlich
  • manuelles notieren der Verbrauchszeiten erforderlich
  • hohes Risiko die Batterie zu stark zu entladen, im Falle, dass das Ausschalten verspätet erfolgt

Messergebnisse:

Summe 5554 2,41 KWh
Datum Startzeit Endzeit Summe Summe in Minuten Verbrauchte Leistung Verbraucher Erzeuger Ablesemodus
21.05.12 08:49:00 12:53:00 04:04:00 244 105,73 W 26 Watt Birne Solarzelle 20W per Hand
22.05.12 08:35:00 14:25:00 05:50:00 350 151,67 W 26 Watt Birne Solarzelle 20W per Hand
25.05.12 08:28:00 17:28:00 09:00:00 540 234,00 W 26 Watt Birne Solarzelle 20W per Hand
28.05.12 13:53:00 18:25:00 04:32:00 272 117,87 W 26 Watt Birne Solarzelle 20W per Hand
29.05.12 15:48:00 20:25:00 04:37:00 277 120,03 W 26 Watt Birne Solarzelle 20W per Hand
31.05.12 08:09:00 17:38:00 09:29:00 569 246,57 W 26 Watt Birne Solarzelle 20W per Hand
07.06.12 08:04:00 15:29:00 07:25:00 445 192,83 W 26 Watt Birne Solarzelle 20W per Hand
16.06.12 09:02:00 13:15:00 04:13:00 253 109,63 W 26 Watt Birne Solarzelle 20W per Hand
18.06.12 08:08:00 15:54:00 07:46:00 466 201,93 W 26 Watt Birne Solarzelle 20W per Hand
28.06.12 09:00:00 09:30:00 00:30:00 30 13,00 W 26 Watt Birne Solarzelle 20W per Hand
01.07.12 15:26:00 19:26:00 04:00:00 240 104,00 W 26 Watt Birne Solarzelle 20W per Hand
03.07.12 14:22:00 19:06:00 04:44:00 288 124,80 W 26 Watt Birne Solarzelle 20W per Hand
08.07.12 09:04:00 13:28:00 04:24:00 264 114,40 W 26 Watt Birne Solarzelle 20W per Hand
11.07.12 17:17:00 22:20:00 05:03:00 303 131,30 W 26 Watt Birne Solarzelle 20W per Hand
13.07.12 15:58:00 20:51:00 04:53:00 293 126,97 W 26 Watt Birne Solarzelle 20W per Hand
24.07.12 18:08:00 21:27:00 03:19:00 199 86,23 W 26 Watt Birne Solarzelle 20W per Hand
01.08.12 08:26:00 17:07:00 08:41:00 521 225,77 W 26 Watt Birne Solarzelle 20W per Hand
Kategorien
Programmierung

Programmieren – Weiterleitung zur alten Seite