From 7474b638bb6169ac1bcd8a916f487cb33115b6a4 Mon Sep 17 00:00:00 2001 From: Alex Morega Date: Tue, 8 Feb 2022 08:40:42 +0200 Subject: [PATCH 1/8] Improve the Readme * Add link to _tinytuya_. * Clarify steps in Home Assistant Configuration screens. * Set `yaml` syntax on a code example. --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 7d43da2..0234c5d 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ Alternatively, you can install localtuya through [HACS](https://hacs.xyz/) by ad # Usage: -**NOTE: You must have your Tuya device's Key and ID in order to use localtuya. There are several ways to obtain the localKey depending on your environment and the devices you own. A good place to start getting info is https://github.com/codetheweb/tuyapi/blob/master/docs/SETUP.md .** +**NOTE: You must have your Tuya device's Key and ID in order to use localtuya. There are several ways to obtain the localKey depending on your environment and the devices you own. A good place to start getting info is https://github.com/codetheweb/tuyapi/blob/master/docs/SETUP.md or https://pypi.org/project/tinytuya/.** **NOTE - Nov 2020: If you plan to integrate these devices on a network that has internet and blocking their internet access, you must also block DNS requests (to the local DNS server, e.g. 192.168.1.1). If you only block outbound internet, then the device will sit in a zombie state; it will refuse / not respond to any connections with the localkey. Therefore, you must first connect the devices with an active internet connection, grab each device localkey, and implement the block.** @@ -114,7 +114,7 @@ Restart Home Assistant when finished editing. # Option two: Using config flow -Start by going to Configuration - Integration and pressing the "+" button to create a new Integration, then select LocalTuya in the drop-down menu. +Start by going to Configuration - Devices & Services - Integration and pressing the "+ Add integration" button to create a new Integration, then select LocalTuya in the drop-down menu. Wait for 6 seconds for the scanning of the devices in your LAN. Then, a drop-down menu will appear containing the list of detected devices: you can select one of these, or manually input all the parameters. @@ -157,7 +157,7 @@ You can obtain Energy monitoring (voltage, current) in two different ways: Note: these values are already divided by 10 for Voltage and Consumption 1) On some devices, you may find that the energy values are not updating frequently enough by default. If so, set the scan interval (see above) to an appropriate value. Settings below 10 seconds may cause stability issues, 30 seconds is recommended. -``` +```yaml sensor: - platform: template sensors: From f40b0491cfe2cdd44770d2719b532c80288b51fb Mon Sep 17 00:00:00 2001 From: Leandro Issa <67451572+LeandroIssa@users.noreply.github.com> Date: Tue, 14 Jun 2022 11:08:39 -0300 Subject: [PATCH 2/8] Add files via upload --- .../localtuya/translations/pt-BR.json | 243 ++++++++---------- 1 file changed, 108 insertions(+), 135 deletions(-) diff --git a/custom_components/localtuya/translations/pt-BR.json b/custom_components/localtuya/translations/pt-BR.json index c27dc51..a2feed4 100644 --- a/custom_components/localtuya/translations/pt-BR.json +++ b/custom_components/localtuya/translations/pt-BR.json @@ -5,7 +5,40 @@ "device_updated": "A configuração do dispositivo foi atualizada!" }, "error": { - "cannot_connect": "Não é possível se conectar ao dispositivo. Verifique se o endereço está correto e tente novamente.", + "authentication_failed": "Falha ao autenticar.\n{msg}", + "cannot_connect": "Não é possível se conectar ao dispositivo. Verifique se o endereço está correto e tente novamente", + "device_list_failed": "Falha ao recuperar a lista de dispositivos.\n{msg}", + "invalid_auth": "Falha ao autenticar com o dispositivo. Verifique se o ID do dispositivo e a chave local estão corretos.", + "unknown": "Ocorreu um erro desconhecido. Consulte o registro para obter detalhes.", + "entity_already_configured": "A entidade com este ID já foi configurada.", + "address_in_use": "AddresO endereço usado para descoberta já está em uso. Certifique-se de que nenhum outro aplicativo o esteja usando (porta TCP 6668).s used for discovery is already in use. Make sure no other application is using it (TCP port 6668).", + "discovery_failed": "Algo falhou ao descobrir dispositivos. Consulte o registro para obter detalhes.", + "empty_dps": "A conexão com o dispositivo foi bem-sucedida, mas nenhum ponto de dados foi encontrado. Tente novamente. Crie um novo issue e inclua os logs de depuração se o problema persistir." + }, + "step": { + "user": { + "title": "Configuração da conta da API do Cloud", + "description": "Insira as credenciais para a API Tuya Cloud.", + "data": { + "region": "Região do servidor de API", + "client_id": "ID do cliente", + "client_secret": "Secret", + "user_id": "ID de usuário", + "user_name": "Nome de usuário", + "no_cloud": "Não configure uma conta de API da Cloud" + } + } + } + }, + "options": { + "abort": { + "already_configured": "O dispositivo já foi configurado.", + "device_success": "Dispositivo {dev_name} {action} com sucesso." + }, + "error": { + "authentication_failed": "Falha ao autenticar.\n{msg}", + "cannot_connect": "Não é possível se conectar ao dispositivo. Verifique se o endereço está correto e tente novamente", + "device_list_failed": "Falha ao recuperar a lista de dispositivos.\n{msg}", "invalid_auth": "Falha ao autenticar com o dispositivo. Verifique se o ID do dispositivo e a chave local estão corretos.", "unknown": "Ocorreu um erro desconhecido. Consulte o registro para obter detalhes.", "entity_already_configured": "A entidade com este ID já foi configurada.", @@ -14,202 +47,142 @@ "empty_dps": "A conexão com o dispositivo foi bem-sucedida, mas nenhum ponto de dados foi encontrado. Tente novamente. Crie um novo issue e inclua os logs de depuração se o problema persistir." }, "step": { - "user": { - "title": "Descoberta de dispositivo", - "description": "Escolha um dos dispositivos descobertos automaticamente ou clique em `...` para adicionar um dispositivo manualmente.", + "yaml_import": { + "title": "Não suportado", + "description": "As opções não podem ser editadas quando configuradas via YAML." + }, + "init": { + "title": "Configuração LocalTuya", + "description": "Selecione a ação desejada.", "data": { - "discovered_device": "Dispositivo descoberto" + "add_device": "Adicionar um novo dispositivo", + "edit_device": "Editar um dispositivo", + "setup_cloud": "Reconfigurar a conta da API da Cloud" } }, - "basic_info": { - "title": "Adicionar dispositivo Tuya", - "description": "Preencha os detalhes básicos do dispositivo. O nome inserido aqui será usado para identificar a própria integração (como visto na página `Integrations`). Você adicionará entidades e dará nomes a elas nas etapas a seguir.", + "add_device": { + "title": "Adicionar um novo dispositivo", + "description": "Escolha um dos dispositivos descobertos automaticamente ou `...` para adicionar um dispositivo manualmente.", + "data": { + "selected_device": "Dispositivos descobertos" + } + }, + "edit_device": { + "title": "Editar um novo dispositivo", + "description": "Escolha o dispositivo configurado que você deseja editar.", + "data": { + "selected_device": "Dispositivos configurados" + } + }, + "cloud_setup": { + "title": "Configuração da conta da API da Cloud", + "description": "Insira as credenciais para a API Tuya Cloud.", + "data": { + "region": "Região do servidor de API", + "client_id": "ID do Cliente", + "client_secret": "Secret", + "user_id": "ID do usuário", + "user_name": "Nome de usuário", + "no_cloud": "Não configure a conta da API da Cloud" + } + }, + "configure_device": { + "title": "Configurar dispositivo Tuya", + "description": "Preencha os detalhes do dispositivo {for_device}.", "data": { "friendly_name": "Nome", "host": "Host", "device_id": "ID do dispositivo", "local_key": "Local key", "protocol_version": "Versão do protocolo", - "scan_interval": "Intervalo do escaneamento (segundos, somente quando não estiver atualizando automaticamente)" + "scan_interval": "Intervalo de escaneamento (segundos, somente quando não estiver atualizando automaticamente)", + "entities": "Entidades (desmarque uma entidade para removê-la)" } }, "pick_entity_type": { "title": "Seleção do tipo de entidade", "description": "Escolha o tipo de entidade que deseja adicionar.", "data": { - "platform_to_add": "Platforma", - "no_additional_platforms": "Não adicione mais entidades" + "platform_to_add": "Plataforma", + "no_additional_entities": "Não adicione mais entidades" } }, - "add_entity": { - "title": "Adicionar nova entidade", - "description": "Por favor, preencha os detalhes de uma entidade com o tipo `{platform}`. Todas as configurações, exceto `ID`, podem ser alteradas na página Opções posteriormente.", + "configure_entity": { + "title": "Configurar entidade", + "description": "Por favor, preencha os detalhes de {entity} com o tipo `{platform}`. Todas as configurações, exceto `ID`, podem ser alteradas na página Opções posteriormente.", "data": { "id": "ID", - "friendly_name": "Name fantasia", - "current": "Atual", - "current_consumption": "Consumo atual", - "voltage": "Voltagem", - "commands_set": "Conjunto de comandos Open_Close_Stop", - "positioning_mode": "Modo de posicão", - "current_position_dp": "Posição atual (somente para o modo de posição)", - "set_position_dp": "Definir posição (somente para o modo de posição)", - "position_inverted": "Inverter posição 0-100 (somente para o modo de posição)", - "span_time": "Tempo de abertura completo, em segundos. (somente para o modo temporizado)", - "unit_of_measurement": "Unidade de medida", - "device_class": "Classe do dispositivo", - "scaling": "Fator de escala", - "state_on": "Valor On", - "state_off": "Valor Off", - "powergo_dp": "Potência DP (Geralmente 25 ou 2)", - "idle_status_value": "Status ocioso (separado por vírgula)", - "returning_status_value": "Status de retorno", - "docked_status_value": "Status docked (separado por vírgula)", - "fault_dp": "Falha DP (Geralmente 11)", - "battery_dp": "Status da bateria DP (normalmente 14)", - "mode_dp": "Modo DP (Geralmente 27)", - "modes": "Lista de modos", - "return_mode": "Modo de retorno para base", - "fan_speed_dp": "Velocidades do ventilador DP (normalmente 30)", - "fan_speeds": "Lista de velocidades do ventilador (separadas por vírgulas)", - "clean_time_dp": "Tempo de Limpeza DP (Geralmente 33)", - "clean_area_dp": "Área Limpa DP (Geralmente 32)", - "clean_record_dp": "Limpar Registro DP (Geralmente 34)", - "locate_dp": "Localize DP (Geralmente 31)", - "paused_state": "Estado de pausa (pausa, pausado, etc)", - "stop_status": "Status de parada", - "brightness": "Brilho (somente para cor branca)", - "brightness_lower": "Valor mais baixo do brilho", - "brightness_upper": "Valor mais alto do brilho", - "color_temp": "Temperatura da cor", - "color_temp_reverse": "Temperatura da cor reversa", - "color": "Cor", - "color_mode": "Modo de cor", - "color_temp_min_kelvin": "Minima temperatura de cor em K", - "color_temp_max_kelvin": "Máxima temperatura de cor em K", - "music_mode": "Modo de música disponível", - "scene": "Cena", - "fan_speed_control": "dps de controle de velocidade do ventilador", - "fan_oscillating_control": "dps de controle oscilante do ventilador", - "fan_speed_min": "velocidade mínima do ventilador inteiro", - "fan_speed_max": "velocidade máxima do ventilador inteiro", - "fan_speed_ordered_list": "Lista de modos de velocidade do ventilador (substitui a velocidade min/max)", - "fan_direction":"direção do ventilador dps", - "fan_direction_forward": "string de dps para frente", - "fan_direction_reverse": "string dps reversa", - "current_temperature_dp": "Temperatura atual", - "target_temperature_dp": "Temperatura alvo", - "temperature_step": "Etapa de temperatura (opcional)", - "max_temperature_dp": "Max Temperatura (opcional)", - "min_temperature_dp": "Min Temperatura (opcional)", - "precision": "Precisão (opcional, para valores de DPs)", - "target_precision": "Precisão do alvo (opcional, para valores de DPs)", - "temperature_unit": "Unidade de Temperatura (opcional)", - "hvac_mode_dp": "Modo HVAC DP (opcional)", - "hvac_mode_set": "Conjunto de modo HVAC (opcional)", - "hvac_action_dp": "Ação atual de HVAC DP (opcional)", - "hvac_action_set": "Conjunto de ação atual de HVAC (opcional)", - "preset_dp": "Predefinições DP (opcional)", - "preset_set": "Conjunto de predefinições (opcional)", - "eco_dp": "Eco DP (opcional)", - "eco_value": "Valor ECO (opcional)", - "heuristic_action": "Ativar ação heurística (opcional)" - } - } - } - }, - "options": { - "step": { - "init": { - "title": "Configurar dispositivo Tuya", - "description": "Configuração básica para o ID do dispositivo `{device_id}`.", - "data": { "friendly_name": "Nome fantasia", - "host": "Host", - "local_key": "Local key", - "protocol_version": "Versão do protocolo", - "scan_interval": "Intervalo de escaneamento (segundos, somente quando não estiver atualizando automaticamente)", - "entities": "Entidades (desmarque uma entidade para removê-la)" - } - }, - "entity": { - "title": "Adicionar nova entidade", - "description": "Por favor, preencha os detalhes de uma entidade com o tipo `{platform}`. Todas as configurações, exceto `ID`, podem ser alteradas na página Opções posteriormente.", - "data": { - "id": "ID", - "friendly_name": "Name fantasia", "current": "Atual", "current_consumption": "Consumo atual", "voltage": "Voltagem", - "commands_set": "Conjunto de comandos Open_Close_Stop", - "positioning_mode": "Modo de posicão", - "current_position_dp": "Posição atual (somente para o modo de posição)", - "set_position_dp": "Definir posição (somente para o modo de posição)", - "position_inverted": "Inverter posição 0-100 (somente para o modo de posição)", - "span_time": "Tempo de abertura completo, em segundos. (somente para o modo temporizado)", + "commands_set": "Conjunto de comandos Abrir_Fechar_Parar", + "positioning_mode": "Modo de posicionamento", + "current_position_dp": "Posição atual (somente para o modo *posição*)", + "set_position_dp": "Definir posição (somente para o modo *posição*)", + "position_inverted": "Inverter 0-100 posição (somente para o modo *posição*)", + "span_time": "Tempo de abertura completo, em segundos. (somente para o modo *temporizado*)", "unit_of_measurement": "Unidade de medida", "device_class": "Classe do dispositivo", "scaling": "Fator de escala", - "state_on": "Valor On", - "state_off": "Valor Off", + "state_on": "Valor ligado", + "state_off": "Valor desligado", "powergo_dp": "Potência DP (Geralmente 25 ou 2)", "idle_status_value": "Status ocioso (separado por vírgula)", "returning_status_value": "Status de retorno", - "docked_status_value": "Status docked (separado por vírgula)", + "docked_status_value": "Status encaixado (separado por vírgula)", "fault_dp": "Falha DP (Geralmente 11)", "battery_dp": "Status da bateria DP (normalmente 14)", "mode_dp": "Modo DP (Geralmente 27)", "modes": "Lista de modos", - "return_mode": "Modo de retorno para base", + "return_mode": "Modo de retorno para casa", "fan_speed_dp": "Velocidades do ventilador DP (normalmente 30)", "fan_speeds": "Lista de velocidades do ventilador (separadas por vírgulas)", - "clean_time_dp": "Tempo de Limpeza DP (Geralmente 33)", + "clean_time_dp": "Tempo Limpo DP (Geralmente 33)", "clean_area_dp": "Área Limpa DP (Geralmente 32)", "clean_record_dp": "Limpar Registro DP (Geralmente 34)", "locate_dp": "Localize DP (Geralmente 31)", "paused_state": "Estado de pausa (pausa, pausado, etc)", "stop_status": "Status de parada", "brightness": "Brilho (somente para cor branca)", - "brightness_lower": "Valor mais baixo do brilho", - "brightness_upper": "Valor mais alto do brilho", + "brightness_lower": "Valor mais baixo de brilho", + "brightness_upper": "Valor superior de brilho", "color_temp": "Temperatura da cor", "color_temp_reverse": "Temperatura da cor reversa", "color": "Cor", "color_mode": "Modo de cor", - "color_temp_min_kelvin": "Minima temperatura de cor em K", - "color_temp_max_kelvin": "Máxima temperatura de cor em K", + "color_temp_min_kelvin": "Temperatura de cor mínima em K", + "color_temp_max_kelvin": "Temperatura máxima de cor em K", "music_mode": "Modo de música disponível", "scene": "Cena", - "fan_speed_control": "dps de controle de velocidade do ventilador", - "fan_oscillating_control": "dps de controle oscilante do ventilador", - "fan_speed_min": "velocidade mínima do ventilador inteiro", - "fan_speed_max": "velocidade máxima do ventilador inteiro", + "select_options": "Entradas válidas, entradas separadas por um ;", + "select_options_friendly": "Opções fantasia ​​ao usuário, entradas separadas por um ;", + "fan_speed_control": "Dps de controle de velocidade do ventilador", + "fan_oscillating_control": "Dps de controle oscilante do ventilador", + "fan_speed_min": "Velocidade mínima do ventilador inteiro", + "fan_speed_max": "Velocidade máxima do ventilador inteiro", "fan_speed_ordered_list": "Lista de modos de velocidade do ventilador (substitui a velocidade min/max)", - "fan_direction":"direção do ventilador dps", - "fan_direction_forward": "string de dps para frente", - "fan_direction_reverse": "string dps reversa", + "fan_direction":"Direção do ventilador dps", + "fan_direction_forward": "Seqüência de dps para frente", + "fan_direction_reverse": "String dps reversa", "current_temperature_dp": "Temperatura atual", "target_temperature_dp": "Temperatura alvo", "temperature_step": "Etapa de temperatura (opcional)", - "max_temperature_dp": "Max Temperatura (opcional)", - "min_temperature_dp": "Min Temperatura (opcional)", + "max_temperature_dp": "Temperatura máxima (opcional)", + "min_temperature_dp": "Temperatura mínima (opcional)", "precision": "Precisão (opcional, para valores de DPs)", "target_precision": "Precisão do alvo (opcional, para valores de DPs)", "temperature_unit": "Unidade de Temperatura (opcional)", "hvac_mode_dp": "Modo HVAC DP (opcional)", "hvac_mode_set": "Conjunto de modo HVAC (opcional)", "hvac_action_dp": "Ação atual de HVAC DP (opcional)", - "hvac_action_set": "Conjunto de ação atual de HVAC (opcional)", + "hvac_action_set": "Conjunto de ação atual HVAC (opcional)", "preset_dp": "Predefinições DP (opcional)", "preset_set": "Conjunto de predefinições (opcional)", "eco_dp": "Eco DP (opcional)", - "eco_value": "Valor ECO (opcional)", + "eco_value": "Valor eco (opcional)", "heuristic_action": "Ativar ação heurística (opcional)" } - }, - "yaml_import": { - "title": "Não suportado", - "description": "As opções não podem ser editadas quando configuradas via YAML." } } }, From 2ee049f20487671379da94c3f25432e8e1f59abe Mon Sep 17 00:00:00 2001 From: emanu Date: Sat, 11 Jun 2022 13:14:17 +0200 Subject: [PATCH 3/8] Create it.json Added Italian translation --- .../localtuya/translations/it.json | 221 ++++++++++++++++++ 1 file changed, 221 insertions(+) create mode 100644 custom_components/localtuya/translations/it.json diff --git a/custom_components/localtuya/translations/it.json b/custom_components/localtuya/translations/it.json new file mode 100644 index 0000000..d658c19 --- /dev/null +++ b/custom_components/localtuya/translations/it.json @@ -0,0 +1,221 @@ +{ + "config": { + "abort": { + "already_configured": "Il dispositivo è già stato configurato.", + "device_updated": "La configurazione del dispositivo è stata aggiornata!" + }, + "error": { + "cannot_connect": "Impossibile connettersi al dispositivo. Verifica che l'indirizzo sia corretto e riprova.", + "invalid_auth": "Impossibile autenticarsi con il dispositivo. Verificare che l'ID dispositivo e la chiave locale siano corretti.", + "unknown": "Si è verificato un errore sconosciuto. Vedi il registro per i dettagli.", + "entity_already_configured": "L'entità con questo ID è già stata configurata.", + "address_in_use": "L'indirizzo utilizzato per il rilevamento è già in uso. Assicurati che nessun'altra applicazione lo stia utilizzando (porta TCP 6668).", + "discovery_failed": "Qualcosa non è andato a buon fine durante il rilevamento dei dispositivi. Vedi registro per i dettagli.", + "empty_dps": "Connessione al dispositivo riuscita ma nessun punto dati trovato, riprova. Apri un nuovo problema e includi i log di debug se il problema persiste." + }, + "step": { + "user": { + "title": "Dispositivi Trovati", + "description": "Scegli uno dei dispositivi rilevati automaticamente o `...` per aggiungere manualmente un dispositivo.", + "data": { + "discovered_device": "Dispositivo trovati" + } + }, + "basic_info": { + "title": "Aggiungi dispositivo Tuya", + "description": "Inserisci i dettagli di base del dispositivo. Il nome inserito qui verrà utilizzato per identificare l'integrazione stessa (come si vede nella pagina `Integrazioni`). Aggiungerai entità e assegnerai loro nomi nei passaggi seguenti.", + "data": { + "friendly_name": "Nome", + "host": "Host", + "device_id": "ID del dispositivo", + "local_key": "Chiave locale", + "protocol_version": "Versione protocollo", + "scan_interval": "Intervallo di scansione (secondi, solo quando non si aggiorna automaticamente)" + } + }, + "pick_entity_type": { + "title": "Selezione del tipo di entità", + "description": "Scegli il tipo di entità che desideri aggiungere.", + "data": { + "platform_to_add": "Piattaforma", + "no_additional_platforms": "Non aggiungere altre entità" + } + }, + "add_entity": { + "title": "Aggiungi una nuova entità", + "description": "Si prega di compilare i dettagli per un'entità con tipo `{platform}`. Tutte le impostazioni tranne 'ID' possono essere modificate dalla pagina Opzioni in un secondo momento.", + "data": { + "id": "ID", + "friendly_name": "Nome amichevole", + "current": "Attuale", + "current_consumption": "Consumo attuale", + "voltage": "Volaggio", + "commands_set": "Set di comandi Aperto_Chiuso_Stop", + "positioning_mode": "Modalità di posizionamento", + "current_position_dp": "Posizione corrente (solo per la modalità *posizione*)", + "set_position_dp": "Imposta posizione (solo per modalità *posizione*)", + "position_inverted": "Inverti posizione 0-100 (solo per modalità *posizione*)", + "span_time": "Orario di apertura totale, in sec. (solo per modalità *a tempo*)", + "unit_of_measurement": "Unità di misura", + "device_class": "Classe del dispositivo", + "scaling": "Fattore di scala", + "state_on": "Valore acceso", + "state_off": "Valore spento", + "powergo_dp": "Potenza DP (di solito 25 o 2)", + "idle_status_value": "Stato di inattività (separato da virgole)", + "returning_status_value": "Stato di ritorno", + "docked_status_value": "Stato ancorato (separato da virgole)", + "fault_dp": "Guasto DP (di solito 11)", + "battery_dp": "Stato batteria DP (di solito 14)", + "mode_dp": "Modalità DP (di solito 27)", + "modes": "Elenco delle modalità", + "return_mode": "Ritorno in modalità home", + "fan_speed_dp": "Velocità della ventola DP (di solito 30)", + "fan_speeds": "Elenco delle velocità della ventola (separato da virgola)", + "clean_time_dp": "Tempo di pulizia DP (di solito 33)", + "clean_area_dp": "Area pulita dp (di solito 32)", + "clean_record_dp": "Record pulito dp (di solito 34)", + "locate_dp": "Individua DP (di solito 31)", + "paused_state": "Pausa Stato (pausa, pausa, ecc.)", + "stop_status": "Stampa Stato", + "brightness": "Luminosità (solo per il colore bianco)", + "brightness_lower": "Luminosità valore inferiore", + "brightness_upper": "Valore superiore della luminosità", + "color_temp": "Temperatura di colore", + "color_temp_reverse": "Temperatura del colore inverso", + "color": "Colore", + "color_mode": "Modalità colore", + "color_temp_min_kelvin": "Temperatura del colore minima in K", + "color_temp_max_kelvin": "Temperatura di colore massima in k", + "music_mode": "Modalità musicale disponibile", + "scene": "Scena", + "select_options": "Voci valide, voci separate da una vigola (;)", + "select_options_friendly": "Opzioni intuitive, voci separate da una virgola", + "fan_speed_control": "DPPS controlli di velocità della ventola", + "fan_oscillating_control": "DPS di controllo oscillante per la ventola", + "fan_speed_min": "Velocità della ventola minima intero", + "fan_speed_max": "intero di velocità della ventola massima", + "fan_speed_ordered_list": "Elenco delle modalità di velocità della ventola (sovrascrive velocità min/max)", + "fan_direction":"Dennificazione del fan DPS", + "fan_direction_forward": "stringa DPS in avanti", + "fan_direction_reverse": "Stringa DPS inversa", + "current_temperature_dp": "Temperatura di corrente", + "target_temperature_dp": "Temperatura target", + "temperature_step": "Passaggio di temperatura (facoltativo)", + "max_temperature_dp": "Temperatura massima (opzionale)", + "min_temperature_dp": "Temperatura min (opzionale)", + "precision": "Precision (opzionale, per valori DPS)", + "target_precision": "PRECISIONE TARGET (opzionale, per valori DPS)", + "temperature_unit": "Unità di temperatura (opzionale)", + "hvac_mode_dp": "Modalità HVAC DP (opzionale)", + "hvac_mode_set": "Set di modalità HVAC (opzionale)", + "hvac_action_dp": "Azione corrente HVAC DP (opzionale)", + "hvac_action_set": "Set di azione corrente HVAC (opzionale)", + "preset_dp": "Preset DP (opzionale)", + "preset_set": "Set di preset (opzionale)", + "eco_dp": "Eco DP (opzionale)", + "eco_value": "Valore ecologico (opzionale)", + "heuristic_action": "Abilita azione euristica (opzionale)" + } + } + } + }, + "options": { + "step": { + "init": { + "title": "Configura il tuo dispositivo", + "description": "Configurazione di base per ID dispositivo `{Dispositivo_id}`.", + "data": { + "friendly_name": "Nome amichevole", + "host": "Host", + "local_key": "Chiave locale", + "protocol_version": "Versione del protocollo", + "scan_interval": "Intervallo di scansione (secondi, solo quando non si aggiorna automaticamente)", + "entities": "Entità (deseleziona un'entità per rimuoverla)" + } + }, + "entity": { + "title": "Configurazione dell'entità", + "description": "Modifica entità con dps `{id}` e piattaforma `{piattaforma}`.a}`.", + "data": { + "id": "ID", + "friendly_name": "Nome amichevole", + "current": "Attuale", + "current_consumption": "Consumo attuale", + "voltage": "Voltaggio", + "commands_set": "Comandi aperti_close_stop set", + "positioning_mode": "Modalità di posizionamento", + "current_position_dp": "Posizione corrente (solo per * posizione * modalità)", + "set_position_dp": "Imposta posizione (solo per * posizione * modalità)", + "position_inverted": "Inverti 0-100 posizione (solo per * posizione * modalità)", + "span_time": "Tempo di apertura completo, in Secs.(solo per * modalità tempod *)", + "unit_of_measurement": "Unità di misura", + "device_class": "Classe di dispositivo", + "scaling": "Fattore di ridimensionamento", + "state_on": "Valore acceso", + "state_off": "Valore spento", + "powergo_dp": "Power DP (di solito 25 o 2)", + "idle_status_value": "Stato inattivo (separato da virgola)", + "returning_status_value": "Stato di ritorno", + "docked_status_value": "Stato ancorata (separato da virgola)", + "fault_dp": "Guasto dp (di solito 11)", + "battery_dp": "Stato della batteria DP (di solito 14)", + "mode_dp": "Modalità dp (di solito 27)", + "modes": "Elenco delle modalità", + "return_mode": "Ritorno in modalità home", + "fan_speed_dp": "Velocità della ventola DP (di solito 30)", + "fan_speeds": "Elenco delle velocità della ventola (separato da virgola)", + "clean_time_dp": "Tempo di pulizia DP (di solito 33)", + "clean_area_dp": "Area pulita dp (di solito 32)", + "clean_record_dp": "Record pulito dp (di solito 34)", + "locate_dp": "Individua DP (di solito 31)", + "paused_state": "Pausa Stato (pausa, pausa, ecc.)", + "stop_status": "Stampa Stato", + "brightness": "Luminosità (solo per il colore bianco)", + "brightness_lower": "Luminosità valore inferiore", + "brightness_upper": "Valore superiore della luminosità", + "color_temp": "Temperatura di colore", + "color_temp_reverse": "Temperatura del colore inverso", + "color": "Colore", + "color_mode": "Modalità colore", + "color_temp_min_kelvin": "Temperatura del colore minima in K", + "color_temp_max_kelvin": "Temperatura di colore massima in k", + "music_mode": "Modalità musicale disponibile", + "scene": "Scena", + "select_options": "Voci valide, voci separate da a;", + "select_options_friendly": "Opzioni intuitive, voci separate da a;", + "fan_speed_control": "DPPS controlli di velocità della ventola", + "fan_oscillating_control": "DPS di controllo oscillante per la ventola", + "fan_speed_min": "Velocità della ventola minima intero", + "fan_speed_max": "intero di velocità della ventola massima", + "fan_speed_ordered_list": "Elenco delle modalità di velocità della ventola (sovrascrive velocità min/max)", + "fan_direction":"fan direction dps", + "fan_direction_forward": "stringa DPS in avanti", + "fan_direction_reverse": "Stringa DPS inversa", + "current_temperature_dp": "Temperatura corrente", + "target_temperature_dp": "Temperatura target", + "temperature_step": "Passaggio di temperatura (facoltativo)", + "max_temperature_dp": "Temperatura massima (opzionale)", + "min_temperature_dp": "Temperatura minima (opzionale)", + "precision": "Precision (opzionale, per valori DPS)", + "target_precision": "PRECISIONE TARGET (opzionale, per valori DPS)", + "temperature_unit": "Unità di temperatura (opzionale)", + "hvac_mode_dp": "Modalità HVAC DP (opzionale)", + "hvac_mode_set": "Set di modalità HVAC (opzionale)", + "hvac_action_dp": "Azione corrente HVAC DP (opzionale)", + "hvac_action_set": "Set di azione corrente HVAC (opzionale)", + "preset_dp": "PRESET DP (opzionale)", + "preset_set": "Set di preset (opzionale)", + "eco_dp": "ECO DP (opzionale)", + "eco_value": "Valore ecologico (opzionale)", + "heuristic_action": "Abilita azione euristica (opzionale)" + } + }, + "yaml_import": { + "title": "Non supportato", + "description": "Le opzioni non possono essere modificate quando configurate tramite YAML." + } + } + }, + "title": "LocalTuya" +} From e66681957db40060b1c69959a7ec92bcbb9c0610 Mon Sep 17 00:00:00 2001 From: emanu Date: Tue, 14 Jun 2022 22:10:57 +0200 Subject: [PATCH 4/8] Update it.json Updated translation for Tuya 4.0 --- .../localtuya/translations/it.json | 201 ++++++++---------- 1 file changed, 85 insertions(+), 116 deletions(-) diff --git a/custom_components/localtuya/translations/it.json b/custom_components/localtuya/translations/it.json index d658c19..c9b7a14 100644 --- a/custom_components/localtuya/translations/it.json +++ b/custom_components/localtuya/translations/it.json @@ -5,45 +5,111 @@ "device_updated": "La configurazione del dispositivo è stata aggiornata!" }, "error": { - "cannot_connect": "Impossibile connettersi al dispositivo. Verifica che l'indirizzo sia corretto e riprova.", - "invalid_auth": "Impossibile autenticarsi con il dispositivo. Verificare che l'ID dispositivo e la chiave locale siano corretti.", - "unknown": "Si è verificato un errore sconosciuto. Vedi il registro per i dettagli.", + "authentication_failed": "Impossibile effettuare l'autenticazione.\n{msg}", + "cannot_connect": "Impossibile connettersi al dispositivo. Verificare che quell'indirizzo è corretto e riprova.", + "device_list_failed": "Impossibile recuperare l'elenco dei dispositivi.\n{msg}", + "invalid_auth": "Impossibile autenticare con il dispositivo. Verificare che l'ID dispositivo e la chiave locale siano corretti.", + "unknown": "Si è verificato un errore sconosciuto.Vedi registro per i dettagli.", "entity_already_configured": "L'entità con questo ID è già stata configurata.", - "address_in_use": "L'indirizzo utilizzato per il rilevamento è già in uso. Assicurati che nessun'altra applicazione lo stia utilizzando (porta TCP 6668).", - "discovery_failed": "Qualcosa non è andato a buon fine durante il rilevamento dei dispositivi. Vedi registro per i dettagli.", - "empty_dps": "Connessione al dispositivo riuscita ma nessun punto dati trovato, riprova. Apri un nuovo problema e includi i log di debug se il problema persiste." + "address_in_use": "L'indirizzo utilizzato per la scoperta è già in uso. Assicurarsi che nessun'altra applicazione lo stia utilizzando (porta TCP 6668).", + "discovery_failed": "Qualcosa è fallito quando si scopre i dispositivi.Vedi registro per i dettagli.", + "empty_dps": "La connessione al dispositivo è riuscito ma non sono stati trovati i punti dati, riprova. Crea un nuovo problema e includi i registri di debug se il problema persiste." }, "step": { "user": { - "title": "Dispositivi Trovati", - "description": "Scegli uno dei dispositivi rilevati automaticamente o `...` per aggiungere manualmente un dispositivo.", + "title": "Configurazione dell'account API cloud", + "description": "Inserisci le credenziali per l'API cloud Tuya.", "data": { - "discovered_device": "Dispositivo trovati" + "region": "Regione del server API", + "client_id": "Client ID", + "client_secret": "Secret", + "user_id": "ID utente", + "user_name": "Username", + "no_cloud": "Non configurare un account API cloud" + } + } + } + }, + "options": { + "abort": { + "already_configured": "Il dispositivo è già stato configurato.", + "device_success": "Dispositivo {dev_name} con successo {action}." + }, + "error": { + "authentication_failed": "Impossibile autenticare.\n{msg}", + "cannot_connect": "Impossibile connettersi al dispositivo. Verificare che quell'indirizzo è corretto e riprova.", + "device_list_failed": "Impossibile recuperare l'elenco dei dispositivi.\n{msg}", + "invalid_auth": "Impossibile autenticare con il dispositivo.Verificare che l'ID dispositivo e la chiave locale siano corretti.", + "unknown": "Si è verificato un errore sconosciuto. Vedi registro per i dettagli.", + "entity_already_configured": "L'entità con questo ID è già stata configurata.", + "address_in_use": "L'indirizzo utilizzato per la scoperta è già in uso. Assicurarsi che nessun'altra applicazione lo stia utilizzando (porta TCP 6668).", + "discovery_failed": "Qualcosa è fallito quando si scopre i dispositivi. Vedi registro per i dettagli.", + "empty_dps": "La connessione al dispositivo è riuscita ma non sono stati trovati i punti dati, riprova. Crea un nuovo problema e includi i registri di debug se il problema persiste." + }, + "step": { + "yaml_import": { + "title": "Non supportato", + "description": "Le opzioni non possono essere modificate quando configurate tramite YAML." + }, + "init": { + "title": "Configurazione LocalTuya", + "description": "Seleziona l'azione desiderata.", + "data": { + "add_device": "Aggiungi un nuovo dispositivo", + "edit_device": "Modifica un dispositivo", + "setup_cloud": "Riconfigurare l'account API cloud" } }, - "basic_info": { - "title": "Aggiungi dispositivo Tuya", - "description": "Inserisci i dettagli di base del dispositivo. Il nome inserito qui verrà utilizzato per identificare l'integrazione stessa (come si vede nella pagina `Integrazioni`). Aggiungerai entità e assegnerai loro nomi nei passaggi seguenti.", + "add_device": { + "title": "Aggiungi un nuovo dispositivo", + "description": "Scegli uno dei dispositivi scoperti automaticamente o `...` per aggiungere manualmente un dispositivo.", + "data": { + "selected_device": "Dispositivi scoperti" + } + }, + "edit_device": { + "title": "Modifica un nuovo dispositivo", + "description": "Scegli il dispositivo configurato che si desidera modificare.", + "data": { + "selected_device": "Dispositivi configurati" + } + }, + "cloud_setup": { + "title": "Configurazione dell'account API cloud", + "description": "Inserisci le credenziali per l'API cloud Tuya.", + "data": { + "region": "Regione del server API", + "client_id": "Client ID", + "client_secret": "Secret", + "user_id": "ID utente", + "user_name": "Nome utente", + "no_cloud": "Non configurare l'account API cloud" + } + }, + "configure_device": { + "title": "Configura il tuo dispositivo", + "description": "Compila i dettagli del dispositivo {for_device}.", "data": { "friendly_name": "Nome", "host": "Host", "device_id": "ID del dispositivo", "local_key": "Chiave locale", - "protocol_version": "Versione protocollo", - "scan_interval": "Intervallo di scansione (secondi, solo quando non si aggiorna automaticamente)" + "protocol_version": "Versione del protocollo", + "scan_interval": "Intervallo di scansione (secondi, solo quando non si aggiorna automaticamente)", + "entities": "Entità (deseleziona un'entità per rimuoverla)" } }, "pick_entity_type": { "title": "Selezione del tipo di entità", "description": "Scegli il tipo di entità che desideri aggiungere.", "data": { - "platform_to_add": "Piattaforma", - "no_additional_platforms": "Non aggiungere altre entità" + "platform_to_add": "piattaforma", + "no_additional_entities": "Non aggiungere più entità" } }, - "add_entity": { - "title": "Aggiungi una nuova entità", - "description": "Si prega di compilare i dettagli per un'entità con tipo `{platform}`. Tutte le impostazioni tranne 'ID' possono essere modificate dalla pagina Opzioni in un secondo momento.", + "configure_entity": { + "title": "Configurare entità", + "description": "Compila i dettagli per {entity} con tipo `{platform}`.Tutte le impostazioni ad eccezione di `id` possono essere modificate dalla pagina delle opzioni in seguito.", "data": { "id": "ID", "friendly_name": "Nome amichevole", @@ -120,102 +186,5 @@ } } }, - "options": { - "step": { - "init": { - "title": "Configura il tuo dispositivo", - "description": "Configurazione di base per ID dispositivo `{Dispositivo_id}`.", - "data": { - "friendly_name": "Nome amichevole", - "host": "Host", - "local_key": "Chiave locale", - "protocol_version": "Versione del protocollo", - "scan_interval": "Intervallo di scansione (secondi, solo quando non si aggiorna automaticamente)", - "entities": "Entità (deseleziona un'entità per rimuoverla)" - } - }, - "entity": { - "title": "Configurazione dell'entità", - "description": "Modifica entità con dps `{id}` e piattaforma `{piattaforma}`.a}`.", - "data": { - "id": "ID", - "friendly_name": "Nome amichevole", - "current": "Attuale", - "current_consumption": "Consumo attuale", - "voltage": "Voltaggio", - "commands_set": "Comandi aperti_close_stop set", - "positioning_mode": "Modalità di posizionamento", - "current_position_dp": "Posizione corrente (solo per * posizione * modalità)", - "set_position_dp": "Imposta posizione (solo per * posizione * modalità)", - "position_inverted": "Inverti 0-100 posizione (solo per * posizione * modalità)", - "span_time": "Tempo di apertura completo, in Secs.(solo per * modalità tempod *)", - "unit_of_measurement": "Unità di misura", - "device_class": "Classe di dispositivo", - "scaling": "Fattore di ridimensionamento", - "state_on": "Valore acceso", - "state_off": "Valore spento", - "powergo_dp": "Power DP (di solito 25 o 2)", - "idle_status_value": "Stato inattivo (separato da virgola)", - "returning_status_value": "Stato di ritorno", - "docked_status_value": "Stato ancorata (separato da virgola)", - "fault_dp": "Guasto dp (di solito 11)", - "battery_dp": "Stato della batteria DP (di solito 14)", - "mode_dp": "Modalità dp (di solito 27)", - "modes": "Elenco delle modalità", - "return_mode": "Ritorno in modalità home", - "fan_speed_dp": "Velocità della ventola DP (di solito 30)", - "fan_speeds": "Elenco delle velocità della ventola (separato da virgola)", - "clean_time_dp": "Tempo di pulizia DP (di solito 33)", - "clean_area_dp": "Area pulita dp (di solito 32)", - "clean_record_dp": "Record pulito dp (di solito 34)", - "locate_dp": "Individua DP (di solito 31)", - "paused_state": "Pausa Stato (pausa, pausa, ecc.)", - "stop_status": "Stampa Stato", - "brightness": "Luminosità (solo per il colore bianco)", - "brightness_lower": "Luminosità valore inferiore", - "brightness_upper": "Valore superiore della luminosità", - "color_temp": "Temperatura di colore", - "color_temp_reverse": "Temperatura del colore inverso", - "color": "Colore", - "color_mode": "Modalità colore", - "color_temp_min_kelvin": "Temperatura del colore minima in K", - "color_temp_max_kelvin": "Temperatura di colore massima in k", - "music_mode": "Modalità musicale disponibile", - "scene": "Scena", - "select_options": "Voci valide, voci separate da a;", - "select_options_friendly": "Opzioni intuitive, voci separate da a;", - "fan_speed_control": "DPPS controlli di velocità della ventola", - "fan_oscillating_control": "DPS di controllo oscillante per la ventola", - "fan_speed_min": "Velocità della ventola minima intero", - "fan_speed_max": "intero di velocità della ventola massima", - "fan_speed_ordered_list": "Elenco delle modalità di velocità della ventola (sovrascrive velocità min/max)", - "fan_direction":"fan direction dps", - "fan_direction_forward": "stringa DPS in avanti", - "fan_direction_reverse": "Stringa DPS inversa", - "current_temperature_dp": "Temperatura corrente", - "target_temperature_dp": "Temperatura target", - "temperature_step": "Passaggio di temperatura (facoltativo)", - "max_temperature_dp": "Temperatura massima (opzionale)", - "min_temperature_dp": "Temperatura minima (opzionale)", - "precision": "Precision (opzionale, per valori DPS)", - "target_precision": "PRECISIONE TARGET (opzionale, per valori DPS)", - "temperature_unit": "Unità di temperatura (opzionale)", - "hvac_mode_dp": "Modalità HVAC DP (opzionale)", - "hvac_mode_set": "Set di modalità HVAC (opzionale)", - "hvac_action_dp": "Azione corrente HVAC DP (opzionale)", - "hvac_action_set": "Set di azione corrente HVAC (opzionale)", - "preset_dp": "PRESET DP (opzionale)", - "preset_set": "Set di preset (opzionale)", - "eco_dp": "ECO DP (opzionale)", - "eco_value": "Valore ecologico (opzionale)", - "heuristic_action": "Abilita azione euristica (opzionale)" - } - }, - "yaml_import": { - "title": "Non supportato", - "description": "Le opzioni non possono essere modificate quando configurate tramite YAML." - } - } - }, "title": "LocalTuya" } From aa786fb12e79de88c620e7781eac63a911959926 Mon Sep 17 00:00:00 2001 From: rospogrigio <49229287+rospogrigio@users.noreply.github.com> Date: Wed, 15 Jun 2022 14:08:17 +0200 Subject: [PATCH 5/8] Update it.json --- .../localtuya/translations/it.json | 166 +++++++++--------- 1 file changed, 83 insertions(+), 83 deletions(-) diff --git a/custom_components/localtuya/translations/it.json b/custom_components/localtuya/translations/it.json index c9b7a14..d533f8b 100644 --- a/custom_components/localtuya/translations/it.json +++ b/custom_components/localtuya/translations/it.json @@ -2,30 +2,30 @@ "config": { "abort": { "already_configured": "Il dispositivo è già stato configurato.", - "device_updated": "La configurazione del dispositivo è stata aggiornata!" + "device_updated": "La configurazione del dispositivo è stata aggiornata." }, "error": { - "authentication_failed": "Impossibile effettuare l'autenticazione.\n{msg}", - "cannot_connect": "Impossibile connettersi al dispositivo. Verificare che quell'indirizzo è corretto e riprova.", + "authentication_failed": "Autenticazione fallita. Errore:\n{msg}", + "cannot_connect": "Impossibile connettersi al dispositivo. Verifica che l'indirizzo sia corretto e riprova.", "device_list_failed": "Impossibile recuperare l'elenco dei dispositivi.\n{msg}", - "invalid_auth": "Impossibile autenticare con il dispositivo. Verificare che l'ID dispositivo e la chiave locale siano corretti.", - "unknown": "Si è verificato un errore sconosciuto.Vedi registro per i dettagli.", - "entity_already_configured": "L'entità con questo ID è già stata configurata.", - "address_in_use": "L'indirizzo utilizzato per la scoperta è già in uso. Assicurarsi che nessun'altra applicazione lo stia utilizzando (porta TCP 6668).", - "discovery_failed": "Qualcosa è fallito quando si scopre i dispositivi.Vedi registro per i dettagli.", - "empty_dps": "La connessione al dispositivo è riuscito ma non sono stati trovati i punti dati, riprova. Crea un nuovo problema e includi i registri di debug se il problema persiste." + "invalid_auth": "Impossibile autenticarsi con il dispositivo. Verificare che device_id e local_key siano corretti.", + "unknown": "Si è verificato un errore sconosciuto. Vedere registro per i dettagli.", + "entity_already_configured": "L'entity con questo ID è già stata configurata.", + "address_in_use": "L'indirizzo utilizzato per il discovery è già in uso. Assicurarsi che nessun'altra applicazione lo stia utilizzando (porta TCP 6668).", + "discovery_failed": "Qualcosa è fallito nella discovery dei dispositivi. Vedi registro per i dettagli.", + "empty_dps": "La connessione al dispositivo è riuscita ma non sono stati trovati i datapoint, riprova. Crea un nuovo Issue e includi i log di debug se il problema persiste." }, "step": { "user": { - "title": "Configurazione dell'account API cloud", - "description": "Inserisci le credenziali per l'API cloud Tuya.", + "title": "Configurazione dell'account Cloud API", + "description": "Inserisci le credenziali per l'account Cloud API Tuya.", "data": { "region": "Regione del server API", "client_id": "Client ID", "client_secret": "Secret", - "user_id": "ID utente", + "user_id": "User ID", "user_name": "Username", - "no_cloud": "Non configurare un account API cloud" + "no_cloud": "Non configurare un account Cloud API" } } } @@ -33,23 +33,23 @@ "options": { "abort": { "already_configured": "Il dispositivo è già stato configurato.", - "device_success": "Dispositivo {dev_name} con successo {action}." + "device_success": "Dispositivo {dev_name} {action} con successo." }, "error": { - "authentication_failed": "Impossibile autenticare.\n{msg}", - "cannot_connect": "Impossibile connettersi al dispositivo. Verificare che quell'indirizzo è corretto e riprova.", + "authentication_failed": "Autenticazione fallita. Errore:\n{msg}", + "cannot_connect": "Impossibile connettersi al dispositivo. Verifica che l'indirizzo sia corretto e riprova.", "device_list_failed": "Impossibile recuperare l'elenco dei dispositivi.\n{msg}", - "invalid_auth": "Impossibile autenticare con il dispositivo.Verificare che l'ID dispositivo e la chiave locale siano corretti.", - "unknown": "Si è verificato un errore sconosciuto. Vedi registro per i dettagli.", - "entity_already_configured": "L'entità con questo ID è già stata configurata.", - "address_in_use": "L'indirizzo utilizzato per la scoperta è già in uso. Assicurarsi che nessun'altra applicazione lo stia utilizzando (porta TCP 6668).", - "discovery_failed": "Qualcosa è fallito quando si scopre i dispositivi. Vedi registro per i dettagli.", - "empty_dps": "La connessione al dispositivo è riuscita ma non sono stati trovati i punti dati, riprova. Crea un nuovo problema e includi i registri di debug se il problema persiste." + "invalid_auth": "Impossibile autenticarsi con il dispositivo. Verificare che device_id e local_key siano corretti.", + "unknown": "Si è verificato un errore sconosciuto. Vedere registro per i dettagli.", + "entity_already_configured": "L'entity con questo ID è già stata configurata.", + "address_in_use": "L'indirizzo utilizzato per il discovery è già in uso. Assicurarsi che nessun'altra applicazione lo stia utilizzando (porta TCP 6668).", + "discovery_failed": "Qualcosa è fallito nella discovery dei dispositivi. Vedi registro per i dettagli.", + "empty_dps": "La connessione al dispositivo è riuscita ma non sono stati trovati i datapoint, riprova. Crea un nuovo Issue e includi i log di debug se il problema persiste." }, "step": { "yaml_import": { "title": "Non supportato", - "description": "Le opzioni non possono essere modificate quando configurate tramite YAML." + "description": "Le impostazioni non possono essere configurate tramite file YAML." }, "init": { "title": "Configurazione LocalTuya", @@ -57,37 +57,37 @@ "data": { "add_device": "Aggiungi un nuovo dispositivo", "edit_device": "Modifica un dispositivo", - "setup_cloud": "Riconfigurare l'account API cloud" + "setup_cloud": "Riconfigurare l'account Cloud API" } }, "add_device": { "title": "Aggiungi un nuovo dispositivo", - "description": "Scegli uno dei dispositivi scoperti automaticamente o `...` per aggiungere manualmente un dispositivo.", + "description": "Scegli uno dei dispositivi trovati automaticamente o `...` per aggiungere manualmente un dispositivo.", "data": { - "selected_device": "Dispositivi scoperti" + "selected_device": "Dispositivi trovati" } }, "edit_device": { - "title": "Modifica un nuovo dispositivo", + "title": "Modifica un dispositivo", "description": "Scegli il dispositivo configurato che si desidera modificare.", "data": { "selected_device": "Dispositivi configurati" } }, "cloud_setup": { - "title": "Configurazione dell'account API cloud", - "description": "Inserisci le credenziali per l'API cloud Tuya.", + "title": "Configurazione dell'account Cloud API", + "description": "Inserisci le credenziali per l'account Cloud API Tuya.", "data": { "region": "Regione del server API", "client_id": "Client ID", "client_secret": "Secret", - "user_id": "ID utente", - "user_name": "Nome utente", - "no_cloud": "Non configurare l'account API cloud" + "user_id": "User ID", + "user_name": "Username", + "no_cloud": "Non configurare l'account Cloud API" } }, "configure_device": { - "title": "Configura il tuo dispositivo", + "title": "Configura il dispositivo", "description": "Compila i dettagli del dispositivo {for_device}.", "data": { "friendly_name": "Nome", @@ -96,91 +96,91 @@ "local_key": "Chiave locale", "protocol_version": "Versione del protocollo", "scan_interval": "Intervallo di scansione (secondi, solo quando non si aggiorna automaticamente)", - "entities": "Entità (deseleziona un'entità per rimuoverla)" + "entities": "Entities (deseleziona un'entity per rimuoverla)" } }, "pick_entity_type": { - "title": "Selezione del tipo di entità", - "description": "Scegli il tipo di entità che desideri aggiungere.", + "title": "Selezione del tipo di entity", + "description": "Scegli il tipo di entity che desideri aggiungere.", "data": { "platform_to_add": "piattaforma", - "no_additional_entities": "Non aggiungere più entità" + "no_additional_entities": "Non aggiungere altre entity" } }, "configure_entity": { - "title": "Configurare entità", + "title": "Configurare entity", "description": "Compila i dettagli per {entity} con tipo `{platform}`.Tutte le impostazioni ad eccezione di `id` possono essere modificate dalla pagina delle opzioni in seguito.", "data": { "id": "ID", "friendly_name": "Nome amichevole", - "current": "Attuale", - "current_consumption": "Consumo attuale", - "voltage": "Volaggio", + "current": "Corrente", + "current_consumption": "Consumo di corrente", + "voltage": "Tensione", "commands_set": "Set di comandi Aperto_Chiuso_Stop", "positioning_mode": "Modalità di posizionamento", - "current_position_dp": "Posizione corrente (solo per la modalità *posizione*)", + "current_position_dp": "Posizione attuale (solo per la modalità *posizione*)", "set_position_dp": "Imposta posizione (solo per modalità *posizione*)", "position_inverted": "Inverti posizione 0-100 (solo per modalità *posizione*)", - "span_time": "Orario di apertura totale, in sec. (solo per modalità *a tempo*)", + "span_time": "Tempo di apertura totale, in sec. (solo per modalità *a tempo*)", "unit_of_measurement": "Unità di misura", "device_class": "Classe del dispositivo", "scaling": "Fattore di scala", - "state_on": "Valore acceso", - "state_off": "Valore spento", + "state_on": "Valore di ON", + "state_off": "Valore di OFF", "powergo_dp": "Potenza DP (di solito 25 o 2)", "idle_status_value": "Stato di inattività (separato da virgole)", - "returning_status_value": "Stato di ritorno", - "docked_status_value": "Stato ancorato (separato da virgole)", - "fault_dp": "Guasto DP (di solito 11)", - "battery_dp": "Stato batteria DP (di solito 14)", - "mode_dp": "Modalità DP (di solito 27)", + "returning_status_value": "Stato di ritorno alla base", + "docked_status_value": "Stato di tornato alla base (separato da virgole)", + "fault_dp": "DP di guasto (di solito 11)", + "battery_dp": "DP di stato batteria (di solito 14)", + "mode_dp": "DP di modalità (di solito 27)", "modes": "Elenco delle modalità", "return_mode": "Ritorno in modalità home", - "fan_speed_dp": "Velocità della ventola DP (di solito 30)", - "fan_speeds": "Elenco delle velocità della ventola (separato da virgola)", - "clean_time_dp": "Tempo di pulizia DP (di solito 33)", - "clean_area_dp": "Area pulita dp (di solito 32)", - "clean_record_dp": "Record pulito dp (di solito 34)", - "locate_dp": "Individua DP (di solito 31)", - "paused_state": "Pausa Stato (pausa, pausa, ecc.)", - "stop_status": "Stampa Stato", + "fan_speed_dp": "DP di velocità del ventilatore (di solito 30)", + "fan_speeds": "DP di elenco delle velocità del ventilatore (separato da virgola)", + "clean_time_dp": "DP di tempo di pulizia (di solito 33)", + "clean_area_dp": "DP di area pulita (di solito 32)", + "clean_record_dp": "DP di record delle pulizie (di solito 34)", + "locate_dp": "DP di individuazione (di solito 31)", + "paused_state": "Stato di pausa (pausa, pausa, ecc.)", + "stop_status": "Stato di stop", "brightness": "Luminosità (solo per il colore bianco)", - "brightness_lower": "Luminosità valore inferiore", - "brightness_upper": "Valore superiore della luminosità", + "brightness_lower": "Limite inferiore per la luminosità", + "brightness_upper": "Limite superiore per la luminosità", "color_temp": "Temperatura di colore", - "color_temp_reverse": "Temperatura del colore inverso", + "color_temp_reverse": "Temperatura di colore invertita", "color": "Colore", "color_mode": "Modalità colore", - "color_temp_min_kelvin": "Temperatura del colore minima in K", - "color_temp_max_kelvin": "Temperatura di colore massima in k", + "color_temp_min_kelvin": "Minima temperatura di colore in K", + "color_temp_max_kelvin": "Massima temperatura di colore in k", "music_mode": "Modalità musicale disponibile", "scene": "Scena", - "select_options": "Voci valide, voci separate da una vigola (;)", + "select_options": "Opzioni valide, voci separate da una vigola (;)", "select_options_friendly": "Opzioni intuitive, voci separate da una virgola", - "fan_speed_control": "DPPS controlli di velocità della ventola", - "fan_oscillating_control": "DPS di controllo oscillante per la ventola", - "fan_speed_min": "Velocità della ventola minima intero", - "fan_speed_max": "intero di velocità della ventola massima", - "fan_speed_ordered_list": "Elenco delle modalità di velocità della ventola (sovrascrive velocità min/max)", - "fan_direction":"Dennificazione del fan DPS", - "fan_direction_forward": "stringa DPS in avanti", - "fan_direction_reverse": "Stringa DPS inversa", - "current_temperature_dp": "Temperatura di corrente", + "fan_speed_control": "DP di controllo di velocità del ventilatore", + "fan_oscillating_control": "DP di controllo dell'oscillazione del ventilatore", + "fan_speed_min": "Velocità del ventilatore minima", + "fan_speed_max": "Velocità del ventilatore massima", + "fan_speed_ordered_list": "Elenco delle modalità di velocità del ventilatore (sovrascrive velocità min/max)", + "fan_direction":"DP di direzione del ventilatore", + "fan_direction_forward": "Stringa del DP per avanti", + "fan_direction_reverse": "Stringa del DP per indietro", + "current_temperature_dp": "Temperatura attuale", "target_temperature_dp": "Temperatura target", - "temperature_step": "Passaggio di temperatura (facoltativo)", + "temperature_step": "Intervalli di temperatura (facoltativo)", "max_temperature_dp": "Temperatura massima (opzionale)", - "min_temperature_dp": "Temperatura min (opzionale)", - "precision": "Precision (opzionale, per valori DPS)", - "target_precision": "PRECISIONE TARGET (opzionale, per valori DPS)", + "min_temperature_dp": "Temperatura minima (opzionale)", + "precision": "Precisione (opzionale, per valori DP)", + "target_precision": "Precisione del target (opzionale, per valori DP)", "temperature_unit": "Unità di temperatura (opzionale)", - "hvac_mode_dp": "Modalità HVAC DP (opzionale)", - "hvac_mode_set": "Set di modalità HVAC (opzionale)", - "hvac_action_dp": "Azione corrente HVAC DP (opzionale)", - "hvac_action_set": "Set di azione corrente HVAC (opzionale)", + "hvac_mode_dp": "Modalità HVAC attuale (opzionale)", + "hvac_mode_set": "Impostazione modalità HVAC (opzionale)", + "hvac_action_dp": "Azione HVAC attuale (opzionale)", + "hvac_action_set": "Impostazione azione HVAC (opzionale)", "preset_dp": "Preset DP (opzionale)", "preset_set": "Set di preset (opzionale)", - "eco_dp": "Eco DP (opzionale)", - "eco_value": "Valore ecologico (opzionale)", + "eco_dp": "DP per Eco (opzionale)", + "eco_value": "Valore Eco (opzionale)", "heuristic_action": "Abilita azione euristica (opzionale)" } } From 149912066599a05f107d5bc6c63a119693fb1748 Mon Sep 17 00:00:00 2001 From: rospogrigio <49229287+rospogrigio@users.noreply.github.com> Date: Wed, 15 Jun 2022 14:11:18 +0200 Subject: [PATCH 6/8] Update it.json --- custom_components/localtuya/translations/it.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/custom_components/localtuya/translations/it.json b/custom_components/localtuya/translations/it.json index d533f8b..faf4afa 100644 --- a/custom_components/localtuya/translations/it.json +++ b/custom_components/localtuya/translations/it.json @@ -114,7 +114,7 @@ "id": "ID", "friendly_name": "Nome amichevole", "current": "Corrente", - "current_consumption": "Consumo di corrente", + "current_consumption": "Potenza", "voltage": "Tensione", "commands_set": "Set di comandi Aperto_Chiuso_Stop", "positioning_mode": "Modalità di posizionamento", From dd565379a3049bfe8e94e949a3ab779371dc9737 Mon Sep 17 00:00:00 2001 From: rospogrigio Date: Mon, 20 Jun 2022 10:15:55 +0200 Subject: [PATCH 7/8] Optimized setup_entities by regrouping platforms --- custom_components/localtuya/__init__.py | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/custom_components/localtuya/__init__.py b/custom_components/localtuya/__init__.py index f1af7f0..9a996c3 100644 --- a/custom_components/localtuya/__init__.py +++ b/custom_components/localtuya/__init__.py @@ -259,24 +259,28 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry): res = await tuya_api.async_get_devices_list() hass.data[DOMAIN][DATA_CLOUD] = tuya_api - async def setup_entities(dev_id): - dev_entry = entry.data[CONF_DEVICES][dev_id] - device = TuyaDevice(hass, entry, dev_id) - hass.data[DOMAIN][TUYA_DEVICES][dev_id] = device + async def setup_entities(device_ids): + platforms = set() + for dev_id in device_ids: + entities = entry.data[CONF_DEVICES][dev_id][CONF_ENTITIES] + platforms = platforms.union( + set(entity[CONF_PLATFORM] for entity in entities) + ) + hass.data[DOMAIN][TUYA_DEVICES][dev_id] = TuyaDevice(hass, entry, dev_id) - platforms = set(entity[CONF_PLATFORM] for entity in dev_entry[CONF_ENTITIES]) await asyncio.gather( *[ hass.config_entries.async_forward_entry_setup(entry, platform) for platform in platforms ] ) - device.async_connect() + + for dev_id in device_ids: + hass.data[DOMAIN][TUYA_DEVICES][dev_id].async_connect() await async_remove_orphan_entities(hass, entry) - for dev_id in entry.data[CONF_DEVICES]: - hass.async_create_task(setup_entities(dev_id)) + hass.async_create_task(setup_entities(entry.data[CONF_DEVICES].keys())) unsub_listener = entry.add_update_listener(update_listener) hass.data[DOMAIN][entry.entry_id] = {UNSUB_LISTENER: unsub_listener} From 54dbc3a3591bb47b6d8fe3c1b3038489e2ba8d5b Mon Sep 17 00:00:00 2001 From: rospogrigio <49229287+rospogrigio@users.noreply.github.com> Date: Mon, 27 Jun 2022 19:07:43 +0200 Subject: [PATCH 8/8] Update manifest.json --- custom_components/localtuya/manifest.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/custom_components/localtuya/manifest.json b/custom_components/localtuya/manifest.json index bb6f2ea..bfaf4cc 100644 --- a/custom_components/localtuya/manifest.json +++ b/custom_components/localtuya/manifest.json @@ -1,7 +1,7 @@ { "domain": "localtuya", "name": "LocalTuya integration", - "version": "4.0.0", + "version": "4.0.1", "documentation": "https://github.com/rospogrigio/localtuya/", "dependencies": [], "codeowners": [