Bluetooth auf Wlan Umsetzung (für Xiaomi Pflanzsensor)

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

Vorheriges Thema - Nächstes Thema

mark79

Schön das es jetzt geht. :)

Btw. wenn du es einmal seriell geflasht hast und die IP vom ESP32 bekannt ist, kannst du übrigens OTA update mit der Arduino IDE verwenden.
Das lässt sich unter Tools > Port einstellen.
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

andi11


bartman121

Also ich bin jetzt auch gerade am Testen mit OpenMQTTGateway und einem ESP32. Scheint erstmal zu laufen, aber irgendwie fragt der die Sensoren nicht der Reihe nach ab, sondern zufällig.

Was habt ihr für für Zeiten in der config_BT.h eingetragen?
Zitat
#define TimeBtw_Read 50000 //define the time between 2 scans
#define Scan_duration 10 //define the time for a scan

Grüße


bartman121

Okay, ich habe jetzt schonmal ein Problem entdeckt, ich habe ein paar Sensoren (non-international, diese haben noch die alte Firmware (2.7.0.). Hier werden keine Werte ausgelesen, außer "name".


Sensoren mit Firmware 3.1.8 funktionieren jedoch wunderbar.

Ich vermute hier müsste man irgendwie das Parsen in der ZgatewayBT (process_miflora_data) anpassen.


/* 
  OpenMQTTGateway  - ESP8266 or Arduino program for home automation

   Act as a wifi or ethernet gateway between your 433mhz/infrared IR signal/BLE  and a MQTT broker
   Send and receiving command by MQTT

  This gateway enables to:
- publish MQTT data to a different topic related to BLE devices rssi signal

    Copyright: (c)Florian ROBERT
 
    This file is part of OpenMQTTGateway.
   
    OpenMQTTGateway is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.

    OpenMQTTGateway is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program.  If not, see <http://www.gnu.org/licenses/>.

Thanks to wolass https://github.com/wolass for suggesting me HM 10 and dinosd https://github.com/dinosd/BLE_PROXIMITY for inspiring me how to implement the gateway
*/
#ifdef ZgatewayBT

  #ifdef ESP32
    /*
       Based on Neil Kolban example for IDF: https://github.com/nkolban/esp32-snippets/blob/master/cpp_utils/tests/BLE%20Tests/SampleScan.cpp
       Ported to Arduino ESP32 by Evandro Copercini
    */
    // core task implementation thanks to https://techtutorialsx.com/2017/05/09/esp32-running-code-on-a-specific-core/
   
    #include <BLEDevice.h>
    #include <BLEUtils.h>
    #include <BLEScan.h>
    #include <BLEAdvertisedDevice.h>

    //Time used to wait for an interval before resending BLE infos
    unsigned long timeBLE= 0;
   
    //core on which the BLE detection task will run
    static int taskCore = 0;
     
    class MyAdvertisedDeviceCallbacks: public BLEAdvertisedDeviceCallbacks {
          void onResult(BLEAdvertisedDevice advertisedDevice) {
            String mac_adress = advertisedDevice.getAddress().toString().c_str();
            mac_adress.replace(":","");
            mac_adress.toUpperCase();
            String mactopic = subjectBTtoMQTT + mac_adress;
            if (advertisedDevice.haveName()){
                trc(F("Get Name "));
                String nameBLE = advertisedDevice.getName().c_str();
                trc(nameBLE);
                client.publish((char *)(mactopic + "/name").c_str(),(char *)nameBLE.c_str());
            }
            if (advertisedDevice.haveManufacturerData()){
                trc(F("Get ManufacturerData "));
                String ManufacturerData = advertisedDevice.getManufacturerData().c_str();
                trc(ManufacturerData);
                client.publish((char *)(mactopic + "/ManufacturerData").c_str(),(char *)ManufacturerData.c_str());
            }
            if (advertisedDevice.haveRSSI()){
              trc(F("Get RSSI "));       
              String rssi = String(advertisedDevice.getRSSI());
              trc(mactopic + " " + rssi);
              client.publish((char *)mactopic.c_str(),(char *)rssi.c_str());
            }
            if (advertisedDevice.haveTXPower()){
              trc(F("Get TXPower "));       
              int8_t TXPower = advertisedDevice.getTXPower();
              trc(String(TXPower));
              char cTXPower[5];
              sprintf(cTXPower, "%d", TXPower);
              client.publish((char *)(mactopic + "/tx").c_str(),cTXPower);
            }
            if (advertisedDevice.haveServiceData()){
                trc(F("Get service data "));
                std::string serviceData = advertisedDevice.getServiceData();
                int serviceDataLength = serviceData.length();
                String returnedString = "";
                for (int i=0; i<serviceDataLength; i++)
                {
                  int a = serviceData[i];
                  if (a < 16) {
                    returnedString = returnedString + "0";
                  }
                  returnedString = returnedString + String(a,HEX); 
                }
                trc(returnedString);
                               
                trc(F("Get service data UUID"));
                BLEUUID serviceDataUUID = advertisedDevice.getServiceDataUUID();
                trc(serviceDataUUID.toString().c_str());

                if (strstr(serviceDataUUID.toString().c_str(),"fe95") != NULL){
                  trc("Processing mi flora data");
                  char service_data[returnedString.length()+1];
                  returnedString.toCharArray(service_data,returnedString.length()+1);
                  service_data[returnedString.length()] = '\0';
                  char mac[mac_adress.length()+1];
                  mac_adress.toCharArray(mac,mac_adress.length()+1);
                  boolean result = process_miflora_data(-22,service_data,mac);
                }
            }
          }
      };

    void setupBT(){
        #ifdef multiCore
        // we setup a task with priority one to avoid conflict with other gateways
        xTaskCreatePinnedToCore(
                          coreTask,   /* Function to implement the task */
                          "coreTask", /* Name of the task */
                          10000,      /* Stack size in words */
                          NULL,       /* Task input parameter */
                          1,          /* Priority of the task */
                          NULL,       /* Task handle. */
                          taskCore);  /* Core where the task should run */
          trc(F("ZgatewayBT multicore ESP32 setup done "));
        #else
          trc(F("ZgatewayBT singlecore ESP32 setup done "));
        #endif
    }
   
    #ifdef multiCore
    void coreTask( void * pvParameters ){
     
        String taskMessage = "BT Task running on core ";
        taskMessage = taskMessage + xPortGetCoreID();
     
        while(true){
            trc(taskMessage);
            delay(TimeBtw_Read);
            BLEDevice::init("");
            BLEScan* pBLEScan = BLEDevice::getScan(); //create new scan
            MyAdvertisedDeviceCallbacks myCallbacks;
            pBLEScan->setAdvertisedDeviceCallbacks(&myCallbacks);
            pBLEScan->setActiveScan(true); //active scan uses more power, but get results faster
            BLEScanResults foundDevices = pBLEScan->start(Scan_duration);
        }
    }
    #else
    boolean BTtoMQTT(){
      unsigned long now = millis();
      if (now > (timeBLE + TimeBtw_Read)) {//retriving value of temperature and humidity of the box from DHT every xUL
              timeBLE = now;
              BLEDevice::init("");
              BLEScan* pBLEScan = BLEDevice::getScan(); //create new scan
              MyAdvertisedDeviceCallbacks myCallbacks;
              pBLEScan->setAdvertisedDeviceCallbacks(&myCallbacks);
              pBLEScan->setActiveScan(true); //active scan uses more power, but get results faster
              BLEScanResults foundDevices = pBLEScan->start(Scan_duration);
              return true;
      }
      return false;
    }
    #endif
     
  #else // arduino or ESP8266 working with HM10/11

#include <SoftwareSerial.h>

#define STRING_MSG "OK+DISC:"
#define RESPONSE_MSG "OK+DISIS"
#define RESP_END_MSG "OK+DISCE"
#define SETUP_MSG "OK+RESET"

SoftwareSerial softserial(BT_RX, BT_TX);

String returnedString = "";
unsigned long timebt = 0;

// this struct define which parts of the hexadecimal chain we extract and what to do with these parts
struct decompose d[6] = {{"mac",16,12,true},{"typ",28,2,false},{"rsi",30,2,false},{"rdl",32,2,false},{"sty",44,4,true},{"rda",34,60,false}};

void setupBT() {
  softserial.begin(9600);
  softserial.print(F("AT+ROLE1"));
  delay(100);
  softserial.print(F("AT+IMME1"));
  delay(100);
  softserial.print(F("AT+RESET"));
  delay(100);
  trc(F("ZgatewayBT HM1X setup done "));
}

#ifdef ZgatewayBT_v6xx
#define QUESTION_MSG "AT+DISA?"
boolean BTtoMQTT() {

  //extract serial data from module in hexa format
  while (softserial.available() > 0) {
      int a = softserial.read();
      if (a < 16) {
        returnedString = returnedString + "0";
      }
        returnedString = returnedString + String(a,HEX); 
  }

  if (millis() > (timebt + TimeBtw_Read)) {//retriving data
      timebt = millis();
      #if defined(ESP8266)
        yield();
      #endif
      if (returnedString != "") {
        size_t pos = 0;
        while ((pos = returnedString.lastIndexOf(delimiter)) != -1) {
          #if defined(ESP8266)
            yield();
          #endif
          String token = returnedString.substring(pos);
          trc(token);
          returnedString.remove(pos,returnedString.length() );
          char token_char[token.length()+1];
          token.toCharArray(token_char, token.length()+1);
          trc(token);
          if ( token.length() > 60){// we extract data only if we have detailled infos
            for(int i =0; i<6;i++)
            {
              extract_char(token_char,d[i].extract,d[i].start, d[i].len ,d[i].reverse, false);
              if (i == 3) d[5].len = (int)strtol(d[i].extract, NULL, 16) * 2; // extracting the length of the rest data
            }
 
            if((strlen(d[0].extract)) == 12) // if a mac adress is detected we publish it
            {
                strupp(d[0].extract);
                String mactopic(d[0].extract);
                trc(mactopic);
                mactopic = subjectBTtoMQTT + mactopic;
                int rssi = (int)strtol(d[2].extract, NULL, 16) - 256;
                char val[12];
                sprintf(val, "%d", rssi);
                client.publish((char *)mactopic.c_str(),val);
                if (strcmp(d[4].extract, "fe95") == 0)
                boolean result = process_miflora_data(0,d[5].extract,d[0].extract);
               
                return true;
            }
          }
        }
        returnedString = ""; //init data string
        return false;
      }
      softserial.print(F(QUESTION_MSG));
      return false;
  }else{   
    return false;
  }
}

void strupp(char* beg)
{
    while (*beg = toupper(*beg))
       ++beg;
}

#endif

#ifndef ZgatewayBT_v6xx
#define QUESTION_MSG "AT+DISI?"
boolean BTtoMQTT() {
  while (softserial.available() > 0) {
     #if defined(ESP8266)
      yield();
     #endif
    String discResult = softserial.readString();
    if (discResult.indexOf(STRING_MSG)>=0){
      discResult.replace(RESPONSE_MSG,"");
      discResult.replace(RESP_END_MSG,"");
      float device_number = discResult.length()/78.0;
      if (device_number == (int)device_number){ // to avoid publishing partial values we detect if the serial data has been fully read = a multiple of 78
        trc(F("Sending BT data to MQTT"));
        #if defined(ESP8266)
          yield();
        #endif
        for (int i=0;i<(int)device_number;i++){
             String onedevice = discResult.substring(0,78);
             onedevice.replace(STRING_MSG,"");
             String mac = onedevice.substring(53,65);
             String rssi = onedevice.substring(66,70);
             String mactopic = subjectBTtoMQTT + mac;
             trc(mactopic + " " + rssi);
             client.publish((char *)mactopic.c_str(),(char *)rssi.c_str());
             discResult = discResult.substring(78);
          }
          return true;
        }
      }
    if (discResult.indexOf(SETUP_MSG)>=0)
    {
      trc(F("Connection OK to HM-10"));
    }
  }
  if (millis() > (timebt + TimeBtw_Read)) {//retriving value of adresses and rssi
       timebt = millis();
       #if defined(ESP8266)
        yield();
       #endif
       softserial.print(F(QUESTION_MSG));
       
  }
  return false;
}
#endif
#endif

boolean process_miflora_data(int offset, char * rest_data, char * mac_adress){
 
  int data_length = 0;
  switch (rest_data[51 + offset]) {
    case '1' :
    case '2' :
    case '3' :
    case '4' :
        data_length = ((rest_data[51 + offset] - '0') * 2)+1;
        trc(String(data_length));
    break;
    default:
        trc("can't read data_length");
    return false;
    }
   
  char rev_data[data_length];
  char data[data_length];
  memcpy( rev_data, &rest_data[52 + offset], data_length );
  rev_data[data_length] = '\0';
 
  // reverse data order
  revert_hex_data(rev_data, data, data_length);
  double value = strtol(data, NULL, 16);
  trc(String(value));
  char val[12];
  String mactopic(mac_adress);
  mactopic = subjectBTtoMQTT + mactopic;

  // following the value of digit 47 we determine the type of data we get from the sensor
  switch (rest_data[47 + offset]) {
    case '9' :
          mactopic = mactopic + "/" + "fer";
          dtostrf(value,0,0,val);
    break;
    case '4' :
          mactopic = mactopic + "/" + "tem";
          if (value > 65000) value = value - 65535;
          dtostrf(value/10,3,1,val); // temp has to be divided by 10
    break;
    case '7' :
          mactopic = mactopic + "/" + "lux";
          dtostrf(value,0,0,val);
     break;
    case '8' :
          mactopic = mactopic + "/" + "hum";
          dtostrf(value,0,0,val);
     break;
    default:
    trc("can't read values");
    return false;
    }
    client.publish((char *)mactopic.c_str(),val);;
    trc(String(val));
    return true;
  }

#endif


ich denke, dass CoolTux (Entwickler des XiaomiBLESens-Moduls könnte hier sicher hilfreiche Tipps geben? *lieb.schau*

mark79

Zitat von: bartman121 am 06 September 2018, 17:40:21
Okay, ich habe jetzt schonmal ein Problem entdeckt, ich habe ein paar Sensoren (non-international, diese haben noch die alte Firmware (2.7.0.). Hier werden keine Werte ausgelesen, außer "name".


Sensoren mit Firmware 3.1.8 funktionieren jedoch wunderbar.

Ich vermute hier müsste man irgendwie das Parsen in der ZgatewayBT (process_miflora_data) anpassen.

ich denke, dass CoolTux (Entwickler des XiaomiBLESens-Moduls könnte hier sicher hilfreiche Tipps geben? *lieb.schau*

Update doch einfach die Firmware, ist einfacher. :)
Wenn das chinesische, also keine Internationale Xiaomi Pflanzensensoren sind, soll das wohl mit einem VPN und chinesischer IP gehen.

EDIT: https://forum.fhem.de/index.php/topic,60914.msg642541.html#msg642541
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

andi11

bei der Android App kannste das Land auswählen. Trotz chinesischer Schriftzeichen kriegt man das hin.

bartman121

#126
Zitat von: mark79 am 07 September 2018, 11:18:47
Update doch einfach die Firmware, ist einfacher. :)
Wenn das chinesische, also keine Internationale Xiaomi Pflanzensensoren sind, soll das wohl mit einem VPN und chinesischer IP gehen.

EDIT: https://forum.fhem.de/index.php/topic,60914.msg642541.html#msg642541

Hallo,

vielen Dank genau danach habe ich gesucht. Leider bietet FlyVPN derzeit keine kostenfreien VPN-Server in Festland-China an. Hong-Kong ist leider nicht Festland-China. '(

Edit:
Mit dem Probeabo von hidemyAss könnte ich die Sensoren updaten.

Grüße

Andreas

cs-online

Hallo zusammen,

da mein ZeroW sich alle paar Tage aufhängt, bin ich gerade mit einem MQTT-Gateway auf einem ESP32 am testen. Ich bekomme auch Daten im Serien Monitor angezeigt, angeblich ist der auch mit dem Broker connected, aber wie bekomm ich denn die Daten im FHEM rein ? Ich habe noch andere MQTT-Devices, da gibt's mit Verbose 5 beim Broker auch jede Menge Einträge im Log, aber nichts vom ESP32... So sieht z.B. die Ausgabe im Seriellen Monitor aus:


Activated modules
ONOFFBT
BT Task running on core 0
Creating BLE buffer
BLErssi
-60
txPower
-59
BLE DISTANCE :
1.14
Pub json into:
home/home_presence/OpenMQTTGateway
{"id":"c4:7c:8d:66:c7:5c","name":"Flower care","rssi":-60,"distance":1.135236}
Get service data
Pub json into:
home/OpenMQTTGateway/BTtoMQTT/C47C8D66C75C
{"id":"c4:7c:8d:66:c7:5c","name":"Flower care","rssi":-60,"distance":1.135236,"servicedata":"71209800d85cc7668d7cc40d041002cd00","servicedatauuid":"0000fe95-0000-1000-8000-00805f9b34fb"}
Processing BLE device data
mi flora data reading
Creating BLE buffer
rest_data
71209800d85cc7668d7cc40d041002cd00
data_length
5
205.00
rest_data
71209800d85cc7668d7cc40d041002cd00
Pub json into:
home/OpenMQTTGateway/BTtoMQTT/C47C8D66C75C
{"tem":20.5}
BT Task running on core 0


Könnt Ihr mir ein wenig nachhelfen ?

Grüße

Christian
FHEM auf RPI 4 4GB, HM-WLAN-Gateway, einige HM-Aktoren,2x EBUSD an Heizung+Solar, ESP8266 am Strom-,Gas-,Wasserzähler, in WLAN-Steckdosen und Relaisleisten, Sonoff S20, Shelly1,2 und 2.5,Lacrosse-Gateway und Sensoren,Sduino,Alexa-Fhem,Huawei PV mit Speicher, alles auf einem RPI und da geht noch mehr

cs-online

#128
Update: Ich habe es nun hinbekommen, dass im Log das hier erscheint:

2019.05.03 21:50:14 5: MQTT myBroker message received: Publish/at-most-once home/OpenMQTTGateway/BTtoMQTT/C47C8D66C75C
  7b 22 69 64 22 3a 22 63 34 3a 37 63 3a 38 64 3a  {"id":"c4:7c:8d:
  36 36 3a 63 37 3a 35 63 22 2c 22 6e 61 6d 65 22  66:c7:5c","name"
  3a 22 46 6c 6f 77 65 72 20 63 61 72 65 22 2c 22  :"Flower care","
  72 73 73 69 22 3a 2d 34 36 2c 22 64 69 73 74 61  rssi":-46,"dista
  6e 63 65 22 3a 30 2e 30 38 32 39 39 36 2c 22 73  nce":0.082996,"s
  65 72 76 69 63 65 64 61 74 61 22 3a 22 37 31 32  ervicedata":"712
  30 39 38 30 30 39 31 35 63 63 37 36 36 38 64 37  09800915cc7668d7
  63 63 34 30 64 30 37 31 30 30 33 34 61 30 30 30  cc40d0710034a000
  30 22 2c 22 73 65 72 76 69 63 65 64 61 74 61 75  0","servicedatau
  75 69 64 22 3a 22 30 30 30 30 66 65 39 35 2d 30  uid":"0000fe95-0
  30 30 30 2d 31 30 30 30 2d 38 30 30 30 2d 30 30  000-1000-8000-00
  38 30 35 66 39 62 33 34 66 62 22 7d              805f9b34fb"}
2019.05.03 21:50:14 1: PERL WARNING: Argument "{"id":"c4:7c:8d:66:c7:5c","name":"Flower care","rssi":-4..." isn't numeric in numeric gt (>) at (eval 632985) line 1.


Wie kann ich das nun weiter verarbeiten ?

EDIT: Hab es mit Expand-JSON hinbekommen.... Nun fehlt mir nur noch der Batterie-Status... Hat jemand eine Idee,wie man daran kommt ?
FHEM auf RPI 4 4GB, HM-WLAN-Gateway, einige HM-Aktoren,2x EBUSD an Heizung+Solar, ESP8266 am Strom-,Gas-,Wasserzähler, in WLAN-Steckdosen und Relaisleisten, Sonoff S20, Shelly1,2 und 2.5,Lacrosse-Gateway und Sensoren,Sduino,Alexa-Fhem,Huawei PV mit Speicher, alles auf einem RPI und da geht noch mehr

ext23

#129
Hallo,

ich hab mir das jetzt auch mal auf einem ESP32 installiert. Aber ich habe Probleme mit dem MQTT Broker:
Invalid protocol "MQTT" in CONNECT ...
Kennt das Jemand? Ich weiß, dass ich bei einem anderen Projekt da irgendwie die MQTT Version auf dem ESP umbenennen musste. Trifft das hier auch zu?

Version:
Beschreibung: MQTT version 3.1 compatible message broker
This is a message broker that supports version 3.1 of the MQ Telemetry Transport protocol.

/Daniel
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

ext23

OK ich habs, ein

#define MQTT_VERSION 3

in der PubSubClient.h hat geholfen.

/Daniel
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

ext23

Ist das normal, dass man immer nur ein Wert bekommt, also Temp, Hum, Fertilität und Helligkeit?!?


home/OpenMQTTGateway/BTtoMQTT/C47C8D6A5FC1/id c4:7c:8d:6a:5f:c1
home/OpenMQTTGateway/BTtoMQTT/C47C8D6A5FC1/name Flower care
home/OpenMQTTGateway/BTtoMQTT/C47C8D6A5FC1/rssi -74
home/OpenMQTTGateway/BTtoMQTT/C47C8D6A5FC1/distance 5.3
home/OpenMQTTGateway/BTtoMQTT/C47C8D6A5FC1/servicedata 71209800dec15f6a8d7cc40d0410021b01
home/OpenMQTTGateway/BTtoMQTT/C47C8D6A5FC1/servicedatauuid 0000fe95-0000-1000-8000-00805f9b34fb
home/OpenMQTTGateway/BTtoMQTT/C47C8D6A5FC1/tem 28.3

home/OpenMQTTGateway/BTtoMQTT/C47C8D6AB5C7/id c4:7c:8d:6a:b5:c7
home/OpenMQTTGateway/BTtoMQTT/C47C8D6AB5C7/name Flower care
home/OpenMQTTGateway/BTtoMQTT/C47C8D6AB5C7/rssi -82
home/OpenMQTTGateway/BTtoMQTT/C47C8D6AB5C7/distance 11.5
home/OpenMQTTGateway/BTtoMQTT/C47C8D6AB5C7/servicedata 7120980068c7b56a8d7cc40d0810010f
home/OpenMQTTGateway/BTtoMQTT/C47C8D6AB5C7/servicedatauuid 0000fe95-0000-1000-8000-00805f9b34fb
home/OpenMQTTGateway/BTtoMQTT/C47C8D6AB5C7/moi 15.0

home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/id c4:7c:8d:66:63:db
home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/name Flower care
home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/rssi -76
home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/distance 6.4
home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/servicedata 7120980050db63668d7cc40d0410021301
home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/servicedatauuid 0000fe95-0000-1000-8000-00805f9b34fb
home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/tem 27.5

home/OpenMQTTGateway/BTtoMQTT/C47C8D66642C/id c4:7c:8d:66:64:2c
home/OpenMQTTGateway/BTtoMQTT/C47C8D66642C/name Flower care
home/OpenMQTTGateway/BTtoMQTT/C47C8D66642C/rssi -85
home/OpenMQTTGateway/BTtoMQTT/C47C8D66642C/distance 15.1
home/OpenMQTTGateway/BTtoMQTT/C47C8D66642C/servicedata 71209800072c64668d7cc40d0410021501
home/OpenMQTTGateway/BTtoMQTT/C47C8D66642C/servicedatauuid 0000fe95-0000-1000-8000-00805f9b34fb
home/OpenMQTTGateway/BTtoMQTT/C47C8D66642C/tem 27.7
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

Steffen

Hallo!

Ich habe mich auch mal an dem ES32 versucht mit openmqttgateway und bekomme diese Meldungen im Mqtt:

home/OpenMQTTGateway_ESP32_BLE/BTtoMQTT/C47C8D66EC25 {"moi":0}

habe dann ein MQTT_DEVICE in Fhem angelegt:

home/OpenMQTTGateway_ESP32_BLE/BTtoMQTT/C47C8D66EC25/+

aber ich bekomme keine Readings, könnte vielleicht hier mir jemand helfen?

Mfg Steffen

ext23

Bei mir sieht es so aus wobei die readings teilweise automatisch erstellt wurden.

Internals:
   FUUID      5d38add0-f33f-2323-49e2-4abaf93a5ec59c99
   IODev      MQTT_Broker
   NAME       MQTT_FlowerCare01
   NR         2479
   STATE      ???
   TYPE       MQTT_DEVICE
   Helper:
     DBLOG:
       fer:
         logdb:
           TIME       1566241468.90534
           VALUE      258.0
       lux:
         logdb:
           TIME       1566240848.68823
           VALUE      244.0
       moi:
         logdb:
           TIME       1566241778.76539
           VALUE      31.0
       tem:
         logdb:
           TIME       1566241160.74381
           VALUE      24.9
   READINGS:
     2019-08-19 21:09:38   distance        8.7
     2019-08-19 21:04:28   fer             258.0
     2019-08-19 21:09:38   id              c4:7c:8d:66:63:db
     2019-08-19 20:54:08   lux             244.0
     2019-08-19 21:09:38   moi             31.0
     2019-08-11 17:12:56   name            Flower care
     2019-08-19 21:09:38   rssi            -79
     2019-08-19 21:09:38   servicedata     71209800e2db63668d7cc40d0810011f
     2019-08-19 21:09:38   servicedatauuid 0000fe95-0000-1000-8000-00805f9b34fb
     2019-08-19 20:59:20   tem             24.9
     2019-08-19 21:09:38   transmission-state incoming publish received
   message_ids:
   sets:
   subscribe:
     home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/+
     home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/distance
     home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/fer
     home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/id
     home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/lux
     home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/moi
     home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/name
     home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/rssi
     home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/servicedata
     home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/servicedatauuid
     home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/tem
   subscribeExpr:
     ^home\/OpenMQTTGateway\/BTtoMQTT\/C47C8D6663DB\/([^/]+)$
     ^home\/OpenMQTTGateway\/BTtoMQTT\/C47C8D6663DB\/distance$
     ^home\/OpenMQTTGateway\/BTtoMQTT\/C47C8D6663DB\/fer$
     ^home\/OpenMQTTGateway\/BTtoMQTT\/C47C8D6663DB\/id$
     ^home\/OpenMQTTGateway\/BTtoMQTT\/C47C8D6663DB\/lux$
     ^home\/OpenMQTTGateway\/BTtoMQTT\/C47C8D6663DB\/moi$
     ^home\/OpenMQTTGateway\/BTtoMQTT\/C47C8D6663DB\/name$
     ^home\/OpenMQTTGateway\/BTtoMQTT\/C47C8D6663DB\/rssi$
     ^home\/OpenMQTTGateway\/BTtoMQTT\/C47C8D6663DB\/servicedata$
     ^home\/OpenMQTTGateway\/BTtoMQTT\/C47C8D6663DB\/servicedatauuid$
     ^home\/OpenMQTTGateway\/BTtoMQTT\/C47C8D6663DB\/tem$
   subscribeQos:
     home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/+
     home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/distance 0
     home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/fer 0
     home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/id 0
     home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/lux 0
     home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/moi 0
     home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/name 0
     home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/rssi 0
     home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/servicedata 0
     home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/servicedatauuid 0
     home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/tem 0
   subscribeReadings:
     home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/distance:
       cmd       
       name       distance
     home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/fer:
       cmd       
       name       fer
     home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/id:
       cmd       
       name       id
     home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/lux:
       cmd       
       name       lux
     home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/moi:
       cmd       
       name       moi
     home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/name:
       cmd       
       name       name
     home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/rssi:
       cmd       
       name       rssi
     home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/servicedata:
       cmd       
       name       servicedata
     home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/servicedatauuid:
       cmd       
       name       servicedatauuid
     home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/tem:
       cmd       
       name       tem
Attributes:
   DbLogInclude fer,lux,moi,tem
   IODev      MQTT_Broker
   autoSubscribeReadings home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/+
   room       XiaomiBTLESens
   subscribeReading_distance home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/distance
   subscribeReading_fer home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/fer
   subscribeReading_id home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/id
   subscribeReading_lux home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/lux
   subscribeReading_moi home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/moi
   subscribeReading_name home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/name
   subscribeReading_rssi home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/rssi
   subscribeReading_servicedata home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/servicedata
   subscribeReading_servicedatauuid home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/servicedatauuid
   subscribeReading_tem home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/tem
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

Steffen

Zitat von: ext23 am 19 August 2019, 21:14:49
Bei mir sieht es so aus wobei die readings teilweise automatisch erstellt wurden.

Internals:
   FUUID      5d38add0-f33f-2323-49e2-4abaf93a5ec59c99
   IODev      MQTT_Broker
   NAME       MQTT_FlowerCare01
   NR         2479
   STATE      ???
   TYPE       MQTT_DEVICE
   Helper:
     DBLOG:
       fer:
         logdb:
           TIME       1566241468.90534
           VALUE      258.0
       lux:
         logdb:
           TIME       1566240848.68823
           VALUE      244.0
       moi:
         logdb:
           TIME       1566241778.76539
           VALUE      31.0
       tem:
         logdb:
           TIME       1566241160.74381
           VALUE      24.9
   READINGS:
     2019-08-19 21:09:38   distance        8.7
     2019-08-19 21:04:28   fer             258.0
     2019-08-19 21:09:38   id              c4:7c:8d:66:63:db
     2019-08-19 20:54:08   lux             244.0
     2019-08-19 21:09:38   moi             31.0
     2019-08-11 17:12:56   name            Flower care
     2019-08-19 21:09:38   rssi            -79
     2019-08-19 21:09:38   servicedata     71209800e2db63668d7cc40d0810011f
     2019-08-19 21:09:38   servicedatauuid 0000fe95-0000-1000-8000-00805f9b34fb
     2019-08-19 20:59:20   tem             24.9
     2019-08-19 21:09:38   transmission-state incoming publish received
   message_ids:
   sets:
   subscribe:
     home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/+
     home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/distance
     home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/fer
     home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/id
     home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/lux
     home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/moi
     home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/name
     home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/rssi
     home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/servicedata
     home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/servicedatauuid
     home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/tem
   subscribeExpr:
     ^home\/OpenMQTTGateway\/BTtoMQTT\/C47C8D6663DB\/([^/]+)$
     ^home\/OpenMQTTGateway\/BTtoMQTT\/C47C8D6663DB\/distance$
     ^home\/OpenMQTTGateway\/BTtoMQTT\/C47C8D6663DB\/fer$
     ^home\/OpenMQTTGateway\/BTtoMQTT\/C47C8D6663DB\/id$
     ^home\/OpenMQTTGateway\/BTtoMQTT\/C47C8D6663DB\/lux$
     ^home\/OpenMQTTGateway\/BTtoMQTT\/C47C8D6663DB\/moi$
     ^home\/OpenMQTTGateway\/BTtoMQTT\/C47C8D6663DB\/name$
     ^home\/OpenMQTTGateway\/BTtoMQTT\/C47C8D6663DB\/rssi$
     ^home\/OpenMQTTGateway\/BTtoMQTT\/C47C8D6663DB\/servicedata$
     ^home\/OpenMQTTGateway\/BTtoMQTT\/C47C8D6663DB\/servicedatauuid$
     ^home\/OpenMQTTGateway\/BTtoMQTT\/C47C8D6663DB\/tem$
   subscribeQos:
     home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/+
     home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/distance 0
     home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/fer 0
     home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/id 0
     home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/lux 0
     home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/moi 0
     home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/name 0
     home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/rssi 0
     home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/servicedata 0
     home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/servicedatauuid 0
     home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/tem 0
   subscribeReadings:
     home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/distance:
       cmd       
       name       distance
     home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/fer:
       cmd       
       name       fer
     home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/id:
       cmd       
       name       id
     home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/lux:
       cmd       
       name       lux
     home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/moi:
       cmd       
       name       moi
     home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/name:
       cmd       
       name       name
     home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/rssi:
       cmd       
       name       rssi
     home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/servicedata:
       cmd       
       name       servicedata
     home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/servicedatauuid:
       cmd       
       name       servicedatauuid
     home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/tem:
       cmd       
       name       tem
Attributes:
   DbLogInclude fer,lux,moi,tem
   IODev      MQTT_Broker
   autoSubscribeReadings home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/+
   room       XiaomiBTLESens
   subscribeReading_distance home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/distance
   subscribeReading_fer home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/fer
   subscribeReading_id home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/id
   subscribeReading_lux home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/lux
   subscribeReading_moi home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/moi
   subscribeReading_name home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/name
   subscribeReading_rssi home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/rssi
   subscribeReading_servicedata home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/servicedata
   subscribeReading_servicedatauuid home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/servicedatauuid
   subscribeReading_tem home/OpenMQTTGateway/BTtoMQTT/C47C8D6663DB/tem


Hallo,

Ich versuche nun schon seit Stunden aber komme nicht weiter,
könntest du mir kurz beschreiben wie du vorgegangen bist???

Mfg Steffen