universelles MQTT-Display

Begonnen von joschi2009, 07 Januar 2019, 17:45:26

Vorheriges Thema - Nächstes Thema

joschi2009

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

Display

Software im Anhang (noch im Betastatus).





joschi2009

#1
reserved

joschi2009


juergs

#3
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
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

joschi2009

Hallo Jürgen,

hast eine PM

Viele Grüße

joschi2009

pc1246

Moin Joschi
Magst du uns verraten, wo Du das Display her hast?
Gruss Christoph
HP T610
Onkyo_AVR;3 Enigma2; SB_Server ; SB_Player; HM-USB mit 15 HM-CC-RT-DN, 3 HM_WDS10_TH_O, 6 HM-Sec-SCo, 4 HM-Sec-MDIR-2, 1 HM-Sen-MDIR-O-2, 8 Ferion 5000 OW ; PhilipsTV; 4 harmony hub; Jeelink mit 9 PCA301; Somfy; S7-300; 3 LGW; HUE; HM-IP auf Charly

schka17

waäre auch an einer Bezugsquelle des Displays und dem Code interessiert.

Gruß

Karl
M: Thinclient x64 Debian | CUL FS20, HMS100WD, HMS100TF, HMS100T, HMS100CO, S300, S555TH | OWServer DS1420, DS18B20, DS2408 | RFXCOM UVN128, THWR800, THGR228N,RTGR328, PCR800 |Jeelink PCA301 EC3000|CUNO+IR|HMLAN|HMUSB|CUL433 Somfy|mySensors|espEasy
S1:Raspberry mit BPM810, Jeelink EC3000

schwatter

Oben auf Display drücken. Dann öffnet sich ein Link zu Ali :D

pc1246

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
HP T610
Onkyo_AVR;3 Enigma2; SB_Server ; SB_Player; HM-USB mit 15 HM-CC-RT-DN, 3 HM_WDS10_TH_O, 6 HM-Sec-SCo, 4 HM-Sec-MDIR-2, 1 HM-Sen-MDIR-O-2, 8 Ferion 5000 OW ; PhilipsTV; 4 harmony hub; Jeelink mit 9 PCA301; Somfy; S7-300; 3 LGW; HUE; HM-IP auf Charly