Aspirador Smart Kabum! (Tuya V2): Ajustes na integração para funcionamento completo no HA - Update Tuya V2 v1.6.0

Alguém com problema de sincrização do status atual do robô usando o tuya v2? Se eu reniciar o HA, ele funciona normalmente, mas depois de um tempo, qualquer alteração que o robô tenha, os status não atualizam.

Houve alguns problemas do tipo com a integração nativa, a correção veio com uma atualização do SDK da Tuya. Talvez seja necessário realizar também na V2, mas como ela foi descontinuada deve ser realizado manualmente pelo usuário. Segue o link do SDK atualizado..

2 curtidas

Bom dia pessoal.

Os comandos estão funcionando na v1.6.0, apenas o TURN_OFF que não, pelo app da Tuya se eu criar uma cena colocando o robô no status SWITCH.TURN_OFF, ele entra em standby, mas não consegui fazer isso pelos serviços do HA.

Alguma dica?

Obrigado.

Alguns links pra correção da versão 1.5 estão offline, pode corrigir isso?

Atualizado os links!

1 curtida

Os serviços turn_on e turn_off para o aspiradores não foram implementados pelo custom component Tuya V2. Já na integração nativa do HA devem funcionar (observe que os aspiradores Kabum Smart 500 possuem um erro de ortografia nos status que não funcionaram na integração nativa).

Pessoal,
Bom dia.
No HACS nao encontro o Tuya V2, somente o local tuya.
Alguem poderia ajudar?

Edit: consegui com o tuya no integrations.

Obrigado pessoal

O Tuya v2 foi descontinuado em novembro de 2021 e com isso foi adicionada a nova integração da Tuya no Home Assistant.

1 curtida

Obrigado Leandro.
Sempre prestativo.
Já consegui configurar :slight_smile:

3 curtidas

Você consegui ativar os sensores adicionais na integração Tuya? COnfesso que não consegui instalar o tuya v2, até pq foi descontinuado…

Opa pessoal

Tudo bem?

Gostaria de entender melhor… Essa melhoria altera em que o Robo Smart 500 da Kabum === C30B?

Alguém sabe informar se existe integração com o neatsvor x600 ?

alguém ja testou o novo robô da Kabum?
KBSF006
ele esta com um preço bom hoje, gostaria de comprar.

sabe se integra beleza com o HA? é simples?
obrigado

Olá @Prates !

Estou a dias tentando fazer esta integração com o ZK, já consegui o local Key… etc… mas simplesmente nao funciona… pode me ajudar?

Alguém ai tem o Kabum Smart 900? Consegui fazer funcionar com o LocalTuya mas pra minha surpresa a integracao desativa quando o aspirador entra em standby, dai preciso ir la e reconfigurar o aspirador de novo na integracao..

o mesmo acontece com o mapa, ele so vem um pedacinho rs, nao vem o mapa completo…

também tenho o 900… fiz a integração com a oficial tuya… mas não consegui usar direito… está só integrado mas sem uso! Não aparece mapa e quando fiz a integração encontrei dificuldades em mandar os comandos separados para iniciar a aspiração e passar o mop!
Acabei desistindo e não tentando mais!

Usei no LocalTuya, deu trampo mas está funcionando, apesar de não aparecer o mapa, mas acho que vou resolver isso em breve…

Pra quem está com dificuldade de integrar esse modelo segue ai…

:wrench: Configurações

ID 2: Ligar
ID 101: Retoma a Limpeza
ID 102: Pausa
ID 103: Retorna à Base

ID 3: Modo de Limpeza

  • left_bow: Arco à Esquerda
  • left_spiral: Espiral à Esquerda
  • mop: Passar Pano
  • partial_bow: Curvar Parcialmente
  • random: Aleatório
  • right_bow: Arco à Direita
  • right_spiral: Espiral à Direita
  • smart: Inteligente
  • spiral: Espiral
  • standby: Em Espera
  • wall_follow: Seguir Parede

ID 109: Velocidade de Sucção

  • auto: Padrão
  • max: Máxima
  • quiet: Ecológica
  • strong: Turbo

ID 110: Nível de Água

  • high: Alto
  • low: Baixo
  • mid: Médio

:bar_chart: Diagnósticos

ID 105: Estado do Robô
ID 106: Bateria
ID 107: Tempo de Limpeza Atual
ID 108: Área de Limpeza Atual
ID 116: Tempo de Limpeza Total
ID 117: Área Total Limpa
ID 118: Quantidade de Limpezas
ID 119: Tempo da Escova Lateral
ID 120: Tempo da Escova Principal
ID 121: Tempo do Filtro
ID 122: Falha do Robô

    ##Card Personalizado do Aspirador## 

        type: vertical-stack
        cards:
          - type: custom:button-card
            entity: vacuum.sua_entidade_aqui
            show_icon: false
            show_name: false
            show_state: false
            layout: vertical
            custom_fields:
              header: |
                [[[ 
                  const status = states['sensor.sua_entidade_aqui_estado_do_robo'].state.toLowerCase();
                  const tempo = parseFloat(states['sensor.sua_entidade_aqui_tempo_de_limpeza_atual'].state || 0);
                  const tempoMin = Math.round(tempo > 500 ? tempo / 60 : tempo); // se vier em segundos, converte
                  let icon = "mdi:help-circle-outline";
                  let label = "Desconhecido";

                  if (status === "chargring") {
                    icon = "mdi:battery-charging";
                    label = "Carregando";
                  } else if (status === "totaling") {
                    icon = "mdi:robot-vacuum";
                    label = `Limpando • ${tempoMin} min`;
                  } else if (status === "pause") {
                    icon = "mdi:pause";
                    label = `Pausado • ${tempoMin} min`;
                  } else if (status === "tocharg") {
                    icon = "mdi:home-import-outline";
                    label = "Voltando à Base";
                  }

                  return `
                    <div style="display: flex; flex-direction: column; align-items: center; justify-content: center; width: 100%; gap: 6px;">
                      <div style="display: flex; align-items: center; gap: 6px;">
                        <ha-icon icon="mdi:robot-vacuum" style="width: 24px; height: 24px; color: #00c853;"></ha-icon>
                        <span style="font-size: 16px; font-weight: bold; color: white;">Aspirador</span>
                      </div>
                      <div style="display: flex; align-items: center; gap: 6px;">
                        <ha-icon icon="${icon}" style="width: 18px; height: 18px; color: #bbbbbb;"></ha-icon>
                        <span style="font-size: 14px; color: #bbbbbb;">${label}</span>
                      </div>
                    </div>
                  `;
                ]]]
            styles:
              card:
                - background: "#1e1e1e"
                - border-radius: 16px
                - padding: 16px
                - display: flex
                - align-items: center
                - justify-content: center
                - min-height: 64px
              custom_fields:
                header:
                  - width: 100%
          - type: horizontal-stack
            cards:
              - type: custom:button-card
                entity: button.sua_entidade_aqui_ligar
                icon: mdi:play
                name: Ligar
                tap_action:
                  action: call-service
                  service: button.press
                  service_data:
                    entity_id: button.sua_entidade_aqui_ligar
                styles:
                  card:
                    - background: "#2e2e2e"
                    - border-radius: 12px
                    - padding: 12px
                  icon:
                    - color: "#00e676"
                    - width: 28px
                    - height: 28px
                  name:
                    - color: white
                    - font-size: 13px
              - type: custom:button-card
                entity: button.sua_entidade_aqui_pausa
                icon: mdi:pause
                name: Pausa
                tap_action:
                  action: call-service
                  service: button.press
                  service_data:
                    entity_id: button.sua_entidade_aqui_pausa
                styles:
                  card:
                    - background: "#2e2e2e"
                    - border-radius: 12px
                    - padding: 12px
                  icon:
                    - color: "#ffeb3b"
                    - width: 28px
                    - height: 28px
                  name:
                    - color: white
                    - font-size: 13px
              - type: custom:button-card
                entity: button.sua_entidade_aqui_retorna_a_base
                icon: mdi:home-map-marker
                name: Base
                tap_action:
                  action: call-service
                  service: button.press
                  service_data:
                    entity_id: button.sua_entidade_aqui_retorna_a_base
                styles:
                  card:
                    - background: "#2e2e2e"
                    - border-radius: 12px
                    - padding: 12px
                  icon:
                    - color: "#ff5252"
                    - width: 28px
                    - height: 28px
                  name:
                    - color: white
                    - font-size: 13px
          - type: entities
            show_header_toggle: false
            style: |
              ha-card {
                background: #1e1e1e;
                border-radius: 16px;
                padding: 12px 16px;
                color: white;
              }
            entities:
              - entity: select.sua_entidade_aqui_modo_de_limpeza
                name: Modo de Limpeza
              - entity: select.sua_entidade_aqui_velocidade_de_succao
                name: Velocidade de Sucção
          - type: entities
            show_header_toggle: false
            style: |
              ha-card {
                background: #1e1e1e;
                border-radius: 16px;
                padding: 12px 16px;
                color: white;
              }
            entities:
              - entity: sensor.sua_entidade_aqui_area_de_limpeza_atual
                name: Área

Esse ainda tá em teste e não sei se vai resolver a questão do aspirador desligar quando estiver em idle mas, vou colocar aqui caso alguém tenha alguma ideia do que fazer…

    ## Automação para Manter o Aspirador Ligado Burlando o Idle##

    alias: Manter Aspirador acordado e forçar reconexão se necessário
    description: >
      Tenta manter o aspirador acessível no LocalTuya. Se falhar após 2
      minutos, força o reload da integração para restabelecer a conexão.
    triggers:
      - minutes: /5
        trigger: time_pattern
      - entity_id: vacuum.coloque_sua_entidade_aqui
        to: unavailable
        for:
          minutes: 2
        trigger: state
    conditions:
      - condition: state
        entity_id: vacuum.coloque_sua_entidade_aqui
        state: unavailable
    actions:
      - choose:
          - conditions:
              - condition: template
                value_template: "{{ trigger.platform == 'time_pattern' }}"
            sequence:
              - target:
                  entity_id: vacuum.coloque_sua_entidade_aqui
                action: homeassistant.update_entity
                data: {}
          - conditions:
              - condition: template
                value_template: "{{ trigger.platform == 'state' }}"
            sequence:
              - data:
                  entry_id: id_sua_entidade_no_local_tuya
                action: homeassistant.reload_config_entry
    mode: single

Espero contribuir de alguma forma e se alguém tiver soluções melhores pra compartilhar, isso pra mim está funcionando, a automação ainda nao testei 100% fiz agora a tarde e como coloquei antes o aspirador pra passar ele ainda está carregando então, online.

Detalhe do card: Nao estou usando a função passar pano, por isso no card não tem definido mas com os detalhes ai acredito que consigam fazer tranquilamente seguindo a lógica do codigo.

1 curtida