ESPhome OLED Display

Hi,

ich stehe auf dem Schlauch :frowning:

Ich versuche auf meinem OLED Display den Text aus einem Template Text anzeigen zu lassen, aber iwie funktioniert das nicht. Kann mir jemand helfen?

font:
  
  - file: 'arial.ttf'
    id: fUeberschrift
    size: 18

  - file: 'arial.ttf'
    id: fNormal
    size: 14
  
  - file: 'arialbd.ttf'
    id: fNormalFett 
    size: 14
    

    
text:
  - platform: template
    name: "Display text"
    id: dispText
    optimistic: true
    min_length: 0
    max_length: 100
    mode: text

switch:
  - platform: template
    optimistic: true
    name: "Template Switch"
    turn_on_action:
      - display.page.show: page2 
    turn_off_action:
      - display.page.show: page1 

i2c:
  sda: GPIO0
  scl: GPIO2

display:
  - platform: ssd1306_i2c
    model: "SSD1306 128x64"
    #reset_pin: GPIO1
    address: 0x3C
    pages:
      - id: page1
        lambda: |-
          it.printf(64, 0, id(fUeberschrift), TextAlign::TOP_CENTER, "Hallo Celine");
          it.print(0, 22, id(fNormalFett), "Modus waehlen:");
          
      - id: page2
        lambda: |-
          it.printf(64, 0, id(fUeberschrift), TextAlign::TOP_CENTER, "Heizen");
          it.printf(0, 22, id(fNormalFett), "", id(dispText).state.c_str());

      - id: page3
        lambda: |-
          it.printf(64, 0, id(fUeberschrift), TextAlign::TOP_CENTER, "Heizen");
          it.print(0, 22, id(fNormalFett), id(dispText).state.c_str());

Danke im Voraus

Gruß Silas

Hallo Silas
Was passiert denn?
Erscheint auf dem Display gar nichts?
Hast du im LOG die Adresse kontrolliert? Also findest ESPHome das oled?
Lg

Hi,

also der “statische” Text wird ganz normal angezeigt. Aber egal was ich ins Textfeld schreibe wird nicht angezeigt…

Habe es mit folgender Formatierung geschafft:

it.printf(0, 22, "%s", id(dispText).state.c_str());

Versuch doch mal einen einfachen Text an der Stelle auszogen statt [quote=“stresch89, post:1, topic:32562”]
id(dispText).state.c_str()
[/quote]

Bin noch nicht ganz fit aber muss da nicht erst noch ein Wert rein mit text.set value=“Mein Text” ?
lg

1 „Gefällt mir“

Danke. Ja das ist aber auch ein Teil der Lösung.

Danke nochmal