ha-inlite

Home Assistant integration for in-lite
git clone https://git.stephank.nl/ha-inlite
Log | Files | Refs | README | LICENSE | ZIP

commit 430316f489b8ec2d43d100fca1f77e87707c8d85
parent f666c87a7a0eaede04bb2dee18c1e1e34c3eee81
Author: Stéphan Kochen <git@stephank.nl>
Date: Thu, 03 Sep 2026 22:01:44 +0200

Translate setup and connection options

diff --git a/custom_components/inlite/config_flow.py b/custom_components/inlite/config_flow.py index aa99ee8035e763e342d9007ebd5937f65ff980d9..ed2da60990251acea530da6c958765eff5e86734 100644 --- a/custom_components/inlite/config_flow.py +++ b/custom_components/inlite/config_flow.py @@ -11,6 +11,7 @@ from homeassistant.components import bluetooth from homeassistant.components.bluetooth import BluetoothServiceInfoBleak from homeassistant.config_entries import ConfigFlow, ConfigFlowResult, OptionsFlow from homeassistant.core import callback +from homeassistant.helpers import selector from inlite_ble.hub import InliteHub from inlite_ble.protocol import FACTORY_NETWORK_PASSPHRASE @@ -28,11 +29,7 @@ SETUP_FACTORY = "factory" SETUP_PASSPHRASE = "passphrase" SETUP_NETWORK_KEY = "network_key" -SETUP_MODES = { - SETUP_FACTORY: "Provision a factory-reset hub", - SETUP_PASSPHRASE: "Join an existing mesh with its passphrase", - SETUP_NETWORK_KEY: "Join an existing mesh with its raw key", -} +SETUP_MODES = (SETUP_FACTORY, SETUP_PASSPHRASE, SETUP_NETWORK_KEY) class InliteConfigFlow(ConfigFlow, domain=DOMAIN): @@ -88,7 +85,11 @@ return await self.async_step_credentials() return self.async_show_form( step_id="setup", data_schema=vol.Schema({ - vol.Required("setup_mode", default=SETUP_FACTORY): vol.In(SETUP_MODES), + vol.Required("setup_mode", default=SETUP_FACTORY): selector.SelectSelector( + selector.SelectSelectorConfig( + options=SETUP_MODES, translation_key="setup_mode" + ) + ), vol.Required("garden_name", default=self._garden_name): str, }), ) diff --git a/custom_components/inlite/strings.json b/custom_components/inlite/strings.json index d809ab350f5191e4d4deb7d10c753555584716fa..79492847cc64b1950a8d3934e671bd4b78a5fd0e 100644 --- a/custom_components/inlite/strings.json +++ b/custom_components/inlite/strings.json @@ -1,4 +1,5 @@ { + "title": "in-lite Outdoor Lighting", "config": { "step": { "user": { @@ -41,6 +42,30 @@ }, "abort": { "already_configured": "This hub is already configured.", "no_hub_found": "No nearby in-lite gateway was found." + } + }, + "options": { + "step": { + "init": { + "title": "Connection options", + "data": { + "scan_interval": "Polling interval (seconds)", + "idle_disconnect": "Disconnect after inactivity (seconds)" + }, + "data_description": { + "scan_interval": "How often Home Assistant requests the current output states.", + "idle_disconnect": "How long to keep the Bluetooth connection open after the last request." + } + } + } + }, + "selector": { + "setup_mode": { + "options": { + "factory": "Provision a factory-reset hub", + "passphrase": "Join an existing mesh with its passphrase", + "network_key": "Join an existing mesh with its raw key" + } } } } diff --git a/custom_components/inlite/translations/de.json b/custom_components/inlite/translations/de.json index e19f5503c4ff6080797674f068acec0218900db9..7923c26cf179ac66d99e3a1eb7c6c6013c9d0272 100644 --- a/custom_components/inlite/translations/de.json +++ b/custom_components/inlite/translations/de.json @@ -1,45 +1,71 @@ { + "title": "in-lite Außenbeleuchtung", "config": { "step": { "user": { - "title": "in-lite Konto", - "description": "Gib die E-Mail-Adresse deines in-lite Kontos ein. Ein Bestätigungscode wird an diese Adresse gesendet.", - "data": { - "email": "E-Mail" - } - }, - "verify": { - "title": "Bestätigungscode", - "description": "Wir haben einen Bestätigungscode an **{email}** gesendet. Gib den 6-stelligen Code unten ein.", - "data": { - "code": "Bestätigungscode" - } + "title": "Lokale in-lite-Steuerung einrichten", + "description": "Wähle einen in-lite-Hub in der Nähe aus. Es wird kein in-lite-Konto und keine Cloud-Verbindung verwendet." }, - "select_garden": { - "title": "Garten auswählen", - "description": "Dein Konto hat mehrere Gärten. Wähle den Garten aus, den du einrichten möchtest.", - "data": { - "garden": "Garten" - } + "setup": { + "title": "in-lite-Mesh einrichten", + "description": "Wähle, ob ein Hub mit Werkseinstellungen eingerichtet oder einem bestehenden lokalen Mesh beigetreten werden soll.", + "data": {"setup_mode": "Einrichtungsmethode", "garden_name": "Name"} }, "bluetooth_confirm": { "title": "Gerät bestätigen", - "description": "Ein in-lite Hub wurde in der Nähe gefunden. Möchtest du ihn einrichten?" + "description": "Ein in-lite-Gateway wurde gefunden. Fahre fort, um Hubs mit Werkseinstellungen im lokalen Mesh zu suchen." }, - "reauth_confirm": { - "title": "Erneut authentifizieren", - "description": "Die Anmeldedaten für **{email}** müssen aktualisiert werden. Klicke auf Absenden, um dich erneut zu authentifizieren." + "identify": { + "title": "Hub identifizieren", + "description": "Wähle einen Hub in diesem Mesh. Er blinkt kurz, bevor Konfigurationsänderungen vorgenommen werden.", + "data": {"device_id": "Hub"} + }, + "credentials": { + "title": "Mesh-Zugangsdaten", + "description": "Gib die Passphrase des bestehenden Meshs oder dessen 16 Byte langen Rohschlüssel als 32 hexadezimale Zeichen ein.", + "data": {"password": "Mesh-Passphrase", "network_key": "Rohschlüssel des Meshs"} + }, + "confirm_blink": { + "title": "Hub bestätigen", + "description": "Hat der ausgewählte Hub geblinkt? Nach der Bestätigung wird dieser Hub einem neuen rein lokalen Mesh hinzugefügt.", + "data": {"confirmed": "Der ausgewählte Hub hat geblinkt"} } }, "error": { - "cannot_connect": "Verbindung zum in-lite Cloud-Dienst nicht möglich. Bitte versuche es erneut.", - "invalid_auth": "Ungültiger oder abgelaufener Bestätigungscode. Bitte überprüfe den Code und versuche es erneut.", - "no_gardens": "Keine Gärten in diesem Konto gefunden.", + "cannot_connect": "Keine Verbindung mit dem in-lite-Hub in der Nähe möglich. Bitte versuche es erneut.", + "no_factory_hubs": "Keine in-lite-Hubs mit Werkseinstellungen haben geantwortet.", + "association_failed": "Der ausgewählte Hub konnte nicht verknüpft werden. Möglicherweise wurde er nicht zurückgesetzt.", + "invalid_credentials": "Kein Hub hat mit diesen Mesh-Zugangsdaten geantwortet.", + "invalid_network_key": "Der Rohschlüssel des Meshs muss genau 32 hexadezimale Zeichen enthalten.", "unknown": "Ein unerwarteter Fehler ist aufgetreten. Bitte versuche es erneut." }, "abort": { - "already_configured": "Dieser Garten ist bereits eingerichtet.", - "reauth_successful": "Erneute Authentifizierung erfolgreich." + "already_configured": "Dieser Hub ist bereits eingerichtet.", + "no_hub_found": "Kein in-lite-Gateway in der Nähe gefunden." + } + }, + "options": { + "step": { + "init": { + "title": "Verbindungsoptionen", + "data": { + "scan_interval": "Abfrageintervall (Sekunden)", + "idle_disconnect": "Verbindung nach Inaktivität trennen (Sekunden)" + }, + "data_description": { + "scan_interval": "Wie oft Home Assistant die aktuellen Ausgangszustände abfragt.", + "idle_disconnect": "Wie lange die Bluetooth-Verbindung nach der letzten Anfrage offen bleibt." + } + } + } + }, + "selector": { + "setup_mode": { + "options": { + "factory": "Einen Hub mit Werkseinstellungen einrichten", + "passphrase": "Einem bestehenden Mesh mit dessen Passphrase beitreten", + "network_key": "Einem bestehenden Mesh mit dessen Rohschlüssel beitreten" + } } } } diff --git a/custom_components/inlite/translations/en.json b/custom_components/inlite/translations/en.json index d809ab350f5191e4d4deb7d10c753555584716fa..79492847cc64b1950a8d3934e671bd4b78a5fd0e 100644 --- a/custom_components/inlite/translations/en.json +++ b/custom_components/inlite/translations/en.json @@ -1,4 +1,5 @@ { + "title": "in-lite Outdoor Lighting", "config": { "step": { "user": { @@ -41,6 +42,30 @@ }, "abort": { "already_configured": "This hub is already configured.", "no_hub_found": "No nearby in-lite gateway was found." + } + }, + "options": { + "step": { + "init": { + "title": "Connection options", + "data": { + "scan_interval": "Polling interval (seconds)", + "idle_disconnect": "Disconnect after inactivity (seconds)" + }, + "data_description": { + "scan_interval": "How often Home Assistant requests the current output states.", + "idle_disconnect": "How long to keep the Bluetooth connection open after the last request." + } + } + } + }, + "selector": { + "setup_mode": { + "options": { + "factory": "Provision a factory-reset hub", + "passphrase": "Join an existing mesh with its passphrase", + "network_key": "Join an existing mesh with its raw key" + } } } } diff --git a/custom_components/inlite/translations/nl.json b/custom_components/inlite/translations/nl.json index f4223822068045673061aa1f0cbd079c57b66927..95f99716540869fdec8f229dd05ff0229d7f4bb5 100644 --- a/custom_components/inlite/translations/nl.json +++ b/custom_components/inlite/translations/nl.json @@ -1,4 +1,5 @@ { + "title": "in-lite buitenverlichting", "config": { "step": { "user": { @@ -41,6 +42,30 @@ }, "abort": { "already_configured": "Deze hub is al geconfigureerd.", "no_hub_found": "Er is geen in-lite-gateway in de buurt gevonden." + } + }, + "options": { + "step": { + "init": { + "title": "Verbindingsopties", + "data": { + "scan_interval": "Opvraaginterval (seconden)", + "idle_disconnect": "Verbinding verbreken na inactiviteit (seconden)" + }, + "data_description": { + "scan_interval": "Hoe vaak Home Assistant de huidige status van de uitgangen opvraagt.", + "idle_disconnect": "Hoe lang de Bluetooth-verbinding open blijft na de laatste aanvraag." + } + } + } + }, + "selector": { + "setup_mode": { + "options": { + "factory": "Een hub met fabrieksinstellingen configureren", + "passphrase": "Verbinding maken met een bestaand mesh-netwerk met de toegangscode", + "network_key": "Verbinding maken met een bestaand mesh-netwerk met de onbewerkte sleutel" + } } } }