Hallo Leute!
Ich habe ein Problem mit dem aktuellen Status der Geräte in der Apple Home App. Zur Einleitung erstmal ein paar Infos. Ich habe mehrere ESP8266 mit Relais Programiert und sie erfolgreich in den makesmart-server eingebunden. Wenn ich jetzt auf dem iPhone die Home App öffne, zeigt er mir alle ESP an. Nach ein paar Sekunden sind alle aktualliesiert und ich kann sie unverzögert ein- und ausschalten. Wenn ich jetzt aber z.B. den Button Licht Terrasse aktiviere schaltet das Relais erfolgreich ein und ich verlasse dann die App. Nach 1-2 Minuten öffne ich die Home-App wieder und möchte jetzt eigendlich das aktivierte Terrassenlicht sehen. Jetzt wird mir aber das Licht Terrasse als aus dagestellt bzw. manchmal kommt die Meldung "Antwortet nicht" obwohl das Relais noch angezogen ist! Ich denke es ist ein Problem mit dem Code vom ESP oder meine Fritz Box ist schuld an der fehlenden Aktualliesierung....
Vieleicht könnte mir jemand ein Tipp geben.
IOS.jpg
Code vom ESP
- #include <ESP8266WiFi.h>
- #include <ESP8266WebServer.h>
- #include <ESP8266mDNS.h>
- ESP8266WebServer server(80);
- const char* ssid = "XXXXXXXXXXXXXXX";
- const char* password = "XXXXXXXXXXXXXXXXXXXX";
- // following for the name of: http://Licht-Garage.loacal/
- const char* dns_name = "Licht-Garage";
- int d0 = 16;
- int d0_status = 0;
- int d1 = 5;
- int d1_status = 0;
- int d2 = 4;
- int d2_status = 0;
- void setup()
- {
- Serial.begin(115200);
- Serial.println("ESP Gestartet");
- pinMode(d0, OUTPUT);
- pinMode(d1, OUTPUT);
- pinMode(d2, OUTPUT);
- WiFi.begin(ssid, password);
- Serial.print("Verbindung wird hergestellt ...");
- while (WiFi.status() != WL_CONNECTED)
- {
- delay(500);
- Serial.print(".");
- }
- Serial.println();
- Serial.print("Verbunden! IP-Adresse: ");
- Serial.println(WiFi.localIP());
- if (MDNS.begin("dns_name")) {
- Serial.println("DNS gestartet, erreichbar unter: ");
- Serial.println("http://"+String(dns_name)+".local/");
- }
- server.onNotFound([](){
- server.send(404, "text/plain", "esp8266 test");
- });
- server.on("/", []() {
- server.send(200, "text/plain", "ESP-Startseite!");
- });
- server.on("/relay1_on",[]() {
- server.send(200, "text/plain", "Relais an");
- relay1_on();
- });
- server.on("/relay1_off", []() {
- server.send(200, "text/plain", "Relais aus");
- relay1_off();
- });
- server.on("/relay1_state", []() {
- server.send(200, "text/plain", String(digitalRead(16)));
- });
- server.on("/relay2_on",[]() {
- server.send(200, "text/plain", "Relais an");
- relay2_on();
- });
- server.on("/relay2_off", []() {
- server.send(200, "text/plain", "Relais aus");
- relay2_off();
- });
- server.on("/relay2_state", []() {
- server.send(200, "text/plain", String(digitalRead(5)));
- });
- server.on("/relay3_on",[]() {
- server.send(200, "text/plain", "Relais an");
- relay3_on();
- });
- server.on("/relay3_off", []() {
- server.send(200, "text/plain", "Relais aus");
- relay3_off();
- });
- server.on("/relay3_state", []() {
- server.send(200, "text/plain", String(digitalRead(4)));
- });
- server.begin();
- Serial.println("Webserver gestartet.");
- }
- void loop() {
- server.handleClient();
- }
- void relay1_on(){
- digitalWrite(d0, HIGH);
- }
- void relay1_off(){
- digitalWrite(d0, LOW);
- }
- void relay2_on(){
- digitalWrite(d1, HIGH);
- }
- void relay2_off(){
- digitalWrite(d1, LOW);
- }
- void relay3_on(){
- digitalWrite(d2, HIGH);
- }
- void relay3_off(){
- digitalWrite(d2, LOW);
- }