Ein Abnahmeprogramm für den Samovar ist ein Satz textueller Befehle, der das Verhalten des Controllers über die Zeit beschreibt. Jede Zeile legt eine Bedingung (Sensortemperatur, Zeit, Volumen), eine Aktion (Pumpe ein-/ausschalten, Geschwindigkeit ändern, Prozess stoppen) und Parameter fest. Syntax: T(sensor) (operator) (value) → (action) (parameters). Beispiel: T2 > 78.5 → PUMP ON 30% bedeutet „wenn die Temperatur von Sensor 2 78,5 °C überschreitet, die Pumpe mit 30 % Leistung einschalten“. Das Programm läuft nacheinander mit Kontrollpunkten — der Controller geht erst dann zur nächsten Zeile über, wenn die Bedingung erfüllt ist. So lassen sich die Fraktionen exakt trennen: Vorlauf (bis 78 °C), Mittellauf (78–92 °C), Nachlauf (über 92 °C). Das Programm wird im nichtflüchtigen Speicher des ESP32 abgelegt und übersteht einen Neustart. Es lässt sich über die Weboberfläche oder ein Lua-Skript bearbeiten.
Was ein Abnahmeprogramm für den Samovar ist
Ein Abnahmeprogramm besteht aus mehreren Zeilen. Jede Zeile beschreibt, was der Samovar in einem bestimmten Moment tun soll. Die Laufzeit einer Zeile wird entweder durch das Flüssigkeitsvolumen bestimmt, das die Pumpe bei der eingestellten Geschwindigkeit fördern muss, oder durch die Zeit.

Das einfachste Abnahmeprogramm könnte so aussehen:
H;250;0.10;1;0.00;120
B;2500;1.00;2;0.00;150
T;250;0.10;3;0.00;160
Was bedeuten diese Zeilen? Sehen wir uns die erste Zeile genauer an.
Wir müssen dem Samovar sagen, was genau er in dieser Zeile abnimmt — Vorlauf, Mittellauf oder Nachlauf. Die Art der Abnahme wird durch den ersten (lateinischen) Buchstaben festgelegt: H — Vorlauf (Heads), B — Mittellauf (Body), T — Nachlauf (Tail), und es gibt noch eine weitere Zusatzart, P — Pause (Pause). In der ersten Zeile nehmen wir Vorlauf ab.
Der zweite Parameter, durch ein Semikolon von der Abnahmeart getrennt, legt fest, welches Flüssigkeitsvolumen abgenommen werden muss, bevor es mit der nächsten Zeile weitergeht. In unserem Fall sind es 250 Milliliter.
Der dritte Parameter, nach dem Semikolon, ist die Geschwindigkeit, mit der der Samovar das angegebene Volumen abnehmen soll; für die erste Zeile im Beispiel sind das 100 Milliliter pro Stunde, also 0,1 Liter pro Stunde.
Der vierte Parameter legt den Behälter fest, in dem die Flüssigkeit aufgefangen wird — im Beispiel 1.
Der fünfte Parameter ist die Abnahmetemperatur; sie wird derzeit nicht verwendet, und ihr Wert spielt keine Rolle — setzen Sie standardmäßig 0, um keinen Fehler zu machen.
Und der sechste, letzte Parameter legt fest, welche Spannung der Samovar während dieser Zeile am Regler einstellen soll, 120 Volt.
Wenn Sie auf dem Hauptbildschirm den Programmreiter öffnen, sehen Sie ein Textfeld zur Eingabe des Programms sowie einen kurzen Spickzettel, der beschreibt, was jeder Parameter bedeutet.
Die Programmart Pause verdient eine gesonderte Erwähnung. Beim Ausführen einer Zeile vom Typ P stoppt der Samovar die Pumpe und wartet die in dieser Zeile festgelegte Zeit ab. Alle übrigen Parameter werden ignoriert, außer dem sechsten — der Spannung. Eine Pause kann man zum Beispiel nutzen, wenn die Reglerspannung stark erhöht (oder gesenkt) werden muss. Da Brennblase und Kolonne ziemlich träge sind, braucht das Zeit. Wie lange man wartet, müssen Sie anhand Ihrer Erfahrung selbst entscheiden. Wenn Sie die Pause länger als nötig eingestellt haben, können Sie einfach die Schaltfläche “Start take-off” (Abnahme starten) drücken, und der Samovar geht zur nächsten Zeile über. Wenn die Zeit nicht gereicht hat, können Sie die Schaltfläche “Pause” (Pause) drücken, und der Samovar hält die Pumpe an. Um die Abnahme fortzusetzen, müssen Sie die Schaltfläche “Continue take-off” (Abnahme fortsetzen) drücken. So könnte eine Zeile des Abnahmeprogramms aussehen — 120 Sekunden warten, die Reglerspannung auf 140 Volt einstellen:
P;120;0;0;0;140
Wie Sie sehen, ist die Steuerung des Samovar per Programm überhaupt nicht schwer. Schwer ist es, für Ihre konkreten Bedingungen zu bestimmen, welches Volumen, mit welcher Geschwindigkeit und in welchem Verhältnis abgenommen werden soll. Sie können natürlich alles selbst berechnen. Aber es gibt einen einfacheren Weg.

Auf dem Reiter “Program” (Programm) gibt es die Schaltfläche “Calculate program” (Programm berechnen); sie führt zu einer Seite mit einem Programmrechner, die ein Beispiel für die Berechnung eines Programms anhand von Volumen und Stärke des Rohbrands enthält. Für eine genaue Berechnung müssen Sie die erwartete Stärke am Kolonnenausgang einstellen. Außerdem können Sie das prozentuale Verhältnis von Vorlauf und Nachlauf für Ihren Rohbrand festlegen (es hängt vom verwendeten Rohstoff ab).

Als Sie von GitHub den Ordner mit dem Sketch und den für den Betrieb des Samovar nötigen Bibliotheken heruntergeladen haben, haben Sie auch den Ordner tools heruntergeladen. In diesem Ordner liegen drei Dateien — program_shugar.txt, program_grain.txt, program_fruit.txt —, die Vorlagen für die Berechnung von Abnahmeprogrammen für Zucker, Obst und Getreide enthalten. Diese Berechnungen können Sie unverändert verwenden, indem Sie sie mit der Schaltfläche “Load program” (Programm laden) laden, oder Sie passen sie nach Belieben an und speichern sie in einem anderen Ordner, damit die Änderungen beim Update des Samovar nicht überschrieben werden (Schaltfläche “Save program” (Programm speichern)).
Was tun, wenn Sie kein Abnahmeprogramm möchten und den Samovar lieber selbst steuern?
Auch das ist möglich. Dazu können Sie eine einzige Programmzeile festlegen und ausführen. Zum Beispiel diese:
H;99999;0.10;1;0.00;120
In diesem Fall führt der Samovar dieses Programm aus, bis er 100 Liter abgenommen hat, und währenddessen können Sie die Abnahmeparameter steuern. Sie können die Abnahmegeschwindigkeit und die Reglerspannung ändern. Die Sicherheitsgruppe arbeitet ebenfalls.
