![]()
oh man ich brech ab.
ich bastel ja etz schon länger an meinem raspi, und immer sind es so kleinigkeiten die einen aufhalten ![]()
das wenn man nicht weis ist ma halt echt der depp!
Vielen Dank Peter!
Etz gehts!!!
![]()
![]()
oh man ich brech ab.
ich bastel ja etz schon länger an meinem raspi, und immer sind es so kleinigkeiten die einen aufhalten ![]()
das wenn man nicht weis ist ma halt echt der depp!
Vielen Dank Peter!
Etz gehts!!!
![]()
[Tutorial] 1Wire Temperaturmessung mit Datenerfassung und Visualisierung? Schau mal ob du hier fündig wirst!
Ja Prima, ich kenne die Freude, wenn es dann geht. Bin ja selber ein (Programmier,Elektronik)-Anfänger.
lg Peter
ein kleines problem hab ich doch noch.
wenn ich den python script in die crontab schreibe, passiert nicht wirklich viel.
ich hab schon tausend varianten ausprobiert. cron neu gestartet. syslog gelesen (steht kein error drin!)
manuel geht es ohne probleme.
meine .py hab ich hier abgespeichert
pi@raspberrypi ~/temperatur $ dir
temp-daten.txt temperatur.jpg temperatur.py temperatur.py.save temp.py
so hab ich es grad in der cronstab stehen: (wie auf seite 1 in diesem tutorial)
aber leider tut sich da nix, keine ausgabe in der konsole, und auch in meiner temp-daten.txt wird nix reingeschrieben.
hatt einer von euch ne idee?![]()
mfg
Michael
man schreibt ja auch keine grad zeichen in textdateien geschweige denn in Datenbanken. Mann speichert den puren Zahlenwert. Die Zeichen kann man sich bei der Ausgabe, wenn es denn unbedingt sein muss, immer noch dazu basteln ;).
Schreib mal den absoluten pfad zu deiner txt Datei in dein script.
Hi
sorry aber ich kann dir nicht ganz folgen.
mein problem ist nicht das ° zeichen sondern:
ich will das der script alle 5 minuten ausgeführt wird, damit ich mir ein tolles diagramm basteln kann.
funktioniert ohne probleme, da wird auch was in meine temp...txt geschrieben.
nur der eintrag in die crontab funktioniert nicht.
hab ich auch schon gemacht. geht leider auch nicht.
das mit dem grad zeichen merk ich mir!
falls ich es irgenwann mal schaff einen eigenen script zu schreiben ![]()
Schreib mal den absoluten pfad zu deiner txt Datei in dein script.
Hi
sorry aber ich kann dir nicht ganz folgen.nur der eintrag in die crontab funktioniert nicht.
dbv meint, das in temperatur.py ab dieser Stelle:
geändert wird in:
So sollte das klappen.
lg Peter
Dann schau mal in die logs ob bzw. warum er nichts macht. /var/log/syslog wäre mein erster anlaufpunkt.
Soll ich euch mal sagen was mir echt gut gefällt!
das ich es anscheinend mit profis zu tun hab!
es lag wirklich am absoluten pfad.
erst hatte es auch nix gebracht , aber dann hab ich denn cronstab befehl noch ein bischen verändert und siehe da es geht!
Für eure Hilfe bedank ich mich recht herzlich! und wünsch ne gude nacht!
Jetzt kann auch ich schlafen
Euch auch eine erholsame Nacht.
lg Peter
Hallo vielen dank erstmal für das super Tutorial!!
Doch leider habe ich ein Problem... es funktioniert eigentlich alles wunderbahr nur leider kann man an der Geploteten Grafik spätestens am Dritten Tag nichts mehr erkennen! Da es nur noch ein Strichgewirr ist.
Wie kann ich das Bild so skalieren das max. 24 Std auf dem Bild sind? Bzw einfach immer die letzen 24 Messwerte?
PS: Momentan wird alle 15 minuten "gemessen"
MFG Andreas
Hallo
Vieleicht kann mir jemand helfen habe das script so abgändert das die ausgabe über
rrdtool läuft nur leider schreibt er mir rrdtool nur die letzte Temperatur obwohl beide
Temperaturen in der Konsole erkannt werden
Hier ist der Code
#!/usr/bin/python
# -*- coding: utf-8 -*-
from time import sleep
import sys
import datetime
import time
import os
import rrdtool
from time import *
dbname = '1wire'
steps = 25
rrd_root = "/home/mikelsoft/rrd/"
rrd_graph_root = "/var/www/bmp085/"
log_rrd = True
# Zeitvariable definieren
lt = localtime()
def LogToRRD (rrdKey, rrdValue, rrdDevice, graphLabel, graphColour):
if not os.path.exists(rrd_root + rrdDevice + ".rrd"):
print "Erzeuge Datenbank\n"
ret = rrdtool.create(rrd_root + rrdDevice + ".rrd", "--step", "60",
"DS:" + rrdKey + ":GAUGE:120:-273:5000",
"RRA:AVERAGE:0.5:1:1200",
"RRA:MIN:0.5:12:2400",
"RRA:MAX:0.5:12:2400",
"RRA:AVERAGE:0.5:12:2400")
ret = rrdtool.update(rrd_root + rrdDevice + ".rrd", 'N:' + str(rrdValue));
ret = rrdtool.graph(rrd_graph_root + rrdDevice + "_stunde.png", "--start", "-4h", "--title=" + rrdDevice.title() + " Letzte Stunde",
'--watermark=xxxxxxxx',
"-w 800",
"--alt-autoscale",
"DEF:" + rrdKey + "=" + rrd_root + rrdDevice + ".rrd:" + rrdKey + ":AVERAGE",
"LINE1:" + rrdKey + graphColour + ":" + rrdKey + " " + graphLabel)
ret = rrdtool.graph(rrd_graph_root + rrdDevice + "_tag.png", "--start", "-4d", "--title=" + rrdDevice.title() + " Diesen Tag",
'--watermark=xxxxxxxxxx',
"-w 800",
"--alt-autoscale",
"DEF:" + rrdKey + "=" + rrd_root + rrdDevice + ".rrd:" + rrdKey + ":AVERAGE",
"LINE1:" + rrdKey + graphColour + ":" + rrdKey + " " + graphLabel)
ret = rrdtool.graph(rrd_graph_root + rrdDevice + "_monat.png", "--start", "-1m", "--title=" + rrdDevice.title() + " Diesen Monat",
'--watermark=xxxxxxxxxx',
"-w 800",
"--alt-autoscale",
"DEF:" + rrdKey + "=" + rrd_root + rrdDevice + ".rrd:" + rrdKey + ":AVERAGE",
"LINE1:" + rrdKey + graphColour + ":" + rrdKey + " " + graphLabel)
# 1-Wire Slave-Liste oeffnen
while (True):
file = open('/sys/devices/w1_bus_master1/w1_master_slaves') #Verzeichniss evtl.$
# 1-Wire Slaves auslesen
w1_slaves = file.readlines()
# 1-Wire Slave-Liste schliessen
file.close()
# Header fuer Bildschirmausgabe
print('Sensor ID | Temperatur')
print('----------------------------')
# Fuer jeden 1-Wire Slave eine Ausgabe
for line in w1_slaves:
# 1-wire Slave extrahieren
w1_slave = line.split("\n")[0]
# 1-wire Slave Datei oeffnen
file = open('/sys/bus/w1/devices/' + str(w1_slave) + '/w1_slave')
# Inhalt des 1-wire Slave File auslesen
filecontent = file.read()
# 1-wire Slave File schliessen
file.close()
# Temperatur Daten auslesen
stringvalue = filecontent.split("\n")[1].split(" ")[9]
# Temperatur konvertieren
temperature = float(stringvalue[2:]) / 1000
# Temperatur ausgeben
print(str(w1_slave) + ' | %5.3f °C' % temperature)
# Werte in Datei schreiben
# Zeit und Datum erfassen
Datum = strftime("%d.%m.%Y")
Uhrzeit = strftime("%H:%M:%S")
if log_rrd == True:
LogToRRD("Temperature",temperature,"temp", "[deg C]", "#0D4F8B")
#sys.exit(0)
import time
print "Neue Messung startet in %s Sekunden" %(steps)
time.sleep(steps)
Display More
ERLEDIGT!
Der Pfad war wohl doch nicht der richtige. Genaues lesen hat mich weiter gebracht.
Kleine Frage zum python skript
ich habe das skript in die datei erfassen.py gespeichert und fuehre es aus mit python erfassen.py
dabei bekomme ich in zeile 32 folgende fehlermeldung
File "erfassen.py", line 32
w1_slave = line.split("\n")[0]
^
SyntaxError: invalid syntax
den pfad habe ich entsprechend abgaendert. bei mir lautet er
/sys/bus/w1/devices/w1_bus_master1/w1_master_slaves
mit
cat /sys/bus/w1/devices/w1_bus_master1/w1_master_slaves
wird mir auch die ID des sensors ausgegeben.
wo kann hier der Fehler liegen
kann mir jemand hier weiterhelfen
und entschuldigung fuer die fehlende zeichensetzung. ich sitze gerade am pi und bekomme das mit dem tastaturlayout nicht wirklich hin.
Neues Problem:
Beim Speichern der Daten wird bei mir immer die Uhrzeit in UTC aufgezeichnet. Die Zeitzone habe ich ordnungsgemäß angepasst.
Dummerweise plottet er mir die Daten jetzt immer "eine Stunde zu früh".
Wo kann man hier den Hebel ansetzen?
Meine Recherchen haben mich leider nicht weitergebracht.
Hallo
super Tut, läuft auch schon ewig, nur kann ich die GPIO Ports umlegen, also den 4ten??
Wenn ja wo und wie?
Danke
QuoteGPIO 4 ist für den Einsatz als 1wire-Bus vorgesehen.
...
Wir wollen das Module laden welches den GPIO 4 zum 1wire-Bus macht.
Also Antwort auf deine Frage: Solange du das precompiled w1-gpio Kernel Module nutzt -> Jein
Einzig durch recompilieren des Kernel Modules wäre es möglich den GPIO Port zu ändern - vielleicht kriegst du es aber auch über den folgenden beschriebenen Weg umgestellt (hab ich aber noch nicht getestet): http://squidge.sourceforge.net/w1/
Es gibt aber auch noch andere Möglichkeiten 1-wire Devices anzusteuern:
Bekomme immer folgende Fehlermeldung wenn ich das script starte:
import.im6: unable to open X server `localhost:0' @ error/import.c/ImportImageCommand/368.
mfg
Sascha
Wie startest du es denn? Über ssh?
Läuft nebenbei LXDE?
(ein X Server ist die Desktop Umgebung, also sowas wie LXDE)
Danke für dir Hilfe,
es waren XServer und so Installiert.
Nachdem ich alles dazu entfernt hatte, ist die Fehlermeldung nicht mehr aufgetreten,
lg Sascha
Don’t have an account yet? Register yourself now and be a part of our community!