CraftBeerPi3: Temperaturmessung updatet nicht
CraftBeerPi3: Temperaturmessung updatet nicht
Hallo allerseits.
Letzte Woche habe ich mit meinem auf RasPi-Steuerung umgebauten 'Klarstein Brauheld 45L' einen Sud Klosterbier gebraut, das (aufbereitete) Temperaturlog ist angehängt:
Anfänglich lief auch alles gut, ab 17:30 hatte ich allerdings Probleme mit unzureichender Durchlässigkeit des Malzbehälter-Bodens (kommt gelegentlich vor, habe noch keinen zuverlässigen Weg gefunden, das zu verhindern).
Kurz nach 18 Uhr fiel mir auf, dass im CraftbeerPi-Dashboard zwar die System-Temperatur (vom im Raspberry eingebauten Temperatursensor) weiterhin aktualisiert wird, die beiden 1-Wire-Sensoren für Intern (Sudtemperatur am Boden) und Extern (variable Position, i.A. Sud-Oberfläche) jedoch unveränderliche Werte anzeigen. Ein Aktualisieren der Web-Oberfläche mit Shift+F5 half auch nicht, weshalb ich den RasPi über das CraftBeerPi-System-Menü neu gestartet habe.
Nach dem Neustart war offensichtlich, dass der Raspberry seit 17:15 kontinuierlich geheizt und bereits über 90°C erreicht hatte, weshalb ich dann notgedrungen sofort abgemaischt habe (trotz dem Überschreiten von 76°C - hilft ja nix).
Hier nochmal ein Detailausschnitt der Temperaturen um 17:15 Uhr:
Im Anhang habe ich auch die 'app.log' gezippt angehängt (von einigen ungenutzten Sensoren/Sensorgruppen bereinigt; "Rechts" entspricht dem Sensor 'Intern'). Die Zeitstempel werden scheinbar in UTC notiert, weshalb 17 Uhr in der Log-Datei unter 16 Uhr zu finden ist. Apropos finden, ich konnte in der Log-Datei keinen Hinweis darauf finden, was den Fehler ausgelöst hat.
Die CraftBeerPi-Installation läuft übrigens auf einem aktuellen 'Raspberry Pi OS 32bit', installiert mithilfe des Scripts von https://github.com/BrewChef/craftbeerpi3
Testweise habe ich den Apparat übers Wochenende angelassen (ohne zu heizen), um zu sehen, ob die Sensoren wieder einfrieren. Leider ließ sich der Fehler so einfach nicht replizieren :/
Meine Frage ist jetzt, ob jemandem hier so etwas schon einmal passiert ist? Ist CBPi3 zu instabil, sollte man lieber auf eine (Arduino-)Lösung wechseln (zB bierbot.com, zabobier.de oder Brewblox Spark 4)? Oder lieber auf dem RasPi ein Script laufen lassen, das bei ausbleibender Temperaturveränderung Alarm schlägt (wobei ich ja nicht weiß, ob CBPi3 die 1-Wire-Daten nichtmehr aktualisiert hat, oder ob diese schon im OS eingefroren sind)?
Danke für eure Zeit, über Input würde ich mich sehr freuen ;)
Letzte Woche habe ich mit meinem auf RasPi-Steuerung umgebauten 'Klarstein Brauheld 45L' einen Sud Klosterbier gebraut, das (aufbereitete) Temperaturlog ist angehängt:
Anfänglich lief auch alles gut, ab 17:30 hatte ich allerdings Probleme mit unzureichender Durchlässigkeit des Malzbehälter-Bodens (kommt gelegentlich vor, habe noch keinen zuverlässigen Weg gefunden, das zu verhindern).
Kurz nach 18 Uhr fiel mir auf, dass im CraftbeerPi-Dashboard zwar die System-Temperatur (vom im Raspberry eingebauten Temperatursensor) weiterhin aktualisiert wird, die beiden 1-Wire-Sensoren für Intern (Sudtemperatur am Boden) und Extern (variable Position, i.A. Sud-Oberfläche) jedoch unveränderliche Werte anzeigen. Ein Aktualisieren der Web-Oberfläche mit Shift+F5 half auch nicht, weshalb ich den RasPi über das CraftBeerPi-System-Menü neu gestartet habe.
Nach dem Neustart war offensichtlich, dass der Raspberry seit 17:15 kontinuierlich geheizt und bereits über 90°C erreicht hatte, weshalb ich dann notgedrungen sofort abgemaischt habe (trotz dem Überschreiten von 76°C - hilft ja nix).
Hier nochmal ein Detailausschnitt der Temperaturen um 17:15 Uhr:
Im Anhang habe ich auch die 'app.log' gezippt angehängt (von einigen ungenutzten Sensoren/Sensorgruppen bereinigt; "Rechts" entspricht dem Sensor 'Intern'). Die Zeitstempel werden scheinbar in UTC notiert, weshalb 17 Uhr in der Log-Datei unter 16 Uhr zu finden ist. Apropos finden, ich konnte in der Log-Datei keinen Hinweis darauf finden, was den Fehler ausgelöst hat.
Die CraftBeerPi-Installation läuft übrigens auf einem aktuellen 'Raspberry Pi OS 32bit', installiert mithilfe des Scripts von https://github.com/BrewChef/craftbeerpi3
Testweise habe ich den Apparat übers Wochenende angelassen (ohne zu heizen), um zu sehen, ob die Sensoren wieder einfrieren. Leider ließ sich der Fehler so einfach nicht replizieren :/
Meine Frage ist jetzt, ob jemandem hier so etwas schon einmal passiert ist? Ist CBPi3 zu instabil, sollte man lieber auf eine (Arduino-)Lösung wechseln (zB bierbot.com, zabobier.de oder Brewblox Spark 4)? Oder lieber auf dem RasPi ein Script laufen lassen, das bei ausbleibender Temperaturveränderung Alarm schlägt (wobei ich ja nicht weiß, ob CBPi3 die 1-Wire-Daten nichtmehr aktualisiert hat, oder ob diese schon im OS eingefroren sind)?
Danke für eure Zeit, über Input würde ich mich sehr freuen ;)
- Dateianhänge
-
- app.zip
- (290.13 KiB) 17-mal heruntergeladen
Zuletzt geändert von Zoylendt am Mittwoch 3. November 2021, 12:52, insgesamt 1-mal geändert.
Re: CraftBeerPi3: Temperaturmessung updatet nicht
Hallo,
bei langen oder schlechten Kabeln, bzw. schlechten Sensoren kann es schonmal vorkommen, dass sich der Sensor/Bus aufhängt.
Ich habe für mehr Robustheit die Versorgungsspannung des One-Wire-Busses auf einen schaltbaren GPIO gelegt. Über ein kleines Script überwache ich die Verfügbarkeit des Sensors im Betriebssystem und toggle bei Fehlen des Sensors den GPIO kurz. Das hilft bei mir zuverlässig.
Bei Interesse kann ich mein Script gerne zur Verfügung stellen.
- Lorenz
bei langen oder schlechten Kabeln, bzw. schlechten Sensoren kann es schonmal vorkommen, dass sich der Sensor/Bus aufhängt.
Ich habe für mehr Robustheit die Versorgungsspannung des One-Wire-Busses auf einen schaltbaren GPIO gelegt. Über ein kleines Script überwache ich die Verfügbarkeit des Sensors im Betriebssystem und toggle bei Fehlen des Sensors den GPIO kurz. Das hilft bei mir zuverlässig.
Bei Interesse kann ich mein Script gerne zur Verfügung stellen.
- Lorenz
Re: CraftBeerPi3: Temperaturmessung updatet nicht
Hi,
ähnliches hatte ich auch vor kurzem, die Temperaturwerte waren blödsinnig und stark schwankend.
Ursache war ein Schaltnetzteil für das Rührwerk, ca. 10cm entfernt vom Raspi.
Mit 20cm Abstand treten keine Fehler mehr auf..
Grüße
Kurt
ähnliches hatte ich auch vor kurzem, die Temperaturwerte waren blödsinnig und stark schwankend.
Ursache war ein Schaltnetzteil für das Rührwerk, ca. 10cm entfernt vom Raspi.
Mit 20cm Abstand treten keine Fehler mehr auf..
Grüße
Kurt
Re: CraftBeerPi3: Temperaturmessung updatet nicht
Hi,
danke für eure Antworten.
Meine DS18B20-Kabel hatte ich mit unter einem Meter als recht kurz eingeschätzt (ggf verlängere ich das sogar noch, weil die Controller-Box etwas weiter vom Brauapparat entfernt stehen soll). Ich war schon am Überlegen, ob ich auf Pt100/Pt1000 wechsele. Als Interface für den RasPi verwende ich derzeit ein 'CBPi Extension Board v3', auch wenn es (noch) nur wenig Mehrwert bietet (Relais und 1Wire können ja auch direkt angeschlossen werden). Da das Board die DS18B20 mit 5V versorgt, habe ich zusätzlich einen 4.7kOhm Widerstand zwischen 3.3V und GPIO4 gesteckt (wie hier https://hobbybrauer.de/forum/viewtopic. ... 78#p152878 beschrieben).
Die Relais auf dem Board schalten selbst allerdings nur zwei 'Eltako ER12DX-UC'-Relais, welche die 1.5kW bzw 1.8kW-Heizelemente steuern.
Mein Aufbau hat ja kein Rührwerk, lediglich eine Pumpe ist verbaut - diese als Störquelle habe ich jetzt weniger vermutet. Dabei hätte ich noch die Frage, ob es sinnvoll ist, die Erdung des Brauheld/Pumpe mit GND vom RasPi zu verbinden?
Deine Lösung, Lorenz, klingt super - du unterbrichst also kurz die 5V-Versorgungsspannung zum DS18B20 per Relais? Oder auch die Data- und GND-Leitungen? Über dein Script würde ich mich sehr freuen ;)
MfG,
Adrian
danke für eure Antworten.
Meine DS18B20-Kabel hatte ich mit unter einem Meter als recht kurz eingeschätzt (ggf verlängere ich das sogar noch, weil die Controller-Box etwas weiter vom Brauapparat entfernt stehen soll). Ich war schon am Überlegen, ob ich auf Pt100/Pt1000 wechsele. Als Interface für den RasPi verwende ich derzeit ein 'CBPi Extension Board v3', auch wenn es (noch) nur wenig Mehrwert bietet (Relais und 1Wire können ja auch direkt angeschlossen werden). Da das Board die DS18B20 mit 5V versorgt, habe ich zusätzlich einen 4.7kOhm Widerstand zwischen 3.3V und GPIO4 gesteckt (wie hier https://hobbybrauer.de/forum/viewtopic. ... 78#p152878 beschrieben).
Die Relais auf dem Board schalten selbst allerdings nur zwei 'Eltako ER12DX-UC'-Relais, welche die 1.5kW bzw 1.8kW-Heizelemente steuern.
Mein Aufbau hat ja kein Rührwerk, lediglich eine Pumpe ist verbaut - diese als Störquelle habe ich jetzt weniger vermutet. Dabei hätte ich noch die Frage, ob es sinnvoll ist, die Erdung des Brauheld/Pumpe mit GND vom RasPi zu verbinden?
Deine Lösung, Lorenz, klingt super - du unterbrichst also kurz die 5V-Versorgungsspannung zum DS18B20 per Relais? Oder auch die Data- und GND-Leitungen? Über dein Script würde ich mich sehr freuen ;)
MfG,
Adrian
- hiasl
- Posting Freak
- Beiträge: 1948
- Registriert: Samstag 9. Juni 2007, 12:03
- Wohnort: Kulmbach
- Kontaktdaten:
Re: CraftBeerPi3: Temperaturmessung updatet nicht
Hi, kannst du das ggf. auch hier einstellen? Wäre nett. Danke.hurra hat geschrieben: ↑Dienstag 2. November 2021, 18:07 Hallo,
bei langen oder schlechten Kabeln, bzw. schlechten Sensoren kann es schonmal vorkommen, dass sich der Sensor/Bus aufhängt.
Ich habe für mehr Robustheit die Versorgungsspannung des One-Wire-Busses auf einen schaltbaren GPIO gelegt. Über ein kleines Script überwache ich die Verfügbarkeit des Sensors im Betriebssystem und toggle bei Fehlen des Sensors den GPIO kurz. Das hilft bei mir zuverlässig.
Bei Interesse kann ich mein Script gerne zur Verfügung stellen.
- Lorenz
Gruß
Matthias
-----------------------------------------------------------------------------------------
Mehr vom Bier wissen, heißt: Mehr vom Bier haben!
Matthias
-----------------------------------------------------------------------------------------
Mehr vom Bier wissen, heißt: Mehr vom Bier haben!
Re: CraftBeerPi3: Temperaturmessung updatet nicht
Hier ist mein Script:
/home/pi/reset-one-wire/reset-one-wire.py
Ich verwende mehrere Szenarien (Gären, Maischen, ..), so dass ich auch mehrere Sensoren im Einsatz habe. Im Script muss für den jeweils aktuellen Einsatzzweck der korrekte Sensor zugewiesen werden. Hierzu muss jeweils angepasst werden.
Auf GPIO17 habe ich die 3.3V des One-Wire-Sensors daufgelegt. Ein Relais oder Transistor ist nicht notwendig.
Dazu passend habe ich noch ein systemd-Service-File für den Start des Scriptes beim Booten:
/etc/systemd/system/reset-one-wire.service
Nach dem Anlegen des Servicefiles muss noch
ausgeführt werden, damit das Script gestartet wird und auch nach dem Booten automatisch gestartet wird.
/home/pi/reset-one-wire/reset-one-wire.py
Code: Alles auswählen
#!/usr/bin/env python3
import RPi.GPIO as GPIO
import time
import os
import logging
logFormatter = logging.Formatter("%(asctime)s [%(threadName)-12.12s] [%(levelname)-5.5s] %(message)s")
rootLogger = logging.getLogger()
consoleHandler = logging.StreamHandler()
consoleHandler.setFormatter(logFormatter)
rootLogger.addHandler(consoleHandler)
rootLogger.setLevel(logging.INFO)
sensor_id_kuehlschrank_luft = "28-02099177baa5"
sensor_id_kuehlschrank_jungbier = "28-0214917761b8"
sensor_id_vergossen_maische = "28-00000b54b645"
sensor_id = sensor_id_vergossen_maische
try:
GPIO.setmode(GPIO.BCM)
GPIO.setup(17, GPIO.OUT)
GPIO.output(17, GPIO.HIGH)
path_kuehlschrank = "/sys/bus/w1/devices/" + sensor_id
while 1==1:
if (os.path.isdir(path_kuehlschrank) == False):
logging.info("Pfad {0} fehlt. Toggle Bits ...".format(path_kuehlschrank))
GPIO.output(17, GPIO.LOW)
time.sleep(10)
GPIO.output(17, GPIO.HIGH)
logging.info("Toggle Bits done")
else:
logging.info("Pfad {0} vorhanden".format(path_kuehlschrank))
time.sleep(10)
except KeyboardInterrupt:
# Bei Ctrl-C
print("Ctrl-C erkannt")
except:
print("Exception")
finally:
GPIO.cleanup()
Ich verwende mehrere Szenarien (Gären, Maischen, ..), so dass ich auch mehrere Sensoren im Einsatz habe. Im Script muss für den jeweils aktuellen Einsatzzweck der korrekte Sensor zugewiesen werden. Hierzu muss
Code: Alles auswählen
sensor_id = sensor_id_vergossen_maische
Auf GPIO17 habe ich die 3.3V des One-Wire-Sensors daufgelegt. Ein Relais oder Transistor ist nicht notwendig.
Dazu passend habe ich noch ein systemd-Service-File für den Start des Scriptes beim Booten:
/etc/systemd/system/reset-one-wire.service
Code: Alles auswählen
[Unit]
Description=Reset-One-Wire
After=network.target
[Service]
Type=simple
ExecStart=/usr/bin/python3 /home/pi/reset-one-wire/reset-one-wire.py
User=pi
[Install]
WantedBy=multi-user.target
Code: Alles auswählen
systemctl daemon-reload
systemctl enable reset-one-wire.service
systemctl start reset-one-wire.service
Re: CraftBeerPi3: Temperaturmessung updatet nicht
Vielen Dank für dein Script ;)
Du überwachst nur einen Sensor, schmieren die immer alle zusammen ab?
Verstehe ich dich richtig, dass du die DS18B20 mit 3.3V statt 5V versorgst (und auch keinen 4.7kOhm-Widerstand eingebaut hast)?
Sollte man bei längeren Kabel nicht besser eine höhere Spannung verwenden? Oder einen Kondensator zwischen Spannung und GND schalten (siehe https://hobbybrauer.de/forum/viewtopic. ... 0d#p152912)?
MfG,
Adrian
Du überwachst nur einen Sensor, schmieren die immer alle zusammen ab?
Verstehe ich dich richtig, dass du die DS18B20 mit 3.3V statt 5V versorgst (und auch keinen 4.7kOhm-Widerstand eingebaut hast)?
Sollte man bei längeren Kabel nicht besser eine höhere Spannung verwenden? Oder einen Kondensator zwischen Spannung und GND schalten (siehe https://hobbybrauer.de/forum/viewtopic. ... 0d#p152912)?
MfG,
Adrian
Re: CraftBeerPi3: Temperaturmessung updatet nicht
Hallo,
ich überwache immer nur einen Sensor, obwohl ich durchaus mehrere parallel verwende. Die Überwachung aktiviere ich jeweils für den wichtigsten Sensor: Kühlschrank-Luft oder eben Maischetemp.
Das Script kann sicher angepasst werden, so dass auch mehrere Sensoren parallel geprüft werden können.
Richtig, die Sensoren laufen bei mir per Versorgung über den GPIO, also mit 3.3V. Einen Widerstand habe ich auch verbaut, die Größe weiß ich gerade nicht.
Wenn du wirklich besser werden willst, brauchst du wohl einen externen OneWire-Baustein.
Gruß
Lorenz
ich überwache immer nur einen Sensor, obwohl ich durchaus mehrere parallel verwende. Die Überwachung aktiviere ich jeweils für den wichtigsten Sensor: Kühlschrank-Luft oder eben Maischetemp.
Das Script kann sicher angepasst werden, so dass auch mehrere Sensoren parallel geprüft werden können.
Richtig, die Sensoren laufen bei mir per Versorgung über den GPIO, also mit 3.3V. Einen Widerstand habe ich auch verbaut, die Größe weiß ich gerade nicht.
Wenn du wirklich besser werden willst, brauchst du wohl einen externen OneWire-Baustein.
Gruß
Lorenz