Metainformationen zur Seite
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
| home_assistant:home_assistant_rezepte:apcusv_einbinden [06.11.2026] – [6. Späterer Umstieg auf serielles Modbus (RS-232)] kolja | home_assistant:home_assistant_rezepte:apcusv_einbinden [07.11.2026] (aktuell) – kolja | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| ====== Raspberry Pi als APC-USV-Server für Home Assistant ====== | ====== Raspberry Pi als APC-USV-Server für Home Assistant ====== | ||
| - | **Aufbau:** APC Smart-UPS SMT1500I | + | **Aufbau:** APC Smart-UPS SMT1500I |
| Später ist serielles RS-232-Modbus vorgesehen (Stabilere Verbindung) | Später ist serielles RS-232-Modbus vorgesehen (Stabilere Verbindung) | ||
| Zeile 8: | Zeile 8: | ||
| - Raspberry Pi OS Lite installieren, | - Raspberry Pi OS Lite installieren, | ||
| - | - USV zunächst per USB mit dem Pi verbinden. Im USV-Menü **Advanced / Configuration / Modbus** aktivieren. | + | - USV zunächst per USB mit dem Pi verbinden. Im USV-Menü **Advanced / Configuration / Modbus** |
| - Software installieren: | - Software installieren: | ||
| Zeile 14: | Zeile 14: | ||
| sudo apt update | sudo apt update | ||
| sudo apt install -y apcupsd cron | sudo apt install -y apcupsd cron | ||
| + | |||
| + | |||
| </ | </ | ||
| Zeile 20: | Zeile 22: | ||
| <code bash> | <code bash> | ||
| sudo nano / | sudo nano / | ||
| + | |||
| + | |||
| </ | </ | ||
| Zeile 37: | Zeile 41: | ||
| TIMEOUT 0 | TIMEOUT 0 | ||
| KILLDELAY 0 | KILLDELAY 0 | ||
| + | |||
| </ | </ | ||
| - | **Begründung: | + | **Begründung: |
| - | Bei älteren Installationen ggf. '' | + | Bei älteren Installationen ggf. '' |
| + | < | ||
| + | Dort müssen BATTERYLEVEL und MINUTES erhöht werden. | ||
| + | Diese beiden sind eine ODER Entscheidung. Je nachdem, welche Kondition zuerst eintritt, also wie hier 10% Batterielevel oder 5 Minuten Restlaufzeit. | ||
| <code bash> | <code bash> | ||
| Zeile 47: | Zeile 55: | ||
| sudo systemctl restart apcupsd | sudo systemctl restart apcupsd | ||
| apcaccess status | grep -E ' | apcaccess status | grep -E ' | ||
| + | |||
| + | |||
| </ | </ | ||
| - | '' | + | '' |
| ===== 3. In Home Assistant einbinden ===== | ===== 3. In Home Assistant einbinden ===== | ||
| - | **Einstellungen | + | **Einstellungen |
| - | Die HA-Integration fragt standardmäßig **alle 60 Sekunden** ab. Die 30 Sekunden '' | + | Die HA-Integration fragt standardmäßig **alle 60 Sekunden** |
| ===== 4. Dienst bei Prozessabsturz neu starten ===== | ===== 4. Dienst bei Prozessabsturz neu starten ===== | ||
| Zeile 61: | Zeile 71: | ||
| <code bash> | <code bash> | ||
| sudo systemctl edit apcupsd | sudo systemctl edit apcupsd | ||
| - | </ | ||
| + | |||
| + | </ | ||
| < | < | ||
| + | |||
| [Service] | [Service] | ||
| Restart=on-failure | Restart=on-failure | ||
| RestartSec=10s | RestartSec=10s | ||
| + | |||
| </ | </ | ||
| Zeile 72: | Zeile 85: | ||
| sudo systemctl daemon-reload | sudo systemctl daemon-reload | ||
| sudo systemctl restart apcupsd | sudo systemctl restart apcupsd | ||
| + | |||
| + | |||
| </ | </ | ||
| - | **Grenze:** Ein eingefrorener USB-Modbus-Datenstrom stoppt den Prozess nicht zwingend. Deshalb ist zusätzlich ein Watchdog nötig. | + | **Grenze: |
| ===== 5. USB-Modbus-Freeze automatisch beheben ===== | ===== 5. USB-Modbus-Freeze automatisch beheben ===== | ||
| - | **Beobachteter Fehler:** '' | + | **Beobachteter Fehler: |
| - | Der Watchdog läuft **jede Minute**, meldet ein '' | + | Der Watchdog läuft **jede Minute**, meldet ein '' |
| Skript erstellen: | Skript erstellen: | ||
| Zeile 86: | Zeile 101: | ||
| <code bash> | <code bash> | ||
| sudo nano / | sudo nano / | ||
| + | |||
| + | |||
| </ | </ | ||
| - | Den folgenden Inhalt **ab der ersten Zeile** einfügen. Der komplette Skriptinhalt steht in einem einzigen DokuWiki-Codeblock: | + | Den folgenden Inhalt **ab der ersten Zeile** |
| <code bash> | <code bash> | ||
| Zeile 179: | Zeile 196: | ||
| exit 1 | exit 1 | ||
| fi | fi | ||
| + | |||
| + | |||
| </ | </ | ||
| - | **Wichtig: | + | **Wichtig: |
| <code bash> | <code bash> | ||
| Zeile 188: | Zeile 207: | ||
| sudo / | sudo / | ||
| sudo crontab -e | sudo crontab -e | ||
| - | </ | ||
| - | Dort **nur diesen einen** Watchdog eintragen: | ||
| + | </ | ||
| + | |||
| + | Dort **nur diesen einen** | ||
| < | < | ||
| + | |||
| * * * * * / | * * * * * / | ||
| + | |||
| </ | </ | ||
| Zeile 202: | Zeile 224: | ||
| systemctl is-active cron | systemctl is-active cron | ||
| sudo journalctl -t apcupsd-watchdog --since "24 hours ago" --no-pager | sudo journalctl -t apcupsd-watchdog --since "24 hours ago" --no-pager | ||
| + | |||
| + | |||
| </ | </ | ||
| - | **Praxisnachweis: | + | **Praxisnachweis: |
| - | ===== 6. Späterer Umstieg auf serielles Modbus (RS-232) ===== | + | . |
| - | Bei der SMT1500I sind USB-Modbus-Freezes dokumentiert. **RS-232-Modbus** vermeidet den betroffenen USB-Modbus-Kommunikationsweg und ist voraussichtlich stabiler, ohne eine absolute Garantie zu bieten. | + | ---- |
| - | Benötigt werden das passende **APC-Kabel AP940-0625A** (USV-Buchse mit RJ45/ | + | ===== Umstieg auf serielles Modbus (RS-232) ===== |
| + | |||
| + | Bei der SMT1500I sind USB-Modbus-Freezes dokumentiert. **RS-232-Modbus** | ||
| + | |||
| + | Benötigt werden das passende **APC-Kabel AP940-0625A** | ||
| + | |||
| + | Pinout: [[https:// | ||
| - | Pinout: [[https:// | ||
| - | ]] | ||
| Nach dem Umstecken serielle Schnittstelle ermitteln: | Nach dem Umstecken serielle Schnittstelle ermitteln: | ||
| <code bash> | <code bash> | ||
| ls -l / | ls -l / | ||
| + | |||
| + | |||
| </ | </ | ||
| - | In ''/ | + | Beispiel: |
| + | <code bash> | ||
| + | DEVICE / | ||
| + | |||
| + | |||
| + | </ | ||
| + | |||
| + | In ''/ | ||
| < | < | ||
| + | |||
| UPSCABLE smart | UPSCABLE smart | ||
| UPSTYPE modbus | UPSTYPE modbus | ||
| DEVICE / | DEVICE / | ||
| + | |||
| </ | </ | ||
| Zeile 231: | Zeile 270: | ||
| sudo systemctl restart apcupsd | sudo systemctl restart apcupsd | ||
| apcaccess status | grep -E ' | apcaccess status | grep -E ' | ||
| + | |||
| + | |||
| </ | </ | ||
| - | **Port 3551, Home-Assistant-Integration und Watchdog bleiben gleich.** Die serielle Variante muss nach dem Umbau noch praktisch getestet werden. | + | **Port 3551, Home-Assistant-Integration und Watchdog bleiben gleich.** |
| - | ===== 7. Fehlersuche ===== | + | |
| + | ---- | ||
| + | |||
| + | |||
| + | ===== 6. Fehlersuche ===== | ||
| <code bash> | <code bash> | ||
| Zeile 242: | Zeile 287: | ||
| sudo journalctl -u apcupsd -n 40 --no-pager | sudo journalctl -u apcupsd -n 40 --no-pager | ||
| sudo journalctl -t apcupsd-watchdog -n 30 --no-pager | sudo journalctl -t apcupsd-watchdog -n 30 --no-pager | ||
| + | sudo journalctl -u apcupsd --since " | ||
| + | |||
| + | |||
| </ | </ | ||
| - | * '' | + | * '' |
| - | * '' | + | * '' |
| * Im Test waren Pi-Unterspannung ('' | * Im Test waren Pi-Unterspannung ('' | ||
| + | ===== 7. Zusätzliche Netzwerk-Clients anbinden (Master/ | ||
| + | |||
| + | Wenn an der APC Smart-UPS 1500 mehrere Server oder Systeme (z. B. ein Proxmox-Server, | ||
| + | |||
| + | Die Installation von '' | ||
| + | |||
| + | ==== Schritt 1: Konfiguration auf dem Client-System anpassen ==== | ||
| + | |||
| + | Datei auf dem zusätzlichen Server öffnen: | ||
| + | < | ||
| + | |||
| + | sudo nano / | ||
| + | |||
| + | </ | ||
| + | |||
| + | Folgende Werte setzen und darauf achten, dass keine doppelten, aktiven Einträge in der Datei stehen bleiben (alte USB-Einträge mit ''#'' | ||
| + | |||
| + | <code ini> | ||
| + | # Verbindungstyp auf Netzwerk (Ethernet) umstellen | ||
| + | UPSCABLE ether | ||
| + | UPSTYPE net | ||
| + | |||
| + | # IP-Adresse und Port des Raspberry Pi (Masters) eintragen | ||
| + | DEVICE 192.168.10.248: | ||
| + | |||
| + | # Abfrage-Intervall zum Master (in Sekunden) | ||
| + | POLLTIME 30 | ||
| + | |||
| + | # Erhöhte Sicherheits-Grenzwerte für den Client | ||
| + | BATTERYLEVEL 20 | ||
| + | MINUTES 10 | ||
| + | |||
| + | </ | ||
| + | |||
| + | Dienst auf dem Client neu starten: | ||
| + | |||
| + | < | ||
| + | sudo systemctl restart apcupsd | ||
| + | |||
| + | </ | ||
| + | |||
| + | ==== Erklärung der Sicherheits-Grenzwerte (Wichtig!) ==== | ||
| + | |||
| + | Die Werte '' | ||
| + | |||
| + | * **BATTERYLEVEL 20:** Der Client fährt bereits bei **20 % Restkapazität** | ||
| + | |||
| + | **Der Kaskaden-Ablauf im Ernstfall: | ||
| + | |||
| + | ^Parameter^Einstellung^Einfache Erklärung| | ||
| + | |||
| + | |**UPSCABLE** |'' | ||
| + | |**UPSTYPE** |'' | ||
| + | |||
| + | ---- | ||
| + | |||
| + | Dokumentation bei Kolja [[: | ||
| + | |||
| + | ---- | ||
| ===== Quellen und weiterführende Links ===== | ===== Quellen und weiterführende Links ===== | ||
| Zeile 259: | Zeile 366: | ||
| * [[https:// | * [[https:// | ||
| * [[https:// | * [[https:// | ||
| - | |||
| ===== Bilder ===== | ===== Bilder ===== | ||
| - | {{ : | + | {{ : |
| - | {{: | + | {{: |
| - | {{: | + | {{: |