Shuraxxx / -Balboa-GS523DZ-with-panel-VL801D-DeluxeSerie--MQTT

Balboa-GS523DZ с панелью VL801D (DeluxeSerie) MQTT
4 stars 2 forks source link

HomeAssistant #3

Open duczz opened 10 months ago

duczz commented 10 months ago

Hello, can someone make it compatible with homeassistant?

Shuraxxx commented 10 months ago

Hello, can someone make it compatible with homeassistant?

Все работает через mqtt

duczz commented 10 months ago

You forked from here, maybe this file im compatible with yours? https://github.com/MagnusPer/Balboa-GS510SZ/tree/main/examples/Balboa_GS_HomeAssistant

HomeAssistant MQTT is different

Shuraxxx commented 10 months ago

You forked from here, maybe this file im compatible with yours? https://github.com/MagnusPer/Balboa-GS510SZ/tree/main/examples/Balboa_GS_HomeAssistant

HomeAssistant MQTT is different

Да, я переделал этот проект под себя. Файлы не совместимы

duczz commented 10 months ago

Sure, it currently does Not Work in Homeassistent

Shuraxxx commented 10 months ago

Sure, it currently does Not Work in Homeassistent А вы прописали топики mqtt в homeassistant? IMG_1430

duczz commented 10 months ago

i tried to flash it again, with the same constants like in "MagnusPer/Balboa-GS510SZ/tree/main/examples/Balboa_GS_HomeAssistant)" with your project i have no MQTT Device in my Integration, with the other i have it.

Its good to see you use homeassistant too, so i do something wrong or have diffrent settings, any idea? what do you mean exactly with "А вы прописали топики mqtt в homeassistant?" normally my mqtt devices joins automatically

2024-01-11 14:06:34: New connection from 172.30.32.2:49030 on port 1883.
2024-01-11 14:06:34: Client <unknown> closed its connection.
2024-01-11 14:06:42: New connection from 192.168.178.40:56640 on port 1883.
2024-01-11 14:06:42: Client SPA Balboa : 6e235a already connected, closing old connection.
2024-01-11 14:06:42: New client connected from 192.168.178.40:56640 as SPA Balboa : 6e235a (p2, c1, k15, u'homeassistant').
2024-01-11 14:07:19: Client 1QJI4i9t2YZpvDOEfjqQUo closed its connection.
2024-01-11 14:07:31: New connection from 172.30.32.1:50551 on port 1883.
2024-01-11 14:07:31: New client connected from 172.30.32.1:50551 as 4T6X1LSuBV0pz1F0LxcV6j (p2, c1, k60, u'homeassistant').
2024-01-11 14:08:34: New connection from 172.30.32.2:35870 on port 1883.
2024-01-11 14:08:34: Client <unknown> closed its connection.
Shuraxxx commented 10 months ago

Мой проект не совместим с этим MagnusPer/Balboa-GS510SZ/tree/main/examples/Balboa_GS_HomeAssistant),

duczz commented 10 months ago

i mean only the credantials should work, because i coped ;)

duczz commented 10 months ago

how do you get the stats, in the log it looks like he is connected, but i have no mqtt device

2024-01-11 14:06:42: Client SPA Balboa : 6e235a already connected, closing old connection.

knogler commented 10 months ago

@duczz If the device only sends via mqtt and has no auto-detection, it must be integrated manually as sensors, switches,... in the configuration.yaml. @Shuraxxx Could you please provide the MQTT entry for “configuration.yaml” in homeassisten?

Shuraxxx commented 10 months ago

@duczz If the device only sends via mqtt and has no auto-detection, it must be integrated manually as sensors, switches,... in the configuration.yaml. @Shuraxxx Could you please provide the MQTT entry for “configuration.yaml” in homeassisten?

Все данные есть в файле Balboa_GS_MQTT.ino

duczz commented 10 months ago

Thanks knogler for this Info, this was nowhere standing. Is it possible to add a auto detection?

I dont know what he will say with "is in this file" A template or the complete Code snipped for that would be create im no programmer

duczz commented 10 months ago

@knogler thanks for reply, can i write you on communitiy forum to talk about it? I have generate now a *.zip file which can be import directly in arduino. @Shuraxxx please add the examples folder and add the library.properties in your repo. (Default folder structure) -Balboa-GS523SZ-with-panel-VL801D-DeluxeSerie--MQTT-main.zip

knogler commented 10 months ago

@duczz yes, you can write to me

jabberman commented 9 months ago

Hi i just flashed my esp device and can see input via mqtt explorer. But i can´t see anything in HA . Can someone share his sensors in configuration.yaml ?`

jabberman commented 9 months ago

OK, hard but i did it.

duczz commented 9 months ago

@jabberman can you Post the Code, the creator dont assist here 😅

kajmaj commented 8 months ago

My layman's summary:

btw - implementation to HA

mqtt:
  sensor: 
    - name: "Spa SetTemp"
      unique_id: spa_settemp
      state_topic: "SPA/SetTemp"
      value_template: "{{ value }}"

    - name: "Spa WaterTemp"
      unique_id: spa_watertemp
      state_topic: "SPA/WaterTemp"
      value_template: "{{ value }}"

    - name: "Spa Heater"
      unique_id: spa_heater
      state_topic: "SPA/Heater"
      value_template: "{{ value }}"

    - name: "Spa Pump1"
      unique_id: spa_pump1
      value_template: "{{ value }}"
      state_topic: "SPA/Pump1"

    - name: "Spa Pump2"
      unique_id: spa_pump2
      state_topic: "SPA/Pump2"
      value_template: "{{ value }}"

    - name: "Spa Blober"
      unique_id: spa_blober
      state_topic: "SPA/Blober"
      value_template: "{{ value }}"

    - name: "Spa Lights"
      unique_id: spa_lights
      state_topic: "SPA/Lights"
      value_template: "{{ value }}"

    - name: "Spa StandartMode"
      unique_id: spa_standartmode
      state_topic: "SPA/StandartMode"
      value_template: "{{ value }}"

    - name: "Spa EcoMode"
      unique_id: spa_ecomode
      state_topic: "SPA/EcoMode"
      value_template: "{{ value }}"

    - name: "Spa Filter1"
      unique_id: spa_filter1
      state_topic: "SPA/Filter1"
      value_template: "{{ value }}"

    - name: "Spa Filter2"
      unique_id: spa_filter2
      state_topic: "SPA/Filter2"
      value_template: "{{ value }}"

    - name: "Spa Filtration"
      unique_id: spa_filtration
      state_topic: "SPA/Filtration"
      value_template: "{{ value }}"

    - name: "Spa Display"
      unique_id: spa_display
      state_topic: "SPA/Display"
      value_template: "{{ value }}"
Shuraxxx commented 8 months ago

My layman's summary:

* To play with examples from MagnusPer/Balboa-GS510SZ went nowhere if I have VL801D control panel

* Flashing Balboa_GS_MQTT.ino from @Shuraxxx was relatively easy (my first attempt with Arduino)

* what is published via MQTT is easy to see on MQTT Explorer, even on HA

* HA sensors require time to typing only

* Blober is Blower

* so far it does not "recognise" Sleep Mode and Heater (well in my case)

* "reading" works nonetheless I am not able to write (change state of Lights, Pumps, temperature etc.) at all.

any hint from more experienced pls?

btw - implementation to HA

mqtt:
  sensor: 
    - name: "Spa SetTemp"
      unique_id: spa_settemp
      state_topic: "SPA/SetTemp"
      value_template: "{{ value }}"

    - name: "Spa WaterTemp"
      unique_id: spa_watertemp
      state_topic: "SPA/WaterTemp"
      value_template: "{{ value }}"

    - name: "Spa Heater"
      unique_id: spa_heater
      state_topic: "SPA/Heater"
      value_template: "{{ value }}"

    - name: "Spa Pump1"
      unique_id: spa_pump1
      value_template: "{{ value }}"
      state_topic: "SPA/Pump1"

    - name: "Spa Pump2"
      unique_id: spa_pump2
      state_topic: "SPA/Pump2"
      value_template: "{{ value }}"

    - name: "Spa Blober"
      unique_id: spa_blober
      state_topic: "SPA/Blober"
      value_template: "{{ value }}"

    - name: "Spa Lights"
      unique_id: spa_lights
      state_topic: "SPA/Lights"
      value_template: "{{ value }}"

    - name: "Spa StandartMode"
      unique_id: spa_standartmode
      state_topic: "SPA/StandartMode"
      value_template: "{{ value }}"

    - name: "Spa EcoMode"
      unique_id: spa_ecomode
      state_topic: "SPA/EcoMode"
      value_template: "{{ value }}"

    - name: "Spa Filter1"
      unique_id: spa_filter1
      state_topic: "SPA/Filter1"
      value_template: "{{ value }}"

    - name: "Spa Filter2"
      unique_id: spa_filter2
      state_topic: "SPA/Filter2"
      value_template: "{{ value }}"

    - name: "Spa Filtration"
      unique_id: spa_filtration
      state_topic: "SPA/Filtration"
      value_template: "{{ value }}"

    - name: "Spa Display"
      unique_id: spa_display
      state_topic: "SPA/Display"
      value_template: "{{ value }}"

button:

Shuraxxx commented 8 months ago

Сделай отступы

Shuraxxx commented 8 months ago

switch:

spa_light

- unique_id: Spa Lights switch
  name: "Spa Lights switch"
  state_topic: "SPA/Lights"
  command_topic: "SPA/Write"
  payload_on: "Light"
  payload_off: "Light"
  state_on: "1"
  state_off: "0"
  optimistic: false
  qos: 0
  retain: true
Shuraxxx commented 8 months ago

и изучите MQTT

kajmaj commented 8 months ago

@Shuraxxx Thank you !!

All switches works now. Buttons Mode, TempUp, TempDown do not work. Their writes are published, but targets are not changed. Sleep mode is visible via 'spa_display' sensor as '5.Lp'.

Update: Buttons work. Sometimes it is necessary to press the button twice or press Mode button before.

duczz commented 8 months ago

@kajmaj please Post at the end the complete Code, since month all are waiting for a working code

kajmaj commented 8 months ago

@duczz Do you mean HA .yaml? Or Arduino .ino?

duczz commented 8 months ago

Ha yaml Code ;)

kajmaj commented 8 months ago

HA config published @Shuraxxx earlier. There are some switches, buttons, binary sensors and sensors in HA config. In my case binary sensor Heater does not work.

HA config file :


mqtt:
- sensor:
    - name: "Spa SetTemp"
      unique_id: spa_settemp
      state_topic: "SPA/SetTemp"

    - name: "Spa WaterTemp"
      unique_id: spa_watertemp
      state_topic: "SPA/WaterTemp"

    - name: "Spa Display"
      unique_id: spa_display
      state_topic: "SPA/Display"

- binary_sensor:
    - name: "Spa Heater"
      unique_id: spa_heater
      state_topic: "SPA/Heater"
      payload_on: "1"
      payload_off: "0"

    - name: "Spa Filter1"
      unique_id: spa_filter1
      state_topic: "SPA/Filter1"
      payload_on: "1"
      payload_off: "0"

    - name: "Spa Filter2"
      unique_id: spa_filter2
      state_topic: "SPA/Filter2"
      payload_on: "1"
      payload_off: "0"

    - name: "Spa Filtration"
      unique_id: spa_filtration
      state_topic: "SPA/Filtration"
      payload_on: "1"
      payload_off: "0"

    - name: "Spa StandartMode"
      unique_id: spa_standartmode
      state_topic: "SPA/StandartMode"
      payload_on: "1"
      payload_off: "0"

    - name: "Spa EcoMode"
      unique_id: spa_ecomode
      state_topic: "SPA/EcoMode"
      payload_on: "1"
      payload_off: "0"

- button:
    - unique_id: Spa TempUp Button
      name: "Spa TempUp Button"
      command_topic: "SPA/Write"
      payload_press: "TempUp"

    - unique_id: Spa TempDown Button
      name: "Spa TempDown Button"
      command_topic: "SPA/Write"
      payload_press: "TempDown"

    - unique_id: Spa Mode Button
      name: "Spa Mode Button"
      command_topic: "SPA/Write"
      payload_press: "Mode"

    - unique_id: Spa Reset Esp
      name: "Spa Reset Esp"
      command_topic: "SPA/Write"
      payload_press: "Reset"

    - unique_id: Spa Stop Esp
      name: "Spa Stop Esp"
      command_topic: "SPA/Write"
      payload_press: "Stop"

- switch:
    #spa_light
    - unique_id: Spa Lights switch
      name: "Spa Lights switch"
      state_topic: "SPA/Lights"
      command_topic: "SPA/Write"
      payload_on: "Light"
      payload_off: "Light"
      state_on: "1"
      state_off: "0"
      optimistic: false
      qos: 0
      retain: true

    #spa_Pump1
    - unique_id: Spa Pump1 switch
      name: "Spa Pump1 switch"
      state_topic: "SPA/Pump1"
      command_topic: "SPA/Write"
      payload_on: "Pump1"
      payload_off: "Pump1"
      state_on: "1"
      state_off: "0"
      optimistic: false
      qos: 0
      retain: true

    #spa_Pump2
    - unique_id: Spa Pump2 switch
      name: "Spa Pump2 switch"
      state_topic: "SPA/Pump2"
      command_topic: "SPA/Write"
      payload_on: "Pump2"
      payload_off: "Pump2"
      state_on: "1"
      state_off: "0"
      optimistic: false
      qos: 0
      retain: true

    #spa_Blober
    - unique_id: Spa Blober switch
      name: "Spa Blober switch"
      state_topic: "SPA/Blober"
      command_topic: "SPA/Write"
      payload_on: "Blober"
      payload_off: "Blober"
      state_on: "1"
      state_off: "0"
      optimistic: false
      qos: 0
      retain: true
duczz commented 8 months ago

Brilliant thank your 🫶🏻

kajmaj commented 8 months ago

@duczz let me know if it works for you.

duczz commented 8 months ago

I have changed my Whirlpool few weeks ago 🙈

santiniuk commented 5 months ago

Hi,

Firstly many thanks for this fantastic project. I now have this working on my Hot Tub using a Balboa GS523DZ with a VL801D panel.

This is working via MQTT to home assistant.

A couple of questions. Is it possible to write a value for the set temperature directly via home assistant rather than using the up and down temperature control buttons ?

Also it seems that the spa heater is not detecting a binary status. I am using the code

- binary_sensor:
    - name: "Spa Heater"
      unique_id: spa_heater
      state_topic: "SPA/Heater"
      payload_on: "1"
      payload_off: "0"  

Any thoughts on how to resolve this?

Appreciate any help. Thank You

Shuraxxx commented 5 months ago

Hi,

Firstly many thanks for this fantastic project. I now have this working on my Hot Tub using a Balboa GS523DZ with a VL801D panel.

This is working via MQTT to home assistant.

A couple of questions. Is it possible to write a value for the set temperature directly via home assistant rather than using the up and down temperature control buttons ?

Also it seems that the spa heater is not detecting a binary status. I am using the code

- binary_sensor:
    - name: "Spa Heater"
      unique_id: spa_heater
      state_topic: "SPA/Heater"
      payload_on: "1"
      payload_off: "0"  

Any thoughts on how to resolve this?

Appreciate any help. Thank You

To control the temperature, use the temp set sensor for the thermostat on the panel in HA. You cannot control the heating directly; it turns on and off depending on the set temperature.

santiniuk commented 5 months ago

Thank you for the feedback. To clarify do you mean publish via MQTT to the

mqtt:
- sensor:
    - name: "Spa SetTemp"
      unique_id: spa_settemp
      state_topic: "SPA/SetTemp"

I would like to create a method where I can directly set a temperature value in an automation at different times. Over night for example I would set the temperature to 34 Deg C at 12am and then at 8am I would like to send a temperature set for 38 Deg C.

Is this possible via MQTT or another method? Thanks

kajmaj commented 5 months ago

It is not so simple. What I found so far:

Shuraxxx commented 5 months ago

It is not so simple. What I found so far:

* binary sensor "heater" does not work (mostlikely erroneous mapping of particular bits >> not read state from control panel)

* direct control (a) of functions controlled by a dedicated button on the control panel (i.e. light, pump1, pump2, blower) is possible only

* direct control (a) of changing modes (ECO, Standard, Sleep) and temperature is a bit tricky (almost impossible I would say) because even on the control panel you have to select proper MODE(1) and TEMP(2) > and Temperature itself (3) afterwards. All steps are done by buttons TempUp, TempDown, Mode. At least I did not find a way how to imitate it by a sequence of MQTT commands published.
  (a)  (ie. via MQTT command publish )

I don’t need these functions, the code is open, you can finish it.

Shuraxxx commented 5 months ago

Thank you for the feedback. To clarify do you mean publish via MQTT to the

mqtt:
- sensor:
    - name: "Spa SetTemp"
      unique_id: spa_settemp
      state_topic: "SPA/SetTemp"

I would like to create a method where I can directly set a temperature value in an automation at different times. Over night for example I would set the temperature to 34 Deg C at 12am and then at 8am I would like to send a temperature set for 38 Deg C.

Is this possible via MQTT or another method? Thanks

climate:
    - name: Spa UpdateTemp

      temperature_command_topic: "SPA/UpdateTemp"
      current_temperature_topic: "SPA/WaterTemp"
      min_temp: 26
      max_temp: 40
      precision: 0.5
      temperature_unit: C
santiniuk commented 5 months ago

Fantastic !

@Shuraxxx Thank you so much for sharing this code example. I have now added this to my MQTT code and have a working thermostat dial where I can simply select a temperature and it sets the hot tub temp without the need for multiple button presses. This has really enhanced this Home Assistant setup. I am very grateful for your assistance. Now to work on adding some automations to try and improve the running costs.

@kajmaj - it looks like we had similar findings. I have a power measurement feeding into home assistant via a Tuya device. I use this to show the heater status. Seems a good work around.

Thanks again. One of the best additions to HA I have done.

duczz commented 5 months ago

@santiniuk @kajmaj can you guys post your finally code for all other? Thanks 👍🏻

santiniuk commented 5 months ago

Sure, for me it is just a combination of code in this thread formatted into one file as I use packages in Home Assistant.

mqtt:
  # SPA SENSORS
  sensor:
    - name: "Spa SetTemp"
      unique_id: spa_settemp
      state_topic: "SPA/SetTemp"

    - name: "Spa WaterTemp"
      unique_id: spa_watertemp
      state_topic: "SPA/WaterTemp"

    - name: "Spa Display"
      unique_id: spa_display
      state_topic: "SPA/Display"

  # SPA BUTTONS
  button:
    - unique_id: Spa TempUp Button
      name: "Spa TempUp Button"
      command_topic: "SPA/Write"
      payload_press: "TempUp"

    - unique_id: Spa TempDown Button
      name: "Spa TempDown Button"
      command_topic: "SPA/Write"
      payload_press: "TempDown"

    - unique_id: Spa Mode Button
      name: "Spa Mode Button"
      command_topic: "SPA/Write"
      payload_press: "Mode"

    - unique_id: Spa Reset Esp
      name: "Spa Reset Esp"
      command_topic: "SPA/Write"
      payload_press: "Reset"

    - unique_id: Spa Stop Esp
      name: "Spa Stop Esp"
      command_topic: "SPA/Write"
      payload_press: "Stop"

    - unique_id: Spa 38 DegC Button
      name: "Spa 38 DegC Button"
      command_topic: "SPA/UpdateTemp"
      payload_press: "38"

  # SPA BINARY SENSORS
  binary_sensor:
    - name: "Spa Heater"
      unique_id: spa_heater
      state_topic: "SPA/Heater"
      payload_on: "1"
      payload_off: "0"

    - name: "Spa Filter1"
      unique_id: spa_filter1
      state_topic: "SPA/Filter1"
      payload_on: "1"
      payload_off: "0"

    - name: "Spa Filter2"
      unique_id: spa_filter2
      state_topic: "SPA/Filter2"
      payload_on: "1"
      payload_off: "0"

    - name: "Spa Filtration"
      unique_id: spa_filtration
      state_topic: "SPA/Filtration"
      payload_on: "1"
      payload_off: "0"

    - name: "Spa StandartMode"
      unique_id: spa_standartmode
      state_topic: "SPA/StandartMode"
      payload_on: "1"
      payload_off: "0"

    - name: "Spa EcoMode"
      unique_id: spa_ecomode
      state_topic: "SPA/EcoMode"
      payload_on: "1"
      payload_off: "0"

  #SPA SWITCHES
  switch:
    - unique_id: Spa Lights switch
      name: "Spa Lights switch"
      state_topic: "SPA/Lights"
      command_topic: "SPA/Write"
      payload_on: "Light"
      payload_off: "Light"
      state_on: "1"
      state_off: "0"
      optimistic: false
      qos: 0
      retain: true

    #spa_Pump1
    - unique_id: Spa Pump1 switch
      name: "Spa Pump1 switch"
      state_topic: "SPA/Pump1"
      command_topic: "SPA/Write"
      payload_on: "Pump1"
      payload_off: "Pump1"
      state_on: "1"
      state_off: "0"
      optimistic: false
      qos: 0
      retain: true

    #spa_Pump2
    - unique_id: Spa Pump2 switch
      name: "Spa Pump2 switch"
      state_topic: "SPA/Pump2"
      command_topic: "SPA/Write"
      payload_on: "Pump2"
      payload_off: "Pump2"
      state_on: "1"
      state_off: "0"
      optimistic: false
      qos: 0
      retain: true

    #spa_Blober
    - unique_id: Spa Blober switch
      name: "Spa Blober switch"
      state_topic: "SPA/Blober"
      command_topic: "SPA/Write"
      payload_on: "Blober"
      payload_off: "Blober"
      state_on: "1"
      state_off: "0"
      optimistic: false
      qos: 0
      retain: true

    #SPA CLIMATE CONTROL
  climate:
    - unique_id: Spa Climate Dial
      name: "Spa UpdateTemp"
      temperature_command_topic: "SPA/UpdateTemp"
      current_temperature_topic: "SPA/WaterTemp"
      min_temp: 26
      max_temp: 40
      precision: 0.5
      temperature_unit: C
      modes:
        - "off"
        - "heat"
        - "auto"
duczz commented 5 months ago

@Shuraxxx can you post this code example in the description please?

santiniuk commented 4 months ago

Hi, Just want to say that since adding this feature to my Hot Tub it has worked perfect. I am now making savings by adjusting the temperature that takes advantage of a lower electrical tarrif. One minor finding is that when I reboot home assistant sometimes I will get a random action on the Hot tub, for example the Blower, pump1 or pump2 will turn on. Have other's seen this? I'll look to resolve but wondered if it's a problem I have made, or a MQTT setting is should change. Thanks

santiniuk commented 2 months ago

Hi,

Since adding this feature to my Hot Tub and Home assistant it has been rock solid. It's worked perfectly. Recently this week however with the latest home assistant releases (2024.8.3) I have being seeing some random changes to the spa set temperature through the day. Now maybe 5 or six times. I've swapped the PCB for another one that I had built but still see the issues. Just wondering before I start reverting back on home assistant backups if anyone has experienced this? Thanks

santiniuk commented 3 weeks ago

Hi, Just want to say that since adding this feature to my Hot Tub it has worked perfect. I am now making savings by adjusting the temperature that takes advantage of a lower electrical tarrif. One minor finding is that when I reboot home assistant sometimes I will get a random action on the Hot tub, for example the Blower, pump1 or pump2 will turn on. Have other's seen this? I'll look to resolve but wondered if it's a problem I have made, or a MQTT setting is should change. Thanks

Hi, Just to follow up on my original query in case anyone else experiences the same problem. I resolved the random actions on reboot of home assistant by changing the retain statement to false for the lights, blower, and pumps. I then used MQTT Explorer to delete any history. So far this has resolved the issue.

Thanks

kajmaj commented 1 week ago

If anybody is interested in a script for switching modes from HA : In my case cycle goes from Standart >> Economy >> Sleep >> Standart Change from mode to mode (mqtt response) lasts approx 3 secs from pushing button on HA UI

script:
  spa_mode_change_button:
    mode: single
    sequence:
    - service: script.spa_mode_button_script
    - delay: 00:00:00.5
    - service: script.spa_temp_up_script
    - delay: 00:00:00.5  
    - service: script.spa_mode_button_script
    - delay: 00:00:00.5
    - service: script.spa_temp_up_script