Switchbot Bluetooth Integration

hallo miteinander, neues Jahr, neue Probleme :stuck_out_tongue_winking_eye:

ich habe nun den luftbefeuchter von switchbot hier stehen, diesen möchte ich via bluetooth ins home assistant integrieren. allerdings wird das gerät einfach nicht gefunden, egal ob ich es per esphome proxy oder mittels eines usb dongle direkt am host versuche.

folgende meldung erhalte immer
Keine unterstützten SwitchBot-Geräte in Reichweite gefunden; Wenn das Gerät in Reichweite ist, stelle sicher, dass der Scanner aktives Scannen aktiviert hat, da SwitchBot-Geräte nicht mit passiven Scans erkannt werden können. Aktive Scans können deaktiviert werden, sobald das Gerät konfiguriert ist. Wenn du wissen möchtest, ob sich das Gerät in Reichweite befindet, lade die Diagnose für die Integration herunter, die deinen Bluetooth-Adapter oder Proxy bereitstellt, und prüfe, ob die MAC-Adresse des SwitchBot-Geräts vorhanden ist.

versucht habe ich es zuletzt hiermit

unteranderem auch mit einem einfachen esphome sketch, wie diesen.

esphome:
  name: bluetooth-proxy-wohnzimmer
  friendly_name: Bluetooth Proxy Wohnzimmer

esp32:
  board: wemos_d1_mini32
  #board: esp32dev
  framework:
    type: esp-idf

# Enable logging
logger:

# Enable Home Assistant API
api:

# Enable Web server
web_server:
  port: 80

ota:
  platform: esphome

wifi:
  ssid: "Fritz!Box 7590"
  password: "3826995"
  output_power: 20dB
  #use_address: 192.168.178.55
  manual_ip:
   static_ip: 192.168.178.103
   gateway: 192.168.178.1
   subnet: 255.255.255.0


bluetooth_proxy:
  active: True

esp32_ble_tracker:
  scan_parameters:
    active: True

im diagnosebericht vom proxy ist das gerät anhand der mac adresse vorzufinden
D8:13:2A:72:2F:3A

laut HA doku soll dieses gerät auch unterstützt werden

aus gutem grund versuche ich das ble funkprotokoll zu meiden :face_with_spiral_eyes:

hat wer ne ahnung was ich noch versuchen könnte?
Wie man hier Dateien hochlädt, außer Bilder, habe ich am Handy nun nicht finden können.

{
  "home_assistant": {
    "installation_type": "Home Assistant OS",
    "version": "2024.12.5",
    "dev": false,
    "hassio": true,
    "virtualenv": false,
    "python_version": "3.13.0",
    "docker": true,
    "arch": "x86_64",
    "timezone": "Europe/Berlin",
    "os_name": "Linux",
    "os_version": "6.6.66-haos",
    "supervisor": "2024.12.0",
    "host_os": "Home Assistant OS 14.1",
    "docker_version": "27.2.0",
    "chassis": "vm",
    "run_as_root": true
  },
  "custom_components": {
    "moonraker": {
      "documentation": "https://moonraker-home-assistant.readthedocs.io/en/latest/",
      "version": "1.5.1",
      "requirements": [
        "moonraker-api==2.0.6"
      ]
    },
    "spook_inverse": {
      "documentation": "https://spook.boo",
      "version": "3.1.0",
      "requirements": []
    },
    "webrtc": {
      "documentation": "https://github.com/AlexxIT/WebRTC",
      "version": "v3.6.0",
      "requirements": []
    },
    "cupertino": {
      "documentation": "https://github.com/menahishayan/HomeAssistant-Cupertino-Icons",
      "version": "3.0.2",
      "requirements": []
    },
    "versatile_thermostat": {
      "documentation": "https://github.com/jmcollin78/versatile_thermostat",
      "version": "6.8.4",
      "requirements": []
    },
    "alarmo": {
      "documentation": "https://github.com/nielsfaber/alarmo",
      "version": "v1.10.7",
      "requirements": []
    },
    "frigate": {
      "documentation": "https://github.com/blakeblackshear/frigate",
      "version": "5.6.0",
      "requirements": [
        "hass-web-proxy-lib==0.0.7"
      ]
    },
    "scheduler": {
      "documentation": "https://github.com/nielsfaber/scheduler-component",
      "version": "v0.0.0",
      "requirements": []
    },
    "waste_collection_schedule": {
      "documentation": "https://github.com/mampfes/hacs_waste_collection_schedule#readme",
      "version": "2.5.0",
      "requirements": [
        "icalendar",
        "recurring_ical_events",
        "icalevents>=0.1.26,!=0.1.28",
        "beautifulsoup4",
        "lxml",
        "pycryptodome"
      ]
    },
    "spook": {
      "documentation": "https://spook.boo",
      "version": "3.1.0",
      "requirements": []
    },
    "better_thermostat": {
      "documentation": "https://github.com/KartoffelToby/better_thermostat",
      "version": "1.6.1",
      "requirements": []
    },
    "hacs": {
      "documentation": "https://hacs.xyz/docs/configuration/start",
      "version": "2.0.1",
      "requirements": [
        "aiogithubapi>=22.10.1"
      ]
    },
    "cupra_we_connect": {
      "documentation": "https://github.com/daernsinstantfortress/cupra_we_connect",
      "version": "0.8.4",
      "requirements": [
        "weconnect-cupra-daern==0.50.13",
        "ascii_magic==2.1.1"
      ]
    },
    "climate_group": {
      "documentation": "https://github.com/bjrnptrsn/climate_group",
      "version": "1.0.7",
      "requirements": []
    }
  },
  "integration_manifest": {
    "domain": "esphome",
    "name": "ESPHome",
    "after_dependencies": [
      "zeroconf",
      "tag"
    ],
    "codeowners": [
      "OttoWinter",
      "jesserockz",
      "kbx81",
      "bdraco"
    ],
    "config_flow": true,
    "dependencies": [
      "assist_pipeline",
      "bluetooth",
      "intent",
      "ffmpeg",
      "http"
    ],
    "dhcp": [
      {
        "registered_devices": true
      }
    ],
    "documentation": "https://www.home-assistant.io/integrations/esphome",
    "integration_type": "device",
    "iot_class": "local_push",
    "loggers": [
      "aioesphomeapi",
      "noiseprotocol",
      "bleak_esphome"
    ],
    "mqtt": [
      "esphome/discover/#"
    ],
    "requirements": [
      "aioesphomeapi==28.0.0",
      "esphome-dashboard-api==1.2.3",
      "bleak-esphome==1.1.0"
    ],
    "zeroconf": [
      "_esphomelib._tcp.local."
    ],
    "is_built_in": true,
    "overwrites_built_in": false
  },
  "setup_times": {
    "null": {
      "setup": 0.026823660999070853
    },
    "039333cbbe08e71317c831b271909278": {
      "wait_import_platforms": -6.43666199099971,
      "config_entry_setup": 6.500841905013658
    },
    "d340a170c5ff6689206da59b020c4384": {
      "wait_import_platforms": -6.424592353985645,
      "config_entry_setup": 6.506522974988911
    },
    "afd0c6bacaada5f4fed37a206911bc65": {
      "wait_import_platforms": -6.41183799499413,
      "config_entry_setup": 6.583978597016539
    },
    "b1cee60028f8688d209fb375475e87a4": {
      "wait_import_platforms": -6.411232837999705,
      "config_entry_setup": 6.657546945963986
    },
    "01J4QAGAE9KWZ2XJVE1AXGXVKV": {
      "wait_import_platforms": -6.392169503029436,
      "config_entry_setup": 6.653374987014104
    },
    "f6b6139a06e326dba5f375ae2a901400": {
      "wait_import_platforms": -6.4409811469959095,
      "config_entry_setup": 6.674919384007808
    },
    "74b237c8e6e24f057d29e1b7c01d6581": {
      "wait_import_platforms": -6.443878196994774,
      "config_entry_setup": 6.686782759032212
    },
    "b1d827570432ef0fea06dda7ab002df3": {
      "wait_import_platforms": -6.441819611005485,
      "config_entry_setup": 6.748730916006025
    },
    "b0c61265e258a5bee397a154879a1523": {
      "wait_import_platforms": -6.442384144000243,
      "config_entry_setup": 6.767493357008789
    },
    "9e2e6c2b68dd49d8a205c962d9b962c3": {
      "wait_import_platforms": -6.428668992011808,
      "config_entry_setup": 6.835714184970129
    },
    "5350f2854fdcbecdc85928f294e66f26": {
      "wait_import_platforms": -6.429735595011152,
      "config_entry_setup": 6.902277159970254
    },
    "c188f56276e1132315f26afd817db2c1": {
      "wait_import_platforms": -6.4239545200252905,
      "config_entry_setup": 6.944976477010641
    },
    "edb3895f3d58e88fa809d534d8dff13a": {
      "wait_import_platforms": -6.422174456994981,
      "config_entry_setup": 7.016438004968222
    },
    "014e68204ed8b500fbb9d3334b42802d": {
      "wait_import_platforms": -6.4054356990382075,
      "config_entry_setup": 7.104814068006817
    },
    "2d0d3f0c7b2a5f259082e50582d9da9a": {
      "wait_import_platforms": -6.405570190981962,
      "config_entry_setup": 7.134735004976392
    },
    "01JCEB89VS6H62B1TVV58F0HDV": {
      "wait_import_platforms": -6.395885634003207,
      "config_entry_setup": 7.1480961429770105
    },
    "01JFDSE9CWQFWTZWGEWRC6C2XY": {
      "wait_import_platforms": -6.39015949901659,
      "config_entry_setup": 7.174648464017082
    },
    "a813ed527f091d8968734e3035d6ce73": {
      "wait_import_platforms": -6.4456882199738175,
      "config_entry_setup": 6.531137318990659
    },
    "1eed8594cf4a98dfb9a7c2ada9e4c4cd": {
      "wait_import_platforms": -6.461374135978986,
      "config_entry_setup": 6.565443096042145
    }
  },
  "data": {
    "config": {
      "created_at": "2024-12-31T22:56:37.939207+00:00",
      "data": {
        "host": "192.168.178.103",
        "port": 6053,
        "password": "",
        "noise_psk": "",
        "device_name": "bluetooth-proxy-wohnzimmer"
      },
      "discovery_keys": {
        "zeroconf": [
          {
            "__type": "<class 'homeassistant.helpers.discovery_flow.DiscoveryKey'>",
            "repr": "DiscoveryKey(domain='zeroconf', key=('_esphomelib._tcp.local.', 'bluetooth-proxy-wohnzimmer._esphomelib._tcp.local.'), version=1)"
          }
        ],
        "dhcp": [
          {
            "__type": "<class 'homeassistant.helpers.discovery_flow.DiscoveryKey'>",
            "repr": "DiscoveryKey(domain='dhcp', key='08a6f7b11bf8', version=1)"
          }
        ]
      },
      "disabled_by": null,
      "domain": "esphome",
      "entry_id": "01JGFEYY1KSPR1RN9J2ZRVEZ3B",
      "minor_version": 1,
      "modified_at": "2024-12-31T23:01:53.650416+00:00",
      "options": {
        "allow_service_calls": false
      },
      "pref_disable_new_entities": false,
      "pref_disable_polling": false,
      "source": "zeroconf",
      "title": "Bluetooth Proxy Wohnzimmer",
      "unique_id": "08:a6:f7:b1:1b:f8",
      "version": 1
    },
    "storage_data": {
      "device_info": {
        "uses_password": false,
        "name": "bluetooth-proxy-wohnzimmer",
        "friendly_name": "Bluetooth Proxy Wohnzimmer",
        "mac_address": "**REDACTED**",
        "compilation_time": "Dec 31 2024, 23:54:34",
        "model": "wemos_d1_mini32",
        "manufacturer": "Espressif",
        "has_deep_sleep": false,
        "esphome_version": "2024.12.2",
        "project_name": "",
        "project_version": "",
        "webserver_port": 80,
        "legacy_voice_assistant_version": 0,
        "voice_assistant_feature_flags": 0,
        "legacy_bluetooth_proxy_version": 5,
        "bluetooth_proxy_feature_flags": 63,
        "suggested_area": ""
      },
      "services": [],
      "api_version": {
        "major": 1,
        "minor": 10
      },
      "update": []
    },
    "bluetooth": {
      "connections_free": 3,
      "connections_limit": 3,
      "available": true,
      "scanner": {
        "name": "bluetooth-proxy-wohnzimmer (08:A6:F7:B1:1B:F8)",
        "start_time": 912369.377809682,
        "source": "08:A6:F7:B1:1B:F8",
        "scanning": true,
        "type": "ESPHomeScanner",
        "last_detection": 968116.243941272,
        "monotonic_time": 968116.244941266,
        "discovered_devices_and_advertisement_data": [
          {
            "name": "[TV] Samsung 8 Series (55)",
            "address": "28:39:5E:32:E0:30",
            "rssi": -84,
            "advertisement_data": [
              "[TV] Samsung 8 Series (55)",
              {
                "117": {
                  "__type": "<class 'bytes'>",
                  "repr": "b'B\\x04\\x01\\x01~(9^2\\xe00*9^2\\xe0/\\x01\\x00\\x00\\x00\\x00\\x00\\x00'"
                }
              },
              {},
              [],
              -127,
              -84,
              []
            ],
            "details": {
              "source": "08:A6:F7:B1:1B:F8",
              "address_type": 0
            }
          },
          {
            "name": null,
            "address": "D8:13:2A:72:2F:3A",
            "rssi": -48,
            "advertisement_data": [
              null,
              {
                "2409": {
                  "__type": "<class 'bytes'>",
                  "repr": "b'\\xd8\\x13*r/:\\x03\\x84\\x80\\x7f\\xff\\xf1\\x10\\x00\\x00\\x00<'"
                }
              },
              {
                "0000fd3d-0000-1000-8000-00805f9b34fb": {
                  "__type": "<class 'bytes'>",
                  "repr": "b'#\\x00\\x00\\x03\\x05\\x00'"
                }
              },
              [],
              -127,
              -48,
              []
            ],
            "details": {
              "source": "08:A6:F7:B1:1B:F8",
              "address_type": 0
            }
          },
          {
            "name": "Nuki_409D7DFC",
            "address": "54:D2:72:9D:7D:FC",
            "rssi": -86,
            "advertisement_data": [
              "Nuki_409D7DFC",
              {
                "76": {
                  "__type": "<class 'bytes'>",
                  "repr": "b'\\x02\\x15\\xa9.\\xe2\\x00U\\x01\\x11\\xe4\\x91l\\x08\\x00 \\x0c\\x9af@\\x9d}\\xfc\\xc8'"
                }
              },
              {},
              [],
              -127,
              -86,
              []
            ],
            "details": {
              "source": "08:A6:F7:B1:1B:F8",
              "address_type": 0
            }
          },
          {
            "name": "HUAWEI WATCH FIT-C19",
            "address": "18:D9:8F:CE:7C:19",
            "rssi": -87,
            "advertisement_data": [
              "HUAWEI WATCH FIT-C19",
              {
                "637": {
                  "__type": "<class 'bytes'>",
                  "repr": "b'\\x01\\x03\\x00L2'"
                }
              },
              {
                "00003802-0000-1000-8000-00805f9b34fb": {
                  "__type": "<class 'bytes'>",
                  "repr": "b'\\x18\\xd9\\x8f\\xce|\\x19'"
                }
              },
              [],
              -127,
              -87,
              []
            ],
            "details": {
              "source": "08:A6:F7:B1:1B:F8",
              "address_type": 0
            }
          },
          {
            "name": "BCM4350C0 UART 37.4 MHz",
            "address": "18:B4:30:EC:16:23",
            "rssi": -84,
            "advertisement_data": [
              "BCM4350C0 UART 37.4 MHz",
              {},
              {
                "0000feaf-0000-1000-8000-00805f9b34fb": {
                  "__type": "<class 'bytes'>",
                  "repr": "b'\\x10\\x01\\x00\\x02Z#\\x17\\x00#\\x16\\xec\\x00\\x000\\xb4\\x18\\x01'"
                }
              },
              [
                "0000feaf-0000-1000-8000-00805f9b34fb"
              ],
              -127,
              -84,
              []
            ],
            "details": {
              "source": "08:A6:F7:B1:1B:F8",
              "address_type": 1
            }
          },
          {
            "name": "Schlafzimmer",
            "address": "78:27:80:39:56:BE",
            "rssi": -98,
            "advertisement_data": [
              "Schlafzimmer",
              {},
              {
                "0000fea0-0000-1000-8000-00805f9b34fb": {
                  "__type": "<class 'bytes'>",
                  "repr": "b'\\x03\\xfa\\x8f\\xca}\\xdd#ync \\xdf\\xff\\xd5M'"
                }
              },
              [
                "0000fea0-0000-1000-8000-00805f9b34fb"
              ],
              -127,
              -98,
              []
            ],
            "details": {
              "source": "08:A6:F7:B1:1B:F8",
              "address_type": 1
            }
          },
          {
            "name": null,
            "address": "41:0C:2F:A2:1A:05",
            "rssi": -93,
            "advertisement_data": [
              null,
              {
                "76": {
                  "__type": "<class 'bytes'>",
                  "repr": "b'\\x10\\x06\\x02\\x1d\\xae\\x9b\\xd28'"
                }
              },
              {},
              [],
              17,
              -93,
              []
            ],
            "details": {
              "source": "08:A6:F7:B1:1B:F8",
              "address_type": 1
            }
          },
          {
            "name": null,
            "address": "4C:01:4B:4A:A7:CB",
            "rssi": -81,
            "advertisement_data": [
              null,
              {
                "76": {
                  "__type": "<class 'bytes'>",
                  "repr": "b'\\x01\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x80\\x00\\x00\\x00'"
                }
              },
              {},
              [],
              12,
              -81,
              []
            ],
            "details": {
              "source": "08:A6:F7:B1:1B:F8",
              "address_type": 1
            }
          },
          {
            "name": null,
            "address": "E0:48:24:21:B9:50",
            "rssi": -104,
            "advertisement_data": [
              null,
              {
                "135": {
                  "__type": "<class 'bytes'>",
                  "repr": "b'\\x10\\xdb'"
                }
              },
              {},
              [],
              -127,
              -104,
              []
            ],
            "details": {
              "source": "08:A6:F7:B1:1B:F8",
              "address_type": 0
            }
          },
          {
            "name": null,
            "address": "E6:BD:97:EC:D6:FA",
            "rssi": -81,
            "advertisement_data": [
              null,
              {
                "76": {
                  "__type": "<class 'bytes'>",
                  "repr": "b'\\x12\\x02\\x00\\x03'"
                }
              },
              {},
              [],
              -127,
              -81,
              []
            ],
            "details": {
              "source": "08:A6:F7:B1:1B:F8",
              "address_type": 1
            }
          },
          {
            "name": null,
            "address": "C7:DF:C1:5F:50:F7",
            "rssi": -88,
            "advertisement_data": [
              null,
              {
                "76": {
                  "__type": "<class 'bytes'>",
                  "repr": "b'\\x12\\x02\\x00\\x02'"
                }
              },
              {},
              [],
              -127,
              -88,
              []
            ],
            "details": {
              "source": "08:A6:F7:B1:1B:F8",
              "address_type": 1
            }
          },
          {
            "name": null,
            "address": "44:41:4E:FD:09:3C",
            "rssi": -92,
            "advertisement_data": [
              null,
              {
                "76": {
                  "__type": "<class 'bytes'>",
                  "repr": "b'\\x0c\\x0e\\x00\\x97 r\\xbe%T\\xc4\\ti\\xdb\\x9a\\xb2\\x9c\\x10\\x05&\\x1cI}\\xc8'"
                }
              },
              {},
              [],
              -127,
              -92,
              []
            ],
            "details": {
              "source": "08:A6:F7:B1:1B:F8",
              "address_type": 1
            }
          },
          {
            "name": null,
            "address": "D0:09:E5:68:1E:27",
            "rssi": -92,
            "advertisement_data": [
              null,
              {
                "76": {
                  "__type": "<class 'bytes'>",
                  "repr": "b'\\x12\\x02\\x00\\x01'"
                }
              },
              {},
              [],
              -127,
              -92,
              []
            ],
            "details": {
              "source": "08:A6:F7:B1:1B:F8",
              "address_type": 1
            }
          },
          {
            "name": null,
            "address": "49:9F:34:78:BB:79",
            "rssi": -90,
            "advertisement_data": [
              null,
              {
                "76": {
                  "__type": "<class 'bytes'>",
                  "repr": "b'\\x10\\x02\\x03\\x00'"
                }
              },
              {},
              [],
              17,
              -90,
              []
            ],
            "details": {
              "source": "08:A6:F7:B1:1B:F8",
              "address_type": 1
            }
          },
          {
            "name": "SHIELD",
            "address": "55:FC:69:C1:61:9A",
            "rssi": -99,
            "advertisement_data": [
              "SHIELD",
              {
                "65535": {
                  "__type": "<class 'bytes'>",
                  "repr": "b'19d12fa7c58e50ae'"
                }
              },
              {},
              [
                "00003456-0000-1000-8000-00805f9b34fb"
              ],
              -15,
              -99,
              []
            ],
            "details": {
              "source": "08:A6:F7:B1:1B:F8",
              "address_type": 1
            }
          },
          {
            "name": null,
            "address": "4C:AD:1D:85:33:4B",
            "rssi": -96,
            "advertisement_data": [
              null,
              {
                "224": {
                  "__type": "<class 'bytes'>",
                  "repr": "b'\\xb2\"\\xca>4F'"
                }
              },
              {
                "0000fe9f-0000-1000-8000-00805f9b34fb": {
                  "__type": "<class 'bytes'>",
                  "repr": "b'\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00\\x00'"
                }
              },
              [
                "0000fe9f-0000-1000-8000-00805f9b34fb"
              ],
              -127,
              -96,
              []
            ],
            "detai

Hi Felix,

frohes neues!

Du sprichst von dem kleinen Luftbefeuchter oder dem neuen, der auch über den S10 befüllt werden kann?

Moin, ja stimmt. Frohes neues wünsche ich allen :wink:

Ich habe das neue Modell worüber der S10 das Gerät befüllen kann.

Ich glaube über die Switchbot BLE Integration kannst nur den „alten“ Luftbefeuchter einbinden. Der nennt sich wohl in den Docs Humidifier

Der neue funkt wohl primär über WLAN und nennt sich Evaporative Humidifier

Denke da musst eher die Switchbot MQTT Integration nutzen.

Dann ist die Doku auch etwas verwirrend, denn wenn man die Namensnennung aus der Doku googlet, erscheint genau dieser befeuchter.

Aber gut, dein Tipp mit dem GitHub wird mir weiterhelfen :+1:

Vielen Dank