Lelit Mara X Shot Timer

Diskutiere Lelit Mara X Shot Timer im Espresso- und Kaffeemaschinen Forum im Bereich Maschinen und Technik; Hi Zusammen, hab jetzt mal das ganze mit dem ESP8266 (AZ Delivery NodeMCU) und 1.3 OLED Display realisiert. Kosten zusammen um die 15 €. Gehäuse...

  1. #21 sebolous, 27.01.2023
    sebolous

    sebolous Mitglied

    Dabei seit:
    14.11.2021
    Beiträge:
    46
    Zustimmungen:
    11
    Hört sich gut an. Welches Skript hast du laufen? Oder hast du selbst eins geschrieben?
    Hast du schon Zugriff über das WLAN eingerichtet oder planst du das lediglich für die Zukunft?

    Viele Grüße!
     
  2. #22 RedNomis, 27.01.2023
    RedNomis

    RedNomis Mitglied

    Dabei seit:
    17.01.2023
    Beiträge:
    8
    Zustimmungen:
    19
    Das Skript ist schon von mir, natürlich habe ich z.b. Zugriff auf die serielle Schnittstelle nicht selbst erfunden ;-)
    Webserver läuft prinzipiell aber da bin ich noch dran.
     
    turbo_4wd und sebolous gefällt das.
  3. #23 turbo_4wd, 31.01.2023
    turbo_4wd

    turbo_4wd Mitglied

    Dabei seit:
    12.08.2015
    Beiträge:
    2
    Zustimmungen:
    0
    Hi, gefällt mir. Würdest du dein Skript auch zur Verfügung stellen. Habe die gleich Komponenten Zuhause aber leider keinen Tau bzw. zu wenig Zeit mich in dieses Thema zu arbeiten.

    LG Maxx
     
  4. #24 RedNomis, 31.01.2023
    RedNomis

    RedNomis Mitglied

    Dabei seit:
    17.01.2023
    Beiträge:
    8
    Zustimmungen:
    19
    Das mache ich noch wenn der Code halbwegs aufgeräumt ist. Wenn es eilig ist schick mir eine PN und wir können uns dazu austauschen.
     
    turbo_4wd gefällt das.
  5. #25 sebolous, 31.01.2023
    sebolous

    sebolous Mitglied

    Dabei seit:
    14.11.2021
    Beiträge:
    46
    Zustimmungen:
    11
    Hi zusammen!

    Vielleicht kann mir noch jemand weiterhelfen. Ich mache schon eine Weile mit dem Shot timer rum, leider erfolglos.
    Ich habe ein SSD1306 Display und halte mich daher an das Skript von SaibotFlow auf Github. Ich habe ein anderes Board (das hier), aber die Pins D5 und D6 scheinen auch bei mir zu passen. Zumindest bekomme ich ein wunderschönes "Hello world" hin. Die Verkabelung scheint also soweit zu passen.
    Ich habe also das Skript kopiert und bekam beim Kompilieren eine Fehlermeldung zu "int.index", nach dem Umbenennen aller "index" ging es dann aber ohne Fehler durch. Wenn ich es allerdings auf das Board spiele passiert einfach gar nichts.
    Vielleicht hat ja jemand eine Idee oder sieht direkt einen Fehler im Skript... Ich komme alleine leider nicht weiter.
    Hier ist mein aktueller Stand des Skripts:
    //Includes
    #include <Wire.h>
    #include <Adafruit_GFX.h>
    #include <Adafruit_SSD1306.h>
    #include <SoftwareSerial.h>

    //Defines
    #define SCREEN_WIDTH 128 //Width in px
    #define SCREEN_HEIGHT 64 // Height in px
    #define OLED_RESET -1
    #define SCREEN_ADDRESS 0x3C // or 0x3D Check datasheet or Oled Display
    #define BUFFER_SIZE 32

    //Pins
    int d5 = 5; //orange PIN 4 Mara TX to Arduino RX D5
    int d6 = 6; //black PIN 3 Mara RX to Arduino TX D6

    //Internals
    long lastMillis;
    int seconds = 0;
    int lastTimer = 0;
    long serialTimeout = 0;
    char buffer[BUFFER_SIZE];
    int index1 = 0;

    //Mara Data
    String maraData[7];
    String* lastMaraData;

    //Instances
    Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
    SoftwareSerial mySerial(d5, d6);

    void setup()
    {
    display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS);
    display.clearDisplay();
    display.display();
    Serial.begin(9600);
    mySerial.begin(9600);
    memset(buffer, 0, BUFFER_SIZE);
    mySerial.write(0x11);
    }

    void getMaraData()
    {
    /*
    Example Data: C1.06,116,124,093,0840,1,0\n every ~400-500ms
    Length: 26
    [Pos] [Data] [Describtion]
    0) C Coffee Mode (C) or SteamMode (V)
    - 1.06 Software Version
    1) 116 current steam temperature (Celsisus)
    2) 124 target steam temperature (Celsisus)
    3) 093 current hx temperature (Celsisus)
    4) 0840 countdown for 'boost-mode'
    5) 1 heating element on or off
    6) 0 pump on or off
    */

    while (mySerial.available())
    {
    serialTimeout = millis();
    char rcv = mySerial.read();
    if (rcv != '\n')
    buffer[index1++] = rcv;
    else {
    index1 = 0;
    Serial.println(buffer);
    char* ptr = strtok(buffer, ",");
    int idx = 0;
    while (ptr != NULL)
    {
    maraData[idx++] = String(ptr);
    ptr = strtok(NULL, ",");
    }
    lastMaraData = maraData;
    }
    }
    if (millis() - serialTimeout > 6000)
    {
    serialTimeout = millis();
    mySerial.write(0x11);
    }
    }

    void updateView()
    {
    display.clearDisplay();
    display.setTextColor(WHITE);
    //HX
    display.setCursor(2, 2);
    display.setTextSize(2);
    display.print(lastMaraData[3].toInt());
    display.setTextSize(1);
    display.print((char)247);
    display.setTextSize(1);
    display.print("C");
    //Pump
    display.setCursor(2, 30);
    display.print("H");
    if (lastMaraData[5].toInt() == 0)
    display.drawCircle(17, 33, 6, WHITE);
    else
    display.fillCircle(17, 33, 5, WHITE);
    display.setCursor(30, 30);
    //Heat
    display.print("P");
    if (lastMaraData[6].toInt() == 0)
    display.drawRect(40, 28, 10, 10, WHITE);
    else
    display.fillRect(40, 28, 10, 10, WHITE);
    //Steam
    display.setCursor(2, 50);
    display.setTextSize(2);
    display.print(lastMaraData[1].toInt());
    display.setTextSize(1);
    display.print((char)247);
    display.setTextSize(1);
    display.print("C");
    display.drawLine(55, 0, 55, 68, WHITE);
    display.setCursor(65, 15);
    display.setTextSize(5);
    //Timer
    if (seconds > 3)
    {
    String actual = String(seconds);
    if (actual.length()< 2)
    actual = "0" + actual;
    display.print(actual);
    }
    else if (lastTimer > 3)
    {
    String last = String(lastTimer);
    if (last.length()< 2)
    last = "0" + last;
    display.print(last);
    }
    else
    {
    display.print("00");
    }
    //Mode
    display.setTextSize(1);
    display.setCursor(120, 2);
    display.print(lastMaraData[0].substring(0, 1));
    display.display();
    }

    void loop()
    {
    getMaraData();
    int pumpState = lastMaraData[6].toInt();
    if (pumpState == 1)
    {
    if ( millis() - lastMillis >= 1000)
    {
    lastMillis = millis();
    ++seconds;
    if (seconds > 99)
    seconds = 0;
    }
    }
    else
    {
    if (seconds != 0)
    lastTimer = seconds;
    seconds = 0;
    }
    updateView();
    }

    Viele Grüße
    Sebolous
     
  6. #26 sebolous, 01.02.2023
    sebolous

    sebolous Mitglied

    Dabei seit:
    14.11.2021
    Beiträge:
    46
    Zustimmungen:
    11
    Ich habe gerade noch etwas interessantes festgestellt. Ich habe noch einen Arduino Nano v3 im Keller gehabt. Also das Board, das SaibotFlow, an dessen Skript ich mich halte. Hätte ich früher drauf kommen können... Jedenfalls zeigt mir meine Mara X im seriellen Monitor nicht den Status der Pumpe an. Dann kann der Timer natürlich auch nicht starten.
    Ich bekomme folgende Ausgabe:
    C123b,120,112,095,0000,0
    Im Vergleich dazu, das was SaibotFlow als Beispiel angibt, bzw. was auch hier weiter oben gepostet wurde:
    C1.06,116,124,093,0840,1,0\n

    Ich habe also eine spätere Software Version und die aktuelle Temperatur und die Zieltemperatur scheinen en Platz getauscht zu haben. Und ich habe eben nur sechs Werte, keine sieben. Der Pumpenstatus fehlt.
    Hat Lelit das dann einfach irgendwann rausgenommen oder liegt das an mir, mache ich was falsch?
    Irgendwelche Ideen? :)
     
  7. #27 martinhei, 02.02.2023
    martinhei

    martinhei Mitglied

    Dabei seit:
    15.04.2017
    Beiträge:
    41
    Zustimmungen:
    25
    Interessant, von wann ist denn deine MaraX? Ich habe Version C1.10 und meine ist von Ende 2022. Da ist der Pumpenstatus drin. C123b passt ja gar nicht zu den bisherigen Versionsnummern. Man kann natürlich nicht ausschließen, dass Lelit zwischendurch mal ein anderes Gerät eingebaut hat.

    Dann musst du wohl den Reed-Sensor verwenden, das klappt aber eigentlich auch ganz gut (ich hab beides dran).

    Ich arbeite mit einem ESP-32 und lade die Daten in eine InfluxDB hoch, wo ich mir ein Dashboard gebaut habe. So kann ich mir die Temperaturen von jedem Bezug noch mal anschauen ;-)
     
    RedNomis gefällt das.
  8. #28 RedNomis, 02.02.2023
    RedNomis

    RedNomis Mitglied

    Dabei seit:
    17.01.2023
    Beiträge:
    8
    Zustimmungen:
    19
    kpzimbo und sebolous gefällt das.
  9. #29 sebolous, 02.02.2023
    sebolous

    sebolous Mitglied

    Dabei seit:
    14.11.2021
    Beiträge:
    46
    Zustimmungen:
    11
    Produktionsdatum laut Karton ist September 2021. Passt irgendwie nicht so recht in die Reihe, das hast du recht.
    In einem YouTube Video von Februar 2020 zeigt Lelit insider den Output der Schnittstelle. Es ist noch eine alte Mara X mit rotem Logo. Die Version ist 1.18 (zählen die rückwärts?!) und einen Pumpenstatus gibt es hier auch nicht…

    Kannst du einen bestimmten Reed Sensor empfehlen? Ich hab gelesen, es ist wohl auch mit entscheidend für den Erfolg, auf welcher Höhe man den Sensor an der Pumpe anbringt.
     
  10. #30 sebolous, 02.02.2023
    sebolous

    sebolous Mitglied

    Dabei seit:
    14.11.2021
    Beiträge:
    46
    Zustimmungen:
    11
  11. #31 sebolous, 02.02.2023
    sebolous

    sebolous Mitglied

    Dabei seit:
    14.11.2021
    Beiträge:
    46
    Zustimmungen:
    11
    In einem anderen Thread hier hat der mysteriöse Biarritz seinen (?) Shottimer vorgestellt und sich dann nie mehr gemeldet.
    Vorstellung Projekt "espresso shot timer mit Temperaturanzeige"
    Er schreibt
    Hat jemand ne Ahnung wie (und ob) das funktioniert? Ist das wirklich weniger fehleranfällig?
     
  12. #32 RobertG, 08.02.2023
    Zuletzt bearbeitet: 08.02.2023
    RobertG

    RobertG Mitglied

    Dabei seit:
    16.08.2022
    Beiträge:
    413
    Zustimmungen:
    332
    Wenn ich das richtig verstanden habe, gibt es drei Wege um den Timer zu starten:
    • Reed-Sensor an der Pumpe
    • Abfangen der Info am Auslöseknopf des Hebels
    • Auslesen Pumpenstatus (geht wohl nicht überall)
    Wenn man mittels Reed-Sensor den Timer startet, startet der Timer jedes Mal auch kurz, wenn die Pumpe losläuft um den Boiler nachzutanken. Das ist natürlich nicht erwünscht, aber auch kein Beinbruch.

    Die eleganteste Variante ist nach meiner Meinung über das Auslesen vom Pumpenstatus gelöst. Kein Sensor an der Pumpe, kein Gefrickel am Auslöseknopf am Hebel, sondern nur die zwei Kabelchen, die an der Steuereinheit angeklemmt sind.
     
  13. #33 RedNomis, 09.02.2023
    RedNomis

    RedNomis Mitglied

    Dabei seit:
    17.01.2023
    Beiträge:
    8
    Zustimmungen:
    19
    IMG_20230209_151646.jpg

    Mein erster eigener 3D Entwurf ;-)
     
    Blauer22, kpzimbo, Benno1577 und einer weiteren Person gefällt das.
  14. #34 RedNomis, 09.02.2023
    RedNomis

    RedNomis Mitglied

    Dabei seit:
    17.01.2023
    Beiträge:
    8
    Zustimmungen:
    19
    IMG_20230209_151704.jpg
     
    Benno1577 und RobertG gefällt das.
  15. #35 RobertG, 09.02.2023
    RobertG

    RobertG Mitglied

    Dabei seit:
    16.08.2022
    Beiträge:
    413
    Zustimmungen:
    332
    Das Gehäuse gefällt mir richtig gut. :)

    Das schicke Orange als Eyecatcher, dazu die Schrift drunter und drüber und
    die Lüftungsschlitze in Bohnenform setzen der ganzen Sache noch mal die Krone auf.:cool:;)

    Ich überlege für meine MaraX-V2 das mit dem Display auch umzusetzen.
     
    RedNomis gefällt das.
  16. #36 birdhouse, 13.02.2023
    birdhouse

    birdhouse Mitglied

    Dabei seit:
    13.02.2023
    Beiträge:
    2
    Zustimmungen:
    5
    Hallo in die runde,
    das hier ist mein erster Post in diesem Forum. Ich habe bisher immer still mitgelesen :)

    Ich habe auch auf der Grundlage von dem initialen Code von "alexrus" eine eigene Version des Shot Timers für esp8266 und esp32 Boards erstellt.
    Hierbei ist es möglich den Chip über WLAN zu konfigurieren. Dann bietet dieser auch eine Weboberfläche an über die man weitere Einstellungen tätigen kann bzw auch die aktuellen Werte sieht. So kann bspw. ein MQTT Server angesprochen werden um die Werte an ein anderes System (Hausautomatisierung, Statistiken etc.) zu senden.

    Bei meiner Mara wird glücklicherweise auch der Pumpenstatus in der Nachricht der Maschine mit angegeben. So entfällt der Reed Sensor an der Pumpe. Dieser ist allerdings noch optional verfügbar. Das heißt wenn die Mara den Status selber übermittelt wieder dieser genommen. Findet die Übermittlung nicht statt und es ist der Reed Sensor angeschlossen, wird dieser für den Timer genommen. So sollte der Code für alle Mara Modelle funktionieren.

    Angezeigt wird das ganze auch auf einem kleinen OLED Display. Eventuell plane ich aber noch eine Erweiterung auf ein etwas größeres Display um auch Temperaturkurven zu zeichnen.

    Dies läuft nun bei mir schon ca. 1 Monat stabil. Sobald ich den Code noch ein wenig aufgeräumt habe, kann ich diesen auch gerne auf Github veröffentlichen.
     
    RedNomis, RobertG und sebolous gefällt das.
  17. #37 RobertG, 13.02.2023
    RobertG

    RobertG Mitglied

    Dabei seit:
    16.08.2022
    Beiträge:
    413
    Zustimmungen:
    332
    Herzlich Willkommen im Forum!
    Das hört sich super an.

    Auf jeden Fall... :)
     
  18. #38 sebolous, 13.02.2023
    sebolous

    sebolous Mitglied

    Dabei seit:
    14.11.2021
    Beiträge:
    46
    Zustimmungen:
    11
    Hallo! :)
    Hört sich gut an, bin gespannt was du präsentierst!

    Ich versuch jetzt mich mit dem Reed Sensor anzufreunden, nachdem meine MaraX den Pumpenstatus ärgerlicherweise nicht mitteilt... Hatte noch überlegt ob man das mit dem Firmware Update fixen könnte, aber da hält sich Lelit auch sehr bedeckt bzw. das ist wohl nicht so einfach machbar.
     
  19. #39 birdhouse, 14.02.2023
    birdhouse

    birdhouse Mitglied

    Dabei seit:
    13.02.2023
    Beiträge:
    2
    Zustimmungen:
    5
    Ich benötige nur noch ein bisschen, da es nun erst einmal in den Urlaub geht.


    Ja, da bin ich echt froh, dass meine Mara das angibt. Produziert wurde sie wohl im August 2022 und hat die Firmware Version C1.10.
    Ja, Update wäre wirklich spannend. Aber ob Lelit das vorsieht bezweifle ich irgendwie. Spannend was da noch so bei dir rauskommt.

    Was ich beim Reed-Sensor definitiv festgestellt habe ist, dass die Werte der Mara über die serielle Schnittstelle gerne hin und her springen und dort auch viel "Müll" ankommt, welcher wegzufiltern ist. Dies habe ich glaube gut in den Griff bekommen. Dabei hilft aber definitiv noch Ground zwischen der Mara und dem ESP Chip zu ziehen. Die meisten Anleitungen gehen hier nur auf die zwei Datenleitungen ein und vernachlässigen Ground, welches aber bei seriellen Verbindungen immer sehr hilfreich ist. Ground ist auf Pin 2 von der Außenwand aus gezählt. Mit dem Reed Sensor hat man ja ohnehin schon Ground gelegt und könnte es dort abzwacken.

    Anbei die Schaltung wie ich sie dann umgesetzt habe. Entschuldigt meine Sauklaue :)
     

    Anhänge:

    RobertG und sebolous gefällt das.
  20. #40 sebolous, 14.02.2023
    sebolous

    sebolous Mitglied

    Dabei seit:
    14.11.2021
    Beiträge:
    46
    Zustimmungen:
    11
    Ja, es bleibt spannend…! :)
    Danke dir, das ist bestimmt hilfreich. Es ist lesbar, passt schon! ;) Ich werde mich die Tage mal dran wagen.
    Dir erstmal einen schönen Urlaub!
     
Thema:

Lelit Mara X Shot Timer

Die Seite wird geladen...

Lelit Mara X Shot Timer - Ähnliche Themen

  1. [Verkauft] Lelit MaraX Shot Timer mit Temperatur Anzeige

    Lelit MaraX Shot Timer mit Temperatur Anzeige: Verkaufe einen Shot-Timer inkl. Temperatur Anzeige für die Lelit Mara X. Sie funktioniert auch bei anderen Siebträgermaschinen mit...
  2. Lelit Mara X Bezugshebel wackelkontakt

    Lelit Mara X Bezugshebel wackelkontakt: Hallo liebe Community. Meine Lelit Mara PL62X macht sein ca. 2 Monaten immer wieder Probleme. Und zwar wenn ich den Bezugshebel hoch ziehe löst...
  3. [Suche] Lelit Mara PL62X

    Lelit Mara PL62X: Hallo liebe Community, ich suche wie im Thema zu sehen eine Lelit Mara PL62X, Farbe egal. Am liebsten zum selbst abholen. Entweder Umgebung...
  4. Warnung an alle Lelit Mara X User mit irgend einem externen Display

    Warnung an alle Lelit Mara X User mit irgend einem externen Display: Ich hab meine Mara X erst seit zwei Wochen und hab mich natürlich etwas damit beschäftigt. So ein Timer und eine Anzeige der Temperatur sowie die...
  5. Lelit Mara PL62 Druck steigt

    Lelit Mara PL62 Druck steigt: Hallo, ich habe von einem Freund eine Lelit Mara PL62 (ohne X) BJ 2018 gebracht bekommen. Diese hat ein Problem. Schaltet man die Maschine ein ,...