Merge branch 'benphelps:main' into main

This commit is contained in:
Lewis England 2023-05-22 11:02:12 +01:00 committed by GitHub
commit b01097bc96
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
50 changed files with 591 additions and 151 deletions

View File

@ -604,7 +604,9 @@
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
@ -628,5 +630,11 @@
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
}
}

View File

@ -604,7 +604,9 @@
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
@ -628,5 +630,11 @@
"grid_power": "Grid",
"home_power": "Consumption",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
}
}

View File

@ -604,7 +604,9 @@
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
@ -628,5 +630,11 @@
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
}
}

View File

@ -30,12 +30,12 @@
"placeholder": "Hledat…"
},
"resources": {
"cpu": "PROC",
"cpu": "CPU",
"total": "Celkem",
"free": "Volné",
"used": "Využité",
"load": "Zatížení",
"mem": "PAM",
"mem": "RAM",
"max": "Max.",
"uptime": "BĚŽÍ",
"months": "měs.",
@ -64,8 +64,8 @@
"docker": {
"rx": "RX",
"tx": "TX",
"mem": "PAM",
"cpu": "PROC",
"mem": "RAM",
"cpu": "CPU",
"offline": "Offline",
"error": "Chyba",
"unknown": "Neznámý",
@ -175,7 +175,7 @@
"queries": "Dotazy",
"blocked": "Blokováno",
"gravity": "Gravity",
"blocked_percent": "Blokováno %"
"blocked_percent": "Blokováno"
},
"adguard": {
"queries": "Dotazy",
@ -301,14 +301,14 @@
"failedLoginsLast24H": "Neúspěšná přihlášení (24h)"
},
"proxmox": {
"mem": "PAM",
"cpu": "PROC",
"mem": "RAM",
"cpu": "CPU",
"lxc": "LXC",
"vms": "Virtuální Stroje"
},
"glances": {
"cpu": "PROC",
"mem": "PAM",
"cpu": "CPU",
"mem": "RAM",
"wait": "Prosím počkejte",
"temp": "TEPLOTA",
"uptime": "BĚŽÍ",
@ -324,8 +324,8 @@
"url": "URL"
},
"homebridge": {
"update_available": "Dostupná aktualizace",
"up_to_date": "Aktuální",
"update_available": "Dostupná",
"up_to_date": "Žádné",
"available_update": "Systém",
"updates": "Aktualizace",
"child_bridges": "Podřízené můstky",
@ -369,7 +369,7 @@
"ping": "Odezva"
},
"scrutiny": {
"passed": "Přijato",
"passed": "Úspěšné",
"failed": "Neúspěšné",
"unknown": "Neznámé"
},
@ -461,7 +461,7 @@
"proxmoxbackupserver": {
"datastore_usage": "Datové úložiště",
"failed_tasks_24h": "Neúspěšné úlohy 24h",
"cpu_usage": "PROC",
"cpu_usage": "CPU",
"memory_usage": "Paměť"
},
"immich": {
@ -494,7 +494,7 @@
"people": "Lidé"
},
"diskstation": {
"days": "Dni",
"days": "dní",
"uptime": "Doba provozu",
"volumeAvailable": "K dispozici"
},
@ -604,7 +604,9 @@
"memUsage": "Využití paměti",
"systemTempC": "Teplota systému",
"poolUsage": "Využití fondu",
"cpuUsage": "Využití procesoru"
"cpuUsage": "Využití procesoru",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Prům. zatížení",
@ -623,10 +625,16 @@
},
"evcc": {
"watt_hour": "Wh",
"pv_power": "Production",
"pv_power": "Produkce",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
}
}

View File

@ -604,7 +604,9 @@
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
@ -628,5 +630,11 @@
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
}
}

View File

@ -604,7 +604,9 @@
"cpuUsage": "CPU Nutzung",
"memUsage": "MEM Nutzung",
"systemTempC": "System Temp",
"poolUsage": "Pool Nutzung"
"poolUsage": "Pool Nutzung",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Durchschnittliche Last",
@ -628,5 +630,11 @@
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
}
}

View File

@ -159,21 +159,21 @@
"diffsDetected": "Εντοπίστηκαν διαφορές"
},
"tautulli": {
"playing": "Παίζει",
"transcoding": "Διακωδικοποίηση",
"playing": "Αναπαράγει",
"transcoding": "Μετακωδικοποίηση",
"bitrate": "Ρυθμός bit",
"no_active": "Δεν υπάρχουν ενεργές ροές"
},
"nzbget": {
"rate": "βαθμός",
"rate": "Ρυθμός",
"remaining": "Υπόλοιπο",
"downloaded": "Κατεβασμένο"
},
"plex": {
"streams": "Ενεργά Streams",
"streams": "Ενεργές Ροές",
"movies": "Ταινίες",
"tv": "Σειρές",
"albums": "Δίσκοι"
"tv": "Τηλεοπτικές εκπομπές",
"albums": "Άλμπουμ"
},
"sabnzbd": {
"rate": "Βαθμός",
@ -199,7 +199,7 @@
},
"deluge": {
"download": "Κατέβασμα",
"upload": "Φόρτωση",
"upload": "Ανέβασμα",
"leech": "Leech",
"seed": "Seed"
},
@ -604,7 +604,9 @@
"cpuUsage": "Χρήση επεξεργαστή",
"memUsage": "Χρήση μνήμης",
"systemTempC": "Θερμοκρασία συστήματος",
"poolUsage": "Χρήση πλειάδας"
"poolUsage": "Χρήση πισίνας",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
@ -618,15 +620,21 @@
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
"requests": "Τρέχοντα αιτήματα",
"requests_failed": "Αποτυχημένα αιτήματα"
},
"evcc": {
"watt_hour": "Wh",
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger"
"pv_power": "Παραγωγή",
"battery_soc": "Μπαταρία",
"grid_power": "Πλέγμα",
"home_power": "Κατανάλωση",
"charge_power": "Φορτιστής"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
}
}

View File

@ -175,7 +175,9 @@
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"deluge": {
"download": "Download",
@ -230,6 +232,12 @@
"approved": "Approved",
"available": "Available"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
},
"pihole": {
"queries": "Queries",
"blocked": "Blocked",

View File

@ -604,7 +604,9 @@
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
@ -628,5 +630,11 @@
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
}
}

View File

@ -604,7 +604,9 @@
"cpuUsage": "Uso de la Cpu",
"memUsage": "Uso de la memoria",
"systemTempC": "Temperatura del sistema",
"poolUsage": "Comprobación del uso del grupo de memoria"
"poolUsage": "Comprobación del uso del grupo de memoria",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Promedio de carga",
@ -622,11 +624,17 @@
"requests_failed": "Peticiones fallidas"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"pv_power": "Producción",
"battery_soc": "Batería",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
"home_power": "Consumo",
"charge_power": "Cargador",
"watt_hour": "vatio-hora (Wh)"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
}
}

View File

@ -604,7 +604,9 @@
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
@ -628,5 +630,11 @@
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
}
}

View File

@ -604,7 +604,9 @@
"cpuUsage": "Cpu",
"memUsage": "Mém",
"systemTempC": "Temp",
"poolUsage": "Pool"
"poolUsage": "Pool",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Charge moy.",
@ -623,10 +625,16 @@
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"battery_soc": "Batterie",
"grid_power": "Grille",
"home_power": "Consommation",
"charge_power": "Chargeur",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
}
}

View File

@ -604,7 +604,9 @@
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
@ -628,5 +630,11 @@
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
}
}

View File

@ -604,7 +604,9 @@
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
@ -628,5 +630,11 @@
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
}
}

View File

@ -604,7 +604,9 @@
"systemTempC": "Temperatura sustava",
"poolUsage": "Korištenje memorijskog skupa",
"cpuUsage": "Korištenje procesora",
"memUsage": "Korištenje memorije"
"memUsage": "Korištenje memorije",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
@ -628,5 +630,11 @@
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
}
}

View File

@ -604,7 +604,9 @@
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
@ -628,5 +630,11 @@
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
}
}

View File

@ -604,7 +604,9 @@
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
@ -628,5 +630,11 @@
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
}
}

View File

@ -604,7 +604,9 @@
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"up": "Up",
@ -628,5 +630,11 @@
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
}
}

View File

@ -604,7 +604,9 @@
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"temp": "Temp",
@ -628,5 +630,11 @@
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"down_alerts": "Down Alerts",
"new_devices": "New Devices"
}
}

View File

@ -604,7 +604,9 @@
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
@ -628,5 +630,11 @@
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
}
}

View File

@ -604,7 +604,9 @@
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
@ -628,5 +630,11 @@
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
}
}

View File

@ -604,7 +604,9 @@
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
@ -628,5 +630,11 @@
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
}
}

View File

@ -604,7 +604,9 @@
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
@ -628,5 +630,11 @@
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
}
}

View File

@ -604,7 +604,9 @@
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
@ -628,5 +630,11 @@
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
}
}

View File

@ -604,7 +604,9 @@
"systemTempC": "System Temp",
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"poolUsage": "Pool Usage"
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
@ -628,5 +630,11 @@
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
}
}

View File

@ -613,7 +613,9 @@
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
@ -637,5 +639,11 @@
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
}
}

View File

@ -604,7 +604,9 @@
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
@ -628,5 +630,11 @@
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"pialert": {
"new_devices": "New Devices",
"down_alerts": "Down Alerts",
"total": "Total",
"connected": "Connected"
}
}

View File

@ -604,7 +604,9 @@
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"disk": "Disk Usage",
@ -628,5 +630,11 @@
"grid_power": "Grid",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
}
}

View File

@ -604,7 +604,9 @@
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
@ -628,5 +630,11 @@
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
}
}

View File

@ -604,7 +604,9 @@
"cpuUsage": "CPU",
"memUsage": "MEM",
"systemTempC": "Temperatura",
"poolUsage": "Prostor"
"poolUsage": "Prostor",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Povp. obremenitev",
@ -622,11 +624,17 @@
"requests_failed": "Neuspešnih zahtev"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"pv_power": "Proizvodnja",
"battery_soc": "Baterija",
"grid_power": "Omrežje",
"home_power": "Poraba",
"charge_power": "Polnilec",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
}
}

View File

@ -604,7 +604,9 @@
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"memory": "Mem Usage",
@ -628,5 +630,11 @@
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
}
}

View File

@ -604,7 +604,9 @@
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
@ -628,5 +630,11 @@
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
}
}

View File

@ -604,7 +604,9 @@
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
@ -628,5 +630,11 @@
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
}
}

View File

@ -604,7 +604,9 @@
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
@ -628,5 +630,11 @@
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
}
}

View File

@ -604,7 +604,9 @@
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
@ -628,5 +630,11 @@
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
}
}

View File

@ -604,7 +604,9 @@
"cpuUsage": "Використання CPU",
"memUsage": "Використання пам'яті",
"systemTempC": "Температура системи",
"poolUsage": "Використання пулу"
"poolUsage": "Використання пулу",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Середнє завантаження",
@ -617,16 +619,22 @@
"wanIP": "WAN IP"
},
"caddy": {
"upstreams": "Upstreams",
"requests": "Current requests",
"requests_failed": "Failed requests"
"upstreams": "Потоки",
"requests": "Поточні запити",
"requests_failed": "Невдалі запити"
},
"evcc": {
"pv_power": "Production",
"battery_soc": "Battery",
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
"pv_power": "Виробництво",
"battery_soc": "Батарея",
"grid_power": "Сітка",
"home_power": "Споживання",
"charge_power": "Зарядний пристрій",
"watt_hour": "Вт/год"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
}
}

View File

@ -604,7 +604,9 @@
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
"poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
@ -628,5 +630,11 @@
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
}
}

View File

@ -604,7 +604,9 @@
"systemTempC": "System Temp",
"poolUsage": "Pool Usage",
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage"
"memUsage": "MEM Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
@ -628,5 +630,11 @@
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
}
}

View File

@ -604,7 +604,9 @@
"cpuUsage": "处理器",
"memUsage": "内存",
"systemTempC": "系统温度",
"poolUsage": "存储池"
"poolUsage": "存储池",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "平均负载",
@ -628,5 +630,11 @@
"home_power": "Consumption",
"charge_power": "Charger",
"watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
}
}

View File

@ -6,7 +6,7 @@
"information": "資訊",
"url": "網址",
"raw_error": "原始錯誤",
"response_data": "回復數據"
"response_data": "回應資料"
},
"weather": {
"current": "目前位置",
@ -63,9 +63,9 @@
"mem": "記憶體",
"temp": "溫度",
"max": "最大",
"uptime": "運時間",
"uptime": "運時間",
"months": "月",
"days": "",
"days": "",
"hours": "時",
"minutes": "分"
},
@ -115,7 +115,7 @@
"queries": "查詢",
"blocked": "已阻擋",
"gravity": "阻擋清單",
"blocked_percent": "Blocked %"
"blocked_percent": "已封鎖 %"
},
"speedtest": {
"upload": "上行速率",
@ -214,8 +214,8 @@
"uptime": "系統運行時間",
"days": "天",
"wan": "WAN",
"lan_users": "LAN使用者",
"wlan_users": "WLAN使用者",
"lan_users": "有線使用者",
"wlan_users": "無線使用者",
"up": "上線",
"down": "離線",
"wait": "請稍後",
@ -223,7 +223,7 @@
"wlan": "WLAN",
"devices": "設備",
"lan_devices": "LAN設備",
"wlan_devices": "WLAN設備",
"wlan_devices": "無線設備",
"empty_data": "子系統狀態未知"
},
"plex": {
@ -515,8 +515,8 @@
"memoryusage": "記憶體用量",
"freespace": "可用空間",
"activeusers": "活躍用戶",
"numfiles": "Files",
"numshares": "Shared Items"
"numfiles": "檔案",
"numshares": "已分享"
},
"kopia": {
"status": "狀態",
@ -590,43 +590,51 @@
"address": "Address",
"expires": "Expires",
"never": "Never",
"last_seen": "Last Seen",
"last_seen": "上次連線",
"now": "Now",
"years": "{{number}}y",
"hours": "{{number}}h",
"minutes": "{{number}}m",
"seconds": "{{number}}s",
"ago": "{{value}} Ago",
"weeks": "{{number}}w",
"days": "{{number}}d"
"years": "{{number}}",
"hours": "{{number}} 小時",
"minutes": "{{number}} 分鐘",
"seconds": "{{number}}",
"ago": "{{value}} ",
"weeks": "{{number}}",
"days": "{{number}}"
},
"qnap": {
"cpuUsage": "CPU Usage",
"memUsage": "MEM Usage",
"systemTempC": "System Temp",
"poolUsage": "Pool Usage"
"cpuUsage": "CPU 使用率",
"memUsage": "記憶體使用率",
"systemTempC": "系統溫度",
"poolUsage": "儲存池使用率",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
},
"pfsense": {
"load": "Load Avg",
"memory": "Mem Usage",
"wanStatus": "WAN Status",
"load": "平均負載量",
"memory": "記憶體使用率",
"wanStatus": "網際網路狀態",
"up": "Up",
"down": "Down",
"temp": "Temp",
"disk": "Disk Usage",
"temp": "溫度",
"disk": "硬碟使用率",
"wanIP": "WAN IP"
},
"caddy": {
"upstreams": "Upstreams",
"upstreams": "上行",
"requests": "Current requests",
"requests_failed": "Failed requests"
},
"evcc": {
"grid_power": "Grid",
"home_power": "Consumption",
"charge_power": "Charger",
"pv_power": "Production",
"battery_soc": "Battery",
"watt_hour": "Wh"
"grid_power": "電網",
"home_power": "電源使用率",
"charge_power": "充電",
"pv_power": "正式環境",
"battery_soc": "電池",
"watt_hour": "瓦時 (Wh)"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
}
}

View File

@ -14,22 +14,29 @@ export default async function handler(req, res) {
error: "No ping URL given",
});
}
let startTime = performance.now();
let [status] = await httpProxy(pingURL, {
method: "HEAD"
});
let endTime = performance.now();
if (status > 403) {
// try one more time as a GET in case HEAD is rejected for whatever reason
startTime = performance.now();
[status] = await httpProxy(pingURL);
endTime = performance.now();
}
return res.status(200).json({
status,
latency: endTime - startTime
});
try {
let startTime = performance.now();
let [status] = await httpProxy(pingURL, {
method: "HEAD"
});
let endTime = performance.now();
if (status > 403) {
// try one more time as a GET in case HEAD is rejected for whatever reason
startTime = performance.now();
[status] = await httpProxy(pingURL);
endTime = performance.now();
}
return res.status(200).json({
status,
latency: endTime - startTime
});
} catch (e) {
logger.debug("Error attempting ping: %s", JSON.stringify(e));
return res.status(400).send({
error: 'Error attempting ping, see logs.',
});
}
}

View File

@ -377,6 +377,7 @@ export default function Wrapper({ initialSettings, fallback }) {
<div
id="inner_wrapper"
className={classNames(
'fixed overflow-auto w-full h-full',
backgroundBlur && `backdrop-blur${initialSettings.background.blur.length ? '-' : ""}${initialSettings.background.blur}`,
backgroundSaturate && `backdrop-saturate-${initialSettings.background.saturate}`,
backgroundBrightness && `backdrop-brightness-${initialSettings.background.brightness}`,

View File

@ -306,7 +306,7 @@ export function cleanServiceGroups(groups) {
if (enableBlocks !== undefined) cleanedService.widget.enableBlocks = JSON.parse(enableBlocks);
if (enableNowPlaying !== undefined) cleanedService.widget.enableNowPlaying = JSON.parse(enableNowPlaying);
}
if (type === "diskstation") {
if (["diskstation", "qnap"].includes(type)) {
if (volume) cleanedService.widget.volume = volume;
}
}

View File

@ -57,6 +57,7 @@ const components = {
pfsense: dynamic(() => import("./pfsense/component")),
photoprism: dynamic(() => import("./photoprism/component")),
proxmoxbackupserver: dynamic(() => import("./proxmoxbackupserver/component")),
pialert: dynamic(() => import("./pialert/component")),
pihole: dynamic(() => import("./pihole/component")),
plex: dynamic(() => import("./plex/component")),
portainer: dynamic(() => import("./portainer/component")),

View File

@ -0,0 +1,37 @@
import { useTranslation } from "next-i18next";
import Container from "components/services/widget/container";
import Block from "components/services/widget/block";
import useWidgetAPI from "utils/proxy/use-widget-api";
export default function Component({ service }) {
const { t } = useTranslation();
const { widget } = service;
const { data: pialertData, error: pialertError } = useWidgetAPI(widget, "data");
if (pialertError) {
return <Container service={service} error={pialertError} />;
}
if (!pialertData) {
return (
<Container service={service}>
<Block label="pialert.total" />
<Block label="pialert.connected" />
<Block label="pialert.new_devices" />
<Block label="pialert.down_alerts" />
</Container>
);
}
return (
<Container service={service}>
<Block label="pialert.total" value={t("common.number", { value: parseInt(pialertData[0], 10) })} />
<Block label="pialert.connected" value={t("common.number", { value: parseInt(pialertData[1], 10) })} />
<Block label="pialert.new_devices" value={t("common.number", { value: parseInt(pialertData[3], 10) })} />
<Block label="pialert.down_alerts" value={t("common.number", { value: parseInt(pialertData[4], 10) })} />
</Container>
);
}

View File

@ -0,0 +1,14 @@
import genericProxyHandler from "utils/proxy/handlers/generic";
const widget = {
api: "{url}/php/server/devices.php?action=getDevicesTotals",
proxyHandler: genericProxyHandler,
mappings: {
"data": {
endpoint: "data",
},
},
};
export default widget;

View File

@ -23,7 +23,7 @@ export default function Component({ service }) {
<Block label="qnap.cpuUsage" />
<Block label="qnap.memUsage" />
<Block label="qnap.systemTempC" />
<Block label="qnap.poolUsage" />
<Block label={(widget.volume) ? "qnap.volumeUsage" : "qnap.poolUsage" } />
</Container>
);
}
@ -32,9 +32,29 @@ export default function Component({ service }) {
const totalMemory = statusData.system.total_memory._cdata;
const freeMemory = statusData.system.free_memory._cdata;
const systemTempC = statusData.system.cpu_tempc._text;
let volumeTotalSize = 0;
let volumeFreeSize = 0;
let validVolume = true;
const volumeTotalSize = statusData.volume.volumeUse.total_size._cdata;
const volumeFreeSize = statusData.volume.volumeUse.free_size._cdata;
if (Array.isArray(statusData.volume.volumeUseList.volumeUse)) {
if (widget.volume) {
const volumeSelected = statusData.volume.volumeList.volume.findIndex(vl => vl.volumeLabel._cdata === widget.volume);
if (volumeSelected !== -1) {
volumeTotalSize = statusData.volume.volumeUseList.volumeUse[volumeSelected].total_size._cdata;
volumeFreeSize = statusData.volume.volumeUseList.volumeUse[volumeSelected].free_size._cdata;
} else {
validVolume = false;
}
} else {
statusData.volume.volumeUseList.volumeUse.forEach((volume) => {
volumeTotalSize += parseInt(volume.total_size._cdata, 10);
volumeFreeSize += parseInt(volume.free_size._cdata, 10);
});
}
} else {
volumeTotalSize = statusData.volume.volumeUseList.volumeUse.total_size._cdata;
volumeFreeSize = statusData.volume.volumeUseList.volumeUse.free_size._cdata;
}
return (
<Container service={service}>
@ -51,8 +71,8 @@ export default function Component({ service }) {
value={t("common.number", { value: systemTempC, maximumFractionDigits: 1, style: "unit", unit: "celsius" })}
/>
<Block
label="qnap.poolUsage"
value={t("common.percent", { value: (((volumeTotalSize - volumeFreeSize) / volumeTotalSize) * 100).toFixed(0) })}
label={(widget.volume) ? "qnap.volumeUsage" : "qnap.poolUsage" }
value={(validVolume) ? t("common.percent", { value: (((volumeTotalSize - volumeFreeSize) / volumeTotalSize) * 100).toFixed(0) }) : t("qnap.invalid") }
/>
</Container>
);

View File

@ -57,8 +57,23 @@ async function apiCall(widget, endpoint, service) {
return { status, contentType, data: null, responseHeaders };
}
const dataDecoded = xml2json(data.toString(), { compact: true });
return { status, contentType, data: JSON.parse(dataDecoded.toString()), responseHeaders };
let dataDecoded = JSON.parse(xml2json(data.toString(), { compact: true }).toString());
if (dataDecoded.QDocRoot.authPassed._cdata === '0') {
logger.error("QNAP API rejected the request, attempting to obtain new session token");
key = await login(widget, service);
apiUrl = new URL(formatApiCall(`${endpoint}&sid=${key}`, widget));
[status, contentType, data, responseHeaders] = await httpProxy(apiUrl);
if (status !== 200) {
logger.error("Error getting data from QNAP: %s status %d. Data: %s", apiUrl, status, data);
return { status, contentType, data: null, responseHeaders };
}
dataDecoded = JSON.parse(xml2json(data.toString(), { compact: true }).toString());
}
return { status, contentType, data: dataDecoded, responseHeaders };
}
export default async function qnapProxyHandler(req, res) {
@ -84,6 +99,6 @@ export default async function qnapProxyHandler(req, res) {
return res.status(200).send({
system: systemStatsData.QDocRoot.func.ownContent.root,
volume: volumeStatsData.QDocRoot.volumeUseList
volume: volumeStatsData.QDocRoot
});
}

View File

@ -51,6 +51,7 @@ import paperlessngx from "./paperlessngx/widget";
import pfsense from "./pfsense/widget";
import photoprism from "./photoprism/widget";
import proxmoxbackupserver from "./proxmoxbackupserver/widget";
import pialert from "./pialert/widget";
import pihole from "./pihole/widget";
import plex from "./plex/widget";
import portainer from "./portainer/widget";
@ -138,6 +139,7 @@ const widgets = {
pfsense,
photoprism,
proxmoxbackupserver,
pialert,
pihole,
plex,
portainer,

View File

@ -32,4 +32,27 @@ module.exports = {
},
},
plugins: [tailwindForms, tailwindScrollbars],
};
// always include these in build as classes are dynamically constructed
safelist: [
'backdrop-blur',
'backdrop-blur-sm',
'backdrop-blur-md',
'backdrop-blur-xl',
'backdrop-saturate-0',
'backdrop-saturate-50',
'backdrop-saturate-100',
'backdrop-saturate-150',
'backdrop-saturate-200',
'backdrop-brightness-0',
'backdrop-brightness-50',
'backdrop-brightness-75',
'backdrop-brightness-90',
'backdrop-brightness-95',
'backdrop-brightness-100',
'backdrop-brightness-105',
'backdrop-brightness-110',
'backdrop-brightness-125',
'backdrop-brightness-150',
'backdrop-brightness-200',
],
}