START
Planung
ein Rezept
ein (1) Rat
noch´n Tip
mein Wetter (23.08.2020)
FAQ
Kontakt
Impressum
START
|
Energie aus Wind
|
|
Wer nach den jüngsten Ereignissen (2011: Fukushima und der wiederholte Ausstieg aus der Kernenergie) mit dem Gedanken spielt, in die dezentrale Energieerzeugung einzusteigen, der wird sich auch mit dem Thema "Bodennahe Klein-Windkraftanlagen für den Eigenverbrauch" beschäftigen.
Vor der Anschaffung solch einer Anlage im Wert eines Kleinwagens steht vernünftigerweise das Messen.
Man will schließlich wissen, ob die Ausbeute am beabsichtigten Standort überhaupt ausreicht und auf welche Amortisationszeiten man sich einstellen muss.
Zum Messen braucht man einen externen Windsensor, der seine festgestellten Daten per Funk oder Kabel an einen Datenlogger - meist eine Wetterstation - weiterreicht. Dafür kann man gerne Euros im mittleren 3- bis 4-stelligen Bereich hinlegen.
Mit folgendem Rezept und etwas Mut geht es preisgünstiger:
Zutaten:
Anzahl |
|
ca. Euro |
1 |
Windsensor (extern) hier Außensensor KS 300 der Firma ELV mit Schalenkreuz-Anemometer, Regenmesser, Hygrometer und Thermometer. |
100,-- |
4 |
Rohrschellen hier: Baumarkt |
8,-- |
1 |
Gewindestange, 8 mm hier: Baumarkt |
2,-- |
1 |
Wetterdaten-Empfänger hier: Wetterdaten-Empfänger USB-WDE1 der Firma ELV |
30,-- |
1 |
funktionsfähiger Alt-PC für den 24-Stunden-Betrieb hier: ein lüfterloser Klein-PC mit 500-MHz-Prozessor, externer Festplatte, genügend USB-Schnittstellen und dem Betriebssystem Ubuntu 7.04 (Linux) |
0,-- |
Zubereitung:
1. |
Der aufgebaute Kombi-Sensor (Batterien!) wird mit den 4 Rohrschellen und 2 abgesägten Gewindestückchen an einem vorhandenen Mast (war mal für die TV-Antenne) angeflanscht (Foto). |
2. |
Der Wetterdaten-Empfänger wird an eine USB-Schnittstelle des Rechners angeschlossen.
Es bedarf keines Linux-Treibers. Nach dem Einstecken finden wir unter "/dev" eine Geräte-Datei namens "ttyUSB0", welche dem "root" gehört.
Jetzt brauchen wir die shell-Kommandos "stty" und "tail", um die Schnittstelle lesen zu können.
Dazu begeben wir uns als "root"
user@rechner:~$ su - root Password: PASSWORT
|
in das Verzeichnis "/root"
root@rechner:~# cd /root; pwd
|
und fertigen mit einem Text-Editor ein kleines shell-Script namens "wetter.scr" mit folgendem Inhalt (ohne die Zeilennummern und das folgende Leerzeichen!)
01
02
03
04
05
06
|
#!/bin/bash
#wetter.scr
stty -F /dev/ttyUSB0 9600 cs8 raw -cstopb -parity -icanon -hupcl min 0 time 10
tail -f /dev/ttyUSB0 >> wetter.txt
|
(Wichtig: Die beiden Kommandos Zeile 05 und 06 müssen je in einer (1) Zeile stehen!)
und geben ihm mit
root@rechner:~# chmod 744 wetter.scr
|
die Zugriffsrechte "-rwxr--r--" (Der Eigentümer "root" darf lesen, schreiben und ausführen - der Rest der Welt darf nur lesen).
Wirkung:
Das shell-Kommando "stty" stellt die USB-Schnittstelle so ein, dass wir sie lesen können und das shell-Kommando "tail" liest die laufend vom externen Kombi-Sensor gesendeten sog. Datentelegramme.
Wenn wir dann das Script mit
root@rechner:~# bash wetter.scr
|
aufrufen, dann erscheint kein "Prompt" mehr, weil "tail -f" im Script laufend die USB-Schnittstelle überwacht.
Wir müssen des Script "wetter.scr" mit der Tastenkombination [CTRL] [C] bzw. [Strg] [C] (gleichzeitig gedrückt) abbrechen und sehen dann
root@rechner:~# pwd; ls -l
|
dass es uns an Ort und Stelle eine Datei namens "wetter.txt" erzeugt hat.
Wir lesen diese Datei mit
root@rechner:~# cat wetter.txt
|
und erhalten z.B. als Inhalt die Zeile
$1;1;;;;;;;;;;;;;;;;;;;19,4;52;0,0;1;0;0
|
Das ist das letzte gesendete "Datentelegramm" des externen Kombi-Sensors in csv-Schreibweise:
19,4 = Temperatur am Sensor in Grad Celsius
52 = die relative Luftfeuchtigkeit am Sensor in %
0,0 = die am Sensor gemessene Windgeschwindigkeit in kmh
1 = die bisher gezählten Wippenschläge (ca. 5.41 ml pro Wippenschlag) des Regenmessers
In der Datei "wetter.txt" stehen also immer nur die reinen Daten. Und zwar in einer Datei, auf die immer nur "root" Zugriff hat und die in der System-Partition steht und laufend wachsen würde.
Wenn wir als normaler User die Windausbeute feststellen wollen, dann müssen wir diese Datenzeilen zur Auswertung in einer weiteren Datei außerhalb der System-Partition sammeln.
Und Datum und Uhrzeit - der Kombisensor hat keinen Zeitgeber - wären auch nicht schlecht.
Sie ahnen es: Wir brauchen ein weiteres shell-Script.
Wir schreiben also im Verzeichnis "/root"
root@rechner:~# cd /root; pwd
|
mit einem Text-Editor das shell-Script namens "wetter-out.scr" mit folgendem Inhalt (ohne die Zeilennummern und das folgende Leerzeichen!)
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
#!/bin/bash
# wetter-out.scr
wetterscr="/root"; export wetterscr
wetterhome="/root/wetter"; export wetterhome
wetterziel="/media/disk/IRGENDEIN_VERZEICHNISNAME"; export wetterziel
zieldatei=`basename $wetterhome`; export zieldatei
ablagedatei=`date +%Y%m%d`
ablagedatei="${ablagedatei}.txt"; export ablagedatei
dateidatum="----------------"; export dateidatum
if [ -s "${wetterscr}/wetter.txt" ]
then
var=(`ls -l wetter.txt`)
dateidatum="${var[5]} ${var[6]}"; export dateidatum
rm -f ${wetterscr}/wetterkop.txt
# kein "mv", weil ">>" der Datei folgt !!!
cp ${wetterscr}/wetter.txt ${wetterscr}/wetterkop.txt
# leer machen
touch otto.txt
cp otto.txt wetter.txt
rm -f otto.txt
fi
# Tagesdatei wechseln
if [ -f "${wetterhome}/${ablagedatei}" ]
then true
else
cp ${wetterhome}/20*.txt ${wetterscr}/sicherung.txt
cp -r ${wetterhome} ${wetterziel}
var="cronlog_`date +%Y%m%d`.txt"
cp ${wetterscr}/cronlog.txt ${wetterziel}/${zieldatei}/${var}
chown -R USERNAME ${wetterziel}/${zieldatei}
chgrp -R USERGROUP ${wetterziel}/${zieldatei}
chmod 444 ${wetterziel}/$zieldatei/*.txt
# neu anlegen
rm -r ${wetterhome}
mkdir ${wetterhome}
> ${wetterscr}/cronlog.txt
cp ${wetterscr}/sicherung.txt ${wetterhome}
fi
var="`date +%Y\-%m\-%d` `date +%H:%M:%S` [ $dateidatum ] `tail -1 ${wetterscr}/wetterkop.txt`"
echo "$var" >> ${wetterhome}/${ablagedatei}
var="`date +%d\.%m\.%Y` `date +%H:%M:%S` Uhr - cron-Job erledigt."
echo "$var" >> ${wetterscr}/cronlog.txt
|
und geben ihm mit
root@rechner:~# chmod 744 wetter-out.scr
|
die Zugriffsrechte "-rwxr--r--".
Hinweis:
In Zeile 07 tragen Sie irgendein existierendes Verzeichnis ein. Am besten eines mit einer Freigabe, sodass Sie die Daten auch von einem anderen Rechner aus auswerten können.
Auf der System-Partition sollte das Verzeichnis nicht liegen, damit diese nicht vollgeschrieben werden kann.
In Zeile 36 und 37 ersetzen Sie USERNAME durch den login-Namen eines existierenden Users und USERGROUP durch den Namen einer Gruppe, der er angehört.
Wirkung:
Das Script liest die Datei "wetter.txt", sammelt die Datentelegramme in einer temporären Datei und versieht jede Zeile vorne mit Lesedatum und Leseuhrzeit, sowie Schreibdatum und Schreibuhrzeit der Datei "wetter.txt".
Wenn das Script feststellt, dass sich Schreibdatum und Schreibuhrzeit der Datei "wetter.txt" seit dem letzten Lesen nicht geändert haben, wenn also der Inhalt unverändert ist, dann ersetzt es Schreibdatum und Schreibuhrzeit durch "----------------".
Wenn das Script feststellt, dass ein neuer Tag angebrochen ist, dann sichert es die temporäre Sammeldatei auf den Namen "sicherung.txt" und auf den Namen "JJJJMMTT.txt" (also z.B. "20001224.txt") und kopiert beide in das (in Zeile 07) angegebene Verzeichnis und stellt die Rechte auf die des Verzeichnis-Besitzers (Zeilen 36 und 37) um und die Zugriffsrechte auf "Lesen für alle", damit diese wertvollen Daten nicht versehentlich gelöscht werden können.
Beispielsweise ein
user@rechner:~$ ls -l /media/disk/IRGENDEIN_VERZEICHNISNAME
|
kann dann (auszugsweise) so aussehen:
...
-r--r--r-- 1 USERNAME USERGROUP 63334 2000-12-12 00:00 20001211.txt
-r--r--r-- 1 USERNAME USERGROUP 63360 2000-12-13 00:00 20001212.txt
-r--r--r-- 1 USERNAME USERGROUP 63360 2000-12-14 08:40 20001213.txt
-r--r--r-- 1 USERNAME USERGROUP 63360 2000-12-15 00:00 20001214.txt
-r--r--r-- 1 USERNAME USERGROUP 63356 2000-12-16 00:00 20001215.txt
-r--r--r-- 1 USERNAME USERGROUP 63158 2000-12-17 00:00 20001216.txt
-r--r--r-- 1 USERNAME USERGROUP 63356 2000-12-18 00:00 20001217.txt
-r--r--r-- 1 USERNAME USERGROUP 63360 2000-12-19 00:00 20001218.txt
...
-r--r--r-- 1 USERNAME USERGROUP 64080 2000-12-24 00:00 sicherung.txt
|
Hinweis: Das Script "wetter-out.scr" führt die beschriebenen Vorgänge nur einmal durch. Es muss also - im Gegensatz zum Script "wetter.scr" - regelmäßig aufgerufen werden, und zwar alle 2 Minuten. Der externe Kombi-Sensor sendet seine Datentelegramme nämlich unregelmäßig alle 1 bis 4 Minuten und hin und wieder auch in größeren Zeitabständen.
Um ein Programm (hier: shell-Script) regelmäßig aufzurufen, bemühen wir den "cron".
(Für Nicht-UNIX´ler: Das ist ein sog. "Daemon", ein Prozess der permanent im Hintergrund läuft und jede Sekunde in einer benutzerbezogenen Datei namens "crontab" nachschaut, ob er was tun soll.)
Wir tragen also als "root" mit dem shell-Kommando "crontab -u root -e" (Vorsicht: Standard-Editor kann "vi" sein!) den Aufruf unseres shell-Scripts "wetter-out.scr" in die "root"-crontab ein:
SHELL=/bin/bash
#*/2 * * * * /root/wetter-out.scr 2>> /root/cronlog.txt
|
Und weil wir gerade dabei sind, lassen wir den "cron" auch noch unser Schnittstellen-Beobachtungs-Script "wetter.scr" starten, und zwar beim Hochfahren des Rechners und außerdem vor dem Script "wetter-out.scr":
SHELL=/bin/bash
@reboot /root/wetter.scr
#*/2 * * * * /root/wetter-out.scr 2>> /root/cronlog.txt
|
Merke: Der Aufruf von "wetter-out.scr" ist (noch) auskommentiert ("#")!
Wir verlassen die "root"-crontab im Sicherungsmodus und starten den Rechner durch.
Wenn wir dann festgestellt haben, dass die Datei "/root/wetter.txt" laufend geschrieben wird, entfernen wir den führenden Kommentar in der "root"-crontab beim Aufruf von "wetter-out.scr",
SHELL=/bin/bash
@reboot /root/wetter.scr
*/2 * * * * /root/wetter-out.scr 2>> /root/cronlog.txt
|
verlassen die "root"-crontab im Sicherungsmodus und das war´s dann.
|
|
Ein Rat noch:
Wer jetzt recht verwirrt ist und sich nicht für einen geeigneten "Hacker" hält oder wer weder mit UNIX-Systemen noch auf der Kommandozeile Erfahrung hat, der suche sich einen vertrauenswürdigen Menschen, der sich was zutraut. Es ist nicht so schlimm wie es vielleicht ausschaut und sollte softwaremäßig in weniger als einer (1) Stunde laufen.
Es ist aber schon so, dass man als "root" und mit unglücklichen Einträgen in der "root"-crontab seinen Rechner so zurichten kann, dass er nicht mehr hochfährt und infolgedessen neu installiert werden muss!
Und ein Tipp:
Weil die Sammeldatei "JJJJMMTT.txt" erst beim Tageswechsel - also um Mitternacht - angelegt wird, können die Wetterdaten höchstens bis zum Vortag ausgewertet werden. Wer die Geduld nicht hat und einen ständigen Blick auf die aktuellen Werte haben will, der startet auf dem Ubuntu-Rechner ein Terminal-Fenster und ruft folgende Endlosschleife auf:
user@rechner:~$ while true
> do
> clear
> cat /root/wetter/20*.txt
> sleep 90
> done
|
Die Endlosschleife läßt sich bei Bedarf mit der Tastenkombination [CTRL] [C] bzw. [Strg] [C] (gleichzeitig gedrückt) abbrechen oder - "Nobody is perfect!" - indem man einfach das Terminalfenster schließt.
Und noch´n Tipp:
Natürlich liefern die Daten nur Annäherungswerte. Einflüsse wie z.B. das Beschleunigungsverhalten der Masse von Windrad und Generator bei böhigem Wind ergeben sich daraus nicht.
Die Daten sind nur Statistik basierend auf den gelieferten Werten der Sensoren, also Theorie.
Wieviel Energie ein Windrad am Standort des Sensors wirklich erzeugen wird, kann nur die Praxis zeigen.
Nur eines ist ziemlich sicher: Die Preise für Energie werden nicht sinken!
Ach ja: Für das Installieren eines Windrades gilt ab einer bestimmten Höhe Baurecht!
Richten Sie sich auf einen langen Kampf ein: In den diversen Parlamenten sitzen noch jede Menge Betonköpfe, deren träge Masse auch erstmal beschleunigt werden muss.
Aber nur Mut: Steter Tropfen höhlt auch Beton!
Man denke nur an die Probleme der Betreiber der ersten Warmwasserkollektoren auf den Hausdächern: Damals gab es ein Mordsgeschrei, weil das Ortsbild verschandelt würde - heute kräht kein Hahn mehr danach.
(weitere Informationen gibt´s bei C.A.R.M.E.N.)
Also: Viel Spaß beim Auswerten und "Mast- und Schotbruch" bei den Ergebnissen.
Meine Auswertung ("Mein Wetter"), basierend auf der beschriebenen Hard- und Software, schaut als ASCII-Text so und graphisch so aus.
Ein großer Windmüller werd´ ich wohl nicht werden :-(
|