Die neun Effekte der Firmware waren in Home Assistant nicht erreichbar -
das Auswahlfeld, das es schon gab, sind die Szenen. Jetzt bietet die
Lichtentitaet sie an:
* Gewaehlt wird ueber den NAMEN aus der Firmware ("Regenbogen"),
geschickt wird die Kennung ("rainbow"). Eine Liste englischer
Kennungen waere in einer deutschen Oberflaeche unnoetig sperrig.
* Ein Effekt laeuft wie eine Farbe in ALLEN Segmenten; angezeigt wird er
nur, wenn alle denselben fahren.
* Eine Kennung, die nicht in der Liste steht (neuere Firmware, aeltere
Liste), wird roh angezeigt statt verschluckt.
* Ein unbekannter Name wird abgelehnt, statt stillschweigend nichts zu
tun.
Die Liste steht fest in der Firmware und wird deshalb einmal geholt,
nicht je Abfragezyklus - erneut erst, wenn sich die Version aendert. Eine
sechste Anfrage je Zyklus fuer etwas, das sich nie aendert, waere
Verschwendung.
Effekt-Parameter (Geschwindigkeit, Intensitaet, Palette) fehlen noch;
dafuer braucht es Entitaeten je Segment.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
206 lines
6.1 KiB
JSON
206 lines
6.1 KiB
JSON
{
|
||
"config": {
|
||
"step": {
|
||
"user": {
|
||
"title": "Add ninstrip",
|
||
"description": "Host and API token of the device. A factory-new or factory-reset device uses the default token, which is prefilled. If you set your own, enter it here.",
|
||
"data": {
|
||
"host": "Host",
|
||
"token": "API token"
|
||
}
|
||
},
|
||
"discovery_confirm": {
|
||
"title": "ninstrip found",
|
||
"description": "{name} at {host}. Please enter the API token.",
|
||
"data": {
|
||
"token": "API token"
|
||
}
|
||
},
|
||
"reauth_confirm": {
|
||
"title": "Renew token",
|
||
"description": "The device at {host} rejects the stored token. After a factory reset the default token applies again.",
|
||
"data": {
|
||
"token": "API token"
|
||
}
|
||
},
|
||
"reconfigure": {
|
||
"title": "Change device",
|
||
"description": "Address and API token of device {host}. The MAC is checked — a different device is rejected.",
|
||
"data": {
|
||
"host": "Address",
|
||
"token": "API token"
|
||
}
|
||
}
|
||
},
|
||
"error": {
|
||
"cannot_connect": "Device unreachable",
|
||
"invalid_auth": "Token rejected",
|
||
"not_ninstrip": "No ninstrip answering there",
|
||
"unknown": "Unexpected error"
|
||
},
|
||
"abort": {
|
||
"already_configured": "This device is already configured",
|
||
"reauth_successful": "Token renewed",
|
||
"wrong_device": "A different device answers there",
|
||
"reconfigure_successful": "Device changed"
|
||
}
|
||
},
|
||
"options": {
|
||
"step": {
|
||
"init": {
|
||
"title": "Settings",
|
||
"data": {
|
||
"scan_interval": "Polling interval (seconds)",
|
||
"device_base_url": "Address devices use to reach Home Assistant"
|
||
},
|
||
"data_description": {
|
||
"device_base_url": "Only needed for firmware updates if devices cannot reach Home Assistant's internal URL over plain http, e.g. http://192.168.1.50:8123"
|
||
}
|
||
}
|
||
},
|
||
"error": {
|
||
"invalid_base_url": "Must be a plain http:// address with host and optional port, without path.",
|
||
"base_url_too_long": "Address too long – the device accepts at most 255 characters for the whole firmware URL."
|
||
}
|
||
},
|
||
"entity": {
|
||
"select": {
|
||
"preset": {
|
||
"name": "Scene"
|
||
},
|
||
"sacn_on_timeout": {
|
||
"name": "sACN on stream end",
|
||
"state": {
|
||
"release": "Return to previous image",
|
||
"hold": "Hold last image"
|
||
}
|
||
},
|
||
"power_on_behaviour": {
|
||
"name": "Power-on behaviour",
|
||
"state": {
|
||
"last": "As before",
|
||
"on": "On",
|
||
"off": "Off"
|
||
}
|
||
}
|
||
},
|
||
"button": {
|
||
"restart": {
|
||
"name": "Restart"
|
||
}
|
||
},
|
||
"sensor": {
|
||
"ip_address": {
|
||
"name": "IP address"
|
||
},
|
||
"rssi": {
|
||
"name": "Wi-Fi signal"
|
||
},
|
||
"uptime": {
|
||
"name": "Uptime"
|
||
},
|
||
"free_heap": {
|
||
"name": "Free memory"
|
||
},
|
||
"power_scale": {
|
||
"name": "Power limiting"
|
||
},
|
||
"last_ota_error": {
|
||
"name": "Last update error"
|
||
},
|
||
"boot_time": {
|
||
"name": "Started"
|
||
}
|
||
},
|
||
"switch": {
|
||
"sacn_enabled": {
|
||
"name": "sACN receiver"
|
||
},
|
||
"wake_on_change": {
|
||
"name": "Turn on when changed"
|
||
}
|
||
},
|
||
"number": {
|
||
"sacn_universe": {
|
||
"name": "sACN universe"
|
||
},
|
||
"sacn_start_slot": {
|
||
"name": "sACN start slot"
|
||
},
|
||
"fade_in": {
|
||
"name": "Fade-in time"
|
||
},
|
||
"fade_out": {
|
||
"name": "Fade-out time"
|
||
},
|
||
"transition_default": {
|
||
"name": "Default transition time"
|
||
}
|
||
},
|
||
"binary_sensor": {
|
||
"sacn_active": {
|
||
"name": "sACN active"
|
||
},
|
||
"sacn_multicast": {
|
||
"name": "sACN multicast joined"
|
||
}
|
||
},
|
||
"update": {
|
||
"firmware": {
|
||
"name": "Firmware"
|
||
}
|
||
}
|
||
},
|
||
"exceptions": {
|
||
"auth_failed": {
|
||
"message": "The device rejected the token."
|
||
},
|
||
"device_busy": {
|
||
"message": "The device is busy - an update is probably running."
|
||
},
|
||
"request_failed": {
|
||
"message": "The device rejected the request: {message}"
|
||
},
|
||
"cannot_connect": {
|
||
"message": "The device is unreachable."
|
||
},
|
||
"update_busy": {
|
||
"message": "An update is already running on the device."
|
||
},
|
||
"no_update": {
|
||
"message": "No firmware update is available."
|
||
},
|
||
"no_http_url": {
|
||
"message": "Devices can only reach Home Assistant over plain http. Set the address in the integration options."
|
||
},
|
||
"device_url_too_long": {
|
||
"message": "The firmware URL is longer than the 255 characters the device accepts."
|
||
},
|
||
"image_invalid": {
|
||
"message": "The firmware file changed or is no longer valid."
|
||
},
|
||
"wifi_guard": {
|
||
"message": "This firmware does not contain the Wi-Fi credentials for {ssid}; the device would lose its network connection."
|
||
},
|
||
"update_failed": {
|
||
"message": "The update failed: {reason}"
|
||
},
|
||
"update_timeout": {
|
||
"message": "The device did not report the new firmware within 12 minutes."
|
||
},
|
||
"unknown_effect": {
|
||
"message": "The device does not know this effect: {effect}"
|
||
}
|
||
},
|
||
"issues": {
|
||
"wifi_guard": {
|
||
"title": "Firmware for {name} not offered",
|
||
"description": "The firmware folder contains {version} for {device_type}, but without Wi-Fi credentials for {ssid}. The device only knows its Wi-Fi from its firmware and would lose its network connection after this update, so the update is not offered. A device that was put on the network through onboarding instead gets the update without this reservation."
|
||
},
|
||
"default_token": {
|
||
"title": "{name} uses the public default token",
|
||
"description": "With the public default token, anyone on your network can reconfigure, restart, reflash or factory-reset this device, losing its Wi-Fi settings and falling back to its onboarding access point. Switching and dimming are open to anyone on the network anyway while `auth_all` is off. Set your own token on the device and enter it via \"Reconfigure\"."
|
||
}
|
||
}
|
||
}
|