Archiv der Kategorie: Computerkrams

Maverick ET-733 mit Raspberry auslesen

Zu meinem Geburtstag wollte ich unbedingt meinen neuen UDS mit Pulled Pork ausprobieren. Leider braucht das Fleisch dabei bei mir in der Regel 12-14h um langsam auf die nötige Kerntemperatur von 95°C zu kommen.

Die geringe Garraumtemperatur von um die 110°C ist notwendig damit das Fleisch am Ende unglaublich saftig aus dem Fass kommt, und nicht unglaublich trocken.

Also darf man die Zeit dann natürlich irgendwo in Reichweite des Funkthermometers verbringen, wenn man nicht riskieren möchte das man seine Gäste hungrig lässt, oder doch Pizza bestellen muss.

Wenn man jetz aber noch einen Termin woanders hat braucht man dafür eine Lösung, meine ist natürlich eine High-Tech Variante:

Überwachung der Temperatur per Internet

Nach kurzer Googelei stand folgendes fest:

Das Protokoll der ET-732 und ET-733 (die Sender sind baugleich!) ist komplett entschlüsselt, inklusive Prüfsumme und Senderidentifizierung für mehrere Geräte parallel.

Die Lösungen die ich gefunden habe liefen allerdings entweder auf Hardware die ich nicht zur Verfügung hatte oder konnten mit der Prüfsumme nicht umgehen:

https://github.com/martinr63/OregonPi
https://forums.adafruit.com/viewtopic.php?f=8&t=25414
http://www.grillsportverein.de/forum/threads/wlan-maverick-bbq-thermometer-raspberry-pi-edition.232283/

Bei mir sollte ein Raspberry Pi B zum Einsatz kommen, am besten ohne zusätzlichen Mikrocontroller. Also habe ich dann „mal schnell“

eine Lösung für den Raspberry Pi unter Python programmiert.

GitHub Project Page

Den 433,92MHz Empfänger hängt man an GND, 3,3V und einen freien GPIO-Pin, Standardwert ist 4 (das ist der 4. Pin in der unteren Reihe) nach Broadcom-Nummerierung.

Der Empfänger hat leider eine sehr geringe Reichweite, daher den Raspberry Pi mit USB-Akkupack und Empfänger in eine Tupperdose gepackt und direkt neben die Sender gelegt. Dann hat alles einwandfrei funktioniert.

2015-08-28 17.46.09

Starten kann man das Skript auch mit „–help“, dann bekommt man die Konfigurationsmöglichkeiten mit angezeigt:

usage: maverick.py [-h] [--html [HTML]] [--json [JSON]] [--sqlite [SQLITE]]
                   [--debug] [--pin PIN] [--nosync] [--offset OFFSET]
                   [--fahrenheit] [--verbose]

Receives Wireless BBQ Thermometer Telegrams via RF-Receiver

optional arguments:
  -h, --help         show this help message and exit
  --html [HTML]      Writes a HTML file
  --json [JSON]      Writes a JSON file
  --sqlite [SQLITE]  Writes to an SQLite Database
  --debug            Generates additional debugging Output
  --pin PIN          Sets the Pin number
  --nosync           Always register new IDs
  --offset OFFSET    Sets the offset of the rising Edge (in µs)
  --fahrenheit       Sets the Output to Fahrenheit
  --verbose          Print more Information to stdout

Bei mir läuft das Skript als Systemdienst und schreibt in eine SQLite Datenbank, die dann vom PHP-Skript

Es gibt in den ausgegebenen Daten auch ein Feld „type“. Dieses steht auch beim ET-733 auf „et732“. Das ist richtig so, da die Sender gleich sind. Im Quellcode gibt es auch „et733“ als Typ, aber das konnte ich so nicht beobachten. Vermutlich ist hier ein anderer Typ von Funkthermometer gemeint, ET-73 eventuell.
Da ich so ein Gerät nicht habe, kann ich das auch leider nicht überprüfen…

Viel nachregeln muss man beim UDS zum Glück ja nicht, aber leider ging pünktlich als wir unterwegs waren die Kohle zu neige. Ich durfte also nach Hause fahren und neue Kohle starten, aber wenigstens mussten meine Gäste nicht hungern.

Also hat sich der ganze Aufwand dann doch irgendwie gelohnt.