Home Assistant & BLE Proxy

c’est exactement ça :wink: c’est dommage de ne pas profité de mes ESP32 (4 en tout) qui serait en BLE Proxy et ça couvrirait mon jardin… mais j’ai pas encore trouvé comment faire ça justement (et tester la fiabilité tu as raison !)

Bonjour,
j’essaye d’activer la led du ATOM lite avec ESPHOME BLE Proxy, mais j’ai une erreur de plateforme pas supporter.

mon yaml:

substitutions:
  name: atom-bluetooth-proxy-ad7a6c
packages:
  esphome.bluetooth-proxy: github://esphome/bluetooth-proxies/m5stack-atom-lite.yaml@main
esphome:
  name: ${name}
  name_add_mac_suffix: false
api:
  encryption:
    key: in4/0FfpPMdp8sPDbjj5aChezJ8BLAmGQpRlq6e2u1k=


wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

sensor:
  - platform: wifi_signal
    name: "WiFi Signal dB"
    id: wifi_signal_db
    update_interval: 60s
    entity_category: "diagnostic"

  - platform: copy
    source_id: wifi_signal_db
    name: "WiFi Signal Percent"
    filters:
      - lambda: return min(max(2 * (x + 100.0), 0.0), 100.0);
    unit_of_measurement: "Signal %"
    entity_category: "diagnostic"

  - platform: uptime
    name: "BLE Proxy Uptime"

  - platform: internal_temperature
    name: "Internal Temperature"

switch:
  - platform: restart
    name: "BLE Proxy Restart"

binary_sensor:
  - platform: status
    name: "BLE Proxy Statut"

Si je passe par fastled_clockless:

light:
  - platform: fastled_clockless
    chipset: WS2812B
    pin: 27
    num_leds: 1
    rgb_order: GRB
    id: status_led
    name: BLE Proxy Light
    effects:
      - random:
      - flicker:
      - addressable_rainbow:

Si je passe par neopixelbus:

light:
  - platform: neopixelbus
    type: GRB
    variant: SK6812
    pin: 27
    num_leds: 1
    id: status_led
    internal: true

neopixelbus

Quel plateforme serais compatible avec esp-idf pour exploiter la led du atom lite ?

Tu as oublié

esp32:
  board: esp32dev
  framework:
    type: arduino

Jai pas oublier. C’est dans package, le yaml du github.
esp32:
board: m5stack-atom
framework:
type: esp-idf

J’ai déjà compiler de c’est façon mais sans ajouter la led.

Faudrait que je prenne le yaml du github et mettre ton exemple et reflash ?

Je ne suis pas un grand spécialiste espHome, mais voici ma conf :

esphome:
  name: "atom-lite"

esp32:
  board: esp32dev
  framework:
    type: arduino

logger:

api:
  encryption:
    key: "TWjMPdfgdfgdfg7suQLo+Dv94="

ota:
  password: "ad2a07dfgdfg5722a6b52976ed3"

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

  ap:
    ssid: "Stack Fallback Hotspot"
    password: "V8z0WHzFiKe6"

captive_portal:

web_server:

dashboard_import:
  package_import_url: github://esphome/bluetooth-proxies/m5stack-atom-lite.yaml@main

esp32_ble_tracker:
  scan_parameters:
    interval: 1100ms
    window: 1100ms
    active: true

bluetooth_proxy:

button:
- platform: safe_mode
  name: Safe Mode Boot
  entity_category: diagnostic

light:
  - platform: fastled_clockless
    chipset: WS2812B
    pin: 27
    num_leds: 1
    rgb_order: GRB
    id: status_led
    name: Stack Light
    effects:
      - random:
      - flicker:
      - addressable_rainbow:  

sensor:
  - platform: uptime
    name: "ESP (Uptime en seconde)"
    id: uptime_en_seconde
1 « J'aime »

j’ai juste ajouter :

esp32:
  board: esp32dev
  framework:
    type: arduino

et

light:
  - platform: fastled_clockless
    chipset: WS2812B
    pin: 27
    num_leds: 1
    rgb_order: GRB
    id: status_led
    name: Stack Light
    effects:
      - random:
      - flicker:
      - addressable_rainbow:

a ma config .YAML et tester la validiter et c’est passer :slight_smile:
je viens de comprendre que ce qui est ecrit dans le config.yaml ( du atom lite ) , ecrase les données récuperer sur le yaml du github.
Pas facile a comprendre ESPHOME pour un gros débutant.

je vais compiler et voir le résultat…

Edit:
Compilation et flash OK :+1:

voici ma config final:

substitutions:
  name: atom-bluetooth-proxy-ad7a6c
packages:
  esphome.bluetooth-proxy: github://esphome/bluetooth-proxies/m5stack-atom-lite.yaml@main
esphome:
  name: ${name}
  name_add_mac_suffix: false
esp32:
  board: esp32dev
  framework:
    type: arduino
api:
  encryption:
    key: in4/0FfpPMdp8sPDbjj5aChezJ8BLAmGQpRlq6e2u1k=


wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

sensor:
  - platform: wifi_signal
    name: "WiFi Signal dB"
    id: wifi_signal_db
    update_interval: 60s
    entity_category: "diagnostic"

  - platform: copy
    source_id: wifi_signal_db
    name: "WiFi Signal Percent"
    filters:
      - lambda: return min(max(2 * (x + 100.0), 0.0), 100.0);
    unit_of_measurement: "Signal %"
    entity_category: "diagnostic"

  - platform: uptime
    name: "BLE Proxy Uptime"

  - platform: internal_temperature
    name: "Internal Temperature"

switch:
  - platform: restart
    name: "BLE Proxy Restart"

binary_sensor:
  - platform: status
    name: "BLE Proxy Statut"

light:
  - platform: fastled_clockless
    chipset: WS2812B
    pin: 27
    num_leds: 1
    rgb_order: GRB
    id: status_led
    name: Stack Light
    effects:
      - random:
      - flicker:
      - addressable_rainbow:

@mycanaletto je suis a 90% du flash , ca craint pas ?

RAM:   [==        ]  16.1% (used 52748 bytes from 327680 bytes)
Flash: [========= ]  89.5% (used 1642617 bytes from 1835008 bytes)
1 « J'aime »

Tant que tu ne dépasse pas, mais si tu dépasse tu ne pourras pas flasher simplement…

Ok, merci du coup de main.

Bonjour,
j’ai eu des soucis de stabilité avec le framework arduino et ESPHOME 2023.3.0. J’ai reflasher avec le framework ESP-IDF et supprimer la led comme elle est pas supporter par esp-idf. Depuis c’est stable, plus de déconnection.

de plus ca prend moins de place dans le flash:

RAM:   [==        ]  16.4% (used 53848 bytes from 327680 bytes)
Flash: [=======   ]  70.6% (used 1295561 bytes from 1835008 bytes)

Interet de esp-idf ?

Chez pas vraiment, pas bien compris l’explication. De mon côté j’ai plus l’atom lite qui redémarre par esp-idf, il est stable.
Pour le Bluetooth proxy, c’est le framework utiliser par défaut (dans le yaml du github), doit y avoir un intérêt.

J’ai un M5Stack lite qui a lâché sans crier gare suite a test !
Impossible de flasher à nouveau
Sont ils suffisamment robuste pour cette usage !?

Salut, tu le flash comment ?
Par OTA ou par câble ?
Quel est la machine pour compiler et flasher ?
Quel erreur tu as pendant la compilation ou le flash ?

Alors initialement je l’ai flasher via chrome sur machine classic windows
Puis mise à jour OTA

Impossible de faire le flash ensuite via ESPhome Flasher via câble
Et quand on met le câble il est froid il ne chauffe plus (chauffe normal et classic)
j’ai plus d’allumage de la LED verte etc…

Aucune erreur : plus de vie visible (moins d’un an de fonctionnement ESPHome et Proxy BT ensuite)

J’ai pas fait attention que la led s’allume quand tu le branche en USB.
Si ca chauffe pas, ca sens pas bon je pense.
J’ai remarquer qu’avec le framework arduino ca chauffer plus ( 2-3 degreès de plus ) qu’avec le framework esp-idf.

Niveau durée de vie chez pas, ca fait 2 mois que j’utilise le mien.

Si tu touche un ESP32 tu sens que ça chauffe un peu quand c’est branché c’est la puce qui bosse :slight_smile:
C’est pas la T° d’ujn PI4 non plus :rofl:

1 « J'aime »

Salut,
J’ai acheter un atom matrix et j’ai installer WLED dessus. Comme je t’en parler je chercher une led ou quelque chose pour met HP/HC et avec la derniere version de WLED on peu afficher du texte.

j’ai vu qu’on peu aficher des états, faut que je le mette en place.

Edit:
Maj avec tarif en cours, conso instantané et coût du jour. Couleur rouge en HP et vert en HC :stuck_out_tongue:

1 « J'aime »

Deux choses :

  • Un composant pour les sondes qui ne sont pas reconnues de base.
  • Et un constat, beaucoup d’ESP en WIFI donnent des résultats parfois aléatoires. Dans tous mes tests les résultat le plus fiable et constant est celui obtenu avec un ESP Olimex en Ethernet (POE), et avec son antenne externe il couvre toute la maison, terrasse et jardin compris.
  • Eviter + de 3 proxy (attention avec les Shelly qui jouent ce role.

Bonjour WarC0zes
C’est un très bon travail ce qui m’a permis de bien avancé. Merci.
Abuserai je en te demandant le code de ta carte pour l’ATIM Lite?
Cordialement,
Gérard

Pas de soucis, je te fais ça quand je serais devant le pc.

Edit:
Voile le code de ma carte ( elle a un peu changer depuis ).

code:

type: custom:stack-in-card
mode: vertical
keep:
  box_shadow: true
  margin: false
  border_radius: false
  background: true
  outer_padding: false
cards:
  - type: picture
    image: /local/images/ble proxy.png
    card_mod:
      style: |
        ha-card {
          border-radius: 0px;
        }
  - type: custom:tabbed-card
    styles:
      '--mdc-theme-primary': '#44739e'
      '--mdc-tab-text-label-color-default': gray
    tabs:
      - card:
          type: entities
          entities:
            - entity: device_tracker.atom_bluetooth_proxy_ad7a6c
              type: custom:multiple-entity-row
              name: ATOM Lite BLE Proxy IP
              icon: mdi:ip
              show_state: false
              entities:
                - entity: device_tracker.atom_bluetooth_proxy_ad7a6c
                  name: ' '
                  attribute: ip
            - entity: sensor.bluetooth_proxy_uptime_readable
              type: custom:multiple-entity-row
              name: Statut
              icon: mdi:web-clock
              show_state: false
              entities:
                - entity: sensor.bluetooth_proxy_statut_count
                  name: Offline
                - entity: binary_sensor.bluetooth_proxy_ble_proxy_statut
                  name: Statut
                - entity: sensor.bluetooth_proxy_uptime_readable
                  name: Uptime
            - entity: sensor.bluetooth_proxy_internal_temperature
              type: custom:multiple-entity-row
              name: Internal Température
              show_state: false
              entities:
                - entity: sensor.bluetooth_proxy_internal_temperature
                  name: Temp
            - entity: sensor.bluetooth_proxy_wifi_signal
              type: custom:multiple-entity-row
              name: WiFi Signal
              icon: fas:wifi
              show_state: false
              entities:
                - entity: sensor.bluetooth_proxy_wifi_signal
                  name: dB
                - entity: sensor.bluetooth_proxy_wifi_signal_percent
                  name: Pourcent
                  unit: '%'
            - entity: switch.bluetooth_proxy_ble_proxy_restart
              type: custom:multiple-entity-row
              name: BLE Proxy Restart
              icon: phu:esphome
              show_state: true
              toggle: true
          state_color: true
          show_header_toggle: false
          card_mod:
            style: |
              .card-content div {
                margin-top: -3px !important;
                margin-left: -10px !important;
                margin-bottom: 2.3px  !important;
              }
              :host {
                font-size: 15px;
              }
              ha-card {
                box-shadow: none;
              }
        attributes:
          label: ATOM L BLE Proxy
          icon: phu:esphome
          minWidth: true
          isMinWidthIndicator: true
      - card:
          type: entities
          entities:
            - entity: device_tracker.atom_bluetooth_proxy
              type: custom:multiple-entity-row
              name: ATOM Lite BLE Proxy 2 IP
              icon: mdi:ip
              show_state: false
              entities:
                - entity: device_tracker.atom_bluetooth_proxy
                  name: ' '
                  attribute: ip
            - entity: sensor.bluetooth_proxy_854638_uptime_readable
              type: custom:multiple-entity-row
              name: Statut
              icon: mdi:web-clock
              show_state: false
              entities:
                - entity: sensor.bluetooth_proxy_854638_statut_count
                  name: Offline
                - entity: binary_sensor.bluetooth_proxy_854638_ble_proxy_statut
                  name: Statut
                - entity: sensor.bluetooth_proxy_854638_uptime_readable
                  name: Uptime
            - entity: sensor.bluetooth_proxy_854638_internal_temperature
              type: custom:multiple-entity-row
              name: Internal Température
              show_state: false
              entities:
                - entity: sensor.bluetooth_proxy_854638_internal_temperature
                  name: Temp
            - entity: sensor.bluetooth_proxy_854638_wifi_signal_db
              type: custom:multiple-entity-row
              name: WiFi Signal
              icon: fas:wifi
              show_state: false
              entities:
                - entity: sensor.bluetooth_proxy_854638_wifi_signal_db
                  name: dB
                - entity: sensor.bluetooth_proxy_854638_wifi_signal_percent
                  name: Pourcent
                  unit: '%'
            - entity: switch.bluetooth_proxy_854638_ble_proxy_restart
              type: custom:multiple-entity-row
              name: BLE Proxy Restart
              icon: phu:esphome
              show_state: true
              toggle: true
          state_color: true
          show_header_toggle: false
          card_mod:
            style: |
              .card-content div {
                margin-top: -3px !important;
                margin-left: -10px !important;
                margin-bottom: 2.3px  !important;
              }
              :host {
                font-size: 15px;
              }
              ha-card {
                box-shadow: none;
              }
        attributes:
          label: ATOM L BLE Proxy 2
          icon: phu:esphome
          minWidth: true
          isMinWidthIndicator: true
  - type: custom:flex-table-card
    clickable: true
    entities:
      include:
        - sensor.temperature_humidity_sensor_exterieur_av_signal_strength
        - sensor.lywsd03mmc_c948_signal_strength
        - sensor.temperature_humidity_sensor_sejour_signal_strength
        - sensor.lywsd03mmc_cc28_signal_strength
        - sensor.lywsd03mmc_0dcd_signal_strength
        - sensor.lywsd03mmc_0fec_signal_strength
        - sensor.lywsd03mmc_2a3a_signal_strength
        - sensor.lywsd03mmc_e5f5_signal_strength
        - sensor.lywsd03mmc_0d20_signal_strength
        - sensor.lywsd03mmc_0945_signal_strength
        - sensor.atc_67c6_signal_strength
        - sensor.plant_sensor_6b00_signal_strength
        - sensor.plant_sensor_5ea2_signal_strength
        - sensor.plant_sensor_5902_signal_strength
        - sensor.plant_sensor_bd00_signal_strength
        - sensor.plant_sensor_bd44_signal_strength
        - sensor.plant_sensor_bf78_signal_strength
    sort_by: state-
    columns:
      - data: friendly_name
        name: ' Thermomètre Bluetooth'
        icon: phu:xiaomi-logo
        modify: x.replace(/Signal Strength/,"")
        align: left
      - data: state
        name: Signal dB
        icon: mdi:bluetooth
        align: center
    css:
      tbody td: 'border-radius: 6px !important'
      tbody tr:nth-child(1): 'color: green'
      tbody tr:nth-child(17): 'color: red'
      tbody tr: 'background-color: #222 !important'
      thead th:nth-child(1): >-
        color: rgb(68, 115, 158); border: 1px solid; border-radius: 5px
        !important; text-align: left !important;
      thead th:nth-child(2): >-
        color: rgb(68, 115, 158); border: 1px solid; border-radius: 5px
        !important;
    card_mod:
      style: |
        :host {
          --card-mod-icon-color: #44739e;
          font-size: 14px;
        }
        ha-card {
          margin: -30px -5px -5px -5px;
          background: transparent;
        }
card_mod:
  style: |
    ha-card {
      box-shadow: 0 0 0 1px gray;
    }

Image:
ble proxy

1 « J'aime »