Tuya: Integración de calefacción y aire acondicionado

Descripción

Me gustaría poder controlar estos dispositivos que controlan la calefacción a través de Wi-Fi y el controlador Tuya. Estos dispositivos funcionan en Home Assistant, pero aún no son compatibles con Gladys.

  • Konyks eCosy (ref amazon: Amazon.fr )
  • 海尔家用空调(全功能)(勿动,不要任何修改)(Aire acondicionado doméstico Haier (Funcionalidades completas) (No modificar ni alterar))

Los aires acondicionados fueron instalados por un profesional. Son de la marca Thermor. La aplicación Thermor no es compatible con Home-Assistant. Pero el puente Tuya detecta los splits como marca de origen Haier.

El eCosy controla la única calefacción que tengo en funcionamiento en mi casa. Lo compré antes de conocer Home-Assistant y Zigbee.

Gracias por su ayuda.

Hola @Papashultz,

Yo también necesito Tuya. Acabo de instalar 2 aires acondicionados Airton + 1 termostato de cable piloto que pasa por Tuya. De hecho, he podido instalar esto en HA bastante fácilmente, y de forma local (bueno, anunciado como tal, pero aún así hay que conectarse a través de la nube).

Creo que miraré esto pronto para modificar la integración actual y lograr conectarme.

Bueno, ahora puedo conectarme:

Los errores conocidos se reportan:


Los dispositivos se reportan directamente con la local_key y el id:

Y para los implementados, se añaden correctamente:

Intentaré en el próximo PR añadir las climatizaciones y cables piloto.

Hola,

Tengo un primer borrador para la integración de TUYA para la actualización de la configuración de la cuenta de Tuya. En particular, he modificado el nombre de los campos con los nombres correspondientes al sitio web. He ocultado el « Client Secret » como se hace con las contraseñas. Y he añadido información para la renovación de los períodos de prueba (que se puede renovar un máximo de 3 meses, pero es totalmente gratuito y generalmente se aplica unos minutos después de la solicitud).
Esta actualización también integra la base para la comunicación local (sin cloud). La gestión de los interruptores funciona localmente.
La PR:

En una futura PR añadiré los dispositivos como se vio anteriormente.

PD:
@pierre-gilles, sin embargo, tengo un problema con la versión del protocolo 3.5 de Tuya. No encuentro ningún proyecto de Node JS para este protocolo. Al parecer, solo TinyTuya lo hace, y está en Python. No encuentro ningún proyecto mantenido en este sentido (el protocolo 3.5 no es tan nuevo, tiene más de 3 años).

ChatGPT me da dos posibilidades:

  • Redesarrollar nosotros mismos la gestión del protocolo como lo hace « TinyTuya » en Node JS, pero tendremos que mantenerlo posteriormente
  • Integrar junto a Gladys la gestión de Python para instalar TinyTuya… No creo que sea tu deseo…

¿Tendrías una solución para esto?

Si algún usuario de dispositivos Tuya pasa por aquí, me interesaría recibir comentarios sobre una imagen de prueba. Para esta conexión en la nube / local, así como para futuras adiciones.
Se está construyendo una imagen: docker pull terdious/gladys:tuya-test:

docker run -d \
--log-opt max-size=10m \
--restart=always \
--privileged \
--network=host \
--name gladys-tuya-test \
-e NODE_ENV=production \
-e SERVER_PORT=81 \
-e TZ=Europe/Paris \
-e SQLITE_FILE_PATH=/var/lib/gladysassistant/gladys-tuya-test.db \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /var/lib/gladysassistant:/var/lib/gladysassistant \
-v /dev:/dev \
terdious/gladys:tuya-test

Hola,

Me gustaría probar, pero lo implemento a través de Portainer. Si me confirman que mi stack es correcta, lo probaré tan pronto como tenga su respuesta.

services:
  tuya-test:
    image: terdious/gladys:tuya-test
    container_name: tuya-test
    restart: always
    privileged: true
    network_mode: host
    environment:
      NODE_ENV: production
      SQLITE_FILE_PATH: /var/lib/gladysassistant/gladys-tuya-test.db
      SERVER_PORT: 81 #el puerto de gladys es 83 en mi caso, ¿debo cambiarlo?
      TZ: Europe/Paris
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
      - /var/lib/gladysassistant:/var/lib/gladysassistant
      - /dev:/dev

Hola @Papashultz,

Tu pila parece buena y coincide con mi orden.

No, al contrario, el objetivo aquí es probar en una sesión al lado de tu producción. No es necesario cortar tu producción. Solo verifica que el puerto 81 no esté en uso, de lo contrario, pon uno libre y accesible ^^
Lo principal es esto: SQLITE_FILE_PATH: /var/lib/gladysassistant/gladys-tuya-test.db

Asumamos que soy un usuario “de base”, no un desarrollador. Como tal, esto es lo que se me ocurre como probador:

  • Tengo un poco de dificultad con las ayudas de la configuración de Tuya que están justo encima de los campos a rellenar, incluso con la versión actualmente en producción. Tuve que hacer un esfuerzo real para encontrar la solución pensando “ah sí, hay una documentación, ¿dónde estaba?”: ¿Es posible añadir un enlace a la documentación de Tuya que se abra en una nueva ventana?

Aquí entre:

Puede conectar Gladys […]

et

Necesita […]

¿podría añadir una línea del tipo:

Para mayor facilidad, puede abrir una nueva ventana hacia nuestro tutorial haciendo clic aquí [enlace a: https://gladysassistant.com/fr/docs/integrations/tuya/ ].

o bien poner un enlace directo que se abra hacia: Tuya Smart Developer Center

en la frase:”Debe crear luego un « Cloud Project » en su cuenta Tuya.” al nivel de « Cloud Project » ?

  • Estoy actualmente bloqueado aquí

No sé qué poner en el campo App Username. ¿Es el Project Code que encuentro en Tuya Smart Developer Center o es un nombre que encuentro en mi aplicación de smartphone?

  • Los objetos IP están, por el momento, en la misma red que Gladys. Por lo tanto, espero que el descubrimiento se haga solo.

Otra sugerencia no relacionada con el ejercicio actual: en Home-assistant la integración de Tuya se hace directamente mediante una conexión directa con la aplicación en el Smartphone mediante un enlace a través del código de usuario de la aplicación y luego mediante un retorno de código QR. ¿No sería más sencillo proceder así? Sobre todo porque implica tener una aplicación Tuya en el smartphone tanto para la solución Gladys como para la solución Home-Assistant.

A ojo:

He puesto el “Project code” en el último campo y lo he lanzado. ¡Funciona!

Si no es la respuesta correcta: decírmelo y decirme dónde debo ir.

Si es la respuesta correcta, cambiar el nombre del campo “App Username” a “Project code” para que sea más claro.

La dirección IP mostrada es la de la IP de mi router, pero no la de mi red local (192.168.1.0/24)

Tanto con Gladys production como con Gladys-test, no es posible abrir la puerta del garaje con el interruptor.

La aplicación tampoco funciona en Home Assistant.

Esta mañana, solo la aplicación Tuya de mi smartphone hace funcionar los dispositivos Tuya. :face_with_steam_from_nose:

@Papashultz,

Lo siento, tomaré el tiempo para responder completamente a tus mensajes, ya estoy haciendo los cambios con tus comentarios.

Respondo rápidamente a tu última pregunta:

Sí, es normal porque por el momento solo ha recuperado tus dispositivos a través de la nube.
¿Puedes eliminarlo de Gladys, luego reemplazar la dirección IP de tu router por la del dispositivo en tu red local? Luego haz clic en « Poll local des DP »
image
Si se llena automáticamente, entonces puedes guardar y volver a intentar tu comando.

En caso contrario, añadiré lo necesario para obtener la información necesaria.

Llevo un rato mirando en mi box para encontrar las direcciones IP de los objetos conectados y asignarles una IP fija.

¿Hay algún truco para encontrarlas?

¿Alguna idea de cómo podría hacerlo para encontrarlas entre las direcciones desconocidas?

La mejor y más rápida forma de hacer esto, desde cualquier máquina en la misma red:

  • Instalación de Python:

En Windows:

winget install Python.Python.3.12
python --version
pip --version

En Linux:

sudo apt update
sudo apt install python3 python3-pip
python3 --version
pip3 --version

En macOS:

brew install python
python3 --version
pip3 --version
  • Instalación de TinyTuya (usado por localTuya en HA):

Windows (PowerShell)
python -m tinytuya scan

Linux / macOS
python3 -m tinytuya scan

Y encontrarás las direcciones IP de tus dispositivos en la red de la siguiente manera:

La instalación de python3 fue bien.

No así la de tinytuya. Estoy en ssh directamente bajo Debian.

GlaDOS nunca es muy cooperativa. :joy:

Buen provecho.

Puedes hacerlo normalmente:

python3 -m pip install --user tinytuya
python3 -m tinytuya scan

¡Buen provecho! !

Definitivamente GlaDOS:

Lo siento, tal vez podamos hacerlo aún mejor en Gladys ^^
Déjame 5/10 minutos para una actualización de la imagen !!

¡Lo conseguiré!! ^^
Y ya he tenido en cuenta la mayoría de tus comentarios anteriores ^^

Vale, pues he actualizado la imagen. Debería estar bien ^^

Entonces, en cuanto a Portainer, no sé cómo actualizar la imagen, pero yo hago:

docker pull terdious/gladys:tuya-test

docker stop gladys-tuya-test

docker rm gladys-tuya-test

docker run -d \
--log-opt max-size=10m \
--restart=always \
--privileged \
--network=host \
--name gladys-tuya-test \
-e NODE_ENV=production \
-e SERVER_PORT=81 \
-e TZ=Europe/Paris \
-e SQLITE_FILE_PATH=/var/lib/gladysassistant/gladys-tuya-test.db \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /var/lib/gladysassistant:/var/lib/gladysassistant \
-v /dev:/dev \
terdious/gladys:tuya-test

Por lo tanto, @Papashultz, ahora tienes todos los enlaces solicitados (creo):

El enlace por código QR no es posible en Gladys, o al menos no he encontrado una solución « fácil » de implementar por el momento.

Ahora, en la página de descubrimiento, si haces clic en el botón Escanear Local:

Deberías encontrar tus dispositivos con su dirección IP y protocolo:

Atención, por el momento no hay gestión del protocolo 3.5…

Windows no es más cooperativo que GlaDOS.

PS C:\WINDOWS\system32> python --version
Python 3.12.10
PS C:\WINDOWS\system32> pip --version
pip 25.0.1 from C:\Users\alain\AppData\Local\Programs\Python\Python312\Lib\site-packages\pip (python 3.12)
PS C:\WINDOWS\system32> python -m tinytuya scan
C:\Users\alain\AppData\Local\Programs\Python\Python312\python.exe: No module named tinytuya
PS C:\WINDOWS\system32> python3 -m pip install --user tinytuya
Python no se encuentra; ejecute sin argumentos para instalar desde Microsoft Store o desactive este acceso directo en Configuración > Aplicaciones > parámetros de
PS C:\WINDOWS\system32>

En cuanto a Portainer:

Nos aseguramos de que todo esté bien, podemos agregar el número de la versión, en la línea image.

Solo queda activar Re-pull image and redeploy y hacer clic en Update