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?
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
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
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?
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:#
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...
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,
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,
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
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.
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
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
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.
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 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?
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
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
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
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?
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.
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.
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]
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?
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
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.
---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 :-(
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...
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.
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.
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
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
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
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
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
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);
}
}
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 :-(
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.
Artur K. schrieb:> Hi, danke für dein Projekt.> Habe es ausprobiert, aber iwie startet mein esp32 nicht richtig nach dem> Flaschen. Iwas mache ich falsch!?
Welchen ESP32 hast du denn?
Dirk schrieb:> Artur K. schrieb:>> Hi, danke für dein Projekt.>> Habe es ausprobiert, aber iwie startet mein esp32 nicht richtig nach dem>> Flaschen. Iwas mache ich falsch!?>> Welchen ESP32 hast du denn?
AZDelivery ESP32 D1 Mini
Hatte eine mit ble proxy, habe da code Teile von dem Projekt
hinzugefügt. Nach dem Flaschen startet er nicht, bzw zeigt was komisches
im log, also nicht was normalerweise in log von esphome ist.
Versuche es noch mal exakt das was bei dir ist. Mal sehen.
Hendrik F. schrieb:> Artur K. schrieb:>> startet er nicht, bzw zeigt was komisches im log,>> Und ist das geheim?
Natürlich nicht. Habe gerade es nicht zu Hand. Wenn ich es später noch
mal probiere, poste ich es sofort.
Also, noch mal versucht, alles sauber geschrieben, hats geklappt. nur
wenn ich bluetooth_proxy:
active: true
einfüge, sag er mir
RAM: [== ] 17.9% (used 58652 bytes from 327680 bytes)
Flash: [==========] 100.9% (used 1851057 bytes from 1835008 bytes)
Error: The program size (1851057 bytes) is greater than maximum allowed
(1835008 bytes)
*** [checkprogsize] Explicit exit, status 1
obwohl
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
werden nur 2mb benutzt? es sind doch knapp 1,8mb. verstehe ich was
falsch?
Artur K. schrieb:> Also, noch mal versucht, alles sauber geschrieben, hats geklappt.
Ich musste bei mir auf dem ESP32 auch alles was ich davor laufen hatte
rauswerfen, damit es drauf passt.
Dann hat es aber super geklappt. Vielen Dank!
Wäre es auch möglich mehr als einen dieser Antriebe an einem ESP32 zu
betreiben?
Philipp C. schrieb:> Artur K. schrieb:>> Also, noch mal versucht, alles sauber geschrieben, hats geklappt.>> Ich musste bei mir auf dem ESP32 auch alles was ich davor laufen hatte> rauswerfen, damit es drauf passt.> Dann hat es aber super geklappt. Vielen Dank!> Wäre es auch möglich mehr als einen dieser Antriebe an einem ESP32 zu> betreiben?
Benutze als Basis den esp_32_ble_client von esphome. Der kann soweit ich
das sehe nur eine Verbindung gleichzeitig.
Man könnte das natürlich alles noch selber programmieren. Halte ich aber
für nicht so sinnvoll ^^
Ich hab leider aktuell das Problem, dass mein ESP32-C3 beim Verschlüssen
abschmiert :/
Bin am überlegen, ob ich es Mal mit dem esp-idf Framework probiere
anstelle des Arduino.
Dirk schrieb:> Benutze als Basis den esp_32_ble_client von esphome. Der kann soweit ich> das sehe nur eine Verbindung gleichzeitig.
Man kann dann ja einfach einen weiteren ESP32 verwenden.
Dirk schrieb:> Ich hab leider aktuell das Problem, dass mein ESP32-C3 beim Verschlüssen> abschmiert :/
Auf dem Tisch (ohne Schloss am Motor) funktioniert es bei mir mit einem
D1.
Hallo,
ich fänd es auch super, wenn mehrere Schlösser möglich wären.
Ich verstehe die Limitierung auf eine Verbindung gleichzeitig, aber war
es nicht so, dass man ohnehin die Verbindung nur kurz aufbauen sollte,
um die Batterien des Schloss zu schonen?
Wenn man dann mehrere Schlösser hat muss man doch nur die Verbindung zu
dem gerade gewählten Schloss aufbauen.
Gruß,
Hendrik
Philipp C. schrieb:> Dirk schrieb:>> Benutze als Basis den esp_32_ble_client von esphome. Der kann soweit ich>> das sehe nur eine Verbindung gleichzeitig.>> Man kann dann ja einfach einen weiteren ESP32 verwenden.> Dirk schrieb:>> Ich hab leider aktuell das Problem, dass mein ESP32-C3 beim Verschlüssen>> abschmiert :/>> Auf dem Tisch (ohne Schloss am Motor) funktioniert es bei mir mit einem> D1.
Jo mit nen normalen ESP32 klappt es bei mir ja auch :)
Der ESP32-C3 hat aber ne RISC-V CPU und keine XTensa wie der normale
Dafür kann unterstützt er nativ USB und ist kompakter :)
Hendrik F. schrieb:> Hallo,>> ich fänd es auch super, wenn mehrere Schlösser möglich wären.> Ich verstehe die Limitierung auf eine Verbindung gleichzeitig, aber war> es nicht so, dass man ohnehin die Verbindung nur kurz aufbauen sollte,> um die Batterien des Schloss zu schonen?>> Wenn man dann mehrere Schlösser hat muss man doch nur die Verbindung zu> dem gerade gewählten Schloss aufbauen.>> Gruß,> Hendrik
Wollte eine möglichst schnelle Reaktion haben. Deshalb aktuell die
dauerhafte Verbindung.
Du hast mich aber zum Nachdenken gebracht.
Man könnte es ja so umsetzen, dass man einstellen kann, wann eine
dauerhafte Verbindung erfolgen soll.
So könnte man die Verbindung z.B. trennen, wenn alle Personen zu Hause
sind allgemeiner einfach Nachts.
Dies würde dann ja auch Energie sparen. Wenn ich das dann umsetze kann
ich auch einen Service definieren, der die aktuell festen Parameter
übernimmt.
So könnte man dann auch zwei Schlösser steuern via Home Assistant.
Hab es jetzt auch mit einem ESP32-C3 am laufen und die flash size
nochmal verkleinert.
Hab die Änderungen einmal gepushed.
Wer Speicher sparen möchte kann das Framework auf esp-idf ändern.
Dadurch spart man ca. 20%
ESP lief bei mir jetzt 6 Stunden durch ohne Verbindungsverlust.
Zwischendurch auch immer wieder Finger scannen lassen ohne Probleme.
Lediglich gerade eben hat er einige Sekunden gebraucht bis das Schloss
reagiert hat. Könnte aber natürlich auch am Schloss gelegen haben, da
beide Befehle nach einigen Sekunden doch ausgeführt wurden obwohl ich
keine Message queue eingebaut habe.
Dirk schrieb:> Hab die Änderungen einmal gepushed.>> Wer Speicher sparen möchte kann das Framework auf esp-idf ändern.> Dadurch spart man ca. 20%>> ESP lief bei mir jetzt 6 Stunden durch ohne Verbindungsverlust.>> Zwischendurch auch immer wieder Finger scannen lassen ohne Probleme.>> Lediglich gerade eben hat er einige Sekunden gebraucht bis das Schloss> reagiert hat. Könnte aber natürlich auch am Schloss gelegen haben, da> beide Befehle nach einigen Sekunden doch ausgeführt wurden obwohl ich> keine Message queue eingebaut habe.
Was ist das für ein fingerscanner?
Dirk schrieb:> Wollte eine möglichst schnelle Reaktion haben. Deshalb aktuell die> dauerhafte Verbindung.
Das finde ich auch gerade richtig klasse. Bei der ursprünglichen Lösung
mit dem Pi war es immer etwas irritierend, wenn man den Pin am
Tastenfeld eingeben hat und erst einmal nichts passierte.
Dafür wechsel ich gern öfter die Batterie ;)
Artur K. schrieb:> Dirk schrieb:>> Hab die Änderungen einmal gepushed.>> Wer Speicher sparen möchte kann das Framework auf esp-idf ändern.>> Dadurch spart man ca. 20%>> ESP lief bei mir jetzt 6 Stunden durch ohne Verbindungsverlust.>> Zwischendurch auch immer wieder Finger scannen lassen ohne Probleme.>> Lediglich gerade eben hat er einige Sekunden gebraucht bis das Schloss>> reagiert hat. Könnte aber natürlich auch am Schloss gelegen haben, da>> beide Befehle nach einigen Sekunden doch ausgeführt wurden obwohl ich>> keine Message queue eingebaut habe.>> Was ist das für ein fingerscanner?
Grow R503 den ich auseinander gebaut habe :)
Gibt's auch bei Amazon, falls man nicht auf AliExpress warten kann ;)
Kombiniert am Ende in einer Klingel
Dirk schrieb:> Grow R503 den ich auseinander gebaut habe :)> Gibt's auch bei Amazon, falls man nicht auf AliExpress warten kann ;)>> Kombiniert am Ende in einer Klingel
Danke, möchte meine fingerabdruckleser in Doorbird (ekey) ersetzen. Da
kann man bißchen testen. Wie zuverlässig ist der?
Dirk schrieb:> Hab die Änderungen einmal gepushed.>> Wer Speicher sparen möchte kann das Framework auf esp-idf ändern.> Dadurch spart man ca. 20%>> ESP lief bei mir jetzt 6 Stunden durch ohne Verbindungsverlust.>> Zwischendurch auch immer wieder Finger scannen lassen ohne Probleme.>> Lediglich gerade eben hat er einige Sekunden gebraucht bis das Schloss> reagiert hat. Könnte aber natürlich auch am Schloss gelegen haben, da> beide Befehle nach einigen Sekunden doch ausgeführt wurden obwohl ich> keine Message queue eingebaut habe.
Hi, heisst dass es jetzt immer Verbindung getrennt wird? Und ich habe
gesehen dass du
external_components:
source:
geändert hast, wenn ich es jetzt richtig verstehe, muss ich immer
aktuellen Ordner von Github lokal kopieren?
Framework kann ich ja Arduino lassen, weil will nicht neu flashen, will
nur als OTA machen.
Grüß
Artur K. schrieb:> Dirk schrieb:>> Hab die Änderungen einmal gepushed.>> Wer Speicher sparen möchte kann das Framework auf esp-idf ändern.>> Dadurch spart man ca. 20%>> ESP lief bei mir jetzt 6 Stunden durch ohne Verbindungsverlust.>> Zwischendurch auch immer wieder Finger scannen lassen ohne Probleme.>> Lediglich gerade eben hat er einige Sekunden gebraucht bis das Schloss>> reagiert hat. Könnte aber natürlich auch am Schloss gelegen haben, da>> beide Befehle nach einigen Sekunden doch ausgeführt wurden obwohl ich>> keine Message queue eingebaut habe.>> Hi, heisst dass es jetzt immer Verbindung getrennt wird? Und ich habe> gesehen dass du> external_components:> source:> geändert hast, wenn ich es jetzt richtig verstehe, muss ich immer> aktuellen Ordner von Github lokal kopieren?> Framework kann ich ja Arduino lassen, weil will nicht neu flashen, will> nur als OTA machen.> Grüß
ah sorry Pfad muss der alte dein von GitHub.
Lokal zeige ich auf den lokalen pfad damit ich nicht immer pushen muss
um was zu testen.
Aktuell behält er noch die Verbindung. Ich werde aber noch einbauen,
dass man diese trennen kann.
Bzgl Batterie wird es auch noch eingebaut. Lock Status ist ja auch noch
nicht drin in HA. Packe da dann noch Rssi, Batterie und Status rein.
Dirk schrieb:>> ah sorry Pfad muss der alte dein von GitHub.>> Lokal zeige ich auf den lokalen pfad damit ich nicht immer pushen muss> um was zu testen.>> Aktuell behält er noch die Verbindung. Ich werde aber noch einbauen,> dass man diese trennen kann.>>> Bzgl Batterie wird es auch noch eingebaut. Lock Status ist ja auch noch> nicht drin in HA. Packe da dann noch Rssi, Batterie und Status rein.
das habe ich mir gedacht, habe ich noch gelassen.
wegen Batterie, wie geht es überhaupt? frage nur weil ich es für mich
persönlich interessant finde.
Artur K. schrieb:> Dirk schrieb:>> Hab die Änderungen einmal gepushed.>> Wer Speicher sparen möchte kann das Framework auf esp-idf ändern.>> Dadurch spart man ca. 20%>> ESP lief bei mir jetzt 6 Stunden durch ohne Verbindungsverlust.>> Zwischendurch auch immer wieder Finger scannen lassen ohne Probleme.>> Lediglich gerade eben hat er einige Sekunden gebraucht bis das Schloss>> reagiert hat. Könnte aber natürlich auch am Schloss gelegen haben, da>> beide Befehle nach einigen Sekunden doch ausgeführt wurden obwohl ich>> keine Message queue eingebaut habe.>> Hi, heisst dass es jetzt immer Verbindung getrennt wird? Und ich habe> gesehen dass du> external_components:> source:> geändert hast, wenn ich es jetzt richtig verstehe, muss ich immer> aktuellen Ordner von Github lokal kopieren?> Framework kann ich ja Arduino lassen, weil will nicht neu flashen, will> nur als OTA machen.> Grüß
Habe soeben lokal die connect Funktion implementiert.
Braucht dann doch recht lange bis er sich verbunden und den Befehl
ausgeführt hat. Sind so 12 Sekunden.
Damit sollte man aber auch verschiedene Schlösser ansprechen können.
Denke für mich werde ich es so umsetzen, dass falls alle daheim sind der
ESP die Verbindung trennt.
Sobald die Tür geöffnet wird oder eine Person nicht zu Hause ist der ESP
eine Verbindung herstellt.
Artur K. schrieb:> Dirk schrieb:>> ah sorry Pfad muss der alte dein von GitHub.>> Lokal zeige ich auf den lokalen pfad damit ich nicht immer pushen muss>> um was zu testen.>> Aktuell behält er noch die Verbindung. Ich werde aber noch einbauen,>> dass man diese trennen kann.>> Bzgl Batterie wird es auch noch eingebaut. Lock Status ist ja auch noch>> nicht drin in HA. Packe da dann noch Rssi, Batterie und Status rein.>> das habe ich mir gedacht, habe ich noch gelassen.> wegen Batterie, wie geht es überhaupt? frage nur weil ich es für mich> persönlich interessant finde.
Habe ich mir noch nicht angeschaut ^^
Gibt leider wenig bis gar keine Doku. Ich schaue immer in anderen
Komponenten nach, wie diese das umgesetzt haben 😅
Dirk schrieb:>
Ja das stimmt, konnte auch nichts finden. Für mich wäre nur akkustand
wichtig.
Eine dauerhafte Verbindung waren in meinen Fall von Vorteil. Könnte man
dann später auswählen ob man trennen möchte oder nicht?
Hey @digaus!
Schön das sich hier erneut etwas bewegt!
Deine Umsetzung setzt ja auf Home Assistant auf. Sowohl damit, als auch
mit ESPHome habe ich leider keine/kaum Erfahrung.
Soweit ich deinen Code überblicke, könnte man den API Teil von HA
rausnehmen und durch einen MQTT Broker ersetzte. Nun frage ich mich, ob
man die von dir in HA genutzen/bereitgestellten Services des
Schlossantriebs ohne die API über eine eingehende MQTT Nachricht
aufrufen bzw. den Status via MQTT veröfftlichen könnte?
Damit könnte man dann auch ohne HA das Schloss ansprechen.
Hättest Du da bitte eine Tipp für mich?
Schönen Gruß
type0n
Thomas schrieb:> Hey @digaus!> Schön das sich hier erneut etwas bewegt!> Deine Umsetzung setzt ja auf Home Assistant auf. Sowohl damit, als auch> mit ESPHome habe ich leider keine/kaum Erfahrung.> Soweit ich deinen Code überblicke, könnte man den API Teil von HA> rausnehmen und durch einen MQTT Broker ersetzte. Nun frage ich mich, ob> man die von dir in HA genutzen/bereitgestellten Services des> Schlossantriebs ohne die API über eine eingehende MQTT Nachricht> aufrufen bzw. den Status via MQTT veröfftlichen könnte?> Damit könnte man dann auch ohne HA das Schloss ansprechen.> Hättest Du da bitte eine Tipp für mich?> Schönen Gruß> type0n
Esphome funktioniert auch standalone.
MQTT kann einfach mit dem MQTT Client eingebunden werden:
https://esphome.io/components/mqtt.html#on-message-trigger
Hab die Version auf GitHub mit der connect und disconnect Funktion
aktualisiert.
Mac Adresse kann man leider nicht via template weitergeben. Man muss
also mehrere Connect services definieren wenn man mehrere Schlösser
verwenden möchte.
Hallo nochmal!
Ich habe mal etwas herumprobiert und konnte den API Teil gegen eine MQTT
Broker Verbindung ersetzen (yaml ist völlig neu für mich).
Den Aufruf der Service Funktionen habe ich auch hinbekommen.
Durch einen MQTT Subscriber Sensor bekomme ich externe Befehle zum ESP
und kann damit bis jetzt lock/unlock/open/status auslösen.
Jetzt fehlen nur noch Pairing und Batteriestatus, dann wäre diese Lösung
für mich schon fast voll einsatzfähig!
Am Broker sehe ich nun mehrere Topics. Ohne die, die ich eingefügt habe
published der ESP das Topic status und debug.
Via debug kommt alles an, was auch über den Logger geht.
Darin sind dann auch aktueller Status und Batteriestatus enthalten.
Wenn der Status bei jeder Änderung gepublished werde könnten, könnte man
auch die manuelle Bedienung erkennen.
Wenn dabei auch noch der Batteriestatus kommt, optimal!
Hat da jemend eine Idee wie man das realsieren/wo man da ansetzen
könnte?
Schönen Gruß
type0n
Thomas schrieb:> Hallo nochmal!> Ich habe mal etwas herumprobiert und konnte den API Teil gegen eine MQTT> Broker Verbindung ersetzen (yaml ist völlig neu für mich).> Den Aufruf der Service Funktionen habe ich auch hinbekommen.> Durch einen MQTT Subscriber Sensor bekomme ich externe Befehle zum ESP> und kann damit bis jetzt lock/unlock/open/status auslösen.> Jetzt fehlen nur noch Pairing und Batteriestatus, dann wäre diese Lösung> für mich schon fast voll einsatzfähig!> Am Broker sehe ich nun mehrere Topics. Ohne die, die ich eingefügt habe> published der ESP das Topic status und debug.> Via debug kommt alles an, was auch über den Logger geht.> Darin sind dann auch aktueller Status und Batteriestatus enthalten.> Wenn der Status bei jeder Änderung gepublished werde könnten, könnte man> auch die manuelle Bedienung erkennen.> Wenn dabei auch noch der Batteriestatus kommt, optimal!> Hat da jemend eine Idee wie man das realsieren/wo man da ansetzen> könnte?> Schönen Gruß> type0n
Nicht so eilig, kommt alles noch 😉
Pairing geht aber schon. Gibt dafür den pair Service. Kannst du dir aus
der yaml abschauen.
Thomas schrieb:> Wenn der Status bei jeder Änderung gepublished werde könnten, könnte man> auch die manuelle Bedienung erkennen.> Wenn dabei auch noch der Batteriestatus kommt, optimal!> Hat da jemend eine Idee wie man das realsieren/wo man da ansetzen> könnte?> Schönen Gruß> type0n
Habe es so eben aktualisiert. Status und Batteriezustand werden jetzt
über die Sensor Komponente ausgegeben.
Werde da wahrscheinlich noch die User ID und den User Key vom Pairing
Prozess mit ausgeben
Beispiel steht in der yaml :)
Hat hier noch jemand das Problem, dass das Schloss beim öffnen nicht von
alleine stoppt? Hört sich dann richtig brutal an wie er versucht immer
weiter zu drehen obwohl es nicht mehr geht.
Muss dann die Batterie entfernen ...
Hab das Schloss nämlich soeben das erste mal montiert. Getestet mit der
iOS App...
Ist es vllt einfach Pech und ich habe ein defektes erwischt?
Dirk schrieb:>> Habe es so eben aktualisiert. Status und Batteriezustand werden jetzt> über die Sensor Komponente ausgegeben.>> Werde da wahrscheinlich noch die User ID und den User Key vom Pairing> Prozess mit ausgeben>> Beispiel steht in der yaml :)
in Zeile 35 schimpft er wegen number "Unknown value 'number', valid
options are 'bool', 'int', 'float', 'string', 'bool[]', 'int[]',
'float[]', 'string[]'."
und ist es richtig, dass es 2 mal service: connect gibt?
passt nicht in esp32 4mb
Error: The program size (1836437 bytes) is greater than maximum allowed
(1835008 bytes)
*** [checkprogsize] Explicit exit, status 1
Wer kann mir sagen was das bedeuten soll?
Log:
ets Jul 29 2019 12:21:46
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:0x3fff0030,len:6608
load:0x40078000,len:15060
ho 0 tail 12 room 4
load:0x40080400,len:3816
entry 0x40080698
I (29) boot: ESP-IDF 4.4.5 2nd stage bootloader
I (29) boot: compile time 19:23:39
I (29) boot: chip revision: v3.1
I (32) boot.esp32: SPI Speed : 40MHz
I (37) boot.esp32: SPI Mode : DIO
I (41) boot.esp32: SPI Flash Size : 4MB
I (46) boot: Enabling RNG early entropy source...
I (51) boot: Partition Table:
I (55) boot: ## Label Usage Type ST Offset Length
I (62) boot: 0 otadata OTA data 01 00 00009000
00002000
I (70) boot: 1 phy_init RF data 01 01 0000b000
00001000
I (77) boot: 2 app0 OTA app 00 10 00010000
001c0000
I (85) boot: 3 app1 OTA app 00 11 001d0000
001c0000
I (92) boot: 4 nvs WiFi data 01 02 00390000
0006d000
I (100) boot: End of partition table
I (104) esp_image: segment 0: paddr=00010020 vaddr=3f400020 size=44fe4h
(282596) map
I (215) esp_image: segment 1: paddr=0005500c vaddr=3ffbdb60 size=04c64h
( 19556) load
I (222) esp_image: segment 2: paddr=00059c78 vaddr=40080000 size=063a0h
( 25504) load
I (233) esp_image: segment 3: paddr=00060020 vaddr=400d0020 size=105fc4h
(1073092) map
I (622) esp_image: segment 4: paddr=00165fec vaddr=400863a0 size=16e98h
( 93848) load
I (675) boot: Loaded app from partition at offset 0x10000
I (675) boot: Disabling RNG early entropy source...
I (686) cpu_start: Pro cpu up.
I (687) cpu_start: Starting app cpu, entry point is 0x40082180
I (0) cpu_start: App cpu up.
I (703) cpu_start: Pro cpu start user code
I (703) cpu_start: cpu freq: 160000000
I (703) cpu_start: Application information:
I (707) cpu_start: Project name: eqiva-lock
I (713) cpu_start: App version: 2023.11.6
I (718) cpu_start: Compile time: Dec 4 2023 19:22:45
I (724) cpu_start: ELF file SHA256: 7f5fa95f0b16a391...
I (730) cpu_start: ESP-IDF: 4.4.5
I (735) cpu_start: Min chip rev: v0.0
I (739) cpu_start: Max chip rev: v3.99
I (744) cpu_start: Chip rev: v3.1
I (749) heap_init: Initializing. RAM available for dynamic allocation:
I (756) heap_init: At 3FFAFF10 len 000000F0 (0 KiB): DRAM
I (762) heap_init: At 3FFB6388 len 00001C78 (7 KiB): DRAM
I (768) heap_init: At 3FFB9A20 len 00004108 (16 KiB): DRAM
I (774) heap_init: At 3FFCB9F0 len 00014610 (81 KiB): DRAM
I (780) heap_init: At 3FFE0440 len 00003AE0 (14 KiB): D/IRAM
I (787) heap_init: At 3FFE4350 len 0001BCB0 (111 KiB): D/IRAM
I (793) heap_init: At 4009D238 len 00002DC8 (11 KiB): IRAM
I (801) spi_flash: detected chip: generic
I (804) spi_flash: flash io: dio
I (810) cpu_start: Starting scheduler on PRO CPU.
I (0) cpu_start: Starting scheduler on APP CPU.
Artur K. schrieb:> Dirk schrieb:>> Habe es so eben aktualisiert. Status und Batteriezustand werden jetzt>> über die Sensor Komponente ausgegeben.>> Werde da wahrscheinlich noch die User ID und den User Key vom Pairing>> Prozess mit ausgeben>> Beispiel steht in der yaml :)>> in Zeile 35 schimpft er wegen number "Unknown value 'number', valid> options are 'bool', 'int', 'float', 'string', 'bool[]', 'int[]',> 'float[]', 'string[]'."> und ist es richtig, dass es 2 mal service: connect gibt?> passt nicht in esp32 4mb> Error: The program size (1836437 bytes) is greater than maximum allowed> (1835008 bytes)> *** [checkprogsize] Explicit exit, status 1
Jap zweiten Service entfernen. Hab's auch angepasst.
Bzgl Code size lässt sich nicht viel machen. Der BLE Stack verbraucht
hier sehr viel Speicher. Da hilft es nur das Framework auf esp-idf
umzustellen so wie es auch in der Beispiel yaml ist.
Damit verbraucht er nur 81% des Speichers.
Dirk schrieb:> Bzgl Code size lässt sich nicht viel machen. Der BLE Stack verbraucht> hier sehr viel Speicher. Da hilft es nur das Framework auf esp-idf> umzustellen so wie es auch in der Beispiel yaml ist.
ok dann muss ich wohl mit Kabel flashen. Danke
Artur K. schrieb:> Dirk schrieb:>> Bzgl Code size lässt sich nicht viel machen. Der BLE Stack verbraucht>> hier sehr viel Speicher. Da hilft es nur das Framework auf esp-idf>> umzustellen so wie es auch in der Beispiel yaml ist.>> ok dann muss ich wohl mit Kabel flashen. Danke
Warum? Geht doch auch ganz normal via OTA?
Dirk schrieb:> Warum? Geht doch auch ganz normal via OTA?
Oooo habe mal gelesen, dass wenn man framework ändert, muss man komplett
neu flashen. Gut zu wissen, Danke
Artur K. schrieb:> Dirk schrieb:> Könnte man nicht bei battery Status statt 1 und 0, true und false> benutzen?
Hab's jetzt generell auf text_sensor umgestellt. So ist es auch
sprechender. Zusätzlich zum Lock Status und Batterie wird jetzt auch
noch der BLE Status mit angezeigt/ausgegebenen
Nachdem es beim ersten Test so gut lief habe ich mir noch so ein Schloss
besorgt.
Leider funktioniert es bei mir in der aktuellsten Version gar nicht
mehr.
Der ESP32 scheint immer wieder zu crashen:
WARNING esphome-web-350990: Connection error occurred: [Errno 104]
Connection reset by peer
INFO Processing unexpected disconnect from ESPHome API for
esphome-web-350990
WARNING Disconnected from API
WARNING Can't connect to ESPHome API for esphome-web-350990: Error
connecting to ('192.168.2.66', 6053): [Errno 111] Connect call failed
('192.168.2.66', 6053) (SocketAPIError)
INFO Trying to connect to esphome-web-350990 in the background
Philipp C. schrieb:> Nachdem es beim ersten Test so gut lief habe ich mir noch so ein> Schloss besorgt.> Leider funktioniert es bei mir in der aktuellsten Version gar nicht> mehr.> Der ESP32 scheint immer wieder zu crashen:> WARNING esphome-web-350990: Connection error occurred: [Errno 104]> Connection reset by peer> INFO Processing unexpected disconnect from ESPHome API for> esphome-web-350990> WARNING Disconnected from API> WARNING Can't connect to ESPHome API for esphome-web-350990: Error> connecting to ('192.168.2.66', 6053): [Errno 111] Connect call failed> ('192.168.2.66', 6053) (SocketAPIError)> INFO Trying to connect to esphome-web-350990 in the background
Nutzt du esp-idf?
Ansonsten nimm mal "scan_parameter" raus.
Dirk schrieb:> Nutzt du esp-idf?>> Ansonsten nimm mal "scan_parameter" raus.
Der erste Versuch war noch mit Android, aber das scheint nun nicht mehr
zu passen und ich bin auf esp-idf gegangen.
Ich probiere es mal ohne scan_parameter
Edit: Das hat nichts gebracht. Es sieht so aus, als würde der Aufruf des
pair services zuverlässig den crash auslösen.
Philipp C. schrieb:> Dirk schrieb:>> Nutzt du esp-idf?>> Ansonsten nimm mal "scan_parameter" raus.>> Der erste Versuch war noch mit Android, aber das scheint nun nicht mehr> zu passen und ich bin auf esp-idf gegangen.> Ich probiere es mal ohne scan_parameter> Edit: Das hat nichts gebracht. Es sieht so aus, als würde der Aufruf des> pair services zuverlässig den crash auslösen.
Jo sorry pair hab ich kaputt gemacht.
Funktioniert in der neusten Version wieder. 🙃
Wichtig, keine user_id bzw user_key mitgegeben wenn man pairen möchte.
Diese werden jetzt auch mit zurück geliefert und man sich diese in der
Weboberfläche anzeigen lassen beim pairen :)
Dirk schrieb:> Hab's jetzt generell auf text_sensor umgestellt. So ist es auch> sprechender. Zusätzlich zum Lock Status und Batterie wird jetzt auch> noch der BLE Status mit angezeigt/ausgegebenen
Wie pushe ich neue Komponenten? Der zeigt mir Platform not found:
'text_sensor.eqiva_key_ble'.
Artur K. schrieb:> Dirk schrieb:>> Hab's jetzt generell auf text_sensor umgestellt. So ist es auch>> sprechender. Zusätzlich zum Lock Status und Batterie wird jetzt auch>> noch der BLE Status mit angezeigt/ausgegebenen>> Wie pushe ich neue Komponenten? Der zeigt mir Platform not found:> 'text_sensor.eqiva_key_ble'.https://esphome.io/components/external_components.html#external-components-refresh
Artur K. schrieb:> Dirk schrieb:>>> https://esphome.io/components/external_components.html#external-components-refresh>> Oh stimmmt, darauf noch nicht gekommen, danke> Hätte einen Vorschlag, möchtest du nicht einen lock component einbauen?
Ja definitiv :)
Bin gerade noch dabei die Einstellungen zu implementieren. Dann bräuchte
man die App nicht mehr ;)
Edit: und Einstellungen erfolgreich getestet :)
Man kann jetzt Drehrichtung, Schlüsselposition und Anzahl Drehung
einstellen.
Mache eben noch nen Service dann pushe ich das 🙃
Hendrik F. schrieb:> Unglaublich, wie es voran geht.> Funktionieren schon zwei Schlösser? Dann könnte ich meinen Raspi Zero in> Rente schicken.
Sollte möglich sein indem du erst disconnect und dann connect mit den
passenden Parametern aufrufst.
D.h. gesteuert wird immer das aktuell verbundene Schloss.
Habe das Anpassen der Einstellungen jetzt auch veröffentlicht (muss hier
die lock_turns noch validieren, nicht dass einer was anderes als 1-4
einträgt)
Hm, planst du denn noch meherere Schlösser voll zu integrieren?
So wie es jetzt ist, wäre ja immer nur ein Schloss - und dessen Status -
im Gui sichtbar, oder?
Wünschenswert wäre, wenn mehrere Schlösser hinsichtlich ihres Status -
und auch aktuierbar - wären und wenn diese in einem konfigurierbaren
Zyklus abgefragt würden (z.B. Status update alle 300s sowie unmittelbar
nach jedem Kommando).
Gruß,
Hendrik
Hendrik F. schrieb:> Hm, planst du denn noch meherere Schlösser voll zu integrieren?> So wie es jetzt ist, wäre ja immer nur ein Schloss - und dessen Status -> im Gui sichtbar, oder?> Wünschenswert wäre, wenn mehrere Schlösser hinsichtlich ihres Status -> und auch aktuierbar - wären und wenn diese in einem konfigurierbaren> Zyklus abgefragt würden (z.B. Status update alle 300s sowie unmittelbar> nach jedem Kommando).> Gruß,> Hendrik
Was ist denn dein Ziel? Möchtest du nur die Stati der Schlösser sehen
oder möchtest du diese auch ansteuern?
Wenn ansteuern wie sieht da der Usecase aus? Ist das zeitkritisch?
Man könnte es so anpassen, dass man eine Liste an mac/user_id/user_key
mit gibt und dann bei jedem Aufruf nen Parameter hinzufügen mit der Mac
Adresse.
Wäre ziemlicher Aufwand das so zu programmieren.
Würde da wahrscheinlich eher auf einen zweiten ESP gehen, auch in Bezug
auf die BLE Reichweite.
Hallo,
der Usecase ist, dass ich zwei Schlösser in unmittelbarer Nähe habe, so
dass beide leicht von einem ESP ansteuerbar sind.
Ich bin da so wie ich das oben lese nicht der Einzige.
Ich verstehe aber, wenn das zu viel Aufwand ist.
Ich hatte es mir so vorgestellt, dass der ESP wirklich zwei/N Schlösser
in HA darstellt, so dass HA gar nicht merkt, dass ein ESP zwei Schlösser
ansteuert - und v.a. meine Frau nicht :-)
Das bedeutet natürlich, dass der ESP eine Kommunkiationsqueue braucht
für die Funk-Kommandos.
Das Ansteuern ist nicht so zeitkritisch - wir nutzen es v.a. um die
Schlösser abzuschließen wenn wir es vergessen haben. Wenn du aber eine
so gute Arbeit machst, dass man die App nicht mehr nutzt, kann ich mir
vorstellen, dass man auch HA zum aufschließen nutzt. Dann wäre es
natürlich blöd, wenn es lange dauert - mit der App dauert es aber auch
mehrere Sekunden.
> Man könnte es so anpassen, dass man eine Liste an mac/user_id/user_key> mit gibt und dann bei jedem Aufruf nen Parameter hinzufügen mit der Mac> Adresse.
Siehe oben: Ich hätte gedacht, dass man einfach mehere Schlösser
"emuliert".
Übrigens: Der Status ist in meinen Augen nicht besonders wichtig, da er
eh unzuverlässig ist: Wenn die Tür nicht zu ist, und das Schloss aber
"abschließt" dann bringt das garnix. Deshalb habe ich einen Taster im
Türrahmen, der vom Riegel gedrückt wird.
Gruß,
Hendrik
Hallo,
beim Installieren bekomme ich einen Fehler:
> Failed config>>eqiva_key_ble: [source /config/esphome/esphome-web-8bf1d4.yaml:96]>> value must be at most 8.> id: key_ble
Habe ich da etwas falsch verstanden?
Gruß,
Hendrik
Hendrik F. schrieb:> Hallo,> beim Installieren bekomme ich einen Fehler:>> Failed config>> eqiva_key_ble: [source /config/esphome/esphome-web-8bf1d4.yaml:96]>> value must be at most 8.>> id: key_ble>> Habe ich da etwas falsch verstanden?> Gruß,> Hendrik
Poste mal deine yaml
Die max 8 habe ich bei user_id hinterlegt aber nicht bei der id
Edit: ok du lässt die user\id weg das sollte auch möglich sein
Schaue es mir an
Hendrik F. schrieb:> Hallo,> beim Installieren bekomme ich einen Fehler:>> Failed config>> eqiva_key_ble: [source /config/esphome/esphome-web-8bf1d4.yaml:96]>> value must be at most 8.>> id: key_ble>> Habe ich da etwas falsch verstanden?> Gruß,> Hendrik
Hab's gefixed
Übrigens könntest du dir die beiden Schlösser in der yaml definieren mit
nem Lock Template (siehe Foto)
Artur K. schrieb:> Hi, wie ist es eigentlich momentan. Besteht dauerhafte Verbindung?> Wenn nicht wich lasse ich es dauerhaft verbunden?
Ja ist dauerhaft verbunden.
Hab auch vergessen beim manuellen disconnect die Daten rausschmeißen.
Dadurch verbindet er sich denke ich immer wieder mit dem zuletzt
verbundenen.
Hallo,
der Fix funktioniert.
Mir fehlt jetzt noch etwas Dokumentation. Ich weiß nicht, wie ich jetzt
die Bedienung mache (ich finde das Gerät nicht unter meinen Entitäten).
> Übrigens könntest du dir die beiden Schlösser in der yaml definieren mit> nem Lock Template (siehe Foto)
D.h. ich würde den Part aus deinem Screenshot zweimal einfügen (mit
unterschiedlichem Namen)?
Und dann gäbe es zwei Entitäten für das Schloss?
Gruß,
Hendrik
Hendrik F. schrieb:> Hallo,> der Fix funktioniert.> Mir fehlt jetzt noch etwas Dokumentation. Ich weiß nicht, wie ich jetzt> die Bedienung mache (ich finde das Gerät nicht unter meinen Entitäten).>> Übrigens könntest du dir die beiden Schlösser in der yaml definieren mit>> nem Lock Template (siehe Foto)>> D.h. ich würde den Part aus deinem Screenshot zweimal einfügen (mit> unterschiedlichem Namen)?> Und dann gäbe es zwei Entitäten für das Schloss?> Gruß,> Hendrik
Hab ein Beispiel hochgeladen und den Code nochmal aktualisiert.
Kann es natürlich nicht testen, da ich nur ein Schloss habe.
Mit den beiden Lock Templates sollten aber beide Schlösser in HA
auftauchen
Für schneller Verbindung kannst du die scan window auf 300ms setzen
Aber bedenke, gleichzeitig ausführen wird zu Problemem führen :)
Hier geht es ja ab :) Bei jedem Install gibt es eine neue Version
Leider startet mein ESP seit der letzten offenbar gar nicht mehr. Es
geht nicht mehr bis zum logger :(
Philipp C. schrieb:> Hier geht es ja ab :) Bei jedem Install gibt es eine neue Version> Leider startet mein ESP seit der letzten offenbar gar nicht mehr. Es> geht nicht mehr bis zum logger :(
esp-idf?