Tasmota und Oled Display - Formatierung des Textes

  • Hallo zusammen,


    ich habe einen ESP Mini Pro mit einem kleinen Oled Display und Tasmota 8.4 am laufen.

    Leider bekomme ich die Formatierung nicht so hin wie ich mir das vorstelle.

    Folgendes schicke ich per Mqtt zum Esp:



    [z][f1l1c1lt] [f0l2c1]Temp: 9'[f0l3c1]Feuc: 86

    und

    [f1l5c1]Innen: 22.3' / 51




    Das ergibt folgendes Bild, siehe Anhang.

    Was mich stört ist, ich hätte die Zeit gern rechtsbündig am Display und in der letzten Zeile den gleichen Abstand wie zwischen Zeile 1 und Zeile 2.

    Und wieso kann ich in der kleineren Schrift 6 Zeilen anzeigen lassen, wenn ich in Tasmota einstelle, dass es 4 Zeilen sein sollen?


    Wenn ich Display in der Konsole eingebe kommt folgendes:


    {"Display":{"Model":2,"Width":128,"Height":64,"Mode":0,"Dimmer":15,"Size":2,"Font":1,"Rotate":0,"Refresh":2,"Cols":[16,8],"Rows":4}}


    Vielleicht weiß ja einer einen Rat :)


    Gruß Timo

  • Hallo Timbo69


    Am besten nimmst du statt l und c (line, column) lieber x und y damit kannst du pixelgenau positionieren.

    Wenn du unterschiedliche Fonts verwendest kann l und c nicht immer passen.

    zur Formatierung nimmst du am besten den p Befehl vor jedem Text


    z.B. p5 formatiert linksbündig in einem Feld mit 5 Zeichen, p-5 rechtsbündig

    dazu musst du aber die Zahl extra ausdrucken, weil der Label ja linksbündig sein muss.

    z.B. [x30y20p-5]9.6 '


    Am besten löscht du den Bildschirm nur einmal und schreibst die Label auch nur einmal.


    Die Dinge die sich verändern dann bei jedem Update. Das "flimmert" dann auch nicht mehr


    natürlich kannst du die Formatierung auch auf dem Raspi machen und dein MQTT schon formatiert schicken.


    Gruß Gerhard

  • Habs gerade verifiziert der Escape für Sonderzeichen funktioniert noch. (aus scripts und Tasmota 9.01)

    Sollte mit jedem Font gehen.

    Nehme mal an dass das Escape (Tilde) über MQTT "verloren" geht ?

    Sieht du wirklich ein Tilde Zeichen auf dem Display ???


    Allerdings gibt es das Grad Celsius Zeichen nur in Font 0 -> ~F8

  • Hi gemu2015,


    gibt es eine max. Anzahl von Zeichen die das Display auf einmal verarbeiten kann?

    Ich schicke folgendes mit einer zusammengestellten Variable an den ESP:


    [z][f1x50y0p-5t][f0x0y17]Temp: 10'[f0x0y34]Feuc: 86[f1x0y55]Innen: 22.6' / 51


    und das auf dem Bild kommt auf dem Display heraus.

    Wenn ich das direkt in der Tasmota Konsole eingebe, kommt das gleiche raus.

    Im Log der Konsole steht folgendes:

    {"DisplayText":"[z][f1x50y0p-5t][f0x0y17]Temp: 10'[f0x0y34]Feuc: 86[f1x0y55]Innen: 22.6' / 52"}


    Hast Du eine Idee, was da schief läuft? Die Formatierung klappt aber schon mal - Danke :)


    Gruß Timo

  • Hi gemu2015,


    ich kapiere es nicht, wenn ich mein Display mit der Positionierung x & y füttere, kommen die Strings nicht korrekt auf das Display.

    Wenn ich es aber mit c & l ansteuere, dann passt es.

    Da ich das Display jetzt erst einmal "produktiv" haben möchte, lebe ich jetzt mit den nicht so schönen c&l commands.


    Gruß Timo & danke gemu2015 für die Hilfe :)