esp8266 D1 mini Display tasmota

Begonnen von rodnic, 12 Februar 2020, 17:01:10

Vorheriges Thema - Nächstes Thema

rodnic

Hallo zusammen,

ich möchte gern im FHEM per MQTT2 ein Display (Gosear 0,96 Zoll I2C IIC SPI serielle 128 x 64 OLED LCD LED Display-Modul) welches an einem ESP8266 angeschlossen ist beschreiben.
Dazu habe ich Tasmota auf dem ESP geflasht und das Display angeschlossen.
Brauche ich eine spezielle tasmota Version?
Im FHEM taucht das MQTT2 device auch als Gerät auf.
Nun könnte ich noch ein Template im MQTT2 Device vergeben, aber welches und mit welchem Atribut bzw. Reading kann ich nun auf das Display schreiben?


Beta-User

Ein wirklich passendes attrTemplate für ein display gibt es (noch...) nicht, aber die Vorgehensweise ist eigentlich nicht besonders schwer:
Du nutzt die in https://github.com/arendst/Tasmota/wiki/Commands#displays aufgeführten Kommandos, berücksichtigst, was unter https://github.com/arendst/Tasmota/wiki/Displays#displaytext-use steht und erstellst dafür setList-Einträge...

Als "Insiration" für die Freitextfelder würde ich mal einen Blick in die attrTemplate zu tasmota_ir, tasmota_rf und zigbee2mqtt_bridge anregen...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

rodnic

Hm, danke für den Hinweis.
Hättest du ein Beispiel? Da ich leider überhaupt nicht weiß wie ich anfangen soll.
Das Display ist verdrahtet, bleibt aber dunkel.

Beta-User

Sorry, aber das kann vermutlich von hier aus niemand beantworten:
In den verlinkten Infos steht z.B., dass man den Displaytyp angeben muß, damit überhaupt was passiert. Kann sein, dass der Anschaltbefehl für alle Arten Displays noch gleich ist, aber das war es auch schon...

Kurz: Liefere vernünftigen Input, dann kann vielleicht jemand helfen, mit der Art Fragestellung vergraulst du m.E. nur potentielle Helfer...
Server: HP-elitedesk@Debian 12, aktuelles FHEM@ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn: u.a MySensors, Weekday-&RandomTimer, Twilight,  div. attrTemplate-files

rodnic

Displaytyp ist: Gosear 0,96 Zoll I2C IIC SPI serielle 128 x 64 OLED LCD LED Display-Modul

steffen83

Ich mache das über ESP easy das funktioniert dort echt leicht.

Gesendet von meinem MI 8 mit Tapatalk

Raspberry Pi 3 (Noobs, aktuelle Fhem und Pilight) | FHEMduino | HM-OCCU-SDK | HM-Sec-SCo | HM-Sec-SD-2 | HM-CC-RT-DN | HM-LC-Bl1PBU-FM

rodnic

verrätst du mir wie das dort geht, bitte

steffen83

Flash dir Mal die aktuelle ESP easy Version auf dein d1 Mini

Gesendet von meinem MI 8 mit Tapatalk

Raspberry Pi 3 (Noobs, aktuelle Fhem und Pilight) | FHEMduino | HM-OCCU-SDK | HM-Sec-SCo | HM-Sec-SD-2 | HM-CC-RT-DN | HM-LC-Bl1PBU-FM

steffen83

Ich Versuche dir das morgen Mal zusammen zu schreiben

Gesendet von meinem MI 8 mit Tapatalk

Raspberry Pi 3 (Noobs, aktuelle Fhem und Pilight) | FHEMduino | HM-OCCU-SDK | HM-Sec-SCo | HM-Sec-SD-2 | HM-CC-RT-DN | HM-LC-Bl1PBU-FM

rodnic

bin schon fündig geworden danke für den Tip mit ESP easy

steffen83

Klappt es schon?

Gesendet von meinem MI 8 mit Tapatalk

Raspberry Pi 3 (Noobs, aktuelle Fhem und Pilight) | FHEMduino | HM-OCCU-SDK | HM-Sec-SCo | HM-Sec-SD-2 | HM-CC-RT-DN | HM-LC-Bl1PBU-FM

Tabadorer

#11
Ich habe das Heltect WifiKit 8 (128x32 pixel)
https://heltec.org/project/wifi-kit-8/

Auf dem lasse ich mir meine Daten der Solaranlage anzeigen


Auf dem Heltec ist Tasmota 8.2-display installiert. Die normale standard Version kennt die notwendigen Displaybefehle nicht. In Fhem sieht das Gerät so aus.

defmod oled1 TASMOTA_DEVICE oleddisplay %prefix%/%topic%/
attr oled1 IODev MQTTBroker
attr oled1 comment https://tasmota.github.io/docs/Displays/#display-commands
attr oled1 devStateIcon on:light_ceiling@#ffa500:off off:light_ceiling_off:on offline:10px-kreis-rot:statusRequest .*:ios-NACK:check
attr oled1 icon hm-dis-wm55
attr oled1 publishSet on off toggle cmnd/oleddisplay/POWER
attr oled1 publishSet_mode 0 1 2 3 4 5 cmnd/oleddisplay/displaymode
attr oled1 publishSet_rotate 0 1 2 3 cmnd/oleddisplay/displayrotate
attr oled1 publishSet_text cmnd/oleddisplay/displaytext
attr oled1 room MQTT
attr oled1 stateFormat {lc ReadingsVal($name,"oleddisplay","") eq "offline" ? "offline" : lc ReadingsVal($name,"oleddisplay","")}



Um dann die Ausgabe so wie auf dem Bild hinzubekommen, nutze ich ein AT Timer, der dann dieses Kommando über MQTT an das Display sendet:

set oled1 text [zc1l1f0]Einspeisung:[c15][Sonnenstrom:L1_FeedIn][c1l2]Verbrauch:[c15][Sonnenstrom:L1_TotalConsumption][c1l3]PV:[c15][rr:state][c1l4]Kaufstrom:[c15][Sonnenstrom:L1_GridConsumption]


Ferner habe ich auf dem Gerät auf der Konsole einen Pulsetimer aktiviert.
pulsetime 430

OLED neigen dazu einzubrennen, wenn statischer Inhalt zulange angezeigt wird. Daher geht das Display nach einer gewissen Zeit immer von alleine aus. Das spart darüber hinaus noch strom. Das Display verbraucht keine 20mA und ist daher gut für den Betrieb an einem Akku geeignet. Auf der Platine ist ein Taster verbaut, der mit GPIO0 verbunden ist. Wenn man den in Tasmota korrekt einstellt, kann man das Display damit ein- und ausschalten.


Vielleicht hilft das jemandem.

PS: Liniendiagramme sind auch möglich, aber das habe ich noch nicht probiert.
fhem in Docker auf Lenovo m625q 16gb RAM/2TB SSD | div. SonOFF mit Tasmota | Shelly | busware CUL869 | Homematic | Echo Dot | Fritz DECT Thermostate | ConBee II ZigBee Gateway | Mosquitto MQTT

klaus_nase

Hallo Tabadorer,

vielen Dank für Deinen Post, welcher mir das letzte Puzzle-Stück für meinen Aufbau geliefert hat.

Ich habe eine WEMOS D1 mit OLED-Display aufgebaut und diesen mit Tasmota-Display-bestückt.
Deine Befehlszeile zum Absetzen des Display-Inhalts war für mich absolut hilfreich, da ich mit der
Tasmota-Anleitung nicht klargekommen bin.

Mittels notify registriere ich nun die Zustandsänderungen meiner Steckdosen und lasse mit eine
Übersicht der Zustände auf dem OLED darstellen. Das funktioniert einwandfrei.

define ServerOLED MQTT2_DEVICE DVES_A36065
setuuid ServerOLED 60694a3d-f33f-9a71-175f-85905780374d2dd8
attr ServerOLED IODev MQTT2
attr ServerOLED devStateIcon on:ios-on-green off:ios-off
attr ServerOLED readingList /Wemos_D1/Server/Server_Status/tele/LWT:.* LWT\
/Wemos_D1/Server/Server_Status/tele/STATE:.* { json2nameValue($EVENT,'',$JSONMAP) }\
/Wemos_D1/Server/Server_Status/stat/POWER:.* state
attr ServerOLED room Display
attr ServerOLED setList on:noArg /Wemos_D1/Server/Server_Status/cmnd/POWER1 1\
off:noArg /Wemos_D1/Server/Server_Status/cmnd/POWER1 0\
clear:noArg /Wemos_D1/Server/Server_Status/cmnd/displaytext [z]\
displaytext  /Wemos_D1/Server/Server_Status/cmnd/displaytext\


Mittels notify schicke ich dann das entsprechende "displaytext" and das OLED.
Zusammen mit dem displaytext schicke ich auch ein on-for-timer, damit das Display immer
nur bei Zustandsänderungen aktiviert wird.

Gruß
KN