Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "zigbee2mqtt-windfront",
"version": "2.4.1",
"version": "2.4.2",
"license": "GPL-3.0-or-later",
"type": "module",
"main": "./index.js",
Expand Down
3 changes: 1 addition & 2 deletions src/i18n/locales/bg.json
Original file line number Diff line number Diff line change
Expand Up @@ -309,8 +309,7 @@
"scan_source": "Източник",
"select_scan_source": "Изберете източник",
"philips_hue_reset": "Нулиране на Hue",
"serial_numbers": "Серийни номера",
"serial_numbers_info": "Стойности, разделени със запетая. За всяка добавете `0x` към серийния номер, изписан на устройството (например напишете `3A745C` като `0x3A745C`) или първо го преобразувайте в десетичен вид."
"serial_numbers": "Серийни номера (CSV)"
},
"values": {
"clear": "изчистване",
Expand Down
3 changes: 1 addition & 2 deletions src/i18n/locales/ca.json
Original file line number Diff line number Diff line change
Expand Up @@ -309,8 +309,7 @@
"scan_source": "Origen de l'escaneig",
"select_scan_source": "Selecciona l'origen de l'escaneig",
"philips_hue_reset": "Restabliment Hue",
"serial_numbers": "Números de sèrie",
"serial_numbers_info": "Valors separats per comes. Per a cadascun, afegiu `0x` al número de sèrie escrit al dispositiu (p. ex., escriviu `3A745C` com `0x3A745C`) o convertiu-lo primer a format decimal."
"serial_numbers": "Números de sèrie (CSV)"
},
"values": {
"clear": "neteja",
Expand Down
3 changes: 1 addition & 2 deletions src/i18n/locales/cs.json
Original file line number Diff line number Diff line change
Expand Up @@ -309,8 +309,7 @@
"scan_source": "Zdroj hledání",
"select_scan_source": "Vyberte zdroj hledání",
"philips_hue_reset": "Reset Hue",
"serial_numbers": "Sériová čísla",
"serial_numbers_info": "Hodnoty oddělené čárkou. Ke každému připojte `0x` k sériovému číslu uvedenému na zařízení (např. napište `3A745C` jako `0x3A745C`) nebo jej nejprve převeďte na desetkové číslo."
"serial_numbers": "Sériová čísla (CSV)"
},
"values": {
"clear": "Klid/Bez poplachu",
Expand Down
3 changes: 1 addition & 2 deletions src/i18n/locales/da.json
Original file line number Diff line number Diff line change
Expand Up @@ -309,8 +309,7 @@
"scan_source": "Scan-kilde",
"select_scan_source": "Vælg kilde",
"philips_hue_reset": "Philips Hue-nulstilling",
"serial_numbers": "Serienumre",
"serial_numbers_info": "Kommaseparerede værdier. For hver skal du føje `0x` til serienummeret, der står på enheden (f.eks. skriv `3A745C` som `0x3A745C`), eller konverter det først til decimalformat."
"serial_numbers": "Serienumre (CSV)"
},
"values": {
"clear": "ryd",
Expand Down
3 changes: 1 addition & 2 deletions src/i18n/locales/de.json
Original file line number Diff line number Diff line change
Expand Up @@ -309,8 +309,7 @@
"scan_source": "Scanquelle",
"select_scan_source": "Scanquelle auswählen",
"philips_hue_reset": "Philips Hue-Reset",
"serial_numbers": "Seriennummern",
"serial_numbers_info": "Kommagetrennte Werte. Hänge für jeden Wert `0x` an die auf dem Gerät angegebene Seriennummer an (z. B. `3A745C` als `0x3A745C`) oder wandle sie zuerst in Dezimalform um."
"serial_numbers": "Seriennummern (CSV)"
},
"values": {
"clear": "frei",
Expand Down
3 changes: 1 addition & 2 deletions src/i18n/locales/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -309,8 +309,7 @@
"scan_source": "Scan source",
"select_scan_source": "Select scan source",
"philips_hue_reset": "Philips Hue reset",
"serial_numbers": "Serial numbers",
"serial_numbers_info": "Comma-separated values. For each, append `0x` to the serial number written on the device (e.g. write `3A745C` as `0x3A745C`) or convert to decimal form first."
"serial_numbers": "Serial numbers (CSV)"
},
"values": {
"clear": "Clear",
Expand Down
3 changes: 1 addition & 2 deletions src/i18n/locales/es.json
Original file line number Diff line number Diff line change
Expand Up @@ -309,8 +309,7 @@
"scan_source": "Fuente de escaneo",
"select_scan_source": "Seleccione la fuente",
"philips_hue_reset": "Restablecer Hue",
"serial_numbers": "Números de serie",
"serial_numbers_info": "Valores separados por comas. Para cada uno, agrega `0x` al número de serie escrito en el dispositivo (p. ej., escribe `3A745C` como `0x3A745C`) o conviértelo primero a formato decimal."
"serial_numbers": "Números de serie (CSV)"
},
"values": {
"clear": "limpiar",
Expand Down
3 changes: 1 addition & 2 deletions src/i18n/locales/eu.json
Original file line number Diff line number Diff line change
Expand Up @@ -309,8 +309,7 @@
"scan_source": "Eskaneatzeko iturburua",
"select_scan_source": "Hautatu iturburua",
"philips_hue_reset": "Philips Hue berrezarri",
"serial_numbers": "Serie zenbakiak",
"serial_numbers_info": "Komaz bereizitako balioak. Bakoitzean, gehitu `0x` gailuan idatzitako serie zenbakiari (adibidez, idatzi `3A745C` `0x3A745C` gisa) edo bihurtu lehenik hamartar formatura."
"serial_numbers": "Serie zenbakiak (CSV)"
},
"values": {
"clear": "garbitu",
Expand Down
3 changes: 1 addition & 2 deletions src/i18n/locales/fi.json
Original file line number Diff line number Diff line change
Expand Up @@ -309,8 +309,7 @@
"scan_source": "Skannauksen lähde",
"select_scan_source": "Valitse lähde",
"philips_hue_reset": "Philips Hue-nollaus",
"serial_numbers": "Sarjanumerot",
"serial_numbers_info": "Pilkulla erotetut arvot. Lisää jokaiseen laitteen kyljessä olevaan sarjanumeroon etuliite `0x` (esim. kirjoita `3A745C` muodossa `0x3A745C`) tai muunna se ensin desimaalimuotoon."
"serial_numbers": "Sarjanumerot (CSV)"
},
"values": {
"clear": "tyhjennä",
Expand Down
3 changes: 1 addition & 2 deletions src/i18n/locales/fr.json
Original file line number Diff line number Diff line change
Expand Up @@ -309,8 +309,7 @@
"scan_source": "Source du scan",
"select_scan_source": "Sélectionner la source",
"philips_hue_reset": "Réinitialisation Hue",
"serial_numbers": "Numéros de série",
"serial_numbers_info": "Valeurs séparées par des virgules. Pour chacune, ajoutez `0x` au numéro de série inscrit sur l’appareil (par ex. écrire `3A745C` sous la forme `0x3A745C`) ou convertissez-le d’abord en décimal."
"serial_numbers": "Numéros de série (CSV)"
},
"values": {
"clear": "Effacer",
Expand Down
3 changes: 1 addition & 2 deletions src/i18n/locales/hu.json
Original file line number Diff line number Diff line change
Expand Up @@ -309,8 +309,7 @@
"scan_source": "Forrás",
"select_scan_source": "Forrás kiválasztása",
"philips_hue_reset": "Philips Hue visszaállítás",
"serial_numbers": "Sorozatszámok",
"serial_numbers_info": "Vesszővel elválasztott értékek. Mindegyiknél add hozzá a készüléken szereplő sorozatszámhoz a `0x` előtagot (pl. írd a `3A745C` értéket `0x3A745C` formában), vagy előbb konvertáld tizedes formátumba."
"serial_numbers": "Sorozatszámok (CSV)"
},
"values": {
"clear": "törlés",
Expand Down
3 changes: 1 addition & 2 deletions src/i18n/locales/it.json
Original file line number Diff line number Diff line change
Expand Up @@ -309,8 +309,7 @@
"scan_source": "Sorgente scansione",
"select_scan_source": "Seleziona la sorgente",
"philips_hue_reset": "Ripristino Hue",
"serial_numbers": "Numeri di serie",
"serial_numbers_info": "Valori separati da virgola. Per ciascuno, aggiungi `0x` al numero di serie riportato sul dispositivo (ad es. scrivi `3A745C` come `0x3A745C`) oppure converti prima in formato decimale."
"serial_numbers": "Numeri di serie (CSV)"
},
"values": {
"clear": "pulisci",
Expand Down
3 changes: 1 addition & 2 deletions src/i18n/locales/ja.json
Original file line number Diff line number Diff line change
Expand Up @@ -309,8 +309,7 @@
"scan_source": "スキャン元",
"select_scan_source": "スキャン元選択",
"philips_hue_reset": "Philips Hueリセット",
"serial_numbers": "シリアル番号",
"serial_numbers_info": "カンマ区切りの値です。各値について、デバイスに記載されたシリアル番号に `0x` を付けてください(例: `3A745C` を `0x3A745C` と書く)、または先に10進数に変換してください。"
"serial_numbers": "シリアル番号 (CSV)"
},
"values": {
"clear": "クリア",
Expand Down
3 changes: 1 addition & 2 deletions src/i18n/locales/ko.json
Original file line number Diff line number Diff line change
Expand Up @@ -309,8 +309,7 @@
"scan_source": "검색 소스",
"select_scan_source": "검색 소스 선택",
"philips_hue_reset": "Philips Hue 초기화",
"serial_numbers": "일련번호",
"serial_numbers_info": "쉼표로 구분된 값입니다. 각 값에 대해 기기에 적힌 시리얼 번호 앞에 `0x`를 붙이거나(예: `3A745C` → `0x3A745C`) 먼저 10진수로 변환하세요."
"serial_numbers": "일련번호 (CSV)"
},
"values": {
"clear": "지우기",
Expand Down
3 changes: 1 addition & 2 deletions src/i18n/locales/nl.json
Original file line number Diff line number Diff line change
Expand Up @@ -309,8 +309,7 @@
"scan_source": "Scanningsbron",
"select_scan_source": "Selecteer scanningsbron",
"philips_hue_reset": "Philips Hue-reset",
"serial_numbers": "Serienummers",
"serial_numbers_info": "Komma-gescheiden waarden. Voeg voor elk de `0x`-prefix toe aan het serienummer op het apparaat (bijv. schrijf `3A745C` als `0x3A745C`) of converteer het eerst naar decimale vorm."
"serial_numbers": "Serienummers (CSV)"
},
"values": {
"clear": "leeg",
Expand Down
3 changes: 1 addition & 2 deletions src/i18n/locales/no.json
Original file line number Diff line number Diff line change
Expand Up @@ -309,8 +309,7 @@
"scan_source": "Skann-kilde",
"select_scan_source": "Velg kilde",
"philips_hue_reset": "Philips Hue-reset",
"serial_numbers": "Serienumre",
"serial_numbers_info": "Kommaseparerte verdier. For hver verdi legger du til `0x` foran serienummeret som står på enheten (f.eks. skriv `3A745C` som `0x3A745C`) eller konverter det først til desimal."
"serial_numbers": "Serienumre (CSV)"
},
"values": {
"clear": "tøm",
Expand Down
3 changes: 1 addition & 2 deletions src/i18n/locales/pl.json
Original file line number Diff line number Diff line change
Expand Up @@ -309,8 +309,7 @@
"scan_source": "Źródło skanu",
"select_scan_source": "Wybierz źródło",
"philips_hue_reset": "Reset Hue",
"serial_numbers": "Numery seryjne",
"serial_numbers_info": "Wartości rozdzielone przecinkami. Do każdego numeru seryjnego podanego na urządzeniu dodaj przedrostek `0x` (np. zapisz `3A745C` jako `0x3A745C`) albo najpierw przekonwertuj go na zapis dziesiętny."
"serial_numbers": "Numery seryjne (CSV)"
},
"values": {
"clear": "nie wykryto",
Expand Down
3 changes: 1 addition & 2 deletions src/i18n/locales/ptbr.json
Original file line number Diff line number Diff line change
Expand Up @@ -309,8 +309,7 @@
"scan_source": "Origem da varredura",
"select_scan_source": "Selecionar origem",
"philips_hue_reset": "Reset do Hue",
"serial_numbers": "Números de série",
"serial_numbers_info": "Valores separados por vírgula. Para cada um, adicione `0x` ao número de série escrito no dispositivo (por exemplo, escreva `3A745C` como `0x3A745C`) ou converta primeiro para formato decimal."
"serial_numbers": "Números de série (CSV)"
},
"values": {
"clear": "limpar",
Expand Down
3 changes: 1 addition & 2 deletions src/i18n/locales/ru.json
Original file line number Diff line number Diff line change
Expand Up @@ -309,8 +309,7 @@
"scan_source": "Источник сканирования",
"select_scan_source": "Выберите источник",
"philips_hue_reset": "Сброс Hue",
"serial_numbers": "Серийные номера",
"serial_numbers_info": "Значения, разделённые запятыми. Для каждого добавьте префикс `0x` к серийному номеру, указанному на устройстве (например, `3A745C` записывается как `0x3A745C`) или сначала преобразуйте его в десятичный формат."
"serial_numbers": "Серийные номера (CSV)"
},
"values": {
"clear": "очистить",
Expand Down
3 changes: 1 addition & 2 deletions src/i18n/locales/sk.json
Original file line number Diff line number Diff line change
Expand Up @@ -309,8 +309,7 @@
"scan_source": "Zdroj skenovania",
"select_scan_source": "Vybrať zdroj skenovania",
"philips_hue_reset": "Reset Hue",
"serial_numbers": "Sériové čísla",
"serial_numbers_info": "Hodnoty oddelené čiarkou. Ku každému sériovému číslu uvedenému na zariadení pridajte `0x` (napr. zapíšte `3A745C` ako `0x3A745C`) alebo ho najprv preveďte na desiatkový tvar."
"serial_numbers": "Sériové čísla (CSV)"
},
"values": {
"clear": "Prázdne",
Expand Down
3 changes: 1 addition & 2 deletions src/i18n/locales/sv.json
Original file line number Diff line number Diff line change
Expand Up @@ -309,8 +309,7 @@
"scan_source": "Skanningskälla",
"select_scan_source": "Välj källa",
"philips_hue_reset": "Philips Hue-återställning",
"serial_numbers": "Serienummer",
"serial_numbers_info": "Kommaavgränsade värden. Lägg till `0x` framför serienumret som står på enheten för varje värde (t.ex. skriv `3A745C` som `0x3A745C`) eller konvertera det först till decimalform."
"serial_numbers": "Serienummer (CSV)"
},
"values": {
"clear": "rensa",
Expand Down
3 changes: 1 addition & 2 deletions src/i18n/locales/tr.json
Original file line number Diff line number Diff line change
Expand Up @@ -309,8 +309,7 @@
"scan_source": "Tarama kaynağı",
"select_scan_source": "Kaynak seç",
"philips_hue_reset": "Philips Hue sıfırlama",
"serial_numbers": "Seri numaraları",
"serial_numbers_info": "Virgülle ayrılmış değerler. Her biri için, cihazın üzerindeki seri numarasının başına `0x` ekleyin (örneğin `3A745C` değerini `0x3A745C` olarak yazın) veya önce ondalık biçime dönüştürün."
"serial_numbers": "Seri numaraları (CSV)"
},
"values": {
"clear": "temizle",
Expand Down
3 changes: 1 addition & 2 deletions src/i18n/locales/ua.json
Original file line number Diff line number Diff line change
Expand Up @@ -309,8 +309,7 @@
"scan_source": "Джерело скану",
"select_scan_source": "Виберіть джерело",
"philips_hue_reset": "Скидання Hue",
"serial_numbers": "Серійні номери",
"serial_numbers_info": "Значення, розділені комами. Для кожного додайте префікс `0x` до серійного номера, зазначеного на пристрої (наприклад, запишіть `3A745C` як `0x3A745C`) або спочатку перетворіть його в десятковий формат."
"serial_numbers": "Серійні номери (CSV)"
},
"values": {
"clear": "очистити",
Expand Down
3 changes: 1 addition & 2 deletions src/i18n/locales/vi.json
Original file line number Diff line number Diff line change
Expand Up @@ -309,8 +309,7 @@
"scan_source": "Nguồn quét",
"select_scan_source": "Chọn nguồn quét",
"philips_hue_reset": "Đặt lại Hue",
"serial_numbers": "Số serial",
"serial_numbers_info": "Các giá trị được phân tách bằng dấu phẩy. Với từng giá trị, hãy thêm tiền tố `0x` vào số sê-ri ghi trên thiết bị (ví dụ viết `3A745C` thành `0x3A745C`) hoặc chuyển nó sang dạng thập phân trước."
"serial_numbers": "Số serial (CSV)"
},
"values": {
"clear": "Xóa",
Expand Down
3 changes: 1 addition & 2 deletions src/i18n/locales/zh-CN.json
Original file line number Diff line number Diff line change
Expand Up @@ -309,8 +309,7 @@
"scan_source": "扫描源",
"select_scan_source": "选择扫描源",
"philips_hue_reset": "Philips Hue 重置",
"serial_numbers": "序列号",
"serial_numbers_info": "逗号分隔的值。对每一项,在设备上标注的序列号前加上 `0x`(例如将 `3A745C` 写成 `0x3A745C`),或者先转换为十进制形式。"
"serial_numbers": "序列号 (CSV)"
},
"values": {
"clear": "清除",
Expand Down
3 changes: 1 addition & 2 deletions src/i18n/locales/zh.json
Original file line number Diff line number Diff line change
Expand Up @@ -309,8 +309,7 @@
"scan_source": "掃描來源",
"select_scan_source": "選擇掃描來源",
"philips_hue_reset": "Philips Hue 重設",
"serial_numbers": "序號",
"serial_numbers_info": "以逗號分隔的值。對每一筆,在裝置上寫的序號前加上 `0x`(例如將 `3A745C` 寫成 `0x3A745C`),或先轉換為十進位格式。"
"serial_numbers": "序號 (CSV)"
},
"values": {
"clear": "清除",
Expand Down
16 changes: 4 additions & 12 deletions src/pages/TouchlinkPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -39,22 +39,15 @@ export default function TouchlinkPage() {
const [scanIdx, setScanIdx] = useState(0);
const [hueExtPanId, setHueExtPanId] = useState<string>("");
const [hueSerialNumbersRaw, setHueSerialNumbersRaw] = useState<string>("");
const [hueSerialNumbers, setHueSerialNumbers] = useState<number[]>([]);
const [hueSerialNumbers, setHueSerialNumbers] = useState<string[]>([]);

// biome-ignore lint/correctness/useExhaustiveDependencies: specific trigger
useEffect(() => {
setHueExtPanId(bridgeInfo[scanIdx].network?.extended_pan_id ?? "");
}, [scanIdx]);

useEffect(() => {
setHueSerialNumbers(
hueSerialNumbersRaw
? hueSerialNumbersRaw
.replaceAll(" ", "")
.split(",")
.map((v) => Number.parseInt(v, v.startsWith("0x") ? 16 : 10))
: [],
);
setHueSerialNumbers(hueSerialNumbersRaw ? hueSerialNumbersRaw.replaceAll(" ", "").split(",") : []);
}, [hueSerialNumbersRaw]);

const data = useMemo((): TouchlinkTableData[] => {
Expand Down Expand Up @@ -114,8 +107,8 @@ export default function TouchlinkPage() {
}, [scanIdx, hueExtPanId, hueSerialNumbers]);

const isHueResetValid = useMemo(() => {
if ((!hueExtPanId || /^0x[a-f0-9]{16}$/.test(hueExtPanId)) && Array.isArray(hueSerialNumbers) && hueSerialNumbers.length > 0) {
return hueSerialNumbers.every((sn) => Number.isInteger(sn));
if ((!hueExtPanId || /^0x[a-fA-F0-9]{16}$/.test(hueExtPanId)) && Array.isArray(hueSerialNumbers) && hueSerialNumbers.length > 0) {
return hueSerialNumbers.every((sn) => /^[a-fA-F0-9]{6}$/i.test(sn));
}

return false;
Expand Down Expand Up @@ -307,7 +300,6 @@ export default function TouchlinkPage() {
<InputField
name="serial_numbers"
label={t(($) => $.serial_numbers)}
detail={t(($) => $.serial_numbers_info)}
type="text"
value={hueSerialNumbersRaw}
onChange={(e) => !e.target.validationMessage && setHueSerialNumbersRaw(e.target.value)}
Expand Down