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

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

Vorheriges Thema - Nächstes Thema

ext23

Zitat von: UweH am 13 Januar 2018, 19:44:27
??? ...meine Displays pfeifen nicht...eins hat mal geknistert, da hab ich den 3,3V-Regler gebraten, aber sonst sind sie still... :-X

Verdammt, ich hab 3 hier, die pfeiffen alle. Mhh aber ich bin 36, da schaffe ich noch ein paar kHz, vielleicht liegt es daran ^^

Also mit dem DOIF komme ich nicht zurecht, das :d hinten sagt was? Das müsste ja der Wert nach dem = sein aus dem reading oder wie?!?

/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)

UweH

Ich bin deutlich älter und meine Ohren sind erwiesenermaßen nicht die besten, aber meine Frau würde es hören. Da ist nix...

Das "d" extrahiert den reinen Zahlenwert aus dem reading. Der Slider heißt "slider" ( 8) ) und taucht im rectext als "\$slider=..." auf. Daraus nehme ich den Zahlenwert und schicke ihn an das Device, in dem Fall einen Dimmer. Läuft. Genauso mache ich es mit meinen Rollos.

ext23

#452
Mhh komisch ja, vielleicht ne blöde charge erwischt. Ich schau mir das mal später an, das wird sicher per PWM geregelt, vielleicht klemm ich noch nen Widerstand vor den MosFET oder Transistor oder was das schaltet.

Tja mhh bei mir will das nicht, da muss ich noch irgend etwas falsch machen.

Reading: rectext       $Licht.h0.val=254

([Nextion01:rectext] =~"Licht.h0.val") (set Deckenfluter hue [Nextion01:rectext:d])

Es gibt irgendwie für DOIF auch kein Wiki, nur das Forum hier mhhh.

UPDATE: Mhh der Parameter schaut also ob er zahlen findet, warte mal, dann kann es ja sein dass das nicht funktioniert weil ich ja 2 zahlen drin habe, wie soll er das matchen....

Wie machst du das eigentlich wenn das Display aus war bzw. nach einem ReConnect, überträgst du dann einmal alle Werte ans Display?

/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)

UweH

#453
Zitat von: ext23 am 13 Januar 2018, 20:30:56
weil ich ja 2 zahlen drin habe, wie soll er das matchen....
Wie machst du das eigentlich wenn das Display aus war bzw. nach einem ReConnect, überträgst du dann einmal alle Werte ans Display?
Gut möglich, dass das der Grund ist. Da bin ich aber auch nicht der Experte.


Nach einem Reconnect o.ä. greifen die initCommands, die bei einem meiner Displays auch schon mal recht umfangreich ausfallen...:

yamfhem

... zwischendurch mal 'ne Hardware-Frage. Ich verwende einen Wemos D1 mini an welchem das Display direkt angeschlossen ist (ESP-Link, mit D7 und D8 als RX/TX). Wenn das Display angeschlossen ist, bootet der ESP nicht. Trenne ich D7/D8 bootet der und wenn ich D7/D8 anschließe funktioniert auch alles. Hat jemand 'ne Ahnung, woran das liegen kann?

Gruß Rene

ext23

@yamfhem:

Japp, kenn ich, im Zweifel Transistoren zwischen oder ein Pegelwandler. Da gab's schon einige Diskussionen wegen 5V und 3,3V Pegel und so. Irgendwie sind die Displays da etwas komisch und der ESP auch. Bei mir geht es bei zwei Displays und bei einem nicht. Da fließt irgendwo Strom auf den Signalleitungen was aber nicht sein soll. Daher irgendwie etwas trennen das ganze. Manchmal hilft auch ein Plumper Widerstand.

@Uwe:

Achso ah, jetzt habe ich auch verstanden was du oben meintest. Na dann bau ich das mal ein in den Attributen. Und ich glaube dann habe ich soweit alles.

Gut also es ist schon ein ganzer Haufen Arbeit weil man alles an zwei Stellen machen muss. An sich sind die Displays wirklich gut.

Ich habe nur ein Problem mit den Display, kann aber auch an meiner Version liegen, die pfeifen ja auch ^^

Wenn ich es Quer benutze und schau drauf ist das wie Augenkrebs, man hat das Gefühl man ist matt auf einem Auge. Das ist aber bedingt durch die extrem Schlechte Blinkwinkelabhängigkeit. Benutzt man das Display hochkant kann ich ganz entspannt drauf schauen.

Das könnte man ja glatt weg auch als Fernbedienung benutzen so schnell wie das da ist. Der ESP verbindet sich auch fix mit dem WLAN. Ich muss mal schauen wie schnell das Modul einen reconnect auf die Reihe bekommt. Das Gehäuse was ich gedruckt habe ist etwas groß geraten, da passen locker ein paar LiPo's rein. Aber das überlege ich mir noch. Ich bin ein bissel angefixt mit den enhanced modulen, wegen der RTC...

So aber reicht für heute.

/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)

ext23

Ich konnte nicht pennen, jetzt gehts. Sag mir doch einer, das man bei DOIF das "do auf always" setzen muss....

Und ja er hat auf die bt0 gematched, aber gut das kann man ja mit einem regulären ausdrück regeln.

So jetzt kann ich endlich ruhig pennen.

/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)

UweH

Zitat von: ext23 am 14 Januar 2018, 00:28:17
Ich konnte nicht pennen, jetzt gehts.
Und ich dachte,es geht nur mir immer so...

Zitat von: ext23 am 14 Januar 2018, 00:28:17
Sag mir doch einer, das man bei DOIF das "do auf always" setzen muss....
In der commandref gibt's eine umfangreiche Beschreibung des DIOF. Ich versuche zwar immer, alles mit notify zu regeln, aber in diesem Fall klappte es nicht. Da muss ich mal einen Fachmann fragen, wieso das notify mit =~"slider" nicht umgehen kann bzw. was ich falsch mache.

Ich habe übrigens meine Displays mal von unten bis oben durchgedimmt und das intakte Ohr meiner Frau rangehalten...nix. Da pfeift keins...

Lipos? Was hast Du vor? Das Display saugt 100mA.

Augenkrebs kann ich nicht bestätigen, mag aber auch daran liegen, dass ich nur die 2,4"-Variante benutze, weil die in mein Schalterprogramm passt.


@yamfhem: Irgendwo auf den ersten 20 Seiten findest Du eine Schaltung für einen Pegelwandler. Das Problem hatte ich nämlich auch mal und ich hatte den Eindruck, es wollte mir keiner glauben. Insofern Pech für Dich, dass Du nun auch so ein Teil erwischt hast, aber Bestätigung für mich...  ;)

Gruß
Uwe

ext23

Zitat von: UweH am 14 Januar 2018, 10:01:53
Lipos? Was hast Du vor? Das Display saugt 100mA.

Moin,

naja eben nur anschalten wenn man es braucht. Das WLAN steht bei mir nach nicht mal 3 Sekunden. Das Display ist auch schnell an. Also dachte ich mir ein Schalter rann und dann quasi als Fernbedienung nutzen.
Ich muss eben nur mal schauen wie schnell das Nextion FHEM Modul es registriert, dass das Display wieder "erreichbar" ist.

/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)

tiwo85

Bei mir läuft alles über ein Notify
nxt.rectext:.* { if($EVENT =~ /NL/){ NextionRecText("$EVENT")}}

In der myutils ist dann noch die sub
sub NextionRecText($){
my ($event) = @_;
my @a = split('=p',$event);
#my @Test = split('=p',$Text);
#foreach (@Test){
Log 3, "Setze TimerNLicht $a[1]";
fhem('set TimerNLicht '.$a[1]);
#};;
}


Ich werde aber mal bei Gelegenheit euer DOIF testen.

Ich hatte zuerst im Notify =~ "NL" das klappte aber auch nicht. Als ich dann /NL/ gemacht hab, ging es dann aber.

Gesendet von meinem VKY-L09 mit Tapatalk


ext23

Ich habs so gemacht:

([Nextion01:rectext] =~"Licht.h0.val") (set Deckenfluter hue [Nextion01:rectext:"=(-?\d+(\.\d+)?)"])

/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)

UweH

Zitat von: tiwo85 am 14 Januar 2018, 10:43:00
Ich werde aber mal bei Gelegenheit euer DOIF testen.
Wenn Du ein gut funktionierendes notify hast, brauchst Du das DIOF nicht anfassen. Ich versuche jedes DOIF zu vermeiden, beeinträchtigt messbar die Performance, sagt ein Fachmann, der es wissen muss.
Aber dafür werde ich die Variante "=~ /NL/" testen.

Ich mache es ähnlich wie Du, ein notify reagiert auf das rectext-Event und ruft eine entsprechende Funktion in myUtils auf. Damit werte ich alle Buttons über ein notify aus.

Gruß
Uwe

tiwo85

Zur Anmerkung, das NL sind die ersten 2 Buchstaben der Veriable NLichtTimer

Gesendet von meinem VKY-L09 mit Tapatalk


viegener

Ich habe mal in github eine erste Version des Nextion-Moduls hinterlegt, das auf events in FHEM oder auf texte aus dem Display reagieren kann.

Die Syntax ist so gewählt, dass sich für existierende Definitionen nichts ändern sollte. Eine commandref in Englisch ist auch dabei.

in den initPage... kann man jetzt auch Kommandos mit einem regexp der gegen FHEM-Events gematcht wird hinterlegen und in den neuen Attributen recPage... kann man umgekehrt auf Daten aus dem Display reagieren. Hier wird gegen den Inhalt von rectext über prüft.

Grundsätzlich ist die Syntax


[regexp] ( kommandos)
Als der regexp in eckigen Klammern und die Kommands (FHEM bzw. Nextion) in runde Klammern eingeschlossen.
Bei initPage.. müssen diese von Events abhänigen Kommandos vor den bisher schon untertsützten Initialiisierungen stehen..

Es gibt ausserdem initCommands und recCommands, die global (also auf allen Seiten) des Nextion-Display aktiv sind.

Ich habe bei mir alle notify/DOIFs damit direkt ins Modul ziehen können (zeitgesteuerte aktionen gibt es allerdigns bei mir auch nicht).

Vielleicht mag es mal jemand ausprobieren?

Achso und es gibt jetzt auch die Readings rectold1-5 in der alte rectext-Werte gespeichert werden (solange die message nicht nur H01 also ok ist)


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

UweH

#464
Danke, geht los.
Ich bekomme aber beim aktualisieren der commandref folgende Meldung und kannd die neue commandref nicht aufrufen.
*** EN FHEM/42_Nextion.pm: ignoring text due to DOS encoding

Was kann ich tun?

Gruß
Uwe



EDIT: Das ist die aktuelle Versionsnummer: 42_Nextion.pm 14371 2017-05-25
Die Version im github ist: 42_Nextion.pm 12468 2016-10-29 20:37:14
Huch...


Nochmal EDIT: Die richtige Datei hab ich offenbar, die readings sind neu...