Kubernetes,  QNAP

kubernetes. k0s – Hola esphome!

Relacionado con –>
Kubernetes. k0s – Instalación de homeassistant
kubernetes. k0s – Instalar esphome. Conectar un POD a un puerto USB

Una vez montado el chiringuito, para poder programar los esp8266 desde esphome no queda otra que probarlo. Vamos a ver si el matrimonio entre lo físico y kubernetes está bien avenido o si por el contrario pinta a divorcio.

Empiezo por una modificación. Ésta, consiste en proporcionar autenticación a la consola de esphome. De manera predeterminada no se pide ninguna credencial y es una buena práctica solicitarla máxime si el servicio está expuesto a Internet.

spec:
  containers:
  - args:
    - dashboard
    - --username
    - tuusuario
    - --password
    - tupassword
    - /config
    image: esphome/esphome

Ahora depende de como tengas publicado el servicio podrás acceder al el. En mi caso lo he publicado en un Ingress que redirige a un Servicio que escucha en el puerto 6052.

Una vez en la consola de esphome se puede iniciar un nuevo proyecto pinchando en + NEW DEVICE. Aparece un Wizard donde te piden unos pocos datos generándose un pequeño código en formato yaml. Cuando pinchas en UPDATE se sube el código al microcontrolador.

esphome:
  name: sensor-temp-atico
  friendly_name: sensor-temp-atico

esp8266:
  board: esp01_1m

# Enable logging
logger:

# Enable Home Assistant API
api:
  encryption:
    key: "JGJneKJpuFOaS+Uwfi6ScaIephaaaaaPeGXx+NWGHk="

ota:
  password: "aca542bb696a66d1775faaaa1f4e94ab"

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

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Sensor-Temp-Atico"
    password: "aaaaaa0Eknen"

captive_portal:

Una vez compilado y obtenido el firmware se conecta y lo sube al microcontrolador. En el código siguiente se puede ver como finalmente esphome se ha conectado al micro desde /dev/ttyUSB0. Se valida entonces cada uno de los mapeos hardware que han llevado el USB del NAS al contenedor donde corre esphome.

esp8266_copy_factory_bin([".pioenvs/sensor-temp-atico/firmware.bin"], [".pioenvs/sensor-temp-atico/firmware.elf"])
======================== [SUCCESS] Took 216.33 seconds ========================
INFO Successfully compiled program.
esptool.py v4.6.2
Serial port /dev/ttyUSB0
Connecting....
Chip is ESP8266EX
Features: WiFi
Crystal is 26MHz
MAC: 5c:cf:7f:aa:aa:aa
Uploading stub...
Running stub...
Stub running...
Changing baud rate to 460800
Changed.
Configuring flash size...
Auto-detected Flash size: 1MB
Flash will be erased from 0x00000000 to 0x00077fff...
Compressed 487504 bytes to 343041...
Wrote 487504 bytes (343041 compressed) at 0x00000000 in 32.4 seconds (effective 120.4 kbit/s)...
Hash of data verified.

Leaving...
Hard resetting via RTS pin...
INFO Successfully uploaded program.
INFO Starting log output from /dev/ttyUSB0 with baud rate 115200
[00:55:17]\x90no$`nr\x8e\x92\x92nrr\x92`p\xf2n\x82r\x8cbbn\xe2nb\xc4\xf2nn'l`\x90nn$`nr\x8e\x92\x92nrl`r\x92\x92nrl`\x9c\xec\xe4ll`\xfc\x82n\x92`[I][logger:351]: Log initialized

También se puede ver como se ha podido conectar a la red WIFI y tiene IP asignada. Vamos un éxito total.

[00:55:25][C][wifi:411]:   IP Address: 192.168.0.69
[00:55:25][C][wifi:412]:   BSSID: [redacted]
[00:55:25][C][wifi:414]:   Hostname: 'sensor-temp-atico'
[00:55:25][C][wifi:416]:   Signal strength: -44 dB ▂▄▆█
[00:55:25][C][wifi:420]:   Channel: 6
[00:55:25][C][wifi:421]:   Subnet: tumask
[00:55:25][C][wifi:422]:   Gateway: tugw
[00:55:25][C][wifi:423]:   DNS1: tudns
[00:55:25][C][wifi:424]:   DNS2: tudns
[00:55:25][C][logger:439]: Logger:
[00:55:25][C][logger:440]:   Level: DEBUG
[00:55:25][C][logger:441]:   Log Baud Rate: 115200
[00:55:25][C][logger:443]:   Hardware UART: UART0
[00:55:25][C][captive_portal:088]: Captive Portal:
[00:55:25][C][mdns:115]: mDNS:
[00:55:25][C][mdns:116]:   Hostname: sensor-temp-atico
[00:55:25][C][ota:097]: Over-The-Air Updates:
[00:55:25][C][ota:098]:   Address: sensor-temp-atico.local:8266
[00:55:25][C][ota:101]:   Using Password.
[00:55:25][C][api:139]: API Server:
[00:55:25][C][api:140]:   Address: sensor-temp-atico.local:6053