Dirk schrieb: > esp-idf? Ja, aber ich habe nun noch mal das aktuelle yaml kopiert. Passte meins ggf. nicht mehr zum Rest? Ich hatte refresh auf 0s stehen. Pairing ging, dann wollte ich ein neues install machen mit Key und ID und damit kam er nicht mehr hoch. Nun habe ich Key und ID wieder raus und versuche es mit dem Connect Service. Gemeldet hat er sich schon mal wieder
Dirk schrieb: > Hab ein Beispiel hochgeladen und den Code nochmal aktualisiert. Danke! Verwirrend ist, dass die MAC von dem einen Schloss außerhalb des Template definiert wird. eqiva_key_ble: id: key_ble # Below are optional and can be passed via new connect service mac_address: 00:12:34:56:42:88 user_id: 0 user_key: 12345678636F6763386A726E33746F35 Vom zweiten aber nur im Template. Wo wird denn vom zweiten Lock User und key definiert? > Für schneller Verbindung kannst du die scan window auf 300ms setzen > > Aber bedenke, gleichzeitig ausführen wird zu Problemem führen :) Definiere "gleichzeitig" :-) Kann man eigentlich in der yaml "Platzhalter" definieren, um die sich wiederholenden Mac-Adressen zu vermeiden? Nihct aus Faulheit, sondern weil es Fehlerträchtig ist. Gruß, Hendrik
Philipp C. schrieb: > Nun habe ich Key und ID wieder raus und versuche es mit dem Connect > Service. Gemeldet hat er sich schon mal wieder hmm, das ging nun auch. Wohl eher ein Fehler auf meiner Seite. Wie ist es mit dem Key und der ID denn gedacht? Man scheint den connect Service ja nicht zu benötigen, wenn man hier alles einträgt: eqiva_key_ble: id: key_ble # Below are optional and can be passed via new connect service mac_address: 00:1A:xxx user_id: 4 user_key: xxxxx Wird man die ganzen User IDs von den Pairing Versuchen eigentlich irgendwie wieder los? Echt super, dass man dieses Schloss nun so zügig ansprechen kann.
Hallo, hab jetzt verstanden, wie das zweite Lock definiert wird. Aber kann das dann nicht weg? >eqiva_key_ble: > id: key_ble > # Below are optional and can be passed via new connect service > mac_address: 00:1a:... > user_id: 1 > user_key: xxx Es kompiliert leider aktuell nicht: https://pastebin.com/vdeGGEtq Könntest du da einmal gucken, bitte? Gruß, Hendrik
:
Bearbeitet durch User
Hendrik F. schrieb: > Hallo, > hab jetzt verstanden, wie das zweite Lock definiert wird. > Aber kann das dann nicht weg? >> eqiva_key_ble: >> id: key_ble >> Below are optional and can be passed via new connect service >> mac_address: 00:1a:... >> user_id: 1 >> user_key: xxx > > Es kompiliert leider aktuell nicht: > https://pastebin.com/vdeGGEtq > Könntest du da einmal gucken, bitte? > Gruß, > Hendrik Zwei Schlösser gehen wenn du die Parameter via connect mitgiebts. Dann solltest du es nicht in der Initialen config mitgeben. Wenn man nur ein Schloss dauerhaft verbunden haben möchte nutzt man einfach die config. Dann braucht man die connect/disconnect Funktion nicht.
Verstanden. Hast du eine Idee, warum er nicht kompiliert (siehe mein pastebin)? Gruß und danke für die tolle Entwicklung, Hendrik
Hendrik F. schrieb: > Verstanden. > Hast du eine Idee, warum er nicht kompiliert (siehe mein pastebin)? > Gruß und danke für die tolle Entwicklung, > Hendrik Joa einmal die Build Files clearen (In der Übersicht auf die drei Punkte klicken)
:
Bearbeitet durch User
Hab in die yaml noch ne Time Komponente gepackt die alle 4 Minuten den Status abruft. Hab im Log nämlich festgestellt, dass nach ~5min Inaktivität das Schloss wohl die Verbindung abbricht? Konntet ihr das auch beobachten?
Dirk schrieb: > Hab in die yaml noch ne Time Komponente gepackt die alle 4 Minuten den > Status abruft. Hab im Log nämlich festgestellt, dass nach ~5min > Inaktivität das Schloss wohl die Verbindung abbricht? > > Konntet ihr das auch beobachten? Ja, siehe Anhang. Mein ESP scheint dabei dann auch die Verbindung zum logger zu verlieren. Zudem habe ich gerade festgestellt, dass der unlock service bei mir gar nicht funktioniert. Ich hatte bisher nur mit lock und open gespielt. Da ist alles ok. Bei unlock passiert jedoch gar nichts.
Hallo, ich habe nie eine dauerhafte Verbindung gehabt. Aber mit dem originalen keyble kannst du das gegentesten um auszuschließen, dass es am ESP liegt. Du musst --auto_disconnect_time 0 wählen. Ich habe jetzt erfolgreich kompiliert und meine zwei Locks im HomeAssistant. Eins habe ich auch schon zum Aufschließen bekommen. Danach war aber auf einmal das Lock (und auch die Firmware-Entität) "nicht verfügbar" Im "Logbuch" sieht man auch equiva Controller Firmware ausgeschaltet equiva Controller nicht mehr verfügbar (immer wieder) Der Ping sieht aber gut aus. Ping-Statistik für 192.168.177.1: Pakete: Gesendet = 29796, Empfangen = 29707, Verloren = 89 (0% Verlust), Ca. Zeitangaben in Millisek.: Minimum = 0ms, Maximum = 3700ms, Mittelwert = 7ms In der Seriellen Konsole sieht auch alles gut aus. Außer gelegentliche [I][wifi:286]: WiFi Connecting to 'FriedelNetz'... [W][wifi_esp32:458]: Event: Disconnected ssid='FNetz' bssid=aa:22:bb:24:DE:F1 reason='Auth Expired' [W][wifi:604]: Error while connecting to network. [W][wifi:640]: Restarting WiFi adapter... [I][wifi:286]: WiFi Connecting to 'FriedelNetz'... [W][wifi_esp32:458]: Event: Disconnected ssid='FNetz' bssid=aa:22:bb:24:DE:F1 reason='Auth Expired' [W][wifi:604]: Error while connecting to network. [W][wifi:640]: Restarting WiFi adapter... Aber z.B. jetzt gerade sind die Elemente vom ESP in HA nicht verfügbar (grau) obwohl in der seriellen Konsole [I][wifi:286]: WiFi Connecting to 'FNetz'... [I][wifi:573]: WiFi Connected! [C][wifi:391]: Local MAC: aa:71:bb:8B:F1:D4 [C][wifi:396]: SSID: 'FriedelNetz' steht (beachte: die MAC ist eine andere; vermutlich ein anderer AP) Hast du eine Idee? Gruß, Hendrik
:
Bearbeitet durch User
Philipp C. schrieb: > Dirk schrieb: >> Hab in die yaml noch ne Time Komponente gepackt die alle 4 Minuten den >> Status abruft. Hab im Log nämlich festgestellt, dass nach ~5min >> Inaktivität das Schloss wohl die Verbindung abbricht? >> Konntet ihr das auch beobachten? > > Ja, siehe Anhang. Mein ESP scheint dabei dann auch die Verbindung zum > logger zu verlieren. > Zudem habe ich gerade festgestellt, dass der unlock service bei mir gar > nicht funktioniert. Ich hatte bisher nur mit lock und open gespielt. Da > ist alles ok. Bei unlock passiert jedoch gar nichts. Einmal neuste Version verwenden. Der hatte noch beim reconnect gecrashed. D.h. WiFi sollte trotzdem verbunden bleiben, nur BLE verliert die Verbindung. Das mit dem unlock habe ich auch schon festgestellt. Dachte es liegt vllt am Schloss Weil ich es noch nicht montiert habe. Geht das unlock denn mit der nodejs Version oder der anderen ESP32 Version? Befehl wird nämlich korrekt abgesendet so wie ich das sehe.
:
Bearbeitet durch User
Hallo, hast du auch eine Idee für mein Problem? Gruß, Hendrik
Dirk schrieb: > Das mit dem unlock habe ich auch schon festgestellt. > > Dachte es liegt vllt am Schloss Weil ich es noch nicht montiert habe. > Geht das unlock denn mit der nodejs Version oder der anderen ESP32 > Version? > > Befehl wird nämlich korrekt abgesendet so wie ich das sehe. Das scheint tatsächlich das Problem zu sein. Ich habe es mal an die Tür angebaut und da tut sich was. Nun zeigt er noch "JAMMED" an, wenn ich abschließe, aber das ist wohl ein anderes Problem und hat weniger mit der ESP Software zu tun :)
Hendrik F. schrieb: > Hallo, > hast du auch eine Idee für mein Problem? > Gruß, > Hendrik Welchen ESP hast du? Neueste Version vom Code? Clean Build gemacht?
:
Bearbeitet durch User
Clean Build = vorher die Daten gelöscht? Ja (vorher ging der Build ja nicht). Version vom Code: Von heute morgen. Ich baue aber nochmal. Das ESP Modul ist dieses https://codedocu.de/Sonstiges/Hardware/Arduino/ESP32-Board--von-AZDelivery-unter-ESP32-NodeMCU-Development-Kit?3091 Ich glaube, der ESP crasht beim betätigen von "Lock": Error reading from serial device ets Jun 8 2016 00:22:57 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:1184 load:0x40078000,len:13132 load:0x40080400,len:3036 entry 0x400805e4 [I][logger:326]: Log initialized [C][ota:473]: There have been 1 suspected unsuccessful boot attempts. Das komische ist, dass danach im Log alles normal aussieht. Aber der ESP/das Schloss bleibt grau. Es wurde erst nach einem erneuten Kompilieren wieder nutzbar - mag Zufall sein. Gruß, Hendrik
:
Bearbeitet durch User
Hallo, ich habe jetzt mal zurückgerüstet auf ein Lock und kann jetzt auch die Kommunikation zum Lock im Log sehen. Allerdings fehlen mir die Steuerelemente um das Schloss zu bedienen. Woran kann das liegen? Gruß, Hendrik
Hendrik F. schrieb: > Allerdings fehlen mir die Steuerelemente um das Schloss zu bedienen. > Woran kann das liegen? Die kommen eigentlich, wenn Du so ein Template Lock anlegst. Wie sieht denn dein yaml aktuell aus?
Hallo, oh, ich dachte das lock-template wäre nur bei zwei Schlössern nötig. Ich habe das jetzt wieder hinzugefügt und damit funktioniert es jetzt - einigermaßen. Was mir nicht klar ist: Wo soll ich das Schloss im Schloss-Popup bedienen? Am vertikalen "Slider", oder auf dem Knopf darunter? Ich habe das Schloss bedienen können, aber es reagiert nicht immer. Zudem wird der Status nicht aktualisiert. Der Slider bleibt rot und der Text-Status bleibt "aufgeschlossen". Hier meine Konfiguration:
1 | esphome: |
2 | name: esphome-web-8bf1d4 |
3 | friendly_name: equiva Controller |
4 | esp32: |
5 | board: esp32dev |
6 | framework: |
7 | type: esp-idf |
8 | |
9 | # Enable logging |
10 | logger: |
11 | |
12 | # Enable Home Assistant API |
13 | api: |
14 | encryption: |
15 | key: "V/xx=" |
16 | services: |
17 | - service: settings |
18 | variables: |
19 | turn_left: bool |
20 | key_horizontal: bool |
21 | lock_turns: int |
22 | then: |
23 | - eqiva_key_ble.settings: |
24 | turn_left: !lambda 'return turn_left;' |
25 | key_horizontal: !lambda 'return key_horizontal;' |
26 | lock_turns: !lambda 'return lock_turns;' |
27 | - service: connect |
28 | variables: |
29 | # mac_address: string // Unable to pass a mac_address via lambda :? |
30 | user_id: int |
31 | user_key: string |
32 | then: |
33 | - eqiva_key_ble.connect: |
34 | mac_address: 32:20:50:56:42:88 |
35 | # mac_address: !lambda 'return mac_address;' |
36 | user_id: !lambda 'return user_id;' |
37 | user_key: !lambda 'return user_key;' |
38 | - service: disconnect |
39 | then: |
40 | - eqiva_key_ble.disconnect: |
41 | - service: pair |
42 | variables: |
43 | card_key: string |
44 | then: |
45 | - eqiva_key_ble.pair: |
46 | card_key: !lambda 'return card_key;' |
47 | - service: lock |
48 | then: |
49 | - eqiva_key_ble.lock: |
50 | - service: unlock |
51 | then: |
52 | - eqiva_key_ble.unlock: |
53 | - service: open |
54 | then: |
55 | - eqiva_key_ble.open: |
56 | - service: status |
57 | then: |
58 | - eqiva_key_ble.status: |
59 | ota: |
60 | |
61 | wifi: |
62 | ssid: FNetz |
63 | password: paass |
64 | |
65 | # Enable fallback hotspot (captive portal) in case wifi connection fails |
66 | ap: |
67 | ssid: "Esphome-Web-8Bf1D4" |
68 | password: "paaas" |
69 | |
70 | web_server: |
71 | include_internal: true |
72 | local: true |
73 | port: 80 |
74 | |
75 | |
76 | captive_portal: |
77 | |
78 | external_components: |
79 | source: github://digaus/esphome-components-eqiva |
80 | # use refresh when you do not get latest version |
81 | refresh: 0s |
82 | |
83 | esp32_ble_tracker: |
84 | # scan_parameters: |
85 | # window: 300ms |
86 | |
87 | eqiva_ble: |
88 | |
89 | eqiva_key_ble: |
90 | id: key_ble |
91 | # Below are optional and can be passed via new connect service |
92 | mac_address: 32:20:50:18:a6:96 # Hintertür |
93 | user_id: 1 |
94 | user_key: 9872987492873492837492837492374 |
95 | |
96 | #Schuppen: |
97 | #mac_address: 32:20:50:0a:6e:7c # Schuppen |
98 | #user_id: 1 |
99 | #user_key: 9283749283749237498729874928734 |
100 | |
101 | |
102 | text_sensor: |
103 | - platform: eqiva_key_ble |
104 | mac_address: |
105 | name: "Mac Address" |
106 | id: mac_address |
107 | lock_status: |
108 | name: "Lock Status" |
109 | id: lock_status |
110 | low_battery: |
111 | name: "Low Battery" |
112 | lock_ble_state: |
113 | name: "Lock BLE State" |
114 | user_id: |
115 | name: "User ID" |
116 | user_key: |
117 | name: "User Key" |
118 | # on_raw_value: |
119 | # then: Do stuff on state change (!lambda "return x") |
120 | |
121 | |
122 | lock: |
123 | - platform: template |
124 | name: "Lock 1" |
125 | lambda: |- |
126 | if (id(mac_address).state != "32:20:50:18:a6:96") { |
127 | return {}; |
128 | } |
129 | if (id(lock_status).state == "LOCKED") { |
130 | return LOCK_STATE_LOCKED; |
131 | } else if (id(lock_status).state == "UNLOCKED" || id(lock_status).state == "OPENED") { |
132 | return LOCK_STATE_UNLOCKED; |
133 | } else if (id(lock_status).state == "UNKNOWN") { |
134 | return LOCK_STATE_JAMMED; |
135 | } else { |
136 | return LOCK_STATE_LOCKED; |
137 | } |
138 | lock_action: |
139 | - eqiva_key_ble.connect: |
140 | mac_address: 32:20:50:18:a6:96 # Hintertür |
141 | user_id: 1 |
142 | user_key: 9872987492873492837492837492374 |
143 | - eqiva_key_ble.lock: |
144 | unlock_action: |
145 | - eqiva_key_ble.connect: |
146 | mac_address: 32:20:50:18:a6:96 # Hintertür |
147 | user_id: 1 |
148 | user_key: 9872987492873492837492837492374 |
149 | - eqiva_key_ble.unlock: |
150 | open_action: |
151 | - eqiva_key_ble.connect: |
152 | mac_address: 32:20:50:18:a6:96 # Hintertür |
153 | user_id: 1 |
154 | user_key: 9872987492873492837492837492374 |
155 | - eqiva_key_ble.open: |
Gruß, Hendrik
Hallo, es funktioniert jetzt - genau wie oben gepostet - mit zwei Locks. Super! Ich weiß aber nicht, warum es vorher nicht ging. Verbleibende Fragen: - Wie kann ich die dauerhafte Verbindung deaktivieren - oder noch besser: Zeitgesteuert machen (es gibt bei uns "Stoßzeiten")? - Wie kann ich noch den Status vom zweiten Lock (Batterie etc) bekommen? - Kann ich für "Locked" auch einen anderen Sensor (meinen Riegel-Taster, siehe oben) nutzen?
1 | lambda: |- |
2 | if (id(mac_address).state != "xxxxx:0a:6e:7c") { |
3 | return {}; |
4 | } |
5 | if (binary_sensor.schuppen_riegelkontakt == "1") { |
6 | return LOCK_STATE_LOCKED; |
7 | } else if (id(lock_status).state == "UNLOCKED" || id(lock_status).state == "OPENED") || (binary_sensor.schuppen_riegelkontakt == "0") { |
8 | return LOCK_STATE_UNLOCKED; |
9 | } else if (id(lock_status).state == "UNKNOWN") { |
10 | return LOCK_STATE_JAMMED; |
11 | } |
Gruß, Hendrik
Hendrik F. schrieb: > Hallo, > es funktioniert jetzt - genau wie oben gepostet - mit zwei Locks. > Super! > Ich weiß aber nicht, warum es vorher nicht ging. > Verbleibende Fragen: > > Wie kann ich die dauerhafte Verbindung deaktivieren - oder noch besser: > Zeitgesteuert machen (es gibt bei uns "Stoßzeiten")? > Wie kann ich noch den Status vom zweiten Lock (Batterie etc) bekommen? > Kann ich für "Locked" auch einen anderen Sensor (meinen Riegel-Taster, > siehe oben) nutzen? > > 1 > lambda: |- > > 2 > if (id(mac_address).state != "xxxxx:0a:6e:7c") { > > 3 > return {}; > > 4 > } > > 5 > if (binary_sensor.schuppen_riegelkontakt == "1") { > > 6 > return LOCK_STATE_LOCKED; > > 7 > } else if (id(lock_status).state == "UNLOCKED" || > id(lock_status).state == "OPENED") || > (binary_sensor.schuppen_riegelkontakt == "0") { > > 8 > return LOCK_STATE_UNLOCKED; > > 9 > } else if (id(lock_status).state == "UNKNOWN") { > > 10 > return LOCK_STATE_JAMMED; > > 11 > } > > Gruß, > Hendrik Status solltest du beim zweiten Lock genau so bekommen wie beim ersten. Einfach auf im Lambda auf die Mac Adresse prüfen. Zeitsteuerung kannst du mit der Time Komponente machen. Hab da ja schon alle 4 min einem Status Aufruf gemacht. Damit könntet du dann auch nach einiger Zeit disconnect aufrufen bzw. Connect
Hallo, da hab ich mich unklar ausgedrückt. Ich hatte zwei Fragen: 1) Kann ich für den Lock Status so, wie ich das in dem Code-Block geschrieben habe einen anderen Sensor nutzen 2) Kann ich für das zweite Lock den *Batterie*-Status ermitteln? Zur Zeit noch: Aktuell ist im Lock-Template kein Disconnect. Das müsste ich dann noch einbauen, oder?
1 | lock_action: |
2 | - eqiva_key_ble.connect: |
3 | mac_address: 11:12:34:56:42:88 |
4 | user_id: 1 |
5 | user_key: 1234567891234567897234696139787E |
6 | - eqiva_key_ble.lock: |
7 | - eqiva_key_ble.disconnect: |
Was macht denn der Code intern aktuell, wenn ich Lock bei dem einen und dann bei dem anderen Lock ausführe? Weiß er, dass er ein Disconnect machen muß, bevor er das Connect macht? Gruß, Hendrik
:
Bearbeitet durch User
Hey, bei mit wird Lock 1 immer als geöffnet angezeigt. Habe alles aus git kopiert. Wahrscheinlich springt er immer in else.
:
Bearbeitet durch User
Hallo, ich habe auch das Problem mit dem Status. Allerdings verwende ich auch meinen Riegelkontakt als Input für den Status.
1 | # make external sensors available |
2 | sensor: |
3 | - platform: homeassistant |
4 | name: "Hintertuer" |
5 | entity_id: binary_sensor.eg_flur_reed_hintertuer_geschlossen |
6 | id: Hintertuer_status |
7 | - platform: homeassistant |
8 | name: "Schuppen" |
9 | entity_id: binary_sensor.haustechnik_schuppen_neu_schloss_geschlossen |
10 | id: Schuppen_status |
11 | |
12 | lock: |
13 | - platform: template |
14 | name: "Hintertür" |
15 | lambda: |- |
16 | if (id(mac_address).state != "00:1a:22:01:62:72") { |
17 | return {}; |
18 | } |
19 | if (id(Hintertuer_status).state) { |
20 | return LOCK_STATE_LOCKED; |
21 | } else { |
22 | return LOCK_STATE_UNLOCKED; |
23 | } |
24 | |
25 | - platform: template |
26 | name: "Schuppen" |
27 | lambda: |- |
28 | if (id(mac_address).state != "00:1a:22:01:62:71") { |
29 | return {}; |
30 | } |
31 | if (id(Schuppen_status).state) { |
32 | return LOCK_STATE_LOCKED; |
33 | } else { |
34 | return LOCK_STATE_UNLOCKED; |
35 | } |
36 | |
37 | Das Schloss lasse ich nun nur zu bestimmten Zeiten verbunden: |
38 | time: |
39 | - platform: sntp |
40 | timezone: Europe/Berlin |
41 | servers: |
42 | - 0.pool.ntp.org |
43 | - 1.pool.ntp.org |
44 | - 2.pool.ntp.org |
45 | on_time: |
46 | # Every 4 minutes get Status, to ensure quick reaction |
47 | - cron: '00 /4 21-23 * * *' |
48 | then: |
49 | - eqiva_key_ble.status: |
Hier der ganze Code https://pastebin.com/AidTEfph Siehst du da einen Fehler? Gruß, Hendrik
Hendrik F. schrieb: > Hallo, > ich habe auch das Problem mit dem Status. Allerdings verwende ich auch > meinen Riegelkontakt als Input für den Status. Für deine Lock states kannst ja die Prüfung auf die Mac Adresse weg lassen. Hast ja extra zwei separate Sensoren. Bei mir wird der Lock state mit dem "neuen" Austausch-Schloss vernünftig dargestellt (schloss ist 6 Monate alt und hat noch alte Logs/user...) Habe die yaml Mal aktualisiert.
Werde die yaml auch noch so anpassen, dass man alles über die Web Oberfläche konfigurieren kann.
Ein Problem könnte es noch mit dem Session counter geben, wenn die Verbindung dauerhaft bestehen bleibt. In der original Implementierung wird ein uint8 verwenden , das wären max 255 Also was passiert wenn man diese Grenze erreicht? Muss man das Schloss dann neu verbinden? Oder fängt er von vorne an zu zählen? Ich teste das mal heute Abend aus. 🤔
Hallo, also der Status funktioniert bei mir noch nicht. Ich benutze dabei ja meinen eigenen Sensor, siehe template oben. Die if Abfrage mit der MAC-Adresse habe ich jetzt noch nicht gelöscht, aber ich denke daran soll es ja nicht liegen. Der Status ist bei mir immer aufgeschlossen. Jetzt würde ich erwarten, dass er bei einem Druck auf das Schloss dann auch immer abschliesst. Das macht er allerdings nicht. Das ist auch komisch, oder? Verwendet er zum entscheiden, ob er auf oder abschliesst einfach immer den internen Status?
Hendrik F. schrieb: > Hallo, > also der Status funktioniert bei mir noch nicht. Ich benutze dabei ja > meinen eigenen Sensor, siehe template oben. > Die if Abfrage mit der MAC-Adresse habe ich jetzt noch nicht gelöscht, > aber ich denke daran soll es ja nicht liegen. > Der Status ist bei mir immer aufgeschlossen. > Jetzt würde ich erwarten, dass er bei einem Druck auf das Schloss dann > auch immer abschliesst. Das macht er allerdings nicht. Das ist auch > komisch, oder? > Verwendet er zum entscheiden, ob er auf oder abschliesst einfach immer > den internen Status? Entferne doch einfach Mal den Filter auf die Mac Adresse.
Habe ich entfernt - gleiches Ergebnis. Der Vergleich == 1 scheint immer False zu sein. Der Vergleich if (id(Hintertuer_status).state == "on") kompiliert nicht. Der Vergleich if (id(Hintertuer_status).state.is_on()) kompiliert auch nicht:
1 | User |
2 | /config/esphome/esphome-web-8bf1d4.yaml:151:36: error: request for member 'is_on' in 'Hintertuer_status->esphome::homeassistant::HomeassistantSensor::<anonymous>.esphome::sensor::Sensor::state', which is of non-class type 'float' |
3 | if (id(Hintertuer_status).state.is_on()) { |
4 | ^~~~~ |
Aber warum ist state ein float? Gruß, Hendrik
Hendrik F. schrieb: > Habe ich entfernt - gleiches Ergebnis. > Der Vergleich == 1 scheint immer False zu sein. > Der Vergleich if (id(Hintertuer_status).state == "on") kompiliert nicht. > Der Vergleich if (id(Hintertuer_status).state.is_on()) kompiliert auch > nicht: > > 1 > User > > 2 > /config/esphome/esphome-web-8bf1d4.yaml:151:36: error: request for > member 'is_on' in > 'Hintertuer_status->esphome::homeassistant::HomeassistantSensor::<anonym ous>.esphome::sensor::Sensor::state', > which is of non-class type 'float' > > 3 > if (id(Hintertuer_status).state.is_on()) { > > 4 > ^~~~~ > > Aber warum ist state ein float? > Gruß, > Hendrik Ist dein Sensor der wohl nen float liefert. Log die Werte doch mal.
Wie kann ein Binary Sensor float liefern... Ich hab jetzt if (id(Schuppen_status).state) probiert. (https://esphome.io/components/sensor/template.html) Da steht im log:
1 | [16:51:04][W][homeassistant.sensor:015]: 'binary_sensor.haustechnik_schuppen_neu_schloss_geschlossen': Can't convert 'on' to number! |
2 | [16:51:04][D][sensor:094]: 'Schuppen': Sending state nan with 1 decimals of accuracy |
3 | [16:51:07][W][homeassistant.sensor:015]: 'binary_sensor.haustechnik_schuppen_neu_schloss_geschlossen': Can't convert 'off' to number! |
Das sieht nicht nach einem float aus... Aber warum denkt der Compiler, dass es ein float wäre? Kann ich einfach mit str() einen String erzwingen? ESP_LOGD("custom", "Hintertuer_status state: %f", static_cast<float>(id(Hintertuer_status).state)); sagt mir "Hintertuer_status state: nan" Gruß, Hendrik
:
Bearbeitet durch User
Hendrik F. schrieb: > Wird es nicht vll einfacher den Schloß mit Kontakt direkt in Homeassistant zu es stellen? Das habe ich zumindest so. Finde ich persönlich einfacher, kann man immer was ändern ohne neuzuflashen. Grüß
:
Bearbeitet durch User
Hallo, das Problem habe ich gelöst. Ich habe den Sensor aus HomeAssistant in esphome als
1 | sensor: |
2 | - platform: homeassistant |
3 | name: "Hintertuer" |
4 | entity_id: binary_sensor.xyz |
5 | id: Hintertuer_status |
Importiert. Somit ist es ein sensor. Kein binary sensor So funktioniert es
1 | binary_sensor: |
2 | - platform: homeassistant |
3 | name: "Hintertuer" |
4 | entity_id: binary_sensor.xyz |
5 | id: Hintertuer_status |
Und dann:
1 | - platform: template |
2 | name: "Schuppen" |
3 | lambda: |- |
4 | if (id(Schuppen_status).state) { |
5 | return LOCK_STATE_LOCKED; |
6 | } else { |
7 | return LOCK_STATE_UNLOCKED; |
8 | } |
@Artur: Wenn ich das lock in HA definiere, kennt er dann eqiva_key_ble.connect: und co? Kannst du ein Beispiel posten? Gruß, Hendrik
Hast du mehrer Schlösser?
Iwas komisches ist passiert. In esphome ist meine esp online, wenn ich log drücke, verbindet er nicht. Alle Entitäten in ha sind normal verfügbar. Nur reagiert auf nichts
Ja, ich habe mehrere Schlösser. Noch eine Frage: Wenn ich immer ein Disconnect will, um Batterie zu sparen, reicht dann das: unlock_action: - eqiva_key_ble.connect: mac_address: 00:1c # Hintertür user_id: 1 user_key: x - eqiva_key_ble.unlock: - eqiva_key_ble.disconnect: (die letzte Zeile habe ich hinzugefügt)? Gruß, Hendrik
Bei 2 Schlössern kann man service connect hinzufügen, aber da wird nicht mac übergeben, schon vergessen warum. Alternativ könnte man in esphome 2 services für connect schreiben?
@Dirk Hast du noch nicht rausgefunden wieso man mac nicht via template weitergeben kann?
Hendrik F. schrieb: > @Artur: > Wenn ich das lock in HA definiere, kennt er dann eqiva_key_ble.connect: > und co? > Kannst du ein Beispiel posten? Zum Beispiel so. Aber dann in esphome service: esphome.eqiva_lock_connect für den zweiten Schloß service connect 2 schreiben lock: - platform: template name: Salontur unique_id: salontur value_template: "{{ is_state('binary_sensor.reed_turschloss_salon', 'off') }}" lock: service: esphome.eqiva_lock_connect service: esphome.eqiva_lock_lock service: esphome.eqiva_lock_disconnect unlock: service: esphome.eqiva_lock_connect service: esphome.eqiva_lock_unlock service: esphome.eqiva_lock_disconnect
:
Bearbeitet durch User
Artur K. schrieb: > @Dirk > Hast du noch nicht rausgefunden wieso man mac nicht via template > weitergeben kann? Weil es über das Template nen string ist, es aber als Typ Mac erwartet wird. Müsste im Code dann selber die Konvertierung/Validierung machen
Dirk schrieb: > Artur K. schrieb: >> @Dirk >> Hast du noch nicht rausgefunden wieso man mac nicht via template >> weitergeben kann? > > Weil es über das Template nen string ist, es aber als Typ Mac erwartet > wird. Müsste im Code dann selber die Konvertierung/Validierung machen Meinst du im cpp oder h? Oder direkt in yaml?
Beitrag #7553812 wurde vom Autor gelöscht.
Artur K. schrieb: > lock: > - platform: template > name: Salontur > unique_id: salontur > value_template: "{{ is_state('binary_sensor.reed_turschloss_salon', > 'off') }}" > lock: > service: esphome.eqiva_lock_connect > service: esphome.eqiva_lock_lock > service: esphome.eqiva_lock_disconnect > unlock: > service: esphome.eqiva_lock_connect > service: esphome.eqiva_lock_unlock > service: esphome.eqiva_lock_disconnect Sorry, service connect kann man jetzt templaten. Also muss man nicht zweiten schreiben
Artur K. schrieb: > Dirk schrieb: >> Artur K. schrieb: >>> @Dirk >>> Hast du noch nicht rausgefunden wieso man mac nicht via template >>> weitergeben kann? >> >> Weil es über das Template nen string ist, es aber als Typ Mac erwartet >> wird. Müsste im Code dann selber die Konvertierung/Validierung machen > > Meinst du im cpp oder h? Oder direkt in yaml? Bin schon dabei. Wollte ja alles über die Weboberfläche einstellbar machen.
Dirk schrieb: > Artur K. schrieb: >> Dirk schrieb: >>> Artur K. schrieb: >>>> @Dirk >>>> Hast du noch nicht rausgefunden wieso man mac nicht via template >>>> weitergeben kann? >>> >>> Weil es über das Template nen string ist, es aber als Typ Mac erwartet >>> wird. Müsste im Code dann selber die Konvertierung/Validierung machen >> >> Meinst du im cpp oder h? Oder direkt in yaml? > > Bin schon dabei. > > Wollte ja alles über die Weboberfläche einstellbar machen. Das ist super. Eine frage, wenn ich disconnect mache und dann versucht er sofort zu connecten aber mit id 4, meine id ist 1, verbindet sich such und zeigt established
Artur K. schrieb: > Dirk schrieb: >> Artur K. schrieb: >>> Dirk schrieb: >>>> Artur K. schrieb: >>>>> @Dirk >>>>> Hast du noch nicht rausgefunden wieso man mac nicht via template >>>>> weitergeben kann? >>>> >>>> Weil es über das Template nen string ist, es aber als Typ Mac erwartet >>>> wird. Müsste im Code dann selber die Konvertierung/Validierung machen >>> >>> Meinst du im cpp oder h? Oder direkt in yaml? >> >> Bin schon dabei. >> Wollte ja alles über die Weboberfläche einstellbar machen. > > Das ist super. > Eine frage, wenn ich disconnect mache und dann versucht er sofort zu > connecten aber mit id 4, meine id ist 1, verbindet sich such und zeigt > established Jo hab ich auch gefixed. Er hat die Mac nicht gecleared. ID und User Key aber schon. Dadurch generiert er sich ne neue beim nonce austauschen
Hab's aktualisiert. Jetzt kann man Mac auch bei Connect via template string mitgeben Hab auch Beispiel für UI Eingabe eingebaut
Heute Abend kam ich nach Hause und konnte Schloß nicht ansprechen, web Oberfläche war nicht abrufbar, obwohl es nicht als nicht verfügbar war, war online. Wie konnte ich die Ursache finden?
Sehe oft das im log [20:48:29][W][component:214]: Component esp32_ble took a long time for an operation (0.08 s). [20:48:29][W][component:215]: Components should block for at most 20-30ms.
Artur K. schrieb: > Sehe oft das im log > [20:48:29][W][component:214]: Component esp32_ble took a long time for > an operation (0.08 s). > [20:48:29][W][component:215]: Components should block for at most > 20-30ms. Liegt entweder am write_value also senden der BT Message oder am Verschlüssen. Aber tritt wohl häufig auf: https://github.com/esphome/issues/issues/4717 Wüsste nicht was ich da optimieren könnte. Bzgl. Webserver nicht erreichbar, hast du local: true dort stehen? Wenn nicht gab's vllt Internet Probleme?
Dirk schrieb: > Bzgl. Webserver nicht erreichbar, hast du local: true dort stehen? Wenn > nicht gab's vllt Internet Probleme? Ja habs true stehen. Wegen Internet nicht das ich wussten. Konnte nur Schloß nicht ansprechen, liegt vllt am esp, werde ich mal ersetzen. Aber da lief sehr lange andere Version, wo der Schloß per mqtt angesteuert wird, ohne Probleme, sehr komisch
Wenn ich aktuelle Version von git nehme, kommt das: Failed config text_sensor.eqiva_key_ble: [source /config/esphome/eqiva-lock.yaml:198] platform: eqiva_key_ble mac_address: name: Mac Address ID mac_address redefined! Check text->0->id. id: mac_address disabled_by_default: False entity_category: '' ist es nicht weil in text template id mac_address verwendet wird und auch in text_sensor id mac_address?
Danke Dirk für die schöne Arbeit. Ich möchte auf ein paar Probleme hinweisen, die dein Projekt unbrauchbar machen (Stand heute, 9. Dezember) 1. Die letzte Version hat zwei Probleme im Code (leicht zu lösen): A: Dieser Teil des Codes ist innerhalb der ap-Funktion eingerückt, sollte aber einfach unter wifi stehen # Use below to apply saved input parameters on boot on_connect: - eqiva_key_ble.connect: mac_address: !lambda 'return id(mac_address).state;' user_id: !lambda 'return id(user_id).state;' user_key: !lambda 'return id(user_key).state;' B: Die Entität mac_address unter text sensor kann nicht den gleichen Namen unter text haben 2. Die zuletzt geladene Version erlaubt es nicht, die Benutzerkennung und den Schlüssel über die Webschnittstelle einzugeben (Sie müssten entweder das Pairing erneut durchführen oder die Daten in die Firmware eingeben. 3. Bei der Erstinstallation funktioniert der Code perfekt, aber beim ersten Neustart, wenn der API-Teil gestartet wird, zeigen das Protokoll und das Gerät an, dass alles eingeschaltet ist, aber es geht nicht an (ich vermute, dass die "keyble"-Bibliothek nicht geladen wird). Ein letzter Vorschlag: Da der esp32 vor den 5 Minuten ein Signal sendet, um die Bluetooth-Verbindung aktiv zu halten, würde ich eine Schaltereinheit einfügen, die die Aufrechterhaltung der Verbindung aktiviert und deaktiviert. Zu guter Letzt würde ich auch einen Schalter einfügen, der es ermöglicht, den esp32 im Falle von Problemen vom Home-Assistenten aus neu zu starten. Wenn ich Sie beim esphome-Teil unterstützen kann, stehe ich Ihnen gerne zur Verfügung (ich bin Italiener). Vielen Dank Übersetzt mit DeepL.com (kostenlose Version)
Antonello M. schrieb: > Danke Dirk für die schöne Arbeit. > Ich möchte auf ein paar Probleme hinweisen, die dein Projekt unbrauchbar > machen (Stand heute, 9. Dezember) > 1. Die letzte Version hat zwei Probleme im Code (leicht zu lösen): > A: Dieser Teil des Codes ist innerhalb der ap-Funktion eingerückt, > sollte aber einfach unter wifi stehen > # Use below to apply saved input parameters on boot > on_connect: > - eqiva_key_ble.connect: > mac_address: !lambda 'return id(mac_address).state;' > user_id: !lambda 'return id(user_id).state;' > user_key: !lambda 'return id(user_key).state;' > B: Die Entität mac_address unter text sensor kann nicht den gleichen > Namen unter text haben > > 2. Die zuletzt geladene Version erlaubt es nicht, die Benutzerkennung > und den Schlüssel über die Webschnittstelle einzugeben (Sie müssten > entweder das Pairing erneut durchführen oder die Daten in die Firmware > eingeben. > > 3. Bei der Erstinstallation funktioniert der Code perfekt, aber beim > ersten Neustart, wenn der API-Teil gestartet wird, zeigen das Protokoll > und das Gerät an, dass alles eingeschaltet ist, aber es geht nicht an > (ich vermute, dass die "keyble"-Bibliothek nicht geladen wird). > > Ein letzter Vorschlag: Da der esp32 vor den 5 Minuten ein Signal sendet, > um die Bluetooth-Verbindung aktiv zu halten, würde ich eine > Schaltereinheit einfügen, die die Aufrechterhaltung der Verbindung > aktiviert und deaktiviert. > Zu guter Letzt würde ich auch einen Schalter einfügen, der es > ermöglicht, den esp32 im Falle von Problemen vom Home-Assistenten aus > neu zu starten. > > Wenn ich Sie beim esphome-Teil unterstützen kann, stehe ich Ihnen gerne > zur Verfügung (ich bin Italiener). > Vielen Dank > > Übersetzt mit DeepL.com (kostenlose Version) 2. Ist ein Bug des web_server -> "local: false" setzen 3. Es wird kein keyble Lib geladen. Code sollte funktionieren. Am besten einmal yaml Posten zum Prüfen Das Intervall zum abfragen des Status ist lediglich ein Beispiel. Wie genau man es machen möchte ist hier dem Nutzer überlassen. Die yaml kann ja jeder anpassen wie er möchte .
Kann eigentliche hier ohne Probleme auch bluetooth proxy verwendet werden?
Moin, eine Frage, würde so was nicht funktionieren? klappt iwie nicht wie es mir vorstelle
1 | lock_action:
|
2 | - eqiva_key_ble.connect: |
3 | mac_address: 00:12:34:56:42:88 |
4 | user_id: 1 |
5 | user_key: 12345678636F6763386A726E33746F35 |
6 | - eqiva_key_ble.lock: |
7 | - eqiva_key_ble.disconnect: |
bei mir spinnt es iwie allgemein, ich würde gerne Dauer Verbindung lassen, aber ich merke dass es morgens nicht ansprechbar ist, Verbindung wird iwie verloren oder so. weiss nicht genau oder wie kann ich es am besten machen, wenn ich die Verbindung immer trenne, aber dann wenn ich in HA den Lock schließe oder öffne, dass es dann zuerst connected und zum Schluss disconnected? Automation ist klar, aber ohne geht es iwie? zB direkt in esphome?
:
Bearbeitet durch User
Ich werde Ihnen meine Konfiguration mitteilen und die yaml-Datei anhängen: ESP32 Modell AZ-Delivery https://docs.platformio.org/en/latest/boards/espressif32/az-delivery-devkit-v4.html Wie ich schon sagte, funktioniert das Gerät am Ende der Firmware-Installation perfekt. Aber sobald Sie es neu starten oder ab- und wieder anstecken, funktioniert es nicht mehr. Das Gerät wird auf EspHome als verbunden angezeigt, ist aber nicht über das Webportal erreichbar und die Entitäten sind nicht über den Home Assistant erreichbar. Es kann jedoch über Wireless mit EspHome geflasht werden. Ich füge mein yaml und unten die Protokolldatei bei. INFO ESPHome 2023.11.6 INFO Reading configuration /config/esphome/esphome-web-aa79f0.yaml... INFO Detected timezone 'Europe/Rome' INFO Starting log output from esphome-web-aa79f0.local using esphome API INFO Successfully connected to esphome-web-aa79f0 in 0.574s INFO Successful handshake with esphome-web-aa79f0 in 0.107s [02:32:29][I][app:102]: ESPHome version 2023.11.6 compiled on Dec 8 2023, 11:10:43 [02:32:29][C][wifi:559]: WiFi: [02:32:29][C][wifi:391]: Local MAC: 08:3A:F2:AA:79:F0 [02:32:29][C][wifi:396]: SSID: 'CasaMesserangeli'[redacted] [02:32:29][C][wifi:397]: IP Address: 192.168.178.117 [02:32:29][C][wifi:399]: BSSID: 3C:37:12:05:C1:85[redacted] [02:32:29][C][wifi:400]: Hostname: 'esphome-web-aa79f0' [02:32:29][C][wifi:402]: Signal strength: -51 dB ▂▄▆█ [02:32:29][C][wifi:406]: Channel: 1 [02:32:29][C][wifi:407]: Subnet: 255.255.255.0 [02:32:29][C][wifi:408]: Gateway: 192.168.178.1 [02:32:29][C][wifi:409]: DNS1: 192.168.178.1 [02:32:29][C][wifi:410]: DNS2: 0.0.0.0 [02:32:29][C][logger:416]: Logger: [02:32:29][C][logger:417]: Level: DEBUG [02:32:29][C][logger:418]: Log Baud Rate: 115200 [02:32:29][C][logger:420]: Hardware UART: UART0 [02:32:29][C][captive_portal:088]: Captive Portal: [02:32:29][C][mdns:115]: mDNS: [02:32:29][C][mdns:116]: Hostname: esphome-web-aa79f0 [02:32:29][C][ota:097]: Over-The-Air Updates: [02:32:29][C][ota:098]: Address: esphome-web-aa79f0.local:3232 [02:32:29][W][ota:107]: Last Boot was an unhandled reset, will proceed to safe mode in 8 restarts [02:32:29][C][api:139]: API Server: [02:32:29][C][api:140]: Address: esphome-web-aa79f0.local:6053 [02:32:29][C][api:142]: Using noise encryption: YES WARNING esphome-web-aa79f0: Connection error occurred: [Errno 104] Connection reset by peer INFO Processing unexpected disconnect from ESPHome API for esphome-web-aa79f0 WARNING Disconnected from API INFO Successfully connected to esphome-web-aa79f0 in 0.454s INFO Successful handshake with esphome-web-aa79f0 in 0.113s [02:37:27][D][api:102]: Accepted 192.168.178.200 [02:37:27][W][component:214]: Component api took a long time for an operation (0.05 s). [02:37:27][W][component:215]: Components should block for at most 20-30ms. [02:37:28][D][api.connection:1089]: Home Assistant 2023.12.1 (192.168.178.200): Connected successfully [02:41:49][I][ota:117]: Boot seems successful, resetting boot loop counter. [02:41:49][D][esp32.preferences:114]: Saving 1 preferences to flash... [02:41:49][D][esp32.preferences:143]: Saving 1 preferences to flash: 0 cached, 1 written, 0 failed
Artur K. schrieb: > Moin, eine Frage, würde so was nicht funktionieren? klappt iwie > nicht wie es mir vorstelle > > 1 > lock_action: > > 2 > - eqiva_key_ble.connect: > > 3 > mac_address: 00:12:34:56:42:88 > > 4 > user_id: 1 > > 5 > user_key: 12345678636F6763386A726E33746F35 > > 6 > - eqiva_key_ble.lock: > > 7 > - eqiva_key_ble.disconnect: > [...] > aber ohne geht es iwie? zB direkt in esphome? Disconnect kommt zu früh. müsstest erst machen nachdem sich der Lock Status geändert hat oder einfach nach nem 30 Sekunden delay. Evtl auch einbauen, dass er erst BT Scan macht wenn er mit dem WiFi verbunden ist und bei disconnect wieder Scan deaktivieren
Dirk schrieb: > Evtl auch einbauen, dass er erst BT Scan macht wenn er mit dem WiFi > verbunden ist und bei disconnect wieder Scan deaktivieren Wie mache ich das mit scan genau, oder bzw link wo ich das nachlesen kann. Habe momentan auch bluetooth proxy eingebaut. Aber Probleme nach x Stunden kamen auch ohne bluetooth proxy. Eventuell esp restarten noch 24 Stunden
Artur K. schrieb: > Dirk schrieb: >> Evtl auch einbauen, dass er erst BT Scan macht wenn er mit dem WiFi >> verbunden ist und bei disconnect wieder Scan deaktivieren > > Wie mache ich das mit scan genau, oder bzw link wo ich das nachlesen > kann. > Habe momentan auch bluetooth proxy eingebaut. Aber Probleme nach x > Stunden kamen auch ohne bluetooth proxy. Eventuell esp restarten noch 24 > Stunden Steht in der Beispiel yaml. WLAN onconnet/disconnect und beim starten Initial nicht aktivieren
Problem gelöst. Alles befand sich im esp32-Speicher. Ich flashed eine andere Firmware (tasmota Fabrik) und löschte den gesamten Blitz. Ich habe dann neu geflasht die kompilierte Firmware mit NodeMCU PyFlasher und jetzt sogar Neustart das Gerät bootet korrekt. Ich danke Ihnen für Ihre Geduld und Verfügbarkeit.
Heute morgen wieder passiert, steht ESTABLISHED, Schloß hatte ich Manuel aufgemacht, auf lock unlock reagierte nicht, Status aufgerufen, auch nichts passiert, stand die ganze Zeile Status Locked. Disconnect Funktionierte, auch connect klappte. Einmal neugestartet und geht alles. Ich kann natürlich es mal Nachts Neustart lassen. Aber möchte trotzdem rausfinden warum das so passiert. Betreibt hier jemanden es auch mit Dauerverbindung?
:
Bearbeitet durch User
Artur K. schrieb: > Heute morgen wieder passiert, steht ESTABLISHED, Schloß hatte ich > Manuel aufgemacht, auf lock unlock reagierte nicht, Status aufgerufen, > auch nichts passiert, stand die ganze Zeile Status Locked. Disconnect > Funktionierte, auch connect klappte. Einmal neugestartet und geht alles. > Ich kann natürlich es mal Nachts Neustart lassen. Aber möchte trotzdem > rausfinden warum das so passiert. > Betreibt hier jemanden es auch mit Dauerverbindung? Ja ich, hatte bisher nicht das Problem. Wie lange lief er ohne Probleme? In welchem Intervall aktualisierst du den Status?
Dirk schrieb: > Ja ich, hatte bisher nicht das Problem. > Wie lange lief er ohne Probleme? In welchem Intervall aktualisierst du > den Status? Habe genau nicht beobachtet, werde ich mal machen, ich aktualisiere es so wir bei dir in yaml steht, jede 4 Minuten.
Dirk schrieb: > WLAN onconnet/disconnect und beim starten Initial nicht aktivieren Noch mal dazu, bei wlan habe ich on_connect gesehen. Aber Initial nicht aktivieren, das habe ich nicht wirklich verstanden.
Also um 13 Uhr neugestartet, und jetzt kam ich nach Hause und konnte nicht mehr aufmachen. Vllt bluetooth proxy ist das Problem, werde ich rausnehmen
Hallo, ich war nun einige Tage mit anderen Dingen beschäftigt, aber es läuft bei uns nun schon eine Weile wie es soll. Das letzte mal geflasht habe ich wohl am 7.12. danach musste ich einmal den ESP neu starten, aber seitdem war es zuverlässig. Das 4min Interval habe ich aus dem Beispiel kopiert. Ich kann das Schloss aktuell schließen. Viele Grüße Philipp PS: Sollte ich die SW noch einmal aktualisieren?
Philipp C. schrieb: > Das letzte mal geflasht habe ich wohl am 7.12. danach musste ich einmal > den ESP neu starten, aber seitdem war es zuverlässig. > > Das 4min Interval habe ich aus dem Beispiel kopiert. Ich kann das > Schloss aktuell schließen. Welche esp32 hast du?
Also, gerade wieder passier, nach 5 Stunden, wenn ich lock oder unlock drücke
1 | kommt in log [eqiva_key_ble:358] |
2 | Waiting for connection... |
Eine Idee? Liegt vll am Schloß oder esp32? Erst gerade aufgefallen
1 | [eqiva_key_ble:073] |
2 | ESP_GATTC_WRITE_DESCR_EVT
|
3 | 21:16:35 [D] [esp-idf:000] |
4 | [0;31mE (17830464) BT_APPL: service change write ccc failed |
5 | 21:16:45 [I] [eqiva_key_ble:358] |
6 | Waiting for connection.. |
:
Bearbeitet durch User
Artur K. schrieb: > Also, gerade wieder passier, nach 5 Stunden, wenn ich lock oder > unlock drücke > > 1 > kommt in log [eqiva_key_ble:358] > > 2 > Waiting for connection... > > Eine Idee? Liegt vll am Schloß oder esp32? > Erst gerade aufgefallen > > 1 > [eqiva_key_ble:073] > > 2 > ESP_GATTC_WRITE_DESCR_EVT > > 3 > 21:16:35 [D] [esp-idf:000] > > 4 > [0;31mE (17830464) BT_APPL: service change write ccc failed > > 5 > 21:16:45 [I] [eqiva_key_ble:358] > > 6 > Waiting for connection.. Waiting for connection heist er ist noch nicht verbunden oder hat die nonce noch nicht ausgetauscht. Poste mal deine yaml. Den write ccc error bekomme ich auch immer. Das scheint normal zu sein.
1 | esphome:
|
2 | name: eqiva-lock |
3 | friendly_name: Eqiva Lock |
4 | |
5 | esp32: |
6 | board: wemos_d1_mini32 |
7 | framework: |
8 | type: esp-idf |
9 | |
10 | logger: |
11 | |
12 | api: |
13 | encryption: |
14 | key: !secret api_encryption_key |
15 | services: |
16 | - service: settings |
17 | variables: |
18 | turn_left: bool |
19 | key_horizontal: bool |
20 | lock_turns: int |
21 | then: |
22 | - eqiva_key_ble.settings: |
23 | turn_left: !lambda 'return turn_left;' |
24 | key_horizontal: !lambda 'return key_horizontal;' |
25 | lock_turns: !lambda 'return lock_turns;' |
26 | |
27 | - service: fastconnect |
28 | then: |
29 | - eqiva_key_ble.connect: |
30 | mac_address: 00:1a:22:18:3c:76 |
31 | user_id: 1 |
32 | user_key: 601dde3b2904999e289f1b1079c258fe |
33 | |
34 | - service: connect |
35 | variables: |
36 | mac_address: string |
37 | user_id: int |
38 | user_key: string |
39 | then: |
40 | - eqiva_key_ble.connect: |
41 | mac_address: !lambda 'return mac_address;' |
42 | user_id: !lambda 'return user_id;' |
43 | user_key: !lambda 'return user_key;' |
44 | - service: disconnect |
45 | then: |
46 | - eqiva_key_ble.disconnect: |
47 | - service: pair |
48 | variables: |
49 | card_key: string |
50 | then: |
51 | - eqiva_key_ble.pair: |
52 | card_key: !lambda 'return card_key;' |
53 | - service: lock |
54 | then: |
55 | - eqiva_key_ble.lock: |
56 | - service: unlock |
57 | then: |
58 | - eqiva_key_ble.unlock: |
59 | - service: open |
60 | then: |
61 | - eqiva_key_ble.open: |
62 | - service: status |
63 | then: |
64 | - eqiva_key_ble.status: |
65 | |
66 | ota: |
67 | password: !secret esphome_api_password |
68 | |
69 | wifi: |
70 | ssid: !secret wifi_ssid_salon |
71 | password: !secret wifi_password |
72 | ap: |
73 | ssid: "key-ble Fallback Hotspot" |
74 | password: "hvkiA8QRZbD8" |
75 | # Use below to apply saved input parameters on boot
|
76 | on_connect: |
77 | - eqiva_key_ble.connect: |
78 | mac_address: 00:1a:22:18:3c:76 |
79 | user_id: 1 |
80 | user_key: 601dde3b2904999e289f1b1079c258fe |
81 | #mac_address: !lambda 'return id(mac_address).state;'
|
82 | #user_id: !lambda 'return id(user_id).state;'
|
83 | #user_key: !lambda 'return id(user_key).state;'
|
84 | |
85 | |
86 | #button, number and text input for pairing and setting mac/user_id/user-key via UI
|
87 | button: |
88 | - platform: restart |
89 | name: "Eqiva Lock Restart" |
90 | - platform: safe_mode |
91 | name: "Eqiava Lock Restart (Safe Mode)" |
92 | - platform: template |
93 | id: ble_fastconnect |
94 | name: "Fast Connect" |
95 | icon: "mdi:bluetooth-connect" |
96 | on_press: |
97 | - eqiva_key_ble.connect: |
98 | mac_address: 00:1a:22:18:3c:76 |
99 | user_id: 1 |
100 | user_key: 601dde3b2904999e289f1b1079c258fe |
101 | - platform: template |
102 | id: ble_lock_lock |
103 | name: "Lock lock" |
104 | icon: "mdi:lock" |
105 | on_press: |
106 | - eqiva_key_ble.lock: |
107 | - platform: template |
108 | id: ble_lock_unlock |
109 | name: "Lock unlock" |
110 | icon: "mdi:lock-open" |
111 | on_press: |
112 | - eqiva_key_ble.unlock: |
113 | - platform: template |
114 | id: ble_settings |
115 | name: BLE Settings _Save_ |
116 | icon: "mdi:content-save" |
117 | disabled_by_default: true |
118 | on_press: |
119 | - eqiva_key_ble.connect: |
120 | mac_address: !lambda 'return id(mac_address).state;' |
121 | user_id: !lambda 'return id(user_id).state;' |
122 | user_key: !lambda 'return id(user_key).state;' |
123 | |
124 | - platform: template |
125 | id: ble_disconnect |
126 | name: Disconnect |
127 | icon: "mdi:bluetooth-off" |
128 | on_press: |
129 | - eqiva_key_ble.disconnect: |
130 | - platform: template |
131 | id: ble_pair |
132 | name: BLE Pair _Start_ |
133 | icon: "mdi:check-underline" |
134 | disabled_by_default: true |
135 | on_press: |
136 | - eqiva_key_ble.pair: |
137 | card_key: !lambda 'return id(card_key).state;' |
138 | |
139 | - platform: template |
140 | id: lock_settings |
141 | name: Lock Settings _Apply_ |
142 | icon: "mdi:check-underline" |
143 | on_press: |
144 | - eqiva_key_ble.settings: |
145 | turn_left: !lambda 'return id(direction).state == "Left";' |
146 | key_horizontal: !lambda 'return id(position).state == "Horizontal";' |
147 | lock_turns: !lambda 'return atoi(id(turns).state.c_str());' |
148 | disabled_by_default: true |
149 | - platform: template |
150 | id: ble_status |
151 | name: Status |
152 | icon: "mdi:bluetooth" |
153 | on_press: |
154 | - eqiva_key_ble.status: |
155 | |
156 | number: |
157 | - platform: template |
158 | mode: box |
159 | name: BLE Settings User ID |
160 | id: user_id |
161 | max_value: 7 |
162 | min_value: 0 |
163 | step: 1 |
164 | optimistic: true |
165 | restore_value: true |
166 | disabled_by_default: true |
167 | |
168 | text: |
169 | - platform: template |
170 | mode: text |
171 | name: BLE Settings Mac Address |
172 | id: mac_addr |
173 | optimistic: true |
174 | restore_value: true |
175 | disabled_by_default: true |
176 | - platform: template |
177 | mode: text |
178 | name: BLE Settings User Key |
179 | id: user_key |
180 | optimistic: true |
181 | restore_value: true |
182 | disabled_by_default: true |
183 | - platform: template |
184 | mode: text |
185 | name: BLE Pair Card Key |
186 | id: card_key |
187 | optimistic: true |
188 | disabled_by_default: true |
189 | |
190 | select: |
191 | - platform: template |
192 | name: Lock Settings Close Direction |
193 | id: direction |
194 | options: |
195 | - "Left" |
196 | - "Right" |
197 | optimistic: true |
198 | disabled_by_default: true |
199 | - platform: template |
200 | name: Lock Settings Key Position |
201 | id: position |
202 | options: |
203 | - "Vertical" |
204 | - "Horizontal" |
205 | optimistic: true |
206 | disabled_by_default: true |
207 | - platform: template |
208 | name: Lock Settings Turns |
209 | id: turns |
210 | options: |
211 | - "1" |
212 | - "2" |
213 | - "3" |
214 | - "4" |
215 | optimistic: true |
216 | disabled_by_default: true |
217 | |
218 | captive_portal: |
219 | |
220 | esp32_ble_tracker: |
221 | scan_parameters: |
222 | window: 300ms |
223 | |
224 | #bluetooth_proxy:
|
225 | #active: true
|
226 | |
227 | #binary_sensor:
|
228 | #- platform: ble_presence
|
229 | #ibeacon_uuid: '5058f82a-fca1-419b-827b-a18dcae463b9'
|
230 | #name: "Artur S23U Garage"
|
231 | |
232 | web_server: |
233 | include_internal: true |
234 | local: false |
235 | port: 80 |
236 | |
237 | external_components: |
238 | source: github://digaus/esphome-components-eqiva |
239 | refresh: 0s |
240 | |
241 | eqiva_ble: |
242 | |
243 | eqiva_key_ble: |
244 | id: key_ble |
245 | mac_address: 00:1a:22:18:3c:76 |
246 | user_id: 1 |
247 | user_key: 601dde3b2904999e289f1b1079c258fe |
248 | |
249 | text_sensor: |
250 | - platform: eqiva_key_ble |
251 | mac_address: |
252 | name: "Mac Address" |
253 | id: mac_address |
254 | lock_status: |
255 | name: "Lock Status" |
256 | id: lock_status |
257 | low_battery: |
258 | name: "Low Battery" |
259 | lock_ble_state: |
260 | name: "Lock BLE State" |
261 | user_id: |
262 | name: "User ID" |
263 | user_key: |
264 | name: "User Key" |
265 | # on_raw_value:
|
266 | # then: Do stuff on state change (!lambda "return x")
|
267 | time: |
268 | - platform: sntp |
269 | # ...
|
270 | on_time: |
271 | # Every 5 minutes
|
272 | - seconds: 0 |
273 | minutes: /4 |
274 | then: |
275 | - eqiva_key_ble.status: |
276 | |
277 | lock: |
278 | - platform: template |
279 | name: "Lock" |
280 | lambda: |- |
281 | if (id(lock_status).state == "LOCKED") { |
282 | return LOCK_STATE_LOCKED; |
283 | } else if (id(lock_status).state == "UNLOCKED" || id(lock_status).state == "OPENED") { |
284 | return LOCK_STATE_UNLOCKED; |
285 | } else if(id(lock_status).state == "MOVING") { |
286 | return {}; |
287 | } else if (id(lock_status).state == "UNKNOWN") { |
288 | return LOCK_STATE_JAMMED; |
289 | }
|
290 | return LOCK_STATE_LOCKED; |
291 | lock_action: |
292 | #- eqiva_key_ble.connect:
|
293 | #mac_address: 00:1a:22:18:3c:76
|
294 | #user_id: 1
|
295 | #user_key: 601dde3b2904999e289f1b1079c258fe
|
296 | - eqiva_key_ble.lock: |
297 | #- eqiva_key_ble.disconnect:
|
298 | unlock_action: |
299 | #- eqiva_key_ble.connect:
|
300 | #mac_address: 00:1a:22:18:3c:76
|
301 | #user_id: 1
|
302 | #user_key: 601dde3b2904999e289f1b1079c258fe
|
303 | - eqiva_key_ble.unlock: |
304 | #- eqiva_key_ble.disconnect:
|
305 | open_action: |
306 | #- eqiva_key_ble.connect:
|
307 | #mac_address: 00:1a:22:18:3c:76
|
308 | #user_id: 1
|
309 | #user_key: 601dde3b2904999e289f1b1079c258fe
|
310 | - eqiva_key_ble.open: |
311 | #- eqiva_key_ble.disconnect:
|
board gerade geändert, hatte esp32dev obs daran liegt? Habe esp32 d1 mini von azdelivery
Möglich. Aber ich würde noch die Parameter bei eqiva_key_ble weglassen. Und bei WLAN bei ondisconnect den disconnect service aufrufen . Dann sollten ble Scan und WiFi Scan nie gleichzeitig laufen.
Dieses Fehler kommt immer nach Status Lock oder Unlock Ok werde ich versuchen, danke
Bericht. Board geänderten und das mit wifi was du meintest. Heute morgen istv noch alles gut.
:
Bearbeitet durch User
Artur K. schrieb: > Philipp C. schrieb: >> Das letzte mal geflasht habe ich wohl am 7.12. danach musste ich einmal >> den ESP neu starten, aber seitdem war es zuverlässig. >> >> Das 4min Interval habe ich aus dem Beispiel kopiert. Ich kann das >> Schloss aktuell schließen. > Welche esp32 hast du? Einen D1 Mini. Das mit dem WLAN sollte ich wohl auch noch übernehmen.
Nicht vergessen continues: false beim tracker einzubauen damit er beim Starten nicht direkt los scannt
Dirk schrieb: > Nicht vergessen continues: false beim tracker einzubauen damit er beim > Starten nicht direkt los scannt Hat das Auswirkung auf bluetooth proxy?
Artur K. schrieb: > Dirk schrieb: >> Nicht vergessen continues: false beim tracker einzubauen damit er beim >> Starten nicht direkt los scannt > > Hat das Auswirkung auf bluetooth proxy? Ne wird ja beim onconnect wieder auf true gesetzt
Artur K. schrieb: > Bericht. Board geänderten und das mit wifi was du meintest. Heute morgen > istv noch alles gut. Bericht, Nach der Arbeit die gleiche Geschichte. Daa mit continues: false hatte ich noch nicht.
Artur K. schrieb: > Artur K. schrieb: >> Bericht. Board geänderten und das mit wifi was du meintest. Heute morgen >> istv noch alles gut. > > Bericht, Nach der Arbeit die gleiche Geschichte. Daa mit continues: > false hatte ich noch nicht. Und vllt mal den Uptime sensor einbauen. Dann siehst du ob er neu gestartet hat: https://esphome.io/components/sensor/uptime.html
Dirk schrieb: > Und vllt mal den Uptime sensor einbauen. Dann siehst du ob er neu > gestartet hat: Er startet ja nicht neu, reagiert nicht, wenn man lock oder unlock macht, oder Status, kommt im log warten auf Verbindung
Dirk schrieb: > Ne wird ja beim onconnect wieder auf true gesetzt bei onconnect von Wifi? sehe ich nicht im yaml, und habe jetzt continues: false gesetzt, bei esp32_ble_tracker richtig? und es wollte nicht mit Schloss sich verbinden, stand die ganze zeit waiting for connection
Artur K. schrieb: > Dirk schrieb: >> Ne wird ja beim onconnect wieder auf true gesetzt > > bei onconnect von Wifi? sehe ich nicht im yaml, und habe jetzt > continues: false gesetzt, bei esp32_ble_tracker richtig? und es wollte > nicht mit Schloss sich verbinden, stand die ganze zeit waiting for > connection Ja bei onconnect muss du das continues: true setzen
Steht auch in der Beispiel yaml Wenn du das nicht drin hattest ist klar, dass es nicht funktioniert hat. Dann hat er sich beim WiFi Verlust disconnected und nicht wieder neu verbunden
:
Bearbeitet durch User
Dirk schrieb: > Steht auch in der Beispiel yaml > > Wenn du das nicht drin hattest ist klar, dass es nicht funktioniert hat. > Dann hat er sich beim WiFi Verlust disconnected und nicht wieder neu > verbunden oh sorry, die ganze Zeit falsch geguckt, dachte zuerst es betrifft nur ESP32 C3
Artur K. schrieb: > Dirk schrieb: >> Steht auch in der Beispiel yaml >> Wenn du das nicht drin hattest ist klar, dass es nicht funktioniert hat. >> Dann hat er sich beim WiFi Verlust disconnected und nicht wieder neu >> verbunden > > oh sorry, die ganze Zeit falsch geguckt, dachte zuerst es betrifft nur > ESP32 C3 Beim C3 geht's ohne auf jeden Fall nicht, bei den anderen Boards wahrscheinlich auch sinnvoll
Uptime 5 Stunden, esp läuft wie gewohnt weiter, nur öffnen schließen tut nicht. Waiting for connection obwohl established. Wenn ich zuhause bin versuche ich direkt mit app mich verbinden und öffnen. Sonst muss ich wohl auf dauer Verbindung verzichten. Hane schon mir 2 Buttons erstellt die korrekt connecten öffnen/schließen und disconnecten.
Poste mal deine aktuelle yaml
Dirk schrieb: > Poste mal deine aktuelle yaml
1 | esphome:
|
2 | name: eqiva-bridge |
3 | friendly_name: Eqiva Bridge |
4 | |
5 | esp32: |
6 | board: wemos_d1_mini32 |
7 | framework: |
8 | type: esp-idf |
9 | |
10 | logger: |
11 | |
12 | api: |
13 | encryption: |
14 | key: !secret api_encryption_key |
15 | services: |
16 | - service: settings |
17 | variables: |
18 | turn_left: bool |
19 | key_horizontal: bool |
20 | lock_turns: int |
21 | then: |
22 | - eqiva_key_ble.settings: |
23 | turn_left: !lambda 'return turn_left;' |
24 | key_horizontal: !lambda 'return key_horizontal;' |
25 | lock_turns: !lambda 'return lock_turns;' |
26 | |
27 | - service: fastconnect |
28 | then: |
29 | - eqiva_key_ble.connect: |
30 | mac_address: 00:1a:22:18:3c:76 |
31 | user_id: 1 |
32 | user_key: 601dde3b2904999e289f1b1079c258fe |
33 | |
34 | - service: connect |
35 | variables: |
36 | mac_address: string |
37 | user_id: int |
38 | user_key: string |
39 | then: |
40 | - eqiva_key_ble.connect: |
41 | mac_address: !lambda 'return mac_address;' |
42 | user_id: !lambda 'return user_id;' |
43 | user_key: !lambda 'return user_key;' |
44 | - service: disconnect |
45 | then: |
46 | - eqiva_key_ble.disconnect: |
47 | - service: pair |
48 | variables: |
49 | card_key: string |
50 | then: |
51 | - eqiva_key_ble.pair: |
52 | card_key: !lambda 'return card_key;' |
53 | - service: lock |
54 | then: |
55 | - eqiva_key_ble.lock: |
56 | - service: unlock |
57 | then: |
58 | - eqiva_key_ble.unlock: |
59 | - service: open |
60 | then: |
61 | - eqiva_key_ble.open: |
62 | - service: status |
63 | then: |
64 | - eqiva_key_ble.status: |
65 | |
66 | ota: |
67 | password: !secret esphome_api_password |
68 | |
69 | wifi: |
70 | ssid: !secret wifi_ssid_salon |
71 | password: !secret wifi_password |
72 | ap: |
73 | ssid: "key-ble Fallback Hotspot" |
74 | password: "hvkiA8QRZbD8" |
75 | # Use below to apply saved input parameters on boot
|
76 | on_connect: |
77 | - eqiva_key_ble.connect: |
78 | mac_address: 00:1a:22:18:3c:76 |
79 | user_id: 1 |
80 | user_key: 601dde3b2904999e289f1b1079c258fe |
81 | #mac_address: !lambda 'return id(mac_address).state;'
|
82 | #user_id: !lambda 'return id(user_id).state;'
|
83 | #user_key: !lambda 'return id(user_key).state;'
|
84 | - esp32_ble_tracker.start_scan: |
85 | continuous: true |
86 | on_disconnect: |
87 | - esp32_ble_tracker.stop_scan: |
88 | |
89 | |
90 | #button, number and text input for pairing and setting mac/user_id/user-key via UI
|
91 | button: |
92 | - platform: restart |
93 | name: "Eqiva Lock Restart" |
94 | - platform: safe_mode |
95 | name: "Eqiava Lock Restart (Safe Mode)" |
96 | - platform: template |
97 | id: ble_fastconnect |
98 | name: "Fast Connect" |
99 | icon: "mdi:bluetooth-connect" |
100 | on_press: |
101 | - eqiva_key_ble.connect: |
102 | mac_address: 00:1a:22:18:3c:76 |
103 | user_id: 1 |
104 | user_key: 601dde3b2904999e289f1b1079c258fe |
105 | - platform: template |
106 | id: ble_lock_lock |
107 | name: "Lock lock" |
108 | icon: "mdi:lock" |
109 | on_press: |
110 | - eqiva_key_ble.lock: |
111 | - platform: template |
112 | id: ble_lock_unlock |
113 | name: "Lock unlock" |
114 | icon: "mdi:lock-open" |
115 | on_press: |
116 | - eqiva_key_ble.unlock: |
117 | - platform: template |
118 | id: lock_disconnect |
119 | name: "lock" |
120 | icon: "mdi:lock" |
121 | on_press: |
122 | - eqiva_key_ble.connect: |
123 | mac_address: 00:1a:22:18:3c:76 |
124 | user_id: 1 |
125 | user_key: 601dde3b2904999e289f1b1079c258fe |
126 | - wait_until: |
127 | condition: |
128 | text_sensor.state: |
129 | id: lock_ble_state |
130 | state: 'ESTABLISHED' |
131 | - eqiva_key_ble.lock: |
132 | - wait_until: |
133 | condition: |
134 | text_sensor.state: |
135 | id: lock_status |
136 | state: 'LOCKED' |
137 | - eqiva_key_ble.disconnect: |
138 | - platform: template |
139 | id: unlock_disconnect |
140 | name: "unlock" |
141 | icon: "mdi:lock-open" |
142 | on_press: |
143 | - eqiva_key_ble.connect: |
144 | mac_address: 00:1a:22:18:3c:76 |
145 | user_id: 1 |
146 | user_key: 601dde3b2904999e289f1b1079c258fe |
147 | - wait_until: |
148 | condition: |
149 | text_sensor.state: |
150 | id: lock_ble_state |
151 | state: 'ESTABLISHED' |
152 | - eqiva_key_ble.unlock: |
153 | - wait_until: |
154 | condition: |
155 | text_sensor.state: |
156 | id: lock_status |
157 | state: 'UNLOCKED' |
158 | - eqiva_key_ble.disconnect: |
159 | - platform: template |
160 | id: ble_settings |
161 | name: BLE Settings _Save_ |
162 | icon: "mdi:content-save" |
163 | disabled_by_default: true |
164 | on_press: |
165 | - eqiva_key_ble.connect: |
166 | mac_address: !lambda 'return id(mac_address).state;' |
167 | user_id: !lambda 'return id(user_id).state;' |
168 | user_key: !lambda 'return id(user_key).state;' |
169 | |
170 | - platform: template |
171 | id: ble_disconnect |
172 | name: Disconnect |
173 | icon: "mdi:bluetooth-off" |
174 | on_press: |
175 | - eqiva_key_ble.disconnect: |
176 | - platform: template |
177 | id: ble_pair |
178 | name: BLE Pair _Start_ |
179 | icon: "mdi:check-underline" |
180 | disabled_by_default: true |
181 | on_press: |
182 | - eqiva_key_ble.pair: |
183 | card_key: !lambda 'return id(card_key).state;' |
184 | |
185 | - platform: template |
186 | id: lock_settings |
187 | name: Lock Settings _Apply_ |
188 | icon: "mdi:check-underline" |
189 | on_press: |
190 | - eqiva_key_ble.settings: |
191 | turn_left: !lambda 'return id(direction).state == "Left";' |
192 | key_horizontal: !lambda 'return id(position).state == "Horizontal";' |
193 | lock_turns: !lambda 'return atoi(id(turns).state.c_str());' |
194 | disabled_by_default: true |
195 | - platform: template |
196 | id: ble_status |
197 | name: Status |
198 | icon: "mdi:bluetooth" |
199 | on_press: |
200 | - eqiva_key_ble.status: |
201 | |
202 | number: |
203 | - platform: template |
204 | mode: box |
205 | name: BLE Settings User ID |
206 | id: user_id |
207 | max_value: 7 |
208 | min_value: 0 |
209 | step: 1 |
210 | optimistic: true |
211 | restore_value: true |
212 | disabled_by_default: true |
213 | |
214 | text: |
215 | - platform: template |
216 | mode: text |
217 | name: BLE Settings Mac Address |
218 | id: mac_addr |
219 | optimistic: true |
220 | restore_value: true |
221 | disabled_by_default: true |
222 | - platform: template |
223 | mode: text |
224 | name: BLE Settings User Key |
225 | id: user_key |
226 | optimistic: true |
227 | restore_value: true |
228 | disabled_by_default: true |
229 | - platform: template |
230 | mode: text |
231 | name: BLE Pair Card Key |
232 | id: card_key |
233 | optimistic: true |
234 | disabled_by_default: true |
235 | |
236 | select: |
237 | - platform: template |
238 | name: Lock Settings Close Direction |
239 | id: direction |
240 | options: |
241 | - "Left" |
242 | - "Right" |
243 | optimistic: true |
244 | disabled_by_default: true |
245 | - platform: template |
246 | name: Lock Settings Key Position |
247 | id: position |
248 | options: |
249 | - "Vertical" |
250 | - "Horizontal" |
251 | optimistic: true |
252 | disabled_by_default: true |
253 | - platform: template |
254 | name: Lock Settings Turns |
255 | id: turns |
256 | options: |
257 | - "1" |
258 | - "2" |
259 | - "3" |
260 | - "4" |
261 | optimistic: true |
262 | disabled_by_default: true |
263 | |
264 | sensor: |
265 | - platform: uptime |
266 | name: Uptime Sensor |
267 | |
268 | captive_portal: |
269 | |
270 | esp32_ble_tracker: |
271 | scan_parameters: |
272 | continuous: false |
273 | window: 300ms |
274 | |
275 | bluetooth_proxy: |
276 | active: true |
277 | |
278 | binary_sensor: |
279 | - platform: ble_presence |
280 | ibeacon_uuid: '5058f82a-fca1-419b-827b-a18dcae463b9' |
281 | name: "Artur S23U Garage" |
282 | |
283 | web_server: |
284 | include_internal: true |
285 | local: false |
286 | port: 80 |
287 | |
288 | external_components: |
289 | source: github://digaus/esphome-components-eqiva |
290 | refresh: 0s |
291 | |
292 | eqiva_ble: |
293 | |
294 | eqiva_key_ble: |
295 | #id: key_ble
|
296 | #mac_address: 00:1a:22:18:3c:76
|
297 | #user_id: 1
|
298 | #user_key: 601dde3b2904999e289f1b1079c258fe
|
299 | |
300 | text_sensor: |
301 | - platform: eqiva_key_ble |
302 | mac_address: |
303 | name: "Mac Address" |
304 | id: mac_address |
305 | lock_status: |
306 | name: "Lock Status" |
307 | id: lock_status |
308 | low_battery: |
309 | name: "Low Battery" |
310 | lock_ble_state: |
311 | name: "Lock BLE State" |
312 | id: lock_ble_state |
313 | user_id: |
314 | name: "User ID" |
315 | user_key: |
316 | name: "User Key" |
317 | # on_raw_value:
|
318 | # then: Do stuff on state change (!lambda "return x")
|
319 | time: |
320 | - platform: sntp |
321 | # ...
|
322 | on_time: |
323 | # Every 5 minutes
|
324 | - seconds: 0 |
325 | minutes: /4 |
326 | then: |
327 | - eqiva_key_ble.status: |
328 | |
329 | lock: |
330 | - platform: template |
331 | name: "Lock" |
332 | lambda: |- |
333 | if (id(lock_status).state == "LOCKED") { |
334 | return LOCK_STATE_LOCKED; |
335 | } else if (id(lock_status).state == "UNLOCKED" || id(lock_status).state == "OPENED") { |
336 | return LOCK_STATE_UNLOCKED; |
337 | } else if(id(lock_status).state == "MOVING") { |
338 | return {}; |
339 | } else if (id(lock_status).state == "UNKNOWN") { |
340 | return LOCK_STATE_JAMMED; |
341 | }
|
342 | return LOCK_STATE_LOCKED; |
343 | lock_action: |
344 | #- eqiva_key_ble.connect:
|
345 | #mac_address: 00:1a:22:18:3c:76
|
346 | #user_id: 1
|
347 | #user_key: 601dde3b2904999e289f1b1079c258fe
|
348 | #- wait_until:
|
349 | #condition:
|
350 | #text_sensor.state:
|
351 | #id: lock_ble_state
|
352 | #state: 'ESTABLISHED'
|
353 | - eqiva_key_ble.lock: |
354 | #- wait_until:
|
355 | #condition:
|
356 | #text_sensor.state:
|
357 | #id: lock_status
|
358 | #state: 'LOCKED'
|
359 | #- eqiva_key_ble.disconnect:
|
360 | unlock_action: |
361 | #- eqiva_key_ble.connect:
|
362 | #mac_address: 00:1a:22:18:3c:76
|
363 | #user_id: 1
|
364 | #user_key: 601dde3b2904999e289f1b1079c258fe
|
365 | #- wait_until:
|
366 | #condition:
|
367 | #text_sensor.state:
|
368 | #id: lock_ble_state
|
369 | #state: 'ESTABLISHED'
|
370 | - eqiva_key_ble.unlock: |
371 | #- wait_until:
|
372 | #condition:
|
373 | #text_sensor.state:
|
374 | #id: lock_status
|
375 | #state: 'UNLOCKED'
|
376 | #- eqiva_key_ble.disconnect:
|
Was mir nur auffällt ist, dass du die ID auskommentiert hast. Evlt. liegt es daran? Hast du mal ohne den bluetooth proxy probiert? Hab mal den log erweitert, dann können wir sehen warum er in "Waiting for connection..." reingeht
Dirk schrieb: > Was mir nur auffällt ist, dass du die ID auskommentiert hast. Evlt. > liegt es daran? Hast du mal ohne den bluetooth proxy probiert? > > Hab mal den log erweitert, dann können wir sehen warum er in "Waiting > for connection..." reingeht Ohne proxy war das selbe. Wegen ID wo meinst du genau?
Also gerade getestet, über esp konnte nicht aufmachen. Über app geht, liegt dann an esp, habe aber gestern einen andere geflasht
Fehler beim ota
1 | src/esphome/components/eqiva_key_ble/eqiva_key_ble.cpp:358:21: error: format '%s' expects a matching 'char*' argument [-Werror=format=] |
2 | ESP_LOGI(TAG, "Waiting for connection... (sendingNonce: %s) (remoteSessionNonce: %s) (remoteSessionNonce: %s) (clientStateEstablished: %s)", sendingNonce ? 'true' : 'false', clientState.remote_session_nonce.length() > 0 ? 'true' : 'false', this->state() == espbt::ClientState::ESTABLISHED ? 'true' : 'false'); |
3 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
4 | src/esphome/core/log.h:72:36: note: in definition of macro 'ESPHOME_LOG_FORMAT' |
5 | #define ESPHOME_LOG_FORMAT(format) format
|
6 | ^~~~~~
|
7 | src/esphome/core/log.h:151:28: note: in expansion of macro 'esph_log_i' |
8 | #define ESP_LOGI(tag, ...) esph_log_i(tag, __VA_ARGS__)
|
9 | ^~~~~~~~~~
|
10 | src/esphome/components/eqiva_key_ble/eqiva_key_ble.cpp:358:7: note: in expansion of macro 'ESP_LOGI' |
11 | ESP_LOGI(TAG, "Waiting for connection... (sendingNonce: %s) (remoteSessionNonce: %s) (remoteSessionNonce: %s) (clientStateEstablished: %s)", sendingNonce ? 'true' : 'false', clientState.remote_session_nonce.length() > 0 ? 'true' : 'false', this->state() == espbt::ClientState::ESTABLISHED ? 'true' : 'false'); |
12 | ^~~~~~~~
|
13 | Compiling .pioenvs/eqiva-bridge/src/esphome/components/json/json_util.o |
14 | cc1plus: some warnings being treated as errors |
15 | *** [.pioenvs/eqiva-bridge/src/esphome/components/eqiva_key_ble/eqiva_key_ble.o] Error 1 |
16 | ========================== [FAILED] Took 4.87 seconds ========================== |
Dirk schrieb: > Artur K. schrieb: >> Fehler beim ota >> > > Probier mal nochmal. > > Bzgl ID einmal nach id: key-ble suchen Klappt trotzdem nicht
Artur K. schrieb: > Dirk schrieb: >> Artur K. schrieb: >>> Fehler beim ota >> >> Probier mal nochmal. >> Bzgl ID einmal nach id: key-ble suchen > > Klappt trotzdem nicht Installieren? Bei mir schon. Mal nen Clean build Files machen?
Dirk schrieb: > Installieren? Bei mir schon. Mal nen Clean build Files machen? Jap clean gemacht, komisch, starte mal esp neu und probiere noch mal
Artur K. schrieb: > Dirk schrieb: >> Installieren? Bei mir schon. Mal nen Clean build Files machen? > > Jap clean gemacht, komisch, starte mal esp neu und probiere noch mal refresh: 0s drin stehen?
1 | In file included from src/esphome/components/eqiva_key_ble/eqiva_key_ble.cpp:2: |
2 | src/esphome/components/eqiva_key_ble/eqiva_key_ble.cpp: In member function 'bool esphome::eqiva_key_ble::EqivaKeyBle::sendMessage(eQ3Message::Message*, bool)': |
3 | src/esphome/components/eqiva_key_ble/eqiva_key_ble.cpp:358:21: error: format '%s' expects a matching 'char*' argument [-Werror=format=] |
4 | ESP_LOGI(TAG, "Waiting for connection... (sendingNonce: %s) (remoteSessionNonce: %s) (remoteSessionNonce: %s) (clientStateEstablished: %s)", sendingNonce ? "true" : "false", clientState.remote_session_nonce.length() > 0 ? "true" : "false", this->state() == espbt::ClientState::ESTABLISHED ? "true" : "false"); |
5 | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
6 | src/esphome/core/log.h:72:36: note: in definition of macro 'ESPHOME_LOG_FORMAT' |
7 | #define ESPHOME_LOG_FORMAT(format) format
|
8 | ^~~~~~
|
9 | src/esphome/core/log.h:151:28: note: in expansion of macro 'esph_log_i' |
10 | #define ESP_LOGI(tag, ...) esph_log_i(tag, __VA_ARGS__)
|
11 | ^~~~~~~~~~
|
12 | src/esphome/components/eqiva_key_ble/eqiva_key_ble.cpp:358:7: note: in expansion of macro 'ESP_LOGI' |
13 | ESP_LOGI(TAG, "Waiting for connection... (sendingNonce: %s) (remoteSessionNonce: %s) (remoteSessionNonce: %s) (clientStateEstablished: %s)", sendingNonce ? "true" : "false", clientState.remote_session_nonce.length() > 0 ? "true" : "false", this->state() == espbt::ClientState::ESTABLISHED ? "true" : "false"); |
14 | ^~~~~~~~
|
15 | Compiling .pioenvs/eqiva-bridge/src/esphome/components/esp32_ble/ble_uuid.o |
16 | cc1plus: some warnings being treated as errors |
17 | Compiling .pioenvs/eqiva-bridge/src/esphome/components/esp32_ble_client/ble_characteristic.o |
18 | *** [.pioenvs/eqiva-bridge/src/esphome/components/eqiva_key_ble/eqiva_key_ble.o] Error 1 |
19 | ========================= [FAILED] Took 21.68 seconds ========================= |
Komisch dass er bei mir nicht meckert. Probier es jetzt mal
Leider nein, sehr komisch wieso er bei mir meckert
Artur K. schrieb: > Leider nein, sehr komisch wieso er bei mir meckert Was meckert er denn jetzt? Clean Build Files gemacht?
Dirk schrieb: > Was meckert er denn jetzt? > Clean Build Files gemacht? Das selbe immer noch, und ja
Artur K. schrieb: > Dirk schrieb: >> Was meckert er denn jetzt? >> Clean Build Files gemacht? > > Das selbe immer noch, und ja Hab's auf %d geändert. Er sollte also nicht mehr den selben Fehler haben .?
In file included from src/esphome/components/eqiva_key_ble/eqiva_key_ble.cpp:2: src/esphome/components/eqiva_key_ble/eqiva_key_ble.cpp: In member function 'bool esphome::eqiva_key_ble::EqivaKeyBle::sendMessage(eQ3Message::Message*, bool)': src/esphome/components/eqiva_key_ble/eqiva_key_ble.cpp:358:21: error: format '%d' expects a matching 'int' argument [-Werror=format=] ESP_LOGI(TAG, "Waiting for connection... (sendingNonce: %d) (remoteSessionNonce: %d) (remoteSessionNonce: %d) (clientStateEstablished: %d)", sendingNonce, clientState.remote_session_nonce.length() > 0, this->state() == espbt::ClientState::ESTABLISHED); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ src/esphome/core/log.h:72:36: note: in definition of macro 'ESPHOME_LOG_FORMAT' #define ESPHOME_LOG_FORMAT(format) format ^~~~~~ src/esphome/core/log.h:151:28: note: in expansion of macro 'esph_log_i' #define ESP_LOGI(tag, ...) esph_log_i(tag, _VA_ARGS_) ^~~~~~~~~~ src/esphome/components/eqiva_key_ble/eqiva_key_ble.cpp:358:7: note: in expansion of macro 'ESP_LOGI' ESP_LOGI(TAG, "Waiting for connection... (sendingNonce: %d) (remoteSessionNonce: %d) (remoteSessionNonce: %d) (clientStateEstablished: %d)", sendingNonce, clientState.remote_session_nonce.length() > 0, this->state() == espbt::ClientState::ESTABLISHED); ^~~~~~~~ Compiling .pioenvs/eqiva-bridge/src/esphome/components/esp32_ble/ble_uuid.o cc1plus: some warnings being treated as errors *** [.pioenvs/eqiva-bridge/src/esphome/components/eqiva_key_ble/eqiva_key_bl e.o] Error 1 ========================= [FAILED] Took 17.12 seconds =========================
Sehr seltsam. Bei mir funktioniert es ohne Probleme ...
Dirk schrieb: > Sehr seltsam. > Bei mir funktioniert es ohne Probleme ... Ich versuche morgen ein neues Projekt anlegen und mit Kabel Flashen
Habe testweise einfach neues Projekt erstattet, Stumpf den Code aus git kopiert. Und kommt auch dieses error
Artur K. schrieb: > Habe testweise einfach neues Projekt erstattet, Stumpf den Code > aus git kopiert. Und kommt auch dieses error Hab den log jetzt raus genommen. Geht's jetzt wieder?
Versuche ist es so zu programmieren, dass es immer disconnected ist und nur bei Bedarf, connected. Bei Start habe ich es so
1 | wifi:
|
2 | ssid: !secret wifi_ssid_salon |
3 | password: !secret wifi_password |
4 | on_connect: |
5 | - eqiva_key_ble.connect: |
6 | mac_address: 00:1a:22:18:3c:76 |
7 | user_id: 1 |
8 | user_key: 601dde3b2904999e289f1b1079c258fe |
9 | - esp32_ble_tracker.start_scan: |
10 | continuous: true |
11 | - delay: 30s |
12 | - eqiva_key_ble.disconnect: |
13 | on_disconnect: |
14 | - esp32_ble_tracker.stop_scan: |
Wollte statt delay wait intil einbauen, aber nicht geschaft, wollte auch Status Unknown prüfen bei lock_status. Nur wenn Schloss nicht verbunden ist, scannt wr immer nach dem Schoss, ist das kein Problem? Oder soll ich da was machen?
Hallo, eine kurze Rückmeldung zur esphome Version: Das ganze läuft jetzt seit einigen Tagen stabil. Ich habe keine Probleme mit Abstürzen oder Verbindungsproblemen. Allerdings rief mich mein Sohn gestern an und kam mit der App nicht ins Haus. Vermutlich hatte esphome gerade eine Verbindung. Was muss ich machen, damit nicht permanent eine Verbindung besteht? Ich vermute, unten ist das .disconnect zu aktivieren.
1 | lock_action:
|
2 | - eqiva_key_ble.connect: |
3 | mac_address: 00:x # Schuppen |
4 | user_id: 1 |
5 | user_key: x |
6 | - eqiva_key_ble.lock: |
7 | #- eqiva_key_ble.disconnect:
|
Aber das alleine kann es ja nicht sein, denn es wurde lange vorher nicht gelockt. Darüber hinaus habe ich
1 | time:
|
2 | - platform: sntp |
3 | timezone: Europe/Berlin |
4 | servers: |
5 | - 0.pool.ntp.org |
6 | - 1.pool.ntp.org |
7 | - 2.pool.ntp.org |
8 | on_time: |
9 | # Every 4 minutes get Status, to ensure quick reaction
|
10 | - cron: '00 /4 21-23 * * *' |
11 | then: |
12 | - eqiva_key_ble.status: |
Ich vermute, dass dies die Verbindung aufrecht hält und ich auch hier ein .disconnect hinzufügen muss. Richtig? Noch eine Frage Jetzt habe ich den Controller in einer Automatisierung genutzt. Funktioniert auch wunderbar. Was mich allerdings gewundert hat: Es werden mehrere Services angeboten, siehe Anhang. Warum gibt es da Lock 1 und Lock 2? Gruß, Hendrik
Bzgl. der Locks war das lediglich ein Beispiel wie man zwei Schlösser ansteuern könnte. An dem time Part müsstest du nichts ändern. Das disconnect darfst du erst nach 15s Verzögerung machen. (siehe ein Post vor dir) dann sollte es klappen. Allerdings musst du beachten, dass dann über den ESP die Ansteuerung ca. 12 Sekunden dauern kann. Alternativ könntest du ja den benötigten Personen auch via HA App einen Zugriff gewähren und könntest so den ESP dauerhaft verbunden lassen. Eine andere Möglichkeit wäre mit dem ESP auch einen BLE Controller zu erstellen und sich damit zu verbinden. Quasi dann als Bridge. So könnte man auch ein Schloss simulieren. Aber das wäre nochmal ordentlich Aufwand.
Hallo, > Bzgl. der Locks war das lediglich ein Beispiel wie man zwei Schlösser ansteuern könnte. Das heißt, das ist hart-kodiert und nicht irgendwie durch meine Yaml erzeugt? Ist aber (noch?) nicht vollständig implementiert? > Das disconnect darfst du erst nach 15s Verzögerung machen. (siehe ein Post vor dir) dann sollte es klappen. > Allerdings musst du beachten, dass dann über den ESP die Ansteuerung ca. 12 Sekunden dauern kann. D.h. wenn ich beide Locks bedienen will, muss ich den Delay wie lange machen? 15s ist natürlich recht unschön. Bei uns ist der Usecase, dass wir einen "Alles-Aus" taster haben. Da will man natürlich nicht 15s warten, ob die Tür zu ging (vielleicht steht sie ja auf). Siehst du eine Möglichkeit, das noch zu verbessern? > An dem time Part müsstest du nichts ändern. Dazu zwei Fragen: 1) ich brauche den Status eigentlich nicht. Kann das dann nicht raus? 2) war es nicht so, dass die Verbindung ca 4 minuten aufgebaut bleibt? Gruß, Hendrik
Hendrik F. schrieb: > Hallo, > >> Bzgl. der Locks war das lediglich ein Beispiel wie man zwei Schlösser > ansteuern könnte. > > Das heißt, das ist hart-kodiert und nicht irgendwie durch meine Yaml > erzeugt? > Ist aber (noch?) nicht vollständig implementiert? > >> Das disconnect darfst du erst nach 15s Verzögerung machen. (siehe ein > Post vor dir) dann sollte es klappen. >> Allerdings musst du beachten, dass dann über den ESP die Ansteuerung ca. > 12 Sekunden dauern kann. > > D.h. wenn ich beide Locks bedienen will, muss ich den Delay wie lange > machen? > 15s ist natürlich recht unschön. Bei uns ist der Usecase, dass wir einen > "Alles-Aus" taster haben. Da will man natürlich nicht 15s warten, ob die > Tür zu ging (vielleicht steht sie ja auf). > > Siehst du eine Möglichkeit, das noch zu verbessern? > >> An dem time Part müsstest du nichts ändern. > Dazu zwei Fragen: > 1) ich brauche den Status eigentlich nicht. Kann das dann nicht raus? > 2) war es nicht so, dass die Verbindung ca 4 minuten aufgebaut bleibt? > > Gruß, > Hendrik 1. Das zweite Lock sollte nur von deiner yaml kommen. Am besten mal auf github die readme anschauen 2. Von "nicht verbunden" bis "verbunden und Befehl abgesendet" dauert es ca. 12 Sekunden. Schneller schafft der ESP das anscheinend nicht. Deshalb der Disconnect nach 15 Sekunden, da sonst der Befehl nicht durchgeht. 3. Status kann raus wenn du ihn nicht brauchst.
Verstehe.
In meiner Logik muss ich aber dann etwas mehr als 15s verwenden, oder?
Ich habe in der Yaml jetzt ein Disconnect nach 15s und in der Logik
einen Abstand zwischen den Beiden Lock Befehlen von 20s.
Das Ganze ist ok für eine Logik. Aber was passiert, wenn meine
Mitbewohnerin ungeduldig ist und die einzelnen Lock-Knöpfe in der App zu
schnell hintereinander drückt?
> Das zweite Lock sollte nur von deiner yaml kommen. Am besten mal auf
github die readme anschauen
Ich meine das "Sperre Lock 2". Das kommt nicht aus der YAML. In der YAML
heißen sie Hintertür und Schuppen.
Gruß,
Hendrik
:
Bearbeitet durch User
Hallo, der Wlan-Empfang ist recht schlecht und ich würde mal einen ESP mit externer Antenne probieren. Hier gibt es mehrere: https://de.aliexpress.com/item/4000090521976.html ESP32-32U CP2102 ESP32-32U CH9102X https://de.aliexpress.com/item/1005005727605631.html ESP-WROOM-32S CH340 Die zweite Bezeichnung ist ja nur der USB-Adapber. Ich denke, das ist nicht besonders relevant. Aber 32U oder 32S? Was ist zu empfehlen? Gruß, Hendrik
Hallo, ich habe jetzt zwei neue ESPs (mit externen Antennen) - einer pro Lock. Jetzt würde ich gerne das Pairing aus dem ESP heraus ausprobieren. Was ist denn der "Pair Card Key"? a) das was unter dem QR Code steht b) der dekodierte QR Code Ich habe jetzt leider im Key-Feld zu viel stehen (es war sehr klein, ich habe da den Key (a) reinkopiert, nachdem (a) drin steht. Außerdem habe ich einen User_id eingegeben, obwohl der vom Lock vergeben werden soll. Wie kann ich diese Werte zurücksetzen? Gruß, Hendrik
Hendrik F. schrieb: > Hallo, > ich habe jetzt zwei neue ESPs (mit externen Antennen) - einer pro Lock. > Jetzt würde ich gerne das Pairing aus dem ESP heraus ausprobieren. > Was ist denn der "Pair Card Key"? > a) das was unter dem QR Code steht > b) der dekodierte QR Code > Ich habe jetzt leider im Key-Feld zu viel stehen (es war sehr klein, ich > habe da den Key (a) reinkopiert, nachdem (a) drin steht. > Außerdem habe ich einen User_id eingegeben, obwohl der vom Lock vergeben > werden soll. Wie kann ich diese Werte zurücksetzen? > Gruß, > Hendrik Card Key ist der QR-Code. Abscannen und einfügen. Danach auf Pair drücken (nachdem das Schloss verbunden ist und sich im pair Modus befindet) Dabei sollte egal sein ob schon was in user_id drin steht.
Das wären geschätzt 50 Stellen, beginnend mit m001?
Hallo, danke für deine Antworten. Das klappt leider nicht:
1 | 15:05:52 [I] [eqiva_ble:015] |
2 | Found Eqiva device (MAC: 00:1A:xx:xx:A6:96) (UUID): 0x1A00 (Name): KEY-BLE |
3 | 15:05:53 [I] [eqiva_ble:015] |
4 | Found Eqiva device (MAC: 00:1A:xx:xx:A6:96) (UUID): 0x1A00 (Name): KEY-BLE |
5 | 15:05:55 [I] [eqiva_ble:015] |
6 | Found Eqiva device (MAC: 00:1A:xx:xx:A6:96) (UUID): 0x1A00 (Name): KEY-BLE |
7 | 15:05:57 [I] [eqiva_ble:015] |
8 | Found Eqiva device (MAC: 00:1A:xx:xx:A6:96) (UUID): 0x1A00 (Name): KEY-BLE |
9 | 15:05:59 [D] [button:010] |
10 | 'BLE Pair _Start_' Pressed. |
11 | 15:05:59 [I] [eqiva_key_ble:272] |
12 | CardKey: 43axxxf04 |
13 | 15:05:59 [I] [eqiva_key_ble:273] |
14 | Please press and hold open button for 5 seconds to enter pairing mode |
15 | 15:05:59 [I] [eqiva_key_ble:274] |
16 | Trying to pair... |
17 | 15:05:59 [I] [eqiva_key_ble:358] |
18 | Waiting for connection... |
19 | 15:05:59 [I] [eqiva_key_ble:360] |
20 | Reason: exchanging nonce |
21 | 15:05:59 [I] [eqiva_key_ble:363] |
22 | Reason: no remote session |
23 | 15:05:59 [I] [eqiva_key_ble:366] |
24 | Reason: lock not connected |
25 | 15:06:00 [I] [eqiva_ble:015] |
26 | Found Eqiva device (MAC: 00:1A:xx:xx:A6:96) (UUID): 0x1A00 (Name): KEY-BLE |
27 | 15:06:02 [I] [eqiva_ble:015] |
28 | Found Eqiva device (MAC: 00:1A:xx:xx:A6:96) (UUID): 0x1A00 (Name): KEY-BLE |
29 | 15:06:03 [I] [eqiva_ble:015] |
30 | Found Eqiva device (MAC: 00:1A:xx:xx:A6:96) (UUID): 0x1A00 (Name): KEY-BLE |
31 | 15:06:04 [I] [eqiva_ble:015] |
32 | Found Eqiva device (MAC: 00:1A:xx:xx:A6:96) (UUID): 0x1A00 (Name): KEY-BLE |
33 | 15:06:07 [I] [eqiva_ble:015] |
34 | Found Eqiva device (MAC: 00:1A:xx:xx:A6:96) (UUID): 0x1A00 (Name): KEY-BLE |
35 | 15:06:12 [I] [eqiva_ble:015] |
36 | Found Eqiva device (MAC: 00:1A:xx:xx:A6:96) (UUID): 0x1A00 (Name): KEY-BLE |
37 | 15:06:15 [I] [eqiva_ble:015] |
38 | Found Eqiva device (MAC: 00:1A |
Anbei auch ein Screenshot der Einstellungen. Siehst du (m)einen Fehler? Gruß, Hendrik
Ja, leuchtet gelb. 5s gedrückt.
Hendrik F. schrieb: > Ja, leuchtet gelb. 5s gedrückt. Probier es mal öfter. Manchmal hat's bei mir auch nicht geklappt. Ansonsten Mal 255 bei User ID eintragen.
Hallo. zunächst einmal vielen Dank für die tolle Arbeit. Darf ich freundlicherweise eine Frage stellen? Um ESP32 mit Ethernet in Ihrem Projekt zu verwenden, reicht es aus, die WLAN-Konfiguration aus der Yaml-Datei zu entfernen und die erforderliche Ethernet-Konfiguration hinzuzufügen? Und wenn wir den WiFi-Bereich entfernen, wo sollten wir die Ereignisse „esp32_ble_tracker.start_scan“ und „esp32_ble_tracker.stop_scan“ hinzufügen?
Ömer B. schrieb: > Hallo. zunächst einmal vielen Dank für die tolle Arbeit. Darf ich > freundlicherweise eine Frage stellen? Um ESP32 mit Ethernet in Ihrem > Projekt zu verwenden, reicht es aus, die WLAN-Konfiguration aus der > Yaml-Datei zu entfernen und die erforderliche Ethernet-Konfiguration > hinzuzufügen? Und wenn wir den WiFi-Bereich entfernen, wo sollten wir > die Ereignisse „esp32_ble_tracker.start_scan“ und > „esp32_ble_tracker.stop_scan“ hinzufügen? Korrekt, kannst dann einfach beim esp32_ble_tracker das continuous: false rausnehmen. Dann startet er automatisch.
Hallo, >> Ja, leuchtet gelb. 5s gedrückt. > > Probier es mal öfter. Manchmal hat's bei mir auch nicht geklappt. > > Ansonsten Mal 255 bei User ID eintragen.
1 | 17:13:08 [D] [number:054] |
2 | 'BLE Settings User ID' - Setting number value |
3 | 17:13:08 [W] [number:109] |
4 | 'BLE Settings User ID' - Value 255.000000 must not be greater than maximum 7.000000 |
Das wird abgelehnt. Ich probiere es einfach noch ein paar mal. (Edit: Hat geklappt. Vielleicht nimmst du diesen "Trick" in die Readme auf). Kann ich sonst in HomeAssistant, oder dem UI von EspHome auf dem Controller die UserID und den UserKey eingeben? Habe ich ja noch aus der keyble instanz. Gruß, Hendrik
:
Bearbeitet durch User
Können wir durch den Einsatz des Ethernet-Moduls dauerhafte Verbindungen für zwei Schlösser gleichzeitig aufrechterhalten?
Ömer B. schrieb: > Können wir durch den Einsatz des Ethernet-Moduls dauerhafte > Verbindungen für zwei Schlösser gleichzeitig aufrechterhalten? Wahrscheinlich kann man das auch noch via Wifi hinkriegen, aber bei mir läuft's super und ich hab aktuell nicht die Zeit da weiter zu machen^^
Es tut mir leid, aber ich versuche stundenlang herauszufinden, wie man zwei Schlösser konfiguriert. Kann jemand eine Beispiel-YAML-Datei für zwei Schlösser teilen?
Such mal in meinen Beiträgen weiter oben. Ansonsten suche ich es morgen für dich raus. Aber im Prinzip hier https://github.com/digaus/esphome-components-eqiva/blob/f4d2a60f7a19bb7046d3d6498e1ab43e8050336a/example.yaml Ab Zeile 142 halt alles noch ein zweites Mal mit den Daten des zweiten Lock. Aber du musst dann der Familie erklären nach der Bedienung des ersten Lock 15s zu warten, bevor das Zweite bedient wird.
:
Bearbeitet durch User
Hallo, das Pairing hatte ja eigentlich funktioniert, aber das Schloss reagiert nicht (mehr? ich kann mich nicht erinnern, ob ich es probiert hatte). Im UI sehe ich, dass kein Key mehr eingetragen ist. Im Log sehe ich: 17:55:35 [E] [eqiva_key_ble:239] User Error: (Key: , ID: 6) Siehe auch Bild im Anhang. Woran kann das liegen? Gruß, Hendrik
Hallo, hast du eine Idee für mich? Ansonsten habe ich ja User-ID und Key aus einer manuellen Kopplung. Gibt es eine Möglichkeit sie in der YAML einzubinden, ohne sie immer wieder zu wiederholen? Gruß, Hendrik
Kann mir jemand den Code für das Hinzufügen von zwei Schlössern nennen? Soweit ich das nach example.yaml verstehe, muss ich die folgenden Zeilen für die zweite Schlössern hinzufügen? Wie wird das zweite Schloss gesteuert? Es gibt keine MAC-Adresse oder etwas anderes, das die Verbindung zwischen dem Code und dem Schloss herstellen kann.
1 | lock:
|
2 | - platform: template |
3 | name: "Lock 1" |
4 | lambda: |- |
5 | if (id(lock_status).state == "LOCKED") { |
6 | return LOCK_STATE_LOCKED; |
7 | } else if (id(lock_status).state == "UNLOCKED" || id(lock_status).state == "OPENED") { |
8 | return LOCK_STATE_UNLOCKED; |
9 | } else if(id(lock_status).state == "MOVING") { |
10 | return {}; |
11 | } else if (id(lock_status).state == "UNKNOWN") { |
12 | return LOCK_STATE_JAMMED; |
13 | }
|
14 | return LOCK_STATE_LOCKED; |
15 | lock_action: |
16 | - eqiva_key_ble.lock: |
17 | unlock_action: |
18 | - eqiva_key_ble.unlock: |
19 | open_action: |
20 | - eqiva_key_ble.open: |
21 | - platform: template |
22 | name: "Lock 2" |
23 | lambda: |- |
24 | if (id(lock_status).state == "LOCKED") { |
25 | return LOCK_STATE_LOCKED; |
26 | } else if (id(lock_status).state == "UNLOCKED" || id(lock_status).state == "OPENED") { |
27 | return LOCK_STATE_UNLOCKED; |
28 | } else if(id(lock_status).state == "MOVING") { |
29 | return {}; |
30 | } else if (id(lock_status).state == "UNKNOWN") { |
31 | return LOCK_STATE_JAMMED; |
32 | }
|
33 | return LOCK_STATE_LOCKED; |
34 | lock_action: |
35 | - eqiva_key_ble.lock: |
36 | unlock_action: |
37 | - eqiva_key_ble.unlock: |
38 | open_action: |
39 | - eqiva_key_ble.open: |
Hab ich ein Stück weiter oben verlinkt.
Hallo, ich habe jetzt zwei Controller für meine zwei Locks. Ich verwende die Yaml von Github weitgehend unverändert - ich verwende lediglich einen eigenen Sensor um den Status des Locks zu ermitteln Bei dem einen Lock funktioniert das wunderbar. Beim zweiten Lock funktioniert der Status, aber das Kommandieren nicht. Könntest du einmal auf die Logs schauen? https://pastebin.com/GcNLgjbx Gruß, Hendrik
Hallo, ich habe nun rausgefunden, dass das eine Schloss dann wieder reagiert, wenn ich einmal "open" statt lock oder unlock mache. Ich habe ja die Besonderheit, dass ich für den Status einen externen Sensor in der Schloss-Falle nutze. Kann das damit zusammenhängen? Ich meine: Gibt es eine Überprüfung, dass kein "Unlock" gesendet wird, wenn der interne Status schon "Unlocked" ist? Anbei ein Vergleich der beiden Schlösser im Log Gruß, Hendrik
@digaus Hi, ich hätte eine Frage. In Eqiva App kann man machen dass das Schloss automatisch schlisst. Kann man diese Zeiten in Esphome auslesen, bzw einstellen?
Bestimmt, gibt auch noch ein Protokoll. Allerdings habe ich das nicht ausprobiert/implementiert da ich lieber eine besser Lösung mit einem Shelly Türkontakt und Automation löse.
Dirk schrieb: > Bestimmt, > > gibt auch noch ein Protokoll. Allerdings habe ich das nicht > ausprobiert/implementiert da ich lieber eine besser Lösung mit einem > Shelly Türkontakt und Automation löse. Könnte ich auch, nur mein Gedanke war, dass wenn es lokal in dem Schloss passiert ist besser, weil wenn HA zB aus irgendeinen Grund nicht läuft, Schloss wird trotzdem schliessen.
Kannst ja auch direkt via ESP ne Automation machen ohne HA
Dirk schrieb: > Kannst ja auch direkt via ESP ne Automation machen ohne HA Ja das auch, wäre es viel Aufwand für dich es zu implementieren?
Hallo zusammen, ich habe gerade versucht https://github.com/tc-maxx/esp32-keyble zum laufen zu bringen. Leider gibt es Probleme beim aufbauen der BLE Verbindung. Der ESP32 Startet wegen einer Exception neu. Hat zufällig jemand Erfahrung damit? Serielle Ausgabe:
1 | # WiFi disabled |
2 | *** get state *** |
3 | # Nonce exchange |
4 | # Searching ... |
5 | # Found device: 00:1a:22:0a:6c:9b |
6 | # RSSI: -61 |
7 | # Connecting in tick |
8 | # Connecting... |
9 | # Connected in tick |
10 | Guru Meditation Error: Core 0 panic'ed (Unhandled debug exception). |
11 | Debug exception reason: Stack canary watchpoint triggered (BTU_TASK) |
12 | Core 0 register dump: |
13 | PC : 0x40097a47 PS : 0x00060836 A0 : 0x8009748b A1 : 0x3ffe46e0 |
14 | A2 : 0x3ffbf348 A3 : 0xb33fffff A4 : 0x0000abab A5 : 0x0000cdcd |
15 | A6 : 0x00060823 A7 : 0x00060823 A8 : 0xb33fffff A9 : 0xffffffff |
16 | A10 : 0x3ffd6ecc A11 : 0x3ffd1c78 A12 : 0x00000001 A13 : 0x00000000 |
17 | A14 : 0x003fffff A15 : 0x3ffe482c SAR : 0x0000001a EXCCAUSE: 0x00000001 |
18 | EXCVADDR: 0x00000000 LBEG : 0x40091458 LEND : 0x4009146e LCOUNT : 0x00000000 |
19 | |
20 | |
21 | Backtrace: 0x40097a44:0x3ffe46e0 0x40097488:0x3ffe4720 0x40095d57:0x3ffe4740 0x4014a2d1:0x3ffe4780 0x40149afe:0x3ffe47a0 0x4013e21d:0x3ffe47c0 0x4013d12b:0x3ffe47e0 0x40162635:0x3ffe4810 0x40162783:0x3ffe4830 0x401628c6:0x3ffe4850 0x401350a5:0x3ffe4890 0x401344da:0x3ffe4b20 0x4014e566:0x3ffe4b40 0x4014e6ac:0x3ffe4b80 0x4014eaba:0x3ffe4ba0 0x4014eb42:0x3ffe4e30 0x4014ecca:0x3ffe4e50 0x40139e41:0x3ffe4e70 0x401350e2:0x3ffe5110 0x40135595:0x3ffe53a0 0x40135f4d:0x3ffe5400 0x401372b0:0x3ffe5440 0x401372e6:0x3ffe5460 0x4014217d:0x3ffe5480 0x40133108:0x3ffe5610 0x4014a3d4:0x3ffe5630 |
22 | |
23 | ELF file SHA256: 0000000000000000 |
24 | |
25 | Rebooting... |
Hendrik F. schrieb: > Hallo, > > ich habe nun rausgefunden, dass das eine Schloss dann wieder reagiert, > wenn ich einmal "open" statt lock oder unlock mache. > > > Gruß, > Hendrik Hendrik, das hat bei mir auch so angefangen und war dann ein hardwaredefekt. siehe Beitrag "Re: Software zum Steuern des Türschlossantrieb "eqiva eQ-3 Bluetooth Smart Lock"" nicht dass du wegen dem gleichen problem gleich lange wie ich herummurkst ...
Danke für deine Antwort. Das kann gut sein, das würde auch erklären warum mein Schloss seit einiger Zeit nur noch aufsperrt (egal welche Taste man drückt) Es fängt auf jeden Fall an zu spinnen. Wenn man die Batterien wechselt funktioniert es wieder einige Zeit. Ich habe noch zwei Schlösser ohne Key von eBay hier herumliegen, dann muss ich wohl an die Taster anlöten und extern steuern... Ich nehme an den Key kann man nicht auslesen?
Moin zusammen, wollte heute was in dem Code ändern, hatte aber auch esphome aktualisiert, und seit dem Verbindet es nicht mehr. Kann nicht herausfinden woran es liegt, Code habe ich jetzt zurück geändert, trotzdem funktioniert nicht, weiß aber nicht mehr welche Version von Esphome es vorher war.
Artur K. schrieb: > Moin zusammen, > wollte heute was in dem Code ändern, hatte aber auch esphome > aktualisiert, und seit dem Verbindet es nicht mehr. Kann nicht > herausfinden woran es liegt, Code habe ich jetzt zurück geändert, > trotzdem funktioniert nicht, weiß aber nicht mehr welche Version von > Esphome es vorher war. Aktuell kann man diesen workaround nutzen: https://github.com/digaus/esphome-components-eqiva/issues/11#issuecomment-1965232328 Muss noch Anpassungen machen für die neue esphome Version sobald ich Zeit finde.
Beitrag #7641505 wurde vom Autor gelöscht.
Beitrag #7641521 wurde vom Autor gelöscht.
Beitrag #7641524 wurde vom Autor gelöscht.
Artur K. schrieb im Beitrag #7641524: > Wäre es möglich Status locking unlocking hinzufugen? hat das > jemand gemacht? Denke ist möglich indem du den aktuellen Status des Locks vergleichst und sofern der Status von Eqiva BLE Lock "MOVING" ist und der aktuelle Status z.b. "LOCKED" dann würde er ja gerade aufschließen. Kann sein, dass diese stati in Homekit nicht funktionieren weshalb ich sie nicht als Beispiel abgebildet hatte. Oder dir gab's noch nicht immer^^
Hallo, ich bin Anfänger in Sachen Home Assistant, bin aber trotzdem technikaffin. Ich habe mir den ganzen Thread durchgelesen und bin mir trotzdem in einigen Sachen noch sehr unsicher. Könnte sich jemand eventuell bei mir melden per PM und mir ein paar Dinge kurz erklären, am besten die Anbindung des hier besprochenen eqiva Türschlossantriebes und die Anbindung an Home Assistant. Das würde mich sehr freuen. Vielen Dank im Voraus Christian
Hallo, meine Tochter war gestern leider ausgesperrt: Ich hab ja zwei ESPs (ESP-Home Version) mit zwei Schlössern. Beide waren in HomeAssistant "nicht verfügbar". Aber auch mit der Eqiva App ging es nicht - es scheint also, als wäre der esp noch mit dem Lock verbunden gewesen. Ich habe später die ESPs kurz vom Strom getrennt und wieder verbunden; Dann ging es wieder. Mögliche Fehlerquellen sind: -WLAN -"Schluckauf des ESP" Kann man es irgendwie erreichen, dass der ESP sich vom Lock trennt, wenn kein Kontakt zum HomeAssistant besteht, damit es dann wenigstens mit der App geht? Gruß, Hendrik
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.