tcsmaxx schrieb: > hat jemand zufällig mal analysiert, wo man auf der Platine ein Signal > abgreifen kann, wann das schloss schließt bzw. öffnet? Bin nicht 100%ig sicher, ob ich Deine Frage richtig interpretiere, aber vielleicht hilft Dir das: In dem Gerät sind zwei Taster verbaut, über die die Elektronik grob weiss, wie der auf der Innenseite steckende Schlüssel, den das Smart Lock dreht, gerade steht. Also ungefähr so: Taster 1 | Taster 2 | Stellung 0 |0 | 0° 0 |1 | 90° 1 |1 | 180° 1 |0 | 270° Wenn Du an die Kontakte dieser beiden Taster ein Kabel anlötest, sie mit zwei Input Pins des ESP verbindet und den Zustand dieser beiden Input Pins überwachst, dürftest Du manuelle Drehungen erkennen können, zumindest wenn die Drehung über 90° beträgt. Aber das gilt halt nur für Drehungen an der Türinnenseite, wenn jemand das Schloss von aussen öffnet/schliesst, dann dürfte es keine Möglichkeit geben, das zu erkennen. p.s.: Wenn Du einen ESP verwendest - wie versorgst Du den mit Strom?
:
Bearbeitet durch User
Hallo Hendrik, ich habe diese Code dafür:
1 | void SetDoorState(String state) { |
2 | if (state == "1") { // OPEN |
3 | Serial.println("open"); |
4 | pinMode(openLock, OUTPUT); |
5 | digitalWrite(openLock, LOW); |
6 | delay(200); |
7 | pinMode(openLock, INPUT); |
8 | mqttClient.publish(doorTopic, "open"); |
9 | }
|
10 | if (state == "0") { // CLOSE |
11 | Serial.println("close"); |
12 | pinMode(closeLock, OUTPUT); |
13 | digitalWrite(closeLock, LOW); |
14 | delay(200); |
15 | pinMode(closeLock, INPUT); |
16 | mqttClient.publish(doorTopic, "close"); |
17 | }
|
18 | }
|
An den GPIO's habe ich jew. einen 4k7 Widerstand dran. VG Maxx
Hallo Joachim, vielen Dank für deine Ausführungen! Das werde ich mir mal ansehen :) Ich verwende ein 5V Netzteil und versorge damit gleich das Schloss. VG, Maxx
Ist jemand von euch schon auf dieses Projekt gestoßen? Hier werden die Thermostate inkl. Ventilstellung ausgelesen und die ganzen Modi gesetzt: https://github.com/Heckie75/eQ-3-radiator-thermostat/blob/master/eq-3-radiator-thermostat-api.md Kann es sein, dass sich hinter dem 'unknown' mode eine Ansteuerung per Ventilstellung versteckt? Ich würd es gerne testen, hab mir die Thermostate aber gerade erst bestellt.
Mirko W. schrieb: > Kann es sein, dass sich hinter dem 'unknown' mode eine Ansteuerung per > Ventilstellung versteckt? Halte ich für äusserst unwahrscheinlich. Das "Mode"-Byte von dem Du redest, wo etwas von "unknown" steht - das scheinen lediglich 8 Flags zu sein, die etwas über den aktuellen Zustand des Thermostats aussagen. Wie eben z.B. das höchstwertige Bit, das anzeigt, ob die Batterie leer ist. Oder "dst", das vermutlich anzeigt, ob die Uhr auf Sommer-/Winterzeit eingestellt ist. Mir wäre nicht bekannt, dass man bei dem Thermostat das Ventil direkt steuern kann. Auch in der Hersteller-App gibt es ja keine derartige Option. > Ich würd es gerne testen, hab mir die Thermostate aber gerade erst > bestellt. Preislich sind die Thermostate echt top. Sie haben aber auch einen gravierenden Nachteil: Sie haben quasi keinerlei Sicherheitsvorkehrungen. Jeder, der in Funkreichweite des Thermostats ist, könnte einem das Thermostat theoretisch nach Belieben verstellen. Die Hersteller-App täuscht da zwar eine gewisse Sicherheit in Form einer PIN vor, aber das ist vereinfacht gesagt reine Verasche. Anyway: Eigentlich ist das hier der falsche Thread, hier geht es nicht um das Heizungsthermostat, sondern um den Türschlossantrieb der gleichen Firma.
Hallo oyo, habe dein keyble-Tool auf dem RASPi installiert und muss sagen, super Arbeit - es funktioniert alles perfekt!! Ich hatte bisher immer einen ESP verwendet, der mir die Taster am Türschlossantrieb 'betätigt'. Das reicht mit aber jetzt nicht mehr aus, da ich weitere Geräte an Türen installiert habe, an den ein Knauf sitzt und jetzt auch die Türfalle mit eingezogen werden muss. Kennst du die Portierung deines Codes von Marius Schiffer für den ESP32? https://github.com/MariusSchiffer/esp32-keyble Der Entwickler führt das Projekt nicht mehr fort, da er diesen Schlossantrieb nicht mehr verwendet. Ich habe mir den Port mal auf einen ESP32-Cam geflasht und getestet. Prinzipiell funktioniert es, aber nicht zuverlässig und der Status des Schloss wir immer mit '1' angegeben. Was mir auch noch aufgefallen ist, nach jeder Aktion resettet der ESP. Da du das Protokoll ja selbst komplett Reverse engineered hast, könntest du vielleicht mal schauen wo der Bug liegt? :) Hier mein forked Repository: https://github.com/tc-maxx/esp32-keyble BG MaXX
Hallo, tcsmaxx schrieb: > Kennst du die Portierung deines Codes von Marius Schiffer für den ESP32? > > https://github.com/MariusSchiffer/esp32-keyble Kenne ich leider nur in dem Sinne, dass ich um die Existenz des Projekts weiss. Näher damit beschäftigt habe ich mich nie, weil ich keine persönliche Verwendung dafür hatte. > Da du das Protokoll ja selbst komplett Reverse engineered hast, könntest > du vielleicht mal schauen wo der Bug liegt? :) Meine C/C++-Kenntnisse sind leider minimal. Dass ich die wichtigsten Teile des Protokolls mal reverse engineered habe, bringt mir an der Stelle vermutlich auch wenig. Das Resetten des ESP nach jeder Aktion dürfte ja auch eher nichts mit dem Protokoll zu tun haben. Ich fürchte, ich würde mehrere Stunden damit verschwenden, recht planlos irgendwas herumprobieren, aber das Problem nicht beheben können. :-( Aktuell verfolge ich nebenbei meinen alten Plan etwas weiter, einen eigenen günstigen 3D-druckbaren Türschlossantrieb zu entwickeln, der über ZigBee und BLE gesteuert werden kann. Wenn ich das weiter durchziehe, muss ich mich demnächst eh tiefer in C/C++ einarbeiten. Eventuell würde ich mir esp32-keyble dann nochmal anschauen, aber auch das will ich nicht versprechen.
Hallo, ich kenne das Projekt von Marius, habe es ausprobiert und war in der Vergangenheit mit ihm in Kontakt. Ein Problem ist, dass der der ESP32 wenn er mit der Arduino Umgebung genutzt wird nicht BT und WLan gleichzeitig nutzen kann. Marius wollte das lösen, indem er die Software auf "nativ" ESP32 portiert. Mein Vorschlag wäre einfach pragmatisch gewesen: WLAN an - Lauschen bis Kommando WLAN aus BT an Kommando per BT absetzen, reaktion abwarten BT aus WLAN an, lauschen was über MQTT so gekommen ist und Status über MQTT absenden. Ich denke, mein Ansatz wäre schnell umgesetzt - wenn man sich besser als ich auskennt. Wieviel Aufwand die Portierung ist (und ob es dann funktioniert) weiß ich nicht. Dennoch finde ich die Lösung über einen ESP32 charmanter, da man kein Dateisystem auf SD-Karte, keine Software-Updates, kein nix hat. Gruß, Hendrik
Hallo Hendrik, ich glaube das funktioniert. Ich habe noch ein paar andere Sachen angepasst und jetzt wird nicht mehr resettet und der Lock-Status wird auch korrekt ermittelt. Ich aktualisiere dann mal mein Repository VG Maxx
Max M. schrieb: > ich glaube das funktioniert. Ich habe noch ein paar andere Sachen > angepasst und jetzt wird nicht mehr resettet und der Lock-Status wird > auch korrekt ermittelt. > > Ich aktualisiere dann mal mein Repository Hey cool. Berichte Mal wir es läuft, dann steige ich auch um. Gruß, Hendrik
Hi, es funktioniert. Ich hab's hochgeladen.
Hallo Max, ich habe es getestet. Funktioniert - und zwar deutlich schneller als mit dem Raspi. Dann habe ich einige Änderungen vorgenommen: 1) statt numerischer Kommandos habe ich "lock/unlock/open" implementiert 2) Geheimes in eine secrets.h ausgelagert 3) Support für zwei Locks hinzugefügt Seit (3) funktioniert es nicht mehr. Magst du dir das mal ansehen? https://github.com/henfri/esp32-keyble Gruß, Hendrik
P.S: hier der Output: # Mit MQTT-Broker verbinden... verbunden! # Nachricht empfangen: lock # Topic: SmartlockHintertuer/command # Lock Number: 1 Schließen # WiFi detiviert # Erhalte Semaphore für Sendekommando # Nonces austauschen # Suche ... # Semaphore abgeben # WiFi aktiviert # WiFi getrennt, wiederverbinden... # WIFI: verbinde... # WIFI: Verbindung wiederhergestellt: SSiD: FriedelNetz # WIFI: Signalqualität: 96% # WIFI: IP-Adresse: 192.168.177.63
Hallo zusammen, ich habe mit einem Raspi4 folgendes Problem (siehe Code unten). Die connection funktioniert grundsätzlich, aber nicht sehr zuverlässig. Mit dem Smartphone kann ich auch aus noch weiterer Entfernung problemlos auf das Schloss zugreifen, mit dem Raspi aber ist es sehr unzuverlässig. Wie man unten sieht gibts im Fehlerfall immer einen Disconnected event (nach einem Connect), nachdem rein gar nichts mehr passiert und die SW in den Timeout läuft, egal wie lange ich ihn stelle. Wenn es funzt dann meistens sehr schnell nach <5 Sekunden. Die Entfernung vom BLE 4.0 USB Stick (extern, nicht der interne vom RPi4) beträgt etwa 7m + ein Wandstück bzw Glastür mit Wandanteil. Würde ein BLE 5.0 Stick hier verbesserung bringen? Ist so ein verhalten bekannt?
1 | att 00:1a:22:13:6f:77: write: 020001 +0ms |
2 | hci push to acl queue: 024700070003000400020001 +8ms |
3 | hci flush - pending: 0 queue length: 1 +2ms |
4 | hci write acl data packet - writing: 024700070003000400020001 +2ms |
5 | simble:event Peripheral 00:1a:22:13:6f:77 : Event "connected" +0ms |
6 | simble:info Connected to peripheral 00:1a:22:13:6f:77 +1s |
7 | simble:info Discovering peripheral 00:1a:22:13:6f:77... +2ms |
8 | hci onSocketData: 011620024700 +8ms |
9 | hci event type = 1 +1ms |
10 | hci cmd = 8214 +0ms |
11 | hci data len = 2 +1ms |
12 | hci onSocketData: 040f0400011620 +0ms |
13 | hci event type = 4 +1ms |
14 | hci sub event type = 15 +0ms |
15 | hci status = 0 +0ms |
16 | hci cmd = 8214 +0ms |
17 | hci onSocketData: 043e0c043e47000000000000000000 +1ms |
18 | hci event type = 4 +0ms |
19 | hci sub event type = 62 +0ms |
20 | hci LE meta event type = 4 +1ms |
21 | hci LE meta event status = 62 +0ms |
22 | hci LE meta event data = 47000000000000000000 +0ms |
23 | hci onSocketData: 0405040047003e +31ms |
24 | hci event type = 4 +0ms |
25 | hci sub event type = 5 +0ms |
26 | hci handle = 71 +0ms |
27 | hci reason = 62 +0ms |
28 | hci flush - pending: 0 queue length: 0 +1ms |
29 | simble:event Peripheral 00:1a:22:13:6f:77 : Event "disconnected" +44ms |
30 | hci onSocketData: 0119040af8c4eff90ff802000000 +16s |
31 | hci event type = 1 +0ms |
32 | hci cmd = 1049 +0ms |
33 | hci data len = 10 +0ms |
34 | hci onSocketData: 040f0400011904 +14ms |
35 | hci event type = 4 +0ms |
36 | hci sub event type = 15 +0ms |
37 | hci status = 0 +0ms |
38 | hci cmd = 1049 +0ms |
39 | Error: Promise did not resolve within 30000 milliseconds |
40 | hci set scan enabled - writing: 010c20020001 +12s |
Rop09 schrieb: > Wie man unten sieht gibts im Fehlerfall immer einen Disconnected event > (nach einem Connect), nachdem rein gar nichts mehr passiert und die SW > in den Timeout läuft, egal wie lange ich ihn stelle. > > Wenn es funzt dann meistens sehr schnell nach <5 Sekunden. Die > Entfernung vom BLE 4.0 USB Stick (extern, nicht der interne vom RPi4) > beträgt etwa 7m + ein Wandstück bzw Glastür mit Wandanteil. > Würde ein BLE 5.0 Stick hier verbesserung bringen? > Ist so ein verhalten bekannt? Ich kann in dem Debug-Log auf Anhieb leider keine Hinweise finden, was der konkrete Grund für den Disconnect sein könnte, mir ist das bislang auch nicht als häufig auftretendes Problem bekannt. Ich kann Dir daher aktuell leider nicht wirklich helfen, sondern nur zwei Sachen sagen, die Du mal probieren könntest um mögliche Problemquellen auszuschliessen: Die interne BLE-Hardware des RPi scheint häufig merkwürdige Probleme zu verursachen, aber da Du ja einen externen Stick nimmst, sollte es daran ja eigentlich nicht liegen - es sei denn, die Software würde statt des externen Sticks in Wahrheit die interne BLE-Hardware verwenden. Du könntest also zum einen mal überprüfen, ob auch ganz sicher der externe Stick verwendet wird, z.B. weil beim Verbindungsaufbau irgendeine Aktivitäts-LED am externen BLE-Stick aufleuchtet oder so. Ansonsten würde ich den Türschlossantrieb testweise mal vom Schloss abmontieren und in unmittelbarer Nähe des RPi platzierst, um eine schlechte Funkverbindung als Problemquellen ausschliessen zu können.
Danke für die Antwort! Am internen RPi BT kanns eigentlich nicht liegen, dass ist aufgrund einer falschen Config nicht aktiv (hciconfig zeigt auch nur ein Device hci0 an, was der externe Stick ist). Ich werds mal mit näher rangehen versuchen, hab jetzt mal als Workaround erstmal einen sehr kurzem 10sec Timeout eingestellt und lasse dann beim Fehlschlag sofort wiederholen, das geht einigermassen, kann aber auch mal 10 Versuche brauchen bis die Verbindung steht.
War leider nicht erfolgreich, auch mit extra bestelltem neuem BLE5 Stick und dem Schloss 1m daneben genau das gleiche. Hier nochmal ein kompletter Log vom Fehlerfall:#
1 | hci setting filter to: 1600000020c10800000000400000 +0ms |
2 | hci set event mask - writing: 01010c08fffffbff07f8bf3d +7ms |
3 | hci set le event mask - writing: 010120081f00000000000000 +0ms |
4 | hci read local version - writing: 01011000 +1ms |
5 | hci write LE host supported - writing: 016d0c020100 +0ms |
6 | hci read LE host supported - writing: 016c0c00 +1ms |
7 | hci le read buffer size - writing: 01022000 +0ms |
8 | hci read bd addr - writing: 01091000 +0ms |
9 | hci onSocketData: 040e0402010c00 +6ms |
10 | hci event type = 4 +0ms |
11 | hci sub event type = 14 +1ms |
12 | hci cmd = 3073 +0ms |
13 | hci status = 0 +0ms |
14 | hci result = +0ms |
15 | hci onSocketData: 040e0402012000 +1ms |
16 | hci event type = 4 +1ms |
17 | hci sub event type = 14 +0ms |
18 | hci cmd = 8193 +0ms |
19 | hci status = 0 +0ms |
20 | hci result = +0ms |
21 | hci onSocketData: 040e0c020110000a7b090a5d0043ec +0ms |
22 | hci event type = 4 +0ms |
23 | hci sub event type = 14 +0ms |
24 | hci cmd = 4097 +1ms |
25 | hci status = 0 +0ms |
26 | hci result = 0a7b090a5d0043ec +0ms |
27 | hci set scan enabled - writing: 010c20020001 +0ms |
28 | hci set scan parameters - writing: 010b200701100010000000 +1ms |
29 | hci onSocketData: 040e04026d0c00 +0ms |
30 | hci event type = 4 +0ms |
31 | hci sub event type = 14 +0ms |
32 | hci cmd = 3181 +1ms |
33 | hci status = 0 +0ms |
34 | hci result = +0ms |
35 | hci onSocketData: 040e06026c0c000100 +0ms |
36 | hci event type = 4 +0ms |
37 | hci sub event type = 14 +0ms |
38 | hci cmd = 3180 +0ms |
39 | hci status = 0 +0ms |
40 | hci result = 0100 +0ms |
41 | hci le = 1 +1ms |
42 | hci simul = 0 +0ms |
43 | hci onSocketData: 040e07020220001b0008 +1ms |
44 | hci event type = 4 +0ms |
45 | hci sub event type = 14 +0ms |
46 | hci cmd = 8194 +0ms |
47 | hci status = 0 +0ms |
48 | hci result = 1b0008 +0ms |
49 | hci le buffer size: length = 27, num = 8 +0ms |
50 | hci onSocketData: 040e0a02091000fbafacbb0144 +3ms |
51 | hci event type = 4 +0ms |
52 | hci sub event type = 14 +0ms |
53 | hci cmd = 4105 +0ms |
54 | hci status = 0 +0ms |
55 | hci result = fbafacbb0144 +0ms |
56 | hci address = 44:01:bb:ac:af:fb +1ms |
57 | noble addressChange 44:01:bb:ac:af:fb +0ms |
58 | hci onSocketData: 040e04020c2000 +2ms |
59 | hci event type = 4 +0ms |
60 | hci sub event type = 14 +0ms |
61 | hci cmd = 8204 +0ms |
62 | hci status = 0 +0ms |
63 | hci result = +0ms |
64 | hci onSocketData: 040e04020b2000 +2ms |
65 | hci event type = 4 +0ms |
66 | hci sub event type = 14 +0ms |
67 | hci cmd = 8203 +0ms |
68 | hci status = 0 +0ms |
69 | hci result = +0ms |
70 | noble stateChange poweredOn +5ms |
71 | noble scanParametersSet +1ms |
72 | simble:info Starting to scan for peripheral... +0ms |
73 | hci set scan enabled - writing: 010c20020001 +3ms |
74 | hci set scan parameters - writing: 010b200701100010000000 +0ms |
75 | hci set scan enabled - writing: 010c20020101 +0ms |
76 | hci onSocketData: 040e04020c2000 +2ms |
77 | hci event type = 4 +0ms |
78 | hci sub event type = 14 +0ms |
79 | hci cmd = 8204 +0ms |
80 | hci status = 0 +0ms |
81 | hci result = +0ms |
82 | noble scanStart +4ms |
83 | hci onSocketData: 040e04020b2000 +3ms |
84 | hci event type = 4 +0ms |
85 | hci sub event type = 14 +0ms |
86 | hci cmd = 8203 +0ms |
87 | hci status = 0 +0ms |
88 | hci result = +0ms |
89 | noble scanParametersSet +2ms |
90 | hci onSocketData: 040e04020c2000 +2ms |
91 | hci event type = 4 +0ms |
92 | hci sub event type = 14 +0ms |
93 | hci cmd = 8204 +0ms |
94 | hci status = 0 +0ms |
95 | hci result = +0ms |
96 | hci onSocketData: 043e1d02010400776f13221a001108094b45592d424c4507ff001a22136f77bb +8s |
97 | hci event type = 4 +0ms |
98 | hci sub event type = 62 +1ms |
99 | hci LE meta event type = 2 +0ms |
100 | hci LE meta event status = 1 +0ms |
101 | hci LE meta event data = 0400776f13221a001108094b45592d424c4507ff001a22136f77bb +1ms |
102 | hci type = 4 +1ms |
103 | hci address = 00:1a:22:13:6f:77 +0ms |
104 | hci address type = public +1ms |
105 | hci eir = 08094b45592d424c4507ff001a22136f77 +0ms |
106 | hci rssi = -69 +1ms |
107 | gap advertisement = {"localName":"KEY-BLE","manufacturerData":{"type":"Buffer","data":[0,26,34,19,111,119]},"serviceData":[],"serviceUuids":[],"solicitationServiceUuids":[]} +0ms |
108 | simble:info Scanned peripheral 00:1a:22:13:6f:77 (Name:"KEY-BLE", advertised services:[]) +8s |
109 | simble:info Peripheral 00:1a:22:13:6f:77 matches filters, stopping scanning +1ms |
110 | hci set scan enabled - writing: 010c20020001 +10ms |
111 | simble:info Connecting to peripheral 00:1a:22:13:6f:77... +3ms |
112 | hci create le conn - writing: 010d2019600030000000776f13221a000006000c000000c80004000600 +6ms |
113 | hci onSocketData: 040e04020c2000 +1ms |
114 | hci event type = 4 +0ms |
115 | hci sub event type = 14 +1ms |
116 | hci cmd = 8204 +0ms |
117 | hci status = 0 +1ms |
118 | hci result = +0ms |
119 | noble scanStop +8s |
120 | hci onSocketData: 040f0400020d20 +1ms |
121 | hci event type = 4 +1ms |
122 | hci sub event type = 15 +0ms |
123 | hci status = 0 +0ms |
124 | hci cmd = 8205 +1ms |
125 | hci onSocketData: 043e13010010000000776f13221a000c000000c80000 +1s |
126 | hci event type = 4 +0ms |
127 | hci sub event type = 62 +1ms |
128 | hci LE meta event type = 1 +0ms |
129 | hci LE meta event status = 0 +0ms |
130 | hci LE meta event data = 10000000776f13221a000c000000c80000 +0ms |
131 | hci handle = 16 +1ms |
132 | hci role = 0 +0ms |
133 | hci address type = public +0ms |
134 | hci address = 00:1a:22:13:6f:77 +0ms |
135 | hci interval = 15 +0ms |
136 | hci latency = 0 +0ms |
137 | hci supervision timeout = 2000 +0ms |
138 | hci master clock accuracy = 0 +0ms |
139 | att 00:1a:22:13:6f:77: write: 020001 +0ms |
140 | hci push to acl queue: 021000070003000400020001 +4ms |
141 | hci flush - pending: 0 queue length: 1 +1ms |
142 | hci write acl data packet - writing: 021000070003000400020001 +0ms |
143 | simble:event Peripheral 00:1a:22:13:6f:77 : Event "connected" +0ms |
144 | simble:info Connected to peripheral 00:1a:22:13:6f:77 +1s |
145 | simble:info Discovering peripheral 00:1a:22:13:6f:77... +1ms |
146 | hci onSocketData: 011620021000 +3ms |
147 | hci event type = 1 +0ms |
148 | hci cmd = 8214 +1ms |
149 | hci data len = 2 +0ms |
150 | hci onSocketData: 040f0400021620 +0ms |
151 | hci event type = 4 +0ms |
152 | hci sub event type = 15 +0ms |
153 | hci status = 0 +0ms |
154 | hci cmd = 8214 +0ms |
155 | hci onSocketData: 0405040010003e +1ms |
156 | hci event type = 4 +0ms |
157 | hci sub event type = 5 +0ms |
158 | hci handle = 16 +0ms |
159 | hci reason = 62 +0ms |
160 | hci flush - pending: 0 queue length: 0 +0ms |
161 | simble:event Peripheral 00:1a:22:13:6f:77 : Event "disconnected" +6ms |
162 | Error: Promise did not resolve within 35000 milliseconds |
163 | hci set scan enabled - writing: 010c20020001 +26s |
Du könntest Mal die esp32 Variante ausprobieren.
Hendrik schrieb: > Du könntest Mal die esp32 Variante ausprobieren. hab ich mir jetzt auch mal installiert (leicht abgeändert), funktioniert aber leider nicht viel besser. Im Gegenteil, der ESP hängt sich auch oft einfach auf wenn er versucht die Verbindung aufzubauen (im eQ3 Teil).
Rop09 schrieb: > War leider nicht erfolgreich, auch mit extra bestelltem neuem BLE5 Stick > und dem Schloss 1m daneben genau das gleiche. Tut mir leid Rop09, damit bin ich jetzt gerade mit meinem Latein ziemlich am Ende. Wobei mich irgendwie verwirrt, dass die ESP32-Version ähnliche Probleme zu haben scheint, und auch ungefähr an der gleichen Stelle. Denn ich hätte jetzt tendenziell getippt, dass das Problem "unterhalb" von keyble steckt, in der für die Bluetooth-Kommunikation zuständigen "noble"-Library. Dass die ESP32-Version, die diese Library nicht nutzt, ähnliche Probleme an der gleichen Stelle hat, spricht da eher dagegen... Die letzte Sache, die mir aktuell noch einfällt, bei der ich es aber trotzdem für ziemlich unwahrscheinlich halte, dass es etwas an dem Problem ändert: Du könntest testweise mal versuchen, die neue keyble-Codebasis 0.3 zu verwenden, weil da ein bisschen was verändert wurde und eine neuere Version der "noble"-Library verwendet wird. Ist allerdings mehr so im Alpha/Beta-Stadium, noch nicht richtig dokumentiert, bislang nur per MQTT zu nutzen usw.: https://github.com/oyooyo/keyble-mqtt
Danke, ist dann der nächste Versuch! Wobei ich beim ESP32 noch nicht ganz sicher bin obs wirklich so schlecht ist. Hatte heute mal die Situation dass ganz hervorragend gut funktioniert hat, quasi nur 1-2 Sekunden gedauert hat bis das Lock reagiert hat und zwar jedesmal! Nachdem ich dann den ESP wegen ner kleinen Änderung neu geflasht hatte wars wieder dann nicht mehr so toll. Gefühlt ist es oft so dass die allererste Connection länger dauert, und es danach schnell geht (obwohl ja der ESP die BT Connection immer wieder trennt), fast so als ob das Schloss meint es wäre noch verbunden...
Gerade mal probiert, aber auch nicht erfolgreich: a) ohne Root ausgeführt:
1 | mqttjs:client _handlePublish: qos 0 +0ms |
2 | (node:6469) UnhandledPromiseRejectionWarning: Error: noble did not change to the "poweredOn" state within 5000 milliseconds. This usually indicates that either no Bluetooth hardware is available, or that you do not have sufficient permissions for accessing the Bluetooth hardware. |
3 | at Timeout.setTimeout [as _onTimeout] (/usr/local/lib/node_modules/keyble-mqtt/node_modules/keyble/utils.js:254:11) |
4 | at ontimeout (timers.js:436:11) |
5 | at tryOnTimeout (timers.js:300:5) |
6 | at listOnTimeout (timers.js:263:5) |
7 | at Timer.processTimers (timers.js:223:10) |
8 | (node:6469) UnhandledPromiseRejectionWarning: Unhandled promise rejection. This error originated either by throwing inside of an async function without a catch block, or by rejecting a promise which was not handled with .catch(). (rejection id: 2) |
9 | ^C hci set scan enabled - writing: 010c20020001 +42s |
10 | hci onSocketError: EPERM, Operation not permitted +0ms |
und daher b) mit root, aber:
1 | /usr/local/lib/node_modules/keyble-mqtt/node_modules/keyble/keyble.js:544 |
2 | receive_characteristic.off('data', on_data_received); |
3 | ^
|
4 | |
5 | ReferenceError: receive_characteristic is not defined |
6 | at Peripheral.peripheral.once (/usr/local/lib/node_modules/keyble-mqtt/node_modules/keyble/keyble.js:544:4) |
7 | at Object.onceWrapper (events.js:277:13) |
8 | at Peripheral.emit (events.js:189:13) |
9 | at Noble.onDisconnect (/usr/local/lib/node_modules/keyble-mqtt/node_modules/@abandonware/noble/lib/noble.js:245:16) |
10 | at NobleBindings.emit (events.js:189:13) |
11 | at NobleBindings.onDisconnComplete (/usr/local/lib/node_modules/keyble-mqtt/node_modules/@abandonware/noble/lib/hci-socket/bindings.js:280:10) |
12 | at Hci.emit (events.js:189:13) |
13 | at Hci.onSocketData (/usr/local/lib/node_modules/keyble-mqtt/node_modules/@abandonware/noble/lib/hci-socket/hci.js:557:12) |
14 | at BluetoothHciSocket.emit (events.js:189:13) |
Mal noch was anderes - ich hab den ESP32 jetzt soweit modifiziert dass er recht zuverlässig läuft, und gebe mir zusätzlich noch die RAW Daten über MWQTT aus wenn ich den Status abfrage, z.B.: 72 01 0A 00 10 17 00 00 Irgendwo hatte ich gelesen dass da auch die Info über den Batteriestatus drin steckt, kanns aber nicht mehr finden welches Bit das war, weiss das jemand?
Hallo, Was hast du denn modifiziert? Magst du nen Pull Request erstellen, damit die Entwicklung weiter geht? Gruß, Hendrik
Hallo, ich habs mal gezipped und auf git hochgeladen (bin leider nicht mit der Vorgehensweise da vertraut ;) Was ich geändert habe: - Wifi reconnect abfolge geändert, ESP reset wenn länger fehl schlägt, andere Interfaces verwendet - MQTT reconnect geändert, weil ich dort den Verdacht habe dass er da den Stack zumüllt wenn der Reconnect nicht geht (bei mir wird Nachts immer das WLAN unterbrochen für einige Zeit, denk das ist der Zeitpunkt wo er sich aufgehängt hat deswegen). - Scanning parameter geändert, hier bin ich aber noch am probieren - eQ3 lib, Mutex timeout auf 10s (nicht sicher ob das was bringt, aber vorher wars so dass sich der ESP öfter mal im BLE Teil verannt hatte - Status command über MQTT zur Schlossstatus Abfrage - Timeout handling falls Schloss nicht antwortet (mit timeout error Rückgabe über MQTT) - RAW data ausgabe über MQTT Denke das wars soweit, war ziemlich viel Trial&Error anfangs weil der ESP sich über nacht immer aufgehängt hatte, macht er damit jedenfalls nicht mehr. Was noch fehtl ist die Batteriezustandsausgabe über MQTT und die Scanning parameter setting über MQTT umd da etwas zu experimentieren. Ist alles nicht sehr schön gemacht, nur funktional ;) Der ganze Vorgang (MQTT kommando empfange -> BLE connection, Kommando ausführen und wieder WLAN verbinden und Status senden) zwischen 7 und 25 Sekunden, sehr unterschiedlich lange. Vereinzelt gibts auch noch BLE timeouts (35sec), das liegt denk ich an der Platzierung, wobei er andererseits auch durch 3 Wände hindurch mit 10m Abstand zum Schloss funktioniert...
Hallo, zippen und Hochladen ist nicht gut... Die Idee hinter git ist ja, dass die Änderungen nachvollziehbar sind. Daher ist es auch am Besten für jede Verbesserung einen Commit ("Upload") zu machen. Wenn du dich mit git schwer tust, dann nutz einfach das Web-Interface auf github: Du kannst jede Datei "editieren". Es öffnet sich ein Editor im Browser. Nachdem du mit einem Problem, welches du behoben hast fertig bist (das kann durchaus mehrere Dateien beinhalten, die du ändern musst), dann machst du einen Pull-Request. Damit bittest du den ursprünglichen Autor deine Änderungen zu prüfen und bei sich zu übernehmen. Ich hoffe, das ist einigermaßen verständlich. Es wäre echt super, wenn du dich da reinarbeitest. Vielleicht mag @tcsmaxx deine Änderungen ja auch manuell aus der Zip übernehmen (hast du mal einen Link?). Gruß, Hendrik
Hallo, wo hast du die Zip denn hochgeladen? Ich wollt mir das gerade mal ansehen. Gruß, Hendrik
Hi@all, ich habe die Änderungen ungetestet bei mir im Repository committed. https://github.com/tc-maxx/esp32-keyble
Hallo, vielen Dank. Für die Zukunft wäre es allerdings wünschenswert, wenn alle mit git arbeiten und Änderungen in kleinen Happen kommitten, so dass man sehen kann, was miteinander zusammenhängt und welchen Zweck hat. Gruß, Hendrik
Hallo tcsmaxx, sehr interesannte Ansatz. Das habe ich gleich ausprobiert mit wemos mini32, leider ohne Erfolg. Woran merke ich es ob der ESP mit der EQ3 verbunden ist? Des weiteren weiss nicht was man hie richtige einträgt: #define ADDRESS "xxx" #define USER_KEY "xxxx" #define USER_ID 2 #define CARD_KEY "M001A2213XXXXXXXXXXXXX" Eine Erklärung im Netz habe ich leider nicht gefunden. Aus dem IObroker / npn Forum ein paar Ansetze, aber?? LG
Da gehören user, mac und key, den du mit keyble beim registrieren mit dem schloss aushandelst, hinein.
danke, habe die Anleitung verfolgt. auch NPN und das System geupdatet. aber, nach dem : keyble-registeruser -n ABC-q XXXXXXXXXX bekomme ich nur die Infos: Registering user on Smart Lock with address "00:1a:YX:13:XX:a9", card key "1576b7256401XXXXXXXXXfc97a36" and serial "QEQ0XXX2"... und weiter nichts da fehlt noch: User registered. Use arguments: --address 01:XX:XX:67:89:ab --user_id 1 --user_key ca78aXXXXX31414359e5e7cecfd7f9e Setting user name to "ABC".. wie kann das Problem lösen. aktuell habe ich Node.js v12.22.1 // bei 14 ging da gar nicht was fehlt da noch?
Adrian K. schrieb: > danke, > habe die Anleitung verfolgt. > auch NPN und das System geupdatet. > aber, nach dem : > keyble-registeruser -n ABC-q XXXXXXXXXX > bekomme ich nur die Infos: > Registering user on Smart Lock with address "00:1a:YX:13:XX:a9", card > key "1576b7256401XXXXXXXXXfc97a36" and serial "QEQ0XXX2"... > > und weiter nichts > da fehlt noch: > User registered. Use arguments: --address 01:XX:XX:67:89:ab --user_id 1 > --user_key ca78aXXXXX31414359e5e7cecfd7f9e > Setting user name to "ABC".. Schalte mal die Debug-Ausgabe ein, indem Du vor den "keyble-registeruser"-Befehl noch ein "DEBUG=* " davorsetzt. keyble liefert leider so gut wie keine Fehlermeldungen, wenn etwas nicht wie erwartet funktioniert.
Hallo, habe jetzt den Fehler, glaube ich, gefunden. Der EQ3 soll sich weniger als 0,5m entfernt vom Raspi befinden. Danke noch mal für Untestüzung.
Ist eine Video-Demo verfügbar?
Hi, ich habe mal mit der ESP32 Umsetzung von tscmaxx/Rop09 rumgespielt. Hier findet Ihr was dabei herausgekommen ist: https://github.com/lumokitho/esp32-keyble - AP Mode zum Konfigurieren der WLAN Verbindung (AutoConnect) - Webinterface zum hinterlegen der MQTT Zugangsdaten und der Schlossparamter - RSSI Signalstärke des Schlossantriebs - Battery Status - Toggle Funktion - Weitere MQTT Endpunkte (Batterie/Zustand/Signalstärke) - Boot Button des ESP32 toggelt das Schloss - Partitionsatabelle angepasst - OTA Update via BIN upload - Hardkodierte Zugangsdaten entfernt - Einheitliche Ausgaben über Serial Eine Anleitung findet Ihr bei GIT. Gucked mal drüber, ob man damit etwas anfangen kann. Schönen Abend!
Wow Danke! Ich hatte Mal versucht, zwei Schlösser zu unterstützen. Dabei bin ich gescheitert - hab ich weiter oben etwas zu geschrieben. Du scheinst dich gut auszukennen :-) Hast du eine Idee? Ich werde deine Variante Mal probieren. Gruß, Hendrik
Hi Hendrik, ich denke, dass es möglich ist mehrere Schlösser nacheinander anzusprechen. Dazu müssten halt die Daten für die weiterern Schlössern hinterlegt werden und entsprechend weitere Topics. Fraglich ist hierbei die Koordination von aussen und aus meiner Sicht auch die Reichweite des ESP. Bei einer Investition von rund 5€ für den ESP, weiter 5€ für ein Netzteil und einem USB Kabel/Adapter, kommt man so auf rund 10€ für eine BLEtoWiFi Bridge pro Schlossantrieb. Bestellt man in China ist man mit nur 5€ dabei. Falls hier tatsächlich Bedarf besteht guck mir das mal an. Ich warte mal auf euer feedback. Was mir definitiv noch fehlt ist, das Registieren eines Benutzers, damit die Bridge völlig eigenständig arbeiten kann. Das hat bei mir momentan höhere Priorität. Schönen Gruß Thomas
Thomas F. schrieb: > - AP Mode zum Konfigurieren der WLAN Verbindung (AutoConnect) > - Webinterface zum hinterlegen der MQTT Zugangsdaten und der > Schlossparamter > - RSSI Signalstärke des Schlossantriebs > - Battery Status > - Toggle Funktion > - Weitere MQTT Endpunkte (Batterie/Zustand/Signalstärke) > - Boot Button des ESP32 toggelt das Schloss > - Partitionsatabelle angepasst > - OTA Update via BIN upload > - Hardkodierte Zugangsdaten entfernt > - Einheitliche Ausgaben über Serial Hut ab - was Du da an Features auflistest, das klingt verdammt vielversprechend! Mir ist gerade aufgefallen, dass ich die diversen ESP32-Ports in der keyble-Dokumentation bislang gar nicht erwähnt habe. Wenn ich das nächste Mal was committe, werde ich da mal einen entsprechenden Abschnitt einfügen und dann vermutlich ganz besonders Deinen Fork empfehlen, weil der auf den ersten Blick am ausgereiftesten und einsteigerfreundlichsten klingt. Einen grossen Teil der Vorarbeit haben ja andere geleistet, die daher ebenfalls erwähnt werden sollten. Da ich mich mit den ESP32-Ports bislang nicht selbst wirklich befasst habe, fehlt mir gerade so ein bisschen der Überblick, wer da alles beteiligt war: gibt es ausser MariusSchiffer, tcs-maxx und lumokitho noch jemanden, der nennenswert zur Entwicklung der ESP32-Version beigetragen hat und daher erwähnt werden sollte?
Hallo Joachim, der Stand mit dem ich gestartet bin war der von RoP09 welcher, als Zip von tc-maxx in seinen Fork hochgeladen wurde. Somit ist RoP09 als Quelle zu nennen. Er hat zwar nun wohl eine GIT account, aber der ist leider leer. Ich hatte mich schon vor Deinem Ansatz mit den Antrieben beschäftigt (ganz weit oben in Thread) mittels Tasker auf einem Android Telefon. Dann ruhte das eine Weile und ich habe mich mit Deiner letzten Umsetzung vor dem Umbau beschäftigt. Diese habe ich auf meine Bedürfnisse angepasst (mehrer Schlösser gleichzetig über mehrere BLE USB Sticks, zur Zeit 5) und auf einem Pi Zero laufen. Dazu musste ich auch an simble einige wenige Änderungen durchführen. Mittlerweile recht stabil. Sobald ich das mal "aufgeräumt" habe lade ich auch diese Version mal bei GIT hoch. Angefixt wurde ich durch tc-maxx, als dieser eine recht stabile ESP32 Version herausgebracht hat. Ich finde den Ansatz mit einer Bridge pro Schloss doch schon sehr charmant. Da wird die Lücke zum viel teureren NUKI schon etwas kleiner. Hauptsächlich deshalb, weil alles lokal läuft. Nochmal großen Dank an alle, die so gute Vorarbeit geleistet haben! Gruß Thomas
Hallo, das mit den mehreren Locks hat keine Priorität. Natürlich sind die ESP preiswert. Aber ich habe das Problem, sie unterzubringen. Da mein Raspi-Zero es geschafft hat, zwei Locks zu bedienen (Reichweite OK will ich damit sagen), hatte ich die Hoffnung auch nur einen ESP unterbringen zu müssen - und da hätte ich in einer Taster-Dose / UP Dose Platz für einen ESP32. Zur Not könnte man zwei nackte ESP32 (d.h. nicht auf so einem Dev-Board) unterkriegen. Aber da weiß ich nicht, wie ich sie flashe. Da müsste ich mich mal erkundigen. Ich müsste auch erstmal prüfen, ob der Empfang in der UP Dose noch ausreichend ist. Ich habe gerade mal deine Firmware geflasht. Sie hat mich dann auch gleich mit ihrem Web-Interface begrüßt (ich hatte leider vergessen den Flash zu löschen, daher waren die Credentials noch da). Nach dem Konfigurieren der MQTT und Schloss-Einstellungen war aber dann Schicht: rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) configsip: 0, SPIWP:0xee clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00 mode:DIO, clock div:2 load:0x3fff0018,len:4 load:0x3fff001c,len:1044 load:0x40078000,len:10124 load:0x40080400,len:5828 entry 0x400806a8 ---Starting up...--- ---AP Settings--- ---AP IP: 192.168.4.1--- ---AP SSID: KeyBLEBridge--- # /keyble.json loaded [E][Preferences.cpp:49] begin(): nvs_open failed: NOT_FOUND [E][WiFiSTA.cpp:221] begin(): connect failed! Woran kann das liegen? Gruß, Hendrik
Hallo Hendrik, versuch mal bitte den Flash zu löschen. Dein ESP wird eine andere Partitionierung haben. Durch die Erweiterungen die ich eingebaut haben war es nötig, die Partitionierung zu ändern. Also Flash vollständig löschen, dann sollte das klappen. Schönen Gruß Thomas
Hallo Thomas, gibts auch die Möglichkeit per json HTTP stati abzufragen? Ich wollte gerade auf github dazu eine frage aufmachen, aber ich denke das hast bei deinem projekt leider nicht aktiv? So wie ich es im code sehe wird wifi disconnected beim connecten zum schloss - gibts dafür keine Alternative? :-/ LG Alois
Hallo, ich habe es jetzt soweit geschafft das Gerät zu konfigurieren. Es ist im WLAN und spricht mit dem MQTT Broker. Ein Verbesserungsvorschlag: Den Port hatte ich unter MQTT freigelassen, annehmend, dass dann der Default genommen wird. Das hat zu einer Endlosschleife (connection refused) geführt und ich musste neu flashen, da das Webinterface nicht erreichbar war. Das Schloss habe ich aber noch nicht schalten können: SmartlockHintertuer/task working SmartlockHintertuer/state timeout SmartlockHintertuer/task waiting SmartlockHintertuer/rssi 107 SmartlockSchuppen/action lock SmartlockHintertuer/task lock SmartlockHintertuer/task unlock SmartlockHintertuer/task 0 SmartlockHintertuer/task 1 SmartlockHintertuer/task close SmartlockHintertuer/task 3 SmartlockHintertuer/task 3 SmartlockHintertuer/task 3 SmartlockHintertuer/task 2 Wie du siehst, wusste ich zunächst nicht, welche Payloads ich senden musste. Das habe ich dann hoffentlich dem Sourcecode richtig entnommen. Das Schloss hat sich aber nicht bewegt. Der Rssi vom Lock wird ja angezeigt. Was können wir daraus schließen? Nur dass eine Verbindung besteht, oder auch dass die Credentials ok sind? Ich bin eigentlich recht sicher, dass die Stimmen, da ich sie auf dem Raspi so verwendet habe... Gruß, Hendrik
Hallo Alois, eine Kommunikation über http ist nicht vorgesehen, alles wird über MQTT gesteuert. Via Arduino ist mir keine Möglichkeit bekannt WiFi und BLE gleichzeitig stabil zu betreiben. Hier müsste man auf Espressif-IDF portieren, da bin ich aber nicht im Thema. Daher der Wechsel von WiFi zu BLE und zurück. Daran habe ich nichts verändert, das ist so geblieben wie bei RoP09. Schönen Gruß Thomas
Hallo Hendrik, kurz zum Port. Ich halte nichts von default Ports, jede Netzwerkumgebung ist anders, daher ist die Porteingabe nötig. Mal gucken, ob ich das als Pflichfeld behandeln kann. Num zum ansprechen der Bridge. das Bridge published auf: - "DeinTopic"/battery - "DeinTopic"/rssi - "DeinTopic"/status - "DeinTopic"/task Die Bridge subscribed auf: - "DeinTopic"/command Du musst also mit einem MQTT Client der mit deinem Broker (identisch mit dem in der Bridge hinterlegten) vebunden ist auf: "DeinTopic"/command/X publishen Zur Zeit gehen folgende Werte - 1 zur Statusabfrage - 2 zum Aufschließen - 3 zum Abschließen - 4 zum Öffnen (Aufschließen und Falle wird gezogen) - 5 zum Umschalten (bei abgeschlossen auf und bei aufgeschlossen zu) Willst Du also aufschließen sendest Du: "DeinTopic"/command/1 Guck mal im GIT Readme, da ist das erklärt. Falls Dein ESP einen Boot Button hat, kannst Du damit testen, ob eine Verbindung besteht, weil dadurch umgeschaltet wird. Der RSSI deutet darauf hin, wie gut die BLE Verbindung ist. Bei 107 ist das Schloss entweder sehr weit entfernt, es gibt Störquellen in der Nähe (z.B. WiFI/Bluetooth/BLE/ZigBee/Z-Wave/MiWi/Loxone Air etc. alles im 2,4GHz Band), oder Hindernisse (Gipskarton/Metall/Beton/Naturstein ect.) zwischen Bridge und Lock. Aus meiner Erfahrung ist alles was Wasser speichern kann tödliche für Funkverbindungen! Eine 20cm Bentonwand funktioniert besser als eine einzige Lage Gipskarton. Schönen Gruß Thomas
:
Bearbeitet durch User
Hallo, danke, ich habe jetzt schalten können! Ich habe das in der Readme übersehen, sorry. Zwischendurch hatte ich nochmal das Problem, dass er die WLAN Credentials wieder vergessen hat... Keine Ahnung woran das nun lag. Gruß, Hendrik
Hallo, ich hatte den ESP jetzt einen Tag nicht angeschlossen. Jetzt hab ich ihn heute wieder eingesteckt und er meldet sich nicht über mqtt. Also den seriellen Monitor dran: rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) configsip: 0, SPIWP:0xee clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00 mode:DIO, clock div:2 load:0x3fff0018,len:4 load:0x3fff001c,len:1044 load:0x40078000,len:10124 load:0x40080400,len:5828 entry 0x400806a8 ---Starting up...--- ---AP Settings--- ---AP IP: 192.168.4.1--- ---AP SSID: KeyBLEBridge--- # /keyble.json loaded [E][WiFiSTA.cpp:221] begin(): connect failed! Empfang ist (hier, wo ich jetzt den seriellen Monitor hab) aber top. Es kann durchaus sein, dass der Empfang am Einbauort nicht gut war. Vergisst er dann die Credentials wieder? Ich hab mich dann mit dem AP verbunden: [E][WebServer.cpp:633] _handleRequest(): request handler not found [E][WebServer.cpp:633] _handleRequest(): request handler not found [E][WebServer.cpp:633] _handleRequest(): request handler not found [E][WebServer.cpp:633] _handleRequest(): request handler not found [E][WebServer.cpp:633] _handleRequest(): request handler not found [E][WebServer.cpp:633] _handleRequest(): request handler not found # WIFI: connected to SSiD: XNetz # WIFI: connected! # WIFI: signalquality: 78% # WiFi connected to IP: 192.168.177.27 # Connect to MQTT-Broker... # Connected! # published SmartlockHintertuer/task/working # WiFi disabled *** get state *** # Nonce exchange # Searching ... Die Lock und MQTT-Settings hatte er noch. Gruß, Hendrik
Hi Hendrik, ich gehe mal von mehreren Punkten aus, die hier zusammenkommen. Ist die Spannungsversorgung vom ESP stabil und ausreichend? Wenn der ESP mit einem "schlechten" Netzteil verbunden ist, kommt es zu unvorhersehbarem Verhalten. Ich habe beim testen ähnliches Verhalten festgestellt, bei mir lag es an zu wenig Saft für den ESP. Also aktiven Hub benutzen. Wie weit ist das Schloss entfernt? Was kommt beim Broker an? Bist Du 1:1 der Anleitung bei GIT gefolgt? Zur Zeit gibt es so gut wie kein Errorhandling. Wie sieht deine Netzwerkstruktur aus? Ein Router, mehrere Router, APs etc. Laut dem Seriallog, gehe ich von falschen Zugangsdaten aus. Tückisch sind hier die Passwortfelder, hier muss jedes mal das Kennwort eingetragen werden. Wie geschrieben, noch keine Fehlerbehandlung im Programm. Ich schlage mal vor, das Du wie folgt vorgehst: ESP vollständig löschen. Browsercache leeren, alternativ über Inkognito/Privaten Modus verbinden. KeyBLEBridge Netzwerk löschen, ich gehe mal davon aus, dass Du mit Windows unterwegs bist? Erneut flashen. Nutzt Du Platformio? Den ESP dort in Betrieb nehmen, wo er auch später eingesetzt werden soll. Falls das Verhalten mit z.B. mehreren Netzen mit gleichem Namen zusammenhängt. Im Bestfall alles mit Seriallog. Zum AP verbinden. Zugang zum eigenen Netz eintragen, mit fester IP, also DHCP aus! Netzmaske und DNS nicht vergessen, DNS1 sollte Dein Router sein, als DNS2 kannst Du z.B. google nehmen 8.8.8.8 Vorab checken, ob die IP tatsächlich frei ist, nicht das sich 2 Geräte die IP teilen. Reboot ESP. Verbindung über die von Dir gewählte IP herstellen. KeyBLE und MQTT Daten eintragen, speichern und dann Reset ausführen. Prüfen, ob weiterhin ein AP aufgespannt wird, bzw. ob der ESP mit dem Netz verbunden ist. Am Broker prüfen, ob und wann die letzten Nachrichten eingegangen sind. Über den Boot Button einen toggle ausführen. Ping mal das Modul dauerhaft an, um zu sehen, ob es zu Netzabbrüchen kommt, bzw. ob überhaupt eine Antwort kommt. Was Für ein ESP Modul benutzt Du eigentlich? Ich denke, dass sind schon mal viele Punkte die Du bitte prüfen kannst. Schönen Gruß Thomas
:
Bearbeitet durch User
Hallo Thomas, danke für deine ausführliche Antwort. > Ist die Spannungsversorgung vom ESP stabil und ausreichend? Am PC hatte ich das Problem bisher nicht. Das Netzteil schafft 2A. Das sollte ja reichen. > Wie weit ist das Schloss entfernt? Ca. 2-3m, aber auch ein wenig Beton dazwischen. > Was kommt beim Broker an? Wenn das Problem besteht: Gar nix. Aber ansonsten: SmartlockHintertuer/command 2 SmartlockHintertuer/command 3 SmartlockHintertuer/command 4 SmartlockHintertuer/task working SmartlockHintertuer/state unknown SmartlockHintertuer/task waiting SmartlockHintertuer/battery true SmartlockHintertuer/rssi -82 SmartlockHintertuer/command 3 SmartlockHintertuer/task working SmartlockHintertuer/state locked SmartlockHintertuer/task waiting SmartlockHintertuer/battery true SmartlockHintertuer/rssi -77 SmartlockHintertuer/command 2 SmartlockHintertuer/task working SmartlockHintertuer/state unknown SmartlockHintertuer/task waiting SmartlockHintertuer/battery true SmartlockHintertuer/rssi -72 SmartlockHintertuer/task working SmartlockHintertuer/state timeout SmartlockHintertuer/task waiting SmartlockHintertuer/rssi 0 SmartlockHintertuer/task working SmartlockHintertuer/state unknown SmartlockHintertuer/task waiting SmartlockHintertuer/battery true SmartlockHintertuer/rssi -79 SmartlockHintertuer/command 3 SmartlockHintertuer/task working SmartlockHintertuer/command 3 SmartlockHintertuer/command 3 SmartlockHintertuer/command 3 > Bist Du 1:1 der Anleitung bei GIT gefolgt? Gerade nochmal gecheckt. Ja. Ich habe mal mit und mal ohne DHCP probiert. > Wie sieht deine Netzwerkstruktur aus? Mehrere APs (Unifi) und ein Router (FritzBox). > Laut dem Seriallog, gehe ich von falschen Zugangsdaten aus. Tückisch > sind hier die Passwortfelder, hier muss jedes mal das Kennwort Das kann sein, aber dann liegt es nicht in meiner Verantwortung: Es hat alles funktioniert. Dann habe ich den ESP eine Nacht nicht verwendet und dann funktioniert es nicht mehr. Ich könnte mir höchstens vorstellen, dass die Daten kurrumpiert wurden. Ein print der keyble.json nach dem Start wäre gut. > KeyBLEBridge Netzwerk löschen, ich gehe mal davon aus, dass Du mit > Windows unterwegs bist? Den AP hab ich immer in Android konfiguriert. Und da ist übrigens das Wlan Passwort im Autocomplete. Einen Tippfehler kann ich auch deshalb ausschließen. > Erneut flashen. Nutzt Du Platformio? Ja. > Den ESP dort in Betrieb nehmen, wo er auch später eingesetzt werden > soll. Falls das Verhalten mit z.B. mehreren Netzen mit gleichem Namen Das kann ich machen. Das waren tatsächlich unterschiedliche APs. Im Bestfall alles mit Seriallog. > DNS2 kannst Du z.B. google nehmen 8.8.8.8 Genau den hatte ich tatsächlich genommen. > Vorab checken, ob die IP tatsächlich frei ist, nicht das sich 2 Geräte > die IP teilen. Die FritzBox hat die .27 jetzt für den ESP reserviert. > Was Für ein ESP Modul benutzt Du eigentlich? NodeMCU Gruß, Hendrik
Hallo, ich hab den ESP jetzt mal an seinen Zielort gepackt --> keine Verbindung mehr. Ich hab mich dann mit dem AP verbunden und bin auf SSID gegangen. Da wurde mir mein Netz angezeigt, allerdings mit Signalstärke N/A. Etwas später mit der Signalstärke 16%. Ich hab ihn dann nochmal an den Rechner angeschlossen und bin dann an den Zielort gegangen: ---Starting up...--- ---AP Settings--- ---AP IP: 192.168.4.1--- ---AP SSID: KeyBLEBridge--- # /keyble.json loaded # WIFI: connected to SSiD: X # WIFI: connected! # WIFI: signalquality: 76% # WiFi connected to IP: 192.168.177.27 # Connect to MQTT-Broker... # Connected! # published SmartlockHintertuer/task/working # WiFi disabled *** get state *** # Nonce exchange # Searching ... !!! Lockstatus -1 - timeout !!! # Done! # WiFi enabled # WiFi disconnected, reconnect... Es kann also durchaus an der Signalstärke liegen. ABER: Ich hatte das Problem auch schon in Blickverbindung mit dem AP. Ich habe das Gefühl, dass er nach der Situation oben die Credentials gerne vergisst. Zudem: Ich sitze jetzt in Sichtweite des AP und sehe weiter: # WiFi enabled # WiFi disconnected, reconnect... Gruß, Hendrik
So, ich habe jetzt 15 min gewartet und es tat sich nix (kein Re-Connect). Dann ein Reset rst:0x1 (POWERON_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) configsip: 0, SPIWP:0xee clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00 mode:DIO, clock div:2 load:0x3fff0018,len:4 load:0x3fff001c,len:1044 load:0x40078000,len:10124 load:0x40080400,len:5828 entry 0x400806a8 ---Starting up...--- ---AP Settings--- ---AP IP: 192.168.4.1--- ---AP SSID: KeyBLEBridge--- # /keyble.json loaded [E][WiFiSTA.cpp:221] begin(): connect failed! Wenn ich mich mit dem AP verbinde, sagt er "Please click on gear to setup WiFi" Mein Netz findet er. 58% Er fragt NICHT nach dem Wlan Passwort. Er hat die anderen Einstellungen noch (IP, KeyBLE) Komisch... Gruß, Hendrik
Hi Hendrik, hier muss ich mal näher forschen, woran das was Du beschreibst liegt. Bis jetzt kann ich das hier nicht nachstellen. Erneut, Passwörter müssen jedesmal neu eingegeben werden. Es gibt kein Errohandling und keine Prüfung der Eingaben. Es wird also zur Zeit an keiner Stelle nach etwas gefragt. Im Bedarfsfall sende ich dir mal eine fertige BIN zum Upload via OTA. Geh mal bitte in die AutoConnectDefs.h und entferne die Kommentierung von #define AC_DEBUG Das aktiviert serielles Debuging von AutoConnect. Gleiches machst Du bitte mal in der PageBuilder.h mit #define PB_DEBUG Das aktiviert serielles Debuging von PageBuilder. Damit kommen über Serial Debug Infos von AutoConect und PageBuilder. Mal gucken ob man das damit eingrenzen kann. Schönen Gruß Thomas P.S. Ich danke dir für Deinen Testeinsatz! Sei aber bitte so nachsichtig und betrachte das, was zur Zeit da ist nicht als fertiges Produkt, sondern frühe Alpha. Hier spielen sehr viele Faktoren zusammen.
:
Bearbeitet durch User
Hi Hendrik, hier mal ein Beispiel log von eine vorher geeerten ESP nach Anleitung bei GIT und eingeschaltetem Debuging:
1 | ---Starting up...--- |
2 | ---AP Settings--- |
3 | ---AP IP: 192.168.4.1--- |
4 | ---AP SSID: KeyBLEBridge--- |
5 | [AC] Element<style> not registered |
6 | [AC] style<7> of /keyble_setting created |
7 | [AC] *noname placed on /keyble_setting |
8 | [AC] style<7> of /keyble_setting loaded |
9 | [AC] Element<MqttServerName> not registered |
10 | [AC] MqttServerName<4> of /keyble_setting created |
11 | [AC] *noname placed on /keyble_setting |
12 | [AC] MqttServerName<4> of /keyble_setting loaded |
13 | [AC] Element<MqttPort> not registered |
14 | [AC] MqttPort<4> of /keyble_setting created |
15 | [AC] *noname placed on /keyble_setting |
16 | [AC] MqttPort<4> of /keyble_setting loaded |
17 | [AC] Element<MqttUserName> not registered |
18 | [AC] MqttUserName<4> of /keyble_setting created |
19 | [AC] *noname placed on /keyble_setting |
20 | [AC] MqttUserName<4> of /keyble_setting loaded |
21 | [AC] Element<MqttUserPass> not registered |
22 | [AC] MqttUserPass<4> of /keyble_setting created |
23 | [AC] *noname placed on /keyble_setting |
24 | [AC] MqttUserPass<4> of /keyble_setting loaded |
25 | [AC] Element<MqttTopic> not registered |
26 | [AC] MqttTopic<4> of /keyble_setting created |
27 | [AC] *noname placed on /keyble_setting |
28 | [AC] MqttTopic<4> of /keyble_setting loaded |
29 | [AC] Element<KeyBleMac> not registered |
30 | [AC] KeyBleMac<4> of /keyble_setting created |
31 | [AC] *noname placed on /keyble_setting |
32 | [AC] KeyBleMac<4> of /keyble_setting loaded |
33 | [AC] Element<KeyBleUserKey> not registered |
34 | [AC] KeyBleUserKey<4> of /keyble_setting created |
35 | [AC] *noname placed on /keyble_setting |
36 | [AC] KeyBleUserKey<4> of /keyble_setting loaded |
37 | [AC] Element<KeyBleUserId> not registered |
38 | [AC] KeyBleUserId<4> of /keyble_setting created |
39 | [AC] *noname placed on /keyble_setting |
40 | [AC] KeyBleUserId<4> of /keyble_setting loaded |
41 | [AC] Element<save> not registered |
42 | [AC] save<8> of /keyble_setting created |
43 | [AC] *noname placed on /keyble_setting |
44 | [AC] save<8> of /keyble_setting loaded |
45 | [AC] Element<discard> not registered |
46 | [AC] discard<8> of /keyble_setting created |
47 | [AC] *noname placed on /keyble_setting |
48 | [AC] discard<8> of /keyble_setting loaded |
49 | [AC] /keyble_setting on hands |
50 | [AC] Element<caption> not registered |
51 | [AC] caption<9> of /keyble_save created |
52 | [AC] *noname placed on /keyble_save |
53 | [AC] caption<9> of /keyble_save loaded |
54 | [AC] Element<parameters> not registered |
55 | [AC] parameters<9> of /keyble_save created |
56 | [AC] *noname placed on /keyble_save |
57 | [AC] parameters<9> of /keyble_save loaded |
58 | [AC] Element<clear> not registered |
59 | [AC] clear<8> of /keyble_save created |
60 | [AC] *noname placed on /keyble_save |
61 | [AC] clear<8> of /keyble_save loaded |
62 | [AC] /keyble_save on hands |
63 | [AC] Deserialize:EmptyInput |
64 | # /keyble.json failed to load
|
65 | [AC] Current: |
66 | [E][Preferences.cpp:49] begin(): nvs_open failed: NOT_FOUND |
67 | [AC] Preferences begin failed to import AC_CREDT |
68 | [AC] WiFi.config(IP=0.0.0.0, Gateway=0.0.0.0, Subnetmask=0.0.0.0, DNS1=0.0.0.0, DNS2=0.0.0.0) |
69 | [E][WiFiSTA.cpp:221] begin(): connect failed! |
70 | [AC] WiFi.begin() failed |
71 | [AC] SoftAP configure 192.168.4.1, 192.168.4.1, 255.255.255.0 |
72 | [AC] SoftAP KeyBLEBridge/eqivalock Ch(1) IP:192.168.4.1 |
73 | [AC] http server started |
74 | [AC] DNS server started |
75 | [AC] s_rc placed on /_ac/update |
76 | [AC] cap placed on /_ac/update |
77 | [AC] bin placed on /_ac/update |
78 | [AC] update placed on /_ac/update |
79 | [AC] js placed on /_ac/update |
80 | [AC] bin placed on /_ac/update_act |
81 | [AC] result placed on /_ac/update_act |
82 | [AC] dvo placed on /_ac/update_act |
83 | [AC] rc placed on /_ac/update_act |
84 | [AC] dvc placed on /_ac/update_act |
85 | [AC] /_ac/update on hands |
86 | [AC] /_ac/update_act on hands |
87 | [AC] Host:,/connecttest.txt,ignored |
88 | [E][WebServer.cpp:633] _handleRequest(): request handler not found |
89 | [AC] Detected application, www.msftconnecttest.com, 0.0.0.0 |
90 | [AC] Host:www.msftconnecttest.com,/connecttest.txt,ignored |
91 | [E][WebServer.cpp:633] _handleRequest(): request handler not found |
92 | [AC] Detected application, www.msftconnecttest.com, 0.0.0.0 |
93 | [AC] Host:192.168.4.1,/_ac,generated:/_ac, allocated |
94 | [PB] HTTP_GET /_ac |
95 | [AC] Host:192.168.4.1,/_ac,already allocated |
96 | [PB] Chunked, HEAD CSS_BASE CSS_TABLE blk:1270 CSS_LUXBAR blk:1270 blk:1270 MENU_PRE blk:1270 MENU_AUX MENU_POST ESTAB_SSID WIFI_MODE WIFI_STATUS LOCAL_IP GATEWAY NETMASK SOFTAP_IP AP_MAC STA_MAC CHANNEL DBM CHIP_ID CPU_FREQ FLASH_SIZE FREE_HEAP blk:1153 |
97 | [AC] Host:192.168.4.1,/connecttest.txt,ignored |
98 | [E][WebServer.cpp:633] _handleRequest(): request handler not found |
99 | [AC] Detected application, www.msftconnecttest.com, 0.0.0.0 |
100 | [AC] Host:www.msftconnecttest.com,/connecttest.txt,ignored |
101 | [E][WebServer.cpp:633] _handleRequest(): request handler not found |
102 | [AC] Detected application, www.msftconnecttest.com, 0.0.0.0 |
103 | [AC] Host:www.msftconnecttest.com,/connecttest.txt,ignored |
104 | [E][WebServer.cpp:633] _handleRequest(): request handler not found |
105 | [AC] Detected application, www.msftconnecttest.com, 0.0.0.0 |
106 | [AC] Host:www.msftconnecttest.com,/connecttest.txt,ignored |
107 | [E][WebServer.cpp:633] _handleRequest(): request handler not found |
108 | [AC] Detected application, www.msftconnecttest.com, 0.0.0.0 |
109 | [AC] Host:www.msftconnecttest.com,/connecttest.txt,ignored |
110 | [E][WebServer.cpp:633] _handleRequest(): request handler not found |
111 | [AC] Detected application, www.msftconnecttest.com, 0.0.0.0 |
112 | [AC] Host:www.msftconnecttest.com,/connecttest.txt,ignored |
113 | [E][WebServer.cpp:633] _handleRequest(): request handler not found |
114 | [AC] Detected application, www.msftconnecttest.com, 0.0.0.0 |
115 | [AC] Host:www.msftconnecttest.com,/_ac/config,generated:/_ac/config, allocated |
116 | [PB] HTTP_GET /_ac/config |
117 | [AC] Host:192.168.4.1,/_ac/config,already allocated |
118 | [PB] Chunked, HEAD CSS_BASE CSS_ICON_LOCK blk:1270 CSS_UL CSS_INPUT_BUTTON blk:1270 CSS_INPUT_TEXT blk:1270 CSS_LUXBAR blk:1270 blk:1270 MENU_PRE MENU_AUX MENU_POST blk:1270 LIST_SSID [AC] 4 network(s) found, 769 buf |
119 | SSID_COUNT HIDDEN_COUNT blk:1270 CONFIG_IP blk:1270 blk:238 |
120 | [AC] Host:192.168.4.1,/connecttest.txt,ignored |
121 | [E][WebServer.cpp:633] _handleRequest(): request handler not found |
122 | [AC] Detected application, www.msftconnecttest.com, 0.0.0.0 |
123 | [AC] Host:www.msftconnecttest.com,/connecttest.txt,ignored |
124 | [E][WebServer.cpp:633] _handleRequest(): request handler not found |
125 | [AC] Detected application, www.msftconnecttest.com, 0.0.0.0 |
126 | [AC] Host:www.msftconnecttest.com,/_ac/connect,generated:/_ac/connect, allocated |
127 | [PB] HTTP_POST /_ac/connect |
128 | [AC] Host:192.168.4.1,/_ac/connect,already allocated |
129 | [PB] Chunked, REQ [AC] Queried SSID:LuMoKiTho24 |
130 | HEAD CSS_BASE CSS_SPINNER blk:1270 CSS_LUXBAR blk:1270 blk:1270 MENU_PRE blk:1270 MENU_POST CUR_SSID blk:648 |
131 | [AC] WiFi.config(IP=192.168.1.55, Gateway=192.168.1.1, Subnetmask=255.255.255.0, DNS1=192.168.1.1, DNS2=8.8.8.8) |
132 | [AC] WiFi.begin(LuMoKiTho24,KENNWORT) ch(13)....................established IP:192.168.1.55 |
133 | [AC] DNS server stopped |
134 | [AC] Maintain SoftAP |
135 | [E][Preferences.cpp:49] begin(): nvs_open failed: NOT_FOUND |
136 | [AC] Preferences begin failed to import AC_CREDT |
137 | [AC] LuMoKiTho24 credential saved |
Ab hier sind die WLAN Zugangsdaten eingetragen
1 | [AC] Event<17> handler registered |
2 | # WIFI: connected to SSiD: LuMoKiTho24
|
3 | # WIFI: connected!
|
4 | # WIFI: signalquality: 100%
|
5 | # WiFi connected to IP: 192.168.1.55
|
6 | # Please fill in MQTT and KeyBLE credentials first!
|
7 | [AC] STA lost connection:63 |
8 | [AC] STA connection restored |
9 | [AC] Host:192.168.4.1,/connecttest.txt,ignored |
10 | [E][WebServer.cpp:633] _handleRequest(): request handler not found |
11 | [AC] Detected application, www.msftconnecttest.com, 192.168.1.55 |
12 | [AC] Host:www.msftconnecttest.com,/_ac/result,generated:/_ac/result, allocated |
13 | [PB] HTTP_GET /_ac/result |
14 | [AC] Host:192.168.4.1,/_ac/result,already allocated |
15 | [PB] Chunked, RESULT [AC] Redirect to http://192.168.4.1 |
16 | [AC] Leaves:5[ms] |
17 | [PB] Send canceled |
18 | [AC] Host:192.168.4.1,/_ac/success,generated:/_ac/success, allocated |
19 | [PB] HTTP_GET /_ac/success |
20 | [AC] Host:192.168.4.1,/_ac/success,already allocated |
21 | [PB] Chunked, HEAD CSS_BASE CSS_TABLE blk:1270 CSS_LUXBAR blk:1270 blk:1270 MENU_PRE blk:1270 MENU_AUX MENU_POST ESTAB_SSID WIFI_MODE WIFI_STATUS LOCAL_IP GATEWAY NETMASK CHANNEL DBM blk:859 |
22 | [AC] Host:192.168.1.55,/keyble_setting,generated:/keyble_setting, allocated |
Ab hier wird zu den MQTT und KeyBLE Zugangsdaten gewechselt
1 | [PB] HTTP_GET /keyble_setting |
2 | [AC] Host:192.168.1.55,/keyble_setting,already allocated |
3 | [PB] Chunked, HEAD AUX_TITLE CSS_BASE CSS_UL blk:1270 CSS_INPUT_BUTTON CSS_INPUT_TEXT blk:1270 CSS_LUXBAR blk:1270 blk:1270 AUX_CSS MENU_PRE blk:1270 MENU_AUX MENU_POST ENC_TYPE AUX_ELEMENT [AC] CB in AHEAD /keyble_setting |
4 | [AC] Deserialize:EmptyInput |
5 | # /keyble.json failed to load
|
6 | blk:1270 AUX_URI blk:1122 |
7 | [AC] Host:192.168.1.55,/keyble_save,generated:/keyble_save, allocated |
8 | [PB] HTTP_POST /keyble_save |
9 | [AC] Host:192.168.1.55,/keyble_save,already allocated |
10 | [PB] Chunked, HEAD AUX_TITLE CSS_BASE CSS_UL blk:1270 CSS_INPUT_BUTTON CSS_INPUT_TEXT blk:1270 CSS_LUXBAR blk:1270 blk:1270 AUX_CSS MENU_PRE blk:1270 MENU_AUX MENU_POST ENC_TYPE AUX_ELEMENT [AC] fetch /keyble_setting,elements stored |
11 | [AC] CB in AHEAD /keyble_save |
12 | [AC] JSON buffer size:1952 |
13 | blk:1270 AUX_URI blk:249 |
14 | [AC] Host:192.168.1.55,/keyble_setting,generated:/keyble_setting, allocated |
15 | [PB] HTTP_POST /keyble_setting |
16 | [AC] Host:192.168.1.55,/keyble_setting,already allocated |
Ab hier werden die Zugangsdaten gespeichert
1 | [PB] Chunked, HEAD AUX_TITLE CSS_BASE CSS_UL blk:1270 CSS_INPUT_BUTTON CSS_INPUT_TEXT blk:1270 CSS_LUXBAR blk:1270 blk:1270 AUX_CSS MENU_PRE blk:1270 MENU_AUX MENU_POST ENC_TYPE AUX_ELEMENT [AC] fetch /keyble_save,elements stored |
2 | [AC] CB in AHEAD /keyble_setting |
3 | [AC] MqttServerName<4> of /keyble_setting loaded |
4 | [AC] MqttPort<4> of /keyble_setting loaded |
5 | [AC] MqttUserName<4> of /keyble_setting loaded |
6 | [AC] MqttUserPass<4> of /keyble_setting loaded |
7 | [AC] MqttTopic<4> of /keyble_setting loaded |
8 | [AC] KeyBleMac<4> of /keyble_setting loaded |
9 | [AC] KeyBleUserKey<4> of /keyble_setting loaded |
10 | [AC] KeyBleUserId<4> of /keyble_setting loaded |
11 | # /keyble.json loaded
|
12 | blk:1270 AUX_URI blk:1270 blk:24 |
13 | [AC] Host:192.168.1.55,/keyble_save,generated:/keyble_save, allocated |
14 | [PB] HTTP_POST /keyble_save |
15 | [AC] Host:192.168.1.55,/keyble_save,already allocated |
16 | [PB] Chunked, HEAD AUX_TITLE CSS_BASE CSS_UL blk:1270 CSS_INPUT_BUTTON CSS_INPUT_TEXT blk:1270 CSS_LUXBAR blk:1270 blk:1270 AUX_CSS MENU_PRE blk:1270 MENU_AUX MENU_POST ENC_TYPE AUX_ELEMENT [AC] fetch /keyble_setting,elements stored |
17 | [AC] CB in AHEAD /keyble_save |
18 | [AC] JSON buffer size:1952 |
19 | blk:1270 AUX_URI blk:249 |
20 | [AC] Host:192.168.1.55,/keyble_setting,generated:/keyble_setting, allocated |
21 | [PB] HTTP_POST /keyble_setting |
22 | [AC] Host:192.168.1.55,/keyble_setting,already allocated |
23 | [PB] Chunked, HEAD AUX_TITLE CSS_BASE CSS_UL blk:1270 CSS_INPUT_BUTTON CSS_INPUT_TEXT blk:1270 CSS_LUXBAR blk:1270 blk:1270 AUX_CSS MENU_PRE blk:1270 MENU_AUX MENU_POST ENC_TYPE AUX_ELEMENT [AC] fetch /keyble_save,elements stored |
24 | [AC] CB in AHEAD /keyble_setting |
25 | [AC] MqttServerName<4> of /keyble_setting loaded |
26 | [AC] MqttPort<4> of /keyble_setting loaded |
27 | [AC] MqttUserName<4> of /keyble_setting loaded |
28 | [AC] MqttUserPass<4> of /keyble_setting loaded |
29 | [AC] MqttTopic<4> of /keyble_setting loaded |
30 | [AC] KeyBleMac<4> of /keyble_setting loaded |
31 | [AC] KeyBleUserKey<4> of /keyble_setting loaded |
32 | [AC] KeyBleUserId<4> of /keyble_setting loaded |
33 | # /keyble.json loaded
|
Ab hier werden die Zugangdaten verwendet und ein Reset durchgeführt
1 | blk:1270 AUX_URI blk:1270 blk:24 |
2 | [AC] Host:192.168.1.55,/_ac/reset,generated:/_ac/reset, allocated |
3 | [PB] HTTP_GET /_ac/reset |
4 | [AC] Host:192.168.1.55,/_ac/reset,already allocated |
5 | [PB] Chunked, HEAD UPTIME BOOTURI RESET UPTIME blk:551 |
6 | [AC] Event<17> handler released |
7 | [AC] Portal stopped |
8 | [AC] Reset |
9 | ets Jun 8 2016 00:22:57 |
10 | |
11 | rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) |
12 | configsip: 0, SPIWP:0xee |
13 | clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00 |
14 | mode:DIO, clock div:2 |
15 | load:0x3fff0018,len:4 |
16 | load:0x3fff001c,len:1044 |
17 | load:0x40078000,len:10124 |
18 | load:0x40080400,len:5828 |
19 | entry 0x400806a8 |
20 | ---Starting up...--- |
21 | ---AP Settings--- |
22 | ---AP IP: 192.168.4.1--- |
23 | ---AP SSID: KeyBLEBridge--- |
24 | [AC] Element<style> not registered |
25 | [AC] style<7> of /keyble_setting created |
26 | [AC] *noname placed on /keyble_setting |
27 | [AC] style<7> of /keyble_setting loaded |
28 | [AC] Element<MqttServerName> not registered |
29 | [AC] MqttServerName<4> of /keyble_setting created |
30 | [AC] *noname placed on /keyble_setting |
31 | [AC] MqttServerName<4> of /keyble_setting loaded |
32 | [AC] Element<MqttPort> not registered |
33 | [AC] MqttPort<4> of /keyble_setting created |
34 | [AC] *noname placed on /keyble_setting |
35 | [AC] MqttPort<4> of /keyble_setting loaded |
36 | [AC] Element<MqttUserName> not registered |
37 | [AC] MqttUserName<4> of /keyble_setting created |
38 | [AC] *noname placed on /keyble_setting |
39 | [AC] MqttUserName<4> of /keyble_setting loaded |
40 | [AC] Element<MqttUserPass> not registered |
41 | [AC] MqttUserPass<4> of /keyble_setting created |
42 | [AC] *noname placed on /keyble_setting |
43 | [AC] MqttUserPass<4> of /keyble_setting loaded |
44 | [AC] Element<MqttTopic> not registered |
45 | [AC] MqttTopic<4> of /keyble_setting created |
46 | [AC] *noname placed on /keyble_setting |
47 | [AC] MqttTopic<4> of /keyble_setting loaded |
48 | [AC] Element<KeyBleMac> not registered |
49 | [AC] KeyBleMac<4> of /keyble_setting created |
50 | [AC] *noname placed on /keyble_setting |
51 | [AC] KeyBleMac<4> of /keyble_setting loaded |
52 | [AC] Element<KeyBleUserKey> not registered |
53 | [AC] KeyBleUserKey<4> of /keyble_setting created |
54 | [AC] *noname placed on /keyble_setting |
55 | [AC] KeyBleUserKey<4> of /keyble_setting loaded |
56 | [AC] Element<KeyBleUserId> not registered |
57 | [AC] KeyBleUserId<4> of /keyble_setting created |
58 | [AC] *noname placed on /keyble_setting |
59 | [AC] KeyBleUserId<4> of /keyble_setting loaded |
60 | [AC] Element<save> not registered |
61 | [AC] save<8> of /keyble_setting created |
62 | [AC] *noname placed on /keyble_setting |
63 | [AC] save<8> of /keyble_setting loaded |
64 | [AC] Element<discard> not registered |
65 | [AC] discard<8> of /keyble_setting created |
66 | [AC] *noname placed on /keyble_setting |
67 | [AC] discard<8> of /keyble_setting loaded |
68 | [AC] /keyble_setting on hands |
69 | [AC] Element<caption> not registered |
70 | [AC] caption<9> of /keyble_save created |
71 | [AC] *noname placed on /keyble_save |
72 | [AC] caption<9> of /keyble_save loaded |
73 | [AC] Element<parameters> not registered |
74 | [AC] parameters<9> of /keyble_save created |
75 | [AC] *noname placed on /keyble_save |
76 | [AC] parameters<9> of /keyble_save loaded |
77 | [AC] Element<clear> not registered |
78 | [AC] clear<8> of /keyble_save created |
79 | [AC] *noname placed on /keyble_save |
80 | [AC] clear<8> of /keyble_save loaded |
81 | [AC] /keyble_save on hands |
82 | [AC] MqttServerName<4> of /keyble_setting loaded |
83 | [AC] MqttPort<4> of /keyble_setting loaded |
84 | [AC] MqttUserName<4> of /keyble_setting loaded |
85 | [AC] MqttUserPass<4> of /keyble_setting loaded |
86 | [AC] MqttTopic<4> of /keyble_setting loaded |
87 | [AC] KeyBleMac<4> of /keyble_setting loaded |
88 | [AC] KeyBleUserKey<4> of /keyble_setting loaded |
89 | [AC] KeyBleUserId<4> of /keyble_setting loaded |
90 | # /keyble.json loaded
|
91 | [AC] Current:LuMoKiTho24 |
92 | [AC] WiFi.config(IP=192.168.1.55, Gateway=192.168.1.1, Subnetmask=255.255.255.0, DNS1=192.168.1.1, DNS2=8.8.8.8) |
93 | [AC] WiFi.begin()........established IP:192.168.1.55 |
94 | [AC] http server started |
95 | # WIFI: connected to SSiD: LuMoKiTho24
|
96 | # WIFI: connected!
|
97 | # WIFI: signalquality: 96%
|
98 | # WiFi connected to IP: 192.168.1.55
|
99 | # Connect to MQTT-Broker...
|
100 | # Connected!
|
101 | [AC] s_rc placed on /_ac/update |
102 | [AC] cap placed on /_ac/update |
103 | [AC] bin placed on /_ac/update |
104 | [AC] update placed on /_ac/update |
105 | [AC] js placed on /_ac/update |
106 | [AC] bin placed on /_ac/update_act |
107 | [AC] result placed on /_ac/update_act |
108 | [AC] dvo placed on /_ac/update_act |
109 | [AC] rc placed on /_ac/update_act |
110 | [AC] dvc placed on /_ac/update_act |
111 | [AC] /_ac/update on hands |
112 | [AC] /_ac/update_act on hands |
MQTT und WLAN Verbindungen sind aufgebaut
1 | # published SmartLock/task/working
|
2 | # WiFi disabled
|
3 | Hier wir die initiale Abfrage des Schlossantriebes gestartet |
4 | |
5 | *** get state *** |
6 | # Nonce exchange
|
7 | # Searching ...
|
8 | # Found device: 00:1a:22:09:8d:70
|
9 | # RSSI: -80
|
10 | # Connecting in tick
|
11 | # Connecting...
|
12 | # Connected in tick
|
13 | [E][BLERemoteCharacteristic.cpp:287] retrieveDescriptors(): esp_ble_gattc_get_all_descr: Unknown |
14 | # sendMessage end.
|
15 | # Sending actual fragment: 800201221CF8203B28B5BB0000000000
|
16 | # Fragment Data: 800301D5D897E95A2BF1E80010170000
|
17 | # Nonce exchanged
|
18 | # sendMessage called again...
|
19 | # Cryptdata length: 8
|
20 | # Cryptdata length: 8
|
21 | # Authentifizierungswert berechnen...
|
22 | # fertig...
|
23 | # sendMessage end.
|
24 | # Sending actual fragment: 808247E03D6DF455510B00017C61AB9F
|
25 | # Fragment Data: 80834CBA7BDDB10097B50001880AE019
|
26 | # Auth value: 880AE019
|
27 | # Cryptdata length: 8
|
28 | # Crypted data: 4CBA7BDDB10097B5
|
29 | # Authentifizierungswert berechnen...
|
30 | # fertig...
|
31 | # Decrypted: 71010A0010170000
|
32 | # New state: 2
|
33 | # Done!
|
Ab hier wird BLE getrennt und WLAN aufgebaut
1 | # Disconnected!
|
2 | # WiFi enabled
|
3 | # WiFi disconnected, reconnect...
|
4 | [AC] Current:LuMoKiTho24 |
5 | [AC] WiFi.config(IP=192.168.1.55, Gateway=192.168.1.1, Subnetmask=255.255.255.0, DNS1=192.168.1.1, DNS2=8.8.8.8) |
6 | [AC] WiFi.begin()......established IP:192.168.1.55 |
7 | # WIFI: connected to SSiD: LuMoKiTho24
|
8 | # WIFI: connected!
|
9 | # WIFI: signalquality: 98%
|
10 | # WiFi connected to IP: 192.168.1.55
|
11 | # MQTT disconnected, reconnect...
|
12 | # Connect to MQTT-Broker...
|
13 | # Connected!
|
WLAN und MQTT vebunden Rückgabe vom Schloss veröffentlichen
1 | # published SmartLock/state/unlocked
|
2 | # published SmartLock/task/waiting
|
3 | # published SmartLock/battery/1
|
4 | # published SmartLock/rssi/-80
|
5 | # waiting for command...
|
In diesem Status verbleibt der ESP bis er von außen über "DeinTopic/command" getriggert wird.
Hi Thomas, danke, das probiere ich morgen. > P.S. Ich danke dir für Deinen Testeinsatz! Sei aber bitte so nachsichtig > und betrachte das, was zur Zeit da ist nicht als fertiges Produkt, > sondern frühe Alpha. Hier spielen sehr viele Faktoren zusammen. der Dank liegt auf meiner Seite! Bisher übererfüllt das Alle Erwartungen ;-)
Hallo Thomas, ich habe die Logs jetzt erzeugt. Darin sind ja auch sensitive Daten enthalten. Kann ich sie dir per Mail schicken? Du erreichst mich unter [erste_drei_buchstaben_meines_Vorname]_mail@web.de. Viele Grüße, Hendrik
Hi Hendrik, ich habe dir eine E-Mail gesendet. Gruß Thomas
Hi Thomas, gute Arbeit :) Das Web Frontend kommt sehr geschmeidig ;) Ich habe es mal kurz ohne erreichbares Schloss in der Nähe getestet und nach dem ich alles konfiguriert habe läuft der Connect zum MQTT-Broker in der Dauerschleife. Ohne Schloss sollte ja normalerweise nicht vorkommen, aber vielleicht doch mal, wenn die Batterie leer ist. Kannst du das auch nachvollziehen?
1 | # WIFI: connected to SSiD: tcM
|
2 | # WIFI: connected!
|
3 | # WIFI: signalquality: 90%
|
4 | # WiFi connected to IP: 192.168.88.59
|
5 | # Connect to MQTT-Broker...
|
6 | # Connected!
|
7 | # published SmartLock/task/working
|
8 | # WiFi disabled
|
9 | # Nonce exchange
|
10 | # Searching ...
|
11 | !!! Lockstatus -1 - timeout !!! |
12 | # Done!
|
13 | # WiFi enabled
|
14 | # WiFi disconnected, reconnect...
|
15 | # WIFI: connected to SSiD: tcM
|
16 | # WIFI: connected!
|
17 | # WIFI: signalquality: 88%
|
18 | # WiFi connected to IP: 192.168.88.59
|
19 | # MQTT disconnected, reconnect...
|
20 | # Connect to MQTT-Broker...
|
21 | # Connected!
|
22 | # published SmartLock/state/timeout
|
23 | # published SmartLock/task/waiting
|
24 | # published SmartLock/rssi/0
|
25 | # waiting for command...
|
26 | # MQTT disconnected, reconnect...
|
27 | # Connect to MQTT-Broker...
|
28 | # Connected!
|
29 | # MQTT disconnected, reconnect...
|
30 | # Connect to MQTT-Broker...
|
31 | # Connected!
|
32 | # MQTT disconnected, reconnect...
|
33 | # Connect to MQTT-Broker...
|
34 | # Connected!
|
35 | # MQTT disconnected, reconnect...
|
36 | # Connect to MQTT-Broker...
|
37 | # Connected!
|
38 | # MQTT disconnected, reconnect...
|
39 | # Connect to MQTT-Broker...
|
40 | # Connected!
|
41 | ...
|
Hallo Max, ich danke Dir für deinen Hinweis, bis jetzt gibt es noch kein Errorhandling. Bei mir haben sich nun unregelmäßige reboots gezeigt. Nur kann ich noch nicht genau sagen woher die kommen. Ich spiele hier zur Zeit mit dem Espressif Debugger herum, mal gucken, ob ich das eingrenzen kann. Bis jetzt ist mein Verdacht, dass es an der nicht richtig abgebauten BLE Verbindung zum Schloss liegt. Hierzu befinden sich ja in Deinem/RoP09s Repo noch einige todos. Ziel ist es zwar mittelfristig eine stabile Version zu bekommen, ich bin aber weitehin auch an eine Coexistence Variant dran, wo nicht mehr zwischen WiFi und BLE gewechselt werden muss. Da habe doch noch einige Ideen, was man machen könnte. Wenn das Wetter mal schlechter ist, setzte ich mich dran. Schönen Gruß Thomas
Hallo, so, zur hellen Jahreszeit hatte ich wenig Lust mich dem Schloss zu widmen. Wie ist denn eure Erfahrung mit der Software von Thomas bisher? Mein RasPi hat das Zeitliche gesegnet und jetzt überlege ich, ob ich den repariere, oder zwei ESPs nehme... Beim ESP war bisher aber auch der WLAN Empfang nicht gut und (dadurch?) crashte er regelmäßig. Gruß, Hendrik
P.S: Hat jemand Erfahrungen mit ESP32 mit externer WLAN Antenne? Bringt das was?
Hendrik schrieb: > P.S: Hat jemand Erfahrungen mit ESP32 mit externer WLAN Antenne? Bringt > das was? Ich hab einem esp8266 eine externe antenne verpasst. Nur so ein kleines stumpel mit ca. 10cm, ohne irgendwelche dbi angaben. Hat von vorher -92 (mit glück) auf -75 gehoben.
Hallo Joachim @oyo, hallo Thomas @type0n, halle Max @tcsmaxx hat einer von euch eine Ahnung was das Problem mit keyble in Verbindung mit nodeJS 14 sein könnte? https://github.com/oyooyo/keyble/issues/37 Danke und Gruß Thomas
Hallo, ich bin zwar ein absoluter Noob was das Thema EQ-3 Türschlossantrieb KeyBLE angeht. Aber hat schon jemand versucht ein ESP8266 D1 mini direckt mit dem Platine des Türschlosses zu verbinden? Es gibt ja diese HomeKit ESP8266 Firmware für dieses. So würde man nicht den Weg über die Bluetoothschnittstelle gehen, diese aber auch nicht kaputt machen oder zerstören, sondern man könnte diese weiter nutzen wenn man mag. Das Schloss würde so gesehen ein Update (WiFi-Funktion) bekommen und direkt mit HomeKit verbunden werden können. Der ESP8266 D1 mini könnte sogar im Gehäuse selber untergebracht werden und wäre somit unsichtbar. Das Borad kann sogar so verstaut werden, das man mit einer Nadel/Büroklammer oder ähnliches an den RESET Button und mit einer kleinen Ausfräsung an der Rückseite an den Micro-USB-Port zum programieren zu kommen kann. Ich weiß ich bin nicht der überflieger was die Arduino IDE angeht, aber ich habe die ESP8266 HomeKit Firmware schon soweit gebracht das diese mit meiner Schaltzentrale (HomeKit) keinen Fehler mehr anzeigt. Ich habe nur leider ein paar probleme was den Bedienknöpfe in der Home-App angeht. Diese Sollen in drei Stellungen Fix sein. Stand jetzt ist leider, dass ich dort einen Balken von 0-100% habe, was mir nicht weiter hilft! Ich muss noch folgendes einstellen bzw. programmieren: -DeepSleep Modus -HomeKit Bedienung -die Datenverbindung zwischen dem ESP8266 D1 mini und der KeyBLE-Platine, dazu muss ich noch die richtigen Befehle herraus finden damit das Schloss die einfachsten dinge wie: Schließen, Entriegeln und Öffnen der Tür tut. vielleicht kann mir bei meinen Vorhaben einer unter die Arme greifen Einen schönen Abend noch. TiTo
Ja, das hat schon jemand geschafft. Ich bin aber gescheitert. Meinen Versuch und die Quelle zu dem, der es geschafft hat habe ich im knx-user-forum.de dokumentiert. Ich weiß nicht, was an der Bluetooth Schnittstelle kaputt gehen sollte. Gruß, Hendrik
Hallo, danke das Du dich meldest. Meinst du diesen Beitrag wo jemand die Druckschalter mit dem ESP8266 verbunden hatte um so das Schloss auf und zu zusperren? Diesen Beitrag hatte ich mir voller Erwartung durchgelesen. Aber da ich nicht bereit bin, ein Kabel zur Tür zu ziehen, um so eine Strom Versorgung zu realisieren, schied dieser Weg für mich aus. Meine Vorstellung ging eher dahin das ESP8266 direkt an den Datenport des Türschlosses anzulöten um dort direkt die Befehle zu geben und Strom zu bekommen. Deswegen muss das ESP unbedingt auch in den DeepSleep mode um Akku Kapazität zu sparen. Weil alles was direkt am Schloss passiert "sollte es" nicht verschlüsselt sein, denke ich zumindest.... kann aber auch etwas naiv von mir gedacht sein....
Hallo, leider ist mein vorhaben gescheitert. Das ist leider was die direkte integration angeht schade, aber leider nicht zu ändern. Was mir allerdings während der ganzen Spielereien aufgefallen ist, ist das dass Türschloss immer nur den ersten Befehl ausführt, dann noch eine gewisse Zeit ansprechbar ist. Wenn man jetzt allerdings eine Zeit lang wartet und zum Beispiel vom Einkaufen wieder Heim kommt (ca. eine Stunde), die Tür soll öffnen, tut es aber nicht. Wenn ich aber bei Haus verlassen die Homebridge neu starte und dann Heim kehre, öffnet Sie ohne Probleme die Tür. Wäre es machbar diese Funktionen "timeout" und/oder "auto_disconnect_time" in die Homebridge zu integrieren? So dass man der Bridge sagen kann das Sie die Verbindung nach der eingestellten Zeit trennen soll und nicht wartet bis das Schloss die Verbindung trennt? Oder wäre es sogar möglich dem Plugin nach dem die Verbindung getrennt wurde einen internen Neustart oder ähnliches zu integrieren? Wenn man die Homebridge manuell neu startet, dann steht dort "cashclear", soll wohl das Plugin aus dem Arbeitsspeicher löschen um diverse Fehler aus zu Märzen, könnte man diese Funktion vielleicht nutzen um das nach jedem gesendeten Befehl zu machen? Hoffe das hier jemand der Mitwirkenden vielleicht noch aktiv ist. Ich selber kann leider Plugins nicht Programmieren! Das sind nur Sachen die mir nach dem ganzen herum spielen mit dem ESP8266 aufgefallen waren. TiTo
Liebe Leute, ich weiß, der Beitrag ist etwas älter, aber dennoch gibt es aktuell noch keine sinnvollen (Preis/Leistung) Alternativen. Aber hier gibt es eine ziemlich schöne Lösung. Mit ein wenig Bastelerfahrung absolut umsetzbar. https://ingenier.wordpress.com/2018/02/17/eqiva-key-ble-eq-3-bluetooth-mit-wlan-nachruesten/ Liebe Grüße, Daniel
Hallo, ich habe ein Schloss, dessen Drehrichtung nicht dem Default entspricht. In der App habe ich das natürlich entsprechend eingestellt, aber leider vergisst das Schloss diese Einstellung recht häufig. Kennt jemand das Problem? Joachim S. schrieb: >> Sag mal, wäre es möglich die Konfiguration des Smart-Locks über keyble >> zu bearbeiten? z.B. pairing-modus aktivieren/deaktivieren, Drehrichtung >> auswählen usw. >> Plannst du es zu realisieren? > > Möglich wäre es - das gehört aber zu den Features, die ich grundsätzlich > zwar gerne unterstützen würde, die derzeit aber so niedrige Priorität > für mich haben, dass ich sie in der nächsten Zeit vermutlich eher nicht > implementieren werde. Ich wäre dir sehr dankbar, wenn man die Drehrichtung konfigurieren könnte. Dann könnte ich diese Einstellung einmal am Tag ans Schloss senden... Gruß, Hendrik
Registriert euch bei Nuki und werbt 10 Freunde, dann bekommt Ihr das Nuki für 49,- und habt noch einen Haufen Zubehör gratis. Ich ein Ihr nicht alles an Zubehör braucht verkauft es und das Smart Lock wäre sogar gratis.
Registriert euch bei Nuki und werbt 10 Freunde, dann bekommt Ihr das Nuki für 49,- und habt noch einen Haufen Zubehör gratis. Wenn Ihr nicht alles an Zubehör braucht verkauft es und das Smart Lock wäre sogar gratis.
@oyo Vielen, vielen Dank für Deine Arbeit. keyble hat mir und meiner "Bastel-Home-Automation" ein großes Stück weitergeholfen! Ich (Jahrgang 74 und 8- und 16Bit erfahren ;-)) bin selbst Software-Entwickler (aber nur auf .NET- und php-Basis) und weiß somit Deine Arbeit durchaus zu schätzen.
Thomas F. schrieb: > https://github.com/lumokitho/esp32-keyble Hi @type0n Da keyble direkt unter nodeJS 14 bei mir fast gar nicht mehr funktioniert, würde ich gern deine ESP32 Lösung testen. Wie bzw. mit was wird der ESP denn mit deinem Code geflasht? Bisher hatte ich nur mit .bin Dateien zu tun. Brauche ich Arduino/platformio? Was gebe ich der Software von deinem Git Projekt? Danke und Gruß Thomas
Hallo, ich habe es im letzten Jahr erfolgreich den eq3 Antrieb in der Kombination mit einem Fingerprint R503 installiert und im Betrieb genommen. Da wo ich die WIFI Verbindung dauerhaft behalten wollte habe ich für den eq3 lock einen separaten ESP32 spendiert, der wiederum per UART vom andern ESP mit R503 mit befehlen versorgt. Eine letzte Anpassung des Codes habe ich Ende Februar durchgeführt. Dann im April wollte ich es ein Update verpassen, mit ein paar Verbessunrungen. Leider ist es mir nicht gelungen, habe ständig beim kompilieren Fehlermeldung bekommen. error: static assertion failed: portGET_ARGUMENT_COUNT() result does not match for 0 arguments ringbuf_type_t' has not been declared Dann habe ich mit vor Versionen versucht, das gleiche Ergebnis. VSC neu installiert -- negativ Direkt vom Github runtergeladen -- negativ Eine ältere Version vom Platformio (vom letztem Jahr) -- negativ. Auf einem anderem Rechner neu installiert -- negativ Was hat sich geändert? Ein Fehlerprotokoll habe ich angehängt. Vielen Dank für Eure Unterstuzung
Habt ihr einen Tipp wie ich das Türschloss in Home Assistant nutzen könnte
Habt ihr einen Tipp wie ich das eqiva Türschloss in Home Assistant nutzen kann
Habt ihr einen Tipp wie ich das eqiva Türschloss in Home Assistant nutzen kann?
Hallo zusammen, ich habe es vielleicht überlesen oder was auch immer. Die KeyBLE Credentials, also KeyBLE UserKey und User ID muss ich bei der ESP32 Version oder dieser hier eingeben. Doch woher nehme ich diese Information? Für Hilfe diesbezüglich wäre ich sehr dankbar...... hilfe.....
Hallo nochmal. Ich habe jetzt einige weitere Informationen gefunden. Den "KeyBLE User Key" muss man durch die mitgelieferte Karte ermitteln. Die Karte zum Beispiel mit ZBAR --> ZBarimg scannen und den mittleren Teil (Von hinten nach dem Abschneiden der im Klartext auf der Karte befindlichen Seriennummer 32 Zeichen) als Key verwenden. Ich habe dann noch die Buchstaben in lowercase geändert. Die KeyBLE User ID sollte wahrscheinlich die nächste freie sein. Bei Zero (0) wird angefangen zu zählen. Dann muss ich wohl den ESP32 nach dem Speichern neu starten während das Schloss im Paring-Mode ist....
Hallo ich habe mir einen Eqiva Antrieb gekauft und den node Installiert finde den in nodered nicht . node red sagt auch "Installiert" kann ihn aber nicht finden ,für eine schnelle Rückmeldung wäre ich Dir Dankbar ,ansonsten schicke ich den Antrieb zurück. Gruß Udo
Servus alle zusammen, gibt es eine moeglichkeit keyble auf eine arduino/raspberry pi pico zu starten? Oder auf einem ESP32? Ich habe den githublink gefunden aber habe keine Ahnung wie ich es umsetzen kann. Kann mir jemand weiterhelfen?
Für den ESP ist hier im Thread eine eigene Software verlinkt (nicht keyble)
ich kriege folgende fehlermeldung beim kompilieren, weiss jemand wo das problem liegt? platformio und esp32 *** [.pio/build/esp32dev/lib749/ESP32 BLE Arduino/BLEAdvertisedDevice.cpp.o] Error 1 *** [.pio/build/esp32dev/lib749/ESP32 BLE Arduino/BLEAdvertising.cpp.o] Error 1 In file included from .pio/libdeps/esp32dev/ESP32 BLE Arduino/src/BLEDescriptor.h:16, from .pio/libdeps/esp32dev/ESP32 BLE Arduino/src/BLECharacteristic.h:17, from .pio/libdeps/esp32dev/ESP32 BLE Arduino/src/BLECharacteristic.cpp:15: .pio/libdeps/esp32dev/ESP32 BLE Arduino/src/FreeRTOS.h:61:28: error: 'ringbuf_type_t' has not been declared Ringbuffer(size_t length, ringbuf_type_t type = RINGBUF_TYPE_NOSPLIT); ^~~~~~~~~~~~~~ In file included from .pio/libdeps/esp32dev/ESP32 BLE Arduino/src/BLERemoteDescriptor.h:18, from .pio/libdeps/esp32dev/ESP32 BLE Arduino/src/BLERemoteCharacteristic.h:18, from .pio/libdeps/esp32dev/ESP32 BLE Arduino/src/BLERemoteService.h:16, from .pio/libdeps/esp32dev/ESP32 BLE Arduino/src/BLEClient.h:19, from .pio/libdeps/esp32dev/ESP32 BLE Arduino/src/BLEScan.h:17, from lib/eQ3/eQ3.h:4, from src/main.cpp:6: .pio/libdeps/esp32dev/ESP32 BLE Arduino/src/FreeRTOS.h:61:28: error: 'ringbuf_type_t' has not been declared Ringbuffer(size_t length, ringbuf_type_t type = RINGBUF_TYPE_NOSPLIT); ^~~~~~~~~~~~~~ *** [.pio/build/esp32dev/lib749/ESP32 BLE Arduino/BLECharacteristic.cpp.o] Error 1 *** [.pio/build/esp32dev/src/main.cpp.o] Error 1 ======================================= [FAILED] Took 2.44 seconds ======================================= * The terminal process "platformio 'run', '--target', 'upload', '--target', 'monitor', '--environment', 'esp32dev'" terminated with exit code: 1. * Terminal will be reused by tasks, press any key to close it.
Gibt es vielleicht eine schritt fuer schritt installationsanleitung fuer den esp32?
Ich habe nun die richtige versionen von den bibliotheken finden koennen und kriege jetzt folgende fehlermeldung: Building in release mode Retrieving maximum program size .pio/build/esp32dev/firmware.elf Checking size .pio/build/esp32dev/firmware.elf Advanced Memory Usage is available via "PlatformIO Home > Project Inspect" Error: The program size (2026637 bytes) is greater than maximum allowed (1966080 bytes) RAM: [== ] 19.7% (used 64692 bytes from 327680 bytes) Flash: [======*** [checkprogsize] Explicit exit, status 1 ====] 103.1% (used 2026637 bytes from 1966080 bytes) platformio.ini schaut bei mir so aus: [env:esp32dev] platform = espressif32 board = esp32dev framework = arduino monitor_speed = 115200 lib_ldf_mode = deep lib_deps = ESP32 BLE Arduino @ 2.0.0 AutoConnect @ 1.3.4 PageBuilder @ 1.5.3 PubSubClient board_build.partitions = partitions_ble.csv Hat jemand eine idee wie es weitergehen soll? Waere sehr dankbar fuer die antwort
Hallo Ich versuche nun seit 2 Wochen meinen extra gekauften ESP32 zu flashen, bekomme es nicht hin. Im Platformio erhalte ich ständig nur Fehlermeldungen. Nur Erase klappt, aber kein Build usw.. bzw er startet zu Compilieren und wirft dann Fehlermeldungen aus. Hoffe mir kann jemand helfen, bin echt schon am verweifeln! Nächte schlage ich mir um die Ohren mit probieren :-(
Hendrik schrieb: > Für den ESP ist hier im Thread eine eigene Software verlinkt (nicht > keyble) Für den ESP32? Das wäre Klasse. Finde leider nichts. Nur Keyble und das lässt sich mit Platformio nicht installieren :-( Vielen Dank
Thomas F. schrieb: > Hi, > > ich habe mal mit der ESP32 Umsetzung von tscmaxx/Rop09 rumgespielt. > > Hier findet Ihr was dabei herausgekommen ist: > > https://github.com/lumokitho/esp32-keyble Wie lässt sich das Projekt auf den ESP32 flashen ohne Platformio (Denn damit klappt es nicht)? Vielen vielen Dank für Hilfe.
Doch, mit platformio klappt es. Gruß, Hendrik
Hendrik F. schrieb: > Doch, mit platformio klappt es. > > Gruß, > Hendrik Ich erhalte beim Build immer zahlreiche Fehler. Auf GIT gibt es auch andere User welche seit Ende 2022 mit Platformio nicht mehr flashen können :-( Eine Idee an was es liegen könnte? Danke lib/eQ3/eQ3_util.cpp:1:10: fatal error: hwcrypto/aes.h: No such file or directory #include <hwcrypto/aes.h> ^~~~~~~~~~~~~~~~ compilation terminated. Compiling .pio\build\esp32dev\FrameworkArduino\Esp.cpp.o *** [.pio\build\esp32dev\lib05b\eQ3\eQ3_util.cpp.o] Error 1 ======================================================================== ================= [FAILED]
:
Bearbeitet durch User
Hendrik F. schrieb:
Wäre dir für einen Tipp dankbar, woran es bei mir hakt.
Habe heute ganze Nacht durchprobiert, komm immer zum gleichen Fehler :-(
Die AES-Funktionen sind Teil von mbedtls geworden. Einfach hwcrypto/aes.h durch mbedtls/aes.h ersetzen. Damit und mit Entfernen der mittlerweile in der Core-Arduino Library inkludierten BLE Library klappt es (also den Eintrag in platformio.ini entfernen). Interessant wäre, ob man die Library in ESPHome einbinden könnte. Ich denke das wäre auch mit Abstand am einfachsten zu benutzen, und Home-Assistant ist ja dafür nicht zwingend erforderlich. Da ich nach Umzug den Antrieb wieder in Benutzung habe, könnte ich das auch ganz gut gebrauchen, da müsste ich mich aber erstmal wieder einlesen. Von meinem Code wurde ja garnicht soviel geändert :-)
Ich habe nun auf GIT von Marius den entscheidenden TIPP erhalten! Konnte nun erfolgreich compilieren. Die Platformio.ini musste ich noch abändern [env:esp32dev] platform = espressif32 board = esp32dev framework = arduino monitor_speed = 115200 lib_ldf_mode = deep lib_deps = ESP32 BLE Arduino @ 2.0.0 AutoConnect @ 1.3.4 PageBuilder @ 1.5.3 PubSubClient board_upload.flash_size = 8MB board_upload.maximum_size = 8388608 board_build.partitions = default_8MB.csv Die hwcrypto/aes.h muss durch mbedtls/aes.h ersetzt werden! Konnte nun erfolgreich flashen. Jedoch bekomme ich den ESP32 nicht im Wlan angezeigt. Hätte ich da noch wo Anpassungen vorm Build durchführen müssen?
:
Bearbeitet durch User
Wrote 2032576 bytes (1252792 compressed) at 0x00010000 in 30.0 seconds (effective 542.3 kbit/s)... Hash of data verified. Leaving... Hard resetting via RTS pin... ======================================================================== ================= [SUCCESS] Build erfolgreich auf den ESP32 geflashed, aber es erscheint kein AP, daher kein Wifi das lautet " KeyBLEBridge " Wo kann hier das Problem liegen? Danke für Hilfe
Ausgabe an der seriellen Konsole?
Hendrik F. schrieb: > Ausgabe an der seriellen Konsole? Ich habs. Danke. Ich musste board_build.partitions = no_ota.csv in der ini einfügen :-)
:
Bearbeitet durch User
Beitrag #7358568 wurde vom Autor gelöscht.
Marius S. schrieb: > Die AES-Funktionen sind Teil von mbedtls geworden. > Einfach hwcrypto/aes.h durch mbedtls/aes.h ersetzen. > > Damit und mit Entfernen der mittlerweile in der Core-Arduino Library > inkludierten BLE Library klappt es (also den Eintrag in platformio.ini > entfernen). > > Interessant wäre, ob man die Library in ESPHome einbinden könnte. Ich > denke das wäre auch mit Abstand am einfachsten zu benutzen, und > Home-Assistant ist ja dafür nicht zwingend erforderlich. > Da ich nach Umzug den Antrieb wieder in Benutzung habe, könnte ich das > auch ganz gut gebrauchen, da müsste ich mich aber erstmal wieder > einlesen. > Von meinem Code wurde ja garnicht soviel geändert :-) Besten Dank. Es wäre Klasse wenn du dich wieder näher damit beschäftigen könntest. Ich kann zwar das Schloss über den Boot Button des ESP32 nun steuern, aber bekomme die Daten nichts in MQTT des Home Assistant. Zufällig eine Idee? Im Webinterface bekomme ich die Daten eingelesen. Ich habe mir 4 Schlösser gekauft und möchte die gerne in HAS einbinden. Nutze auch einen Wasserzaehler Al on the Edge sowie einen Stromzähler ebenfalls per MQTT Broker. Beides kein Problem. Besten Dank für einen Tipp!
Kann die Software mehrere schlösser? Oder planst du vier esps? Mit den Informationen wird dir keiner helfen können. Guck Mal, was an debug Infos in der Konsole kommen.
Ich plane schon 4 einzelne ESP32. Zuerst habe ich mir aber eben nur einen geholt um das ganze mal zu testen. Für mich ist/war Platformio neuland, musste mich erst einlesen. Aber Schlussendlich habe ich es nun wenigstens hinbekommen. Für einen Newbie in der Sache schon mal ein Erfolg. Mit Tasmota und co, kenne ich mich schon eher aus. Auch am PI habe ich von PiHole bis zu Nas Server im Einsatz. 90 Smart Home Devices hab ich schon in Home Assistant eingebunden mit Shellys und co. Aber hier stehe ich an was die MQTT Daten betrifft. Sie kommen im HAS einfach nicht an. Weiteres Problem ist das wenn ich auf das Zahnrad Klicke um eine Einstellung zu ändern, sich der ESP32 aufhängt und nicht mehr ansprechbar ist (Im DHCP Modus). Hier hilft dann nur neu flashen. Dies tritt auf wenn der ESP32 auf DHCP gesetzt ist. Solange man hier nichts ändert oder ändern möchte nach der Ersteinrichtung bleibt der ESP32 online und ich kann auch über den Boot Point das Schloss triggern. Sobald man aber im WebIF aufs Zahnrad kickt, hängt er sich auf ist aber weiterhin mit der IP Online und sendet offensichtlich laut Router auch Daten, reagiert aber auch nicht mehr aufs manuelle triggern des Boot Points. Ebenfalls verliert er wenn ich den AP auf Statisch Setze nach paar minuten den AP und hängt wieder im Einrichtungs AP SSID "KeyBLEBridge" und ich muss den AP wieder neu konfigurieren. Jedoch bei Statisch kann ich zumindest die ersten minuten bis er die Verbindung verliert, jederzeit die Config im WebIF ändern.. Daher belasse ich ihn im DHCP Modus. Hier bleibt er zumindest Online. Port ist freigegeben und auch sonst habe ich mit der Fritzbox den ESP32 erstmal auf eine Fixe IP gesetzt. Hauptproblem ist aber eben das die Daten nicht im MQTT Broker ankommen. In neuen HAS Versionen braucht man ja angeblich nach FAQ keine YAML Config mehr. Hab trotzdem testweise eine gesetzt. Aber auch hier, Fehlanzeige. Wie könnte ich nun an die Debug Infos über die IP kommen? Ohne den ESP32 an den PC an stecken zu müssen. Denn sobald ich ihn vom Strom nehme, komm ich nicht mehr aufs WebIF. Daher gleiches Verhalten wie oben erwähnt im DHCP Modus.
Wie gesagt: Guck Mal debug Infos übers USB Kabel. Und wegen Mqtt Guck Mal nach einem Windows Mqtt Monitor.
---AP Settings--- ---AP IP: 192.168.4.1--- ---AP SSID: KeyBLEBridge--- # /keyble.json loaded # WIFI: connected to SSiD: DaHype xxxxxx # WIFI: connected! # WIFI: signalquality: 100% # WiFi connected to IP: 192.168.1.178 # Connect to MQTT-Broker... # Connected! # published keyble/task/working # WiFi disabled *** get state *** # Nonce exchange # Searching ... # Found device: 00:1a:xxxxxx # RSSI: -75 # Connecting in tick # Connecting... # Connected in tick [ 21431][E][BLERemoteCharacteristic.cpp:289] retrieveDescriptors(): esp_ble_gattc_get_all_descr: Unknown # sendMessage end. # Sending actual fragment: 800200E4E86CDFF4D365C90000000000 # Fragment Data: 80030079DCCF457CABD09E0010170000 # Nonce exchanged # sendMessage called again... # Cryptdata length: 8 # Cryptdata length: 8 # Authentifizierungswert berechnen... # fertig... # sendMessage end. # Sending actual fragment: 8082B918C35B2DA98318000139EC7AD2 # Fragment Data: 80837F8008CC1C5ABB260001FC2C28A9 # Auth value: FC2C28A9 # Cryptdata length: 8 # Crypted data: 7F8008CC1C5ABB26 # Authentifizierungswert berechnen... # fertig... # Decrypted: 70010B0010170000 # New state: 3 # Done! Im MQTT Explorer unter Windows wenn ich mich mit dem HAS verbinde., erscheint der ESP32 als Topic keyble. Wenn ich manuell triggere über den Boot Point, ändert sich auch der Status im MQTT Explorer. Daher hier ist alles korrekt. Nur im HAS selbst ist keinerlei Spur von einer Entität :-(
:
Bearbeitet durch User
Dann ist das ein Has Problem. Da kenne ich mich nicht aus.
Da es mit HAS aktuell nicht klappt, wäre es möglich das man Lock und unlock in das Web Interface einbaut? Wäre für mich eine alternative, da ich per dyndns darauf zugreifen könnte von unterwegs. Ist dies funktion einzubauen mit großem Aufwand verbunden? Die Schlösser werden momentan wohl wieder vermehrt gekauft und es wäre echt toll wenn jemand da Projekt weiter Entwickeln kann...
Du willst dein Schloss ohne Passwort ins Internet stellen? Das HAS Problem sollte doch lösbar sein.
Naja ist ja nicht direkt öffentlich zugänglich. Nur mit meinen Login Daten, und selbst dann müsste jemand davon vor Ort wissen bzw vor Ort sein wenn er Kriminelle Absichten hätte. Und selbst in dem Fall, erhalte ich von der Kamera und vom Kontaktschalter der Alarmanlage sofort eine Benachrichtigung oder je nach Uhrzeit wird sogar ein Alarm ausgelöst. Ich hoffe das sich das mit HAS lösen lässt, muss aber erst jemanden finden der Ahnung davon hat. Denn anscheinend findet der Broker "selbstgemachte" Lösungen nicht mehr automatisch und die Einbindung in die yaml wurde in HAS auch vor paar Versionen geändert und passt nun nicht mehr wie auf git beschrieben. Somit scheitert es wohl am richtigen Sensor Eintrag in der yaml. Auch abgesehen von DNS, wäre es super wenn man im Web Interface das Schloss triggern könnte.
:
Bearbeitet durch User
Habe für MQTT Hilfe erhalten! Es lag bzw liegt daran, das der Broker wie vermutet die Entitäten nicht automatisch findet. Noch dazu wurde wie man den Sensor in die YAML einbindet, vor kurzem in HAS geändert. Daher es ist ein neues Format nutwendig. Nun wird der Sensor gefunden und ich kann über HAS öffnen und schließen. Aber sehr unzuverlässig. Hin und wieder klappts, dann wieder nicht. Das Problem ist, das sich der ESP32 nach kurzer Zeit immer wieder aufhängt. Daher ich komme nicht mehr auf die IP weder Statisch noch DHCP. Er sendet aber weiter, macht aber Timeouts im HAS und manuell triggern über den Boot Knopf klappt dann auch nicht mehr. Nach ein und ausstecken erfängt er sich hin und wieder. Oft verliert er aber auch einfach meine AP Einstellungen. Daher er hängt wieder im Einrichtungs AP fest. Jemand dazu eine Idee was ich in der Main Config ändern könnte, damit dies nicht mehr der Fall ist? Im Log sehe ich bei den Problemen nur das er ständig Wifi trennt, verbindet... Habe 100% WLAN Signal. Daran kanns also nicht liegen. AP schon getauscht, auch daran liegts nicht.
Ich hab derzeit extra einen anderen Router als Test AP eingerichtet. Tritt aber wie geschrieben auch auf anderen Access Points auf. P192.168.4.1--- ---AP SSID: KeyBLEBridge--- # /keyble.json loaded # WIFI: connected to SSiD: Test # WIFI: connected! # WIFI: signalquality: 62% # WiFi connected to IP: 192.168.1.178 # Connect to MQTT-Broker... # Connected! # published keyble/task/working # WiFi disabled *** get state *** # Nonce exchange # Searching ... # Found device: 00:1a:xxxxxx # RSSI: -79 # Connecting in tick # Connecting... # Connected in tick [ 6795][E][BLERemoteCharacteristic.cpp:289] retrieveDescriptors(): esp_ble_gattc_get_all_descr: Unknown # sendMessage end. # Sending actual fragment: 80020010ADB4781142787A0000000000 # Fragment Data: 8003007558BC13BE9A3A2D0010170000 # Nonce exchanged # sendMessage called again... # Cryptdata length: 8 # Cryptdata length: 8 # Authentifizierungswert berechnen... # fertig... # sendMessage end. assert failed: xQueueGenericSend queue.c:832 (pxQueue->pcHead != ((void *)0) || pxQueue->u.xSemaphore.xMutexHolder == ((void *)0) || pxQueue->u.xSemaphore.xMutexHolder == xTaskGetCurrentTaskHandle()) Backtrace: 0x4008380d:0x3ffe7bb0 0x40094f29:0x3ffe7bd0 0x4009a539:0x3ffe7bf0 0x400959de:0x3ffe7d20 0x400feb65:0x3ffe7d60 0x400fee1d:0x3ffe7f40 0x4023cb22:0x3ffe7f60 0x400d6b6d:0x3ffe7f80 0x400d755d:0x3ffe7fd0 0x400d5975:0x3ffe7ff0 0x400d6519:0x3ffe80a0 0x40131f76:0x3ffe80f0 0x4013271d:0x3ffe8110 0x4015aaa1:0x3ffe8160 0x4015cc13:0x3ffe8180 ELF file SHA256: c92c274d1e0b063c Rebooting... ets Jul 29 2019 12:21:46 rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) configsip: 0, SPIWP:0xee clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00 mode:DIO, clock div:2 load:0x3fff0030,len:1184 load:0x40078000,len:13104 load:0x40080400,len:3036 entry 0x400805e4 ---Starting up...--- ---AP Settings--- ---AP IP: 192.168.4.1--- ---AP SSID: KeyBLEBridge--- # /keyble.json loaded # WIFI: connected to SSiD: Test # WIFI: connected! # WIFI: signalquality: 64% # WiFi connected to IP: 192.168.1.178 # Connect to MQTT-Broker... # Connected! # published keyble/task/working # WiFi disabled *** get state *** # Nonce exchange # Searching ... *** toggle *** # Found device: 00:1a:xxxxxxxxxx # RSSI: -64 # Connecting in tick # Connecting... # Connected in tick [ 16079][E][BLERemoteCharacteristic.cpp:289] retrieveDescriptors(): esp_ble_gattc_get_all_descr: Unknown # sendMessage end. # Sending actual fragment: 800200D60CAA4E16F4EC6E0000000000 # Fragment Data: 800300A2A851F6FD66A7840010170000 # Nonce exchanged # sendMessage called again... # Cryptdata length: 8 # Cryptdata length: 8 # Authentifizierungswert berechnen... # fertig... # sendMessage end. assert failed: xQueueGenericSend queue.c:832 (pxQueue->pcHead != ((void *)0) || pxQueue->u.xSemaphore.xMutexHolder == ((void *)0) || pxQueue->u.xSemaphore.xMutexHolder == xTaskGetCurrentTaskHandle()) Backtrace: 0x4008380d:0x3ffe7b50 0x40094f29:0x3ffe7b70 0x4009a539:0x3ffe7b90 0x400959de:0x3ffe7cc0 0x400feb65:0x3ffe7d00 0x400fee1d:0x3ffe7ee0 0x4023cb22:0x3ffe7f00 0x400d6b6d:0x3ffe7f20 0x400d755d:0x3ffe7f70 0x400d5975:0x3ffe7f90 0x400d6519:0x3ffe8040 0x40131f76:0x3ffe8090 0x4013271d:0x3ffe80b0 0x4015aaa1:0x3ffe8100 0x4015cc13:0x3ffe8120 ELF file SHA256: c92c274d1e0b063c Rebooting... ets Jul 29 2019 12:21:46 rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) configsip: 0, SPIWP:0xee clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00 mode:DIO, clock div:2 load:0x3fff0030,len:1184 load:0x40078000,len:13104 load:0x40080400,len:3036 entry 0x400805e4 ---Starting up...--- ---AP Settings--- ---AP IP: 192.168.4.1--- ---AP SSID: KeyBLEBridge--- # /keyble.json loaded # WIFI: connected to SSiD: Test # WIFI: connected! # WIFI: signalquality: 68% # WiFi connected to IP: 192.168.1.178 # Connect to MQTT-Broker... # Connected! # published keyble/task/working # WiFi disabled *** get state *** # Nonce exchange # Searching ... *** toggle *** # Found device: 00:1a:xxxxxxxxxxx # RSSI: -64 # Connecting in tick # Connecting... # Connected in tick [ 10112][E][BLERemoteCharacteristic.cpp:289] retrieveDescriptors(): esp_ble_gattc_get_all_descr: Unknown # sendMessage end. # Sending actual fragment: 800200F447832CC7D801190000000000 # Fragment Data: 800300BFD75A591D61E2B00010170000 # Nonce exchanged # sendMessage called again... # Cryptdata length: 8 # Cryptdata length: 8 # Authentifizierungswert berechnen... # fertig... # sendMessage end. # Sending actual fragment: 80827B62F6539C1F1A7600013C0DD8ED # Fragment Data: 808386410CAA559A8E1F000110127DFE # Auth value: 10127DFE # Cryptdata length: 8 # Crypted data: 86410CAA559A8E1F # Authentifizierungswert berechnen... # fertig... # Decrypted: 70010A0010170000 # New state: 2 # Done! # Disconnected! # WiFi enabled # WiFi disconnected, reconnect... Rebooting... ets Jul 29 2019 12:21:46 rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) configsip: 0, SPIWP:0xee clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00 mode:DIO, clock div:2 load:0x3fff0030,len:1184 load:0x40078000,len:13104 load:0x40080400,len:3036 entry 0x400805e4 ---Starting up...--- ---AP Settings--- ---AP IP: 192.168.4.1--- ---AP SSID: KeyBLEBridge--- # /keyble.json loaded [ 1490][E][WiFiSTA.cpp:317] begin(): connect failed! 0x300a Rebooting... ets Jul 29 2019 12:21:46 rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) configsip: 0, SPIWP:0xee clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00 mode:DIO, clock div:2 load:0x3fff0030,len:1184 load:0x40078000,len:13104 load:0x40080400,len:3036 entry 0x400805e4 ---Starting up...--- ---AP Settings--- ---AP IP: 192.168.4.1--- ---AP SSID: KeyBLEBridge--- # /keyble.json loaded # WIFI: connected to SSiD: DaHype SmartHome Devices # WIFI: connected! # WIFI: signalquality: 100% # WiFi connected to IP: 192.168.1.178 # Connect to MQTT-Broker... # Connected! # published keyble/task/working # WiFi disabled *** get state *** # Nonce exchange # Searching ... *** toggle *** # Found device: 00:1a:xxxxx # RSSI: -63 # Connecting in tick # Connecting... # Connected in tick [ 17150][E][BLERemoteCharacteristic.cpp:289] retrieveDescriptors(): esp_ble_gattc_get_all_descr: Unknown # sendMessage end. # Sending actual fragment: 800200BAAA0BB643C2ED2F0000000000 # Fragment Data: 8003005DA1CF162EFB4DCD0010170000 # Nonce exchanged # sendMessage called again... # Cryptdata length: 8 # Cryptdata length: 8 # Authentifizierungswert berechnen... # fertig... # sendMessage end. assert failed: xQueueGenericSend queue.c:832 (pxQueue->pcHead != ((void *)0) || pxQueue->u.xSemaphore.xMutexHolder == ((void *)0) || pxQueue->u.xSemaphore.xMutexHolder == xTaskGetCurrentTaskHandle()) Backtrace: 0x4008380d:0x3ffe84d0 0x40094f29:0x3ffe84f0 0x4009a539:0x3ffe8510 0x400959de:0x3ffe8640 0x400feb65:0x3ffe8680 0x400fee1d:0x3ffe8860 0x4023cb22:0x3ffe8880 0x400d6b6d:0x3ffe88a0 0x400d755d:0x3ffe88f0 0x400d5975:0x3ffe8910 0x400d6519:0x3ffe89c0 0x40131f76:0x3ffe8a10 0x4013271d:0x3ffe8a30 0x4015aaa1:0x3ffe8a80 0x4015cc13:0x3ffe8aa0 ELF file SHA256: c92c274d1e0b063c Rebooting... ets Jul 29 2019 12:21:46 rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) configsip: 0, SPIWP:0xee clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00 mode:DIO, clock div:2 load:0x3fff0030,len:1184 load:0x40078000,len:13104 load:0x40080400,len:3036 entry 0x400805e4 ---Starting up...--- ---AP Settings--- ---AP IP: 192.168.4.1--- ---AP SSID: KeyBLEBridge--- # /keyble.json loaded # WIFI: connected to SSiD: DaHype SmartHome Devices # WIFI: connected! # WIFI: signalquality: 100% # WiFi connected to IP: 192.168.1.178 # Connect to MQTT-Broker... # Connected! # published keyble/task/working # WiFi disabled *** get state *** # Nonce exchange # Searching ... *** toggle *** # Found device: 00:1a:xxxxxx # RSSI: -68 # Connecting in tick lld_pdu_get_tx_flush_nb HCI packet count mismatch (0, 1) # Connecting... # Connected in tick [ 11088][E][BLERemoteCharacteristic.cpp:289] retrieveDescriptors(): esp_ble_gattc_get_all_descr: Unknown # sendMessage end. # Sending actual fragment: 800200EC1E777431B1A0170000000000 # Fragment Data: 80030063C6BE2CBF99B96F0010170000 # Nonce exchanged # sendMessage called again... # Cryptdata length: 8 # Cryptdata length: 8 # Authentifizierungswert berechnen... # fertig... # sendMessage end. # Sending actual fragment: 8082E2063A5720E78301000190625CFE # Fragment Data: 808377C30FFADA660F3F0001C1218916 # Auth value: C1218916 # Cryptdata length: 8 # Crypted data: 77C30FFADA660F3F # Authentifizierungswert berechnen... # fertig... # Decrypted: 70010A0010170000 # New state: 2 # Done! # Disconnected! # WiFi enabled # WiFi disconnected, reconnect... # WIFI: connected to SSiD: DaHype SmartHome Devices # WIFI: connected! # WIFI: signalquality: 100% # WiFi connected to IP: 192.168.1.178 # published keyble/task/working # WiFi disabled *** toggle *** !!! Lockstatus -1 - timeout !!! # Done! # WiFi enabled # WiFi disconnected, reconnect... # WIFI: connected to SSiD: DaHype SmartHome Devices # WIFI: connected! # WIFI: signalquality: 100% # WiFi connected to IP: 192.168.1.178 # MQTT disconnected, reconnect... # Connect to MQTT-Broker... # Connected! # published keyble/state/timeout # published keyble/task/waiting # published keyble/battery/1 # published keyble/rssi/-68 # waiting for command... # published keyble/task/working # WiFi disabled *** toggle ***
:
Bearbeitet durch User
1 | Rebooting... ets Jul 29 2019 12:21:46 rst:0xc (SW_CPU_RESET),boot:0x13 |
Versuch Mal eine bessere Stromversorgung (Kabel und Netzteil) Sonst vielleicht den Flash auf 40 MHz stellen https://github.com/espressif/arduino-esp32/issues/3510
Danke. Das war auch gestern schon mein Gedanke wegen der Stromversorgung. Ich habe schon 4 Netzteile durchprobiert. Unter anderem ein PI 4 Netzteil mit 3A und 5,1V. Sowie auch andere. Verhalten überall gleich. Mit den 40Mhz werde ich gleich mal versuchen. Danke
Auch mal das Kabel tauschen... Hier gibt's mehr dazu https://www.esp32.com/viewtopic.php?f=12&t=11439&start=30
Kabel und Netzteil sind OK. Es schaut nun gut aus! Der entscheidende Tipp von dir mit 40Mhz war wohl das ausschlaggebende. Bleibt noch etwas abzuwarten, aber derweil schaut es vielversprechend aus. ; set frequency to 40MHz board_build.f_flash = 40000000L
Super! Vielleicht machst du nen Pull Requests mit deinen Änderungen.
Hendrik F. schrieb: > Super! > > Vielleicht machst du nen Pull Requests mit deinen Änderungen. Ich hab noch ein paar Änderungen durchgeführt welche User in den Issue beschrieben hatten. Werde es aber erstmal paar Tage laufen lassen und wenn es wie gewünscht funktioniert, werd ich das bei git mitteilen. Danke dir jedenfalls für den Entscheidenden Tipp. Auf das wäre ich nie gekommen. Vorher hätte ich noch den ESP32 aus dem Fenster geworfen. Wenns gut läuft, werd ich mir noch 3 Stk holen bzw eventuell sogar noch ein weiteres Schloss für die Gartenhütte. Somit würde ich dann 4 Stk extra ansteuern mit je einem ESP32. Da die Schlösser derzeit im Warehouse Deal günstig zu bekommen sind, hätte ich dann für 4Stk inkl ESP und Netzteil 250€ investiert! Quasi nicht mal der Preis was ein Nuki ohne Bridge kosten würde....
So. Nun melde ich mich nochmals. 14 Stunden lief alles völlig problemlos. Dann wie aus dem Nichts lieferte keine Daten mehr und war wieder im KeyBLEBridge. Musste also den AP wieder manuell setzen. Wie könnte ich den Problem auf die schliche kommen? Im Log ist nichts großartiges zu sehen. Nur das disconnect steht und danach Connected KeybleBridge. Also der Einrichtungs AP. Mit dem WLAN ist und war definitv alles ok. Jetzt würde ich gerne probieren meine AP direkt zu setzen in der config. Also hardcoding wie ich gelesen habe, nur weiß ich nicht wo und was ich in der Main Datei einfügen muss. Hoffe das kann mir jemand beantworten. Danke
Zeig mal das log vom Zeitpunkt wo das Problem entstand.
Mit den Verbesserungen von corgan auf git, scheint es nun zu laufen. Bin da immer noch etwas vorsichtig und stellt sich erst in paar Tagen heraus. Aber es schaut gut aus :-) https://github.com/lumokitho/esp32-keyble/pull/7/files/b71b3d9ecf78a8fab9e15a74550d66f0782be88b
:
Bearbeitet durch User
Hi alles zusammen, ich kriege folgende fehlermeldung mit platformio Building FS image from 'data' directory to .pio/build/esp32dev/spiffs.bin error: can't read source directory *** [.pio/build/esp32dev/spiffs.bin] Error 1 Hat da wer ideen?
Wenn ich aber einfach auf kompilieren und hochladen klicke - startet der esp nicht ELF file SHA256: f4d36c5aec79c1e9 E (830) esp_core_dump_flash: Core dump flash config is corrupted! CRC=0x7bd5c66f instead of 0x0 Rebooting... ets Jul 29 2019 12:21:46 rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT) configsip: 0, SPIWP:0xee clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00 mode:DIO, clock div:2 load:0x3fff0030,len:1184 load:0x40078000,len:13104 load:0x40080400,len:3036 entry 0x400805e4
Klingt, als fehlen beim Kompilieren Daten. Source komplett heruntergeladen?
Habe nun auf einem anderen PC Platformio installiert und kriege die gleiche fehlermeldung wenn ich Build Filesystem Image anklicke Building FS image from 'data' directory to .pio/build/esp32dev/spiffs.bin error: can't read source directory *** [.pio/build/esp32dev/spiffs.bin] Error 1
Michi O. schrieb: > Habe nun auf einem anderen PC Platformio installiert und kriege die > gleiche fehlermeldung wenn ich Build Filesystem Image anklicke > > Building FS image from 'data' directory to > .pio/build/esp32dev/spiffs.bin > error: can't read source directory > *** [.pio/build/esp32dev/spiffs.bin] Error 1 Du brauchst nur einen leeren Ordner anlegen der data heißt. Oder du ladest die keyble zip von git, entpackst sie, und erstellst dort gleich den Data Ordner, bevor du das Projekt in Platformio öffnest. Dann klappts einwandfrei. Habe selbst lange nach einer Lösung gesucht als ich Anfangs immer die Fehlermeldung hatte. LG
data Ordner erstellen. Danach läufts ohne spiffs fehler.
Es wäre echt super, wenn ihr die Änderungen und Vorschläge, die ihr habt als pull request auf github stellt. Sonst sucht sich der nächste doof.
nach 5 Jahren ist bei mir nun das erste Smartlock kaputt. Aber nicht kaputt-kaputt, sondern so, dass ich fast daran verrückt geworden wäre. Ich nehme an, dass die kontaktschalter, die die umdrehungen des schlüssels reistrieren und messen, am kaputtwerden sind bzw. zumindest einer davon sehr unzuverlässig ist. das hat zur auswirkung, dass das schloss zB statt aufzusperren eine runde zuviel dreht, folglich dann die falle zurückzieht, bis der drehmomentschutz des schlosses "stopp" sagt. damit vergisst das schloss aber in welcher position es sich gerade befindet. wenn man nun sperren drückt wird eine halbe runde zu wenig gedreht. daraus resultierend wurde bei mir dann nicht abgesperrt. ich dachte zuerst an konfigurationsfehler, dann an softwarefehler (ja, immer wenn man vor dem schloss steht funktioniert es richtig!), aber schlussendlich kann ich beides absschließen, da das neue schloss das alte, richtige verhalten zeigt. Mechanischen defekt kann ich ausschließen, das schloss innen ist sauber, leichtgängig, auch der schlüssel. ich werde beizeiten (vermutlich kommenden winter erst, das sind typische winterprojekte bei mir) die platine auslöten und dann die beiden Kontakttaster durchmessen bzw. tauschen versuchen. falls jemand das gleiche problem bekommt. ersatzschloss anschaffen. ich hatte hier grob geschätzt von februar bis november täglich 2 bis 3 öffnen / schließzyklen. macht ca. 600 bis 900 pro jahr, rechnen wir mit 700 (wochenende, urlaub, ...) und ca. 5 jahre sind 3500 schlossbewegungen. die Kontakttaster bekommen 4 impulse pro runde, also 10.000 bis 12.000 als lebensdauer - klingt nach einem plausiblen wert. LG
Hallo, ich hab mal eine Frage bezüglich des keyble-Scripts (https://github.com/oyooyo/keyble). Ich probiere dies auf einem Raspberry zu installieren. Jedoch bei der Eingabe von: npm install --update --global --unsafe-perm keyble geht der Ladebalken bis ganz nach hinten, es wird aber keine Fertigmeldung gegeben und der Raspberry wird voll ausgelastet, sodass man den Prozess mit STRG+C (hab bis zu 15 Mins gewartet) abbrechen muss. Ich habe es mit einem Raspberry 3+, Raspberry 4 und Raspberry Zero 2 getestet, jedes mal das gleiche Problem. Ist das Problem bekannt bzw. was könnte den Fehler verursachen? Viele Grüße Christian
Ich suche täglich seit Monaten nach einer Lösung warum der ESP32 nach ein paar Stunden die Verbindung verliert und dann wieder im AP des keyble hängt. Wenn ich den AP dann neu einwähle, läuft es wieder für paar Stunden völlig Problemlos. Daher der Auto Connect zum Wifi Netzwerk funktioniert nicht. Ich möchte daher die Wifi Daten von meinem AP direkt integrieren damit der ESP32 sich immer damit verbindet. Leider kann oder will mir niemand in anderen Foren helfen. Bin da echt am verweifeln, da ich täglich 3x die Daten neu eingeben muss damit das Schloss paar Stunden funktioniert! Hoffe das ihr mir hier sagen könnt wie ich das sogenannte Hardcoding in der Maindatei? eintragen kann? // ---[SetupWiFi]---------------------------------------------------------- ----- void SetupWifi() { digitalWrite(LED_GPIO,LOW); if (Portal.begin()) { if (WiFi.status() == WL_CONNECTED) { Serial.println("# WIFI: connected to SSiD: " + WiFi.SSID()); digitalWrite(LED_GPIO,HIGH); } int maxWait=100; while (WiFi.status() != WL_CONNECTED) { Serial.println("# WIFI: checking SSiD: " + WiFi.SSID()); delay(500); if (maxWait <= 0) ESP.restart(); maxWait--; } Serial.println("# WIFI: connected!"); Serial.println("# WIFI: signalquality: " + String(GetWifiSignalQuality()) + "%"); Serial.println("# WiFi connected to IP: " + WiFi.localIP().toString()); digitalWrite(LED_GPIO,HIGH); } }
Lass dochmal einen Rechner am USB Port und Guck, was auf der seriellen Schnittstelle geloggt wird. Der Codeblock von dir gibt nur Infos raus.
Eben nicht wirklich was. Nur das disconnect steht sobald er die Verbindung zum AP verliert. Der Auto Connect funktioniert also nicht. Gehe ich manuell aufs Web Interface von keyble und wähle mich neu in den AP ein, ist wieder alles OK für paar Stunden. Daher möchte ich den AP von Keyble entfernen und meine Daten von meinem AP eintragen damit er sich automatisch mit diesen verbindet. Ein User im Git hat vor monaten mal geschrieben das er es beheben konnte mit Hardcoding. "I made it work by hardcoding credentials under Portal.begin(SSID,PASS)" Hätte diesen schon mehrmals versucht zu erreichen, aber leider keine Antwort oder Reaktion. Dies würde ich eben gerne umsetzen, nur scheittert es hier an meinen Fähigkeiten und in Foren bekam ich dazu leider auch keine Hilfe wo/was in der main einzutragen ist :-(
:
Bearbeitet durch User
Ein komplettes Log würde schon helfen... Ich vermute, der ESP startet neu. Das würde man sehen... schick Mal nen Link zu deinem code
:
Bearbeitet durch User
Marius S. schrieb: > Die AES-Funktionen sind Teil von mbedtls geworden. > Einfach hwcrypto/aes.h durch mbedtls/aes.h ersetzen. > > Damit und mit Entfernen der mittlerweile in der Core-Arduino Library > inkludierten BLE Library klappt es (also den Eintrag in platformio.ini > entfernen). > > Interessant wäre, ob man die Library in ESPHome einbinden könnte. Ich > denke das wäre auch mit Abstand am einfachsten zu benutzen, und > Home-Assistant ist ja dafür nicht zwingend erforderlich. > Da ich nach Umzug den Antrieb wieder in Benutzung habe, könnte ich das > auch ganz gut gebrauchen, da müsste ich mich aber erstmal wieder > einlesen. > Von meinem Code wurde ja garnicht soviel geändert :-) Hi, Gibt es was neue bezüglich esphome? Hast du dich schon damit befaßt? Grüß
Danke schonmal an alle die diese großartige Vorarbeit geleistet haben. Habe eine erste Version für esphome geschrieben auf Basis der ESP32 Version. Diese findet ihr hier: https://github.com/digaus/esphome-components-eqiva Aktuell funktioniert die Ansteuerung via Services. Initiales Pairing, um den User Key zu bekommen, ist ebenfalls möglich. Weiterleiten des aktuellen Status habe ich noch nicht umgesetzt. Diese Version hier ist als alpha zu sehen und wurde lediglich am Schreibtisch getestet. Mein Ziel ist es mein HMIP Schloss durch dieses zu ersetzen und direkt mit einem ESP32 anzusteuern welcher an einen Fingerprint angeschlossen und in meiner Klingel integriert ist. Hierfür habe ich eigens ein ESP32-Board entwickelt, welches direkt mit dem Fingerprint in eine Klingel integriert werden kann.
Dirk schrieb: > Habe eine erste Version für esphome geschrieben auf Basis der ESP32 > Version. Das klingt ja super! Kannst Du ganz knapp beschreiben wie man das Pairing machen muss?
Philipp C. schrieb: > Dirk schrieb: >> Habe eine erste Version für esphome geschrieben auf Basis der ESP32 >> Version. > > Das klingt ja super! > > Kannst Du ganz knapp beschreiben wie man das Pairing machen muss? Einfach den Pair Service aufrufen und dort den Card Key eintragen, den man bekommt wenn man den QR Code scannt. (Zuvor natürlich warten, bis das Schloss verbunden ist und dann noch 5 Sekunden den öffnen Knopf gedrückt halten um das Pairing zu aktivieren) Gleichzeitig die Logs vom ESP anzeigen. Dort wird dann der user_key und die user_id geloggt.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.