Nextion-Display Anbindung über WiFi mit ESP8266

Meine Displaymeldungen an IP-Symcon sind reine Print Meldungen, ich nehme keine ID’s.

Deshalb ist meine Cuttereinstellung anders, ich werte ein Semikolon aus, zB meldet mein Display beim Touchfeld-loslassen über die ser Ausgabe

print „Eg Flur Licht;“

Und ich werte das Semikolon aus.
Gruß Helmut

Danke
Wie sieht deine Cutter Einstellung aus?

Gesendet von iPhone mit Tapatalk

Ganz einfach:
linker Cutter: nichts eintragen
rechter Cutter: Hex-Haken wegnehmen, Semikolon eingeben und speichern
Hier auch zusehen
Gruß Helmut

Edit: ein Auszug meines Auswerte Script, Du müsstest dann die Befehle der ser Schnittstelle nehmen, die Auswerte Strings anpassen und die ID’s anpassen. Schalt ID ist meine Schaltvariable, Display ID ist meine Client Instanc, bei seriellen Empfang von „Essz Licht“ wird die Variable getoogelt und der Zustand dem Display mitgeteilt.
Edit: Wenn Du ein ESP nimmst, kannst Du das Script so nehmen
Du mußt per ser. Befehle senden, also mit SPRT_SendText statt CSCK_SendText mit der seriellen Schnittstelle arbeiten

$SchaltID=40088 /[HMI Display\EG\Essz Leuchte]/;
$DisplayID=30032 /[HMI Display Client Socket]/;
if((getvalueString(21581 /[HMI Display\Auswertungen\HMI Text Empfang]/) == „Essz Licht“)) {

SetValueBoolean($SchaltID, !GetValueBoolean($SchaltID));
$Zustand = GetValueBoolean($SchaltID);
if ($Zustand == true) {
//echo „EIN“;
CSCK_SendText($DisplayID, „EG.b0.bco=65504“."\xFF\xFF\xFF"); //Sendet eine andere farbe für button 0
CSCK_SendText($DisplayID, „EG.b0.txt=„1"“.“\xFF\xFF\xFF" );
}
else

{
//echo „Aus“;
CSCK_SendText($DisplayID, „EG.b0.bco=50712“."\xFF\xFF\xFF"); //Sendet eine andere farbe für button 0
CSCK_SendText($DisplayID/[HMI Display Client Socket]/, „EG.b0.txt=„0"“.“\xFF\xFF\xFF" );
}
}

Bis jetzt kommen noch keine Daten :frowning:

über welches Modul kann ich Daten zurück schreiben?

Ich nutze kein Modul von IP-Symcon, meine Anwendung ging früher über die serielle Schnittstelle, jetzt mit Wemos als Client, der die seriellen Daten zum und vom Display übernimmt.

Eine Anleitung findest Du hier, und mein BeispielProjekt kannst Du da auch sehen
Gruß Helmut

möchte mein ESP nochmals ganz löschen.

Mit dem ESPlorer geht das nicht wirklich :frowning:

Das ESP verbindet sich immer als WLAN Client :frowning: obwohl ist eine neue BIN hochgeladen habe.

Verstehe das Prinzip noch nicht so ganz.

glg

Manuela

Dieses File für einen Wemos kann ich Dir anbieten, damit arbeite ich
Gruß Helmut

ESP_Tenet2Seriel_Test_Helmut - Kopie.zip (1.12 KB)

Hoi Helmut

Super mit deinem Prog kommt was an :slight_smile:

Leider nur zahlen und noch kein print im Klartext wie in deinem Beispiel…

Immerhin etwas…

Zahlen… weil Du im Debug noch Hex-Zeichen angewählt hast? klicke da mal drauf rum
Port 21 ?
Gruß Helmut
Hier mein Baum mit Cutter und Script angabe

Baum.jpg

Hey du bist gut…

Danke

Die Daten komme so zerstückelt:

K
K
unde;
Kunde;

(manchmal fehlt was)

Etwas mühsames habe ich noch…

Wenn ich den ESP neu starte muss ich die Client Socket deaktivieren/aktivieren im ips :frowning: sonst kommt nichts…

Versuche noch die LED auf dem Bord einzuschalten wenn WLAN ok ist. Für eine optische Kontrolle.

Ja, das habe ich auch, auch im laufendem Betrieb, dass er sich verabschiedet, ich pinge das Teil ständig an :wink:
Gibt sicher bessere Lösungen, aber es geht… $da ist meine Zustandsvariable, mache ich alle 15 Sek

  <?
$da=Sys_Ping("IP ADR",20); //
echo $da;
?>  

Danke

Das mit dem Register Variable check ich nicht so ganz…

Versuche es mal zu verstehen.

Ziel ist es einfach wenn ich den Button Kunde drücke eine Var Boolean im IPS zu aktivieren.

Meine Configuration ist so:
Der Cutter hat die übergeordnete Instanz HMI Client, eine Registervariable die übergeordnete Instanz HMI Cutter und als Zielscript die Registervar-Auswerterei im nachfolgendem Script,

 <?
// wenn das Skript von einer RegisterVariable-Instanz aus aufgerufen worden ist
if ($_IPS['SENDER'] == "RegisterVariable")
{
    // bereits im Puffer der Instanz vorhandene Daten in $data kopieren
    $data  = RegVar_GetBuffer($_IPS['INSTANCE']);
    // neu empfangene Daten an $data anhängen
    $data .= $_IPS['VALUE'];
SetValueString(21581 /*[HMI Display\Auswertungen\HMI Text Empfang]*/,$data);
}
?>  

Das vorhin gepostete Script wird bei Stringvariablenänderung der vom Display gefütterten Stringvariable ID:21581 getriggert wird.
Mitgekommen?

Danke Helmut ich versuche es mal sonst schreibe ich…

Mein Kopf ist bisschen überlastet ^^^^^

Bei Dir ist sicher vieles automatisiert Zuhaue :slight_smile:

äh, nöö. Ich bastel nur gerne.
Wenn es sinnvoll ist, bleibt es.
Wenn nicht, kommt’s in den Karton der tausend Projekte… Vieles braucht man nicht, ist aber schön, wenn es funktionierte :wink:
Gruß Helmut

Hey Helmut ich schnalle es heute nicht mehr…

Du bist cool!!!

Ich hoffe Deine bessere Hälfte mag das zu schätzen…

glg

Hilfe, ich kann die var sys1 nicht mit eins beschreiben auf dem Display…

CSCK_SendText(59903 /[Client Socket Nextion-Display]/, „sys1=1“ \xFF\xFF\xFF");

habs gelöst.

Punkt fehlte…

Nun mach mal einen Punkt

Scherz: Du mußt zwischen der Anweisung und den 3 FF’s einen Punkt machen :wink:
zB
CSCK_SendText($DisplayID, „dim=100“."\xFF\xFF\xFF");
Gruß Helmut
Edit: Du hast es selbst gesehen, und? Klappt es jetzt mit dem Display so einigermaßen?

Ja doch bis auf das

<?
$da=Sys_Ping(„IP ADR“,20); //
echo $da;
?>

und die Auswertung…

Was kommt beim $da rein irgenwo muss ich meine IPS Status Var. angeben oder nicht?

Wünsche Dir einen schönen Abend…