LaCrosseGateway mit Nextion Display

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

Vorheriges Thema - Nächstes Thema

HCS

Zitat von: amunra am 02 Februar 2017, 20:48:31
- Wenn das Nextion weg ist, dann erkennt das LGW es nicht.
Was bedeutet weg und was müsste nach der Erkennung passieren?

Zitat von: amunra am 02 Februar 2017, 20:48:31
- Nach der init und connect Phase schaltet das LGW immer noch auf page 0 und nicht auf LGW#main
Dann muss ich mal schauen, ob ich ein "page 0" irgendwo übersehen habe

Zitat von: amunra am 02 Februar 2017, 20:48:31
- Das Icon oben links heißt was genau? Mit einem AP verbunden? oder LGW ist in AP-Mode? Und warum wird auf dem OLED ein WiFi Symbol angezeigt und auf dem Nextion nicht.
Ja. Mit einem AP verbunden. Stimmt der Name? (LGW#wifi)

Zitat von: amunra am 02 Februar 2017, 20:48:31
- Wenn das LGW im "LGW-AP-Mode" ist, weil er keine Verbindung zum AP aufbauen konnte. Warum werden dann positive dBm Werte angezeigt. Warum ist das so?
Weil dann der ESP8266 mit +31dBm sendet.

Zitat von: amunra am 02 Februar 2017, 20:48:31
- Vorschlag für Uptime: Die Schriftart ist so breit und damit gut zu lesen, dass man auf die Leerzeichen zwischen Tg./Std./Min. verzichten kann.
Ich glaube, dass mir das dann auf dem Web-Frontend nicht gefällt.
Wenn, dann würde ich es so nur an das Nextion schicken. Aber Leerzeichen können doch nicht komplett verbannt werden  :o

PeMue

Hallo Jungs,

ich bin bei Eurer Diskussion raus ;), aber ich finde das toll, was Ihr macht!

Ähm, HCS
Zitat von: HCS am 01 Februar 2017, 10:15:08
- Zwei transparente Brücken mit z.B. CUL dran
...
- die Versorgung des Nextion mit eigenen Werten
- Die bridge (soft serial) für das Nextion

ist denn die eine Soft Serial (wenn vom Nextion belegt) dann noch für die zwei transparente Brücken verfügbar? Ich denke, es gibt nur zwei, oder?

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

amunra

#77
Zitat von: HCS am 02 Februar 2017, 21:34:14
Was bedeutet weg und was müsste nach der Erkennung passieren?
Keine Stromversorgung -ja, gibt es eigentlich nicht. Scheinbar wird das available nur bei der Instanziierung gesetzt? SendCommand("get \"NEXTION\""; ) und cpu2-Icon ist noch aktiv. Ich wollte nur daruaf hinweisen - deine Entscheidung, ob Du tätig werden möchtest. Ich würde, aber dem Thema keine große Bedeutung schenken, weil es selten vorkommen sollte => nur in der Entwicklungs Phase.
Zitat von: HCS am 02 Februar 2017, 21:34:14
Dann muss ich mal schauen, ob ich ein "page 0" irgendwo übersehen habe
vermutlich ja
Ich denke hier:
void Nextion::HideProgress() {
  SendCommand("page 0");
 
  Receive(1);
}

Zitat von: HCS am 02 Februar 2017, 21:34:14
Ja. Mit einem AP verbunden. Stimmt der Name? (LGW#wifi)
ja
Zitat von: HCS am 02 Februar 2017, 21:34:14
Weil dann der ESP8266 mit +31dBm sendet.
ok, verstanden und gut zu wisssen.
Zitat von: HCS am 02 Februar 2017, 21:34:14
Ich glaube, dass mir das dann auf dem Web-Frontend nicht gefällt.
Wenn, dann würde ich es so nur an das Nextion schicken. Aber Leerzeichen können doch nicht komplett verbannt werden  :o
Nextion-Extrawurst reicht vollkommen aus.  :-\
Danke.

amunra

Zitat von: HCS am 02 Februar 2017, 21:34:14
Ja. Mit einem AP verbunden. Stimmt der Name? (LGW#wifi)
Hinweis: Das OLED zeigt es falsch an und nicht das Nextion Display. Dies nur als Hinweis.

amunra

#79
LGW Nextion UI Version 0.5 (Beta)

HINNWEIS: Der volle Funktionsumfang ist erst ab der LGW Version 1.26 (Derzeit in Arbeit...) gegeben.

Wie versprochen gebe ich nun die Beta LGW NUI V0.5 frei. Ich möchte nicht mehr alleine leiden und vielleicht kommen neue Ideen?
Mit der Veröffentlichung des HMI-Files beginnt aber auch die fade-out Phase meinerseits.

Changelog:
=====================

- aus "Menu" wurde "Control Center" => Namensvorschläge sind gerne Willkommen.
- Page Manu wurde durch "control center" ersetzt und hat ein neues Layout
- Das Temp-Icon auf der Main-Page ist wieder da. Wer es nicht mag, der kann es mit "vaiTemp.val=1" deaktivieren (siehe initPage(x)). Default ist "an"
- Jede Nextion-Page schickt seine eigene Page-ID. Mithilfe 42_Nextion Funktion "initPage(n)" kann daruaf reagiert und z.B. Daten geschicken werden, wenn die entsprechende Seite geöffnet wird.

Probleme:
=====================

- mit 42_nextion lassen sich keine FHEM Device Attribute z.B. Alias auslesen. Ja, mit myUtils etc. - Vielleicht habe ich etwas übersehen?

Nächsten Schritte (meinerseits):
=====================

- Feedback einfangen und Bugfixing sowie recht kurzfrisitg die V1.0 veröffentlichen.

Hinweise Funktionsweise "Control Center":
===============================

Zielsetzung ist es Devices zu schalten und deren Status darzustellen.

Die Seite ist mit folgenden Labels versehen:
   Name (Typ-Textbox): lblT1 bis lblT5
   Status (Typ-Textbox): lblS1 bis lblS5
   Button (Dual-state button): cbt1 bis cbt5
   Buttons gibt es nur in zwei Farbausprägungen grau/weiß und grün

Wie funktioniert das ganze und was muss ich tun?

Voraussetzungen:

- Es exisitert ein FHEM Nextion Device mit dem namen "nextion"
- Nextion Attribut hasSendMe ist gesetzt (attr nextion hasSendMe 1)
- Attribut initCommands ist auf die Main Page gesetzt. (attr nextion initCommands page LGW#main)

Konzept:

1) Wenn das Device sein Status ändert z.B. "on/off" dann schickt es diesen direkt an das Display (Status und Button), damit bekommt man direkt Feedback auf der Display Seite, sobald ein Button betätigt wurde. Die Seite muss jedoch auf dem Display zu diesem Zeitpunkt geöffnet sein.
2) Der "Dual-state button" schickt bei "Touch Release Event" seinen "Namen" und den Status aus=0 an=1 - darauf wird mit einem weiteren Notify reagiert.
3) Bei Aufruf der entsprechenden Display Seite werden, Mithilfe der 42_Nextion Funktion initPage(n), die Device Daten gepushed

1) und 2) Folgende Notifies werden dafür benötigt. *Es müssen die entsprechenden "Device Namen" (LampeX) angepasst werden

# Notifies
################################
# Zeile 1
define Nex_L1_OnOff notify nextion.received:.H63.c..H62.b..H74.t..H31.1..H71.q..* { \
if($EVENT =~ /.*H01.H00.H00.H00$/){fhem "set Lampe1 on";;}elsif($EVENT =~ /.*H00.H00.H00.H00$/) {fhem "set Lampe1 off";;}}
define Nex_L1_IsOnOff notify Lampe1:(on|off) {if($EVTPART0 eq "on"){fhem "set nextion cmd lblS1.txt=\"$EVTPART0\"";;fhem "set nextion cmd cbt1.val=1";;}elsif($EVTPART0 eq "off"){fhem "set nextion cmd lblS1.txt=\"$EVTPART0\"";;fhem "set nextion cmd cbt1.val=0";;}}
# Zeile 2
define Nex_L2_OnOff notify nextion.received:.H63.c..H62.b..H74.t..H32.2..H71.q..* {if($EVENT =~ /.*H01.H00.H00.H00$/){fhem "set Lampe2 on";;}elsif($EVENT =~ /.*H00.H00.H00.H00$/) {fhem "set Lampe2 off";;}}
define Nex_L2_IsOnOff notify Lampe2:(on|off) {if($EVTPART0 eq "on"){fhem "set nextion cmd lblS2.txt=\"$EVTPART0\"";;fhem "set nextion cmd cbt2.val=1";;}elsif($EVTPART0 eq "off"){fhem "set nextion cmd lblS.txt=\"$EVTPART0\"";;fhem "set nextion cmd cbt2.val=0";;}}
# Zeile 3
define Nex_L3_OnOff notify nextion.received:.H63.c..H62.b..H74.t..H33.3..H71.q..* {if($EVENT =~ /.*H01.H00.H00.H00$/){fhem "set Lampe3 on";;}elsif($EVENT =~ /.*H00.H00.H00.H00$/) {fhem "set Lampe3 off";;}}
define Nex_L3_IsOnOff notify Lampe3:(on|off) {if($EVTPART0 eq "on"){fhem "set nextion cmd lblS3.txt=\"$EVTPART0\"";;fhem "set nextion cmd cbt3.val=1";;}elsif($EVTPART0 eq "off"){fhem "set nextion cmd lblS3.txt=\"$EVTPART0\"";;fhem "set nextion cmd cbt3.val=0";;}}
# Zeile 4
define Nex_L4_OnOff notify nextion.received:.H63.c..H62.b..H74.t..H34.4..H71.q..* {if($EVENT =~ /.*H01.H00.H00.H00$/){fhem "set Lampe4 on";;}elsif($EVENT =~ /.*H00.H00.H00.H00$/) {fhem "set Lampe4 off";;}}
define Nex_L4_IsOnOff notify Lampe4:(on|off) {if($EVTPART0 eq "on"){fhem "set nextion cmd lblS4.txt=\"$EVTPART0\"";;fhem "set nextion cmd cbt4.val=1";;}elsif($EVTPART0 eq "off"){fhem "set nextion cmd lblS4.txt=\"$EVTPART0\"";;fhem "set nextion cmd cbt4.val=0";;}}
# Zeile 5
define Nex_L5_OnOff notify nextion.received:.H63.c..H62.b..H74.t..H35.5..H71.q..* {if($EVENT =~ /.*H01.H00.H00.H00$/){fhem "set Lampe5 on";;}elsif($EVENT =~ /.*H00.H00.H00.H00$/) {fhem "set Lampe5 off";;}}
define Nex_L5_IsOnOff notify Lampe5:(on|off) {if($EVTPART0 eq "on"){fhem "set nextion cmd lblS5.txt=\"$EVTPART0\"";;fhem "set nextion cmd cbt5.val=1";;}elsif($EVTPART0 eq "off"){fhem "set nextion cmd lblS5.txt=\"$EVTPART0\"";;fhem "set nextion cmd cbt5.val=0";;}}


3) Die InitPage6 für das Nextion Modul (42_Nextion)

# 42_Nextion "InitPage6" - bei Aufruf der entsprechenden Seite werden die nachfolgenden Daten gepushed
################################
attr nextion initPage6 lblT1.txt="Lampe1:";;lblS1.txt="[Lampe1:state]";;cbt1.val={(return((ReadingsVal("Lampe1","state","off") eq "on")?1:0))};;lblT2.txt="Lampe2:";;lblS2.txt="[Lampe2:state]";;cbt2.val={(return((ReadingsVal("Lampe2","state","off") eq "on")?1:0))};;lblT3.txt="Lampe3:";;lblS3.txt="[Lampe3:state]";;cbt3.val={(return((ReadingsVal("Lampe3","state","off") eq "on")?1:0))};;lblT4.txt="Lampe4:";;lblS4.txt="[Lampe4:state]";;cbt4.val={(return((ReadingsVal("Lampe4","state","off") eq "on")?1:0))};;lblT5.txt="Lampe5:";;lblS5.txt="[Lampe5:state]";;cbt5.val={(return((ReadingsVal("Lampe5","state","off") eq "on")?1:0))}


Ja, mann kann es besser/geschickter/effizienter/... machen, es soll nur aufzeigen wie es funktioniert.

Bei Fragen, Anmerkungen oder Optimierungen einfach melden... noch geht es...

Viel Spaß...

HCS

#80
Zitat von: amunra am 04 Februar 2017, 17:08:58
Viel Spaß...
Passend dazu eine neue 1.26 Beta, in der nun hoffentlich der letzte "page 0" auch eliminiert ist.

Das "WiFi-Symbol auf OLED fehlt" Thema schaue ich mir dann noch an.

Geändert: Beta entfernt, neue weiter unten

amunra

Zitat von: HCS am 04 Februar 2017, 17:20:56
Passend dazu eine neue 1.26 Beta, in der nun hoffentlich der letzte "page 0" auch eliminiert ist.
Sieht gut aus, es läuft...  ;)

PeMue

Zitat von: HCS am 04 Februar 2017, 17:20:56
Passend dazu eine neue 1.26 Beta, in der nun hoffentlich der letzte "page 0" auch eliminiert ist.
Hm, dann muss ich doch mal endlich
- eine neue Platine bestücken und
- mein Nextion Display rauskramen.
Wenn nur nicht die diversen Termine am Wochenende wären  >:(

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: amunra am 04 Februar 2017, 17:41:23
Sieht gut aus, es läuft...  ;)

Aber nur fast.

Habe gerade:
"Uptime ohne Leerzeichen" eingebaut
uptime passt abertrotzdem nicht drauf. Die Sekunden sind abgeschnitten, trotz "ohne Leerzeichen". Soll ich die auch noch wegradieren?

Den Bug, dass das LGW nur dann das Nextion nach dem Booten auf die main page setzt, wenn man ein OLED angeschlossen hat, behoben.
Wie ich so einen Müll einbauen konnte ...  :o ;D ;D 

In Deiner Beschreibung oben sollte
- Attribut initCommands ist auf die Main Page gesetzt. (attr nextion initCommands LGW#main)
so aussehen:
- Attribut initCommands ist auf die Main Page gesetzt. (attr nextion initCommands page LGW#main)

Anbei ein neuer Anlauf.

HCS

Zitat von: PeMue am 04 Februar 2017, 18:15:38
Hm, dann muss ich doch mal endlich
Ich dachte, das passiert immer Nachts  ;D ;D ;D ;D

amunra

Zitat von: HCS am 04 Februar 2017, 18:41:38
"Uptime ohne Leerzeichen" eingebaut
uptime passt abertrotzdem nicht drauf. Die Sekunden sind abgeschnitten, trotz "ohne Leerzeichen". Soll ich die auch noch wegradieren?
Sekunden finde ich etwas overkill  ;) ;D -> also weg. Probleme treten sowieso bei Uptime über 100 Tage auf ;) Fällt nicht auf, wenn Du öfters neue Releases raus bringst  ;D

Zitat von: HCS am 04 Februar 2017, 18:41:38
In Deiner Beschreibung oben sollte
- Attribut initCommands ist auf die Main Page gesetzt. (attr nextion initCommands LGW#main)
so aussehen:
- Attribut initCommands ist auf die Main Page gesetzt. (attr nextion initCommands page LGW#main)
Habe es korrigiert - Danke.

Zitat von: HCS am 04 Februar 2017, 18:41:38
Anbei ein neuer Anlauf.
Probiere ich nachher...

HCS

Zitat von: amunra am 04 Februar 2017, 19:23:02
Sekunden finde ich etwas overkill  ;) ;D -> also weg.
OK.

Zitat von: amunra am 04 Februar 2017, 19:23:02
Probleme treten sowieso bei Uptime über 100 Tage auf ;) Fällt nicht auf, wenn Du öfters neue Releases raus bringst  ;D
Mist, da ist ein new-release-trigger mit 100 Tagen Intervall entstanden  :o
Das hat mir gerade noch gefehlt  ;D ;D

PeMue

Zitat von: HCS am 04 Februar 2017, 19:13:39
Ich dachte, das passiert immer Nachts  ;D ;D ;D ;D
Du weißst ja: 24/7 Service, wir tun alles für unsere Kunden  ;)
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

amunra

Zitat von: HCS am 04 Februar 2017, 18:41:38
Aber nur fast.
Irgendwo hat sich noch ein Fehlerteufel eingeschlichen - Nextion zeigt "+"dBm Werte an und IP: 0.0.0.0 und kein AP-Connect (Symbol nicht vorhanden) - OLED zeigt "+"dBm Werte an mit AP-connected.
Dies zu Info.

HCS

Zitat von: amunra am 04 Februar 2017, 21:32:30
Irgendwo hat sich noch ein Fehlerteufel eingeschlichen - Nextion zeigt "+"dBm Werte an und IP: 0.0.0.0 und kein AP-Connect (Symbol nicht vorhanden) - OLED zeigt "+"dBm Werte an mit AP-connected.
Ich habe es zur weiteren Analyse in die ToDo der 1.26 geschrieben.