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

View File

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

View File

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

View File

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

View File

@ -604,7 +604,9 @@
"cpuUsage": "CPU Usage", "cpuUsage": "CPU Usage",
"memUsage": "MEM Usage", "memUsage": "MEM Usage",
"systemTempC": "System Temp", "systemTempC": "System Temp",
"poolUsage": "Pool Usage" "poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
}, },
"pfsense": { "pfsense": {
"load": "Load Avg", "load": "Load Avg",
@ -628,5 +630,11 @@
"home_power": "Consumption", "home_power": "Consumption",
"charge_power": "Charger", "charge_power": "Charger",
"watt_hour": "Wh" "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", "cpuUsage": "Uso de la Cpu",
"memUsage": "Uso de la memoria", "memUsage": "Uso de la memoria",
"systemTempC": "Temperatura del sistema", "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": { "pfsense": {
"load": "Promedio de carga", "load": "Promedio de carga",
@ -622,11 +624,17 @@
"requests_failed": "Peticiones fallidas" "requests_failed": "Peticiones fallidas"
}, },
"evcc": { "evcc": {
"pv_power": "Production", "pv_power": "Producción",
"battery_soc": "Battery", "battery_soc": "Batería",
"grid_power": "Grid", "grid_power": "Grid",
"home_power": "Consumption", "home_power": "Consumo",
"charge_power": "Charger", "charge_power": "Cargador",
"watt_hour": "Wh" "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", "cpuUsage": "CPU Usage",
"memUsage": "MEM Usage", "memUsage": "MEM Usage",
"systemTempC": "System Temp", "systemTempC": "System Temp",
"poolUsage": "Pool Usage" "poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
}, },
"pfsense": { "pfsense": {
"load": "Load Avg", "load": "Load Avg",
@ -628,5 +630,11 @@
"grid_power": "Grid", "grid_power": "Grid",
"home_power": "Consumption", "home_power": "Consumption",
"charge_power": "Charger" "charge_power": "Charger"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
} }
} }

View File

@ -604,7 +604,9 @@
"cpuUsage": "Cpu", "cpuUsage": "Cpu",
"memUsage": "Mém", "memUsage": "Mém",
"systemTempC": "Temp", "systemTempC": "Temp",
"poolUsage": "Pool" "poolUsage": "Pool",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
}, },
"pfsense": { "pfsense": {
"load": "Charge moy.", "load": "Charge moy.",
@ -623,10 +625,16 @@
}, },
"evcc": { "evcc": {
"pv_power": "Production", "pv_power": "Production",
"battery_soc": "Battery", "battery_soc": "Batterie",
"grid_power": "Grid", "grid_power": "Grille",
"home_power": "Consumption", "home_power": "Consommation",
"charge_power": "Charger", "charge_power": "Chargeur",
"watt_hour": "Wh" "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", "cpuUsage": "CPU Usage",
"memUsage": "MEM Usage", "memUsage": "MEM Usage",
"systemTempC": "System Temp", "systemTempC": "System Temp",
"poolUsage": "Pool Usage" "poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
}, },
"pfsense": { "pfsense": {
"load": "Load Avg", "load": "Load Avg",
@ -628,5 +630,11 @@
"home_power": "Consumption", "home_power": "Consumption",
"charge_power": "Charger", "charge_power": "Charger",
"watt_hour": "Wh" "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", "cpuUsage": "CPU Usage",
"memUsage": "MEM Usage", "memUsage": "MEM Usage",
"systemTempC": "System Temp", "systemTempC": "System Temp",
"poolUsage": "Pool Usage" "poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
}, },
"pfsense": { "pfsense": {
"load": "Load Avg", "load": "Load Avg",
@ -628,5 +630,11 @@
"home_power": "Consumption", "home_power": "Consumption",
"charge_power": "Charger", "charge_power": "Charger",
"watt_hour": "Wh" "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", "systemTempC": "Temperatura sustava",
"poolUsage": "Korištenje memorijskog skupa", "poolUsage": "Korištenje memorijskog skupa",
"cpuUsage": "Korištenje procesora", "cpuUsage": "Korištenje procesora",
"memUsage": "Korištenje memorije" "memUsage": "Korištenje memorije",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
}, },
"pfsense": { "pfsense": {
"load": "Load Avg", "load": "Load Avg",
@ -628,5 +630,11 @@
"home_power": "Consumption", "home_power": "Consumption",
"charge_power": "Charger", "charge_power": "Charger",
"watt_hour": "Wh" "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", "cpuUsage": "CPU Usage",
"memUsage": "MEM Usage", "memUsage": "MEM Usage",
"systemTempC": "System Temp", "systemTempC": "System Temp",
"poolUsage": "Pool Usage" "poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
}, },
"pfsense": { "pfsense": {
"load": "Load Avg", "load": "Load Avg",
@ -628,5 +630,11 @@
"home_power": "Consumption", "home_power": "Consumption",
"charge_power": "Charger", "charge_power": "Charger",
"watt_hour": "Wh" "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", "cpuUsage": "CPU Usage",
"memUsage": "MEM Usage", "memUsage": "MEM Usage",
"systemTempC": "System Temp", "systemTempC": "System Temp",
"poolUsage": "Pool Usage" "poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
}, },
"pfsense": { "pfsense": {
"load": "Load Avg", "load": "Load Avg",
@ -628,5 +630,11 @@
"home_power": "Consumption", "home_power": "Consumption",
"charge_power": "Charger", "charge_power": "Charger",
"watt_hour": "Wh" "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", "cpuUsage": "CPU Usage",
"memUsage": "MEM Usage", "memUsage": "MEM Usage",
"systemTempC": "System Temp", "systemTempC": "System Temp",
"poolUsage": "Pool Usage" "poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
}, },
"pfsense": { "pfsense": {
"up": "Up", "up": "Up",
@ -628,5 +630,11 @@
"grid_power": "Grid", "grid_power": "Grid",
"home_power": "Consumption", "home_power": "Consumption",
"charge_power": "Charger" "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", "cpuUsage": "CPU Usage",
"memUsage": "MEM Usage", "memUsage": "MEM Usage",
"systemTempC": "System Temp", "systemTempC": "System Temp",
"poolUsage": "Pool Usage" "poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
}, },
"pfsense": { "pfsense": {
"temp": "Temp", "temp": "Temp",
@ -628,5 +630,11 @@
"home_power": "Consumption", "home_power": "Consumption",
"charge_power": "Charger", "charge_power": "Charger",
"watt_hour": "Wh" "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", "cpuUsage": "CPU Usage",
"memUsage": "MEM Usage", "memUsage": "MEM Usage",
"systemTempC": "System Temp", "systemTempC": "System Temp",
"poolUsage": "Pool Usage" "poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
}, },
"pfsense": { "pfsense": {
"load": "Load Avg", "load": "Load Avg",
@ -628,5 +630,11 @@
"home_power": "Consumption", "home_power": "Consumption",
"charge_power": "Charger", "charge_power": "Charger",
"watt_hour": "Wh" "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", "cpuUsage": "CPU Usage",
"memUsage": "MEM Usage", "memUsage": "MEM Usage",
"systemTempC": "System Temp", "systemTempC": "System Temp",
"poolUsage": "Pool Usage" "poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
}, },
"pfsense": { "pfsense": {
"load": "Load Avg", "load": "Load Avg",
@ -628,5 +630,11 @@
"home_power": "Consumption", "home_power": "Consumption",
"charge_power": "Charger", "charge_power": "Charger",
"watt_hour": "Wh" "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", "cpuUsage": "CPU Usage",
"memUsage": "MEM Usage", "memUsage": "MEM Usage",
"systemTempC": "System Temp", "systemTempC": "System Temp",
"poolUsage": "Pool Usage" "poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
}, },
"pfsense": { "pfsense": {
"load": "Load Avg", "load": "Load Avg",
@ -628,5 +630,11 @@
"home_power": "Consumption", "home_power": "Consumption",
"charge_power": "Charger", "charge_power": "Charger",
"watt_hour": "Wh" "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", "cpuUsage": "CPU Usage",
"memUsage": "MEM Usage", "memUsage": "MEM Usage",
"systemTempC": "System Temp", "systemTempC": "System Temp",
"poolUsage": "Pool Usage" "poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
}, },
"pfsense": { "pfsense": {
"load": "Load Avg", "load": "Load Avg",
@ -628,5 +630,11 @@
"home_power": "Consumption", "home_power": "Consumption",
"charge_power": "Charger", "charge_power": "Charger",
"watt_hour": "Wh" "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", "cpuUsage": "CPU Usage",
"memUsage": "MEM Usage", "memUsage": "MEM Usage",
"systemTempC": "System Temp", "systemTempC": "System Temp",
"poolUsage": "Pool Usage" "poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
}, },
"pfsense": { "pfsense": {
"load": "Load Avg", "load": "Load Avg",
@ -628,5 +630,11 @@
"home_power": "Consumption", "home_power": "Consumption",
"charge_power": "Charger", "charge_power": "Charger",
"watt_hour": "Wh" "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", "systemTempC": "System Temp",
"cpuUsage": "CPU Usage", "cpuUsage": "CPU Usage",
"memUsage": "MEM Usage", "memUsage": "MEM Usage",
"poolUsage": "Pool Usage" "poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
}, },
"pfsense": { "pfsense": {
"load": "Load Avg", "load": "Load Avg",
@ -628,5 +630,11 @@
"home_power": "Consumption", "home_power": "Consumption",
"charge_power": "Charger", "charge_power": "Charger",
"watt_hour": "Wh" "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", "cpuUsage": "CPU Usage",
"memUsage": "MEM Usage", "memUsage": "MEM Usage",
"systemTempC": "System Temp", "systemTempC": "System Temp",
"poolUsage": "Pool Usage" "poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
}, },
"pfsense": { "pfsense": {
"load": "Load Avg", "load": "Load Avg",
@ -637,5 +639,11 @@
"home_power": "Consumption", "home_power": "Consumption",
"charge_power": "Charger", "charge_power": "Charger",
"watt_hour": "Wh" "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", "cpuUsage": "CPU Usage",
"memUsage": "MEM Usage", "memUsage": "MEM Usage",
"systemTempC": "System Temp", "systemTempC": "System Temp",
"poolUsage": "Pool Usage" "poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
}, },
"pfsense": { "pfsense": {
"load": "Load Avg", "load": "Load Avg",
@ -628,5 +630,11 @@
"home_power": "Consumption", "home_power": "Consumption",
"charge_power": "Charger", "charge_power": "Charger",
"watt_hour": "Wh" "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", "cpuUsage": "CPU Usage",
"memUsage": "MEM Usage", "memUsage": "MEM Usage",
"systemTempC": "System Temp", "systemTempC": "System Temp",
"poolUsage": "Pool Usage" "poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
}, },
"pfsense": { "pfsense": {
"disk": "Disk Usage", "disk": "Disk Usage",
@ -628,5 +630,11 @@
"grid_power": "Grid", "grid_power": "Grid",
"charge_power": "Charger", "charge_power": "Charger",
"watt_hour": "Wh" "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", "cpuUsage": "CPU Usage",
"memUsage": "MEM Usage", "memUsage": "MEM Usage",
"systemTempC": "System Temp", "systemTempC": "System Temp",
"poolUsage": "Pool Usage" "poolUsage": "Pool Usage",
"volumeUsage": "Volume Usage",
"invalid": "Invalid"
}, },
"pfsense": { "pfsense": {
"load": "Load Avg", "load": "Load Avg",
@ -628,5 +630,11 @@
"home_power": "Consumption", "home_power": "Consumption",
"charge_power": "Charger", "charge_power": "Charger",
"watt_hour": "Wh" "watt_hour": "Wh"
},
"pialert": {
"total": "Total",
"connected": "Connected",
"new_devices": "New Devices",
"down_alerts": "Down Alerts"
} }
} }

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -15,21 +15,28 @@ export default async function handler(req, res) {
}); });
} }
let startTime = performance.now(); try {
let [status] = await httpProxy(pingURL, { let startTime = performance.now();
method: "HEAD" let [status] = await httpProxy(pingURL, {
}); method: "HEAD"
let endTime = performance.now(); });
let endTime = performance.now();
if (status > 403) { if (status > 403) {
// try one more time as a GET in case HEAD is rejected for whatever reason // try one more time as a GET in case HEAD is rejected for whatever reason
startTime = performance.now(); startTime = performance.now();
[status] = await httpProxy(pingURL); [status] = await httpProxy(pingURL);
endTime = performance.now(); 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.',
});
} }
return res.status(200).json({
status,
latency: endTime - startTime
});
} }

View File

@ -377,6 +377,7 @@ export default function Wrapper({ initialSettings, fallback }) {
<div <div
id="inner_wrapper" id="inner_wrapper"
className={classNames( className={classNames(
'fixed overflow-auto w-full h-full',
backgroundBlur && `backdrop-blur${initialSettings.background.blur.length ? '-' : ""}${initialSettings.background.blur}`, backgroundBlur && `backdrop-blur${initialSettings.background.blur.length ? '-' : ""}${initialSettings.background.blur}`,
backgroundSaturate && `backdrop-saturate-${initialSettings.background.saturate}`, backgroundSaturate && `backdrop-saturate-${initialSettings.background.saturate}`,
backgroundBrightness && `backdrop-brightness-${initialSettings.background.brightness}`, 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 (enableBlocks !== undefined) cleanedService.widget.enableBlocks = JSON.parse(enableBlocks);
if (enableNowPlaying !== undefined) cleanedService.widget.enableNowPlaying = JSON.parse(enableNowPlaying); if (enableNowPlaying !== undefined) cleanedService.widget.enableNowPlaying = JSON.parse(enableNowPlaying);
} }
if (type === "diskstation") { if (["diskstation", "qnap"].includes(type)) {
if (volume) cleanedService.widget.volume = volume; if (volume) cleanedService.widget.volume = volume;
} }
} }

View File

@ -57,6 +57,7 @@ const components = {
pfsense: dynamic(() => import("./pfsense/component")), pfsense: dynamic(() => import("./pfsense/component")),
photoprism: dynamic(() => import("./photoprism/component")), photoprism: dynamic(() => import("./photoprism/component")),
proxmoxbackupserver: dynamic(() => import("./proxmoxbackupserver/component")), proxmoxbackupserver: dynamic(() => import("./proxmoxbackupserver/component")),
pialert: dynamic(() => import("./pialert/component")),
pihole: dynamic(() => import("./pihole/component")), pihole: dynamic(() => import("./pihole/component")),
plex: dynamic(() => import("./plex/component")), plex: dynamic(() => import("./plex/component")),
portainer: dynamic(() => import("./portainer/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.cpuUsage" />
<Block label="qnap.memUsage" /> <Block label="qnap.memUsage" />
<Block label="qnap.systemTempC" /> <Block label="qnap.systemTempC" />
<Block label="qnap.poolUsage" /> <Block label={(widget.volume) ? "qnap.volumeUsage" : "qnap.poolUsage" } />
</Container> </Container>
); );
} }
@ -32,9 +32,29 @@ export default function Component({ service }) {
const totalMemory = statusData.system.total_memory._cdata; const totalMemory = statusData.system.total_memory._cdata;
const freeMemory = statusData.system.free_memory._cdata; const freeMemory = statusData.system.free_memory._cdata;
const systemTempC = statusData.system.cpu_tempc._text; const systemTempC = statusData.system.cpu_tempc._text;
let volumeTotalSize = 0;
let volumeFreeSize = 0;
let validVolume = true;
const volumeTotalSize = statusData.volume.volumeUse.total_size._cdata; if (Array.isArray(statusData.volume.volumeUseList.volumeUse)) {
const volumeFreeSize = statusData.volume.volumeUse.free_size._cdata; 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 ( return (
<Container service={service}> <Container service={service}>
@ -51,8 +71,8 @@ export default function Component({ service }) {
value={t("common.number", { value: systemTempC, maximumFractionDigits: 1, style: "unit", unit: "celsius" })} value={t("common.number", { value: systemTempC, maximumFractionDigits: 1, style: "unit", unit: "celsius" })}
/> />
<Block <Block
label="qnap.poolUsage" label={(widget.volume) ? "qnap.volumeUsage" : "qnap.poolUsage" }
value={t("common.percent", { value: (((volumeTotalSize - volumeFreeSize) / volumeTotalSize) * 100).toFixed(0) })} value={(validVolume) ? t("common.percent", { value: (((volumeTotalSize - volumeFreeSize) / volumeTotalSize) * 100).toFixed(0) }) : t("qnap.invalid") }
/> />
</Container> </Container>
); );

View File

@ -57,8 +57,23 @@ async function apiCall(widget, endpoint, service) {
return { status, contentType, data: null, responseHeaders }; return { status, contentType, data: null, responseHeaders };
} }
const dataDecoded = xml2json(data.toString(), { compact: true }); let dataDecoded = JSON.parse(xml2json(data.toString(), { compact: true }).toString());
return { status, contentType, data: JSON.parse(dataDecoded.toString()), responseHeaders };
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) { export default async function qnapProxyHandler(req, res) {
@ -84,6 +99,6 @@ export default async function qnapProxyHandler(req, res) {
return res.status(200).send({ return res.status(200).send({
system: systemStatsData.QDocRoot.func.ownContent.root, 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 pfsense from "./pfsense/widget";
import photoprism from "./photoprism/widget"; import photoprism from "./photoprism/widget";
import proxmoxbackupserver from "./proxmoxbackupserver/widget"; import proxmoxbackupserver from "./proxmoxbackupserver/widget";
import pialert from "./pialert/widget";
import pihole from "./pihole/widget"; import pihole from "./pihole/widget";
import plex from "./plex/widget"; import plex from "./plex/widget";
import portainer from "./portainer/widget"; import portainer from "./portainer/widget";
@ -138,6 +139,7 @@ const widgets = {
pfsense, pfsense,
photoprism, photoprism,
proxmoxbackupserver, proxmoxbackupserver,
pialert,
pihole, pihole,
plex, plex,
portainer, portainer,

View File

@ -32,4 +32,27 @@ module.exports = {
}, },
}, },
plugins: [tailwindForms, tailwindScrollbars], 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',
],
}