Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Windows 11 und Bluetooth LE (https://www.delphipraxis.net/214804-windows-11-und-bluetooth-le.html)

Graw 12. Mär 2024 14:32

Windows 11 und Bluetooth LE
 
Hallo,

ich suche nun schon lange nach einem passendem Beispiel für eine Bluetooth LE Verbindung mit Windows 11.

Ich will die Characteristics abfragen und die dazugehörenden Values.

Kann mir hier jemand weiterhelfen?

himitsu 12. Mär 2024 15:29

AW: Windows 11 und Bluetooth LE
 
Hast du die Delphi-Demos nicht installiert?
C:\Users\Public\Documents\Embarcadero\Studio\22.0\Samples\

Ich würde doch mal schauen, ob sich was findet.
Und dann hat Emba auch so einige Videos auf Youtube
und in der Hilfe sind zu einigen Kompnenten auch Demos verlinkt.

z.B.
C:\Users\Public\Documents\Embarcadero\Studio\22.0\Samples\Object Pascal\Multi-Device Samples\Device Sensors and Services\Bluetooth\...



oder Delphi neu installieren

oder Tools -> Platformen verwalten -> Samples anhaken und installieren

oder z.B. https://github.com/Embarcadero/RADStudio12Demos
RADStudio12Demos\Object Pascal\Multi-Device Samples\Device Sensors and Services\Bluetooth\Beacons\...

Graw 13. Mär 2024 14:27

AW: Windows 11 und Bluetooth LE
 
Hallo himitsu,

mit den Beispielen habe ich schon probiert.
Leider ist kein Beispiel unter Windows funktionstüchtig.

Mein Hauptaugenmerk liegt da auf "ExploreDevicesLE" und "BLEScanner".

Das Suchen der Geräte funktioniert noch.
Aber sobald ich bei ExploreDevicesLE auf Get klicke oder beim BLEScanner ein Device auswähle, frieren beide Anwendungen ein und müssen über den Taskmanager beendet werden.

Die neusten Versionen von github habe ich auch getestet.

philipp.hofmann 13. Mär 2024 21:52

AW: Windows 11 und Bluetooth LE
 
Ich habe ExploreDevicesLE gerade bei mir mal getestet, allerdings Windows 10. Da läuft es problemlos. War die Win32-Debug-Variante. Aber ich weiß, dass bei der Iteration durch Characteristics eines Service wichtig ist, dass dies nicht im Hauptthread passiert. Dies kann zu Hängenbleibern führen. Ich habe jetzt nicht gecheckt, wie das Beispiel es macht.

Graw 15. Mär 2024 11:30

AW: Windows 11 und Bluetooth LE
 
Das ist ja interessant.
Wenn auf Get geklickt wird, hängt es sich nicht auf?

Kann es an meiner Hardware liegen?

philipp.hofmann 15. Mär 2024 12:31

AW: Windows 11 und Bluetooth LE
 
Ja, beim Klick auf "Get services" hängt es sich nicht auf. Aber es kann gut sein, dass du einen Thread um die Funktion ServicesDiscovered bauen musst. Dies scheint mir in dem Beispiel falsch zu sein.

Probiere mal diese Anpassung:
Delphi-Quellcode:
procedure TFrDeviceExplorer.ServicesDiscovered(const Sender: TObject; const AServiceList: TBluetoothGattServiceList);
begin
  TThread.CreateAnonymousThread(
  procedure()
  var
  I: Integer;
  CharList: TBluetoothGattCharacteristicList;
  AChar: TBluetoothGattCharacteristic;
  J: Integer;
  CurrentRow: Integer;
  Options: string;
  ServiceItem, Characteristic, CharProps: TTreeViewItem;
  begin
    TvCharacteristics.Clear;
    for I := 0 to AServiceList.Count - 1 do
    begin
      ServiceItem := TTreeViewItem.Create(nil);
      ServiceItem.Parent := TvCharacteristics;
      ServiceItem.Tag := I;
      ServiceItem.IsExpanded := True;
      if AServiceList[I].UUIDName.IsEmpty then
        ServiceItem.Text := 'Unnamed'
      else
        ServiceItem.Text := AServiceList[I].UUIDName;
      CharList := AServiceList[I].Characteristics;
      for J := 0 to CharList.Count - 1 do
      begin
        AChar := CharList[J];
        TThread.Synchronize(nil, procedure begin
          Options := '';
          if TBluetoothProperty.Broadcast in AChar.Properties then Options := Options + 'Broadcast ';
          if TBluetoothProperty.ExtendedProps in AChar.Properties then Options := Options + 'ExtendedProps ';
          if TBluetoothProperty.Notify in AChar.Properties then Options := Options + 'Notify ';
          if TBluetoothProperty.Indicate in AChar.Properties then Options := Options + 'Indicate ';
          if TBluetoothProperty.Read in AChar.Properties then Options := Options + 'Read ';
          if TBluetoothProperty.Write in AChar.Properties then Options := Options + 'Write ';
          if TBluetoothProperty.WriteNoResponse in AChar.Properties then Options := Options + 'WriteNoResponse ';
          if TBluetoothProperty.SignedWrite in AChar.Properties then Options := Options + 'SignedWrite ';
          Characteristic := TTreeViewItem.Create(nil);
          Characteristic.Parent := ServiceItem;
          Characteristic.IsExpanded := False;
          if AChar.UUIDName.IsEmpty then
            Characteristic.Text := 'Unnamed'
          else
            Characteristic.Text := AChar.UUIDName;
          Characteristic.Tag := J;
          CharProps := TTreeViewItem.Create(nil);
          CharProps.Tag := -1;
          CharProps.Parent := Characteristic;
          CharProps.IsExpanded := True;
          CharProps.Text := GUIDToString(AChar.UUID);
          CharProps := TTreeViewItem.Create(nil);
          CharProps.Tag := -1;
          CharProps.Parent := Characteristic;
          CharProps.IsExpanded := True;
          CharProps.Text := Options;
        end);
        Application.ProcessMessages;
      end;
    end;
    tmAnimateFindServices.Enabled := False;
    PbServices.Value := 100;
  end).Start;
end;
D.h. übertragen auf das Beispiel müsste es

Graw 21. Mär 2024 08:53

AW: Windows 11 und Bluetooth LE
 
Hallo,

vielen Dank für deine Anpassung.
Bin gerade dazu gekommen diese zu testen.
Leider ist das Ergebnis noch das selbe.
Beim anklicken von Get sevices hängt sich die Software auf.

Michael II 21. Mär 2024 14:00

AW: Windows 11 und Bluetooth LE
 
Hab's mit Delphi 11.2 und Dell Notebook mit Windows 11 Pro (Version 10.0.22635.3350) getestet.
Das Erkennen der Devices scheint völlig fuzzy zu sein. Ich klicke und sehe 3 Geräte, ich klicke erneut und sehe 7. Einige Leerzeilen, einige Namen werden nicht angezeigt (nur Bluetooth <Adresse>); meine Hyperboom (welche von meinem Dell Testgerät korrekt angezeigt wird) wird zum Beispiel nie als HYPERBOOM angezeigt.
Wenn ich einen Device "selecte" und Get... klicke, dann passiert bei keinem der 7 ausgewählten Geräte was. Ab und zu hängt sich die App nach Klick auf Get... auf.
Das Beispiel ist für die Tonne. Leider haben wir hier auf dem Land nur alle zwei Wochen Müllabfuhr.

Rollo62 21. Mär 2024 17:05

AW: Windows 11 und Bluetooth LE
 
Das ist aber bei Funk normal, dass man sich nicht 100 % auf den Empfang verlassen kann.
Liegt in der Natur der Sache, dass mal entferntere Geräte gelistet werden und mal nicht und die Reihenfolge sich ändert.
Die Geräte können auch verschiedene Sendezyklen besitzen, die sehr Stromsparenden senden vielleicht nur alle >=10 Sekunden,
währen die aktiveren Geräte auch gerne mal alle 40ms senden können.
Das ist bei Bluetooth normal, Hauptsache man erkennt überhaupt Geräte.

Redeemer 21. Mär 2024 19:58

AW: Windows 11 und Bluetooth LE
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe mich mit unzähligen LED-Controllern beschäftigt. Die Wahrscheinlichkeit, dass diverse PC-Hardware die gefunden hat, hing stark vom Controller ab. Zu den sehr unsicher gefundenen gehört aber insbesondere auch unser Samsung-Fernseher, der zudem als einziger oft keinen Namen bekam.

Obwohl für LED-Lichterketten gedacht, kann man das Ding auch für das benutzen, was du vor hast:
1. Scan anklicken
2. Auf das Gerät doppelklicken
Charakteristiken sind dann in den ComboBoxen rechts daneben.

Es funktioniert bei mir mit diversen Intel-WLAN-Karten und Noname-Adaptern mit Realtek-Chip.

himitsu 21. Mär 2024 20:02

AW: Windows 11 und Bluetooth LE
 
Zitat:

Zitat von Redeemer (Beitrag 1534914)
Ich habe mich mit unzähligen LED-Controllern beschäftigt.

Muß es da unbedingt BLE sein? Strom sparen muß man da ja nicht unbedingt extrem, so dass vielleicht auch WLAN reicht?

Der von Shelly lässt sich ganz einfach via HTTP-Request (GET) ansteuern.

Redeemer 21. Mär 2024 20:25

AW: Windows 11 und Bluetooth LE
 
Mit BLE schenkst du dir jegliche Konfiguration und gegenüber BT sogar das Pairing. Ich glaube, darum ging es bei der Erfindung von BLE.

Ich hatte mir anfangs zwei LED-Controller gekauft. Einen für BLE und sicherheitshalber einen für WLAN, weil ich nicht dachte, dass ich das mit BLE hinkriege. Ergebnis: Der für WLAN arbeitet mit einem Server im Internet, zu dem er eine HTTPS-Verbindung aufbaut. Ein selbstsigniertes Zertifikat und andere Spielereien ließ er sich nicht unterjubeln. Immerhin lässt sich das Gerät mit der Open-Source-Firmware kno.WLED.ge flashen, es auf ESP8265 basiert. Aber seitdem habe ich keine Lust mehr auf WLAN und nehme lieber BLE. Nachteil ist die maximale Paketlänge von 191 netto und ein Paket-Durchsatz auf PC-Hardware von ca. 32 Pakete·s⁻¹. Mein Ziel war, auf unserer Weihnachtsfeier Tetris und Snake auf einer 3,50-Euro-Lichterkette (inkl. Controller „iDeal LED“) spielen zu können. Das funktioniert, da man bei diesem Modell einzelne Pixel über deren Index ändert, Blink-/Blitz-Effekte vom Controller gerendert werden und sich bei den genannten Spielen nur wenige Pixel pro Tick ändern.

/Nachtrag: BT/BLE scheint auch billiger als WLAN zu sein. Praktisch alle Artikel auf AliExpress, die es bei ansonsten identischer Hardware als BT/BLE- und als WLAN-Version gibt, kosten in letzterer ca. 2 Dollar mehr. Und das macht halt bei einem Produkt für 3,50 Euro schon einen Unterschied.

himitsu 21. Mär 2024 20:43

AW: Windows 11 und Bluetooth LE
 
Nja, BLE ohne Sicherheit mag vielleicht gehn, wenn es um eine kleine Lampe geht, aber z.B. die Beleuchtung unseres Aquariums ist ungesichert, ebenso die Pumpe für's Kalzium.
OK, ist WLAN, also nur innerhalb des WLAN, aber komplett offen, wo es jeder steuern könnte, die am Büro vorbei läuft ... ich weiß ja nicht.

Gestern mit einem BLE-Scanner erstmal geschaut, was er zu meinen Test-Beacons sagt
https://www.delphipraxis.net/203724-...estimmung.html
und ich war schon überrascht, was hier alles so für Geräte rumfläuchen und mit wie vielen ich mich ohne Hindernisse connecten könnte.

Privat häng ich zwar hinter meinem eigenen WLAN-Router, aber wenn ich mich hier direkt mit dem WLAN meines Vermieters verbinde, dann seh ich auch da massenhaft fremde Geräte (Fernseher, Lautsprecher, Lampen, ......) der Nachbarn.



Die Shelly sind zwar vorgesehn, dass man sie über eine Cloud steuert, aber sie lassen sich "offiziell" trennen und nur lokal nutzen, direkt oder z.B. über einen eigenen lokalen Server.
Inzwischen erweitern die ihr sortiment aber auch um immer mehr BLE-Geräte.
Einige neue Sensoren nur BLE, aber z.B. die neue Steckdose mit BLE+WLAN, die sich optional auch als Bridge für die Sensoren nutzen lassen ließe.

Michael II 21. Mär 2024 21:59

AW: Windows 11 und Bluetooth LE
 
Zitat:

Zitat von Rollo62 (Beitrag 1534913)
Das ist aber bei Funk normal, dass man sich nicht 100 % auf den Empfang verlassen kann.
Liegt in der Natur der Sache, dass mal entferntere Geräte gelistet werden und mal nicht und die Reihenfolge sich ändert.

Ja - aber ich kann bei meinem Compi Bluetooth ein- und ausschalten und sehe die Geräte - mit der App, welche auf dem gleichen Compi läuft sehe ich sie und dann wieder nicht. Und das ist nicht normal.
Zudem sind alle Geräte max. 2m entfernt. Ist doch komisch - aber ich habe 0 Ahnung von BT - nur getestet.

himitsu 22. Mär 2024 02:40

AW: Windows 11 und Bluetooth LE
 
Zitat:

Zitat von Michael II (Beitrag 1534919)
sehe ich sie und dann wieder nicht. Und das ist nicht normal.

Beim ersten Scann sind sie da und beim nächsten Scann dann weg?

Ja klar. Windows merkt sich auch Dinge eine Weile und löscht sie nicht sofort wieder aus der Liste, nur weil das Gerät grade weg ist.
WLAN-Accesspoints, Bluetooth-Geräte, Netzwerkgeräte, ...

https://play.google.com/store/search...ps&hl=de&gl=US
Hier siehst du z.B., wie manche Geräte ausgegraut werden, wenn sie kurz weg sind.

Rollo62 22. Mär 2024 07:00

AW: Windows 11 und Bluetooth LE
 
Zitat:

Zitat von Redeemer (Beitrag 1534917)
... auf einer 3,50-Euro-Lichterkette (inkl. Controller „iDeal LED“) ...

Wo hast Du denn sowas gefunden?
Dummerweise haben die chinesischen Produkt-Namensgeber nicht bedacht, dass bei "ideal LED" so gut wie alle LED Webseiten hochkommen.
Marketing ist eben nicht immer deren Stärke.

Hier ist noch so ein Link, aber bei einem Preis von 3,50 EUR sind die sicher schon Pleite.
https://www.amazon.de/iDeal-Led-Smar.../dp/B0BN652QB9

Rollo62 22. Mär 2024 07:10

AW: Windows 11 und Bluetooth LE
 
Zitat:

Zitat von himitsu (Beitrag 1534920)
https://play.google.com/store/search...ps&hl=de&gl=US
Hier siehst du z.B., wie manche Geräte ausgegraut werden, wenn sie kurz weg sind.

Nordic ist auch eine gute Referenz.
https://play.google.com/store/apps/d...cp&hl=de&gl=US

Mein Favorit ist mittlerweile aber LightBlue, dass jetzt auch auf Android und nicht nur iOS verfügbar ist.
https://play.google.com/store/apps/d...er&hl=de&gl=US
Das war so ziemlich der Vorreiter bei Tools und ist entsprechend zuverlässig.

philipp.hofmann 22. Mär 2024 10:32

AW: Windows 11 und Bluetooth LE
 
Wenn man Probleme mit BluetoothLE-Verbindungen hat, kann es eine Lösung sein, dass 2.4 Ghz WLAN am Router abzuschalten (falls man es nicht zwingend benötigt). Sonst funkt BLE und WLAN im fast gleiche Frequenzbereich.

himitsu 22. Mär 2024 11:29

AW: Windows 11 und Bluetooth LE
 
Zitat:

Zitat von Rollo62 (Beitrag 1534923)
Zitat:

Zitat von Redeemer (Beitrag 1534917)
... auf einer 3,50-Euro-Lichterkette (inkl. Controller „iDeal LED“) ...

Hier ist noch so ein Link, aber bei einem Preis von 3,50 EUR sind die sicher schon Pleite.
https://www.amazon.de/iDeal-Led-Smar.../dp/B0BN652QB9

70€
https://www.amazon.de/s?k=led+vorhan...ref=nb_sb_noss

Nja, hab es von Chinesen öfters gesehn, z.B. Stehlampen.
Da wird einmal was in Masse billig produziert.
Wenn es scheiße ist, dann eh nicht nochmal nachproduziert (und der Hersteller verschwindet gleich mit)
und selbst wenn es OK war, wird das Design geändert, es noch cooler gemacht und unter anderem Namen (Gerätename und Firmenname) erneut verkauft.

Rollo62 22. Mär 2024 12:15

AW: Windows 11 und Bluetooth LE
 
Zitat:

Zitat von himitsu (Beitrag 1534930)
70€

:roll:

70 EUR, das kann doch jeder :-D

Redeemer 22. Mär 2024 17:52

AW: Windows 11 und Bluetooth LE
 
Auf die 3,50 kommt man bei AliExpress, wenn man diese "3 for X" (hellgelber Kasten) auf der Startseite anklickt. Da muss man dann drei Produkte auswählen (es gehen aber bis zu zehn). Expressversand ist frei. Die Auswahl ist sehr groß und die Seite nicht zu durchsuchen. Wenn einen das System noch nicht gut "kennt", am besten irgendwelche LED-Produkte in den Warenkorb laden und die Seite neu laden. Dann sucht es weitere LED-Produkte. Ich weiß nicht, ob man die Dinger verlinken kann, versuche das aber unten mal. Zum Monatsanfang und bei einigen "Shopping-Events" kriegt man 10% Rabatt und kommt dann auf knapp 3,50 Euro.

Produkte mit dem genannten Controller "iDeal LED" gibt es mindestens viermal da:
- 100-LED-Lichterkette USB, $ 3,99
- 100-LED-Lichterkette USB, $ 3,99 (das ist exakt dieselbe wie die obige, was früher interessant gewesen wäre, als man drei "unterschiedliche" Artikel bestellen musste)
- 50-LED-Lichterkette USB, $ 2,99 (zum drauf Zocken wohl zu wenige LEDs)
- 50-Sternchen-Lichterkette 3×AA-Batterie, $ 3,99
Wie man das bedient siehe mein Programm. Die Verbindung ist nämlich verschlüsselt in AES-128 ECB non-padded. Aber das DEC regelt! Den Key hat ein netter Russe aus einem in die offizielle App integriertem Binary extrahiert. Wichtig: Niemals "Mutil-Model" 0x0c oder höher aufrufen, sonst hardbrickt dir der Controller. Die Lichterkette kann man dann natürlich abschneiden und an jedem anderen Controller für programmierbare LEDs betreiben, da der ganze Kram (Protokolle, Spannung, Stecker) komplett standartisiert ist. Nennt sich WS2812B.
Wie man sieht, ist das eine Lichterkette. Damit man drauf zocken kann, muss man die so legen oder hängen, "wie der Ochse pflügt" (griechisch: voustrofedón). Ich empfehle 9×11 Pixel.

Ein anderes für den Preis extrem interessantes Produkt ist "Zengge". Die LEDs spricht man hier nicht einzeln an, sondern sendet ein komplettes Bild. Das dauert bei mehr als ca. 57 LEDs entsprechend länger wegen mehreren Paketen. Die Reaktionszeit ist auch nicht so gut.
- 54-LED-Streifen, $ 2,99 (der Controller kann vom Leuchtstreifen abgestöpselt und für jedes beliebige adressierbare LED-Produkt verwendet werden - bei mir steuert er jetzt eine LED-Matrixanzeige)
Es gibt noch mindestens zwei weitere Produkte, die ebenfalls Zengge heißen, aber weniger Features haben, insbesondere kann man damit kein Bild anzeigen.

All diese Produkte sind wirklich sehr gut. AliExpress-Bewertungen sind zwar meist übertrieben, aber 4,9 Sterne bei tausenden Bewertungen sprechen für sich. Am meisten beeindruckt sind die Leute immer vom Türkis. :-D

TurboMagic 22. Mär 2024 18:58

AW: Windows 11 und Bluetooth LE
 
Zitat:

Zitat von Michael II (Beitrag 1534909)
Hab's mit Delphi 11.2 und Dell Notebook mit Windows 11 Pro (Version 10.0.22635.3350) getestet.
Das Erkennen der Devices scheint völlig fuzzy zu sein. Ich klicke und sehe 3 Geräte, ich klicke erneut und sehe 7. Einige Leerzeilen, einige Namen werden nicht angezeigt (nur Bluetooth <Adresse>); meine Hyperboom (welche von meinem Dell Testgerät korrekt angezeigt wird) wird zum Beispiel nie als HYPERBOOM angezeigt.
Wenn ich einen Device "selecte" und Get... klicke, dann passiert bei keinem der 7 ausgewählten Geräte was. Ab und zu hängt sich die App nach Klick auf Get... auf.
Das Beispiel ist für die Tonne. Leider haben wir hier auf dem Land nur alle zwei Wochen Müllabfuhr.

Naja, zumindest bei Classic Bluetooth waren das Finden eines Gerätes und die Ermittlung
des "Friendly Name" intern immer 2 Schritte.

Ganz lustig war, wenn das Gerät dazwischen außer Reichweite geraten ist. Windows Mobile hatte
dann immer Mist gebaut und einen kaputten String geliefert, was aber keines der Beispiele im
Internet behandelt hatte. Alles Schönwetter Umsetzungen.

Grüße
TurboMagic

TurboMagic 22. Mär 2024 18:59

AW: Windows 11 und Bluetooth LE
 
Zitat:

Zitat von philipp.hofmann (Beitrag 1534926)
Wenn man Probleme mit BluetoothLE-Verbindungen hat, kann es eine Lösung sein, dass 2.4 Ghz WLAN am Router abzuschalten (falls man es nicht zwingend benötigt). Sonst funkt BLE und WLAN im fast gleiche Frequenzbereich.

Möglich. Nur: auch BLE benutzt Frequenzhopping, wechselt also dauernd die Frequenz,
während W-Lan immer auf der selben Frequenz bleibt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:48 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz