ich möchte euch mein aktuelles Projekt zeigen. Da mein Onkyo TX806 kein Ethernet Port hat wollte ich diesen via RS232 direkt mit Onkyo Binding verbinden. Das Binding unterstützt aber offiziell nur Onkyo Geräte mit Ethernet Schnittstelle (eISCP) . Die Möglichkeit mit Mqtt hat mir aber nicht gefallen und ich wollte das offizielle Bindung nutzen. ICh täusche dem Binding nun einen eISCP Onkyo Server mit diesem Arduino Sketch. Macht das auch jemand so?
#include <WiFi.h>
#include <WebServer.h>
#include <DNSServer.h>
#include <WiFiManager.h>
// Wir nutzen Serial2 für den Onkyo, damit Serial1 für USB-Debugging frei bleibt
// ESP32 Standard Serial2: RX = GPIO 16, TX = GPIO 17
#define ONKYO_PORT 60128
WiFiServer eISCP_Server(ONKYO_PORT);
void setup() {
// Debug-Ausgabe für den PC
Serial.begin(115200);
// Kommunikation zum Onkyo (RX=16, TX=17)
// Baudrate 9600 ist Standard für viele Onkyo RS232 Ports
Serial2.begin(9600, SERIAL_8N1, 16, 17);
WiFiManager wm;
// Falls es beim Verbinden hakt, Timeout setzen
wm.setConfigPortalTimeout(180);
if (!wm.autoConnect("Onkyo_Bridge_AP")) {
Serial.println("Fehler beim Verbinden. Starte neu...");
delay(3000);
ESP.restart();
}
Serial.println("Verbunden!");
Serial.print("IP für openHAB: ");
Serial.println(WiFi.localIP());
eISCP_Server.begin();
}
void loop() {
WiFiClient client = eISCP_Server.available();
if (client) {
Serial.println("openHAB Binding hat sich verbunden!");
while (client.connected()) {
// 1. Befehl von openHAB -> Onkyo
if (client.available()) {
uint8_t c = client.read();
Serial2.write(c); // An Onkyo senden
}
// 2. Status von Onkyo -> openHAB
if (Serial2.available()) {
uint8_t c = Serial2.read();
client.write(c); // An openHAB senden
}
}
client.stop();
Serial.println("Verbindung zu openHAB getrennt.");
}
}