Nextion - günstiges Touch-Display an FHEM (auch remote)

Begonnen von viegener, 24 März 2016, 00:06:06

Vorheriges Thema - Nächstes Thema

UweH

Hallo,

wie schon mal geschrieben, habe ich zur Ansteuerung des Nextion eine Platine für UP-Dosen geschnitzt, die neben der Stromversorgung auch den Levelshifter und den ESP enthält. Davon habe ich jetzt noch ein paar unbestückte...wer also Interesse hat, bitte melden.

Gruß
Uwe

viegener

@UweH: Sieht sehr interessant aus, leider passen die Displays wohl nicht in mein Schalterprogramm, vielleicht muss ich mir da noch was überlegen.

Wodurch hast Du eigentlich die 12V in der UP-Dose oder hast DU noch einen 220V-12V-Wandler

Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

UweH

Ich habe bei einem Umbau vor ein paar Jahren schon mal an jede relevante Dose eine Steuerleitung gelegt, über die ich jetzt 12V einspeisen kann. Es gibt aber auch Netzteile für UP-Dosen, wobei selbst in tiefen Dosen für Netzteil und Elektronik der Platz knapp werden dürfte.

viegener

Zitat von: UweH am 11 Dezember 2016, 12:52:40
Ich habe bei einem Umbau vor ein paar Jahren schon mal an jede relevante Dose eine Steuerleitung gelegt, über die ich jetzt 12V einspeisen kann. Es gibt aber auch Netzteile für UP-Dosen, wobei selbst in tiefen Dosen für Netzteil und Elektronik der Platz knapp werden dürfte.

Ja, ich verwende zum Teil Dosen mit eingebautem USB-Anschluss (also Schuko-230V UND USB separat). Hat zwar etwas gedauert, weil es da einige gibt, die nach einiger Zeit anfangen dauerhaft zu fiepen. Die brauchen relativ tiefe Dosen, sind aber gut, um irgendwo 5V für ein Nextion abzuzweigen ohne eine weitere Steckdose zu blockieren. Vielleicht kann man die Zweckentfremden, dann könnte ich mir den 12V-Teil sparen.
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

Noname

Hallo viegener,

vielen Dank für des tolle Modul, ich wollte vor einiger Zeit schon mal ein
ähnliches Modul für mich entwickeln. Ich verwende es mit einem RPi und
USBTTL Seriell Kabel.

Was mir aufgefallen ist, alle send Befehle gehen ins Log. Bei mir
wird die Uhrzeit jede Minute zum Display geschrieben und das geht immer ins log.

ich habe in deinem Modul die Zeile 351 von
Log3 $name, 1, "Nextion_SendCommand $name: send commands :".$msg.": ";
noch
Log3 $name, 3, "Nextion_SendCommand $name: send commands :".$msg.": ";
geändert.

Vielleicht könntest du in deinem Modul die Logeinträge nochmals
durchsehen.

Vielen Danke.

Verbose:
0 nur die wichtigsten Nachrichten (z.B. Server Start/Stop) werden ausgegeben
1 zusätzlich werden Fehlermeldungen ausgegeben
2 Meldungen über die wichtigsten Ereignisse oder Alarme
3 gesendete Befehle werden protokolliert
4 es wird protokolliert, was die einzelnen Geräte empfangen
5 umfangreiche Meldungen, vor allem auch zur Fehlereingrenzung (und damit hauptsächlich für die jeweiligen Modulentwickler bestimmt)

Gibt es noch Irgendwo eine genauere Modulbeschreibung oder Beispiel?

viegener

@noname: das habe ich vor einiger Zeit gefixt, es findet sich auch schon in github. Ich habe (auch wg. SVN-Umstellung) aber noch kein Update gemacht. Ein Update dazu kommt als Weihnachtsgeschenk (oder kurz danach) ;)

Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

hmtec99

#246
Hallo Leute,

vielleicht kann mir einer von euch weiterhelfen - ich blicks grad nicht.

Ich muß immer 2x auf einen Button drücken, damit der Befehl gesendet wird (bzw. von FHEM empfangen wird).

Ausgangssituation:

Display schaltet sich nach 15 Sekunden ab und wartet auf Tastendruck.

Tastendruck aufs Display - Display wacht auf - Kommando in FHEM:

received: H87
rectext:

>> soweit so gut

Erster Tastendruck auf Button 1:

received:H65(e) H00 H03 H01
rectext:

>> Wieso das und warum nicht das hinterlegte Kommando im Button?

Zweiter Tastendruck auf Button 1 - Kommando in FHEM:     

received: H24($) H61(a) H31(1) H3d(=) H73(s) H7a(z) H65(e) H6e(n) H65(e) H5f(_) H72(r) H75(u) H68(h) H65(e) H65(e) H00 H03 H01
rectext: $a1=szene_ruhee

>> Dies wäre das gewünschte Ergebnis, aber eigentlich vom ersten Tastendruck auf Button1

Grundsätzlich habe ich das Problem, daß ich jeden Button 2x drücken muß, damit der gewünschte Befehl gesendet wird. Ich kann auch 2
verschiedene Buttons drücken; es wird beim 2ten Tastendruck der Befehl des vorhergehenden Buttons gesendet!

Bin ich der einzige, der dieses Problem hat?

Buttondefinition Button1:

t0.txt="Ruhe"
b1.bco=31
b2.bco=48631
b3.bco=48631
print "$a1=szene_ruhe"
t3.txt="Radio Aus"
t3.bco=63488
t4.txt="Rolladen Auf"
t4.bco=1024
t5.txt="Heizung Aus"
t5.bco=31

In der Displaydefinition habe ich keine besonderen Attribute gesetzt.


Gruß, Oli

UweH

Welchen Ausdruck hast Du genau in "Touch Release Event" eingetragen?

viegener

Zitat von: hmtec99 am 26 Dezember 2016, 11:13:49
Grundsätzlich habe ich das Problem, daß ich jeden Button 2x drücken muß, damit der gewünschte Befehl gesendet wird. Ich kann auch 2
verschiedene Buttons drücken; es wird beim 2ten Tastendruck der Befehl des vorhergehenden Buttons gesendet!



Ich denke, das ist der entscheidende Hinweis. Die Daten werden nicht vollständig an FHEM übermittelt und damit findet die Auswertung erst beim nächsten Ereignis statt. Füge hinter dem print noch einen get-Befehl hinzu - z.B.
get 1
Dann erhältst Du noch eine 1 im Puffer, aber dann werden die entscheidenden Zeichen zum Abschluss des Befehls gesendet. Es gibt dazu sicher noch andere Möglichkeiten (bei switches verwende ich eben so etwas wie get bt0.val, damit ich den Schaltzustand sende)

Wenn das nicht hilft, kann es sein, dass in der Einstellung der seriellen Verbindung über WLAN etwas nicht passt
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

hmtec99

#249
@viegener: Danke. Hat so funktioniert!

@UweH: Keine TouchRelease Events.


Ich habe noch eine Erweiterung für das Modul:

Könnte man noch ein Attribut für den Disconnect-Befehl (analog zum InitCommand bei Open bzw. Reopen) implementieren?

Ich würde gerne beim Disconnect einen Befehl an das Display senden, damit eine Textbox "Connection" die Hintergrundfarbe von Grün auf Rot ändert.

Danke & Gruß, Oli

viegener

Zitat von: hmtec99 am 29 Dezember 2016, 22:52:40
@viegener: Danke. Hat so funktioniert!

@UweH: Keine TouchRelease Events.


Ich habe noch eine Erweiterung für das Modul:

Könnte man noch ein Attribut für den Disconnect-Befehl (analog zum InitCommand bei Open bzw. Reopen) implementieren?

Ich würde gerne beim Disconnect einen Befehl an das Display senden, damit eine Textbox "Connection" die Hintergrundfarbe von Grün auf Rot ändert.

Danke & Gruß, Oli

Für welchen Zweck verwendest Du denn den disconnect Befehl? Ist denn zu diesem Zeitpunkt die Verbindung zum Display wirklich noch da, oder ist nicht damit zu rechnen, dass die Verbindung bereits auf Seiten des Moduls zu ist?

Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

marko67

Hallo guten Abend Johannes,

ich habe eine Frage zu Deinem Beitrag über das Nextion Display. Leider habe ich es immer noch nicht ganz verstanden wie es angeschlossen wird. Ich versuche mal zu Beschreiben was bei mir hängen geblieben ist:

Von einem 5v USB Kabel gehe ich mit 5v und GND an das Display (Pfostenstecker). Rx über den BSN10 an TXD vom ESP. TX über den Widerstand an RXD vom ESP. Von der Rückseite des Displays greife ich vom Lötpad die 3,3V ab und versorge damit den BSN10 und den ESP ?? Ich bin kein Elektriker und hoffe, dass es einigermaßen richtig war??

Würde mich sehr freuen wenn Du mir etwas helfen könntest.

Welchen ESP verwendest Du? Spielt es eine Rolle bzw könnte man nicht auch einen Nodmuc oder WEMOS verwenden um sich den/die Lv-shifter zu sparen?
Hierzu gibt es ein gute Video wo der WEMOS direkt ohne Zubehör an das Nextion angeschlossen wird und der hätte einen USB zum flashen...

https://www.youtube.com/watch?v=V99LvyRQqto

Vorab schon mal Danke und einen guten Start in 2017

Marko

CarstenF

Ich betreibe das Display an einem nodemcu ohne irgendwelche Levelshifter o.ä. Es muß jedoch auf jeden Fall mit 5 V betrieben werden, Gruß Carsten


Gesendet von iPad mit Tapatalk
Raspberry Pi4
CUL 868, CUL 433, LaCrosse Gateway, Zigbeetomqtt2, HUE, Homematic
Max-Cube umgeflasht
MAX!, FhemtoFhem, Homebridge, FhemConnector, IR_Gateway und sonst auch noch allerlei Spielzeug....

UweH

Zitat von: marko67 am 31 Dezember 2016, 19:53:45
Von der Rückseite des Displays greife ich vom Lötpad die 3,3V ab und versorge damit den BSN10 und den ESP
Ich würde davon abraten, die 3,3V des Displays für irgendwas anderes zu missbrauchen. Der 3,3-V-Regler auf der Display-Platine verträgt nur 100mA. Davon zwackt die Elektronik des Displays schon was ab und ein ESP8266 kann schon mal alleine mehr als 100mA ziehen. Ich habe schon mal einen 3,3-V-Regler auf dem Display zerstört, hab so meine Erfahrung. Der Regler lässt sich zwar tauschen, aber lustig ist das nicht.

Für den ESP8266 sollte eine externe 3,3-V-Quelle vorhanden sein.

Gruß
Uwe

viegener

Zitat von: marko67 am 31 Dezember 2016, 19:53:45
Hallo guten Abend Johannes,

ich habe eine Frage zu Deinem Beitrag über das Nextion Display. Leider habe ich es immer noch nicht ganz verstanden wie es angeschlossen wird. Ich versuche mal zu Beschreiben was bei mir hängen geblieben ist:

Von einem 5v USB Kabel gehe ich mit 5v und GND an das Display (Pfostenstecker). Rx über den BSN10 an TXD vom ESP. TX über den Widerstand an RXD vom ESP. Von der Rückseite des Displays greife ich vom Lötpad die 3,3V ab und versorge damit den BSN10 und den ESP ?? Ich bin kein Elektriker und hoffe, dass es einigermaßen richtig war??

Würde mich sehr freuen wenn Du mir etwas helfen könntest.

Welchen ESP verwendest Du? Spielt es eine Rolle bzw könnte man nicht auch einen Nodmuc oder WEMOS verwenden um sich den/die Lv-shifter zu sparen?
Hierzu gibt es ein gute Video wo der WEMOS direkt ohne Zubehör an das Nextion angeschlossen wird und der hätte einen USB zum flashen...

https://www.youtube.com/watch?v=V99LvyRQqto

Vorab schon mal Danke und einen guten Start in 2017

Marko

Ja, so wie Du es beschreibst (und wie es im Schlatplan und Bild) am Anfang des Threads beschrieben ist betreibe ich momentan 2 Nextion-Displays. Beide sind mit ESP-01_modulen verbunden. Es ist vermutlich noch einfacher, wenn man einen fertigen (bidirektionalen) Levelshifter für RX und TX verwendet, dann braucht man weniger Bauteile. Bei mir ging es ohne Levelshifter nicht (der ESP startete nicht trotz separater 3V-Versorgung).

Ich habe bisher nie Schwierigkeiten mit dem 3,3V Ausgang des Nextions gehabt, allerdings kann es natürlich sein, dass andere ESP-Module auch deutlich mehr Strom verbrauchen und diesen überlasten. Für meine Zwecke reicht das kleinste ESP-01 und jeweniger Bauteile ich benötige desto besser.

Da ich inzwischen hier 4 verschiedene Displays und zum Teil unterschiedliche Revisionen ausprobiert habe würde ich sagen, dass die Bauteilstreuung hier aufgrund der niedrigen Kosten auch relativ hoch ist. Manche Konstellationen funktionieren, während manchmal eine Kombi aus ESP und Nextion nur wackelig läuft.
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können