Anwesenheitserkennung Bluetooth PebbleBee

Begonnen von tomster, 06 November 2014, 10:01:16

Vorheriges Thema - Nächstes Thema

mark79

Zitat von: reibuehl am 22 April 2018, 10:21:16
@mark79 : Wo kann man den den von Dir angepassten Code finden und was muss an der Arduino IDE bzw den Libraries geändert werden um das von Dir beschriebene stabile Verhalten zu bekommen?

Ich würde das gerne mal auf meinem ESP32 WROOM NodeMCU ausprobieren.
Das habe ich alles auf Seite 72 verlinkt, also einfach mal alles von oben nach unten durchlesen und ggfs. den Links folgen. ;-)
Aber hier: https://forum.fhem.de/index.php/topic,28753.msg793801.html#msg793801
Rock64 4GB mit Debian Strech, FHEM im LXC, Sonoff Switches/Touch, HM Thermostate, HMUART/Zigbee2MQTT@MapleCUN, ESP RGBWW Wifi Controller, ESP8266 Door Sensor/Briefkastenwächter, BT CSL Stick, BT iTags, Alexa, FireTV, RPi2 mit Kodi, Xiaomi Vacuum v1/Smarthome Komponenten

reibuehl

Das habe ich gelesen, sogar mehrmals, ich werde aber nicht schlau draus.

Ich habe mir den Source aus micky0867's github geholt und dann versucht mit der von Dir auf Dropbox bereitgestellten BLE Library zu kompilieren.

Bekomme aber sowohl mit Deiner Version der Library als auch mit dem Original von Nick Kolban die gleichen Fehler:

Arduino: 1.8.5 (Windows 10), Board: "Node32s, 80MHz, 921600"

C:\Users\reibuehl\Documents\Arduino\libraries\ESP32_BLE\src\BLEClient.cpp: In member function 'bool BLEClient::connect(BLEAddress)':

C:\Users\reibuehl\Documents\Arduino\libraries\ESP32_BLE\src\BLEClient.cpp:115:2: error: too many arguments to function 'esp_err_t esp_ble_gattc_open(esp_gatt_if_t, uint8_t*, bool)'

  );

  ^

In file included from C:\Users\reibuehl\Documents\Arduino\libraries\ESP32_BLE\src\BLEClient.cpp:13:0:

C:\Users\reibuehl\Documents\Arduino\hardware\espressif\esp32/tools/sdk/include/bluedroid/esp_gattc_api.h:293:11: note: declared here

esp_err_t esp_ble_gattc_open(esp_gatt_if_t gattc_if, esp_bd_addr_t remote_bda, bool is_direct);

           ^

Multiple libraries were found for "WiFi.h"
Used: C:\Users\reibuehl\Documents\Arduino\hardware\espressif\esp32\libraries\WiFi
Not used: C:\Program Files (x86)\Arduino\libraries\WiFi
Multiple libraries were found for "BLEDevice.h"
Used: C:\Users\reibuehl\Documents\Arduino\libraries\ESP32_BLE
Not used: C:\Users\reibuehl\Documents\Arduino\hardware\espressif\esp32\libraries\BLE
Not used: C:\Users\reibuehl\Documents\Arduino\hardware\espressif\esp32\libraries\BLE
Not used: C:\Users\reibuehl\Documents\Arduino\hardware\espressif\esp32\libraries\BLE
Not used: C:\Users\reibuehl\Documents\Arduino\hardware\espressif\esp32\libraries\BLE
exit status 1
Error compiling for board Node32s.

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.
 
Reiner.

mark79

Installier die Arduino IDE mal neu, nach dieser Anleitung hier: https://github.com/espressif/arduino-esp32/blob/master/docs/arduino-ide/windows.md
Ansonsten kann ich morgen mal meine Arduino IDE Online stellen.
Rock64 4GB mit Debian Strech, FHEM im LXC, Sonoff Switches/Touch, HM Thermostate, HMUART/Zigbee2MQTT@MapleCUN, ESP RGBWW Wifi Controller, ESP8266 Door Sensor/Briefkastenwächter, BT CSL Stick, BT iTags, Alexa, FireTV, RPi2 mit Kodi, Xiaomi Vacuum v1/Smarthome Komponenten

reibuehl

Ich hab die Arduino IDE nach dem angegebenen Link neu installiert, dann Deine BLE Library installiert und die Partitionen in /expressif/esp32/tools/partitions/default.csv wie unter https://github.com/nkolban/esp32-snippets/issues/441#issuecomment-375795379 abgeändert:

# Name,   Type, SubType, Offset,  Size, Flags
nvs,      data, nvs,     0x9000,  0x5000,
otadata,  data, ota,     0xe000,  0x2000,
app0,     app,  ota_0,   0x10000, 0x190000,
app1,     app,  ota_1,   0x1A0000,0x190000,
eeprom,   data, 0x99,    0x330000,0x1000,
spiffs,   data, spiffs,  0x331000,0x0CF000,


Ich bekomme aber trotzdem eine Fehlermeldung, dass der Sketch zu groß sei:

Arduino: 1.8.5 (Windows 10), Board: "NodeMCU-32S, 80MHz, 921600"

Build options changed, rebuilding all
Archiving built core (caching) in: C:\Users\reibuehl\AppData\Local\Temp\arduino_cache_308594\core\core_espressif_esp32_nodemcu-32s_FlashFreq_80,UploadSpeed_921600_ac76579aebd9c1bc06d622c8f785bf8a.a

Sketch uses 1573742 bytes (120%) of program storage space. Maximum is 1310720 bytes.
Global variables use 70380 bytes (23%) of dynamic memory, leaving 224532 bytes for local variables. Maximum is 294912 bytes.
Sketch too big; see http://www.arduino.cc/en/Guide/Troubleshooting#size for tips on reducing it.
Error compiling for board NodeMCU-32S.

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.


Hast Du andere Partitionsgrößen verwendet?
Reiner.

mark79

#1084
Du musst zusätzlich das hier ändern:

I then tried also altering
esp32.upload.maximum_size=1638400
in /expressif/esp32/boards.txt


Aber auch drauf achten, das Du das richtige Board anpasst. Es gibt verschiedene ESP32 Boards... Damit ist das Board gemeint, welches man in der Arduino IDE unter Werkzeuge ausgewählt hat.
In meinem Fall habe ich das "ESP32 Dev Module" Board genommen und angepasst:

esp32.name=ESP32 Dev Module

esp32.upload.tool=esptool
esp32.upload.maximum_size=1638400
esp32.upload.maximum_data_size=294912
esp32.upload.wait_for_upload_port=true


Dann sollte das bei dir funktionieren... :)
Rock64 4GB mit Debian Strech, FHEM im LXC, Sonoff Switches/Touch, HM Thermostate, HMUART/Zigbee2MQTT@MapleCUN, ESP RGBWW Wifi Controller, ESP8266 Door Sensor/Briefkastenwächter, BT CSL Stick, BT iTags, Alexa, FireTV, RPi2 mit Kodi, Xiaomi Vacuum v1/Smarthome Komponenten

reibuehl

Danke @mark79, mit der Anpassung in der boards.txt hat es geklappt. Ich sehe jetzt im Serial Monitor, dass sich der ESP32 ins WLAN einbucht und scannt. Allerdings zeigt er zumindest im Serial Monitor keine gefundenen Geräte an, obwohl ein Samsung S4mini, ein S5mini und ein S8 mit angeschaltetem Bluetooth im selben Raum sind.

Muss ich da zuerst über FHEM / PRESENCED angeben, nach welchen MACs gesucht werden soll oder sollte ich da im Serial Monitor trotzdem schon was sehen?
Reiner.

mark79

#1086
Gerne. :) Du solltest auf der Console die BLE Geräte sehen.
Warum bei dir nichts angezeigt wird, liegt wohl daran, das du keine BLE Geräte hast.

Mit dem Handy wird das denke ich nicht so einfach funktionieren, weil die wohl nur Bluetooth raus senden und kein Bluetooth Low Enegery.
Aber ich glaube dafür gibt es APPs fürs Handy, wo man ein BLE TAG oder ein Beacon oder wie das heißt simulieren kann. Suche mal im Playstore nach: ble beacon
Ansonsten hole dir einfach ein Bluetooth TAG oder ein Xiaomi Mi Band, letzeres trägt man immer bei sich.

Dann kann man es so in Fhem einbinden:
define Mark PRESENCE lan-bluetooth die_ble_mac_adresse_vom_gerät 127.0.0.1:5222 5 60
Rock64 4GB mit Debian Strech, FHEM im LXC, Sonoff Switches/Touch, HM Thermostate, HMUART/Zigbee2MQTT@MapleCUN, ESP RGBWW Wifi Controller, ESP8266 Door Sensor/Briefkastenwächter, BT CSL Stick, BT iTags, Alexa, FireTV, RPi2 mit Kodi, Xiaomi Vacuum v1/Smarthome Komponenten

micky0867

Update:

Ich habe den BLEScanner mit den "normalen" Libraries (https://github.com/espressif/arduino-esp32) kompiliert, ohne den BLE-Teil zu patchen.
Das läuft jetzt seit über 2 Wochen stabil ohne Verbindungsabbrüche.

Es braucht allerdings auch mit der aktuellen Library noch den Tipp von mark79 (https://github.com/nkolban/esp32-snippets/issues/441#issuecomment-375795379).

Micky

DerBodo

Micky, welche ESP32 Boards verwendest du ?
Finde die Möglichkeit als alternative zum Pizero W recht interessant, da diese bei mir derzeit auch "nur" für presence genutzt werden.

micky0867

Zitat von: DerBodo am 26 Mai 2018, 14:57:02
Micky, welche ESP32 Boards verwendest du ?
Finde die Möglichkeit als alternative zum Pizero W recht interessant, da diese bei mir derzeit auch "nur" für presence genutzt werden.
Das Board habe ich von hier
https://m.ebay.de/itm/ESP32-ESP32S-CP2102-Entwicklung-2-4GHz-Dual-Mode-WiFi-Bluetooth-Module/272589218228?_mwBanner=1&_rdt=1


Gesendet von meinem ONEPLUS A3003 mit Tapatalk


RaspiLED

Hi,
wenn eh aus CN geht auch das hier:
http://s.aliexpress.com/B73AbqeE
Gruß Arnd


Gesendet von iPhone mit Tapatalk
Raspberry Pi mit FHEM, CUL, Signalduino, MySensors, HomeBridge, Presence, WifiLight2, Bravia, ...

mark79

Zitat von: micky0867 am 26 Mai 2018, 07:59:37
Update:

Ich habe den BLEScanner mit den "normalen" Libraries (https://github.com/espressif/arduino-esp32) kompiliert, ohne den BLE-Teil zu patchen.
Das läuft jetzt seit über 2 Wochen stabil ohne Verbindungsabbrüche.

Es braucht allerdings auch mit der aktuellen Library noch den Tipp von mark79 (https://github.com/nkolban/esp32-snippets/issues/441#issuecomment-375795379).

Micky

Hallo Micky,

ich habe das vorgestern auch noch mal neu aufgesetzt, sprich die IDE neu installiert, mit dem aktuellen esp32 GIT...
Beim letzten mal lief der BLE Scanner nur immer eine Woche lang und ist dann abgesemmelt.

Nun habe ich den ESP32 an meinem alten RPi angeschlossen und logge via serielle Console mit.


Hast du zufällig noch eine neuere collectord? Bei mir ist das Ding in der letzter Zeit des öfteren eingefroren.
Im Log, als letzten Eintrag stand nur das hier:
2018-05-28 21:39:39 - created thread 12 for processing device ff:ff:40:01:xx:xx in room Schlafzimmer for peer 127.0.0.1 (UUID: 2ba10e3ae33e7ba7d50b6d1c04exxxxx)

collectord Version:
$Id: collectord 11212 2016-04-09 16:17:29Z markusbloch


Viele Grüße
Mark
Rock64 4GB mit Debian Strech, FHEM im LXC, Sonoff Switches/Touch, HM Thermostate, HMUART/Zigbee2MQTT@MapleCUN, ESP RGBWW Wifi Controller, ESP8266 Door Sensor/Briefkastenwächter, BT CSL Stick, BT iTags, Alexa, FireTV, RPi2 mit Kodi, Xiaomi Vacuum v1/Smarthome Komponenten

micky0867

Hi Mark,

der collectord ist bei mir identisch.
Auf welchem System läuft der denn bei dir?

Micky

Gesendet von meinem ONEPLUS A3003 mit Tapatalk


mark79

Moin Micky,

seit ein paar Monaten läuft das ganze auf ein Rock64 4GB Board, mit Debian Stretch (arm64).
Perl5 (armhf) revision 5 version 24 subversion 1.

Es könnte auch sein, das der ESP32 daran schuld war. Wenn der Offline geht, das dadurch irgendwann der collectored Dienst einfriert.
Ich weiß nicht genau, wann ich den ESP32 aus der collectord.conf ausgetragen habe. Als Zeitstempel steht:
-rw-r--r-- 1 root root      615 Jun  4 14:52 collectord.conf

Aber ob ich den schon vorher ausgetragen habe, kann ich jetzt nicht mehr genau sagen.  :-\

Ich werde das noch mal weiter beobachten...


Viele Grüße
Mark
Rock64 4GB mit Debian Strech, FHEM im LXC, Sonoff Switches/Touch, HM Thermostate, HMUART/Zigbee2MQTT@MapleCUN, ESP RGBWW Wifi Controller, ESP8266 Door Sensor/Briefkastenwächter, BT CSL Stick, BT iTags, Alexa, FireTV, RPi2 mit Kodi, Xiaomi Vacuum v1/Smarthome Komponenten

DerBodo

#1094
Jetzt muss ich leider doch noch mal ein paar recht idiotische Fragen stellen, allerdings sehe ich gerade den Wald vor lauter Bäumen nicht.

Sketch ist kompiliert und hochgeladen. Im Serial Monitor sehe ich auch die entsprechenden BLE Devices.
Soweit alles gut.

Wie binde ich den ESP nun an den Collectord welcher auf dem FHEM Server läuft ?
Bei den PiZeros läuft ja einfach der lepresenced via PERL und macht den entsprechenden Port für die Verbindung auf.


Aktuell öffnet der ESP noch seinen Default AP obwohl er im WLAN eingebucht ist. Wie kann ich diesen abschalten (sollte ja eigentlich der AP Mode sein).



EDIT: Ok... das mit der Einbindung habe ich inzwischen geschafft, der Port ist einfach ein ganz anderer (Port 3333 für diejenigen die es auch nicht gleich finden).