feat: add Synology NAS, Home Assistant monitoring, multi-channel notifications

New tabs:
- Synology NAS: CPU, RAM, temp, volumes, VMs, Docker containers
- Home Assistant: sensors, automations, persons, climate, battery, doors

New features:
- Personalized PC agent download with custom name
- Notification settings: per-category Telegram/Email/WhatsApp toggles
- Email via SMTP, WhatsApp via CallMeBot API
- Test notification buttons for each channel
- Unified notifier replaces direct Telegram calls in alerter

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Андрей Бобырев
2026-05-20 13:59:57 +03:00
parent bab8fc33cc
commit cc01667879
12 changed files with 1910 additions and 82 deletions

View File

@@ -633,6 +633,75 @@ main {
color: white;
}
/* HA Summary */
.ha-summary {
font-size: 12px;
line-height: 1.6;
margin-bottom: 8px;
}
.ha-stat {
padding: 2px 0;
color: var(--text-secondary);
}
/* Notification Matrix */
.notify-channels {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
gap: 12px;
margin-bottom: 20px;
}
.notify-table {
width: 100%;
border-collapse: collapse;
font-size: 14px;
}
.notify-table th,
.notify-table td {
padding: 10px 12px;
text-align: center;
border-bottom: 1px solid var(--border);
}
.notify-table th {
font-size: 12px;
color: var(--text-secondary);
text-transform: uppercase;
letter-spacing: 0.5px;
}
.notify-table td:first-child,
.notify-table th:first-child {
text-align: left;
}
.notify-table input[type="checkbox"] {
width: 18px;
height: 18px;
cursor: pointer;
accent-color: var(--accent);
}
/* Small button */
.btn-sm {
padding: 6px 14px;
font-size: 12px;
border: 1px solid var(--border);
border-radius: 6px;
background: var(--bg-primary);
color: var(--text-primary);
cursor: pointer;
transition: background 0.2s;
}
.btn-sm:hover {
background: var(--accent);
color: white;
}
/* Footer */
.app-footer {
text-align: center;
@@ -660,4 +729,7 @@ main {
.stats-bar { flex-direction: column; gap: 8px; }
header { padding: 12px 16px; }
.header-right { gap: 4px; }
.tabs { flex-wrap: wrap; }
.tab { flex: 0 1 auto; padding: 8px 12px; font-size: 12px; }
.notify-channels { grid-template-columns: 1fr; }
}