Bluetooth auf Wlan Umsetzung (für Xiaomi Pflanzsensor)

Begonnen von andi11, 27 Januar 2017, 06:58:27

Vorheriges Thema - Nächstes Thema

andi11

In diesem Thread https://forum.fhem.de/index.php?topic=60914 ist die Frage nach einer Bluetooth auf Wlan Umsetzung für Pflanzensensoren von Xiaomi http://www.gearbest.com/other-garden-supplies/pp_373947.html aufgetaucht.
Für mich wäre das auch sehr praktisch.
Dort kam der Vorschlag, dass ganze mit einem HM10 Bluetooth Modul auf einem NodeMCU zu machen.
Hat jemand einen Ansatz ob/wie das funktionieren kann?

Am liebsten natürlich eine allgemeine Umsetzung Bluetooth <> Wlan , dass es nicht nur mit dem einen Sensor funktioniert.
Oder kennt jemand Alternativen zur HM10 Variante? Die aktuelle Version kommuniziert über USB Bluetooth Dongle und gatttool .
Eine Möglichkeit wären mehrere Raspis, das finde ich aber nicht soooo toll. Bin aber genauso an käuflichen Alternativen interessiert.

sash.sc

Bluetooth auf WLAN hört sich gut an. Werde ich demnächst auch brauchen

Von mobil gesendet daher kurze Antwort

Raspi 4B+ Bullseye ;LaCrosse; HomeMatic; MapleCUL; ZigBee; Signalduino ESP32 ; Shellys; MQTT2; Grafana mit Influxdb

andi11

Was ich gefunden habe ist das hier: http://redbearlab.com/nrf51822-sdk/
Da steht was von Central Role dabei. Die Library dazu für Arduino ist hier https://github.com/RedBearLab/nRF51822-Arduino
Ein Beispiel für Central Role wird aber nicht gelistet.

Waldmensch

Hier ist eine Referenz GATT über AT Commands. Das ist der Schlüssel. ESP -> Seriell -> AT Commands -> Gatt -> Antwort -> Rückmeldung über ESP

http://support.connectblue.com/display/PRODBTSPA/Bluetooth+Serial+Port+Adapter+AT+Commands+GATT

andi11

danke :) das heist aber auch dass ein HM10/11 das ganze nicht kann, denn diese Kommandos sind dort nicht implementiert, oder übersehe ich was?

Waldmensch

Gute Frage. Ich habe mittlerweile einen hier liegen, auf einem ZS-040 Breakout, aber ich krieg ihn nicht zum reden. Habe erstmal einen FTDI dran und versuche mit 9600 Baud über Minicom mit dem HM10 zu reden - nix, keine Antwort. Das Teil blinkt nur rot im Sekundentakt und ist auch über Bluetooth nicht zu sehen  :(


Gesendet von iPhone mit Tapatalk

PeMue

Zitat von: Waldmensch am 28 Januar 2017, 13:27:31
Ich habe mittlerweile einen hier liegen, auf einem ZS-040 Breakout, aber ich krieg ihn nicht zum reden. Habe erstmal einen FTDI dran und versuche mit 9600 Baud über Minicom mit dem HM10 zu reden - nix, keine Antwort. Das Teil blinkt nur rot im Sekundentakt und ist auch über Bluetooth nicht zu sehen  :(
Da gibt es richtige und fake Module. Die einen gehen nur mit /r/n am Ende die anderen ohne. Ich muss mal meine Readme Datei raussuchen, ich habe beide in Betrieb bekommen.

Ich habe hier https://forum.fhem.de/index.php/topic,45589.msg373657.html#msg373657 mal Leiterplatten gemacht (eine mit USB <-> Bluetooth, eine mit RES485 Bluetooth). Wenn ihr die Platinen (ca. 15-20 Euro) finanziert, mache ich Euch eine Layout, entweder mit ESP8266 ESP12E/F oder sogar mit dem PSF-A85 von ITead.

Gruß PeMue
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

sash.sc



Zitat von: PeMue am 28 Januar 2017, 18:46:18
Da gibt es richtige und fake Module. Die einen gehen nur mit /r/n am Ende die anderen ohne. Ich muss mal meine Readme Datei raussuchen, ich habe beide in Betrieb bekommen.

Ich habe hier https://forum.fhem.de/index.php/topic,45589.msg373657.html#msg373657 mal Leiterplatten gemacht (eine mit USB <-> Bluetooth, eine mit RES485 Bluetooth). Wenn ihr die Platinen (ca. 15-20 Euro) finanziert, mache ich Euch eine Layout, entweder mit ESP8266 ESP12E/F oder sogar mit dem PSF-A85 von ITead.

Gruß PeMue

D. h. Es wird eine Bluetooth zu WLAN bridge? Sie sieht es mir der Programmierung des ESP aus?

Gruß Sascha

Von mobil gesendet daher kurze Antwort

Raspi 4B+ Bullseye ;LaCrosse; HomeMatic; MapleCUL; ZigBee; Signalduino ESP32 ; Shellys; MQTT2; Grafana mit Influxdb

PeMue

Zitat von: sash.sc am 28 Januar 2017, 19:37:10
Wie sieht es mir der Programmierung des ESP aus?
Ich schlage ESPEasy vor, da kann man endweder die SoftSerial oder die normale serielle Schnittstelle nehmen. Die HM10 werden per AT Kommandos konfiguriert und wenn sie mal gepairt sind, ist das eine "ganz normale" serielle Schnittstelle.

Gruß PeMue
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

sash.sc

Espeasy hört sich gut an. Habe ich auf diversen esp bzw nodemcu an laufen zusammen mit dem passenden Modul von dev0.  8)

Gruß Sascha

Von mobil gesendet daher kurze Antwort

Raspi 4B+ Bullseye ;LaCrosse; HomeMatic; MapleCUL; ZigBee; Signalduino ESP32 ; Shellys; MQTT2; Grafana mit Influxdb

Waldmensch

Man könnte ja ganz simpel die AT Befehle an ESPEASY senden und die Antwort des HM in einem Json an FHEM zurückliefern. Der ESP dann nur als "doofer" Vermittler. Wenn aber das GATT nicht über AT geht wirds nur als iBeacon taugen


Gesendet von iPhone mit Tapatalk

Waldmensch

Also ab und zu spuckt das Teil was aus, aber auf 99% aller AT Kommandos passiert gar nichts oder ERR


PeMue

Hallo,

hier sind die AT-Befehle, die bei mir funktionieren:
Original HM-10
==============
serielle Schnittstelle
9600/N/8/1 kein CR+LF notwendig

http://blog.blecentral.com/2015/05/05/hm-10-peripheral/

AT-Befehle:
AT              OK
AT+VERS?        HMSoft V540
AT+HELP?        www.jnhuamao.cn
AT+BAUD?        OK+Get:0
AT+PARI?        OK+Get:0
AT+STOP?        OK+Get:0
AT+NAME?        HMSoft<\0>
AT+ROLE?        OK+Get:0 0 ... slave 1 ... master
AT+RADD         RADD:000000000000
AT+TYPE         OK+Get:0
AT+RENEW        OK+RENEW
AT+RESET        OK+RESET
AT+PASS?        OK+Get:000000
AT+IMME?        OK+Get:0
AT+TCON?        OK+Get:000000
AT+TYPE?        OK+Get:0
AT+SLEEP        OK+SLEEP<\0>
AT+WAKE         OK+WAKE
AT+PIO1?        OK+Get:0
AT+HELP?        www.jnhuamao.cn
AT+ADDR?        OK+ADDR:B4994C57C1FB
AT+POWE?        OK+Get:2
AT+PCTL?        OK+Get:1 0 normal, 1 max. power output
AT+ROLE1        OK+Set:1
AT+RESET        OK+RESET
AT+IMME1        OK+Set:1
AT+SHOW1        OK+Set:1
AT+ADVI?        OK+Get:0
AT+ALLO?        OK+Get:0
AT+BATC?        OK+Get:0
AT+BATT?        OK+Get:100
AT+FLOW?        OK+Get:0
AT+IBE0?        OK+Get:0x74278BDA
AT+IBE1?        OK+Get:0xB6444520
AT+IBE2?        OK+Get:0x8F0C720E
AT+IBE3?        OK+Get:0xAF059935
AT+MARJ?        OK+Get:0xFFE0
AT+PWRM?        OK+Get:1
AT+SAVE?        OK+Get:1
AT+TEMP?        OK+Get:023.884
AT+UUID?        OK+Get:0xFFE0

Welches Terminalprogramm verwendest Du?

Gruß PeMue
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser

Waldmensch

#13
Das ist ein simples Programm in .Net, was im Quellcode vorliegt. Damit kann man unter Windows den comport "bespassen" wie man will. Also z.B. Noch ein \r\n anhängen

Wenn ich einen normalen Write auslöse AT+HELP? kommt gar keine Antwort
Wenn ich einen Write auslöse AT+HELP?\n kommt ERR
Wenn ich einen Write auslöse AT+HELP?\r\n kommt ERR



PeMue

Du hast auch ein fake Modul (erkennbar an dem fehlenden 32 kHz Quarz), Bolutec BLE-CC41-A-

fake HM-10
==========
Bolutek BLE-CC41-A
serielle Schnittstelle
9600/N/8/1 CR+LF notwendig

AT              OK
AT+NAME         +NAME=BT05
AT+PIN          +PIN=000000
AT+BAUD         +BAUD=4
AT+POWER        ERROR=201
AT+PARI         +PARI=0
AT+PWRM         +PWRM=1
AT+SLEEPT       +SLEEP<\r><\n>OK
AT+VERSION      +VERSION=Firmware V3.0.6,Bluetooth V4.0 LE
AT+LADDR        +LADDR=00:15:83:00:44:22
AT+STATE        +STATE=2<\r><\n>OK
AT+ROLE         +ROLE=0
AT+POWE         +POWE=2
AT+NOTI         +NOTI=0
AT+UUID         +UUID=0xFFE0
AT+CHAR         +CHAR=0xFFE1
AT+NOTI1        +NOTI=1<\r><\n>OK
AT+INQ          OK<\r><\n>+INQS<\r><\n>+INQ:1 0xB4994C57C1FB<\r><\n>+INQE<\r><\n>Devices Found 1
AT+SHOW
AT+CONN1        +Connecting  0xB4994C57C1FB<\r><\n>+Connected  0xB4994C57C1FB

http://www.aliexpress.com/item/HM-10-CC2540-4-0-BLE-Bluetooth-to-UART-Transceiver-Module-Central-Peripheral/2031511773.html
AT              (Test command)
AT+BAUD         (Query/Set Baud rate)
AT+STOP         (Query/Set stop bit)
AT+UART         (Query/Set uart rate,parity, stop bit)
AT+PIO          (Query/Set PIO pins status Long command)
AT+PIO          (Query/Set a PIO pin status Short command)
AT+NAME         (Query/Set device friendly name)
AT+PIN          (Query/Set device password code)
AT+DEFAULT      (Reset device settings)
AT+RESTART      (Restart device)
AT+ROLE         (Query/Set device mode, Master or Slave)
AT+CLEAR        (Clear remote device address if has)
AT+CONLAST      (Try to connect last connect succeed device)
AT+VERSION      (Show software version information)
AT+HELP         (Show help information)
AT+ADDR         (Query self address)
AT+RADD         (Query remote device address)
AT+IMME         (Query/Set Whether the device boot immediately)
AT+WORK         (if device not working, start work, use with AT+IMME command)
AT+TCON         (Query/Set Try to connect remote times)
AT+TYPE         (Query/Set device work type,  transceiver mode or remote mode)
AT+START        (Switch remote control mode to transceiver mode)
AT+BUFF         (Query/Set How to use buffer data, Duing mode switching time)
AT+FILT         (Query/Set device filter when device searching)

AT+LADD         (Query self address)
AT+COD          (Query/Set Class of Device. eg: phone, headset etc.)
AT+CHK          (Query/Set parity)

AT+HELP
********************************************************************<\r><\n>
* Command             Description<9><9><9>           *<\r><\n>*
---------------------------------------------------------------- *<\r><\n>
* AT                  Check if the command terminal work normally  *<\r><\n>
* AT+RESET            Software reboot<9><9><9><9>   *<\r><\n>
* AT+VERSION          Get firmware, bluetooth, HCI and LMP version *<\r><\n>
* AT+HELP             List all the commands<9><9>           * <\r><\n>
* AT+NAME             Get/Set local device name                    * <\r><\n>
* AT+PIN              Get/Set pin code for pairing                 * <\r><\n>
* AT+PASS             Get/Set pin code for pairing                 * <\r><\n>
* AT+BAUD             Get/Set baud rate<9><9>                   * <\r><\n>
* AT+LADDR            Get local bluetooth address<9><9>   * <\r><\n>
* AT+ADDR             Get local bluetooth address<9><9>   * <\r><\n>
* AT+DEFAULT          Restore factory default<9><9><9>   * <\r><\n>
* AT+RENEW            Restore factory default<9><9><9>   * <\r><\n>
* AT+STATE            Get current state<9><9><9><9>   *<\r><\n>
* AT+PWRM             Get/Set power on mode (low power) <9><9>   *<\r><\n>
* AT+POWE             Get/Set RF transmit power <9><9>   *<\r><\n>
* AT+SLEEP            Sleep mode <9><9>                   *<\r><\n>
* AT+ROLE             Get/Set current role.<9>                   * <\r><\n>
* AT+PARI             Get/Set UART parity bit.                     * <\r><\n>
* AT+STOP             Get/Set UART stop bit.                       * <\r><\n>
* AT+START            System start working.<9><9><9>   *<\r><\n>
* AT+IMME             System wait for command when power on.<9>   *<\r><\n>
* AT+IBEA             Switch iBeacon mode.<9>                   *<\r><\n>
* AT+IBE0             Set iBeacon UUID 0.            <9>           * <\r><\n>
* AT+IBE1             Set iBeacon UUID 1.            <9>           * <\r><\n>
* AT+IBE2             Set iBeacon UUID 2.            <9>           * <\r><\n>
* AT+IBE3             Set iBeacon UUID 3.            <9>           * <\r><\n>
* AT+MARJ             Set iBeacon MARJ .            <9>           * <\r><\n>
* AT+MINO             Set iBeacon MINO .            <9>           * <\r><\n>
* AT+MEA              Set iBeacon MEA .            <9>           * <\r><\n>
* AT+NOTI             Notify connection event .                    * <\r><\n>
* AT+UUID             Get/Set system SERVER_UUID .            <9>   * <\r><\n>
* AT+CHAR             Get/Set system CHAR_UUID .            <9>   * <\r><\n>
* -----------------------------------------------------------------* <\r><\n>
* Note: (M) = The command support slave mode only. <9><9>   *<\r><\n>
* For more information, please visit http://www.bolutek.com        *<\r><\n>
* Copyright@2013 www.bolutek.com. All rights reserved.<9><9>   *<\r><\n>
********************************************************************<\r><\n>


Gruß PeMue
RPi3Bv1.2 rpiaddon 1.66 6.0 1xHM-CC-RT-DN 1.4 1xHM-TC-IT-WM 1.1 2xHB-UW-Sen-THPL-O 0.15 1x-I 0.14OTAU  1xCUNO2 1.67 2xEM1000WZ 2xUniroll 1xASH2200 3xHMS100T(F) 1xRFXtrx 90 1xWT440H 3xTFA30.3150 5xFA21
RPi1Bv2 LCDCSM 1.63 5.8 2xMAX HKT 1xMAX RT V200KW1 Heizung Wasser