Logos de OpenHaystack y ESPHome

OpenHaystack en ESPHome

Lanzado el 23 jun 2022

Port de OpenHaystack como un componente de ESPHome. Compatible con todos los dispositivos con BLE de Espressif.

OpenHaystack es una aplicación que te permite crear tus propios accesorios que son rastreados por la red Find My network de Apple. Han hecho ingeniería inversa al protocolo de Apple y lo han documentado, un proyecto bastante impresionante.

Quería rastrear un scooter eléctrico mío en caso de que me lo robaran. Aunque la manera “oficial” de construir tus accesorios era “aceptable”, resulta ser bastante problemática y con varios problemas de compatibilidad en distintas placas de Espressif.

Así que lo porté como un componente de ESPHome, un software que ya utilizo para las necesidades de mis dispositivos embebidos.

¿Por qué ESPHome? ¿No es “para la casa”?

Estoy un poco obsesionado con mantener mis dispositivos IoT/Embebidos lo más actualizados posible (y, por supuesto, fuera de cualquier nube si es posible), así que ESPHome es una solución atractiva para mantener tus dispositivos actualizados con los frameworks de Arduino y Espressif. A través de ESPHome, puedo “actualizar” mi scooter cuando quiera.

¿Por qué no es este un componente oficial?

¡Lo intenté! Abrí Add support for OpenHaystack #3584, y su documentación de soporte, pero comprensiblemente no quisieron mezclarlo.

Ejemplo de ESPHome - ESP32

external_components:
  - source:
      type: git
      url: https://github.com/barrenechea/esphome-config-files
      ref: main
    components: [openhaystack]

esphome:
  name: openhaystack-demo

esp32:
  board: wemos_d1_mini32

wifi:
  ssid: <tu-ssid-wifi>
  password: <tu-contraseña-wifi>

# Habilitar logs
logger:

# Habilitar API de Home Assistant
api:

ota:
  password: !secret ota_password

openhaystack:
  # Aquí va la clave codificada en Base64 de OpenHaystack
  # Te sugiero encarecidamente que la manejes como un secreto
  key: !secret openhaystack_key

Ejemplo de ESPHome - ESP32-C3

external_components:
  - source:
      type: git
      url: https://github.com/barrenechea/esphome-config-files
      ref: main
    components: [openhaystack]

esphome:
  name: openhaystack-demo
  platformio_options:
    board_build.flash_mode: dio

esp32:
  board: esp32-c3-devkitm-1
  variant: ESP32C3
  framework:
    type: esp-idf
    version: latest
    sdkconfig_options:
      CONFIG_FREERTOS_UNICORE: y
      CONFIG_COMPILER_OPTIMIZATION_SIZE: y
      # Habilitar soporte WPA3 solo porque podemos
      CONFIG_WPA_SUITE_B_192: y
      # Específico para el uso de Bluetooth
      CONFIG_BT_BLE_50_FEATURES_SUPPORTED: y
      CONFIG_BT_BLE_42_FEATURES_SUPPORTED: y
      # Corrección de "Payload size error" - Extender tiempo de espera del Watchdog
      CONFIG_ESP_TASK_WDT_TIMEOUT_S: '10'

wifi:
  ssid: <tu-ssid-wifi>
  password: <tu-contraseña-wifi>

# Habilitar logs
logger:

# Habilitar API de Home Assistant
api:

ota:
  password: !secret ota_password

openhaystack:
  # Aquí va la clave codificada en Base64 de OpenHaystack
  # Te sugiero encarecidamente que la manejes como un secreto
  key: !secret openhaystack_key

©2022-2024 Sebastián Barrenechea. Todos los derechos reservados.

Construido con Astro v4.15.9.