2026-08-02 09:31 auch bei CTRL-C die 230V abschalten
This commit is contained in:
parent
31a212666b
commit
8cd2b1f737
1 changed files with 17 additions and 1 deletions
18
main.go
18
main.go
|
|
@ -7,6 +7,8 @@ import (
|
|||
"os"
|
||||
"strings"
|
||||
"sync"
|
||||
"os/signal"
|
||||
"syscall"
|
||||
|
||||
"spannung/web" // Importiert Ihr eigenes web-Paket
|
||||
|
||||
|
|
@ -114,11 +116,25 @@ func main() {
|
|||
}
|
||||
|
||||
// 8. SICHERHEITS-START: Alle USB-Relais initial zwingend ausschalten
|
||||
// Wenn updateUsbRelaysStrict() fehlschlägt, bricht das Programm ab.
|
||||
if err := updateUsbRelaysStrict(); err != nil {
|
||||
log.Fatalf("[❌] KRITISCHER FEHLER: USB-Relais-Reset beim Start fehlgeschlagen! Programm gestoppt: %v", err)
|
||||
}
|
||||
|
||||
// NEU: Signal-Handling für sauberes Herunterfahren einrichten
|
||||
sigChan := make(chan os.Signal, 1)
|
||||
signal.Notify(sigChan, os.Interrupt, syscall.SIGTERM)
|
||||
|
||||
go func() {
|
||||
<-sigChan
|
||||
fmt.Println("\n[⚠️] Programm-Abbruch erkannt! Schalte Relais 1 (Hauptschalter) sicher aus...")
|
||||
mutex.Lock()
|
||||
if pin, exists := relaisMap[1]; exists {
|
||||
_ = pin.Out(gpio.Low)
|
||||
}
|
||||
mutex.Unlock()
|
||||
os.Exit(0)
|
||||
}()
|
||||
|
||||
// 9. Instanziierung des Webservers mit Übergabe der Callback-Funktionen
|
||||
server := web.NewServer(config.WebPort, readVoltageCallback, toggleRelaisCallback, getRelaisStateCallback, callbackGetVersion, getVoltNamesCallback)
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue