LaCrosseGateway mit Nextion Display

Begonnen von HCS, 27 Dezember 2016, 00:27:04

Vorheriges Thema - Nächstes Thema

HCS

Das LaCrosseGateway unterstützt jetzt auch optinal ein Nextion Display

Angeschlossen wir es so:
GPIO0: TXD -> Nextion RXD
GPIO2: RXD -> Nextion TXD

Es braucht eine 5V Spannungsversorgung (auf keinen Fall mit 3.3V betreiben). Die kann man an VIN vom DevKit abgreifen.
Und GND natürlich.

Zum Thema level shifter für RXD/TXD gehen die Meinungen auseinander.
Meine Meinung: man benötigt keinen. Ich messe auf der seriellen Schnittstelle des Displays 3.3V, was auch der Spezifikation entspricht.
Aber wer unsicher ist, kann ja selbst mal messen. Ich verwende keinen.
Oder hat schon mal jemand definitiv 5V auf RXD/TXD gemessen?

Konfiguration auf der setup page:
Siehe SoftSerialBridge.png
port: der Port, auf dem es angesprochen werden kann
baud: Die baud rate für die Kommunikation des LGW mit dem Display
Is Nextion: legt fest, dass ein Nextion Display angeschlossen ist
Add units: fügt an die Werte, die das LGW an das Display schickt, Einheiten an

Das LGW kann die Firmware (.tft File) zum Display übertragen. Dazu gibt es zwei Varianten:
curl   
Syntax:
curl --http1.0 -# -o ~output.txt -H "Content_Type:multipart/form-data" -F "file=@<tftFileName>; filename=nextion.tft" http://<LGW-IP>/ota/nextion
Beispiel:
curl --http1.0 -# -o ~output.txt -H "Content_Type:multipart/form-data" -F "file=@D:\MyNextionFiles\lgw.tft; filename=nextion.tft" http://192.168.31.213/ota/nextion
   
Das LaCrosseGateway modul in FHEM
Mit
set <myLGW> nextionUpload
kann man die Firmware (.tft File) an das Display senden.
Wenn das Attribut "tftFile" gesetzt ist, wird die darin angegebene Datei hochgeladen, ansonsten wird versucht, das File FHEM/firmware/nextion.tft hochzuladen.

In beiden Fällen nimmt das LGW die Firmware entgegen und überträgt sie dann an das Display.

Die bridge ist transparent und kann vom Nextion Modul in FHEM verwendet werden.

Zusätzlich sendet das LGW eigene Daten an das Display. Um diese anzuzeigen, können Texte und Bilder im Display definiert werden, die bestimmte Namen haben müssen:

Texte, die das LGW versucht, mit Werten zu befüllen
LGW#rssi
LGW#temp
LGW#hum
LGW#pres
LGW#fpm
LGW#heap
LGW#ip

Diese Bilder versucht das LGW sichtbar / unsichtbar zu machen
LGW#wifi
LGW#fhem
LGW#cpu1
LGW#cpu2
       
Dass das LGW einen Progress anzeigen kann, muss man eine Page mit dem Namen LGW#prog anlegen und auf dieser eine progrss bar mit dem Namen LGW#pbar und einen Text mit dem Namen LGW#ptext anlegen.

Dass das LGW Infos anzeigen kann, muss man auf der LGW#prog page den Text mit dem Namen LGW#info anlegen.
         
Alle diese Elemente sind optional. Man kann also, wenn gewünscht, Informationen vom LGW und Informationen, die das Nextion-Modul in FHEM schickt, mischen.

Nextion2.png, Nextion3.png und Nextion4.png zeigen ein Beispiel für so eine Konfiguration im Nextion-Editor.

Im angehängten Video (sorry, Kameramann wäre nicht mein Beruf) sieht man das Ganze in Aktion.
Temperatur, Feuchte und Luftdruck werden vom LGW aktualisiert, Außentemperatur und Wind kommen vom Nextion-Modul in FHEM.

Die Birnen-Buttons werden in FHEM vom Nextion-Modul und zwei notify (NexON / NexOFF) verarbeitet, die eine PCA301 schalten (man sieht im Video, wie die Schreibtischlampe an / aus geht.
Außentemperatur und Wind werden von zwei notify (TempToNextion / WindToNextion) über Nextion Modul -> Serial Bridge an das Display gesendet. 
Die on/off Rückmeldung auf dem Display wird von einem weiteren notify (IsOnOff ) versorgt.

Hier die defines der im Beispiel verwendeten Komponenten:
define LGW213 LaCrosseGateway 192.168.31.213:81
attr LGW213 tftFile /NextionFiles/LGW.tft
attr LGW213 timeout 60

define nextion Nextion 192.168.31.213:86
attr nextion expectAnswer 0

define TempToNextion notify ws1600:temperature:.* set nextion cmd out_t.txt="$EVTPART1 °C"
define WindToNextion notify ws1600:windSpeed:.* set nextion cmd out_ws.txt="$EVTPART1 m/s"
define NexON notify nextion.received:.H65.e..H00.H10.H01 set PCA301_035FF1 on
define NexOFF notify nextion.received:.H65.e..H00.H0f.H01 set PCA301_035FF1 off
define IsOnOff notify PCA301_035FF1:on|PCA301_035FF1:off set nextion cmd onoff.txt="$EVTPART0"


Das Ganze ist brandneu und evtl. noch ein klein wenig experimentell, aber ohne es Anwendern zu geben kann es ja nicht beim Anwender reifen  ;D ;D

Edit: Hier nun auch das Video: https://youtu.be/rskSVvckxm0

PeMue

Hallo HCS,

ich hänge mich hier mal als Mitleser mit rein.

Danke + Gruß

PeMue
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

Omega

Ich oute mich mal als Anfänger - glaube aber (ohne es probiert zu haben) das zum Anschließen doch etwas mehr benötigt wird.
ZitatDas LaCrosseGateway unterstützt jetzt auch optinal ein Nextion Display
Angeschlossen wir es so:
GPIO0: TXD -> Nextion RXD
GPIO2: RXD -> Nextion TXD
Anschluss direkt an 3.3V oder 5V? Oder wird noch mehr benötigt?

Nach dem erfolgreichen Anschluss des 1.3 OLED bin ich auf den Geschmack gekommen und habe mir vorsorglich auch schon mal ein Nextion besorgt  ;D.

LG
Holger
NUC6i3SYH (FHEM 5.8 in VM)
Homematic: HMLAN, HMUSB, HM-Sec-SD, HM-CC-RT-DN, HM-TC-IT, ... + diverse weitere
LaCrosseGateway, ESPEasy
ZWave

PeMue

Zitat von: Omega am 27 Dezember 2016, 10:56:58
Ich oute mich mal als Anfänger - glaube aber (ohne es probiert zu haben) das zum Anschließen doch etwas mehr benötigt wird.Anschluss direkt an 3.3V oder 5V? Oder wird noch mehr benötigt?
So wie ich das gelesen habe (bzw. vorbereiten werde) braucht man 5 V und GND noch zusätzlich und das Nextion Display sollte nicht mit 5 V Signalpegeln angesteert werden. Aber da streiten sich noch die Geister  :o

Gruß PeMue
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

HCS

Zitat von: Omega am 27 Dezember 2016, 10:56:58
direkt an 3.3V oder 5V? Oder wird noch mehr benötigt?

OK, mit PeMue überschnitten. Trotzdem ...

Es braucht eine 5V Spannungsversorgung (auf keinen Fall mit 3.3V betreiben). Die kann man an VIN vom DevKit abgreifen.
Und GND natürlich.

Zum Thema level shifter für RXD/TXD gehen die Meinungen auseinander.
Meine Meinung: man benötigt keinen. Ich messe auf der seriellen Schnittstelle des Displays 3.3V, was auch der Spezifikation entspricht.
Aber wer unsicher ist, kann ja selbst mal messen. Ich verwende keinen.

Ich schreibe das mal noch in Post #1 mit dazu.

PeMue: siehst Du passende Pfosten auf der Basisplatine vor?

PeMue

Zitat von: HCS am 27 Dezember 2016, 11:13:11
PeMue: siehst Du passende Pfosten auf der Basisplatine vor?
Ja, kommt ab der v1.1.
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

HCS

Zitat von: PeMue am 27 Dezember 2016, 11:36:19
Ja, kommt ab der v1.1.
Prima.

Jetzt sollten wir noch das Thema "level shifter" klären. Meine Meinung steht oben.
Gab es eigentlich im anderen Thread (will den jetzt nicht komplett lesen) ein Ergebnis?
Falls level shifter gewünscht, müsste der ja auch auf die Platine.

My-FHEM

Kann mann anstatt Nextion Display auch andere serial devices z.b. nanoCul für 433 somfy etc. anschliessen?
Das wäre dann für mich das ideale funk gateway.

Toole Entwicklung.

Gruß

HCS

Zitat von: My-FHEM am 27 Dezember 2016, 20:27:25
Kann mann anstatt Nextion Display auch andere serial devices z.b. nanoCul für 433 somfy etc. anschliessen?
Das sollte funktionieren. Auf der Setup page "Nextion display" nicht ankreuzen, dann hält sich das LGW aus dem Datenverkehr raus.
Da es eine soft serial ist, gehen aber nicht mehr als 57600 baud und die Latenz ist nicht so der Renner.
Aktuell git es auch noch keinen Firmware upload auf den angeschlossenen Arduino (so wie bei der bridge mit dem SC16IS750).

Einfach mal einen nanoCUL dran hängen und probieren.

PeMue

#9
Hallo,

ich habe im Platinen Thread im ersten Post den Schaltplan des LGW v1.1 angehängt.

@HCS: Bitte prüfe mal, ob die Belegung ok ist. Den Widerstand zur Erkennung habe ich ebenfalls eingefügt. Welchen Strom braucht denn das Display in etwa? Das würde ich noch gerne in den Schaltplan mit reinschreiben.

Gruß PeMue
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

HCS

Zitat von: PeMue am 28 Dezember 2016, 21:06:09
@HCS: Bitte prüfe mal, ob die Belegung ok ist. Den Widerstand zur Erkennung habe ich ebenfalls eingefügt. Welchen Strom braucht denn das Display in etwa? Das würde ich noch gerne in den Schaltplan mit reinschreiben.
Stromaufnahme hängt von der Größe ab. Lt. Nextion von 2.4" 90mA ... 7" 510mA bei jeweils 100% brightness.
Die Größen dazwischen habe ich jetzt nicht alle rausgesucht.

Ergänzen: "... do not assemble RADIO2, RADIO3 and DHT22"

Eigentlich müsste dann beim DHT22 stehen, dass man kein Nextion und kein RADIO3 bestücken darf.
Und bei RADIO2 und RADIO3 ...  ;)

Die Reihenfolge auf J4 würde ich an das Display anlehnen, dass man ein JST-Kabel ohne überkreuzte Adern verwenden kann, also:
+5V GPIO2 GPIO0 GND

Was mir gerade noch aufgefallen ist: wenn man einen USR-232 drauf hat, kommt man an den A0 nicht mehr dran.
Evtl. auf J2.6 den A0 drauf, anstatt GPIO0? Oder ein Pin mehr und dazu?

R9: würde ich dazuschreiben, wann man ihn bestücken soll. Und man sollte ihn auch bei voller Bestückung noch ein-/auslöten können.

PeMue


Hallo HCS,

hier ist der geänderte Schaltplan.
Zitat von: HCS am 29 Dezember 2016, 07:07:53
Stromaufnahme hängt von der Größe ab. Lt. Nextion von 2.4" 90mA ... 7" 510mA bei jeweils 100% brightness. Die Größen dazwischen habe ich jetzt nicht alle rausgesucht.
Ergänzen: "... do not assemble RADIO2, RADIO3 and DHT22"
Eigentlich müsste dann beim DHT22 stehen, dass man kein Nextion und kein RADIO3 bestücken darf. Und bei RADIO2 und RADIO3 ...  ;)
Ist ergänzt als genereller Kommentar in der Mitte. Stromaufnahme ist hinzugefügt.

Zitat von: HCS am 29 Dezember 2016, 07:07:53
Die Reihenfolge auf J4 würde ich an das Display anlehnen, dass man ein JST-Kabel ohne überkreuzte Adern verwenden kann, also:
+5V GPIO2 GPIO0 GND
Habe ich geändert und mit meinem Display verglichen. Dummerweise muss ich mit GPIO2 quer über die Platine  >:(

Zitat von: HCS am 29 Dezember 2016, 07:07:53
Was mir gerade noch aufgefallen ist: wenn man einen USR-232 drauf hat, kommt man an den A0 nicht mehr dran.
Evtl. auf J2.6 den A0 drauf, anstatt GPIO0? Oder ein Pin mehr und dazu?
Ich habe jetzt einen weiteren zweipoligen Pfostenstecker (GND, A0) eingefügt und mache den ganz links auf die Platine.

Zitat von: HCS am 29 Dezember 2016, 07:07:53
R9: würde ich dazuschreiben, wann man ihn bestücken soll. Und man sollte ihn auch bei voller Bestückung noch ein-/auslöten können.
Ist als SMD unterhalb vom LM75.

Gruß PeMue
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

HCS


viegener

Also wenn jemand Platinen davon macht, ich wäre interessiert!

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

HCS

Zitat von: viegener am 11 Januar 2017, 21:47:04
Also wenn jemand Platinen davon macht, ich wäre interessiert!
Platinen von was?