Raspberry Pi als Beacon Scanner für Gigaset G-Tags - Reloaded

Hier mal copy/Paste aus einer Beschreibung im Internet:

„G1 is a Bluetooth low energy (BLE) to Wi-Fi connectivity gateway without the uses of smartphones or apps. The G1 gateway collects the data from iBeacon, Eddystone, BLE sensor and other BLE devices, and then sends to the local server or remote cloud server by HTTP / MQTT protocol over Wi-Fi / Ethernet. The subsequent version G1 Gateway will also implement the connection with BLE devices.“

Aber außer dem G1 von Minew gibt es noch andere ähnliche Gateways, z.B. von Ingics das iGS02E oder iGS01S.

In Deutschland findet man leider kaum Angebote, man muss wohl in China bestellen oder basteln.

Nicht dass wir uns falsch verstehen, ich kenne mich mit den Geräten nicht aus.

Der Minew G1 würde mich auch interessieren. Habe leider noch keinen passenden Händler gefunden. Hat jemand vor sich einen solchen Gateway zu bestellen?

Grüße
Stefan

Bin grad am überlegen welche iBeacons ich mir bestelle und ein Gateway bräuchte ich auch.
Hab mir BlueUp angesehen, sind Italiener. Die Dinge kommen mir ganz schick vor.
Aber meine Frage zu deren Gateways ob die einen konfigurierbaren Webhook verschicken ist da noch unbeantwortet.
Ich suche USB iBeacons für die Räume und Batterie iBeacons die ich zum einen an die Räder montieren will und zum anderen je einen ins Auto.

Wäre cool wenn wir uns da austauschen was gut geht. Und vlt. baut ja jemand Gateways auf Raspi Basis. Ich erwarte das nicht für lau, muss ja selbst mein Geld mit Dienstleistung verdienen.

cheers
Seppm

Ich habe mir das G1 gekauft und seit ein paar Tagen am laufen. Meine 3 iBeacon werden erkannt und per webhook an ips übergeben. Das Ding überträgt alle gefundenen Macadressen und ich entscheide in ips was damit geschieht.

Interessant!
Wie kommen die Daten genau an inIPS? Wie strukturiert und in welchem Intervall?

Das Minew G1, oder?
Generiert das für Erkannt und nicht mehr erkannt 2 Webhooks die man auseinanderhalten kann oder wie erkennst Ankunft und Verlassen?
Cheers
Seppm

Ja, es ist das Minew G1.

In den Einstellungen wird die Zeit definiert, wie lange gescannt, in welchem Rhythmus und alle wieviel Sekunden die Daten übergeben werden.

Angeboten wird die Abgabe der Daten an einen IoT Service, Mqtt oder per http. Ich habe den Webhook verwendet. Auf YouTube gibt es Videos zur Abgabe an einen IoT Service - ist vermutlich für den kommerziellen Bereich.

Die Übergabe erfolgt in einem Json formatierten Satz, den ich mit den Beispielen hier im Forum leicht verarbeiten konnte.

Es wird immer jede gefundene MAC Adresse übergeben, da kommen pro Tag schon mal über 100St zusammen, weil manche Geräte ihre MAC Adressen ändern. In den Einstellungen des G1 sind Filter definierbar, z.B keine doppelten Werte pro Übertragung.

Zur Auswertung habe ich mir in IPS Boolean Variablen mit Name=MAC Adresse angelegt, die ich dann auswerte.

Zur Frage, wie ich erkenne, dass ein iBeacon weg ist, weil ja nur gefundene Werte übertragen werden:

Bei jedem Aufruf des Webhooks erzeuge ich ein internes Array, dass ich mit false vorbelege. Dann schaue ich welcher iBeacon da ist und setze den Wert auf True. Zum Abschluss schreibe ich nur die veränderten Arrayfelder in die entsprechenden IPS Variablen.

Was ich nicht probiert habe; das G1 soll sich auch als Accesspoint oder Repeater konfigurieren lassen - dafür habe ich keinen Bedarf.

Ich habe auch nur die MAC Adressen von meinen iBeacons erfasst. Die Auswertung von den sonstigen Rawdatas ist mir zu schwierig.

Ich finde gut, dass das Gerät einfach so nutzbar ist. Die Einstellungen erfolgen bequem über ein Webmenü. Alles andere regele ich in IPS.

Das G1 gibt es preiswert in China. Ich habe den beaconshop24 angeschrieben, ob die mir eins verkaufen können. War leider etwas teurer, als der Chinashop.

Moin allerseits, ich habe grade mein Modul fertig gestellt, das auf der CodeBasis von http://esp32-server.de/mqtt-ble/ läuft.

Alle Daten werden vom EPS32 über mqtt an den Server geschickt. Symcon wertet nun alle Daten aus, und ändert bei gefunden Beacons den wert auf anwesend.
Wird ein Beacon nicht gefunden, so wird dieser nach einen einstellbaren Timeout auf abwesend gestellt.
mehrere ESP32 sind möglich.

Wenn jemand Interesse hat bitte melden, dann stell ich es in meiner Modulbibliothek zur Verfügung.
ESP32 Code ist der Originale(unverändert) von der Webseite.

Gruß: Swen

Sehr schön! Ich hätte Interesse daran.
Aktuell nutze ich noch den ESP32 Code mit meiner MQTT Modifikation, um eine Zuordnung pro Raum machen zu können.
Auch habe ich nun doch nach langem überlegen eine Whitelist im Arduino hinterlegt, damit er nicht am Tag 400 Geräte in die Queue wirft. Apple devices ändern ständig ihre Adressen…

Presence detection mache ich mit einem Trigger auf die RSSI (bei update) und das „leave“ mit einem Variablen Watchdog, wenn sich die RSSI nicht aktualisiert hat. Ein Modul wäre natürlich umso schöner dafür.

So Modul hab ich vorhin in meine Modul-Sammlung hochgeladen.

GitHub - Acer90/SymconModule

Das Modul heißt: SymconIBeaconScanner
Gerne könnt ihr es auch für euch abwandeln.

Kurzanleitung:
MQTT Server (Aus dem Store wird benötig)
Instance anlegen.

Timeout =Zeit in Sekunden, nachdem auf abwesend gesetzt wird wenn der Beacon nicht mehr erreichbar ist.
Checktime = Prüfen in Sekunden wann die letzte Aktualisierung kam.
Scanner Devices = Whitelist für MQTT Geräte hier die MQTT Namen der ESP32 Geräte eintragen
TAG Devices = Whitelist für alle Beacons, diese werden im Anschluss als Variable unter der Instance angelegt.

Swen

Coole Sache Sven,
Danke für das Modul, aber ich wollte mich weder mit Arduino noch MQTT beschäftigen (vlt. ein Fehler, aber hab schon genug Themen an der Backe :slight_smile: Bin aber sicher dass es viele sehr gut brauchen können.

Was ich für mich im Kopf schon gelöst habe, ist ja die Erkennung von iBeacons im Raum durch zB Geofency am iPhone oder iWatch und es löst einen Webhook bei Ein- und Austritt (verzögert) aus.

Meine Wunschlösung um zB das ankommende Auto oder Fahrrad zu Hause zu erkennen ist immer noch ein iBeacon in jedem Fahrzeug und zB in der Garage einen Scanner wie das G1. Offenbar gibt das aber erstmal alle iBeacons an Symcon und ich will das eigentlich nicht alles im Netzwerk haben, da ich es auch nicht brauche und nicht verarbeiten will.

Super wäre also ein fertig zu kaufender iBeacon Scanner der nur bestimmte Ankunft/Ausgänge an Symcon meldet wo ich es dann über Webhook auswerte. Wenn ich es recht verstehe, sind das die hier schon gezeigten RasPi Lösungen.
Mein Problem ist dass ich leider nicht der Linux Held bin und entweder was fertiges suche oder jemand dem es leicht fällt und mir solche Scanner liefert. Wie gesagt, nicht umsonst. Ich würde das halt gerne für mich aber auch für Kunden zum Auslösen von Aktionen/bzw. der Info wegen, quasi „fertig“ nutzen.
Falls da jemand Lust drauf hat, bitte gerne bei mir melden. Oder natürlich auch wenn es was fertiges gibt was ich noch nicht geschnallt habe. Dankeschön!

Cheers Seppm

Ich habe den ESP32 nochmal etwas verfeinert [emoji3]

Habs jetzt erst zufällig wieder gelesen. Werd ich Mal wieder auf die todo Liste setzen. Zur Zeit ist allerdings ein anderes Großprojekt am laufen.

Gesendet von meinem VOG-L29 mit Tapatalk

Ich komme irgendwie mit dem Flashen des ESP nicht weiter.
Kann jemand eine kurze schritt für Schritt Anleitung erstellen?
Bei mir kommen schon die Fehler beim kompilieren.

:\_UserData\Smarthome\ESP32 AKM\main\main.ino: In function 'void setup()':
main:65:8: error: 'class PubSubClient' has no member named 'set_server'
   mqtt.set_server(MQTT_server, MQTT_port); // MQTT Port einstellen
        ^
main:66:20: error: 'MQTT' has not been declared
   if (mqtt.connect(MQTT::Connect(MQTT_Name).set_auth(MQTT_User, MQTT_Pass)))
                    ^
main:69:18: error: 'MQTT' has not been declared
     mqtt.publish(MQTT::Publish("hallo", MQTT_Name).set_qos(QoS)); // im Topic hallo Präsenzmelder Name schreiben
                  ^
C:\_UserData\Smarthome\ESP32 AKM\main\main.ino: In function 'void loop()':
main:96:16: error: 'MQTT' has not been declared
   mqtt.publish(MQTT::Publish(MQTT_Name, NachrichtJSON).set_qos(QoS)); // JSON per MQTT senden
                ^
main:107:18: error: 'MQTT' has not been declared
     mqtt.connect(MQTT::Connect(MQTT_Name).set_auth(MQTT_User, MQTT_Pass));
                  ^
Mehrere Bibliotheken wurden für "WiFi.h" gefunden
 Benutzt: C:\Users\ThomasP\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4\libraries\WiFi
 Nicht benutzt: C:\Program Files (x86)\Arduino\libraries\WiFi
Mehrere Bibliotheken wurden für "BLEDevice.h" gefunden
 Benutzt: C:\Users\ThomasP\Documents\Arduino\libraries\ESP32_BLE_Arduino
 Nicht benutzt: C:\Users\ThomasP\AppData\Local\Arduino15\packages\esp32\hardware\esp32\1.0.4\libraries\BLE
exit status 1
'class PubSubClient' has no member named 'set_server'

Vielen dank an someone für die Hilfe zum Einrichten. Der ESP ist nun richtig geflasht. Einen mit Display habe ich auch noch bestellt.

Bei dem Modul habe ich aber noch das Problem, dass ich zwar die Daten eintragen kann und auch im debug die Daten ankommen. Aber es werden keine Variablen angelegt.

Gibts da noch was zu beachten?

Hi,

boah cool, das ist komplett an mir vorbei gegangen. Vielen Dank dafür, läuft super.

Welchen Code habt ihr denn auf den esp32 geflasht?

Gesendet von meinem VOG-L29 mit Tapatalk

HI,

tommy86

hat acer90 doch geschrieben

Moin allerseits, ich habe grade mein Modul fertig gestellt, das auf der CodeBasis von MQTT Bluetooth Anwesenheitserkennung Raum präsenzmelder läuft.

Auf die esp drauf, Variablen nach deinen wünschen anpassen und diese Zeile

#define MQTT_Name "Scanner_Flur"    // gleichzeitig publish Name

als „iBEaconScanner device“ ins modul eintragen.

Viele Grüße

Ich verstehe das nicht ganz. Wenn ich den Code von der Website flashen will bekomme ich lauter Fehler.

Someone hat den Code modifiziert, den kann ich flashen. Allerdings funktioniert dann das Modul nicht, da dann die Daten anderes übertragen werden.

Oder gibt es was besonders zu beachten oder in welchem Format sollen die Daten für das Modul ankommen? Dann könnte ich den Code von someone evtl noch weng anpassen.
Danke euch schon jetzt

Gesendet von meinem VOG-L29 mit Tapatalk

Hast du auch den pubsubclient von Imroy installiert?

Auf der Seite „http://esp32-server.de/mqtt-ble“ steht unter dem Sketch, dass die verwendete MQTT Bibliothek die „MQTT client library for Arduino“ vom Imroy ist.