NEWS
MQTT Bluetooth BLE Anwesenheitserkennung mit ESP32
-
@utze86
Ans Setup habe ich auch gedacht. Hast du im Gerätenamen oder in deinen Wifi Daten Sonderzeichen?
Ansonsten spricht einiges für die Spannungsversorgung, hatte auch mal was über zu lange Flash-Kabel gelesen. -
@giuseppes
So ich setze mich jetzt nochmal dran. Hast du eigentlich unterm Schnitt bessere Ergebnisse mit deiner FW gegenüber der Messung mit Tasmota erzielt?Ja ich habe tatsächlich ein Sonderzeichen im Netzwerknamen.
-
@giuseppes
da ich ebenfalls mit Python3 arbeite habe ich es jetzt exakt mit deinen eingaben in python3 versucht... Copy... Paste. Leider besteht das Problem weiterhin, das log gibt folgendes aus:[20:58:10]
[20:58:10]devMode or deviceName is empty, starting CaptivaPortal
[20:58:10]Setting up AP Mode
[20:58:10]
[20:58:10]Brownout detector was triggered
[20:58:10]
[20:58:10]ets Jul 29 2019 12:21:46
[20:58:10]
[20:58:10]rst:0xc (SW_CPU_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT)
[20:58:10]configsip: 188777542, SPIWP:0xee
[20:58:10]clk_drv:0x00,q_drv:0x00,d_drv:0x00,cs0_drv:0x00,hd_drv:0x00,wp_drv:0x00
[20:58:10]mode:DIO, clock div:2
[20:58:10]load:0x3fff0030,len:184
[20:58:10]load:0x40078000,len:12592
[20:58:10]load:0x40080400,len:2724
[20:58:10]entry 0x40080594
[20:58:11]Zur Info: Ich flashe den Shelly an meinem Rechner und stöpsel ihn aus. Danach hänge ich den Shelly per Kabel an die Steckdose, wenn dann der AP aufgespannt wird tätige ich die Eingaben. Ich betreibe den Shelly also nicht am USB Port falls das eine Rolle spielt oder den Fehler eingrenzt. Der Shelly dürfte somit im Betrieb eigentlich keine Probleme mit der Spannungsversorgung haben.
Wie dem auch sein. Bei dir läuft es ja, also muss das Problem irgendwo bei mir liegen. Ich frage mich jetzt halt ob ich noch weiter rumprobieren soll oder ob ich meine Tests mit Tasmota fortführe. Ggf. könne ich mich noch um einen anderen Rechner zum Flashen bemühen und das ganze nochmal mit einem anderen Shelly testen, dazu müsste ich mir dann aber erstmal was organisieren und einrichten.
Merkst du denn einen Unterschied zwischen deiner FW und Tasmota? Werden die RSSI gleich schnell gelesen? Wird das Signal in etwa gleich stark wahrgenommen? Hattest du das mal verglichen?
-
@utze86
Hatte es nach deinem Hinweis mit Tasmota und meiner Uhr getestet. Tasmota hatte auf gutem Niveau etwas schlechtere Ergebnisse. Auf gutem Niveau bedeutet hier, dass z.B. Espresense mit dem 5s Takt sogar langsamer war. Tasmota hatte manchmal "Aussetzer" von 7-9 Sekunden. Bei meiner fw gibt es auch mal Lücken von max 4 Sekunden. Dafür gibt es aber auch gute Scan Ergebnisse, wo 5 oder mehr Treffer sekündlich eingehen. Funktional wird es aber später kaum einen Unterschied machen.
Aber hey, an deiner Stelle würde ich keine Energie mehr reinstecken. Ich danke dir schon für deine Unterstützung. Sonderzeichen könnt tatsächlich schon der goldene Hinweis sein. Evtl hat eine Bibliothek Probleme damit.Ich stelle meine FW nur deshalb fertig, weil ich den Tasmota-Shelly mit Scan-Funktion ungern mit dem Sonoff Adapter nutzen möchte. Mir gefällt nicht, dass alle Treffer in einem State eingehen. Und tasmota direkt über den mqtt Adapter zu steuern ist unbequem.
-
@utze86
Würde gerne den Fall probieren nachzustellen. Was für ein Sonderzeichen ist in deiner ssid? Wer weiß, evtl gibt's Probleme nur mit bestimmten Sonderzeichen. Wenn es daran liegt... -
@giuseppes
Ich hab ebenfalls zu danken, sonst wäre ich auch nicht soweit gekommen. Ich werde mal sehen, um den Einsatz von zusätzlichen Bewegungsmeldern komme ich wohl nicht rum. In beiden Fällen. Aber wenn sich die Möglichkeit bietet werde ich es mit deiner FW noch testen. Daher halte mich gerne auf dem laufenden.Hab dort ein "!"
-
Hallo, irgendwie stehe ich gerade vor einem Problem. Ich habe einen Shelly 1 Plus erfolgreich geflasht nach der Anweisung. Er taucht auch im Netzwerk auf, aber ich kann nicht mehr darauf zugreifen.
Wenn ich ihn normal mit der Tasmotasolo1.bin flashe funktioniert alles. Habe ich einen Denkfehler? -
@wuschl
Was genau hast Du nach Anweisung geflashed, die FW von mir?
Wenn ja: Was meinst Du mit "ich kann nicht mehr darauf zugreifen? Meine FW hat eine Weboberfläche für OTA Update. Das Steuern erfolgt komplett über MQTT. -
@giuseppes okay, dann habe ich das falsch aufgefasst, doch ein Denkfehler meinerseits, dachte die Tasmota Oberfläche bleibt erhalten. Gibt es eine Möglichkeit von deiner Firmware per OTA wieder zurück auf Tasmota?
-
@wuschl
Einfach Tasmota über deren Web-Tool flashen. Erase sollte ausgeführt werden. -
@giuseppes okay, da muss ich aber wieder die Kabel hinstecken, oder?
-
@Wuschl jupp
-
@giuseppes
Hallo guiseppes, ich habe das mit den Rules noch nicht ganz verstanden. Ich habe einen G-tag zum testen, der funktioniert einwandfrei. Ich benutze sie um mit dem Auto das Hoftor und die Garage zu öffnen. Jetzt habe ich einen 2. im anderen Auto, der wird angezeigt, macht auch das was er machen soll, aber er löst mehrmals am Tag die Öffnung aus obwohl er nicht bewegt wird. Ich habe deine Rules übernommen, muss ich da etwas ändern bei 2 G-Tags?Rule1 ON System#Boot DO iBeacon 1 endon Rule2 ON System#Boot DO BLEAlias 7C2F80C3A094=SeatLeon 7C2F80C4633E=AudiA4 endon Rule3 ON System#Boot DO Backlog iBeaconPeriod 10; iBeaconOnlyAliased 1; BLEMaxAge 20 endon Rule1 1 Rule2 1 Rule3 1
Schöne Grüße
-
@wuschl
Hi wuschl, die Frage lautet hier: kommen die Werte der g-Tags im ioBroker an? Wie stark schwanken die rssi Werte? Evtl hast du deine Grenzen so eng gesetzt, dass die Streuung dafür sorgt, dass das g-Tag mal nah und mal fern erkannt wird. Ich weiß nicht, ob Tasmota irgendwie filtert. Wenn nicht, müsstest du das in ioBroker machen.
Schritt 1: beobachte die eingehenden Werte und deren Streuung. -
@giuseppes Die Werte kommen an, beide Tags öffnen genau wie sie sollen. Grenzen habe ich noch keine gesetzt, sobald sie erkannt werden, sollen sie öffnen. Was mir aufgefallen ist, daß der 2. G-Tag um einiges länger braucht, bis er erkannt wird.
Die Schwankungen gehen von -54 bis -74, habe ich schon Stundenlang beobachtet.
-
@wuschl
Evtl liegt es an der Option BLEMaxAge 20 von der dritten Regel? Ich weiß nicht, wie du Anwesend steuerst. BLEMaxAge steuert seitens Tasmota, nach welcher Zeit ein BLE als Abwesend angezeigt wird (keine Ahnung, wie das über mqtt mitgeteilt wird). Evtl senden deine Tags zu selten oder Tasmota findet die nicht immer. Du hast als Scan Intervall 10s drin. Bedeutet, wenn Tasmota einmalig den Tag nicht findet, könnte es beim nächsten Scan schon zu spät sein.P.S.: du hattest auch schon meine Firmware geflashed. Hatte diese bei dir eigentlich funktioniert oder hattest du auch ein Bootloop o.ä. wie Utze86?
-
@giuseppes okay, das könnte sein. Sollte ich die BLEMaxAge ganz entfernen, oder auf 50 setzen? edit: (geht nur Max 22)
Das wird etwas schwieriger zu überwachen, da der Age über mqtt nicht mit gesendet wird.Über mqtt bekomme ich ein ganz klares "ON" oder "OFF", das reicht mir vorerst. Aber der G-Tag muss irgendwann das "ON" verlieren, da ich das als Auslöser benutze. Komisch ist halt, daß es nur der eine macht, darum die Frage ob ich an den Rules etwas ändern muss wenn ich einen 2. G-Tag benutze. Ich werde mir noch einen bestellen, vielleicht ist der G-Tag ja fehlerhaft.
Klar ist mein Ziel das ganze langsam zu erweitern, z.B. wenn ich aus der Garage fahre, dann wird das Hoftor auch beim ausfahren automatisch geöffnet. Ob ich das mit den Rssi Werten hin bekomme werden wir sehen. Bei Schwankungen zwischen -54 und -74 sollte es funktionieren.Ich habe deine Fimware geflasht, konnte in die Maske alles eingeben, Bootloop ist mir nichts aufgefallen. Aber mir war das dann irgendwie zu kompliziert, wusste nicht mehr wie weiter, bin nur ein Laie.
Dann bin ich zurück zu Tasmota. -
@wuschl
Ich würde zunächst prüfen, wie oft die g-Tags überhaupt senden. Wenn du ein Android Handy hast, kann ich die folgenden Apps empfehlen[https://play.google.com/store/apps/details?id=no.nordicsemi.android.mcp](nRF Connect)
oder
[https://play.google.com/store/apps/details?id=net.alea.beaconsimulator](Beacon Simulator)
Evtl kannst du den Scan Intervall verkürzen. Je nach dem wie häufig die g-Tags senden, würde es Sinn machen.
Danke für das Feedback zu meiner Firmware. Damit es weniger Verwirrung in der Anleitung gibt, werde ich das Thema PlatformIO in ein Unterkapitel verschieben. Beim Rest wüsste ich nicht, wie ich das einfacher gestalten soll.
-
@giuseppes danke. die G-tags senden 250.00ms - 398.75ms interval. also an dem sollte es nicht liegen.
Ich werde mich mit deinem Projekt nochmal befassen, muss mir sowieso noch einen 2. Shelly zu legen. Ich bin schon an den mqtt.client Einstellungen gescheitert. Diese Einstellungen die du da beschreibst finde ich bei mir nicht. PlatformIO fand ich jetzt gar nicht so schwierig. Ich bekam die mqtt Verbindung gar nicht erst zum laufen. Aber wie gesagt, ich bin Laie und lerne nur vom lesen und Videos.
Ich lerne mich gerade in Homeassistant ein, vielleicht funktioniert es da ein bischen anders, einfacher... -
@wuschl
Das passt schon. Wenn Tasmota für dich alles bereitstellt was du benötigst, dann bleib ruhig dabei.Wie oben erwähnt, du solltest den scan Intervall von Tasmota verringern. Das ist in der dritten Regel der Parameter iBeaconPeriod. Diesen kannst du auch auf 5 oder 2 einstellen. Wenn mal ein Scan scheitert, geht's nicht so schnell in den Timeout, da noch mehrfach gescannt wird. Die g-Tags scheinen ja oft genug zu senden.
Zu meiner Firmware:
Hast du mosquitto auf deinem System am laufen? Wenn in ioBroker der mqtt.client verwendet wird, muss separat auf dem Linux System ein mqtt Server laufen. Bei mir (und bei vielen anderen) ist es mosquitto.
Das ist schon ein guter Hinweis. Werde in der Readme genauer drauf eingehen. Ich fragte hauptsächlich wegen dem Flashprozess. Es ist weiterhin unklar, wieso utze86 Probleme nach der Erstkonfiguration hatte.