Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. ioBroker Allgemein
    4. [HowTo] USV: NUT Server auf SBC installieren

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    [HowTo] USV: NUT Server auf SBC installieren

    This topic has been deleted. Only users with topic management privileges can see it.
    • Homoran
      Homoran Global Moderator Administrators @qqolli last edited by

      @qqolli sagte in [HowTo] USV: NUT Server auf SBC installieren:

      die per USB-Kabel am NUT dran ist

      hast du den USB-Port gewechselt?

      qqolli 1 Reply Last reply Reply Quote 0
      • qqolli
        qqolli @Homoran last edited by

        @Homoran

        Nein, wirklich nichts geändert; außer wie oben beschrieben. USB-Port ist unverändert.

        qqolli 1 Reply Last reply Reply Quote 0
        • David G.
          David G. @qqolli last edited by

          @qqolli

          Hast du mal versucht einzustellen, dass der Dienst verzögert startet?

          Habe gelesen, dass teilweise wenn der Dienst zu früh startet die USB Devices oder das Netzwerk noch nicht geladen sind.

          Zu dem verzögerten Start steht auch was in der Anleitung.

          Thomas Braun 1 Reply Last reply Reply Quote 0
          • qqolli
            qqolli @qqolli last edited by

            @Homoran @klassisch @David-G

            Problem gelöst 🙂

            sudo upsdrvctl start
            

            Dann geht es wieder. Der wird nicht automatisch nach einem Reboot gestartet.

            1 Reply Last reply Reply Quote 0
            • Thomas Braun
              Thomas Braun Most Active @David G. last edited by

              @David-G @qqolli
              Deswegen ja auch die Zeile

              ExecStartPre=/bin/sleep 30
              

              beim Start über systemd. In den 30 Sekunden hat das System dann die Zeit die Interfaces hochzufahren. Könnte man auch anders machen, funktioniert aber.

              1 Reply Last reply Reply Quote 1
              • Homoran
                Homoran Global Moderator Administrators last edited by Homoran

                Hallo @klassisch und @all

                Habe jetzt endlich meine zweite APC700 in finalen Betrieb genommen und den vorbereiteten Cubie als NUT-Server angeklemmt.

                Leider bekomme ich beim Versuch diesen von ioBroker aus zu erreichen folgende Fehlermeldung:

                nut.1	2020-12-04 19:10:09.370	error	(11393) Error happend: Error: getaddrinfo ENOTFOUND http://192.168.138.73 http://192.168.138.73:3493
                

                nut.1 ist korrekt, ich habe für die zweite USV eine zweite Instanz angelegt.
                Die IP und den Port habe ich jetzt x-mal geprüft.

                User und Passwort sind die nach der Anleitung als ups-remote angelegt wurden (mit slave!?!?)

                Lokal über putty bekomme ich mit sudo upsc ups@localhost eine brauchbare Ausgabe.

                Ich bin jetzt mit meinem Latein am Ende 😕 und für jede Hilfe dankbar

                EDIT:

                habe noch einiges versucht, Schlussendlich war das Entfernen von http:// die Lösung.
                Ich weiß gar nicht wo die herkam.

                K 1 Reply Last reply Reply Quote 0
                • Homoran
                  Homoran Global Moderator Administrators last edited by Homoran

                  Hallo @klassisch,

                  Ich könnte doch nochmal deine Hilfe gebrauchen. Vielleicht kann auch @Thomas-Braun die Frage beantworten.

                  Ich musste noch mehrmals den Cubietruck mit den nut Server herunterfahren und stelle soeben fest, dass seit dem ersten herunterfahren keine Daten mehr kamen.
                  Neustart der Instanz ergab ebenfalls ein connection refused, und ohne hier nochmal die letzten posts gelesen zu haben konnte ich such mit sudo upsdrvctl start das System wieder zum laufen bringen.

                  Im Eröffnungspost hast du die geänderte Autostart Anleitung beschrieben, danach noch die Alte, mit Hinweis, dass diese nicht zusätzlich existieren soll.
                  Aber genau das ist bei mir ja der Fall, da ich das System nach der alten Anleitung aufgebaut hatte.

                  Was mache ich damit, wenn ich auf die neu Version umsteigen will?

                  Thomas Braun 1 Reply Last reply Reply Quote 0
                  • Thomas Braun
                    Thomas Braun Most Active @Homoran last edited by Thomas Braun

                    @Homoran
                    upsdrvctl start
                    ist das Verfahren über rc-Level? Und du willst das jetzt auf systemd umstellen?
                    (So tief hab ich mich damals ehrlich gesagt da gar nicht reingefräst...)

                    Homoran 1 Reply Last reply Reply Quote 0
                    • Homoran
                      Homoran Global Moderator Administrators @Thomas Braun last edited by

                      @Thomas-Braun sagte in [HowTo] USV: NUT Server auf SBC installieren:

                      Und du willst das jetzt auf systemd umstellen?

                      Ja, weil das System nach Shutdown nicht von alleine hochfährt

                      Thomas Braun 1 Reply Last reply Reply Quote 0
                      • Thomas Braun
                        Thomas Braun Most Active @Homoran last edited by Thomas Braun

                        @Homoran
                        Da sollte es dann irgendwo in /etc/rc.local einen Eintrag für upsdrvctl oder so ähnlich geben. Nimm die da mal weg. Dann wird die nicht beim Start ausgeführt. Und dann nach der Anleitung die targets nach systemd anlegen. Das hatten wir ja dann so ausgeknobelt.

                        Oder es gibt was in /etc/init.d
                        Keine Ahnung wie das angelegt wurde für den Dienst.

                        Homoran 1 Reply Last reply Reply Quote 0
                        • Homoran
                          Homoran Global Moderator Administrators @Thomas Braun last edited by

                          @Thomas-Braun sagte in [HowTo] USV: NUT Server auf SBC installieren:

                          es dann irgendwo in /etc/rc.local einen Eintrag für upsdrvctl oder so ähnlich geben

                          Das sieht bei mir im Moment (ohne Kommentarzeilen) so aus:

                          # By default this script does nothing.
                          
                          #additions  for nut server
                          upsdrvctl start
                          upsd
                          #end additions for nut server
                          
                          exit 0
                          

                          Diese hätte ich auskommentiert.

                          @Thomas-Braun sagte in [HowTo] USV: NUT Server auf SBC installieren:

                          Oder es gibt was in /etc/init.d

                          da gibt es ne ganze Menge 😉 u.a. eine Datei nut-server

                          #! /bin/sh
                          ### BEGIN INIT INFO
                          # Provides:          nut-server upsd
                          # Required-Start:    $local_fs $syslog $network $remote_fs udev
                          # Required-Stop:     $local_fs $syslog $network $remote_fs udev
                          # Default-Start:     2 3 4 5
                          # Default-Stop:      0 1 6
                          # Short-Description: Network UPS Tools initscript
                          # Description:       This script take care of starting and stopping the
                          #                    Network UPS Tools components. When needed, it also
                          #                    handle the UPS hardware shutdown.
                          ### END INIT INFO
                          
                          # Author: Arnaud Quette <aquette@debian.org>
                          
                          PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/sbin:/usr/local/bin
                          
                          NAME=nut-server
                          DESC="NUT - power devices information server and drivers"
                          CONFIG=/etc/nut/nut.conf
                          pid_dir=/var/run/nut
                          upsd_pid=${pid_dir}/upsd.pid
                          upsd=/sbin/upsd
                          upsdrvctl=/sbin/upsdrvctl
                          log=">/dev/null 2>/dev/null"
                          
                          # Define LSB log_* functions.
                          # Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
                          . /lib/lsb/init-functions
                          
                          # set upsd specific options. use "man upsd" for more info
                          # this parameter is now located in nut.conf, and not in /etc/default/nut anymore
                          # FIXME: retrieved from 'nut' script during update
                          UPSD_OPTIONS=""
                          
                          # Exit if the package is not installed
                          [ -x "$upsd" ] || exit 0
                          
                          # Include NUT nut.conf
                          [ -r $CONFIG ] && . $CONFIG
                          
                          # Explicitly require the configuration to be done in /etc/nut/nut.conf
                          # redundant with nut-client
                          if [ "x$MODE" = "xnone" -o -z "$MODE" ] ; then
                             log_action_msg "$NAME disabled, please adjust the configuration to your needs"
                             log_action_msg "Then set MODE to a suitable value in $CONFIG to enable it"
                             # exit success to avoid breaking the install process!
                             exit 0
                          fi
                          
                          # Check if /var/run/nut exists and has the correct perms
                          check_var_directory() {
                           [ ! -d ${pid_dir} ] && mkdir -p ${pid_dir} \
                             && chown root:nut ${pid_dir} \
                             && chmod 770 ${pid_dir} \
                             && [ -x /sbin/restorecon ] && /sbin/restorecon ${pid_dir}
                          }
                          
                          # check if the right components are running
                          check_status() {
                           case "$MODE" in
                             standalone|netserver)
                               status_of_proc -p $upsd_pid $upsd upsd
                               # FIXME: need driver(s) status too!
                               ;;
                             none|netclient|*)
                               # defered to nut-client
                               #status_of_proc -p $upsmon_pid $upsmon upsmon
                               ;;
                           esac
                          }
                          
                          start_stop_server () {
                           case "$MODE" in
                             standalone|netserver)
                               case "$1" in
                                 start)
                                   # First, start driver(s)
                                   ! $upsdrvctl start >/dev/null 2>&1  &&  \
                                     log_progress_msg " (driver(s) failed)." || log_progress_msg " driver(s)."
                                   # Then, data server (upsd)
                                   start-stop-daemon -S -p $upsd_pid -x $upsd \
                                     -- $UPSD_OPTIONS >/dev/null 2>&1 &&
                                     log_progress_msg "upsd" || log_progress_msg "(upsd failed)"
                                   ;;
                                 stop)
                                   # FIXME: should stop nut-client first!
                                   # Reverse order for stop
                                   start-stop-daemon -K -o -p $upsd_pid -n upsd && #>/dev/null 2>&1 &&
                                     log_progress_msg "upsd" || log_progress_msg "(upsd failed)"
                                   ! /sbin/upsdrvctl stop >/dev/null 2>&1  &&  \
                                     log_progress_msg "(driver(s) failed)" || log_progress_msg "driver(s)"
                                   ;;
                               esac
                               ;;
                             none|netclient|*)
                               # now handled by nut-client
                               return 1
                               ;;
                           esac
                          }
                          
                          case "$1" in
                          
                           start)
                             log_daemon_msg "Starting $DESC"
                             check_var_directory
                             start_stop_server start #&& log_progress_msg "upsd"
                             #start_stop_client start && log_progress_msg "upsmon"
                             log_end_msg 0
                             ;;
                          
                           stop)
                             log_daemon_msg "Stopping $DESC"
                             start_stop_server stop #&& log_progress_msg "upsd"
                             #start_stop_client stop && log_progress_msg "upsmon"
                             log_end_msg 0
                             ;;
                          
                           reload)
                             $upsd   -c reload >/dev/null 2>&1
                             #$upsmon -c reload >/dev/null 2>&1
                             ;;
                          
                           restart|force-reload)
                             log_daemon_msg "Restarting $DESC"
                             #start_stop_client stop
                             start_stop_server stop
                             sleep 5
                             check_var_directory
                             start_stop_server start #&& log_progress_msg "upsd"
                             #start_stop_client start && log_progress_msg "upsmon"
                             log_end_msg 0
                             ;;
                          
                           status)
                             #log_daemon_msg "Checking status of $DESC"
                             echo "Checking status of $DESC"
                             check_status
                             exit $?
                             ;;
                          
                           poweroff)
                             wait_delay=`sed -ne 's#^ *POWEROFF_WAIT= *\(.*\)$#\1#p' /etc/nut/nut.conf`
                             # UPS poweroff action is actually done here.
                             # But nut-monitor (Ie nut-client) does the check and call nut-server if needed!
                             # This action MUST NOT be called directly, and thus is not exposed in 'Usage'
                             case "$MODE" in
                               standalone|netserver)
                                 log_daemon_msg "Shutting down the UPS ..."
                                 if $upsdrvctl shutdown ; then
                                   # FIXME (needed?): sleep 5
                                   log_progress_msg "Waiting for UPS to cut the power"
                                   log_end_msg 0
                                 else
                                   log_progress_msg "Shutdown failed."
                                   log_progress_msg "Waiting for UPS batteries to run down"
                                   log_end_msg 0
                                 fi
                                 if [ -n "$wait_delay" ] ; then
                                   log_daemon_msg " (will reboot after $wait_delay) ..."
                                   sleep "$wait_delay"
                                   invoke-rc.d reboot stop
                                 fi
                                 ;;
                               none|netclient|*)
                                 # nothing to do
                                 ;;
                             esac
                             ;;
                          
                           *)
                             N=/etc/init.d/$NAME
                             echo "Usage: $N {start|stop|reload|restart|force-reload|status}" >&2
                             exit 1
                             ;;
                          esac
                          
                          exit 0
                          
                          

                          1 Reply Last reply Reply Quote 0
                          • K
                            klassisch Most Active @Homoran last edited by

                            @Homoran sagte in [HowTo] USV: NUT Server auf SBC installieren:

                            Hallo @klassisch und @all

                            Ich bin jetzt mit meinem Latein am Ende 😕 und für jede Hilfe dankbar

                            Sorry, war leider anderweitig beschäftigt. Habe aber leider auch nicht die tiefen Kenntnisse beim Linux-systemd & Co. Aber der @Thomas-Braun hat sich ja dankenswerterweise mittlerweile schon gemeldet und ist auch immer hilfreich und kenntnisreich mit dabei.

                            Pedder007 1 Reply Last reply Reply Quote 1
                            • Pedder007
                              Pedder007 @klassisch last edited by

                              @klassisch, klasse Adapter, danke erst einmal dafür 🙂
                              Die Anleitung funktioniert auch, auch mit der Installation des NUT-Servers auf dem gleichen Raspi wie der ioBroker (aktuell bei mir auf dem Testsystem). USV: EATON Ellipse ECO 650 USB.

                              Allerdings wundere ich mich, dass da so viele Parameter/Datenpunkte angezeigt werden, deren Status sich aber nicht wirklich ändert!?
                              So z. B. unter 'status' der DP 'charging'. Es bleibt immer auf false, egal ob die USV im Netz- oder Akkubetrieb läuft.

                              Auch scheinen die Button-Objekte (unter 'commands') nichts zu bewirken, z. B. beeper-disable/-enable.
                              Habs auch bereits indirekt über ein Blockly probiert, es tut sich aber nichts.

                              Übersehe ich da etwas, oder muss ich z. B. die Buttons speziell 'ansteuern'?

                              K 1 Reply Last reply Reply Quote 0
                              • K
                                klassisch Most Active @Pedder007 last edited by klassisch

                                @pedder007 sagte in [HowTo] USV: NUT Server auf SBC installieren:

                                @klassisch, klasse Adapter, danke erst einmal dafür 🙂

                                Der Dank gebührt @apollon77 , der den Adapter geschrieben hat und der ihn maintained, Github Repository. Ich kann so etwas nicht.

                                Die Anleitung funktioniert auch, auch mit der Installation des NUT-Servers auf dem gleichen Raspi wie der ioBroker (aktuell bei mir auf dem Testsystem). USV: EATON Ellipse ECO 650 USB.

                                freut mich, daß es bei Dir funktioniert hat und danke für die Rückmeldung

                                Allerdings wundere ich mich, dass da so viele Parameter/Datenpunkte angezeigt werden, deren Status sich aber nicht wirklich ändert!?
                                So z. B. unter 'status' der DP 'charging'. Es bleibt immer auf false, egal ob die USV im Netz- oder Akkubetrieb läuft.

                                Auch scheinen die Button-Objekte (unter 'commands') nichts zu bewirken, z. B. beeper-disable/-enable.
                                Habs auch bereits indirekt über ein Blockly probiert, es tut sich aber nichts.

                                Übersehe ich da etwas, oder muss ich z. B. die Buttons speziell 'ansteuern'?

                                Was bedatet wird, entscheidet die USV bzw. deren Entwickler. Der Treiber ist generisch und beinhaltet eine Übermenge, alos viele Dinge, die von manchen USVs bedient werden oder eben auch nicht. Manchmal werden die Datenpunkte auch falsch bedatet wie z.B. die Spannung bei meiner Cyberport.
                                Gerade die USVs am unteren Ende des Preisbereichs sind etwas zurückhaltend.
                                Deutlich besser sind hier USVs mit eingebauten bzw. zurüstbaren Ethernetkarten. Aber da kosten die Ethernetkarten schon so viel wie Deine ganze USV oder gar ein Mehrfaches davon.
                                In der Regel findet man aber irgendwelche Datenpunkte, mit denen man was anfangen kann.

                                Pedder007 1 Reply Last reply Reply Quote 1
                                • Pedder007
                                  Pedder007 @klassisch last edited by

                                  @klassisch Oha, danke für den Hinweis!
                                  @apollon77 ich entschuldige mich in aller Form!
                                  … und danke DIR für den Adapter👍

                                  @klassisch, ok verstanden. Ich denke mit einem Status bzgl. Netz/kein Netz (also Strom) und Ladestatus in Prozent, werde ich klarkommen. Es geht ja nur darum kurze ‚Wischer‘, die wir hier schonmal haben, abzufangen und wenn es länger dauert irgendwann die Raspis und die Synology geordnet herunter zu fahren.
                                  Ich werde noch ein wenig auf der Testinstanz rumprobieren und dann gehts auf die Prod.
                                  PS. Geräusche macht die Eaton übrigens keine und auch das Piepen bei Stromausfall wird Übernachtungsgäste nicht zu Tode erschrecken 😉

                                  1 Reply Last reply Reply Quote 1
                                  • K
                                    Knusterus last edited by

                                    Hallo zusammen,
                                    Ich nutze einen Intel NUC mit Proxmox und VM mit iobroker und Debmatic.
                                    Jetzt habe ich auf der Proxmox IP noch einen NUT Server nach dieser Anleitung
                                    installiert. Dann noch den NUT Adapter in Iobroker installiert .
                                    Als IP Adresse habe ich die des Proxmox Host eingegeben und als Benutzername
                                    #upsmon_remote und das dazugehörige Passwort. Daten bekomme ich über den Adapter. Das funktioniert alles . Aber wenn ich zum Bsp. den Peeper abschalten möchte dann kommt ein Fehler

                                    
                                    nut.0
                                    2022-05-26 13:55:51.782	error	Error happend: Error [ERR_STREAM_WRITE_AFTER_END]: write after end
                                    
                                    nut.0
                                    2022-05-26 13:55:51.781	error	Err while getting NUT values: Other communication still running
                                    
                                    nut.0
                                    2022-05-26 13:55:51.779	error	Err while getting NUT values: Other communication still running
                                    
                                    nut.0
                                    2022-05-26 13:55:51.778	error	Err while sending command beeper.disable: ACCESS-DENIED
                                    

                                    Meine USV ist eine VP700ELCD von Cyberpower und hängt über USB direkt am NUC. Kann man da vielleicht keine Befehle senden?
                                    Danke schon mal für Eure Hilfe
                                    Volker

                                    Homoran K 2 Replies Last reply Reply Quote 0
                                    • Homoran
                                      Homoran Global Moderator Administrators @Knusterus last edited by

                                      @knusterus sagte in [HowTo] USV: NUT Server auf SBC installieren:

                                      Aber wenn ich zum Bsp. den Peeper abschalten möchte dann kommt ein Fehler

                                      wird das denn von deiner USV per NUT unterstützt?
                                      ich glaube bei meiner APC geht das auch nur über das WIN Programm. NUT kann nur lesen.

                                      1 Reply Last reply Reply Quote 0
                                      • K
                                        klassisch Most Active @Knusterus last edited by

                                        @knusterus sagte in [HowTo] USV: NUT Server auf SBC installieren:
                                        Daten bekomme ich über den Adapter. Das funktioniert alles .

                                        Dann steht die Verbindung und der Adapter läuft. Glückwunsch! Was machbar ist, ist damit erreicht.

                                        Meine USV ist eine VP700ELCD von Cyberpower und hängt über USB direkt am NUC. Kann man da vielleicht keine Befehle senden?

                                        Das wird nicht das Problem sein. Das NUC-Protokoll umfaßt die möglichen Daten und Befehle. Ob, was und wie in der jeweiligen USV implementiert ist, ist eine ganz andere Sache. hängt vom Modell und dem Willen des Herstellers ab, wie @Homoran schon gesagt hat.
                                        Ich habe eine 1500er Cyberpower. Einige Befehle gehen, andere nicht. Das Ausschalten habe ich mal versehentlich getestet und es hat funktioniert. Seither bin ich da sehr zurückhaltend und beschränke mich auf das Lesen der Daten. Und auch da sind nicht alle Daten korrekt oder sinnvoll.

                                        1 Reply Last reply Reply Quote 0
                                        • crunchip
                                          crunchip Forum Testing Most Active last edited by

                                          @knusterus sagte in [HowTo] USV: NUT Server auf SBC installieren:

                                          Kann man da vielleicht keine Befehle senden

                                          darf denn der Benutzer das überhaupt?

                                          @knusterus sagte in [HowTo] USV: NUT Server auf SBC installieren:

                                          ACCESS-DENIED

                                          1 Reply Last reply Reply Quote 0
                                          • K
                                            Knusterus last edited by

                                            Hallo zusammen
                                            doch es funktioniert ,in meinem Adapter sind unter den Objekten einige Button die sich auch bedienen lassen ,Pieper aus , Selbstest usw.
                                            Ich habe im Nut Adapter den Benutzer upsmaster mit dem dazugehörigen Passwort eingetragen, damit funktioniert es.
                                            Vorher hatte ich wie oben erklärt den angelegten Benutzer für iobroker eingetragen. Da hat es nicht funktioniert.

                                            Volker

                                            D 1 Reply Last reply Reply Quote 1
                                            • First post
                                              Last post

                                            Support us

                                            ioBroker
                                            Community Adapters
                                            Donate
                                            FAQ Cloud / IOT
                                            HowTo: Node.js-Update
                                            HowTo: Backup/Restore
                                            Downloads
                                            BLOG

                                            846
                                            Online

                                            31.6k
                                            Users

                                            79.5k
                                            Topics

                                            1.3m
                                            Posts

                                            nut usv ups
                                            29
                                            233
                                            33480
                                            Loading More Posts
                                            • Oldest to Newest
                                            • Newest to Oldest
                                            • Most Votes
                                            Reply
                                            • Reply as topic
                                            Log in to reply
                                            Community
                                            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                            The ioBroker Community 2014-2023
                                            logo