NEWS
OBI Funk-Steckdosenumbau ESP8266 (Generation1 Rund)
-
Ja, passt auch exakt so bei der Version 1.2.0
Grüße
Tom
-
Keine Verbindung zu Mosquitto
Ich benutze als Test-Broker Mosquitto auf einem Raspberry zero mit Dietpi von Andreads Spiess (the man with the swiss accent)
Die Version 1.20 stellt keine Verbindung zu Mosquitto her
11:39:51 08.10.2018 MQTT server started 11:39:51 08.10.2018 MQTT try reconnect 11:39:52 08.10.2018 MQTT NOT subscribed 11:40:42 08.10.2018 Wifi.Reconnect Time done 11:40:50 08.10.2018 MQTT try reconnect 11:40:51 08.10.2018 MQTT NOT subscribed 11:41:20 08.10.2018 MQTT try reconnect 11:41:21 08.10.2018 MQTT NOT subscribed
Im Code von handleMQTT.ino wird auch klar warum, es findet keine Authentifizierung durch user/password statt
void reconnect() { if (MQTT_active == 1) { blueLEDstartCountBlink(0.8, 4); int timeout = 2; build_wwwStatus2("MQTT try reconnect"); while ((!pubClient.connected()) && (timeout > 0)) { timeout--; Serial.println("Reconnecting MQTT..."); char devname[80]; iDevname.toCharArray(devname, 80); if (!pubClient.connect(devname)) // <-- Aufruf ohne Authentifizierung ....... {
es müsste dort stehen
if (!pubClient.connect(devname,mqtt_user,mqtt_password)) // <-- Aufruf mit Authentifizierung
wobei mqtt_user und mqtt_password vorher gesetzt sind.
Das kann aber nur über die Web-Oberfläche geschehen.
Da hängt allerdings noch eine Menge anderer Dinge dran, siehe handle_commands.ino –> handle_devName
und espEEPROMSet.Ino-->writeEEPROM
Bisher wurden 901 Nibbles von 1024 verbraucht, es scheint noch ein wenig Platz zu sein.
Es wäre schön, wenn Funktionen zum Setzen von mqtt-user und mqtt-password eingebaut werden könnten oder eine Rückmeldung, welche EEPROM-Adressen für solche Einstellungen genutzt werden sollten.
Ansonsten vielen Dank für die viele Arbeit und den gut lesbaren Code. `
Ok, das ist nicht das Problem. Kann mir jemand sagen wie ich beim iobroker user und passwort setze?
(zum Testen)
Was ein bischen schwieriger wird, ist das Passwort nicht im Klartext zu übertragen… mal sehen.
Kümmere mich am Wochenende darum.
PS: Wie lang müssen User und Passwort sein?
-
Fehler beim Compilieren von 1.20
Ich bekomme einen Compilerfehler beim übersetzen:
xxx/Firmware_1_2_0_2018_09_17\Main-Obi-wall-plug\Main-Obi-wall-plug.ino:121:21: fatal error: TimeLib.h: No such file or directory #include <timelib.h> ^ compilation terminated. exit status 1 Fehler beim Kompilieren für das Board Generic ESP8266 Modul</timelib.h>
Ich verwende esp8266 2.4.2 .
Der Wechsel auf 2.3 bringt nichts
Irgend ein Hinweis? `
Hi,
ist im Post beschrieben:
-
Hallo sissiwup,
ist es möglich die Zeile "TIME to Event" farblich hervorzuheben ähnlich On/Off ? `
Hallo meierchen006,
ich bin zwar nicht sissywup, aber hier die Lösung :
Öffne mit Arduino den Code der 1.19d und dort in der Datei webstatic.ino suche folgenden Code (im oberen Drittel zu finden)
wwwInfos = wwwInfos + String(F(" Actual Time : ")) + gerDate(NTP.getTimeDateString()) + String(F(" Time to Event : OFF "
Ersetze diesen mit
wwwInfos = wwwInfos + String(F(" Actual Time : ")) + gerDate(NTP.getTimeDateString()) + String(F(" **Time to Event : OFF** **"** ```` **Neu kompilieren und fertig ;) Sollte nun etwas kleiner als der Status darunter sein, aber größer als der Rest Grüße Tom** ` **Hi, hab das übernommen:
** -
Hallo,
habe die 1.2.0.b installiert funktioniert wie gewollt.
Nun ist Time to Event besser zu sehen/direkt zu erkennen. :mrgreen:
Danke.
-
Keine Verbindung zu Mosquitto
Ich benutze als Test-Broker Mosquitto auf einem Raspberry zero mit Dietpi von Andreads Spiess (the man with the swiss accent)
Die Version 1.20 stellt keine Verbindung zu Mosquitto her
11:39:51 08.10.2018 MQTT server started 11:39:51 08.10.2018 MQTT try reconnect 11:39:52 08.10.2018 MQTT NOT subscribed 11:40:42 08.10.2018 Wifi.Reconnect Time done 11:40:50 08.10.2018 MQTT try reconnect 11:40:51 08.10.2018 MQTT NOT subscribed 11:41:20 08.10.2018 MQTT try reconnect 11:41:21 08.10.2018 MQTT NOT subscribed
Im Code von handleMQTT.ino wird auch klar warum, es findet keine Authentifizierung durch user/password statt
void reconnect() { if (MQTT_active == 1) { blueLEDstartCountBlink(0.8, 4); int timeout = 2; build_wwwStatus2("MQTT try reconnect"); while ((!pubClient.connected()) && (timeout > 0)) { timeout--; Serial.println("Reconnecting MQTT..."); char devname[80]; iDevname.toCharArray(devname, 80); if (!pubClient.connect(devname)) // <-- Aufruf ohne Authentifizierung ....... {
es müsste dort stehen
if (!pubClient.connect(devname,mqtt_user,mqtt_password)) // <-- Aufruf mit Authentifizierung
wobei mqtt_user und mqtt_password vorher gesetzt sind.
Das kann aber nur über die Web-Oberfläche geschehen.
Da hängt allerdings noch eine Menge anderer Dinge dran, siehe handle_commands.ino –> handle_devName
und espEEPROMSet.Ino-->writeEEPROM
Bisher wurden 901 Nibbles von 1024 verbraucht, es scheint noch ein wenig Platz zu sein.
Es wäre schön, wenn Funktionen zum Setzen von mqtt-user und mqtt-password eingebaut werden könnten oder eine Rückmeldung, welche EEPROM-Adressen für solche Einstellungen genutzt werden sollten.
Ansonsten vielen Dank für die viele Arbeit und den gut lesbaren Code. `
Hallo,
anbei die Version mit User und Passwort für MQTT (jetzt ist das EEPROM fast voll, aber es sind ja noch fast 63K File-system da:-)):
User = Max. 32 Zeichen, minimal 2 Zeichen!
Passwort = Max. 64 Zeichen
-
HI ,
bei mir gibt es so komische MQTT Fehlermeldung, also "try reconnect"
ist das okay, oder funktioniert da irgendwas nicht? User habe ich nicht.
Ich habe jetzt auch immer, dass das Licht der Schalter einfach so anging und ich habe mich gefragt, warum.
Gruß
Thomas
-
Als erstes würde ich dann MQTT auf OFF stellen, dann wird er mit Sicherheit nicht mehr reconnecten wollen
Edit: Wenn du natürlich MQTT benutzt, können dir nur wahrscheinlich sissiwup oder TomT helfen.
-
Jetzt habe ich mqtt tatsächlich mal abgeschaltet.
Trotzdem schalten sich die Lampen immer wieder mal an.
gestern Abend um 21:13 und danach ging die Lampe wieder an, ohne das irgendetwas gemacht wurde.
und es kommt eine Meldung "Dateway not reach". Was soll das? mqtt ist doch aus. ?
1555_screen.jpg -
Also bei MQTT kann ich dir leider nicht helfen.
Bist du dir sicher, daß du nirgendwo einen Weblink auf die Steckdose benutzt hast?
Mit einem einfachen <ip-adresse der/steckdose/on="">command kannst du die ja auch ganz ohne Einrichtungen von CCU/ioBroker/MQTT steuern.
Eventuell ein Script, was die IP Adresse auf diese Art anspricht?
Da ich ab Version 1.0.4 die FW nicht mehr selbst erweitere, kann dir im Zweifel nur noch sissiwup helfen.
Bei mir laufen alle (bis auf 1 zum testen ab und an) noch auf der "uralten" Version und werden ausschließlich durch ioBroker gesteuert.
Ich selbst benutze zur Zeit noch nicht mal mehr die Delay Funktionen.
Wenn da nämlich mal was nicht läuft, brauche ich nur an 1 Stelle zu suchen…
Macht die Fehleranalyse einfacher.
Grüße
Tom</ip-adresse>
-
Jetzt ist er schon lange nicht wieder angegangen. mqtt ist aus.
Ich warte mal ab, was nun passiert.
Ja, ich schalte die Lampen via direkte IP.
Gibt es eine Beschreibung zu den allgemeinen Settings oben rechts? Das verstehe ich nicht.
und ich habe auch iobroker, aber wenn ich die Schnittstelle einschalte, sehe ich trotzdem nichts in iobroker, oder muss ich die Datenpunkte selbst eintragen? wo ist das beschrieben?
-
Das Anlegen der Datenpunkte im ioBroker ist im 1. Beitrag auf Seite 1 beschrieben.
Oder du machst das im ioBroker per javascript.
Anleitung dazu und Script : viewtopic.php?f=35&t=12125&start=100#p139351
Damit du den Status im ioBroker sehen kannst musst du die Datenpunkte auch in der Steckdose eintragen.
Das geht mit den Commands
http://<ip der/steckdose="">/ioBroker?ip=192.XXX.XXX.XXX http://<ip der/steckdose="">/ioBroker?port=8087 http://<ip der/steckdose="">/ioBroker?path=esp8266.0 http://<ip der/steckdose="">/ioBroker?sub=OBI-Steckdose http://<ip der/steckdose="">/ioBroker?state=State http://<ip der/steckdose="">/ioBroker?message=Info</ip></ip></ip></ip></ip></ip>
Die Namen und Daten müssen mit deinen angelegten Datenpunkten übereinstimmen.
Port ist der SimpleApi Port des Adapters. Simple Api Adapter muss installiert sein…
Steuern tust du dann über ein Script im ioBroker, ich mache das mit Blockly.
Hinweise dazu findest du auch auf Seite 1 im 1.Beitrag.
Die grundlegenden Settings oben rechts müssten sich doch eigentlich selbst erklären.
PowerOnState stellst du ein, ob die Steckdose beim Einstecken AN/AUS oder den letzten Schaltzustand schaltet.
Wifi-Reconnect und die Time dazu haben was mit einem Bug in der Firmware des ESP Controllercore zu tun.
Einige ESP verlieren nach unbekannter Zeit die Verbindung zum WLAN. Mit den 2 Werten stellst du ein, nach welcher Zeit er selbstständig eine Verbindung neu aufbaut. Ajax ON aktualisiert die WEbseite der Steckdose in regelmäßigen Abständen. Soweit ich weiß ist das Sekündlich...
Ich hoffe das hilft dir jetzt erst mal weiter, sonst frag halt nochmal nach
Grüße
Tom
-
Danke schön ,
ich werde das probieren.
Gruß
Thomas
-
Aber mein Problem , dass das Relay automatisch angeht, ohne das ich etwas getan habe. Das Problem besteht weiterhin.
Als Hinweis. Wenn das Relay angeht, dass beim Service: "State saved: on".
Also, als wenn ich den Stecker herausgesteckt und wieder hineingesteckt habe. Habe ich aber nicht!
Außerdem war der letzte Status: off.
Ich verstehe das nicht. Woran kann ich denn sehen, warum das Relay überhaupt geschaltet hatte?
-
Ich hab mir deinen Screenshot oben noch mal etwas genauer angeguckt.
Du hast sehr viele Gateway not reach.
Ausserdem hast du den PowerONState auf 2, was bedeutet Last State.
Schalte bitte testweise den PowerONState mal auf 0, also OFF.
Ich befürchte, deine Steckdose stürzt ab und bootet in unregelmäßigen Abstanden neu.
Warum, kann ich dir nicht sagen.
Da müsste Sissiwup mal versuchen den Fehler zu finden.
Hast du mal die FW neu aufgespielt? Manchmal kann da ein Fehler beim Updaten passieren und dann kommt es zu solchen mysteriösen Arbeitsweisen….
Versuche im Zweifel auch mal eine ältere Version. Wenn das auch da dann passiert, könnte es sich ja auch um einen Hardwaredefekt handeln.
> Ich verstehe das nicht. Woran kann ich denn sehen, warum das Relay überhaupt geschaltet hatte?
Das kannst du meines Wissens nach nicht, weil die Quelle des Commands nicht gespeichert wird.Ich denke aber eher, dein Problem ist ein Absturz der FW und dem Reboot der Dose.
Grüße
Tom
-
Ich habe 2 von den Obi Steckdosen. und bei haben genau das gleiche Verhalten.
Ich werde mal das mit der Firmware und dem Powerstate versuchen.
-
Jetzt habe ich mqtt tatsächlich mal abgeschaltet.
Trotzdem schalten sich die Lampen immer wieder mal an.
gestern Abend um 21:13 und danach ging die Lampe wieder an, ohne das irgendetwas gemacht wurde.
und es kommt eine Meldung "Dateway not reach". Was soll das? mqtt ist doch aus. ? `
Hallo,
zu deiner Konfiguration:
Rechts:
PowerONState 2: Sichere den Status und benutze ihn wenn Strom weg war.
-> Sate saved - Meldungen sagen das die Dose geschaltet wurde und der Status gesichert wurde.
sonst hast du alles aus geschaltet.
Links:
IP + Gateway werden automatisch gezogen, keine festen Werte (Gateway ist deine Fritzbox!)
Ping ist aktiviert
-> er probiert den Gateway anzupingen. Einzelne not reach sind normal, dann geht mal ein Ping verloren.
-> wenn davon 30 in Folge sind (mit gewissen Abstand) dann startet er WIFI (bei dir nicht der Fall).
NTP-Server ist default
RSSI: -67
-> Empfang ist nicht super, aber noch ok.
FlashSize: …DOUT?
-> normal würd hier QIO stehen -> Programmiermodus
Time since start:
-> Deine Dose ist um 20:17 am 17.10. gestartet, also keine Reboots dazwischen!
Response:
-> Avg 91: gut wären hier 40 -> Empfang schlecht / Dose ist beschäftigt.
Log States:
Die Dose wurde entweder über die Weboberfläche oder per IP/on IP/off oder IP/toggle geschaltet!
21:13 ON
22:09 ON (nochmal)
23:18 OFF
Log rechts:
States saved: werden nur geschrieben wenn der Wert sich ändert (also um 22:09 nicht)
-> sind ok
Gateway reached:
-> Empfang war schlecht. Hier mache ich nur einen PING, wenn der nicht ankommt schreibt er das sofort.
-> Reagiert wird aber erst wenn 30 PINGs in folge nicht ankommen.
=> Fazit:
Kein Reboot - da du mit State2 arbeitest könnte hier auch nur beim booten kurz der Status gewechselt werden, und es würde auch protokolliert werden.
=> Kannst du uns Details zu deiner Ansteuerung geben? Da könnte der Has im Pfeffer liegen.
Falls du eine CCU nutz, dann ist die einfachste Variante der Einbindung über CuxD, da die Dose dann wie ein normales Gerät verwendet werden kann
(sehr gut beschrieben von TomT im ersten Beitrag, du kannst über ein Gerät 16 Dosen ansprechen (Kanäle))
MQTT:
Der erste reconnect ist normal! Es wird zuerst die Verbindung hergestellt, subscribes etc gemacht. Dann wird im Ablauf geprüft ob schon
connected, am Anfang ist das nicht der Fall, dann schreibt er reconnect. Also alles ok.
-
Kleine Erweiterung:
Auf der rechten Seite zeigt er an ob
a) Per Button (sieht man nicht im Screenshoot)
b) Per Webinterface (siehe oben rechts ganz unten)
c) Per /ON /OFF /TOGGLE
ausgelöst wurde.
Die anderen Methoden zeigt er nicht an.
-
und was bedeutet:
CMD: /ON
??
-