Der Brautomat

Benutzeravatar
Innuendo
Posting Freak
Posting Freak
Beiträge: 2347
Registriert: Freitag 2. März 2018, 09:43

Re: Der Brautomat

#901

Beitrag von Innuendo »

Version 1.59.5 RC1 ist als WebUpdate verfügbar.

die letzten Steps vor dem Release 1.60. Alle Rückmeldungen und Infos zur 1.59.1 Beta wurde abgearbeitet.

changelog:

Code: Alles auswählen

* Neu:          WebUpdate zeigt Informationen zum Update auf github an
* Neu:          DateiUpdate Webseite neu gestaltet
* Neu:          Sprachdateien spanisch, französisch, niederländisch, dänisch, schwedisch, polnisch, tschechisch, spanisch, portugiesisch
* Neu:          Sprachdateien werden bei Auswahl aus dem github repository nachgeladen
* Neu:          nur vorhandene Sprachdateien werden beim WebUpdate aktualisiert
* Neu:          Aufteilung TickerSYS und writeFlash EEprom Braustatus auf zwei unabhängig Tasks
* Neu:          sendCommand an GGM IDS FreeRTOS Task Hybrid (Queue + Notify)
* Update:       Arduino V3.3.3
* Update:       InnuTicker Lib 0.7 Reentrancy-Schutz für Ticker Objekte (RAII-Prinzip)
* Fix:          SSE checkAlive: ESPAsyncWebServer resetTimer
* Fix:          Exception behoben (AsyncTCP LoadProhibited-Exception)
* Fix:          language fallback deutsch (key und file)
* Fix:          WebIf Dashboard (kein manuelles reload nach Anpassung mehr erforderlich)
* Fix:          InnuNextion Display Lib: timing für das Auslesen Seitenwechsel korrigiert (+50ms)
* Fix:          Nextion Display: im SSE handler war es möglich, dass nicht aktive Elemente aktualisiert wurden (manuelles Kochen)
* ReWork:       JavaScript WebIf
... und jede Menge Kleinigkeiten ...
Feedback sehr gerne.

Innu
Benutzeravatar
Schmuckerl
Posting Junior
Posting Junior
Beiträge: 18
Registriert: Freitag 4. Oktober 2019, 14:10

Re: Der Brautomat

#902

Beitrag von Schmuckerl »

Hallo,
hab die aktuelle Testversion 1.59.5 im Einsatz und kann Backup nicht ausführen. Browser meldet, dass die Datei nicht vorhanden ist!
Danke, Schmuckerl
Ein schäumend prickelnd Gerstensaft, gibt Herzensmut und Manneskraft.
Benutzeravatar
Innuendo
Posting Freak
Posting Freak
Beiträge: 2347
Registriert: Freitag 2. März 2018, 09:43

Re: Der Brautomat

#903

Beitrag von Innuendo »

Danke für den Hinweis!
Der Web handler für das Backup ist vorhanden, wird aber nicht verarbeitet. Vermutlich greift vor dem Backup handler eine andere Regel. Schaue ich mir im Laufe des Tages an.
Benutzeravatar
Innuendo
Posting Freak
Posting Freak
Beiträge: 2347
Registriert: Freitag 2. März 2018, 09:43

Re: Der Brautomat

#904

Beitrag von Innuendo »

Hallo Schmuckerl,
eine Korrektur ist online. Neben einigen anderen Fixes (Chart, Ticker) ist auch das Update ESP-IDF Arduino 3.3.4 enthalten. Erst vor einer Woche wurde 3.3.3 veröffentlicht - vermutlich gab es einen größeren Bug.

Die Testversion ist sehr "gesprächig". Sehr viele debug Ausgaben werden ausgegeben. Die build_flags werden auch nach Javascript in den Browser durchgereicht. Man kann in jedem Browser (meist) mit F12 die devTools öffnen. Im tab Konsole gibt es je nach Einstellung unter System-Logging Ausgaben. Im Zweifel bitte alle logging Einstellungen auf aus setzen.

Ein kurzer Einblick in den aktuellen Stand der Entwicklung (geplant für RC2)
Die IDS Induktionsfelder senden auf der Interrupt Leitung (blaues Kabel) permanent Daten. Wenn alles korrekt eingerichtet ist, senden die IDS Platten kontinuierlich "0000". Das heißt lediglich "alles ok". Zum besseren Verständnis: ein Interrupt unterbricht den Programmablauf und verarbeitet das Signal am Eingang (meist D5). Der ESP32 hat zwei CPU cores, daher ist das nicht weiter schlimm. Bei der Analyse von meinem Quellcode und der Auswirkungen Interrupt habe ich chatGPT mehrfach zum Absturz gebracht :Angel Die Analyse von chatGPT-5:
isr.jpg
Auch wenn viele chatGPT Ergebnisse schlicht falsch oder irreführend waren, ist die KI eine richtig gute Hilfe. Falsche Ergebnisse mögen aber auch an meinen prompts gelegen haben.
Innu
schnigges
Neuling
Neuling
Beiträge: 7
Registriert: Montag 20. Oktober 2025, 19:30

Re: Der Brautomat

#905

Beitrag von schnigges »

Vielleicht blöde Frage, aber brauch ich für das Display die brautomat-NX4832F035.ControllerDeck.tft oder die brautomat-NX4832F035.tft?
Benutzeravatar
Schmuckerl
Posting Junior
Posting Junior
Beiträge: 18
Registriert: Freitag 4. Oktober 2019, 14:10

Re: Der Brautomat

#906

Beitrag von Schmuckerl »

Servus Inno, leider habe ich nach dem 1.59.6 Upgrade ein Problem:
Screenshot 2025-11-14 071156.jpg
Update Log:
00:00:00 HTTPS Update Framework #1 started. free heap: 188328
00:00:00 Firmware Version: 1.59.6
00:00:00 Framwork update brautomat.min.css.gz getSize: 2844 fileSize: 2844
00:00:00 Framwork update error brautomat.min.js.gz getSize: 21775 fileSize: 12339
00:00:00 Framwork/Tools update error brautomat.ttf.gz connection refused
00:00:00 Framwork/Tools update error bootstrap.min.css.gz connection refused
00:00:00 Framwork/Tools update error bootstrap.min.js.gz connection refused
00:00:00 Framwork/Tools update error favicon.ico connection refused
00:00:00 Framwork/Tools update error lang.js connection refused
00:00:00 Framwork/Tools update error language/deutsch.json connection refused
00:00:00 Framwork/Tools update error language/english.json connection refused
00:00:00 Framwork/Tools update error language/norsk.json connection refused
00:00:00 Framework update finished

kann ich den Update irgendwie neu triggern?

Danke für deine Hilfe!
Ein schäumend prickelnd Gerstensaft, gibt Herzensmut und Manneskraft.
Benutzeravatar
Schmuckerl
Posting Junior
Posting Junior
Beiträge: 18
Registriert: Freitag 4. Oktober 2019, 14:10

Re: Der Brautomat

#907

Beitrag von Schmuckerl »

Schmuckerl hat geschrieben: Freitag 14. November 2025, 07:13 Servus Inno, leider habe ich nach dem 1.59.6 Upgrade ein Problem:

Screenshot 2025-11-14 071156.jpg

Update Log:
00:00:00 HTTPS Update Framework #1 started. free heap: 188328
00:00:00 Firmware Version: 1.59.6
00:00:00 Framwork update brautomat.min.css.gz getSize: 2844 fileSize: 2844
00:00:00 Framwork update error brautomat.min.js.gz getSize: 21775 fileSize: 12339
00:00:00 Framwork/Tools update error brautomat.ttf.gz connection refused
00:00:00 Framwork/Tools update error bootstrap.min.css.gz connection refused
00:00:00 Framwork/Tools update error bootstrap.min.js.gz connection refused
00:00:00 Framwork/Tools update error favicon.ico connection refused
00:00:00 Framwork/Tools update error lang.js connection refused
00:00:00 Framwork/Tools update error language/deutsch.json connection refused
00:00:00 Framwork/Tools update error language/english.json connection refused
00:00:00 Framwork/Tools update error language/norsk.json connection refused
00:00:00 Framework update finished

kann ich den Update irgendwie neu triggern?

Danke für deine Hilfe!
hab mir beholfen, indem ich die config aus dem datei explorer gesichert habe, mit einem älteren json verheiratet habe, neu geflasht habe und die config zurückgespielt habe. Aber wäre trotzdem interessant, was man in so einem fall tun kann. Danke!
Ein schäumend prickelnd Gerstensaft, gibt Herzensmut und Manneskraft.
Benutzeravatar
Innuendo
Posting Freak
Posting Freak
Beiträge: 2347
Registriert: Freitag 2. März 2018, 09:43

Re: Der Brautomat

#908

Beitrag von Innuendo »

Schmuckerl hat geschrieben: Freitag 14. November 2025, 08:22 Update Log:
00:00:00 HTTPS Update Framework #1 started. free heap: 188328
00:00:00 Firmware Version: 1.59.6
00:00:00 Framwork update brautomat.min.css.gz getSize: 2844 fileSize: 2844
00:00:00 Framwork update error brautomat.min.js.gz getSize: 21775 fileSize: 12339
00:00:00 Framwork/Tools update error brautomat.ttf.gz connection refused
Etwas schade, dass Du das Problem gelöst hast ;-) Hätte ich mir gerne genauer angeschaut.
Die CSS ist vollständig übertragen worden. Die JavaScript Datei wurde ca. 50% übertragen und anschließend folgen nur noch "Verbindung abgelehnt".
Ich kann mir zwei Möglichkeiten vorstellen:
a) die Internet Verbindung war nicht stabil oder SSL Fehler
b) kein freier Speicher im Flash vom ESP32

Letzteres siehst Du im Explorer oben rechts "FileSystem".
Falls Du im Explorer im Ordner language die Dateien norsk.json (norwegisch) und english.josn hast: rechte Maustaste -> delete
Der Brautomat ab 1.59.6 lädt Sprachdateien aus dem github repository bei Bedarf nach.
Schmuckerl hat geschrieben: Freitag 14. November 2025, 08:22 kann ich den Update irgendwie neu triggern?
ja das geht, solange die Firmware noch aktiv ist

http://brautomat.local/edit
Über den Dateiexplorer lassen sich Dateien hochladen, löschen etc. In Deinem Fall oben hätte ich die Datei brautomat.min.js.gz gelöscht und aus der ZIP Datei hochgeladen.

http://brautomat.local/update
Die URL öffnet eine WebSeite DateiUpdate. Hier kann die Firmware und der Dateibereich neu eingespielt werden. Bitte beachten: wenn der Dateibereich (LittleFs) eingespielt wird, werden alle Konfigurationen, Rezept etc. überschrieben.
Innu
Innu
Benutzeravatar
Innuendo
Posting Freak
Posting Freak
Beiträge: 2347
Registriert: Freitag 2. März 2018, 09:43

Re: Der Brautomat

#909

Beitrag von Innuendo »

schnigges hat geschrieben: Mittwoch 12. November 2025, 22:00 Vielleicht blöde Frage, aber brauch ich für das Display die brautomat-NX4832F035.ControllerDeck.tft oder die brautomat-NX4832F035.tft?
Das ist Geschmackssache. Das Controller Deck im Display auf der Brew Page (Power, Play, Pause, Prev und Next) war ein Wunsch. Mit der neuen Version wird es nur noch eine Version (mit Deck) geben.
Innu
schnigges
Neuling
Neuling
Beiträge: 7
Registriert: Montag 20. Oktober 2025, 19:30

Re: Der Brautomat

#910

Beitrag von schnigges »

Innuendo hat geschrieben: Freitag 14. November 2025, 21:07
schnigges hat geschrieben: Mittwoch 12. November 2025, 22:00 Vielleicht blöde Frage, aber brauch ich für das Display die brautomat-NX4832F035.ControllerDeck.tft oder die brautomat-NX4832F035.tft?
Das ist Geschmackssache. Das Controller Deck im Display auf der Brew Page (Power, Play, Pause, Prev und Next) war ein Wunsch. Mit der neuen Version wird es nur noch eine Version (mit Deck) geben.
Innu
Dank dir für die Info, konnte mit dem Begriff Controller Deck erst nichts anfangen 😅
Muss man das Display eigentlich neu über die MicroSD flashen wenn es da ein Update gibt oder funktioniert das auch über den Webupdate Mechanismus?

Super tolles Projekt übrigens, vielen Dank für die ganze Arbeit! Bin grad dabei alles aufzusetzen, der DS18B20 Sensor wird noch an keinem Anschluss erkannt, aber sonst funktionierts bisher super. Vielleicht hat der Sensor nen Hau, der lag hier noch rum, keine Ahnung ob der jemals funktioniert hat, hab noch einen bestellt.
Benutzeravatar
Innuendo
Posting Freak
Posting Freak
Beiträge: 2347
Registriert: Freitag 2. März 2018, 09:43

Re: Der Brautomat

#911

Beitrag von Innuendo »

Der Brautomat unterstützt die 3-adrige Dallas Sensoren (Vcc (häufig rot), Gnd (meist sw oder braun) und Data (oft grün)). Ein Widerstand 4.7k muss vorhanden sein. Wenn keine Sensoradresse gefunden wird oder im Tab Sysinfo der Dallas Typ nicht erscheint, dann ist entweder der Sensor falsch angeschlossen oder es ist ein unbekannter Sensor.
Benutzeravatar
Innuendo
Posting Freak
Posting Freak
Beiträge: 2347
Registriert: Freitag 2. März 2018, 09:43

Re: Der Brautomat

#912

Beitrag von Innuendo »

Version 1.59.8 RC2 dev
Erst einmal vielen Dank an alle, die beim Testen Web Interface geholfen haben :Drink
Mit der RC2 sind nun endlich auch die GGM IDS steuerbar. Mein Brautest Starterwürze war problemlos & fehlerfrei.

kurz & knapp:
- Vor einem WebUpdate bitte ein Backup erstellen
- neu flashen ist nicht erforderlich
- Ein WebUpdate von 1.57 ist getestet
- am Ende vom WebUpdate von 1.57 erscheint eine Toast Nachricht "proccess interruption". Bitte ignorieren (API geändert)
- das neue Dashboard ist vollständig im Maischeprozess eingebunden (Kessel, Aktoren und Sensoren)
- das neue Dashboard ist optional. Wenn die Widgets Kessel, Aktoren und Sensoren nicht aktiviert werden, ist die Optik und Haptik identisch zur 1.57
- RC1 war nur gucken & klicken
- RC2 kann steuern und brauen. Bitte keinen Brautag ohne Testlauf durchführen.

Für User mit einem WLAN Mesh oder verschiedenen APs: ich habe ein neues WLAN ConfigPortal erstellt. Das ConfigPortal findet in meinem FritzMesh APs mit unterschiedlicher Signalstärke. Der AP mit der besten Signalstärke ist vorausgewählt. Einfach ausprobieren: WLAN Einstellungen löschen und mit AP Brautomat verbinden. Das neue CaptivePortal verbindet sich automatisch (auch auf dem Smartphone möglich).

Innu
Benutzeravatar
Schmuckerl
Posting Junior
Posting Junior
Beiträge: 18
Registriert: Freitag 4. Oktober 2019, 14:10

Re: Der Brautomat

#913

Beitrag von Schmuckerl »

Hallo Innu,
hab "noch" 1.59.6 Dev und hab 2 kleine Problemchen (vermutlich in der 1.59.7 auch noch vorhanden):

1) die Temperaturanzeige beim Nachlauf hinkt hinterher, hoffentlich nicht auch beim Thresholdvergleich?! siehe Bild
2) die % Anzeige beim manuellen Modus (Gauge, im Bild alles blau) ist nach einem Browser Refresh immer 0 (alles grau)
nachguss1.jpg
nicht wundern, ich verwende es auch zum Schnapsbrennen!

Danke!! Auch für die schnelle Hilfe zuletzt!
Ein schäumend prickelnd Gerstensaft, gibt Herzensmut und Manneskraft.
chrs1978
Posting Klettermax
Posting Klettermax
Beiträge: 109
Registriert: Samstag 20. März 2021, 13:15

Re: Der Brautomat

#914

Beitrag von chrs1978 »

Ich werde an Wochenende auch mal einen Testlauf nur mit Wasser starten.
Bin momentan dabei meine Brausteuerung zu bauen und hatte keine Zeit für die Steuerung. Das kommt jetzt.
Der Schaltkasten ist soweit fertig und die ganzen Pumpen und Schläuche sind verlegt.

Gibts für die API eine Doku ? Kann man ggf. direkt drauf zugreifen. Für meinen Prozess wäre es praktisch, wenn man die Aktoren ohne Handy / Touch schalten könnte. Ich würde mir dann einfach eine Art HVO bauen mit einem weiteren ESP, der auf Tastendruck was an die API sendet.
Oder gibts gar eine Möglichkeit, Eingänge des Bautomat ESPs mit Ausgängen zu verknüpfen ? Also z.B. wenn IO 0.1 High ist, schaltet er den Aktor HLT Pumpe ein. Als tastenden Eingang.
Klar, Wunschdenken, kein Muss nur eine Idee ;-) Aber das ist ja keine SPS. Kommt aber schon jetzt verdammt nah dran :-)

Viele Grüße
Benutzeravatar
Innuendo
Posting Freak
Posting Freak
Beiträge: 2347
Registriert: Freitag 2. März 2018, 09:43

Re: Der Brautomat

#915

Beitrag von Innuendo »

Schmuckerl hat geschrieben: Freitag 21. November 2025, 08:25 hab "noch" 1.59.6 Dev und hab 2 kleine Problemchen (vermutlich in der 1.59.7 auch noch vorhanden):
bitte auf 1.59.8 aktualisieren. In .7 und .8 ist User Feedback (unterschiedliche Kessel, unterschiedliches Vorgehen...) eingeflossen. Die aktuelle 1.59.10dev konnte ich noch nicht mit meiner IDS oder Nachguss an Relais testen.
Schmuckerl hat geschrieben: Freitag 21. November 2025, 08:25 1) die Temperaturanzeige beim Nachlauf hinkt hinterher, hoffentlich nicht auch beim Thresholdvergleich?! siehe Bild
2) die % Anzeige beim manuellen Modus (Gauge, im Bild alles blau) ist nach einem Browser Refresh immer 0 (alles grau)
ja, beides ist in Bearbeitung oder bereits behoben, aber noch nicht online. Ich hoffe, dass am Wochenende etwas Zeit für einen Test Brautag übrig ist. Die Anzeige im WebIf ist immer etwas verzögert, aber das ist unabhängig von Deinem Screenshot. Der Ablauf im Brautomat ist in etwa so:

- der SensorTask fragt alle DS18B20 ab
- der KettleTask prüft IST vom Sensor gegen SOLL aus dem Maischeplan und berechnet PID
-- Kettles an Relais werden direkt verarbeitet
-- bei Kettles vom Typ IDS übernimmt der SendTask die Verarbeitung die Steuerbefehle an Deine IDS
- der DisplayTask aktualisiert Dein Display (falls vorhanden)
... und ein paar weitere ...

Und das WebIf erhält über SSE Events alle Daten.

Dieser gekürzte Ablauf ist nicht linear oder top-down. Die Tasks haben unterschiedliche Intervalle und Prioritäten. Die unterschiedlichen Temperaturen ergeben sich primär aus unterschiedlichen Intervallen für das WebIf. Dein Screenshot zeigt, dass die WebIf Anzeige Nachguss IST-Temperatur um geschätzte 3-5 Sekunden "veraltet" ist. Was ist bei Deinem Nachguss als SampleTime eingestellt? Ich vermute 5000ms oder 7000ms (wäre korrekt!). Ein Kessel wird immer mit der aktuellen Sensor Temperatur (hier Brenntemperatur) gesteuert und nicht mit der angezeigten WebIf Temperatur beim Kessel. Die Anzeige ist unschön und verwirrend. Wird bzw. ist behoben.
Schmuckerl hat geschrieben: Freitag 21. November 2025, 08:25 nicht wundern, ich verwende es auch zum Schnapsbrennen!
:Bigsmile
Innu
Benutzeravatar
Innuendo
Posting Freak
Posting Freak
Beiträge: 2347
Registriert: Freitag 2. März 2018, 09:43

Re: Der Brautomat

#916

Beitrag von Innuendo »

Hallo
chrs1978 hat geschrieben: Freitag 21. November 2025, 10:16 Gibts für die API eine Doku ? Kann man ggf. direkt drauf zugreifen. Für meinen Prozess wäre es praktisch, wenn man die Aktoren ohne Handy / Touch schalten könnte. Ich würde mir dann einfach eine Art HVO bauen mit einem weiteren ESP, der auf Tastendruck was an die API sendet.
Oder gibts gar eine Möglichkeit, Eingänge des Bautomat ESPs mit Ausgängen zu verknüpfen ? Also z.B. wenn IO 0.1 High ist, schaltet er den Aktor HLT Pumpe ein. Als tastenden Eingang.
Eine API doc habe ich begonnen. 99% der Routen an und vom WebServer werden über die Schnittstellen apiGET und apiPOST verarbeitet (siehe unten). Die API ist noch eine frühe alpha Version. Die Firmware fängt zwar viel ab, aber die Eingabekontrolle habe ich auf den Client ausgelagert.

Einen Input PIN oder Interrupt zur Steuerung von Aktoren bietet der Brautomat nicht und aktuell gibt es keine Planung in der Richtung. Ich verstehe aus der Beschreibung noch nicht, was Du aufbauen möchtest (was ist HVO?). Du kannst jeden Aktor über Deinen Maischeplan schalten. Oder manuell per Click bzw. Touch. Wofür einen Taster?
Innu

Code: Alles auswählen

/**
 * Universelle GET-Funktion (Promise-basiert, keine Callbacks)
 * Erkennt automatisch JSON oder Text
 * @param {string} url - Endpoint-URL
 * @param {boolean} alarm - sendAlarm aktivieren, default false
 * @param {boolean} toast - toast nachricht bei fehler, default false
 * @param {boolean} log - debug ausgaben auf console im browser, default false
 * @returns {Promise<any>} - Antwort vom Server (JSON-Objekt oder Text)
 * Beispiele: 
 * Standard Aufruf:         apiGET('/getMisc')
 * mit alarm und toast:     apiGET('/getMisc', true, true)
 * mit Ausgabe console.log: apiGET('/getMisc', false, false, true)
 */
async function apiGET(url, alarm = false, toast = false, log = true) {
	try {
		const response = await fetch(url, {
			method: "GET",
			cache: "default"
			// cache: "no-cache"
			// cache: "no-store"
		});

		if (!response.ok) {
			throw new Error(`Error apiGET: ${response.status}`);
		}

		const contentType = (response.headers.get("Content-Type") || "").toLowerCase();
		let data;
		if (contentType.includes("application/json")) {
			try {
				data = await response.json();
			} catch (jsonErr) {
				throw new Error(`Ungültiges JSON: ${jsonErr.message}`);
			}
			if (log) logVerbose(`apiGET JSON: url: ${url} response:`, data);
		} else {
			data = await response.text();
			if (log) logVerbose(`apiGET TEXT: url: ${url} response:`, data);
		}

		if (toastVis > 0 && alarm) {
			playSound(ALARMWARNING);
		}
		return data;
	} catch (err) {
		const msg = `Error apiGET: ${url} - ${err.message}`;
		if (log) logError(msg);
		if (toast && toastVis > 0) {
			if (alarm) { playSound(ALARMERROR); }
			showToastConfirm({
				title: 'Error apiGET',
				content: msg,
				type: 'danger',
				displayTime: 20000,
				autoHide: false,
				buttons: [
					{
						content: 'close',
						type: 'danger',
						default: 'true'
					}
				]
			});
		}
		return null;
	}
}

/**
 * Universelle POST-Funktion
 * @param {string} url - Endpoint-URL
 * @param {Object} data - Daten, die gesendet werden (josn oder txt)
 * @param {boolean} alarm - sendAlarm aktivieren, default false
 * @param {boolean} toast - toast nachricht bei fehler, default false
 * @param {boolean} log - debug ausgaben auf console im browser, default false
 * @param {"json"|"text" | "formdata"} postType - content-type für header, default json
 * @param {"json"|"text"} responseType - erwarteter Rückgabewert, Nutzt response.headers.get("content-type") -> responseType wird ignoriert
 * @returns {Promise<any>} - Antwort vom Server
 * Beispiele: 
 * Standard Aufruf:         apiPOST('/setMisc', obj)
 * mit alarm und toast:     apiPOST('/setMisc', obj, true, true)
 * mit Ausgabe console.log: apiPOST('/setMisc', obj, true, true, true, "json", "text")
 * Kurzversion:             apiPOST('/setMisc')
 */
async function apiPOST(url, data = null, alarm = false, toast = false, log = true, postType = "json") {
	try {
		const headers = {
			"json": { "Content-Type": "application/json" },
			"text": { "Content-Type": "text/plain" },
			"formdata": {} // FormData setzt selbst boundary-Header
		};

		if (!headers[postType]) {
			throw new Error(`postType not valid: ${postType}`);
		}

		const options = {
			method: "POST",
			headers: postType === "formdata" ? undefined : headers[postType],
			body: data ? (postType === "json" ? JSON.stringify(data) : data) : undefined
		};

		if (log) logVerbose(`apiPOST url: ${url} postType: ${postType} data: `, data);

		const response = await fetch(url, options);

		if (!response.ok) {
			throw new Error(`HTTP ${response.status}: ${response.statusText}`);
		}

		// Content-Type automatisch erkennen
		const contentType = response.headers.get("content-type") || "";
		let result;

		if (contentType.includes("application/json")) {
			result = await response.json();
			if (log) logVerbose(`apiPOST JSON Response [${url}] →`, result);
		} else {
			result = await response.text();
			if (log) logVerbose(`apiPOST TEXT Response [${url}] →`, result);
		}

		// Alarm optional abspielen
		if (typeof toastVis !== "undefined" && toastVis > 0 && alarm) {
			playSound(ALARMWARNING);
		}

		return result;

	} catch (err) {
		const msg = `Error apiPOST: ${url} err: ${err.message}`;
		if (log) logError(msg);

		if (toastVis > 0) {
			if (alarm) playSound(ALARMERROR);
			if (toast && toastVis > 0) {
				showToastConfirm({
					title: 'Error apiPOST',
					content: msg,
					type: 'danger',
					displayTime: 20000,
					autoHide: false,
					buttons: [
						{
							content: 'close',
							type: 'danger',
							default: 'true'
						}
					]
				});
			}
		}
		return null;
	}
}
chrs1978
Posting Klettermax
Posting Klettermax
Beiträge: 109
Registriert: Samstag 20. März 2021, 13:15

Re: Der Brautomat

#917

Beitrag von chrs1978 »

Die API kuck ich mir mal an. Vielleicht mach ich es über diese, oder doch anders :-)
HVO ist eine VorOrt Bedienstelle. Also ein ESP in einem extra Gehäuse, der dann per Tastendruck an den Brautomat sendet.
Aber es geht auch einfacher. Ich baue einfach Knebelschalter in die Tür und überbrücke die Relais der Aktoren um manuell zu fahren, ohne am Handy zu sein. Mir ist eine mechanische Bedienung einfach lieber, wenn ich im Prozess man ne Pumpe brauche oder den Kühlkreis des Plattenwärmetauschers starten will. Alles in Allem nicht so wirklich wichtig, weil ich es einfach lösen kann. Also das ist erstmal vom Tisch :-) Einfach vergessen, kein weiteres Thema.

Habe heute mal einen Testlauf gemacht und das Auto PID Tuning laufen lassen. Habe nichts dran gemacht, während das Tuning gelaufen ist. Also kein Wasser ausgetauscht, damit es schneller abkühlt oder die Isolierung des Einkochers entfernt. Habs einfach in Ruhe gelassen ^^
Nacht dem Tuning schwingt er nicht mehr um 2-3 Grad über, aber erreicht trozdem 50,9 statt der eingestellten 50.

Relais PID - Einkocher mit 18L Wasser - Isoliert - Rührwerk.

Das selbe Verhalten habe ich mit meinem Nachgussbereiter.

Relais PID - Gastronomie Kaffemaschine - 12L Wasser - Isoliert

Beim Maischeplan ist mir aufgefallen, dass er beim Einmaischen die Temperatur nicht hält, bis man auf "Play" drückt. Autonext ist beim Einmaischen aus und der Timer auf 1 Minute. Wenn man schnell genug einmaischt ist das ein kleineres Problem.
Also er heizt auf die eingestellte Einmaischtemperatur und heizt dann nicht mehr nach.
Aber dann muss man ja auf Play drücken, damit er auf die erste Rast heizt (63 Grad - 30 Minuten)
Hier startet der Timer aber sofort, wenn man nach dem Einmaischen auf Play drückt. Sollte der Timer nicht erst starten, wenn er die 63 Grad erreicht hat ? Der Timer startet sofort und nach Ablauf geht er in den nächsten Schritt und heizt auf 73 Grad hoch.

Ich nutze zum Testen den Default Maischplan, der schon drin ist damit alles gleich ist :-)

Verstehe ich da nur was falsch, oder hakt da was ?

Viele Grüße

Chris
Benutzeravatar
Innuendo
Posting Freak
Posting Freak
Beiträge: 2347
Registriert: Freitag 2. März 2018, 09:43

Re: Der Brautomat

#918

Beitrag von Innuendo »

chrs1978 hat geschrieben: Freitag 21. November 2025, 19:55 Habe heute mal einen Testlauf gemacht und das Auto PID Tuning laufen lassen. Habe nichts dran gemacht, während das Tuning gelaufen ist. Also kein Wasser ausgetauscht, damit es schneller abkühlt oder die Isolierung des Einkochers entfernt. Habs einfach in Ruhe gelassen ^^
Nacht dem Tuning schwingt er nicht mehr um 2-3 Grad über, aber erreicht trozdem 50,9 statt der eingestellten 50.

Relais PID - Einkocher mit 18L Wasser - Isoliert - Rührwerk.

Das selbe Verhalten habe ich mit meinem Nachgussbereiter.

Relais PID - Gastronomie Kaffemaschine - 12L Wasser - Isoliert
für ein Relais gesteuertes System ist 0.9 sehr gut. Das System kann nur an (100%) oder aus (0%).
Du kannst mit der SampleTime und der maximalen Leistung (bspw. 80-90%) etwas nachbessern. mMn: sei mit nur 0.9 Grad mehr als zufrieden mit einem Einkocher. Wenn Du im Bereich 64-67°C eine Schwingung von 0.5-0.9°C hinbekommst, ist das mit einem Einkocher richtig gut. Der Enzymbereich ist viel größer.
chrs1978 hat geschrieben: Freitag 21. November 2025, 19:55 Beim Maischeplan ist mir aufgefallen, dass er beim Einmaischen die Temperatur nicht hält, bis man auf "Play" drückt. Autonext ist beim Einmaischen aus und der Timer auf 1 Minute. Wenn man schnell genug einmaischt ist das ein kleineres Problem.
Wenn ich Dich richtig verstehe, ist das ein korrektes Verhalten. Die Einmaischtemperatur ergibt sich im Mischkreuz aus der Wasser- und der Malztemperatur. Es wird also beim Einmaischen nicht nachgeheizt, sobald der Pause Button rot leuchtet (autonext deaktiviert).
chrs1978 hat geschrieben: Freitag 21. November 2025, 19:55 Aber dann muss man ja auf Play drücken, damit er auf die erste Rast heizt (63 Grad - 30 Minuten)
ja, aber erst, wenn Du fertig eingemaischt hast. Ich lass mir dabei gern Zeit (~10min). Ich maische gern bei 52-53 Grad ein. Das vermischt sich zu 50 Grad und ist das dann eine kurze Eiweißrast.
chrs1978 hat geschrieben: Freitag 21. November 2025, 19:55 Hier startet der Timer aber sofort, wenn man nach dem Einmaischen auf Play drückt. Sollte der Timer nicht erst starten, wenn er die 63 Grad erreicht hat ? Der Timer startet sofort und nach Ablauf geht er in den nächsten Schritt und heizt auf 73 Grad hoch.
jetzt weiß ich nicht, was du wann geklickt hast. oder ich bin falsch abgebogen. Melde Dich einfach per PN mal.
Innu
chrs1978
Posting Klettermax
Posting Klettermax
Beiträge: 109
Registriert: Samstag 20. März 2021, 13:15

Re: Der Brautomat

#919

Beitrag von chrs1978 »

Ok, 0,9 ist für mich auch kein Weltuntergang. Ich sehe das recht locker und mache keine Atomwissenschaft daraus. Ist mir nur aufgefallen.
Habe vorher die AiO am Arduino Mega verwendet. Die ESP32 Version ist unbauchbar. Die AiO trifft die Temperatur (in meinem Fall aber besser. Die erreicht die Temperatur exakt und hält die auch bei +- 0,1 Grad. Man braucht auch kein Auto Tuning. Das läuft da anscheinend etwas anders.
Die AiO rechnet mit Kelvin/Minute und trifft damit erstaunlich gut. Zum Erreichen der Zieltemp hin, fängt er an in Relaistauglichen Abständen die Heizung an und aus zu schalten.
Bevor ich zur AiO gewechselt bin, habe ich mit CBPi rumprobiert und nie richtig gut die Zieltemperatur erreicht.
Mit dem Brautomat komme ich aber schon recht gut hin. Vielleicht kann ich da noch nachtunen.
Meine Kessel hängen über SSRs am Strom. Mal sehen ob da noch mehr geht.

Zum Maischplan :

Läuft so.

Power Button --> Heizt auf Einmaisch Temp und wartet auf Play Button "Einmaischen fertig".
Ich drücke auf Play, er heizt auf 63 Grad und startet den Timer des zweiten Schrittes sofort ohne erst die 63 Grad erreicht zu haben.
Wenn der Timer abgelaufen ist, geht er sofort in den dritten Schrit. (Was klar ist, weil Autonext an ist und der Timer abgelaufen ist).

Play wurde nur einmal nach dem Einmaischen gedrückt (weil er darauf dann wartet, bis das Malz drin ist)
Benutzeravatar
Innuendo
Posting Freak
Posting Freak
Beiträge: 2347
Registriert: Freitag 2. März 2018, 09:43

Re: Der Brautomat

#920

Beitrag von Innuendo »

chrs1978 hat geschrieben: Freitag 21. November 2025, 20:42 Power Button --> Heizt auf Einmaisch Temp und wartet auf Play Button "Einmaischen fertig".
Ich drücke auf Play, er heizt auf 63 Grad und startet den Timer des zweiten Schrittes sofort ohne erst die 63 Grad erreicht zu haben.
Wenn der Timer abgelaufen ist, geht er sofort in den dritten Schrit. (Was klar ist, weil Autonext an ist und der Timer abgelaufen ist).
Play wurde nur einmal nach dem Einmaischen gedrückt (weil er darauf dann wartet, bis das Malz drin ist)
Welche Version setzt Du ein? Ich habe für morgen eine recht lange todo Liste beim Testen. Wenn es eine 1.59.x ist, schaue ich mir das auf jeden Fall genauer an. Mit der Beschreibung wäre das ein Fehler.
chrs1978
Posting Klettermax
Posting Klettermax
Beiträge: 109
Registriert: Samstag 20. März 2021, 13:15

Re: Der Brautomat

#921

Beitrag von chrs1978 »

Ich habe die 1.59.8

Habe die gestern Abend per Webupdate gezogen.

Werde dann wieder Testen, wenn es soweit ist :-) Bis dahin baue ich an meiner Anlage weiter. Es sind zwar nur zwei Einkocher und eine Gastro Kaffeemaschine. Aber ich muss auf den Platzbedarf aufpassen, sonst wirft mich mein Mann samt der ganzen Kessel noch raus :D
Zumindest habe ich eine Nachgusspumpe und einen Plattenwärmetauscher unterbringen können der einen Sekundärkreis mit Eiswasser aus einem isolierten 30L Plastik Gäreimer hat.
Benutzeravatar
Innuendo
Posting Freak
Posting Freak
Beiträge: 2347
Registriert: Freitag 2. März 2018, 09:43

Re: Der Brautomat

#922

Beitrag von Innuendo »

chrs1978 hat geschrieben: Freitag 21. November 2025, 20:55 Ich habe die 1.59.8
ok, das schaue ich mir ganz genau an. Sehr gut, dass du einen Trockenlauf gemacht hast! 1.59.x ist eine Testversion. Jedes Feedback hilft.
chrs1978 hat geschrieben: Freitag 21. November 2025, 20:55 Aber ich muss auf den Platzbedarf aufpassen, sonst wirft mich mein Mann samt der ganzen Kessel noch raus :D
kommt mir irgendwie bekannt vor :Angel
chrs1978
Posting Klettermax
Posting Klettermax
Beiträge: 109
Registriert: Samstag 20. März 2021, 13:15

Re: Der Brautomat

#923

Beitrag von chrs1978 »

Ich helfe wo ich kann :-) Auch wenn ich nur ohne IDS testen kann. Aber der Teil ist für manche auch interessant.

Glaub da sitzen alle mit dem Hobby im selben Boot :-D Ich habe einen Wagen aus Aluprofilen gebaut mit Tischplatten, die zur Küche passen :-D
Also kann ich das Ding in die Küche stellen und es als Arbeitsplatte nutzen wenn nicht gebraut wird. Die Kessel verschwinden im Schrank und die Gastro Kaffeemaschine passt knapp in den Gäreimer und der passt in den Speidel Gärtank. Dann verschwindet alles so gut es geht und es ist genehmigt xD Und er trinkt ja auch mein Bier und davon nicht wenig :-)
Benutzeravatar
Innuendo
Posting Freak
Posting Freak
Beiträge: 2347
Registriert: Freitag 2. März 2018, 09:43

Re: Der Brautomat

#924

Beitrag von Innuendo »

chrs1978 hat geschrieben: Freitag 21. November 2025, 21:18 Ich helfe wo ich kann :-) Auch wenn ich nur ohne IDS testen kann. Aber der Teil ist für manche auch interessant.
ja genau. ich habe keinen Einkocher, aber viele Brautomat User verwenden einen. Das Ding heißt ja nicht IDSautomat ;-)
chrs1978 hat geschrieben: Freitag 21. November 2025, 21:18 Dann verschwindet alles so gut es geht und es ist genehmigt xD Und er trinkt ja auch mein Bier und davon nicht wenig :-)
Bring eines (oder zwei) Deiner Biere auf die HBCon mit. Dann kann ich "und davon nicht wenig" besser beurteilen :Bigsmile
chrs1978
Posting Klettermax
Posting Klettermax
Beiträge: 109
Registriert: Samstag 20. März 2021, 13:15

Re: Der Brautomat

#925

Beitrag von chrs1978 »

Stimmt, die meisten werden wohl Einkocher verwenden und keine Atomwissenschaft draus machen. Wenn man so im Netz liest wird man schnell unsicher. Weil da wegen 0.5 Grad ein Fass aufgemacht wird :-D Aber in der Küche mit Kochtöpfen gehts ja eigentlich auch und da gehts um 2-5 Grad und deren Bier ist nicht ungeniessbar.

Wenn ich da mal hinkomme, habe ich sicher welches dabei. Aber das kann noch dauern weil ich viel anderes um die Ohren habe und die Zeit ist immer das Problem :-D
Benutzeravatar
Innuendo
Posting Freak
Posting Freak
Beiträge: 2347
Registriert: Freitag 2. März 2018, 09:43

Re: Der Brautomat

#926

Beitrag von Innuendo »

chrs1978 hat geschrieben: Freitag 21. November 2025, 21:35 Wenn ich da mal hinkomme, habe ich sicher welches dabei. Aber das kann noch dauern weil ich viel anderes um die Ohren habe und die Zeit ist immer das Problem :-D
wir müssen dringend über Prioritäten reden!
Ich habe mitgenommen, dass auch ein Einkocher +- 0.1°C gesteuert werden kann. Vermutlich arbeitet AiO mit einem Gradienten. Ich kenne zwar ein bissl den Faden hier im Forum, habe mich aber noch nicht mit AiO beschäftigt. Das ist eine interessante Aufgabe ...
chrs1978
Posting Klettermax
Posting Klettermax
Beiträge: 109
Registriert: Samstag 20. März 2021, 13:15

Re: Der Brautomat

#927

Beitrag von chrs1978 »

Hehe,

Arbeit und Urlaub (Fernreise) haben wirklich andere Prios :-D

Stimmt das wars. Gradienten das war der Unterschied zu CBPi damals. Auf Anhieb ist der auf Zieltemp gefahren. Ich hatte meinen Einkocher an der AiO sogar nur per Relais in Betrieb und dessen Kontakte sind noch nicht abgebrannt. Die Steuerung ballert erst bis ca 5 Grad unter Zieltemp (soweit ich mich erinnere) dann fängt er an immer mal abzuschalten und dann wieder an. Aber nicht im Sekundentakt sonder so alle 5-10 Sekunden.
In der Zeit wo er die lange Streck bis zur Zieltemp heizt ermittelt er wohl, wie schnell das Gerät und die Masse ist. Ist recht gut gelöst, finde ich.
Ob es für Brautomat brauchbar ist, ist die Frage.
Benutzeravatar
Bitter
Posting Freak
Posting Freak
Beiträge: 1219
Registriert: Samstag 19. September 2015, 15:32
Wohnort: Bochum

Re: Der Brautomat

#928

Beitrag von Bitter »

chrs1978 hat geschrieben: Freitag 21. November 2025, 20:42 Habe vorher die AiO am Arduino Mega verwendet. Die ESP32 Version ist unbauchbar.
Bei der Version für den ESP32 gab es am Anfang Probleme mit der Encoder-Einbindung, die sind aber mittlerweile behoben! Die Version ohne Display und Encoder funktionierte aber schon immer gut. Inzwischen ist die Version gleichwertig zur Mega-Variante, hat jedoch den Vorteil der einfacheren Bluetooth-Verbindung.

Gruß Lothar
chrs1978
Posting Klettermax
Posting Klettermax
Beiträge: 109
Registriert: Samstag 20. März 2021, 13:15

Re: Der Brautomat

#929

Beitrag von chrs1978 »

Ich gebe nur eine ganz kurze Rückmeldung wegen der AiO, weil gerade Feedback hier ist.
Leider ist die AiO32 noch immer recht "wonky" was den Drehgeber betrifft. Es werden oft Menues übersprungen beim Klick. Und die Drehimpulse werden nicht so sauber wie beim Arduino erkannt. Alles in Allem ist die Arduino Version iwie flotter und flüssiger als am ESP32.
Die Temperatur aktualisiert sich auch viel langsamer im Hauptmenü als beim Mega.
Möchte diesen Thread aber nicht für eine andere Steuerung misbrauchen. Einfach PN, falls Interesse besteht.
Iserlohner
Posting Klettermax
Posting Klettermax
Beiträge: 257
Registriert: Sonntag 1. November 2020, 19:16

Re: Der Brautomat

#930

Beitrag von Iserlohner »

Moin...
Ich habe gerade ein "komisches" Verhalten an meinem Brautomaten (V1.57.10).
Nachdem ich längere Zeit kein Display angeschlossen hatte, weil der Touchscreen aus unerklärlichen Gründen plötzlich nicht mehr funktionierte, habe ich das Display heute mal wieder in Betrieb genommen.
Das zeigt auch etwas an, allerdings scheint es nicht mehr "kalibriert" zu sein.
Wenn ich ein Stück links neben die (z.B. ganz rechts am Displayrand befindlichen) Buttons klicke, wird z.B. das Display zu einer anderen Anzeige geschaltet.
Ist natürlich blöd, wenn man in der Anzeige des Manuellen Modus z.B. die Buttons ganz links drücken möchte :-(

@Innu:
Gibt es eine Möglichkeit das Display wieder zu kalibrieren ?

Grüße und ein schönes Wochenende
Dirk
Benutzeravatar
Innuendo
Posting Freak
Posting Freak
Beiträge: 2347
Registriert: Freitag 2. März 2018, 09:43

Re: Der Brautomat

#931

Beitrag von Innuendo »

Hi Dirk!
meinst du hier?
disp.jpg
Kalibrieren gibt es (soweit ich weiß) nicht. Wenn das Display eingeschaltet wird, macht das Nextion alles selbstständig.
Ich würde die Firmware neu flashen und schauen, ob das Problem damit behoben ist. Letzte Woche habe ich die Display Firmware Dateien nach einem Update von Nextion aktualisiert.
Wenn beim Touch auf einen Button (buttonPlus) ein anderer Bereich (p2BackButton) ausgelöst wird, dann ist das Display vermutlich nicht mehr iO.
Dir auch ein schönes WE
Innu
Iserlohner
Posting Klettermax
Posting Klettermax
Beiträge: 257
Registriert: Sonntag 1. November 2020, 19:16

Re: Der Brautomat

#932

Beitrag von Iserlohner »

Innuendo hat geschrieben: Samstag 22. November 2025, 18:56 Hi Dirk!
meinst du hier?
disp.jpg
Kalibrieren gibt es (soweit ich weiß) nicht. Wenn das Display eingeschaltet wird, macht das Nextion alles selbstständig.
Ich würde die Firmware neu flashen und schauen, ob das Problem damit behoben ist. Letzte Woche habe ich die Display Firmware Dateien nach einem Update von Nextion aktualisiert.
Wenn beim Touch auf einen Button (buttonPlus) ein anderer Bereich (p2BackButton) ausgelöst wird, dann ist das Display vermutlich nicht mehr iO.
Dir auch ein schönes WE
Innu
Hallo Innu.

Ja, genau das meine ich.
Hab gerade mal das neue File aufs Display geflashed. Leider ohne Erfolg. :-(
Gleiches Verhalten wie vorher.
Wenn ich z.B. ganz unten irgendwo zw. P4 und 100% klicke, dann verändert sich das "Plus-Zeichen" (wird weiß) und das graue Kästchen in der Leistungseinstellung wandert einen Schritt nach rechts.
Bei den darüberliegenden Button (p2For und p2Back) das gleiche. Muss jeweils ein Stück links daneben klicken, damit die Funktion ausgeführt wird.
Die Buttons für Minus und Power (ganz links) kann ich leider gar nicht betätigen.

Dieses Verhalten ist bei allen 3 Anzeigen so auf diesem Display so.

Grüße
Dirk
Benutzeravatar
ralfsteck
Posting Klettermax
Posting Klettermax
Beiträge: 198
Registriert: Mittwoch 20. März 2019, 09:50
Wohnort: Friedrichshafen

Re: Der Brautomat

#933

Beitrag von ralfsteck »

Hallo zusammen,

(nicht ganz Off-Topic)

mein erster Sud mit neuer IDS5, 36l-Topf, Rührwerk und Brautomat lief eigentlich gut, das Bier hat trotzdem den Weg bin den Gully genommen, weil die Maische sehr stark angebrannt ist. Vor dem nächsten Sud wollte ich Erfahrungen von Leuten mit ähnlichem Setup abfragen.

Ich habe das Rührwerk im Einkocher genutzt, da brannte nix an. Für den (höheren) 36l-Topf habe ich die Welle des Rührers so verlängert, dass das Paddel am Ende wieder gleich hoch hängt wie im Einkocher. Allerdings hatte der Einkocher 1800W und die IDS5 hat jetzt 3500W. Also muss ich wohl die Leistung der Platte verringern.

Ich habe die Drehzahl des Rührwerks während der Rasten auf 60% verringert, kann aber nicht glauben, dass das Anbrennen während der Rasten passiert ist, als quasi nicht geheizt wurde.

Oder wie regelt Ihr das?
Gruß, Ralf
Weizenfanatiker, Bottichmaischer und Brauschrauber vom Bodensee.
Antworten