String/Array auflösen bei Webabfrage

plaubel:
Keiner einen Plan, warum "endsWith" als Einziges geht

Das ist nix:
String schalter = ((const char*) Ethernet::buffer + off);

Zwischen Pointern auf String-Objekte und Pointern auf Char-Arrays gibt es keine Zuweisungskompatibilität.

Keine Ahnung, warum nach dieser Zeile mit "schalter" überhaupt irgendwas noch scheinbar funktioniert.

Selbst:
Serial.println (schalter); // liefert den kompletten 6-stelligen Textcode
würde ich mal anzweifeln. Lasse Dir mal die genaue Länge von Schalter an der Stelle ausgeben und ob das wirklich nur der beabsichtigte "6-stellige Textcode" ist. Wenn ich mal raten soll ist die Variable dort schon deutlich länger als mit Serial.Println angezeigt wird und vorneweg kommen noch mehrere Zeichen mit ASCII-Codes, die am seriellen Terminal nicht dargestellt werden bzw. nicht darstellbar sind.