[TUTO] SPA INTEX dans Home Assistant en MQTT

As-tu trouvé une solution ?
Le seul moyen que j’ai trouvé pour accéder à l’interface du module est de couper temporairement le wifi de ma box. Quand le module ne peux pas se connecter, il diffuse à nouveau son wifi qui permet d’accéder a la page d’admin

:slight_smile: hello,
module reçu ce jour ;:slight_smile:

Bonjour,

J’ai un soucis avec l’appareil, je l’ai bien reçu et connecté, mais je n’ai pas la valeur TempSet affiché dans water seulement tempAct, de même pour la temp du wifi il est en error

quelqu’un à déjà eu ce genre de problème?

@jybi89 un grand merci pour ton tuto, je ne pense pas que j’y serai arrivé sans toi!

Bonsoir,

Impossible pour moi de configurer correctement mqtt et faire communiquer en mqtt mon spa et homeassistant

Cela fait plusieurs jours que je galère

Suite à la MAJ firmware déployé à partir d’aujourd’hui le 29/04/2024 il y a une grosse nouveauté :

Topic unique qui rassemble les topic #pool et wifi, que ce soit les infos ou commandes

Cela donne précisément :

« SpaTiTan/pool/bubble »;
« SpaTiTan/pool/disinfection »; // SJB-HS seulement
« SpaTiTan/pool/error »;
« SpaTiTan/pool/filter »;
« SpaTiTan/pool/heater »;
« SpaTiTan/pool/jet »; // SJB-HS seulement
« SpaTiTan/pool/model »;
« SpaTiTan/pool/power »;
« SpaTiTan/pool/water/tempAct »;
« SpaTiTan/pool/water/tempSet »;
« SpaTiTan/wifi/version »;
« SpaTiTan/wifi/ip »;
« SpaTiTan/wifi/rssi »;
« SpaTiTan/wifi/temp »;
« SpaTiTan/wifi/state »;
« SpaTiTan/wifi/update »;

« SpaTiTan/pool/command/bubble »;
« SpaTiTan/pool/command/disinfection »; // SJB-HS seulement
« SpaTiTan/pool/command/filter »;
« SpaTiTan/pool/command/heater »;
« SpaTiTan/pool/command/jet »; // SJB-HS seulement
« SpaTiTan/pool/command/power »;
« SpaTiTan/pool/command/water/tempSet »;
« SpaTiTan/wifi/command/update »;

Si @jybi89 tu pourrait l’indiqué dans ton premier message :wink:

Bonjour, y a t’il des personnes qui utilise le module avec HA ?
j’ai un problème à chaque redémarrage de HA, je perds la commande de tous les sensors et Commandes, il faut que je click sur chaque bouton pour les réactiver , attendre que la température de l’eau change pour avoir le retour Temp eau, mais pour le thermostat , je suis obligé d’aller sur le pupitre et l’actionner physiquement pour qu’il se réactive sur HA.

Apres redémarrage de HA

une fois que j’ai cliqué sur les boutons commande

et en fin une fois que je suis allé sur le pupitre appuyer sur Thermosta + ou -

@PaTiTan n’a pas de solution de son coté .

1 « J'aime »

salut a tous
j’ai recu et installé le modul spa aussi mais je n’ai rien (ou pas grand chose en mqtt)
Capture d'écran 2024-05-15 140932
avez vous une idée ?

@la_fouine appui sur les bouton du pupitre ca devrait te faire remonter les infos

tu utilises HA ?

J’ai trouvé …
Suite à la MAJ firmware il faut rajouter dans le code yaml SpaTiTan/ sur les topic

  • topic: « /wifi/state »
    devient
  • topic: « SpaTiTan/wifi/state »
    :grinning:

affirmatif je suis sur ha :innocent:

mqtt_climate.yaml

###################################################
#######                SPA INTEX             ######
###################################################
- name: intex_heater
  unique_id: "mqtt_intex_heater"
  availability:
    - topic: "SpaTiTan/wifi/state"
      payload_available: "online"
      payload_not_available: "offline"
      value_template:  >-
        {% set values = { 'offline':'offline','online':'online','error':'offline'} %}
        {{ values[value] if value in values.keys() else 'offline' }}
  payload_on: "on"
  payload_off: "off"
  modes:
    - "off"
    - "heat"
  mode_state_topic: "SpaTiTan/pool/heater"
  mode_state_template: >-
    {% set values = { 'off':'off','on':'heat','standby':'heat'} %}
    {{ values[value] if value in values.keys() else 'off' }}
  mode_command_topic: "SpaTiTan/pool/command/heater"
  mode_command_template: >-
    {% set values = {'heat':'on','off':'off'} %}
    {{ values[value] if value in values.keys() else 'off' }}
  action_topic: "SpaTiTan/pool/heater"
  action_template: >-
    {% set values = { 'off':'off','on':'heating','standby':'idle'} %}
    {{ values[value] if value in values.keys() else 'off' }}
  current_temperature_topic: "SpaTiTan/pool/water/tempAct"
  temperature_state_topic: "SpaTiTan/pool/water/tempSet"
  temperature_command_topic: "SpaTiTan/pool/command/water/tempSet"
  temperature_command_template: "{{ value | int }}"
  temp_step: 1.0
  precision: 1.0
  min_temp: 20
  max_temp: 40

mqtt_number.yaml

###################################################
#######                SPA INTEX             ######
###################################################
- name: intex_heater
  unique_id: "mqtt_intex_heater"
  availability:
    - topic: "SpaTiTan/wifi/state"
      payload_available: "online"
      payload_not_available: "offline"
      value_template:  >-
        {% set values = { 'offline':'offline','online':'online','error':'offline'} %}
        {{ values[value] if value in values.keys() else 'offline' }}
  payload_on: "on"
  payload_off: "off"
  modes:
    - "off"
    - "heat"
  mode_state_topic: "SpaTiTan/pool/heater"
  mode_state_template: >-
    {% set values = { 'off':'off','on':'heat','standby':'heat'} %}
    {{ values[value] if value in values.keys() else 'off' }}
  mode_command_topic: "SpaTiTan/pool/command/heater"
  mode_command_template: >-
    {% set values = {'heat':'on','off':'off'} %}
    {{ values[value] if value in values.keys() else 'off' }}
  action_topic: "SpaTiTan/pool/heater"
  action_template: >-
    {% set values = { 'off':'off','on':'heating','standby':'idle'} %}
    {{ values[value] if value in values.keys() else 'off' }}
  current_temperature_topic: "SpaTiTan/pool/water/tempAct"
  temperature_state_topic: "SpaTiTan/pool/water/tempSet"
  temperature_command_topic: "SpaTiTan/pool/command/water/tempSet"
  temperature_command_template: "{{ value | int }}"
  temp_step: 1.0
  precision: 1.0
  min_temp: 20
  max_temp: 40

mqtt_sensor.yaml

###################################################
#######                SPA INTEX             ######
###################################################
- name: intex_heater
  unique_id: "mqtt_intex_heater"
  availability:
    - topic: "SpaTiTan/wifi/state"
      payload_available: "online"
      payload_not_available: "offline"
      value_template:  >-
        {% set values = { 'offline':'offline','online':'online','error':'offline'} %}
        {{ values[value] if value in values.keys() else 'offline' }}
  payload_on: "on"
  payload_off: "off"
  modes:
    - "off"
    - "heat"
  mode_state_topic: "SpaTiTan/pool/heater"
  mode_state_template: >-
    {% set values = { 'off':'off','on':'heat','standby':'heat'} %}
    {{ values[value] if value in values.keys() else 'off' }}
  mode_command_topic: "SpaTiTan/pool/command/heater"
  mode_command_template: >-
    {% set values = {'heat':'on','off':'off'} %}
    {{ values[value] if value in values.keys() else 'off' }}
  action_topic: "SpaTiTan/pool/heater"
  action_template: >-
    {% set values = { 'off':'off','on':'heating','standby':'idle'} %}
    {{ values[value] if value in values.keys() else 'off' }}
  current_temperature_topic: "SpaTiTan/pool/water/tempAct"
  temperature_state_topic: "SpaTiTan/pool/water/tempSet"
  temperature_command_topic: "SpaTiTan/pool/command/water/tempSet"
  temperature_command_template: "{{ value | int }}"
  temp_step: 1.0
  precision: 1.0
  min_temp: 20
  max_temp: 40

mqtt_switch.yaml

###############################################################
##############         SPA INTEX                ###############
###############################################################
# Switch on off
- name: intex_power
  unique_id: mqtt_intex_power
  availability:
    - topic: "SpaTiTan/wifi/state"
      payload_available: "online"
      payload_not_available: "offline"
      value_template:  >-
        {% set values = { 'offline':'offline','online':'online','error':'offline'} %}
        {{ values[value] if value in values.keys() else 'offline' }}
  payload_on: "on"
  payload_off: "off"
  state_topic: SpaTiTan/pool/power
  command_topic: SpaTiTan/pool/command/power

# swicth des bulles
- name: intex_bubble
  unique_id: mqtt_intex_bubble
  availability:
    - topic: "SpaTiTan/wifi/state"
      payload_available: "online"
      payload_not_available: "offline"
      value_template:  >-
        {% set values = { 'offline':'offline','online':'online','error':'offline'} %}
        {{ values[value] if value in values.keys() else 'offline' }}
  payload_on: "on"
  payload_off: "off"
  state_topic: SpaTiTan/pool/bubble
  command_topic: SpaTiTan/pool/command/bubble

# switch du filtre
- name: intex_filter
  unique_id: mqtt_intex_filter
  availability:
    - topic: "SpaTiTan/wifi/state"
      payload_available: "online"
      payload_not_available: "offline"
      value_template:  >-
        {% set values = { 'offline':'offline','online':'online','error':'offline'} %}
        {{ values[value] if value in values.keys() else 'offline' }}
  payload_on: "on"
  payload_off: "off"
  state_topic: SpaTiTan/pool/filter 
  command_topic: SpaTiTan/pool/command/filter
2 « J'aime »

Je viens d’installer le module et je suis sous HA également. Après avoir galéré pendant 2h avec tous à « unknown », je viens de lire les derniers messages et effectivement après reboot de HA, tous passe à unkown. Ma suggestion c’est de forcer tous à un certain état après le reboot de HA pour forcer le rafraichissement des états.

Hello,

J’ai le même soucis. Par contre l’an passé je n’avais pas ce soucis (oui il est resté très longtemps en hivernage :sweat_smile: ) Donc je présumes que c’est suite aux différentes mises à jours de H.A.

Bonne soirée.

Je vais essayer de trouver une solution mais c’est pas évident

1 « J'aime »

bon je débute dans HA et je pense avoir bidouillé une truc qui fonctionne pour réactiver les sensors et commande.

c’est une petite usine a gaz , mais ca marche chez moi

le principe est de mémoriser tous les états des commande et sensors dans les inputs :
voici ceux que j’ai défini, je reprend les mêmes nom que ceux du module .

après il faudra deux automatisations ,

la premier sert à mémoriser les états :

alias: Intex_etats
description: ""
trigger:
  - platform: state
    entity_id:
      - switch.intex_power
    from: "off"
    to: "on"
    id: power_on
  - platform: state
    entity_id:
      - switch.intex_power
    from: "on"
    to: "off"
    id: power_off
  - platform: state
    entity_id:
      - switch.intex_filter
    from: "off"
    to: "on"
    id: filter_on
  - platform: state
    entity_id:
      - switch.intex_filter
    from: "on"
    to: "off"
    id: filter_off
  - platform: state
    entity_id:
      - switch.intex_bubble
    from: "off"
    to: "on"
    id: bubble_on
  - platform: state
    entity_id:
      - switch.intex_bubble
    from: "on"
    to: "off"
    id: bubble_off
  - platform: state
    entity_id:
      - climate.intex_heater
    from: "off"
    to: heat
    id: heater_on
  - platform: state
    entity_id:
      - climate.intex_heater
    from: heat
    to: "off"
    id: heater_off
  - platform: state
    entity_id:
      - number.intex_temperature_set
    id: intex_temp
  - platform: state
    entity_id:
      - sensor.intex_temp_actu
    id: intex_temp_actu
condition: []
action:
  - choose:
      - conditions:
          - condition: trigger
            id:
              - power_on
        sequence:
          - service: input_boolean.turn_on
            metadata: {}
            data: {}
            target:
              entity_id: input_boolean.intex_power
      - conditions:
          - condition: trigger
            id:
              - power_off
        sequence:
          - service: input_boolean.turn_off
            metadata: {}
            data: {}
            target:
              entity_id: input_boolean.intex_power
      - conditions:
          - condition: trigger
            id:
              - filter_on
        sequence:
          - service: input_boolean.turn_on
            metadata: {}
            data: {}
            target:
              entity_id: input_boolean.intex_filter
      - conditions:
          - condition: trigger
            id:
              - filter_off
        sequence:
          - service: input_boolean.turn_off
            metadata: {}
            data: {}
            target:
              entity_id: input_boolean.intex_filter
      - conditions:
          - condition: trigger
            id:
              - bubble_on
        sequence:
          - service: input_boolean.turn_on
            metadata: {}
            data: {}
            target:
              entity_id: input_boolean.intex_bubble
      - conditions:
          - condition: trigger
            id:
              - bubble_off
        sequence:
          - service: input_boolean.turn_off
            metadata: {}
            data: {}
            target:
              entity_id: input_boolean.intex_bubble
      - conditions:
          - condition: trigger
            id:
              - heater_on
        sequence:
          - service: input_boolean.turn_on
            metadata: {}
            data: {}
            target:
              entity_id: input_boolean.intex_heater
      - conditions:
          - condition: trigger
            id:
              - heater_off
        sequence:
          - service: input_boolean.turn_off
            metadata: {}
            data: {}
            target:
              entity_id: input_boolean.intex_heater
      - conditions:
          - condition: trigger
            id:
              - intex_temp
        sequence:
          - service: input_number.set_value
            data:
              entity_id: input_number.intex_temperature_set
              value: "{{ states('number.intex_temperature_set') }}"
      - conditions:
          - condition: trigger
            id:
              - intex_temp_actu
        sequence:
          - service: input_number.set_value
            data:
              entity_id: input_number.intex_temp_actu
              value: "{{ states('number.intex_temp_actu') }}"
mode: single

la deuxième sert à envoyer les commandes MQTT dés que l’état passe en indisponible

alias: intex_mqtt_reactivation
description: ""
trigger:
  - platform: state
    entity_id:
      - switch.intex_power
    to: unavailable
condition: []
action:
  - delay:
      hours: 0
      minutes: 0
      seconds: 2
      milliseconds: 0
  - service: mqtt.publish
    metadata: {}
    data:
      qos: 0
      retain: false
      topic: SpaTiTan/pool/water/tempAct
      payload_template: "{{ states('input_number.intex_temp_actu') }}"
    enabled: true
  - service: mqtt.publish
    metadata: {}
    data:
      qos: 0
      retain: false
      topic: SpaTiTan/pool/water/tempSet
      payload_template: "{{ states('input_number.intex_temperature_set') }}"
  - if:
      - condition: state
        entity_id: input_boolean.intex_power
        state: "on"
    then:
      - service: mqtt.publish
        metadata: {}
        data:
          qos: 0
          retain: false
          topic: SpaTiTan/pool/power
          payload_template: "on"
    else:
      - service: mqtt.publish
        metadata: {}
        data:
          qos: 0
          retain: false
          topic: SpaTiTan/pool/power
          payload_template: "off"
  - if:
      - condition: state
        entity_id: input_boolean.intex_filter
        state: "on"
    then:
      - service: mqtt.publish
        metadata: {}
        data:
          qos: 0
          retain: false
          topic: SpaTiTan/pool/filter
          payload_template: "on"
    else:
      - service: mqtt.publish
        metadata: {}
        data:
          qos: 0
          retain: false
          topic: SpaTiTan/pool/filter
          payload_template: "off"
  - if:
      - condition: state
        entity_id: input_boolean.intex_heater
        state: "on"
    then:
      - service: mqtt.publish
        metadata: {}
        data:
          qos: 0
          retain: false
          topic: SpaTiTan/pool/heater
          payload_template: "on"
    else:
      - service: mqtt.publish
        metadata: {}
        data:
          qos: 0
          retain: false
          topic: SpaTiTan/pool/heater
          payload_template: "off"
  - if:
      - condition: state
        entity_id: input_boolean.intex_bubble
        state: "on"
    then:
      - service: mqtt.publish
        metadata: {}
        data:
          qos: 0
          retain: false
          topic: SpaTiTan/pool/bubble
          payload_template: "on"
    else:
      - service: mqtt.publish
        metadata: {}
        data:
          qos: 0
          retain: false
          topic: SpaTiTan/pool/bubble
          payload_template: "off"
mode: single

voila ,j’espère que ca pourra vous aider , et comme je l’ai dit plus haut, je débute et je suis certain que l’on peut trouver une solution plus simple :wink:

Il faut que les messages MQTT envoyés aient le « retained flag » a true. Ainsi, les messages sont gardés par le broker et HA aura des valeurs disponibles quand il redémarrera.

Bonjour,
Je vais avoir besoin de votre aide.

J’ai branché l’esp 8266 et en mqtt je n’arrive pas à le configurer dans HA.

J’ai renseigné dans le module:
SSID routeur : Livebox-xxxx
Mdp routeur : xxxxxxxx
Ip du serveur HA http://192.168.1.xx:8123
Port 1883 (de base)
Mqtt user : mqtt
mqtt mdp mqtt

Il apparaît dans mon interface Livebox avec une ip et un nom Esp avec un IP

Mais je n’arrive pas à le détecter dans HA, via le Mqtt Explorer, et Mqtt brocker (mosquito).

Voilà ce que j’obtiens dans Mqtt Explorer :

Tandis que pour le code le !inculde n’est pas valide dans mon config.yaml


Je suis un peu perdu.

Update:16:06 may 21
Le include n’est plus un problème.

edw1ge, tu as plusieurs problèmes.

D’une le MQTT du module vers le MQTT de HA ne fonctionne pas.
Quand tu dis :
Mqtt user : mqtt
mqtt mdp mqtt

On est bien d’accord que l’utilisateur doit être déclaré dans les utilisateurs de ha ? Donc dans ton cas, tu dois avoir un utilisateur mqtt déclaré dans HA avec le mot de passe mqtt, on est OK avec cela ?

Concernant la conf mqtt dans HA, le configuration.yaml qui te donne une erreur en ligne 23. Le yaml est normalement très strict, donc les lignes 22 à 25 doivent commencer par 2 espaces et non 1 seul. On va commencer par cela.

Bon courage