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

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

Vorheriges Thema - Nächstes Thema

viegener

@hmtec99: OK ich sehe das mal als Verbesserung, aber grundsätzlich hast Du schon ein Problem, denn es werden irgendwo Zeichen verschluckt bei Deiner Installation. Eigentlich sollte immer mindestens ein Zeichen Befehlskette plus 3 mal 0xff in der Übertragung enthalten sein. Bei Dir gibt es wohl Fälle, die weniger als 3 mal 0xff und 0 Befehlszeichen enthalten.

Ich werde das jetzt noch fehlertoleranter machen, das heisst aber auch, das Übertragungen vom Display ignoriert werden, da Zeichen fehlen, das führt mit Sicherheit zu fehlerhaften Anzeigen bzw. das Befehle vom Display nicht ausgeführt werden.
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

UweH

@hmtech99: Dein Problem ist ja wohl eher in der Anbindung der Displays zu suchen als im Nextion-Modul. Ich habe 4 Nextion-Displays an meinem FHEM hängen, keine Probleme. Aber nur, weil ich von den mickrigen ESP8266 auf LAN umgestiegen bin. Die Dinger bringen es einfach nicht, es sei denn, Du montierst eine externe Antenne dran.

@viegener: Heißt "fehlertoleranter", dass nun auch alle anderen Nextion-Modul-Nutzer mit Einschränkungen (ich zitiere Dich: "führt mit Sicherheit zu fehlerhaften Anzeigen bzw. das Befehle vom Display nicht ausgeführt werden") rechnen müssen?

Gruß
Uwe

viegener

@UweH: Nein das wäre aus meiner Sicht nicht akzeptabel, es betrifft nur bei Installationen wo fehlende Zeichen vorkommen. Und auch da sollte man das Problem lösen, weil das UI sonst nicht vernünftig bedienbar ist.

Im Detail: Es heisst wenn keine Zeichen verschluckt werden werden Befehle weiterhin unverändert erkannt
Wenn Zeichen verschluckt werden, wird versucht trotzdem Befehle zu verarbeiten (also statt 3 mal 0xff wird auch 1 doer 2mal akzeptiert und die Befehlserkennung kommt auch nicht aus dem Tritt).
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

hmtec99

Hallo viegener.

Danke für die Anpassung. Kannst du es noch einbauen, das die erkannte Zeichenkette bei nicht erkannten Befehlen ausgegeben wird (Log / Event monitor)? Vielleicht kann ich etwas ableiten.

Gruss, Oliver

viegener

@hmtec99: Das ist so einfach nicht möglich, da Nextion ja nicht erkennen kann ob ein Zeichen im Namen eines buttons oder statt ".val" nur ".va" ankommt. Ich habe aber mal eine bessere Ausgabe von erkannten Befehlen eingebaut. Das landet dann auch lesbar im log.

Findet sich so in github
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

hmtec99

#350
Noch ein Vorschlag: Kannst du für den Fehlerfall (fehlerhafte/unvollständige Zeichenkette) noch ein Nextion/RAW_Error oder sowas ähnliches einbauen.
Das würde die Suche von Fehlern im Log sehr vereinfachen bzw. man könnte dann auch leicht in ein separates FileLog loggen.

2017.04.14 07:57:08.998 4: Nextion: Received message :H65(e) H03 H08 H01:
2017.04.14 07:57:08.997 5: Nextion/RAW: message found "e\3\b\1"
2017.04.14 07:57:08.997 5: Nextion/RAW: /e���
2017.04.14 07:57:08.603 5: Nextion/RAW: match with zero length - command missing - ffh #2
2017.04.14 07:57:08.603 4: Nextion/RAW: shortened ffh end sequence (2) ""
2017.04.14 07:57:08.603 5: Nextion/RAW: /��
2017.04.14 07:57:08.602 4: Nextion_InitPage TD_BUKI: page  :3: with commands :<undef>:
2017.04.14 07:57:08.594 4: Nextion: Received message :H66(f) H03:
2017.04.14 07:57:08.593 4: Nextion/RAW: shortened ffh end sequence (1) "f\3"
2017.04.14 07:57:08.593 5: Nextion/RAW: /f�


Kannst du mir mal die verschiedenen Fehler in dem Auszug erklären?

Werden die Befehle eigentlich trotzdem interpretiert oder verworfen?

Gruß, Oliver

viegener

Klar kann ich das erklären, aber was bringt das?

Eigentlich gibt es nur zwei Fehler - verkürzte Commands und verkürzte ff-Sequenzen (3 wären normal)

Die Befehle werden nur dann verworfen, wenn sie keinen Sinn ergeben
(z.B. bei command missing) --> da fehlt wohl das komplette Kommando und es sind auch nur 2 ff angefügt statt 3

Die anderen Ausgaben sind keine Fehler (ich empfehle verbose 4  statt 5 normalerweise)
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

RPunkt

Hallo Leute,
ich habe micht als Neuling durch den ganzen Thread gelesen und will mir nun auch ein Nextion- Display anschaffen und es über WLan mit Daten füttern bzw. Schalthandlunge ausführen.
Aber ich finde nicht so wirklich einen anfängertauglichen Schaltplan.
Was brauche ich am besten?
Und wie verschalte ich den Kram?
Vielleicht kann mir da ja mal jemand eine Einkaufsempfehlung und einen Schaltplan posten oder verlinken.
Ansonsten bin ich (wieder mal) schwer begeistert, was alles geht.
Gruß,
RPunkt

PeMue

#353
Hallo,

Zitat von: RPunkt am 17 Mai 2017, 14:18:33
Aber ich finde nicht so wirklich einen anfängertauglichen Schaltplan.
die Platine für den LaCrosse Gatway v1.1 https://forum.fhem.de/index.php/topic,45594.msg373669.html#msg373669 kann mittlerweile auch ein Nextion Display bedienen.
Wenn Du Dir die Leitungen auf dem Schaltplan raussuchst, kannst Du vermutlich auch fliegend verdraten, ist ja nicht viel: 5 V, GND bzw. Tx und Rx (diese dabei kreuzen, ohne Pegelwandler). Je nachdem, welche Software (LGW, ESPEasy oder transparent bridge) Du auf den ESP8266 draufpackst, musst Du Tx/Rx an die Hardware serielle Schnittstelle oder an die Pins der Software Schnittstelle anschließen.

Gruß PeMue

Edit:
Die "Große" HMUART Platine wird auch ein Nextion Display bedienen können (M21B, J21B1), der Schaltplan ist ggf. für Anfänger einracher.
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

marko67

Zitat von: RPunkt am 17 Mai 2017, 14:18:33
Hallo Leute,
ich habe micht als Neuling durch den ganzen Thread gelesen und will mir nun auch ein Nextion- Display anschaffen und es über WLan mit Daten füttern bzw. Schalthandlunge ausführen.
Aber ich finde nicht so wirklich einen anfängertauglichen Schaltplan.
Was brauche ich am besten?
Und wie verschalte ich den Kram?
Vielleicht kann mir da ja mal jemand eine Einkaufsempfehlung und einen Schaltplan posten oder verlinken.
Ansonsten bin ich (wieder mal) schwer begeistert, was alles geht.
Gruß,
RPunkt

quick&dirty:

Ich habe einen Wemos D1 mini und diesen mit einem Netzgerät mit Usb micro mit 5v versorgt. Das Display habe ich wie folgt angeschlossen: 5V-5V Gnd-Gnd gelb-D5 blau-D7.
https://www.letscontrolit.com/forum/viewtopic.php?f=6&t=1469&start=80

Ich habe keine Levelshifter o.ä. eingebaut.
Ich verwende Espeasy Version 147. Ausserdem _117_Nextion.ino https://github.com/letscontrolit/ESPEasyPluginPlayground
Die _117_Nextion.ino wird einfach in den entpackten Ordner von Espeasy geschoben und mit der Arduino Software auf den Esp geflasht.

In der Nextion Oberfläche (Software) einfach nach Geschmack eine Seite basteln.
https://www.boecker-systemelektronik.de/Seite-/-Kategorie-1/Grafische-Oberflaechen-fuer-Mikrocontroller-Anwendungen-mit-Nextion-Displays
https://www.boecker-systemelektronik.de/epages/63381271.sf/de_DE/?ObjectPath=/Shops/63381271/Categories/Tutorials/Nextion_Tutorials

Wenn du nun einen Button o.ä. auf dem Display drückst, sendet dir der Esp/Nextion einen idx Code und eine value Zahl. Z.b.: idx:775 value:0/1 (hängt davon ab wie du das Nextion/Button programmierst). Die idx und value sehe ich nun im Fhem und reagiere per DOIF.
Umgekehrt kann man mit dem raw Befehl Daten, Uhrzeit,Text,Heller/Dunklerkommando,Seite vor/zurück usw. an das Display senden und dort als Text/Bild/Popupbild anzeigen.
Es läuft auf 2 Displays bei mir seit 5 Monaten gut und störungsfrei. Ohne Schnickschnack so wie ich es wollte.
Fertig

Viele Grüße
Marko


viegener

Habe gerade ins svn eine neue Version gestellt, die ab morgen über update verfügbar ist. Darin sind die Änderungen der letzten Wochen mit fehlertoleranterer Reaktion auf Verbindungsabbrüche/abgeschnittene Kommandos etc enthalten. Dient also eigentlich nur der Stabilisierung
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

UweH


ext23

Nabend,

ich spiele gerade wieder mit meinem Display rum. Wie liest man denn am besten das rectext aus, bei mir steht dann immer sowas drin:
string "pump01on"
Hat das einen Grund das string davor steht und das ganze in Anführungszeichen steht? Mit interessiert ja eigentlich nur der Wert.

Gruß
Daniel
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

viegener

@ext23: Die Rückgabe vom Nextion-Display kann ein String, numerisch oder eine neue Seite sein. ZUmindest werden diese im Nextion-Modul unterstützt. Damit wird der Prefix gebildet.

Die Frage wie man das "am besten ausliest" ist mir nicht klar - ich vermute Du reagierst auf den Event (notify/DOIF), dann würde ich einen regexp entsprechend auf den gesamten Wert definieren also z.B.

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

ext23

Aber wäre es nicht einfacher ein extra reading für den Typ zu benutzen anstatt alles in ein Feld zu quetschen und dann noch mit Anführungszeichen zu versehen? Das ist nicht wirklich atomar.

/Daniel
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)