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

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

Vorheriges Thema - Nächstes Thema

Markus80

Hi,
mich würde interessieren,  wofür und wie Ihr das Display nutzt.
Einbauvorschläge und Verwendung.

Liebe Grüße

Gesendet von meinem C6903 mit Tapatalk



viegener

Zitat von: Markus80 am 02 Januar 2017, 05:54:02
Hi,
mich würde interessieren,  wofür und wie Ihr das Display nutzt.
Einbauvorschläge und Verwendung.

Liebe Grüße

Gesendet von meinem C6903 mit Tapatalk

Leider passt selbst das kleinste Display nicht in meine Schalterserie im Haus, also habe ich immer noch einen Einbau in eine graue Verteilerdose vorgenommen. Die Stromversorgung übernimmt inzwschen eine Steckdose mit eingebautem USB-Ausgang (damit bleibt die Steckdose voll nutzbar). Für gute Gehäuseideen bin ich auch noch offen, die 3D-Druck-Variante ist für mich mangels eigenem 3D-Drucker doch relativ teuer.

Die Displays haben jeweils Funktionen, die am Installationsort gebraucht werden:
Am Eingang - Aussentemperatur, Fenster offen listen lassen, Haustür automatisch verriegeln nachdem man das Haus verlassen hat und neu Einkaufsliste anzeigen
Im Keller - Licht und Infrastruktur schalten / Status anzeigen

Das auf dem Display speziell die FUnktionen sind, die an der Stelle gebruacht werden hat einen deutlich Vorteil gegenüber der Tablet- und Phone-Bedienung. Mit letzteren ist zwar alles möglich, aber man muss sich erst dahin duchclicken. Zielvorstellung - Lokale Raumsteuerung in allen Räumen
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

Ranseyer

Ich bin gerade etwas am verzweifeln und sehe evtl den Wald vor lauter Bäumen nicht,

Habe zwei 3,5" Touch Displays.
-Beide laufen an diversen USB Konvertern absolut problemlos (FTDI, CH*, PL*): Am Nextion Editor und auch an FHEM kann ich mir z.B. das Wetter anzeigen lassen
-Geschwindigkeit fest auf 115200 Baud gesetzt (auch beim ESP)

-am ESP 8266 (WeMos Clones) laufen diese nicht (oder nicht gut)
  -Software: JeeLabs ESP-Link (Config: ESP-Bridge, 115200, 8N1)
  -Versorgungsspannung am Display: gute + stabile 4,9V
  -Rx am Display direkt an den ESP Tx funktioniert nicht. Nur über Levelshifter !
  -Tx vom Display: damit hatte ich massive Probleme, daher habe ich gespielt mit zwei Typen von fertigen Level-Shiftern (bidirektional; I2C unidirektional, welche Transistoren da genau verbaut sind kann ich nicht sagen)
  -Der Logic-Analizer bestätigt mir dass die Displays sinnvollen Output liefern. Z.B. beim Drücken von Buttons
  -Weil ich beim Tx des Displays nicht erfolgreich war habe ich aktuell einen primitiven Spannungsteiler aufgebaut siehe Anlage (1K und 2K (statt 1,5K) bei mir
  -Ich habe schon 1-2 Mal geschafft den Nextion Editor zu connecten (HW Virtual Serial Port Treiber der HW Group), meist klappt das nicht
  -Ein Reopen in FHEM schaltet das Display um auf die konfigurierte Page (ohne Fehlermeldung)
  - "page 2"  schaltet auf Seite 2 aber es kommt der Fehler: "Timeout reading answer for get page 2"

Fazit: Für mich sieht das wie ein HW-Problem aus, oder was könnte ich da noch SW-Seitig schrauben ?
FHEM mit FTUI. Homematic-Funk für Thermostate und Licht. MySensors als Basis für eigene HW.
Zentrale ist der MAPLE-CUL mit RFM69+HModUART-AddOn.
Doku zu meinen Projekten: Github/Ranseyer. Platinen falls verfügbar gerne auf Anfrage.
Support: gerne wenn ich Zeit+Lust habe im Forum. Nicht per PN!

Ranseyer

Nachtrag: Nach einigen Tagen erfolglosem Frickeln habe ich mir ein Herz gefasst und den Eingang am ESP8266 (Rx) einfach direkt angeschlossen und alles scheint gut.
FHEM mit FTUI. Homematic-Funk für Thermostate und Licht. MySensors als Basis für eigene HW.
Zentrale ist der MAPLE-CUL mit RFM69+HModUART-AddOn.
Doku zu meinen Projekten: Github/Ranseyer. Platinen falls verfügbar gerne auf Anfrage.
Support: gerne wenn ich Zeit+Lust habe im Forum. Nicht per PN!

UweH

Zitat von: ranseyer am 03 Januar 2017, 13:42:34
alles scheint gut.
"Scheint" ist in dem Zusammenhang wohl die richtige Wortwahl. Kann gut gehen, muss aber nicht und wird es auf Dauer wahrscheinlich auch nicht.
Hier habe ich den Schaltplan eines Levelshifters mit zwei 2N7000 gepostet, der funktioniert bei mir in mehreren Displays zuverlässig.

Gruß
Uwe

HCS

#261
Zitat von: UweH am 04 Januar 2017, 18:45:52
"Scheint" ist in dem Zusammenhang wohl die richtige Wortwahl. Kann gut gehen, muss aber nicht und wird es auf Dauer wahrscheinlich auch nicht.
Hier habe ich den Schaltplan eines Levelshifters mit zwei 2N7000 gepostet, der funktioniert bei mir in mehreren Displays zuverlässig.

Warum braucht man für ein Display, dessen Schnittstelle lt. Datenblatt (siehe Anhang) und lt. Messung (siehe Anhang) mit 3.3V läuft, am ESP8266, der auch mit 3.3V läuft, einen level shifter?

UweH

#262
Weil offenbar die Realität mit dem Wunsch nicht immer übereinstimmt (bei 15€ für solch ein Teil auch nicht immer zu erwarten). Ich habe Streuungen bei meinen Displays, eins läuft ohne Levelshifter, das nächste nicht...MIT Levelshifter funktionieren sie kurioserweise alle.

HCS

Zitat von: UweH am 04 Januar 2017, 20:52:17
Ich habe Streuungen bei meinen Displays, eins läuft ohne Levelshifter, das nächste nicht...
Hast Du die mal gemessen, was die "geht nicht ohne" auf der Schnittstelle liefern?
Das wäre sehr interessant zu wissen.

Auf dem Display sitzt ein 6209A 3.3V Regler und der Prozessor ist ein STM32F030 und der hat lt. Datenblatt einen Betriebsspannungsbereich von 2.4 bis 3.6 V.
Es wäre wirklich abgefahren, wenn der auf dem USART 5V rausgeben könnte.

amunra

meine 2,4 / 2,8 und 3,2 Displays schnurren auf der UART Schnitestelle "ohene einen level shifter" mit 3V3 seit Monaten (ca. 05.2016) ohne Probleme!
Dies zur Info.

viegener

Zitat von: amunra am 05 Januar 2017, 00:09:06
meine 2,4 / 2,8 und 3,2 Displays schnurren auf der UART Schnitestelle "ohene einen level shifter" mit 3V3 seit Monaten (ca. 05.2016) ohne Probleme!
Dies zur Info.

Ich denke wir können die Diskussion hier beenden, denn offensichtlich gibt es Verwender, die ohne level shifter die ESPs am Display betreiben können, allerdings gibt es ja inzwischen mehrere Generationen von Displays und auch keinerlei Garantie, dass das immer funktioniert.

Also ob man einen level-shifter verwendet ist eine persönliche Entscheidung.

Mich würde viel eher interessieren, ob die Benutzer des Nextion-Moduls noch weitere Anforderungen haben?

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

Noname

#266
Hallo viegener

nachmals Danke für das Modul.

Es funktioniert bei mir schon einige Wochen 4,3" Display mit USBtoTTL Konverter
am PI2.

Die Init der einzelnen Seiten habe ich anders gelöst.
So werden beim Seitenwechsel und bei jeder Änderung
die Messwert aktualisiert.

Beispiel:

# Messwerte Wetterstation senden
define TFT_N_Wetter notify (KS300_Wetter:T:.*|TFT:rectext.*page.*0) {\
my $result_W1 = "W_Temp.txt=\"".ReadingsVal("KS300_Wetter","temperature",0)." °C"."\"";;\
my $result_W2 = "W_Feuchte.txt=\"".ReadingsVal("KS300_Wetter","humidity",0)." %"."\"";;\
my $result_W3 = sprintf("%.1f", ReadingsVal("KS300_Wetter","wind_average",0));;\
$result_W3 = "W_Wind.txt=\"".$result_W3." kmh"."\"";;\
my $result_W4 = "W_Regen.txt=\"".ReadingsVal("KS300_Wetter","rain_day",0)." lm²"."\"";;\
my $result_W = $result_W1.chr(59).chr(59).$result_W2.chr(59).chr(59).$result_W3.chr(59).chr(59).$result_W4;;\
fhem("set TFT cmd $result_W");;\
}
attr TFT_N_Wetter room Nextion

Beispiel Rückmeldungen Spiegeln:
# Status Beleuchtung senden (Ein, Ein-for-timer)
define TFT_N_Licht notify (Wohnen_Licht_1|Wohnen_Licht_2|Buero_Licht|Schlafen_Licht|TFT:rectext.*page.*2) {\
if ((index(Value("Wohnen_Licht_1"),"Ein") >= 0) || (index(Value("Wohnen_Licht_2"),"Ein") >= 0)) {fhem("set TFT cmd L1_Ein.val=1")} else {fhem("set TFT cmd L1_Ein.val=0")};;\
if (index(Value("Buero_Licht"),"Ein") >= 0) {fhem("set TFT cmd L2_Ein.val=1")} else {fhem("set TFT cmd L2_Ein.val=0")};;\
if (index(Value("Schlafen_Licht"),"Ein") >= 0) {fhem("set TFT cmd L3_Ein.val=1")} else {fhem("set TFT cmd L3_Ein.val=0")};;\
}
attr TFT_N_Licht room Nextion

Und die Befehle vom Display.
Beispiel:
# Receivedaten empfangen
define TFT_N_RecTxt notify TFT:rectext.* {\
my $result_TFT = ReadingsVal("TFT","rectext",0);;\
if (index($result_TFT,"L1_Ein=1") > 0) {fhem("set Wohnen_Licht_1 Ein;;set Wohnen_Licht_2 Ein")};;\
if (index($result_TFT,"L1_Ein=0") > 0) {fhem("set Wohnen_Licht_1 Aus;;set Wohnen_Licht_2 Aus")};;\
if (index($result_TFT,"L2_Ein=1") > 0) {fhem("set Buero_Licht Ein")};;\
if (index($result_TFT,"L2_Ein=0") > 0) {fhem("set Buero_Licht Aus")};;\
if (index($result_TFT,"R1_Auto=1") > 0) {fhem("set Wohnen_Rollo_Fenster_BA Auto")};;\
if (index($result_TFT,"R1_Auto=0") > 0) {fhem("set Wohnen_Rollo_Fenster_BA Hand")};;\
if (index($result_TFT,"R1_Zu=1") > 0) {fhem("set Wohnen_Rollo_Fenster Zu")};;\
if (index($result_TFT,"R1_Auf=1") > 0) {fhem("set Wohnen_Rollo_Fenster Auf")};;\
if (index($result_TFT,"R2_Auto=1") > 0) {fhem("set Wohnen_Rollo_Tuer_BA Auto")};;\
if (index($result_TFT,"R2_Auto=0") > 0) {fhem("set Wohnen_Rollo_Tuer_BA Hand")};;\
if (index($result_TFT,"R2_Zu=1") > 0) {fhem("set Wohnen_Rollo_Tuer Zu")};;\
if (index($result_TFT,"R2_Auf=1") > 0) {fhem("set Wohnen_Rollo_Tuer Auf")};;\
usw. ......
}
attr TFT_N_RecTxt room Nextion

Du könntest bei der Auswahl der set Commands noch sinnvolle Befehle einbauen,
z.B. Dim,touch_j usw., muss aber nicht es geht auch über raw.

du hast mir viel Arbeit erspart!



HCS

Zitat von: viegener am 05 Januar 2017, 01:06:25
Mich würde viel eher interessieren, ob die Benutzer des Nextion-Moduls noch weitere Anforderungen haben?
Hätte da noch zwei Punkte:

Könntest Du den Timeout für den TCP connect runtersetzen?
Die standard drei Sekunden von DevIO sind eigentlich zu lange, ich habe es in 36_LaCrosseGateway auf 0.5 Sekunden runtergesetzt ($hash->{TIMEOUT} = 0.5;).
Wenn nach der Zeit sich auf dem Port nichts meldet, dann kommt die restlichen 2,5 Sekunden auch nichts mehr.
Ob für die Nextion-Anbindung etwas mehr Timeout angebracht ist, müsstest Du abschätzen.
Wenn das TCP-angebundene Nextion nicht da ist, dann sind die 3-Sekunden-Stockungen in FHEM etwas lästig.
Ist auch schön in apptime zu sehen:

name             function    max  count    total  average maxDly
nextion     Nextion_Ready   3003  64111   348084     5.43      0 HASH(nextion)


Und für den Fall, dass das Nextion bekannterweise längere Zeit abwesend ist, wäre ein disabled Attribut praktisch.
disable:0,1
Wenn auf 1 gesetzt, keine Verbindungsversuche machen.

marko67

Hallo,

ich benötige nochmals Hilfe. Ich habe mir wie mehrfach hier erwähnt die esp-link Datei heruntergeladen und extrahiert. Welche der vielen Dateien muss den nun auf den esp? Und wie genau stelle ich das flashen an? Ich möchte gerne die Arduino Ide verwenden. Wer kann mir einen "Stups" in die richtige Richtung verpassen?

Wir nach dem flashen noch weitere Software auf dem esp benötigt oder übernimmt das dann das Programm auf dem Nextion um mit Fhem zu kommunizieren?

Vielen Dank!!

Marko

arokh12

Zitat von: marko67 am 09 Januar 2017, 16:46:37
Hallo,

ich benötige nochmals Hilfe. Ich habe mir wie mehrfach hier erwähnt die esp-link Datei heruntergeladen und extrahiert. Welche der vielen Dateien muss den nun auf den esp? Und wie genau stelle ich das flashen an? Ich möchte gerne die Arduino Ide verwenden. Wer kann mir einen "Stups" in die richtige Richtung verpassen?

Wir nach dem flashen noch weitere Software auf dem esp benötigt oder übernimmt das dann das Programm auf dem Nextion um mit Fhem zu kommunizieren?

Vielen Dank!!

Marko


Hey,
zum Flashen von ESP-Link benutze ich immer folgende Anleitung:
Ist zwar nicht in Deutsch, aber mit Hilfe der Bilder finde ich, geht das echt gut.

http://domoticx.com/esp8266-wifi-esp-link-firmware-flashen/

Mit freundlichen Grüßen
arokh12


Gesendet von iPad mit Tapatalk