hardware:channels:sensors:1_wire
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende ÜberarbeitungLetzte ÜberarbeitungBeide Seiten der Revision | ||
hardware:channels:sensors:1_wire [2013/10/05 13:58] – [Raspberrypi] ollir | hardware:channels:sensors:1_wire [2018/01/25 15:58] – code jau | ||
---|---|---|---|
Zeile 3: | Zeile 3: | ||
Derzeit haben wir mehrere Möglichkeiten 1-Wire Sensoren auszulesen. | Derzeit haben wir mehrere Möglichkeiten 1-Wire Sensoren auszulesen. | ||
+ | ===== RaspberryPi ===== | ||
- | ===== Raspberrypi ===== | + | Den RaspberryPi |
- | + | ||
- | Den Raspberrypi | + | |
+ | [[hardware: | ||
+ | [[hardware: | ||
[[http:// | [[http:// | ||
- | Bei mir musste zustzlich | + | Ohne VZ-Erweiterung muss unter umständen zusätzlich |
< | < | ||
# 1wire | # 1wire | ||
- | w1-gpio | + | w1-gpio |
w1-therm | w1-therm | ||
</ | </ | ||
- | Mit dem Befehl " | + | Eine Übersicht über die Sensoren bekommt man mit '' |
- | Um das ganze dann in die Volkszählerdatenbank zu bekommen | + | Mit dem Befehl '' |
+ | |||
+ | |||
+ | In der Datenbank des Volkszähler müssen die einzelnen Kanäle angelegt werden. Die Kanalnummer müssen dann in das script übernommen werden [[software/ | ||
+ | |||
+ | Um das ganze dann in die Volkszählerdatenbank zu bekommen | ||
< | < | ||
Zeile 26: | Zeile 32: | ||
</ | </ | ||
- | Das Abfragescript selber "get1wire.pl": | + | Das Script mit '' |
- | < | + | < |
# | # | ||
- | # welcher | + | # welche |
- | my %Daten = ( # Name => [ Adresse , Faktor ] | + | my %Daten = ( # Name => [ Adresse |
" | " | ||
" | " | ||
Zeile 45: | Zeile 51: | ||
# ****************** Werte lesen | # ****************** Werte lesen | ||
while (($name) = each(%Daten)){ | while (($name) = each(%Daten)){ | ||
- | |||
- | # etwas warten | ||
- | sleep(1); | ||
$addr = $Daten{$name}[0] ; | $addr = $Daten{$name}[0] ; | ||
Zeile 69: | Zeile 72: | ||
# decodieren | # decodieren | ||
- | $sensor_temp =~ /t=(\d+)/i; | + | $sensor_temp =~ /t=(\-?\d+)/ |
$val = (($1*$fak)-0); | $val = (($1*$fak)-0); | ||
Zeile 121: | Zeile 125: | ||
} | } | ||
+ | </ | ||
- | </ | + | Das Script sollte dann manuell ausgeführt werden. Wenn alles erfolgreich war, dann kann das Script auch vom Cron ausführen lassen: |
+ | Mit crontab -e können dann im Intervall die Daten ausgelesen werden und in der Datenbank gespeichert werden. Achtung: Leerzeile am Ende nicht vergessen. Das Script wird mit der folgenden Einstellung alle 1min ausgeführt. | ||
+ | < | ||
+ | # m h dom mon dow | ||
+ | */1 * | ||
+ | </ | ||
+ | ===== BananaPi ===== | ||
+ | Ein HowTo für den BananaPi ist hier zu finden: [[howto: | ||
===== log_onewire.sh ===== | ===== log_onewire.sh ===== | ||
Zeile 173: | Zeile 185: | ||
Dann ganz normal kompilieren. " | Dann ganz normal kompilieren. " | ||
- | |||
Zeile 210: | Zeile 221: | ||
ON STARTUP DO THREAD_START(1wirelog) END | ON STARTUP DO THREAD_START(1wirelog) END | ||
CONTROL_END | CONTROL_END | ||
- | | + | </ |
Für control6 ist bei aktiviertem " | Für control6 ist bei aktiviertem " | ||
Zeile 219: | Zeile 230: | ||
Beispiel mit aktiviertem Timestamp und Namensupport : | Beispiel mit aktiviertem Timestamp und Namensupport : | ||
+ | < | ||
C6_HEADER(`/ | C6_HEADER(`/ | ||
dnl | dnl | ||
Zeile 244: | Zeile 256: | ||
ON STARTUP DO THREAD_START(onewire) END; | ON STARTUP DO THREAD_START(onewire) END; | ||
CONTROL_END | CONTROL_END | ||
+ | </ | ||
+ | ===== ESPeasy ===== | ||
+ | Es gibt auch noch weitere Möglichkeiten einen DS18B20 1-Wire Sensor auszulesen und die Messwerte an die Middleware zu übertragen, |
hardware/channels/sensors/1_wire.txt · Zuletzt geändert: 2020/01/19 15:42 von ruperts