Ich bin zu dem Entschluss gelangt, dass die "GET" -Methode in meinem Anwendungsfall geeigneter ist.
(Basis meiner Entscheidungsfindung siehe: GET und POST: Unterschiede und Anwendungen - Blog - Der Foobar Blog | Webentwicklung mal ganz einfach!
und https://www.ionos.at/digitalguide/websites/web-entwicklung/get-vs-post/)
Um meinen Eingangspost in dem ich meinen Anwendunsfall beschrieben habe zu ergänzen, bzw. vereinfacht darzustellen,
Wenn ich von einem anderen (internen) Client,
via Terminal "wget -O /dev/null http://Arduino.Webserver/?rs1=up" (curl -O /dev/null http://Arduino.Webserver/?rs1=up)
oder via Browser "http://Arduino.Webserver/?rs1=up"
aufrufe,
soll der Arduino den Befehl ausführen, d.h. das Signal (mittels 433Mhz Sender)
an den entsprechenden Raffstore (rs1=up ist Raffstore 1 hoch) senden.
Ich habe nun wie von Dir empfohlen damit begonnen,
die Webseite zu säubern und die Fixtexte in den Flash-Speicher zu verschieben.
Diese Maßnahmen haben für sich genommen schon einen Performancegewinn gebracht!
Kannst du mir eventuell noch ein paar Tipps geben, wie ich im derzeitgen Code "Funktionen" bzw. "Schleifen" umsetzen kann?
Ich nehme an dass ich mit einer Funktion auch das von Dir angemerkte "weniger ClientPrints" erreiche korrekt?
#include <RCSwitch.h>
#include <SPI.h>
#include <Ethernet.h>
#include <Flash.h>
byte mac[] = { 0x1C, 0xA3, 0x06, 0xA5, 0x19, 0xEC };
IPAddress ip(192, 168, 1, 118);
EthernetServer server(80);
String readString = String(100); // string for fetching data from address
RCSwitch mySwitch = RCSwitch();
void setup()
{
Ethernet.begin(mac, ip);
server.begin();
mySwitch.enableTransmit(10); //Transmitter connected ArduinoUNO DigitalPin #10
}
void loop(){
// Create a client connection
EthernetClient client = server.available();
if (client) {
while (client.connected()) {
if (client.available()) {
char c = client.read();
if (readString.length() < 100)
{
readString = readString + c;
}
if (c == '\n')
{
if(readString.indexOf("rs1=up") > -1) {
mySwitch.sendMC("SxxxxxxxxSxxxxxxxxxSxxxxxxxxxS",1780,5000,10,10000); //rs1 UP
}
if(readString.indexOf("rs1=down") > -1){
mySwitch.sendMC("SxxxxxxxxSxxxxxxxxxSxxxxxxxxxS",1780,5000,10,10000); //rs1 DOWN
}
if(readString.indexOf("rs1=gapup") > -1) {
mySwitch.sendMC("SxxxxxxxxSxxxxxxxxxSxxxxxxxxxS",1780,5000,3,10000); //rs1 GAPUP Spaltoeffnung
}
if(readString.indexOf("rs1=gapdown") > -1){
mySwitch.sendMC("SxxxxxxxxSxxxxxxxxxSxxxxxxxxxS",1780,5000,3,10000); //rs1 GAPDOWN Spaltoeffnung
}
if(readString.indexOf("rs2=up") > -1) {
mySwitch.sendMC("SxxxxxxxxSxxxxxxxxxSxxxxxxxxxS",1780,5000,9,10000); //rs2-TUER UP
}
if(readString.indexOf("rs2=down") > -1){
mySwitch.sendMC("SxxxxxxxxSxxxxxxxxxSxxxxxxxxxS",1780,5000,9,10000); //rs2-TUER DOWN
}
if(readString.indexOf("rs2=gapup") > -1) {
mySwitch.sendMC("SxxxxxxxxSxxxxxxxxxSxxxxxxxxxS",1780,5000,3,10000); //rs2-TUER GAPUP Spaltoeffnung
}
if(readString.indexOf("rs2=gapdown") > -1){
mySwitch.sendMC("SxxxxxxxxSxxxxxxxxxSxxxxxxxxxS",1780,5000,3,10000); //rs2-TUER GAPDOWN Spaltoeffnung
}
if(readString.indexOf("rs3=up") > -1) {
mySwitch.sendMC("SxxxxxxxxSxxxxxxxxxSxxxxxxxxxS",1780,5000,9,10000); //rs3 UP
}
if(readString.indexOf("rs3=down") > -1){
mySwitch.sendMC("SxxxxxxxxSxxxxxxxxxSxxxxxxxxxS",1780,5000,9,10000); //rs3 DOWN
}
if(readString.indexOf("rs3=gapup") > -1) {
mySwitch.sendMC("SxxxxxxxxSxxxxxxxxxSxxxxxxxxxS",1780,5000,3,10000); //rs3 GAPUP Spaltoeffnung
}
if(readString.indexOf("rs3=gapdown") > -1){
mySwitch.sendMC("SxxxxxxxxSxxxxxxxxxSxxxxxxxxxS",1780,5000,3,10000); //rs3 GAPDOWN Spaltoeffnung
}
if(readString.indexOf("rs4=up") > -1) {
mySwitch.sendMC("SxxxxxxxxSxxxxxxxxxSxxxxxxxxxS",1780,5000,10,10000); //rs4 UP
}
if(readString.indexOf("rs4=down") > -1){
mySwitch.sendMC("SxxxxxxxxSxxxxxxxxxSxxxxxxxxxS",1780,5000,10,10000); //rs4 DOWN
}
if(readString.indexOf("rs4=gapup") > -1) {
mySwitch.sendMC("SxxxxxxxxSxxxxxxxxxSxxxxxxxxxS",1780,5000,3,10000); //rs4 GAPUP Spaltoeffnung
}
if(readString.indexOf("rs4=gapdown") > -1){
mySwitch.sendMC("SxxxxxxxxSxxxxxxxxxSxxxxxxxxxS",1780,5000,3,10000); //rs4 GAPDOWN Spaltoeffnung
}
//--------------------------HTML------------------------
client.println("HTTP/1.1 200 OK");
client.println("Content-Type: text/html");
client.println();
client.print("<body>");
client.println(F("RS1
"));
client.println(F("<form method=get><input type=submit name=rs1 value='up'></form>"));
client.println(F("<form method=get><input type=submit name=rs1 value='down'></form>"));
client.println(F("<form method=get><input type=submit name=rs1 value='gapup'></form>"));
client.println(F("<form method=get><input type=submit name=rs1 value='gapdown'></form>"));
client.println(F("RS2
"));
client.println(F("<form method=get><input type=submit name=rs2 value='up'></form>"));
client.println(F("<form method=get><input type=submit name=rs2 value='down'></form>"));
client.println(F("<form method=get><input type=submit name=rs2 value='gapup'></form>"));
client.println(F("<form method=get><input type=submit name=rs2 value='gapdown'></form>"));
client.println(F("RS3
"));
client.println(F("<form method=get><input type=submit name=rs3 value='up'></form>"));
client.println(F("<form method=get><input type=submit name=rs3 value='down'></form>"));
client.println(F("<form method=get><input type=submit name=rs3 value='gapup'></form>"));
client.println(F("<form method=get><input type=submit name=rs3 value='gapdown'></form>"));
client.println(F("RS4
"));
client.println(F("<form method=get><input type=submit name=rs4 value='up'></form>"));
client.println(F("<form method=get><input type=submit name=rs4 value='down'></form>"));
client.println(F("<form method=get><input type=submit name=rs4 value='gapup'></form>"));
client.println(F("<form method=get><input type=submit name=rs4 value='gapdown'></form>"));
readString="";
client.stop();
}}}}}
Vielen Dank!
Thomas