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

#60
Zitat von: rippi46 am 01 Mai 2016, 17:30:45
Hallo viegener,

ich habe mir auch ein Display (3,2") gekauft.
Leider bekomme ich dein Beispiel nicht so richtig zum laufen.
Habe dann einfach eine Seite mit dual-state-buttons angelegt.
Mit einem DOIF frage ich den Status ab. Eine Lampe kann ich auch schon damit schalten.
Leider habe ich das Problem, dass bei einem reopen oder wenn das Display auf Seite 1 wechselt die Lampe ein und ausgeschaltet wird.

Wie kann ich das verhindern?
Wie bekomme ich den aktuellen Status der Lampe im Display angezeigt?

Gruß rippi

Das Beispiel ist ja für ein 2,4'' Display und leider sind auch die Bilder in der entsprechenden Grösse, so dass das nicht einfach übertragbas sein dürfte.

Dualstatebutton ist schon ein guter Ansatz (Ein Bild für an und ein Bild für Aus). Warum Dein DOIF die Lampe ein- und ausschaltet kann ich so nicht sagen, hier mal ein Hinweis wie ich das umsetze:

Annahme der button auf dem Display heisst door und der Status ist im device tuer_wf. Dann kannst Du für page 1 (initPage1) folgendes eintragen:

door.val={(return ( ( ReadingsVal("tuer_wf","state","off") eq "on" )?1:0)  )};

Damit wird beim Aufruf der Seite der Status entsprechend auf den Status gesetzt.
Um bei jeder Änderung noch den Status zu setzen kann man ein notify verwenden:

define notify_tuer_wf notify tuer_wf:.* set nxt1_eingang cmd door.val={(return ( ( ReadingsVal("tuer_wf","state","off") eq "on" )?1:0)  )}

Das kann mann sicher auf eine Lampe einfach übertragen durch anpassen von Devicename und Status. Möglicherweise muss im notify noch der eventfilter anders definiert werden.

Damit man aber den Status des Buttons nicht von Hand ändert lege ich bei reinen Anzeigen noch einen "hotspot" darüber, dann kann die Taste nicht gedrückt werden.

Ansonsten kann man aber auch die Lampe umschalten, in dem der Knopf NACH Betätigung (release event) seinen aktuellen Wert schickt.
Ich habe für so etwas im Release event folgenden Code (Nextion editor):

print "$door.val "
get door.val


Auf einen Event mit recText: door.val kann man dann reagieren und wenn der Wert (da steht dann 1 oder 0) vom Zustand der Lampe abweicht die Lampe schalten. Dazu habe ich nur gerade keinen fertigen Code.

Vermutung: Es kann natürlich sein, dass Dein Display am Anzeigen der Seite erstmal den Status 0 setzt und auch meldet und danach wird der Zustand 1 vom DOIF gesetzt und dann die Lampe durch die Änderung auch wieder eingeschaltet. Wie gesagt ohne Code ist das aber nicht klar.

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

rippi46

Hallo viegener,

dank deiner Unterstützung habe ich es jetzt endlich geschafft sowohl den Status anzuzeigen als auch die Lampe zu schalten.
Ich habe in einem DOIF auf die pressed message im received ReadingsVal reagiert und dann ein toggle bei der Lampe durchgeführt.

Gruß rippi
FHEM, LMS, VDR ,Dell 9010 Ubuntu 20.04,Raspimatic, HM/HMIP, Max, Elro, Brennenstuhl u. Intertechno mit Connair.
Picoreplayer, Raspi IR-Lanadapter, Firmata(wifi), LaCrosse,
nanocul433, nanocul868, Signalduino, Connexoon,
MySensor-GW+Sensoren, RGBWW, Zigbee2mqtt,Xiaomi,Nextion,LEDMatrix,Alexa

rippi46

Hallo viegener,

gibt es eigentlich eine Möglichkeit auch Bilder, die nicht im Speicher vom Display liegen anzuzeigen.
Quasi eine Uploadfunktion.

Gruß rippi
FHEM, LMS, VDR ,Dell 9010 Ubuntu 20.04,Raspimatic, HM/HMIP, Max, Elro, Brennenstuhl u. Intertechno mit Connair.
Picoreplayer, Raspi IR-Lanadapter, Firmata(wifi), LaCrosse,
nanocul433, nanocul868, Signalduino, Connexoon,
MySensor-GW+Sensoren, RGBWW, Zigbee2mqtt,Xiaomi,Nextion,LEDMatrix,Alexa

viegener

Ich habe auch bisher keine Möglichkeiten gefunden Bilder zur Laufzeit auf das Display zu transferieren. Es gibt zwar die Möglichkeiten zu malen aber das ist natürlich keine Variante um ein Bild zu übertragen.
Kein Support über PM - Anfragen gerne im Forum - Damit auch andere profitieren und helfen können

rippi46

Hallo viegener,

habe immer wieder solche Meldungen unter cmdResult stehen.

Timeout reading answer for get bt0.val=0

Hast du eine Idee woran das liegen kann?


Habe mein Display schlafen gelegt. Wenn sich sich in der Zwischenzeit der Status einer Lampe ändert bekommt es das nicht mit.

Habe es jetzt so gelöst.

define d_display DOIF ([IT_0FFF0FF0FF:.*] or [W_Display:received] eq "H87") (set W_Display cmd bt0.val={(return ( ( ReadingsVal("IT_0FFF0FF0FF","state","on") eq "off" )?0:1) )})
attr d_display do always
attr d_display wait 1:1


Gruß rippi
FHEM, LMS, VDR ,Dell 9010 Ubuntu 20.04,Raspimatic, HM/HMIP, Max, Elro, Brennenstuhl u. Intertechno mit Connair.
Picoreplayer, Raspi IR-Lanadapter, Firmata(wifi), LaCrosse,
nanocul433, nanocul868, Signalduino, Connexoon,
MySensor-GW+Sensoren, RGBWW, Zigbee2mqtt,Xiaomi,Nextion,LEDMatrix,Alexa

viegener

Zitat von: rippi46 am 03 Mai 2016, 22:54:01
Hallo viegener,

habe immer wieder solche Meldungen unter cmdResult stehen.

Timeout reading answer for get bt0.val=0

Hast du eine Idee woran das liegen kann?


Ja, beim Absetzen von Befehlen an das Display wird  auf eine Antwort vom Display gewartet. Wenn diese nicht eintrifft, kommt die entsprechende Meldung. Ich habe im ersten Beitrag eine neue Version hochgeladen, da gibt es ein Attribut, um das Erwarten von Antworten abzuschalten --> Dazu das Attribut: expectAnswer auf 0 setzen.



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

UweH

Moin,

nachdem ich zur Freude meiner Frau den ganzen Tag mit dem Display verbracht habe, brauche ich nun wohl doch noch ein paar Tipps...ich komme nicht weiter bzw. mir fehlt irgendwo noch eine entscheidende Information oder Einstellung...  >:(

Die Verbindung zum EPS8266 steht, list sagt folgendes:

Internals:
   Clients    :NEXTION:
   DEF        192.168.xxx.xxx:80
   DeviceName 192.168.xxx.xxx:80
   FD         5
   NAME       nxt
   NR         49
   PARTIAL
   STATE      opened
   TYPE       Nextion
   Matchlist:
     1:NEXTION  .*
   Readings:
     2016-05-22 19:13:24   cmdResult       empty
     2016-05-22 19:13:24   cmdSent         t1.txt="Test"
     2016-05-22 19:10:55   state           opened
Attributes:
   room       Nextion


Wenn ich einen Befehl absetze, blinkt die blaue LED am ESP kurz, der Befehl wird aber nicht ausgeführt. Der Levelshifter funktioniert, über den habe ich auch per USB-RS232-Adapter auf den ESP zugegriffen.
Auf dem seriellen Monitor bekomme ich beim Absetzen eines Befehls folgende Meldungen:

+IPD,0,9:page 1ÿÿÿ
+IPD,0,16:t1.txt="Test"ÿÿÿ

usw...

Da kommt also was an.
Ich vermute, dass ich die Einstellungen auf dem ESP nicht korrekt gesetzt habe. Welche Konfiguration ist richtig? TCP-Server?
Und vielleicht kann mir auch noch jemand die Frage beantworten, was ich tun muss, damit nach dem Abklemmen der Stromversorgung des ESP das Ding wieder im richtigen Modus startet. Das habe ich aus dem ganzen Wust der Informationen zu dem Teil noch nicht rausfiltern können.

Danke und Gruß
Uwe


rippi46

Hallo UweH,

ich denke du darfst nicht über Port 80 gehen, sondern du musst den Port 23 in deiner Definition nehmen.

Gruß

rippi
FHEM, LMS, VDR ,Dell 9010 Ubuntu 20.04,Raspimatic, HM/HMIP, Max, Elro, Brennenstuhl u. Intertechno mit Connair.
Picoreplayer, Raspi IR-Lanadapter, Firmata(wifi), LaCrosse,
nanocul433, nanocul868, Signalduino, Connexoon,
MySensor-GW+Sensoren, RGBWW, Zigbee2mqtt,Xiaomi,Nextion,LEDMatrix,Alexa

UweH

Danke für den Tipp, aber das war`s leider nicht. Mit Port 23 habe ich exakt das Gleiche Ergebnis.

Gruß
Uwe

rippi46

Hallo UweH,

welches Esp-Modul verwendest du?
Welch Software benutzt du auf dem Esp?
Welche Baudrate hast du eingestellt?

Gruß rippi
FHEM, LMS, VDR ,Dell 9010 Ubuntu 20.04,Raspimatic, HM/HMIP, Max, Elro, Brennenstuhl u. Intertechno mit Connair.
Picoreplayer, Raspi IR-Lanadapter, Firmata(wifi), LaCrosse,
nanocul433, nanocul868, Signalduino, Connexoon,
MySensor-GW+Sensoren, RGBWW, Zigbee2mqtt,Xiaomi,Nextion,LEDMatrix,Alexa

UweH

Hallo rippi,

ich komm der Sache näher. Ich habe jetzt mal einen meiner WLAN-OneWire-Interfaces missbraucht und den DS2480 rausgeschmissen und dort das Display angeschlossen...siehe da, es läuft. Also ist die Konfiguration des ESP8266 nicht korrekt.
Mit "AT+GMR" bekomme ich folgende Meldung:

AT version:0.40.0.0(Aug  8 2015 14:45:58)
SDK version:1.3.0
Ai-Thinker Technology Co.,Ltd.
Build:1.3.0.2 Sep 11 2015 11:48:04

Sagt mir jetzt nicht so viel.

Ich starte per Terminal mit
AT+CIPMUX=1
AT+CIPMODE=1
AT+CIPSERVER=1,23

den TCP-Server. Das funktioniert ja auch bis dahin, dass das Nextion-Modul "opened" meldet. Das war es dann auch.
Aus Deiner Frage schließe ich, dass es eine für diesen Zweck geignetere Software gibt. Welche wäre das denn?

Danke und Gruß
Uwe


UweH

Zitat von: kvo1 am 12 April 2016, 12:41:12
Den BSN10A scheint es nirgendwo zu geben (Ausverkauft) ! Gibt´s da eine Alternative ?
Der 2N7000 ist überall erhätlich (z.B. Reichelt oder Conrad...man vergleiche mal die Preise...) und ersetzt den BSN 10 problemlos. Habe ich getestet.

Gruß
Uwe

rippi46

Hallo UweH,

Ich verwende in meine Konfiguration eine ESP-07
http://www.ebay.com/itm/331540427935?rmvSB=true

bzw ein DevKit
http://www.ebay.com/itm/311413475392?rmvSB=true

als Software habe ich ESP-Link auf dem ESP-07
https://github.com/jeelabs/esp-link

in der Version 2.2 beta2

und als Verbindung zwischen ESP-Modul und Display verwende ich einen normalen Levelshifter
http://www.ebay.com/itm/181572335264?rmvSB=true

betrieben wird das ESP-Modul im esp-bridge Modus

Gruß rippi
FHEM, LMS, VDR ,Dell 9010 Ubuntu 20.04,Raspimatic, HM/HMIP, Max, Elro, Brennenstuhl u. Intertechno mit Connair.
Picoreplayer, Raspi IR-Lanadapter, Firmata(wifi), LaCrosse,
nanocul433, nanocul868, Signalduino, Connexoon,
MySensor-GW+Sensoren, RGBWW, Zigbee2mqtt,Xiaomi,Nextion,LEDMatrix,Alexa

UweH

Danke, ich werde die Software mal draufpacken und testen.

kvo1

Zitat von: UweH am 23 Mai 2016, 19:35:47
Der 2N7000 ist überall erhätlich (z.B. Reichelt oder Conrad...man vergleiche mal die Preise...) und ersetzt den BSN 10 problemlos. Habe ich getestet.

Gruß
Uwe
Hallo Uwe,
danke für die Info, dann geh ich mal zu Conrad  :)

Gruß
Klaus
RPi1: mit CUL: HM-CC-RT-DN,HM-ES-PMSw1-Pl,HM-LC-BL1-FM,HM-LC-Bl1PBU-FM,HM-LC-SW1-PL2,HM-SCI-3-FM,HM-SEC-SC-2,KFM-Sensor
RPi2: Viessmann(optolink) mit 99_VCONTROL.pm,
Cubietruck: Wheezy / Apache / Owncloud
Cubietruck: Armbian(Jessie) / fhem 5.7 / LMS 7.9
RPi3: (Test) mit 7" Touch  &  HM-MOD-RPI-PCB