Una integración personalizada de Home Assistant para el manejo local de dispositivos basados en Tuya.
Esta integración personalizada actualiza el estado del dispositivo mediante actualizaciones automáticas en lugar de sondeos, por lo que las actualizaciones de estado son rápidas (incluso cuando se operan manualmente). La integración también admite las API de Tuya IoT Cloud, para la recuperación de información y de las claves locales de los dispositivos.
NOTA: La configuración de la cuenta API de la nube no es obligatoria (LocalTuya también puede funcionar sin ella), pero se recomienda encarecidamente para una fácil recuperación (y actualización automática después de volver a emparejar un dispositivo) de las claves locales. Las llamadas a la API de la nube se realizan solo al inicio y cuando se necesita una actualización de la clave local.
Actualmente se admiten los siguientes tipos de dispositivos Tuya:
El monitoreo de energía (voltaje, corriente, vatios, etc.) es compatible con dispositivos compatibles.
Actualmente, se admiten los protocolos Tuya del 3.1 al 3.4.
El desarrollo de este repositorio comenzó como código de @NameLessJedi, @mileperhour y @TradeFace. Luego, su código fue profundamente refactorizado para proporcionar una integración adecuada con el entorno de Home Assistant, agregando flujo de configuración y otras características. Consulte la sección "Gracias a" a continuación.
La forma más sencilla, si utiliza HACS, es instalar LocalTuya a través de HACS.
Para la instalación manual, copie la carpeta localtuya y todo su contenido en la carpeta custom_components de Home Assistant. Esta carpeta suele estar dentro de su carpeta /config
. Si está ejecutando Hass.io, use SAMBA para copiar la carpeta. Si está ejecutando Home Assistant Supervised, la carpeta custom_components puede estar ubicada en /usr/share/hassio/homeassistant
. Es posible que deba crear la carpeta custom_components
y luego copiar la carpeta localtuya y todo su contenido en ella.
NOTA: Debe tener la clave y la identificación de su dispositivo Tuya para poder utilizar LocalTuya. La forma más sencilla es configurar la cuenta API de la nube en la integración. Si decide no hacerlo, hay varias formas de obtener las claves locales según su entorno y los dispositivos que posee. Un buen lugar para empezar a obtener información es https://github.com/codetheweb/tuyapi/blob/master/docs/SETUP.md o https://pypi.org/project/tinytuya/.
NOTA 2: Si planea integrar estos dispositivos en una red que tiene Internet y bloquea su acceso a Internet, también debe bloquear las solicitudes de DNS (al servidor DNS local, por ejemplo, 192.168.1.1). Si solo bloquea Internet saliente, el dispositivo permanecerá en un estado zombie; Rechazará/no responderá a cualquier conexión con la clave local. Por lo tanto, primero debe conectar los dispositivos con una conexión a Internet activa, tomar la clave local de cada dispositivo e implementar el bloqueo.
NOTA: a partir de la versión 4.0.0, ya no se admite la configuración mediante archivos YAML. La integración solo se puede configurar mediante el flujo de configuración.
Para comenzar a configurar la integración, simplemente presione el botón "+AGREGAR INTEGRACIÓN" en la página Configuración - Integraciones y seleccione LocalTuya en el menú desplegable. Aparecerá la página de configuración de Cloud API, donde se le solicitará que ingrese las credenciales de su cuenta de Tuya IoT Platform:
Para configurar una cuenta de Tuya IoT Platform y configurar un proyecto en ella, consulte las instrucciones para la integración oficial de Tuya: https://www.home-assistant.io/integrations/tuya/ El lugar para encontrar el ID de cliente y el secreto es se describe en este enlace (en el párrafo "Obtener clave de autorización"), mientras que la ID de usuario se puede encontrar en la subpestaña "Vincular cuenta de la aplicación Tuya" dentro del proyecto de la nube:
Nota: como se indica en el enlace anterior, si ya tiene una cuenta y un proyecto de IoT, asegúrese de que haya sido creado después del 25 de mayo de 2021 (debido a los cambios introducidos en la nube para Tuya 2.0). De lo contrario, deberá crear un nuevo proyecto. Consulte la siguiente captura de pantalla para saber dónde verificar la fecha de creación de su proyecto:
Después de presionar el botón Enviar, se completa la primera configuración y se agregará la integración.
Nota: no es obligatorio ingresar las credenciales de la API de la nube: puede optar por marcar el botón "No configurar una cuenta de API de la nube" y la integración se agregará de todos modos.
Una vez configurada la integración, se pueden agregar y configurar dispositivos presionando el botón Configurar en la página Integraciones:
El menú de configuración es el siguiente:
Desde este menú, puede seleccionar "Reconfigurar cuenta API de Cloud" para editar sus credenciales y configuraciones de Tuya Cloud, en caso de que hayan cambiado o si la integración se migró desde las versiones v.3.xx.
Luego puede continuar agregando o editando sus dispositivos Tuya.
Si selecciona "Agregar o editar un dispositivo", aparecerá un menú desplegable que contiene la lista de dispositivos detectados (usando el descubrimiento automático si se seleccionó agregar, o la lista de dispositivos ya configurados si se seleccionó editar): puede seleccione uno de estos, o ingrese manualmente todos los parámetros seleccionando la opción "...".
Nota: La aplicación tuya en su dispositivo debe estar cerrada para que los siguientes pasos funcionen de manera confiable.
Si ha seleccionado una entrada, solo necesita ingresar el nombre descriptivo y la clave local del dispositivo. Estos valores se recuperarán automáticamente si ha configurado su cuenta API de la nube; de lo contrario, deberá ingresarlos manualmente.
Configurar el intervalo de escaneo es opcional, solo es necesario si los valores de energía/potencia no se actualizan con suficiente frecuencia de forma predeterminada. Los valores inferiores a 10 segundos pueden causar problemas de estabilidad.
Configurar el 'DPS manual para agregar' es opcional, solo es necesario si el dispositivo no anuncia el DPS correctamente hasta que la entidad se haya inicializado correctamente. Esta configuración a menudo se puede evitar conectando/inicializando primero el dispositivo con la aplicación Tuya, luego cerrando la aplicación y luego agregando el dispositivo a la integración. Nota: Cualquier DPS agregado usando esta opción tendrá un valor de -1 durante la configuración.
Configurar los 'DPID para enviar en el comando RESET' es opcional. Se utiliza cuando un dispositivo no responde a ningún comando de Tuya después de un ciclo de encendido, pero se puede conectar a (estado zombie). Este escenario ocurre principalmente cuando el dispositivo no puede acceder a Internet. Los DPids variarán entre dispositivos, pero normalmente se utiliza "18,19,20". Si se agregan aquí entradas incorrectas, es posible que el dispositivo no salga del estado zombie. Por lo general, aquí solo se ingresan los DPID del sensor.
Una vez que presionas "Enviar", se prueba la conexión para comprobar que todo funciona.
Luego, es el momento de agregar las entidades: este paso se realizará varias veces. Primero, seleccione el tipo de entidad en el menú desplegable para configurarlo. Una vez que haya definido todas las entidades necesarias, deje marcada la casilla de verificación "No agregar más entidades": esto completará el procedimiento.
Para cada entidad, se debe seleccionar el DP asociado. Todas las opciones que requieran seleccionar un DP proporcionarán un menú desplegable que mostrará todos los DP disponibles que se encuentran en el dispositivo (¡¡con su estado actual!!) para una fácil identificación.
Nota: Si su dispositivo requiere que un LocalTuya envíe un valor de inicialización a la entidad para que funcione, esto se puede configurar (en entidades admitidas) a través de la opción 'Entidad pasiva'. Opcionalmente puede especificar el valor de inicialización que se enviará
Cada tipo de entidad tiene diferentes opciones para configurar. A continuación se muestra un ejemplo de la entidad "cambiar":
Una vez que configure las entidades, el procedimiento estará completo. Ahora puedes asociar el dispositivo con un Área en Home Assistant
Si actualiza LocalTuya desde v3.xx o anterior, la entrada de configuración se migrará automáticamente a la nueva configuración. Todo debería funcionar como antes de la actualización, aparte del hecho de que en la pestaña Integración verá solo una integración LocalTuya (que muestra la cantidad de dispositivos y entidades configuradas) en lugar de varias integraciones agrupadas dentro de LocalTuya Box. Esto sucederá tanto si la configuración anterior se realizó usando archivos YAML como con el flujo de configuración. Una vez migrado, puede ingresar las credenciales de su cuenta Tuya IoT para habilitar el soporte para la API de la nube (y beneficiarse de la recuperación de la clave local y la actualización automática): consulte el menú Configuración.
Si configuró LocalTuya usando archivos YAML, puede eliminar todas sus referencias dentro de los archivos YAML porque ya no se considerarán, por lo que podrían generar confusión (por supuesto, solo se debe conservar la parte de configuración del registrador, consulte Depuración).
Puedes obtener el Monitoreo de Energía (tensión, corriente) de dos maneras diferentes:
sensor :
- platform : template
sensors :
tuya-sw01_voltage :
value_template : >-
{{ states.switch.sw01.attributes.voltage }}
unit_of_measurement : ' V '
tuya-sw01_current :
value_template : >-
{{ states.switch.sw01.attributes.current }}
unit_of_measurement : ' mA '
tuya-sw01_current_consumption :
value_template : >-
{{ states.switch.sw01.attributes.current_consumption }}
unit_of_measurement : ' W '
Existe una multitud de climas basados en Tuya, tanto calentadores como termostatos y aire acondicionado. Todo parece estar integrado de diferentes maneras y es difícil encontrar un mapeo de DP común. A continuación se muestra una tabla de mapeo de DP a producto que actualmente se ve funcionando. Úselo como guía para su propio mapeo y contribuya a la lista si tiene la posibilidad.
PD | Moes BHT 002 | Qlima WMS S + SC52 (AB;AF) | avatto |
---|---|---|---|
1 | Identificación: Activado/Desactivado {verdadero, falso} | Identificación: Activado/Desactivado {verdadero, falso} | Identificación: Activado/Desactivado {verdadero, falso} |
2 | Temperatura objetivo Entero, escalado: 0,5 | Temperatura objetivo Entero, escalando 1 | Temperatura objetivo Entero, escalando 1 |
3 | Temperatura actual Entero, escalado: 0,5 | Temperatura actual Entero, escalado: 1 | Temperatura actual Entero, escalado: 1 |
4 | Modo {0, 1} | Modo {"caliente", "viento", "húmedo", "frío", "automático"} | ? |
5 | Modo ecológico ? | Modo ventilador {"fuerte", "alto", "medio", "bajo", "automático"} | ? |
15 | No compatible | Compatible, desconocido {verdadero, falso} | ? |
19 | No compatible | Unidad de temperatura {"c", "f"} | ? |
23 | No compatible | Compatible, desconocido Entero, por ejemplo. 68 | ? |
24 | No compatible | Compatible, desconocido Entero, por ejemplo. 64 | ? |
101 | No compatible | Temperatura exterior Entero. Escalado: 1 | ? |
102 | Temperatura del sensor externo Entero, escalado: 0,5 | Compatible, desconocido Entero, por ejemplo. 34 | ? |
104 | Compatible, desconocido {verdadero, falso(?)} | No compatible | ? |
Termostato Moes BHT 002 Avatto
Siempre que escriba un informe de error, será de gran ayuda incluir registros de depuración directamente (de lo contrario, simplemente los solicitaremos y tomará más tiempo). Así que habilite registros de depuración como este e inclúyalos en su problema:
logger :
default : warning
logs :
custom_components.localtuya : debug
custom_components.localtuya.pytuya : debug
Luego, edite el dispositivo que muestra problemas y marque el botón "Habilitar depuración para este dispositivo".
Crear un sensor (contador) (bueno y preciso) de Energía (kWh) -no solo Potencia, sino en base a ella-. Ideas: Utilice: https://www.home-assistant.io/integrations/integration/ y https://www.home-assistant.io/integrations/utility_meter/
Todo lo enumerado en el n.° 15
NameLessJedi https://github.com/NameLessJedi/localtuya-homeassistant y mileperhour https://github.com/mileperhour/localtuya-homeassistant son las principales fuentes de inspiración y cuyo código para interruptores no ha cambiado sustancialmente.
TradeFace, por ser el único en proporcionar el código correcto para la comunicación con la portada (en particular, el comando 0x0d para el estado en lugar del 0x0a, y necesidades relacionadas como la doble respuesta a recibir): https://github. es/TradeFace/tuya/
sean6541, para el controlador Python funcional (estándar) para dispositivos Tuya.
jasonacox, para el proyecto TinyTuya desde donde pude importar el código para comunicarme con dispositivos usando el protocolo 3.4.
postlund, por las ideas, por codificar el 95% de la refactorización y mejorar la calidad de este repositorio a niveles difíciles de imaginar (al menos para mí) y por enseñarme MUCHO cómo funcionan las cosas en Home Assistant.