NEWS
OBI Funk-Steckdosenumbau ESP8266 (Generation1 Rund)
-
Hallo,
ich habe aktuell 5 Funksteckdosen im Einsatz. Alle bis auf eine sind normal im verhalten:
Bildschirmfoto 2018-08-12 um 11.47.15.png
Antwortzeiten auf ein Request ca. 20-30ms
Eine aber ist auffällig:
Bildschirmfoto 2018-08-12 um 11.48.11.png
Die Antwortzeiten sind erheblich höher.
Ich habe in der Testversion schon die Schleife im Webfenster auf 2000ms erhöht und 500ms timeout eingebaut.
Außerdem wartet er nach Timeout 4 Sekunden bis zur nächsten Abfrage.
Ideen?
(natürlich gleiche Software, gleiches WLAN, gleicher Standort) `
Gelöst mit 1.1.1c -> kleinere Strings im send
-
Hab die neue Firmware (1.1.1c) noch nicht getestet….aber ich sage vorher schonmal Danke, dass Du Dich hier um die "vermeintlichen" Probleme mit der Steckdose kümmerst.
Ich habe beide Bilder beim Schalten über das Webinterface bekommen. `
Ok, bisher hab ich bei meinen 5 Testdosen nicht nachstellen können. Ich beobachte das mal.
-
Hab das Update gerade gemacht und leider wieder den "Doppelfehler"
-
Bin zur Version 1.0.4 zurück und dort zeigt er auch 2 mal den gleichen State an.
Allerdings mit paar Sekunden Unterschied.
-
Hab das Update gerade gemacht und leider wieder den "Doppelfehler"
Unbenannt5.PNG `
Hi,
kannst du mal die ganze Seite zeigen?
Machst du ip/on oder klickst du auf SWITCH ON
-
Klicke auf Switch on oder off
Bin wieder auf die 1.1.1c gewechselt für den Screenshot
Auch wenn ich es in der Befehlszeile eingebe , kommt alles doppelt.
-
Klicke auf Switch on oder off
Bin wieder auf die 1.1.1c gewechselt für den Screenshot
Unbenannt7.PNG
Auch wenn ich es in der Befehlszeile eingebe , kommt alles doppelt.
Unbenannt8.PNG `
Hallo,
die Dose hat einen recht schlechten Empfang, normal sind Werte um 18-20 ms und RSI -40-50
Kannst du bitte einmal den ioBroker ausmachen und schauen und dann
iobroker an und ajax aus und schauen und dann beide aus.
-
Alle Dosen haben diese Werte bei mir.
Sind höchstens 5m-8m vom Router entfernt.
Reagieren aber sofort, auf AN AUS Befehle.
Also die doppelten Einträge kommen, wenn ich IOBroker wieder "ON" schalte.
-
Alle Dosen haben diese Werte bei mir.
Sind höchstens 5m-8m vom Router entfernt.
Reagieren aber sofort, auf AN AUS Befehle.
Also die doppelten Einträge kommen, wenn ich IOBroker wieder "ON" schalte. `
Hi,
habe jetzt bei mir auch mal ioBroker aktiviert. Habe keine doppelten Werte:
Hast du ein Skript laufen?
Wenn ja deaktivier das mal bitte. Und zeig es
Die CCU Anbindung funktioniert aus meiner Sicht besser. Hier wird die Steckdose wie ein echtes Gerät behandelt.
Die kannst du dann auch unter ioBroker so verwenden. Anleitung dazu ist im ersten Post.
Die Strings legt er allerdings selbst an. Brauchst du nicht hinterlegen.
-
Sorry, wenn ich hier kurz das Problem von haselchen unterbreche, wollte nur etwas zu den LEDs mitteilen, was ich gerade herausgefunden habe:
@TomT:Die LEDs leuchten dann, wenn das Relay AN ist, also die Steckdose eingeschaltet wurde.
Leider sind beide LEDs am selber GPIO Pin, so daß diese nicht getrennt steuerbar sind. `
Ich glaube, das ist nicht ganz richtig: Am GPIO 4 hängt die blaue LED, aber die rote LED ist direkt am Relay, wenn ich das auf der Platine richtig sehe. Jedenfalls habe ich mal den Befehl
digitalWrite(4, 1);
in den Funktionen switch_ON() etc. auskommentiert. Beim Einschalten leuchtet dann die rote LED (am Taster) immer noch auf, die blaue LED aber nicht mehr.
Grüße,
Alex
-
@ sissiwup
Hab mal alles ausprobiert und ein Javascript deaktiviert, das mit der Steckdose zu tun hatte.
Und nun bekomme ich nur noch 1 State mitgeteilt.
Nicht steinigen. Ich weiss leider nicht mehr was das Script bewirkt hat. Irgendwas mit der VIS auf jedenfall.
Eventuell sollte man das auf Seite 1 aufnehmen?
-
Sorry, wenn ich hier kurz das Problem von haselchen unterbreche, wollte nur etwas zu den LEDs mitteilen, was ich gerade herausgefunden habe:
@TomT:Die LEDs leuchten dann, wenn das Relay AN ist, also die Steckdose eingeschaltet wurde.
Leider sind beide LEDs am selber GPIO Pin, so daß diese nicht getrennt steuerbar sind. `
Ich glaube, das ist nicht ganz richtig: Am GPIO 4 hängt die blaue LED, aber die rote LED ist direkt am Relay, wenn ich das auf der Platine richtig sehe. Jedenfalls habe ich mal den Befehl
digitalWrite(4, 1);
in den Funktionen switch_ON() etc. auskommentiert. Beim Einschalten leuchtet dann die rote LED (am Taster) immer noch auf, die blaue LED aber nicht mehr.
Grüße,
Alex `
Super, ist die blaue LED sonst mal an? Oder soll die verwendet werden um z.B. WIFI-Connect oder Web-Aktivität oder aktiver Timer anzuzeigen?
-
@ sissiwup
Hab mal alles ausprobiert und ein Javascript deaktiviert, das mit der Steckdose zu tun hatte.
Und nun bekomme ich nur noch 1 State mitgeteilt.
Nicht steinigen. Ich weiss leider nicht mehr was das Script bewirkt hat. Irgendwas mit der VIS auf jedenfall.
Eventuell sollte man das auf Seite 1 aufnehmen? `
Kannst du das Script mal posten?
Grüße
Tom
-
Ich glaube, das ist nicht ganz richtig: Am GPIO 4 hängt die blaue LED, aber die rote LED ist direkt am Relay, wenn ich das auf der Platine richtig sehe. Jedenfalls habe ich mal den Befehl
digitalWrite(4, 1);
in den Funktionen switch_ON() etc. auskommentiert. Beim Einschalten leuchtet dann die rote LED (am Taster) immer noch auf, die blaue LED aber nicht mehr. `
Ja, kannst Recht haben, so genau hab ich mir die Hardware nicht angeschaut….
Grüße
Tom
-
Ist Dein eigenes Skript :lol: :lol: (ohne meine Daten drin)
on({id: "esp8266.0.OBI-Steckdose.SetState"/*SetState*/, change: "ne"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; if (getState("esp8266.0.OBI-Steckdose.SetState").val === true) { try { require("request")('http://<ip der/steckdose="">/ON').on("error", function (e) {console.error(e);}); } catch (e) { console.error(e); } console.log("request: " + 'http://<ip der/steckdose="">/ON'); } else { try { require("request")('http://<ip der/steckdose="">/OFF').on("error", function (e) {console.error(e);}); } catch (e) { console.error(e); } console.log("request: " + 'http://<ip der/steckdose="">/OFF'); } });</ip></ip></ip></ip>
-
Bei mir leuchtet die blaue LED im normalen Betrieb gar nicht mehr, wenn ich die digitalWrite wie beschrieben auskommentiere.
Ich habe mal die testWiFi() folgendermaßen geändert (basierend auf der 1.0.9, die nutze ich derzeit noch), damit die blaue LED während des Verbindungsaufbaus blinkt, und je nach Ergebnis an oder aus ist:
// test if we are connected boolean testWiFi() { int c = 0; Serial.print(F("Waiting for Wifi to connect")); // c at 60 with delay 500 is for 30 seconds ;) // c at 120 with delay 500 is for 60 seconds ;) pinMode(4, OUTPUT); // <-- sonst blinkt hier nix (pinMode wird in der main erst später gesetzt) while ( c < 120 ) { digitalWrite(4, c%2); // <-- einfaches Blinken gemäß delay() unten. 1-c%2 geht natürlich auch ;-) Serial.print("."); if (WiFi.status() == WL_CONNECTED) { Serial.println(""); Serial.println(printConnectionType(WiFi.status())); digitalWrite(4, 1); // <-- Bei erfolgreichem Verbinden soll die blaue LED dauerhaft leuchten return 1; } delay(500); c++; } digitalWrite(4, 0); // <-- Falls nicht erfolgreich, blaue LED aus Serial.println(""); Serial.println(printConnectionType(WiFi.status())); return 0; }
So bleibt die blaue LED natürlich auch an, wenn die Verbindung verloren gehen sollte - oder während eines Reboots oder bei Firmware Update. Da kann man aber bestimmt was machen.
Grüße,
Alex
-
Bei mir leuchtet die blaue LED im normalen Betrieb gar nicht mehr, wenn ich die digitalWrite wie beschrieben auskommentiere.
Ich habe mal die testWiFi() folgendermaßen geändert (basierend auf der 1.0.9, die nutze ich derzeit noch), damit die blaue LED während des Verbindungsaufbaus blinkt, und je nach Ergebnis an oder aus ist:
// test if we are connected boolean testWiFi() { int c = 0; Serial.print(F("Waiting for Wifi to connect")); // c at 60 with delay 500 is for 30 seconds ;) // c at 120 with delay 500 is for 60 seconds ;) pinMode(4, OUTPUT); // <-- sonst blinkt hier nix (pinMode wird in der main erst später gesetzt) while ( c < 120 ) { digitalWrite(4, c%2); // <-- einfaches Blinken gemäß delay() unten. 1-c%2 geht natürlich auch ;-) Serial.print("."); if (WiFi.status() == WL_CONNECTED) { Serial.println(""); Serial.println(printConnectionType(WiFi.status())); digitalWrite(4, 1); // <-- Bei erfolgreichem Verbinden soll die blaue LED dauerhaft leuchten return 1; } delay(500); c++; } digitalWrite(4, 0); // <-- Falls nicht erfolgreich, blaue LED aus Serial.println(""); Serial.println(printConnectionType(WiFi.status())); return 0; }
So bleibt die blaue LED natürlich auch an, wenn die Verbindung verloren gehen sollte - oder während eines Reboots oder bei Firmware Update. Da kann man aber bestimmt was machen.
Grüße,
Alex `
Ok, wichtig war mir, das sie sonst aus ist. Dann werde ich mal ein paar Statusmeldungen darüber realisieren.
An: Wenn Verbindung ins WLAN besteht
Aus: Wenn keine Verbindung besteht
Blinken bei Aktivität
Mal sehen was mir sonst noch einfällt.
-
Hallo,
erstmal ein riesen Respekt und Dank für eure Arbeit hier, bin wirklich begeistert davon. Allerdings hätte ich zwei Fragen bzw. Anliegen.
1.
Ich habe gestern meine erste Steckdose erfolgreich geflasht. Nach ein paar Problemen und rum probieren lief dann die 1.1.1 ohne Probleme auf der Steckdose. Das flashen und löten habe ich alles bei meinem Bruder gemacht, natürlich haben wir dann seinen WLAN Gastzugang benutzt, um die Steckdose zu prüfen. Wir fingen also an mit der Startversion diese zu flashen, haben dort die WLAN Daten hinterlegt und dann die OTA Updates gemacht bis auf 1.1.1. Bis hierhin funktionierte auch alles ohne Probleme. Das Problem kam dann erst als ich mir meine Steckdose geschnappt habe und nachhause bin und diese hier natürlich sofort in meinem eigenen WLAN in Betrieb nehmen wollte. Der AP der Steckdose wurde gefunden, connecten auf die IP 192.168.4.1 ging ebenfalls, die Seite zum einrichten öffnete sich. Dort habe ich auch meine WLAN SSID gefunden, diese ausgewählt und das Passwort eingegeben und anschließend neugestartet. Aber die Steckdose fand nicht den Weg ins WLAN. Stattdessen kam immer wieder nach einiger Zeit der AP zurück in der WLAN Übersicht. In der Fritz.Box Ereignisanzeige war kein Verbindungsversuch zur Box zu sehen. Auch nach mehrmaligen neuen eingeben des WLAN Schlüsseln passierte nichts. Also hab ich die Erase eeprom Funktion ausgeführt, wieder die WLAN Daten eingegeben und dann ein kleines Lebenszeichen der Steckdose; in der Fritz.Box Log war ein Verbindungsversuch zu sehen, allerdings WLAN Schlüssel falsch, daher keine Verbindung. Ich habe dann den Gastzugang geöffnet, mehrere male die SSID umbenannt, immer das gleiche Ergebnis. Ich hab dann letztendlich aufgegeben und die Steckdose noch mal mit der Startversion geflasht, WLAN Daten eingegeben und sofort verbunden. Die beiden OTA Updates gemacht, alles in Ordnung, Steckdose läuft einwandfrei.
Lange rede, kurzer Sinn: das erneute eingeben von WLAN Zugangsdaten hat bei der 1.1.1 bei mir nicht geklappt. Der WLAN Schlüssel scheint irgendwie nicht gespeichert zu werden oder er wird als falsch gespeichert. Vielleicht kann sich das hier ja jemand einmal anschauen, ob es da irgendwo einen Fehler gibt? Oder habe ich einfach etwas übersehen oder vergessen?
und zu meinem 2. Punkt.
Ich habe in einem ct Magazin Bericht gelesen, dass man die Steckdose auch um Temperatursensoren erweitern kann, wie den DHT22. Man kann diesen wohl einfach an VCC, GND und RX anschließen und dann soll dieser die Temperaturdaten über WLAN senden. Die Frage ist, kann man das empfangen dieser Daten mit dieser Firmware hier irgendwie realisieren? Hat sich daran schon mal jemand versucht? Bin noch recht neu in diesem Gebiet, daher diese Frage.
Vielen Dank schon mal und viele Grüße
Noch ein Nachtrag
Ich habe die dose noch mal ans USB gehängt und ein Terminal mitlaufen lassen, um zu schauen was dort passiert beim Login. Beim setzen der WLAN Daten wird dort das richtige Passwort angezeigt, auch im SSID Name scheint kein Fehler zu sein. Was jedoch auffällig ist beim Verbindungsaufbau:
> SSID: FRITZBoxGastzugang<\r><\n>PASS: <\r><\n>Waiting for Wifi to connect….....................................................................................................................<\r><\n>WL_DISCONNECTED<\r><\n>Could not connect to SSID!<\r><\n>Starting AP at port: 80<\r>
Hinter dem PASS: steht wirklich nichts. Ist das normal? Sollte da nicht der WLAN Key stehen?
Nachtrag #2
Okay, es liegt an dem Codefehler, den Beamer auf Seite 17 schon genannt hat, dass der WLAN Key erst 32 Zeichen später geschrieben wird. Konnte es ganz leicht gegen testen, hab die Dose noch mal eingerichtet, habe jedoch dieses mal bei der WLAN Key eingabe einfach 32 Leerzeichen gemacht und erst dann den WLAN Key angefangen einzutippen. Gespeichert, neugestartet und siehe da, WLAN verbunden
-
Lange rede, kurzer Sinn: das erneute eingeben von WLAN Zugangsdaten hat bei der 1.1.1 bei mir nicht geklappt. Der WLAN Schlüssel scheint irgendwie nicht gespeichert zu werden oder er wird als falsch gespeichert. Vielleicht kann sich das hier ja jemand einmal anschauen, ob es da irgendwo einen Fehler gibt? Oder habe ich einfach etwas übersehen oder vergessen? `
Ich will hier Sissi nicht vorgreifen, aber das sollte eigentlich bei der Version 1.1.1b oder 1.1.1c gefixt sein. Hast du die "Vanilla" 1.1.1 genommen, oder eine der späteren mit Bugfix? Probier es doch am besten nochmal mit der 1.1.1c und dem Passwort ohne 32 Leerzeichen. Wenn das Problem da immer noch auftritt, sag Bescheid!
Ich habe in einem ct Magazin Bericht gelesen, dass man die Steckdose auch um Temperatursensoren erweitern kann, wie den DHT22. Man kann diesen wohl einfach an VCC, GND und RX anschließen und dann soll dieser die Temperaturdaten über WLAN senden. Die Frage ist, kann man das empfangen dieser Daten mit dieser Firmware hier irgendwie realisieren? Hat sich daran schon mal jemand versucht? Bin noch recht neu in diesem Gebiet, daher diese Frage. `
Ich habe den Source-Code für einen DS18B20 Temperatursensor angepasst, der an VCC, GND und inwischen RX (vorher GPIO0) hängt. Einen DHT22 habe ich nicht, aber die nötigen Änderungen scheinen recht übersichtlich zu sein, wenn man schon mal mit der Arduino-Umgebung für ESP8266 gearbeitet hat und sich daran versuchen will. Ich denke, man kann sich da ein Stück weit z.B. am Abschnitt "Setup" und "Code" in https://www.losant.com/blog/getting-started-with-the-esp8266-and-dht22-sensor orientieren. Wenn man RX dafür nutzen will, sollte man jedenfalls die serielle Schnittstelle folgendermaßen umkonfigurieren:
Serial.begin(115200,SERIAL_8N1,SERIAL_TX_ONLY); // statt Serial.begin (115200);
Die TX-Leitung kann man dann immer noch für die Ausgabe mit Serial.println nutzen - Stichwort Debugging
Der RX liegt auf GPIO-Pin 3, den muss man dann für die Abfrage des Sensors nutzen.
Grüße,
Alex
-
Nachdem Tom ganz zu Beginn den Sinn eines Temperatursensors in der Dose IMHO zu Recht in Frage gestellt hatte, hätte ich als arduino/esp noob eine Frage.
Kann man stattdessen vielleicht einen Luftgütesensor, analog zum wiffi einbauen?
Das wäre für meine Zwecke wesentlich sinnvollet.
Gruß Rainer