LaCrosseGateway mit Nextion Display

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

Vorheriges Thema - Nächstes Thema

bitbiter

WOW! Das sieht echt genial aus.... Respekt vor soviel Kreativität!

Wenn ich meinen Senf dazu geben darf:
Ich bevorzuge all die dunklen Beispielscreens. Der Grund ist einfach: Nachts (und die werden vermutlich dann auch in Betrieb sein)
stört das grelle von dem blauen Beisoiel nicht so sehr. Das schwarze ist nachts und tagsüber mMn weitaus dezenter / unaufdringlicher.

Variante 1 ist mein persönlicher Favorit. Top!

Gruss
Alex
Raspi mit Homematic-CCU, KeyMatic mit FB, HM-SEC-MDIR-2, HM-Sec-Sco, HM-MOD-RPI-PCB, 2x LCGW m. CUL868 / CUL433. == BananaPi mit fhem + SSD, MAX! FK und TS, Cube read-only (demn. Umstieg --> CUL), mehrere TFA/LC Sensoren, Milight Controller + Bulbs, Revolt, ECO Taster, Home-Easy, ESP8266 etc....

HCS

Ich weiß auch gar nicht, wo ich zuerst hinschauen soll  ;D

Die sehen cool aus. Der Dunkel-Theorie kann ich mich anschließen.

Ich muss die nochmal in Ruhe anschauen, das kann man nicht "mal schnell" erfassen.

Der Hammer, was die Grafikabteilung drauf hat.

HCS

Variante 2 finde ich gut.

Fragen:

Ist der Hintergrund rgb 0,0,0?
Weil, falls transparente Icons immer noch nicht gehen, dann weiß man zumindest, wie man färben muss (und gut fände ich es eh)

Kommt da braun drin vor?
Weil, kann braun nicht ausstehen

Wird die "Dim/off/wieder on"-Geschichte Display-intern gecodet?

Die page mit dem progress wie in meinem Beispiel braucht man dann auch noch

Ich komme wohl erst am WE dazu, das tft mal auf das Display zu schieben, um es in echt zu sehen.

PeMue

Zitat von: HCS am 26 Januar 2017, 14:00:18
Weil, kann braun nicht ausstehen
Ok, dann ist braun für die Leiterplatten gestrichen  ;D
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 26 Januar 2017, 15:12:28
Ok, dann ist braun für die Leiterplatten gestrichen  ;D
Aber sowas von gestrichen.

amunra

Ok, es kristallisiert sich heraus, dass die Variante ,,Dunkel" bevorzugt wird...
Zitat von: HCS am 26 Januar 2017, 14:00:18
Ist der Hintergrund rgb 0,0,0?
Der Hintergrund ist RGB 42,42,42 und an das FHEM Dark Style (RGB 68,68,68) angelehnt bzw. etwas dunkler.
Zitat von: HCS am 26 Januar 2017, 14:00:18
Kommt da braun drin vor?
Weil, kann braun nicht ausstehen
Ja, da sind wir wieder an dem Punkt mit der Glaubensfrage (Geschmack) WiFi kommt mir nicht ins Haus nur LAN oder nur USB etc.
Ich weiß nicht, ob Braunanteile in der o.g. Farbkonstellation enthalten sind. Das kann aber gerne jemand (der Zeit hat, oder es weiß) beantworten.
Falls ,,Brauntöne" vorkommen, dann sind diese auf dem Display ehe nicht erkennbar. Schau dir das mal am WE in ,,echt" an.
Zitat von: HCS am 26 Januar 2017, 14:00:18
Wird die "Dim/off/wieder on"-Geschichte Display-intern gecodet?
Ja, dimmen geht, aber ich habe den Display ,,off und on" Dreh noch nicht raus. Bisher funktioniert nur ein off, dann muss das Display von der Stromversorgung damit es wieder angeht. Ich habe verstanden, dass es ein ,,off" gibt/geben soll und per Touch Event wieder eingeschaltet werden kann  – ich habe es bisher nicht geschafft – allerdings auch nicht allzu viel Zeit aufgewendet - es war nur eine Spielerei...
Zitat von: HCS am 26 Januar 2017, 14:00:18
Die page mit dem progress wie in meinem Beispiel braucht man dann auch noch
Schön, dass das einer bemerkt hat, ich wollte jedoch zunächst den schwierigen Teil erledigen. Der progress Teil ist unspektakulär...
Zitat von: HCS am 26 Januar 2017, 14:00:18
Weil, falls transparente Icons immer noch nicht gehen, dann weiß man zumindest, wie man färben muss (und gut fände ich es eh)
Soweit bin ich noch nicht, ich habe einen anderen Ansatz und ich muss noch prüfen, ob das mit der bisherigen LGW Implementierung überhaupt passt - und, ob das ganze überhaupt in das LGW Konzept passt.

HCS

Zitat von: amunra am 26 Januar 2017, 22:58:31
ich habe einen anderen Ansatz und ich muss noch prüfen, ob das mit der bisherigen LGW Implementierung überhaupt passt - und, ob das ganze überhaupt in das LGW Konzept passt.
Ist der Ansatz FullSize-Background mit dem kompletten Gemälde, crops und hotspots?

CarstenF

Zitat von: HCS am 27 Dezember 2016, 00:27:04
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


Hallo zusammen,
Nachdem ich das erste Nextion über esp-link erfolgreich zum laufen gebracht habe, wollte ich das über das LaCrosse GW auch mal versuchen. Ich bekomme allerdings keine Werte beim drücken von Buttons. Ich habe die Version 1.25 auf meinen nodemcu geflasht und ins Netz eingebunden. Das Display mit dem Modul Nextion signalisiert mir open, das LGW defined über das LGW Modul, signalisiert mir "initialized".  Angeschlossen habe ich das Display über TXD/RXD crossover am nodemcu und VIN und GND. Kann es an der FW Version des LGW liegen oder mache ich da jetzt noch einen anderen Denkfehler? 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....

HCS

Zitat von: CarstenF am 28 Januar 2017, 19:56:32
Angeschlossen habe ich das Display über TXD/RXD crossover am nodemcu und VIN und GND.
Was dann völlig falsch wäre.
Das nextion wird so angeschlossen:
ZitatGPIO0: TXD -> Nextion RXD
GPIO2: RXD -> Nextion TXD
Wie es in meinem Beitrag, den Du zitiert hast, gleich am Anfang drin steht

CarstenF

Hallo HCS, Danke für die Antwort. Habe ich zuerst natürlich auch so angeschlossen. Hatte ich nicht erwähnt. Aber auch da kamen keine Daten vom Display. Bin dummerweise gerade nicht am Gerät. Ich werde morgen mal das Device löschen und erneut definieren. Auf Deinen Bildern hast Du die 1.24 er FW. Das könnte kein Grund sein? 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....

HCS

Muss mit 1.24 und 1.25 funktionieren.
Wenn es wieder dran ist (wie es soll), dann schau mal auf der Hardware page des LGW Frontend, ob da das Nextion erkannt wurde.

amunra

Display GUI (Alpha) Version 0.3

Übersicht:
Es gibt eine:
- "Boot" Seite
- "Progress" Seite
- "Main" Seite
- "Info" Seite
- "Settings" Seite
- "Menü" Seite (Sammlung von Buttons die auf Unterseiten "Wohnzimmer, Schlafzimmer, Bad, Heizung, Verbrauch etc." verweisen)

Was geht:

- eigentlich alles  ;)
- Display Dimmen - (Spielerei)
- Display schaltet sich nach 10 sek ab - wenn kein touch event. (Optional/Manuell: Siehe Settings Page) - (Spielerei)
- Uhrzeit kann an Textbox "tHour" geschickt werden
- Datum kann an Textbox "tDate" geschickt werden
- Dynamische Icons: Wenn Werte "temp, hum, pres, wind(out_ws), TempOut(out_t), FHEM, WiFi, CPU1,CPU2" gesendet werden, dann werden auch die Icons eingeblendet

Probleme:
- Massive Probleme mit Schriftarten  ::)
- Nextion Script kann kein String split
- (*1) Mit ein paar Werten die das LGW liefert bsp. temp, hum etc. werden ohne units gesendet (bzw. konfigurierbar über setup-page) rssi werden grds. mit unit gesendet.
- (*2) LGW LGW#prog wird direkt angesprochen/adressiert, das sollte mit der Page0 "Main" analog erfolgen.
- LGW sendet "wert-leerzeichen-unit" das Leerzeichen macht bei der aktuellen Schriftart Probleme -> ich bin noch auf der Suche bzw. probiere noch andere Schriftarten aus.
- Für die Basic/Enhanced/Intelligent Displays sind aus Firmware Sicht nicht kompatibel. Heißt: Pro Version eine Firmware. Das Gute 2.4" und 2.8" haben die gleiche Auflösung.

Wünsche:
- Auf der Infos Seite die LGW Version -> das LGW sendet "nur die Version" an "tInfo01.txt" -> Dann würde auf der Info Seite "Version, IP, FPM, Heap" stehen. Vorschläge für weitere Werte? z.B. Uptime?

(*1) Idee ist, abhängig von den Werten -90dBm, dann ist links in der Ecke die signalstärke weniger und evtl. rot bzw. die Schrift rechts "xyz dBm" = "rot".
(*2) Hintergrund ist, dass ich eine Boot Seite einblenden möchte Page0, diese ist jedoch belegt (Hauptseite). Aus diesem Grund musste ich einen Workaround bauen - unschön.

Hinweise zur Firmware:
"Nextion_LGW_24_28_E_0.3.zip" => 2,4"/2,8" Enhanced Version
"Nextion_LGW_24_28_B_0.3.zip" => 2,4"/2,8" Basic Version

Anregungen zur Umsetzung -> Farben, Icons etc. gerne melden.

amunra

Zitat von: HCS am 28 Januar 2017, 19:46:05
Ist der Ansatz FullSize-Background mit dem kompletten Gemälde, crops und hotspots?
Ja - Der Ansatz ist "alles mit einem Tool zu bauen" und möglichst den sehr sehr Bescheidenen Nextion Editor vermeiden. ;) :D

amunra


PeMue

Zitat von: amunra am 29 Januar 2017, 00:24:43
Hier auch noch ein Video...
Cool, das muss ich mal probieren. Aber erst geht es ans Bestücken der LGW Platinen, ausnahmsweise sind heute mal keine Termine  :D
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