FHEM Forum

Verschiedenes => Bastelecke => ESP Familie => Thema gestartet von: Christian72D am 01 Mai 2020, 17:39:30

Titel: Ansteuerung OLED Display funktioniert nicht
Beitrag von: Christian72D am 01 Mai 2020, 17:39:30
Ich habe ESPEASY auf meinem WEMOS D1 Mini, das Auslesen der Werte in fhem mit dem ESPEasy Modul klappt auch super.

Jetzt würde ich gerne eigenen Text aus fhem auf dem Display anzeigen lassen.

Wenn ich das OLED Display als OLED 1306 definiere kann ich auch mit "set NAME oled 1 1 Test" etwas anzeigen lassen.
Aber dann habe ich auf dem Mini Display fixe 8 Zeilen.

Also habe ich das Display als 1306 framed definiert, dann kann ich die Anzahl Zeilen festlegen.

Aber es gibt dafür keinen SET Befehl, auf den von oben reagiert es nicht.
Aber es gibt ja ein eigenes "oledframecmd" zum Ein-/Aus Schalten des Displays, also müsste es doch auch ein "oledframe" geben für den Text, oder?
Titel: Antw:Ansteuerung OLED Display funktioniert nicht
Beitrag von: lambi am 03 Mai 2020, 09:30:24
Als Workaround geht folgendes:
- Dummydevice in ESPEasy anlegen und in FHEM mit taskvalueset die gewünschten Werte an das Dummydevice senden
- Im Device Display Framed unter Line die Variable des Dummy Device eintragen

Titel: Antw:Ansteuerung OLED Display funktioniert nicht
Beitrag von: Klaus0815 am 03 Mai 2020, 23:24:52
Hallo Christian,
kann Dir leider keinen Ratschlag zu deinem Problem geben
Aber vergiss die OLED-Displays - habe hier welche seit paar Jahren am laufen, alle stark eingebrannt und nur mit Lupe ablesbar
ESPEasy kann jetzt die ILI9341 Displays - wesentlich zukunftsträchtiger


Titel: [GELÖST] Ansteuerung OLED Display funktioniert nicht
Beitrag von: alkazaa am 14 März 2021, 21:44:28
Moin!

Man kann einen beliebigen Wert eines device auf einem "OLED SSD1306/SH1106 Framed" anzeigen mit{fhem(sprintf("set ESP_Easy_1 oledframedcmd 1 T=%.1f°C",ReadingsVal("Tecalor_Anlage","T_Aussen",99.9)))}

Will man Leerzeichen haben, muss man sie als %20 im String unterbringen. Außerdem muss der anzuzeigende Text in Anführungszeichen (%22) gefasst werden: {fhem(sprintf("set ESP_Easy_1 oledframedcmd 1 %%22T%%20=%%20%.1f%%20°C%%22",ReadingsVal("Tecalor_Anlage","T_Aussen",99.9)))}

Einfacher noch wird's als Teil eines notify, das in meinem Anwendungsfall so aussieht:
defmod ESP_Display notify Tecalor_Anlage:T_Aussen:.* set ESP_Easy_1 oledframedcmd 1 "Aussen:%20$EVTPART1%20°C"

-Franz