diff --git a/README.md b/README.md index eb32034..6948d91 100644 --- a/README.md +++ b/README.md @@ -33,7 +33,7 @@ For manual installation, copy the localtuya folder and all of its contents into # Usage: -**NOTE: You must have your Tuya device's Key and ID in order to use LocalTuya. The easiest way is to configure the Cloud API account in the integration. If you choose not to do it, there are several ways to obtain the local_keys 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. The easiest way is to configure the Cloud API account in the integration. If you choose not to do it, there are several ways to obtain the local_keys 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 2: 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.** @@ -130,7 +130,7 @@ You can obtain Energy monitoring (voltage, current) in two different ways: Note: these values are already divided by 10 for Voltage and Consumption 3) 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: 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} 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": [ diff --git a/custom_components/localtuya/translations/it.json b/custom_components/localtuya/translations/it.json new file mode 100644 index 0000000..faf4afa --- /dev/null +++ b/custom_components/localtuya/translations/it.json @@ -0,0 +1,190 @@ +{ + "config": { + "abort": { + "already_configured": "Il dispositivo è già stato configurato.", + "device_updated": "La configurazione del dispositivo è stata aggiornata." + }, + "error": { + "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 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 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": "User ID", + "user_name": "Username", + "no_cloud": "Non configurare un account Cloud API" + } + } + } + }, + "options": { + "abort": { + "already_configured": "Il dispositivo è già stato configurato.", + "device_success": "Dispositivo {dev_name} {action} con successo." + }, + "error": { + "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 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 impostazioni non possono essere configurate tramite file 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 Cloud API" + } + }, + "add_device": { + "title": "Aggiungi un nuovo dispositivo", + "description": "Scegli uno dei dispositivi trovati automaticamente o `...` per aggiungere manualmente un dispositivo.", + "data": { + "selected_device": "Dispositivi trovati" + } + }, + "edit_device": { + "title": "Modifica un dispositivo", + "description": "Scegli il dispositivo configurato che si desidera modificare.", + "data": { + "selected_device": "Dispositivi configurati" + } + }, + "cloud_setup": { + "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": "User ID", + "user_name": "Username", + "no_cloud": "Non configurare l'account Cloud API" + } + }, + "configure_device": { + "title": "Configura il 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 del protocollo", + "scan_interval": "Intervallo di scansione (secondi, solo quando non si aggiorna automaticamente)", + "entities": "Entities (deseleziona un'entity per rimuoverla)" + } + }, + "pick_entity_type": { + "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 altre entity" + } + }, + "configure_entity": { + "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": "Corrente", + "current_consumption": "Potenza", + "voltage": "Tensione", + "commands_set": "Set di comandi Aperto_Chiuso_Stop", + "positioning_mode": "Modalità di posizionamento", + "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": "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 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 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": "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": "Limite inferiore per la luminosità", + "brightness_upper": "Limite superiore per la luminosità", + "color_temp": "Temperatura di colore", + "color_temp_reverse": "Temperatura di colore invertita", + "color": "Colore", + "color_mode": "Modalità colore", + "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": "Opzioni valide, voci separate da una vigola (;)", + "select_options_friendly": "Opzioni intuitive, voci separate da una virgola", + "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": "Intervalli di temperatura (facoltativo)", + "max_temperature_dp": "Temperatura massima (opzionale)", + "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 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": "DP per Eco (opzionale)", + "eco_value": "Valore Eco (opzionale)", + "heuristic_action": "Abilita azione euristica (opzionale)" + } + } + } + }, + "title": "LocalTuya" +} 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." } } },