CraftBeerPi3: Temperaturmessung updatet nicht

Antworten
Zoylendt
Neuling
Neuling
Beiträge: 3
Registriert: Sonntag 25. Februar 2018, 01:53

CraftBeerPi3: Temperaturmessung updatet nicht

#1

Beitrag von Zoylendt »

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:
24_1.jpg

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:
24_3.jpg

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.
hurra
Posting Junior
Posting Junior
Beiträge: 45
Registriert: Sonntag 23. Oktober 2016, 20:09

Re: CraftBeerPi3: Temperaturmessung updatet nicht

#2

Beitrag von hurra »

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
fff
Posting Klettermax
Posting Klettermax
Beiträge: 162
Registriert: Sonntag 27. Mai 2018, 01:40

Re: CraftBeerPi3: Temperaturmessung updatet nicht

#3

Beitrag von fff »

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
Zoylendt
Neuling
Neuling
Beiträge: 3
Registriert: Sonntag 25. Februar 2018, 01:53

Re: CraftBeerPi3: Temperaturmessung updatet nicht

#4

Beitrag von Zoylendt »

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
Benutzeravatar
hiasl
Posting Freak
Posting Freak
Beiträge: 1945
Registriert: Samstag 9. Juni 2007, 12:03
Wohnort: Kulmbach
Kontaktdaten:

Re: CraftBeerPi3: Temperaturmessung updatet nicht

#5

Beitrag von hiasl »

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
Hi, kannst du das ggf. auch hier einstellen? Wäre nett. Danke.
Gruß
Matthias
-----------------------------------------------------------------------------------------
Mehr vom Bier wissen, heißt: Mehr vom Bier haben!
hurra
Posting Junior
Posting Junior
Beiträge: 45
Registriert: Sonntag 23. Oktober 2016, 20:09

Re: CraftBeerPi3: Temperaturmessung updatet nicht

#6

Beitrag von hurra »

Hier ist mein Script:

/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
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

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
Nach dem Anlegen des Servicefiles muss noch

Code: Alles auswählen

systemctl daemon-reload 
systemctl enable reset-one-wire.service
systemctl start reset-one-wire.service
ausgeführt werden, damit das Script gestartet wird und auch nach dem Booten automatisch gestartet wird.
Zoylendt
Neuling
Neuling
Beiträge: 3
Registriert: Sonntag 25. Februar 2018, 01:53

Re: CraftBeerPi3: Temperaturmessung updatet nicht

#7

Beitrag von Zoylendt »

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
hurra
Posting Junior
Posting Junior
Beiträge: 45
Registriert: Sonntag 23. Oktober 2016, 20:09

Re: CraftBeerPi3: Temperaturmessung updatet nicht

#8

Beitrag von hurra »

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
Antworten