Hallo zusammen,
hier möchte ich mein MQTT-Display kurz vorstellen:
Es besteht aus einem Wemos D1 mini und einem 1.8" TFT Modul. Auf dieses Display lassen sich per MQTT-Protokoll Daten übertragen und Oberflächen anlegen. Daher ist es ideal um Daten aus fhem zu visualisieren.
Bisher sind folgende Befehle möglich:
Rechtecke zeichnen:
topic:
<displayname>/rectangle
message:
<posx>,<posy>,<Länge>,<Breite>,<Farbe>
display1/rectangle 0,0,10,10,green
würde auf dem Display1 ein Rechteck beginnend an Position 0,0 mit der Pixellänge und Pixelbreite von jeweils 10 Pixel mit der Farbe Grün zeichnen.
Linien zeichnen:
topic:
<displayname>/line
message:
<posx0>,<posy0>,<posx1>,<posy1>,<Farbe>
display1/line 0,0,10,10,blue
würde auf dem Display1 eine Linie beginnend an Position 0,0 zur Position 10,10 mit der Farbe Blau zeichnen.
Text schreiben:
topic:
<displayname>/text
message:
<Textnummer>,<posx0>,<posy0>,<Größe>,<Text>,<Textfarbe>,<Hintergrundfarbe>
display1/text 1,0,0,1,DeinText,yellow,black
würde auf dem Display1 einen Text beginnend an Position 0,0 mit der Größe 1x8 Pixel Höhe mit der Farbe Gelb zeichnen.
Die Textnummer und die Hintergrundfarbe sind nötig um später den Text überschreiben zu können.
Display dimmen:
topic:
<displayname>/brightness
message:
<Wert (0-100)>
display1/bightness 10
dimmt das Display auf 10%
Display Ausrichtung ändern:
topic:
<displayname>/rotate
message:
<Wert 0-3>
display1/rotate 1
setzt das Display ins Querformat, 2 auf Hochformat über Kopf, 3 auf Querformat über Kopf. Standard ist 0 = Hochformat.
Farben:
white, green grey, yellow, blue, red, black, cyan, magenta oder als Dezimalzahl im RGB565-Format.
Daten aus fhem auf das Display schreiben (ich setze eine angelegte MQTT_GENERIC_BRIDGE voraus):
in dem Device mit den zu publishenden Daten ein userReadings anlegen:
attr <device> userReadings <readingsname> {"<Textnummer>,<posx>,<posy>,<Textgröße>,".ReadingsVal('<device>','<reading>','').",<Textfarbe>,<Hintergrundfarbe>"}
zum Beispiel:
attr MYSENSOR_100 userReadings publish {"1,20,20,2,".ReadingsVal('MYSENSOR_100','temperature','').",blue,black"}
danach Attribut zum publishen anlegen :
attr <device> mqttPublish <readingsname>:topic=<topic>
zum Beispiel:
attr MYSENSOR_100 mqttPublish publish:topic=display1/text
Ändert sich nun das Reading "temperature" des Device "MYSENSOR_100" wird der Wert auf das Display geschrieben (oder aktualisiert).
Die Readings eines HM-IP_Ventils gepublisht an <displayname>/hmventil ergeben die im Bild zu sehende Anzeige.
Beispiel:
attr mqttPublish HmIP_eTRV_B1_12345678901 *:topic={"display1/hmventil/$name"}
Hardware:
Verbindungen:
wemos D1 ---------- TFT Display
D0--------------------1-RST
D1--------------------2-CS
D2--------------------3-D/C
D5--------------------5-CLK
D6--------------------7-BL
D7--------------------4-DIN
3.3V------------------6-VCC
GND------------------8-GND
Wemos D1 (https://de.aliexpress.com/item/D1-mini-Mini-NodeMcu-4M-bytes-Lua-WIFI-Internet-of-Things-development-board-based-ESP8266-by/32651747570.html)
Display (https://de.aliexpress.com/item/LCD-Module-Display-PCB-Adapter-1-8-inch-Serial-SPI-TFT-Power-IC-SD-Socket-128X160/32587604028.html)
Software im Anhang (noch im Betastatus).
reserved
reserved2
Hallo joschi2009,
da bin ich mit dem gleichen Display auf dem Wemos + MapleMini unterwegs:
https://forum.fhem.de/index.php/topic,78619.msg881365.html#msg881365 (https://forum.fhem.de/index.php/topic,78619.msg881365.html#msg881365)
Gut an Deinem Display ist, dass die LED-Hintergrundbeleuchtung herausgeführt ist.
Da ich auch eine Anzeige implementiere, würde mich auch Dein Code interessieren ... :D
Grüße,
Jürgen
Hallo Jürgen,
hast eine PM
Viele Grüße
joschi2009
Moin Joschi
Magst du uns verraten, wo Du das Display her hast?
Gruss Christoph
waäre auch an einer Bezugsquelle des Displays und dem Code interessiert.
Gruß
Karl
Oben auf Display drücken. Dann öffnet sich ein Link zu Ali :D
Zitat von: schwatter am 08 Januar 2019, 09:03:23
Oben auf Display drücken. Dann öffnet sich ein Link zu Ali :D
Moin
Wie blind muss man sein! Danke
Gruss Christoph