Balboa Spa og ESPhome

Som beskrevet i den tidligere blog omkring ControlMySpa, er der en del udfordinger i denne integration. Der kan gå lang tid fra man beder en f.eks en jet om at starte til starter og nogen gange hænger en komando, så lige pludselig starter jeten nærmest af sig selv når den pludselig får forbindelse. Endvidere skal gateway enheden være ret tæt på spaen og samtidig være forbundet til routeren via ethernet kabel. Derfor virker det mange gange som en bedre læsning at bruge en enhed der bliver forbundet til span vi det samme RS485 interface som CMS, men som i stedet bruger din routers wifi til kommunikation. Desvære findes dette ikke som et comercielt produkt i skrivende stund (December 2025), men her beskriver jeg hvordan det kan laves og forbindes til Home Assistant.

Forudsætninger:

Fordele:

Ulemper:

  • Gør det selv projekt 

Sværhedsgrad: 4/5 (for en nemere løsning se CMS)

Selvom dette kan se kompleks ud, så er det baseret på nogle få standard komponenter som bliver sat sammen og kodet med simplet da andre har lavet det komplekse arbejde.

Kommunikation:

Home assistant kommunikere med Spaens RS485 inteface vha. en ESP32 baseret microcontroler programeret i ESPHome interfacet. 

Byg enheden

Hardware:

Her er beskrevet det nødvendige Hardware, links til Amazon, men det kan også findes på f.eks Ebay.

 

Diagram

Ovenstående komponenter skal forbindes på nedenstående måde. Der må gerne være ca 1m ledning mellem ATX connectoren og resten, så den færdige enhed kan montetes i toppen af spaen for bedre wifi og bluetooth forbindelse

ATX connectoren forbindes som vist her:

stikket kan enten forbindes direkte på printetmeller  via en y-connector hvis der ikke er ledige stik. L

*** Læg mærke til at stikkets udløser pal er vist mod venstre***

Når alle modulerne er lodet sammen, kan enheden nu programeres via ESPHome

Konfigurer enheden

Enheden skal nu kodes ved at forbinde ESP32 enheden med en computer via et USB kabel og i ESPHome lave en ny enhed med minimum konfiguration via ESPHome new device wizzard

Når enheden er kodet og online, editer enheden i ESPHome interfacect og indsæt nedenstående kode under den default kode some er lavet af ESPHome. i koden er enheden også gjort klar til at kommunikere med en eventuel Bluerriot enhed vi bluetooth. 
 
# Turn on BLE scanning + proxying
esp32_ble_tracker:
bluetooth_proxy:
  active: true
captive_portal:
web_server:
  port: 80
time:
  – platform: homeassistant
uart:
  id: spa_uart_bus
  tx_pin: GPIO17
  rx_pin: GPIO16
  data_bits: 8
  parity: NONE
  stop_bits: 1
  baud_rate: 115200
  rx_buffer_size: 512
external_components:
  – source:
     type: git
     url: https://github.com/brianfeucht/esphome-balboa-spa
     ref: main
balboa_spa:
  id: spa
  # Set this to C or F based on the units your spa is configured for
  spa_temp_scale: C
  # Optional: Override the automatically assigned client ID
  # client_id: 10
switch:
  – platform: balboa_spa
    balboa_spa_id: spa
    jet1:
      name: Jet1
      max_toggle_attempts: 5  # Optional: max attempts to reach desired state (default: 5)
      discard_updates: 5      # Optional: state updates to ignore after each toggle (default: 20)
    jet2:
      name: Jet2
    jet3:
      name: Jet3
    jet4:
      name: Jet4
    light:
      name: Lights
    blower:
      name: Blower
# Fan platform for multi-speed jet control (recommended for jets with speed support)
fan:
  – platform: balboa_spa
    balboa_spa_id: spa
    jet_1:
      name: “Jet 1”
      id: jet1_fan
      max_toggle_attempts: 5  # Optional: max attempts to reach desired state (default: 5)
      discard_updates: 20     # Optional: state updates to ignore after each toggle (default: 20)
    jet_2:
      name: “Jet 2”
      id: jet2_fan
    jet_3:
      name: “Jet 3”
      id: jet3_fan
    jet_4:
      name: “Jet 4”
      id: jet4_fan
climate:
  – platform: balboa_spa
    balboa_spa_id: spa
    name: “Spa Thermostat”
    visual:
      min_temperature: 62 °F    # min: 7 C
      max_temperature: 105 °F    # max: 30 C
      temperature_step: 0.5 °F  # min: 0.5 C
sensor:
  – platform: balboa_spa
    balboa_spa_id: spa
    blower:
      name: Blower
    highrange:
      name: High Range
    circulation:
      name: Circulation
    restmode:
      name: Rest Mode
    heatstate:
      name: Heat State
binary_sensor:
  – platform: balboa_spa
    balboa_spa_id: spa
    blower:
      name: Blower
    highrange:
      name: High Range
    circulation:
      name: Circulation Pump
    restmode:
      name: Rest Mode
    heatstate:
      name: Heat State
    connected:
      name: Connected
text:
  – platform: balboa_spa
    balboa_spa_id: spa
    spa_time:
      name: “Set Spa Time”
      mode: TEXT
    filter1_start_time:
      name: “Set Filter 1 Start Time”
      mode: TEXT
    filter1_duration:
      name: “Set Filter 1 Duration”
      mode: TEXT
    filter2_start_time:
      name: “Set Filter 2 Start Time”
      mode: TEXT
    filter2_duration:
      name: “Set Filter 2 Duration”
      mode: TEXT
text_sensor:
  – platform: balboa_spa
    balboa_spa_id: spa
    spa_time:
      name: “Spa Time”
    filter1_config:
      name: “Filter 1 Config”
    filter2_config:
      name: “Filter 2 Config”
button:
  – platform: balboa_spa
    balboa_spa_id: spa
    sync_time:
      name: “Sync Spa Time”
    disable_filter2:
      name: “Disable Filter 2”

Gen og opdater enheden. Den er nu klar til at blive moteret i spaen

Home Assistant Opsætning

Home Assistant burde nu selv finde enheden (Indstillinger –> Enheder og tjenster) og alle enhedens funktionalitet ses:

Home Assistant er nu i stand til at styre din balboa spa og du får temperatur målinger ind i Home assistant

Og hvis du har en Blue Connect Go kan du i denne post se hvodan du kan bruge din nye enhed til at forbinde denne også til Home Assistant

Her er en post der vise nogle af de muligheder du har når din spa er forbundet til Home Assistant

Nedenstående link giver en dybere beskrivelse af mulighederne

Leave a Comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.