Hallo,
ich versuche gerade einen IR Receiver zu bauen, der die Empfangenen Signale per Ethwrnet Modul (ENC28J60) an FHEM sendet:
ich benutze folgende Bibliotheken:
#include <IRremote.h>
#include <UIPEthernet.h>
Das Empfangen der Fernbedienungssignale funktioniert, nur das verschicken nicht so richtig. In dem Loop empfange ich die IR Codes:
void loop() {
if (irrecv.decode(&results)) {
Serial.println(results.value,HEX); //Z.B: 61D600FF
sendIR (results.value);
delay(100);
irrecv.resume(); // Receive the next value
}
else
delay(10);
}
Das Problem: wenn ich die Taste 1 auf der Fernbedienung drücke kommt im Serial Monitor:
61D600FF
Direkt danach kommt sendIR (results.value);
Aber FHEM empfängt nichts (beim ersten Tastendruck auf der Fernbedienung). Ich bekomme aber auch keinen Fehler im else zweig
Hier noch die sendIR Funktion:
void sendIR(long code)
{
// Send over HTTP
if (client.connect(server, 8086))
{
client.print("GET /fhem?cmd=set%20ArduinoIR%20");
client.print(code,HEX);
client.println(" HTTP/1.1");
client.println("Host: 192.168.0.6");
client.println("Connection: close");
client.println();
//client.flush();
client.stop();
}
else
Serial.println("Can't get a connection!");
}
Wenn ich dann die Taste 2 auf der Fernbedienung drücke kommt der Code von taste 2 (61D6807F
) im Serial Monitor und in Fhem kommt ein Event für Taste 1:
dummy ArduinoIR 61D600FF
Das gleiche passiert für alle folgenden Tastendrücke auf der FErnbedienung. Die Events kommen immer um eins versetzt.
Ich hoffe jemand hier hat dazu eine Idee.
Lies und berücksichtige meinen Kommentar hier (http://www.tweaking4all.com/hardware/arduino/arduino-ethernet-data-push/#comment-21572), dann funktioniert's.
Gruß,
Norbert
Super, danke.
Jetzt gehts.
Grüße
Danke für den Link - den kannte ich noch nicht.
Viele Grüße
Boris