Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

USB Port per Script aktivieren / deaktivieren

Featured Replies

  • Community Expert

Nicht ganz Unraid-spezifisch, eher Linux, aber vielleicht kann mir ja jemand helfen.

In meinem Netzwerkschrank habe ich einen AC Infinity Möbellüfter installiert. Dieser wird über USB betrieben. Ich möchte ihn nun ansteuern, sobald bspw. Parity-Check läuft oder eine HDD über 45°C erreicht.

Ist sowas möglich? Per Google habe ich nur grobe Infos gefunden, dass man nur den ganzen USB-Controller an&abschalten kann. 

Solved by alturismo

ChatGPT schlägt in der ersten Version das hier vor.
Ist jetzt ungeprüft und ich weiß nicht, ob man den Status des Parity-Checks nicht auch einfacher auslesen kann. 

Dürfte mit der Erkennung des USB-Lüfters als USB-Device stehen oder fallen.

 

Könnte man zur Not auch so umstellen, dass es nicht als Hintergrund Script laufen soll sondern nur einmal per Cron von dir aufgerufen wird, checkt und ggf. was tut. 
 

#!/bin/bash

# Konfigurierbare Variablen
USB_DEVICE="usbX"  # Passe dies an den tatsächlichen USB-Port an
TEMP_THRESHOLD=45  # Maximale Temperatur in °C, bevor der USB-Anschluss aktiviert wird
CHECK_INTERVAL=60  # Zeit in Sekunden zwischen den Überprüfungen

# Funktion zum Überprüfen des Parity-Checks
is_parity_check_running() {
    /usr/local/sbin/mdcmd status | grep -q "mdResync"
    return $?
}

# Funktion zum Überprüfen der Festplattentemperaturen
is_temperature_high() {
    for disk in /dev/sd?; do
        TEMP=$(smartctl -A "$disk" | awk '/Temperature_Celsius/{print $10}')
        if [[ -n "$TEMP" && "$TEMP" -gt $TEMP_THRESHOLD ]]; then
            return 0  # Eine Festplatte ist über dem Schwellenwert
        fi
    done
    return 1  # Keine Festplatte hat die Schwelle überschritten
}

# Funktion zum Aktivieren des USB-Anschlusses
enable_usb() {
    echo "USB-Anschluss $USB_DEVICE wird aktiviert."
    echo "1" > /sys/bus/usb/devices/$USB_DEVICE/authorized
}

# Funktion zum Deaktivieren des USB-Anschlusses
disable_usb() {
    echo "USB-Anschluss $USB_DEVICE wird deaktiviert."
    echo "0" > /sys/bus/usb/devices/$USB_DEVICE/authorized
}

# Haupt-Loop
while true; do
    if is_parity_check_running || is_temperature_high; then
        enable_usb
    else
        disable_usb
    fi
    sleep $CHECK_INTERVAL
done

 

  • Author
  • Community Expert

Ach, dieses KI-Zeug gibt es ja auch noch :) Hätte ich auch von selbst drauf kommen können - danke!

Leider ist es aber doch nicht so einfach, denn der Lüfter wird nicht als Device erkannt, also bleibt wohl nur abschalten des USB-Controllers.

  • Solution
10 minutes ago, k3vbert said:

Leider ist es aber doch nicht so einfach, denn der Lüfter wird nicht als Device erkannt, also bleibt wohl nur abschalten des USB-Controllers.

irgendein USB switch, zigbee, ... wenn HA vorhanden ist, einfach darüber schalten ... oder andere "Smart Software"

  • Author
  • Community Expert

Auch eine Idee, HA ist vorhanden. Quasi einfach eine Automation mittels Zigbee Steckdose, dass eingeschaltet wird, wenn Temp X erreicht ist. Auch darauf hätte ich selber kommen können... Danke euch!

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.