Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    NUT package (2.8.0 and below)

    Scheduled Pinned Locked Moved UPS Tools
    1.2k Posts 128 Posters 4.2m Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • dennypageD
      dennypage @lcbbcl
      last edited by

      @lcbbcl said in NUT package:

      Why i see Can't connect to UPS [APC] (usbhid-ups-APC): No such file or directory
      Pf is not able to find that file, is not generated or what?

      It's not a file per se. That is a message from upsd saying that the driver isn't running.

      Please run usbconfig and confirm that the ups appears there. Also, can you confirm that you have rebooted or done an unplug/replug following reload of config and install of nut? There is a common permissions issue with usb until you do that.

      Please confirm that you are using UPS Type of "Local USB" with driver "usbhid", and that you have nothing in the Extra Arguments to driver section, and the all sections of the Advanced settings are empty. [You can stuff back later if needed]

      Lastly, please search your system logs for items matching "usbhid" and post the result.

      L 1 Reply Last reply Reply Quote 1
      • S
        shaffergr @dennypage
        last edited by

        @dennypage done. removed the "interruptonly" and hit "save". Console shows:

        [23.01-RELEASE][X@Y]/root: sysctl kern.corefile=/var/tmp/%N.core
        kern.corefile: /root/%N.core -> /var/tmp/%N.core

        Broadcast Message from root@Y
        (no tty) at 16:07 EST...

        Communications with UPS CyberPower lost

        Broadcast Message from root@Y
        (no tty) at 16:07 EST...

        Communications with UPS CyberPower established

        Now we wait...

        dennypageD 1 Reply Last reply Reply Quote 2
        • JonathanLeeJ
          JonathanLee @dennypage
          last edited by

          @dennypage I show nothing for logs they already rotated for me. :(

          Make sure to upvote

          1 Reply Last reply Reply Quote 0
          • dennypageD
            dennypage @shaffergr
            last edited by

            @shaffergr I don't think it will be necessary, but if it doesn't generate a core file, add this:

            sysctl kern.sugid_coredump=1
            
            S 1 Reply Last reply Reply Quote 1
            • L
              lcbbcl @dennypage
              last edited by lcbbcl

              @dennypage
              Well i just delete, reboot and reinstall nut not the operating system. Weird that i don't know why after remove nut i still had the settings when i did reinstall.
              Feb 19 20:34:08 zid upsd[20330]: Can't connect to UPS [APC] (usbhid-ups-APC): No such file or directory
              Feb 19 20:34:17 zid upsd[42475]: Can't connect to UPS [APC] (usbhid-ups-APC): No such file or directory
              Feb 19 20:34:54 zid upsd[15895]: Can't connect to UPS [APC] (usbhid-ups-APC): No such file or directory
              Feb 19 20:35:00 zid upsd[30880]: Can't connect to UPS [APC] (usbhid-ups-APC): No such file or directory
              Feb 19 20:38:11 zid upsd[36439]: Can't connect to UPS [ups] (usbhid-ups-ups): No such file or directory
              Feb 19 20:38:30 zid upsd[79042]: Can't connect to UPS [ups] (usbhid-ups-ups): No such file or directory
              Feb 19 20:39:12 zid upsd[51078]: Can't connect to UPS [APC] (usbhid-ups-APC): No such file or directory
              Feb 20 20:23:30 zid upsd[46012]: Can't connect to UPS [APC] (usbhid-ups-APC): No such file or directory
              Feb 20 20:28:30 zid upsd[46012]: Can't connect to UPS [APC] (usbhid-ups-APC): No such file or directory
              Feb 20 20:45:54 zid upsd[12751]: Can't connect to UPS [APC] (usbhid-ups-APC): No such file or directory
              Feb 20 20:49:57 zid upsd[82271]: Can't connect to UPS [ups] (usbhid-ups-ups): No such file or directory
              Feb 20 20:50:51 zid upsd[64233]: Can't connect to UPS [APC] (usbhid-ups-APC): No such file or directory
              Feb 20 20:52:27 zid upsd[415]: Can't connect to UPS [APC] (usbhid-ups-APC): No such file or directory
              Feb 20 20:52:36 zid upsd[85556]: Can't connect to UPS [APC] (usbhid-ups-APC): No such file or directory
              Feb 20 20:52:39 zid upsd[59802]: Can't connect to UPS [APC] (usbhid-ups-APC): No such file or directory
              Feb 20 22:08:57 zid upsd[92079]: Can't connect to UPS [APC] (usbhid-ups-APC): No such file or directory
              Feb 20 22:16:05 zid upsd[94197]: Can't connect to UPS [APC] (usbhid-ups-APC): No such file or directory
              Feb 20 22:19:28 zid upsd[60128]: Can't connect to UPS [APC] (usbhid-ups-APC): No such file or directory
              Feb 20 22:20:08 zid upsd[45874]: Can't connect to UPS [APC] (usbhid-ups-APC): No such file or directory
              Feb 20 22:20:11 zid upsd[73849]: Can't connect to UPS [APC] (usbhid-ups-APC): No such file or directory
              Feb 20 22:22:57 zid upsd[87326]: Can't connect to UPS [APC] (usbhid-ups-APC): No such file or directory
              Feb 20 22:23:07 zid upsd[93669]: Can't connect to UPS [APC] (usbhid-ups-APC): No such file or directory
              Feb 20 22:23:10 zid upsd[66247]: Can't connect to UPS [APC] (usbhid-ups-APC): No such file or directory
              Feb 20 22:24:27 zid upsd[70162]: Can't connect to UPS [APC] (usbhid-ups-APC): No such file or directory
              [23.01-RELEASE][admin@]/var/log: usbconfig
              ugen0.1: <Intel XHCI root HUB> at usbus0, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=SAVE (0mA)
              ugen0.2: <American Power Conversion Smart-UPS C 1000 FW:UPS 12.0 / ID1005> at usbus0, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (2mA)

              dennypageD 1 Reply Last reply Reply Quote 1
              • dennypageD
                dennypage @lcbbcl
                last edited by

                @lcbbcl I need the messages from the usbhid-ups process. The messages from upsd are expected when usbhid-ups isn't running.

                If you don't have any log entries from usbhid-ups, then please post your ups settings (Services / UPS / Settings)

                I'll be away for a bit... but will look at it when I'm back.

                L 1 Reply Last reply Reply Quote 1
                • L
                  lcbbcl @dennypage
                  last edited by

                  @dennypage
                  I have no msg/error from usbhid-ups
                  Screenshot_20230220_223805.png

                  dennypageD 2 Replies Last reply Reply Quote 1
                  • dennypageD
                    dennypage @lcbbcl
                    last edited by

                    @lcbbcl If you re-save your ups settings, it will restart the processes and you should be able to find usbhid entries.

                    1 Reply Last reply Reply Quote 1
                    • S
                      shaffergr @dennypage
                      last edited by

                      @dennypage

                      16:07 removed interruptonly and saved settings

                      On console:

                      [23.01-RELEASE][X@Y]/root: sysctl kern.corefile=/var/tmp/%N.core
                      kern.corefile: /root/%N.core -> /var/tmp/%N.core

                      Broadcast Message from root@gw.fubr.org
                      (no tty) at 16:07 EST...

                      Communications with UPS CyberPower lost

                      Broadcast Message from root@gw.fubr.org
                      (no tty) at 16:07 EST...

                      Communications with UPS CyberPower established

                      Feb 20 16:07:40 Y php-fpm[83664]: /nut_settings.php: Stopping service nut
                      Feb 20 16:07:40 Y upsmon[66045]: Signal 15: exiting
                      Feb 20 16:07:40 Y upsd[97704]: User local-monitor@::1 logged out from UPS [CyberPower]
                      Feb 20 16:07:40 Y upsd[97704]: mainloop: Interrupted system call
                      Feb 20 16:07:40 Y upsd[97704]: Signal 15: exiting
                      Feb 20 16:07:40 Y usbhid-ups[82519]: Signal 15: exiting
                      Feb 20 16:07:40 Y php-fpm[83664]: /nut_settings.php: Starting service nut
                      Feb 20 16:07:40 Y upsmon[7684]: Startup successful
                      Feb 20 16:07:40 Y upsmon[7684]: UPS [CyberPower]: connect failed: Connection failure: Connection refused
                      Feb 20 16:07:40 Y upsmon[7684]: Communications with UPS CyberPower lost
                      Feb 20 16:07:40 Y usbhid-ups[8439]: Startup successful
                      Feb 20 16:07:41 Y upsd[8857]: listening on 192.168.11.1 port 3493
                      Feb 20 16:07:41 Y upsd[8857]: listening on ::1 port 3493
                      Feb 20 16:07:41 Y upsd[8857]: listening on 127.0.0.1 port 3493
                      Feb 20 16:07:41 Y upsd[8857]: Connected to UPS [CyberPower]: usbhid-ups-CyberPower
                      Feb 20 16:07:41 Y upsd[8857]: Startup successful
                      Feb 20 16:07:45 Y upsd[8857]: User local-monitor@::1 logged into UPS [CyberPower]
                      Feb 20 16:07:45 Y upsmon[7684]: Communications with UPS CyberPower established

                      Feb 20 17:57:45 Y upsd[8857]: Can't connect to UPS [CyberPower] (usbhid-ups-CyberPower): Connection refused
                      Feb 20 17:57:45 Y kernel: pid 8439 (usbhid-ups), jid 0, uid 66: exited on signal 10 (core dumped)
                      Feb 20 17:57:48 Y upsmon[7684]: Poll UPS [CyberPower] failed - Driver not connected
                      Feb 20 17:57:48 Y upsmon[7684]: Communications with UPS CyberPower lost
                      Feb 20 17:57:53 Y upsmon[7684]: Poll UPS [CyberPower] failed - Driver not connected
                      Feb 20 17:57:58 Y upsmon[7684]: Poll UPS [CyberPower] failed - Driver not connected

                      Also set about 10 minutes later: sysctl kern.sugid_coredump=1

                      I have a core dump in /var/tmp/usbhid-ups.core

                      What do you want me to do with it?

                      dennypageD 1 Reply Last reply Reply Quote 1
                      • dennypageD
                        dennypage @shaffergr
                        last edited by

                        @shaffergr said in NUT package:

                        I have a core dump in /var/tmp/usbhid-ups.core
                        What do you want me to do with it?

                        Perfect! Compress and email it to me. Thanks!

                        S 1 Reply Last reply Reply Quote 1
                        • S
                          shaffergr @dennypage
                          last edited by

                          @dennypage

                          email address?

                          dennypageD 1 Reply Last reply Reply Quote 1
                          • dennypageD
                            dennypage @shaffergr
                            last edited by

                            @shaffergr Sent in chat. Look for a quote bubble next to the pic of your icon at the top. Should have an alert there.

                            S 1 Reply Last reply Reply Quote 1
                            • S
                              shaffergr @dennypage
                              last edited by

                              @dennypage

                              sent via email. Let me know if you don't get it.

                              1 Reply Last reply Reply Quote 1
                              • dennypageD
                                dennypage @lcbbcl
                                last edited by dennypage

                                @lcbbcl I believe I have found what is causing the issue you are experiencing. To correct the issue will require an update to the pfSense nut package as well as updating the underlying FreeBSD nut package used by pfSense. It will take some time.

                                In the interim, you can address the issue by adding the line "user=root" to "Additional configuration lines for ups.conf" under Advanced settings.

                                L keyserK X 3 Replies Last reply Reply Quote 4
                                • L
                                  lcbbcl @dennypage
                                  last edited by

                                  @dennypage
                                  Thank you, now is working

                                  1 Reply Last reply Reply Quote 1
                                  • keyserK
                                    keyser Rebel Alliance @dennypage
                                    last edited by

                                    @dennypage said in NUT package:

                                    @lcbbcl I believe I have found what is causing the issue you are experiencing. To correct the issue will require an update to the pfSense nut package as well as updating the underlying FreeBSD nut package used by pfSense. It will take some time.

                                    In the interim, you can address the issue by adding the line "user=root" to "Additional configuration lines for ups.conf" under Advanced settings.

                                    Your hard and dedicated work on this package is an inspiration. Thank you for the effort :-)

                                    I assume it was an access permissions issue since running it as root solves the issue? Can you comment on why it only happens for some UPS models?

                                    Love the no fuss of using the official appliances :-)

                                    dennypageD 1 Reply Last reply Reply Quote 1
                                    • dennypageD
                                      dennypage @keyser
                                      last edited by

                                      @keyser said in NUT package:

                                      I assume it was an access permissions issue since running it as root solves the issue? Can you comment on why it only happens for some UPS models?

                                      Yes, it's a permissions issue. I am hoping it can be addressed in the FreeBSD nut package (or perhaps in kernel config?), but if not I will have to add the user=root to the config for all usb devices.

                                      What models it happens on are dependent upon the quirks defined for that device. If you want to jump down the rabbit hole, run "usbconfig dump_quirk_names" and "usbconfig dump_device_quirks".

                                      NB: This is not related to the signal 10/11 issue being experienced with CyberPower units.

                                      1 Reply Last reply Reply Quote 3
                                      • 4
                                        4o4rh
                                        last edited by 4o4rh

                                        I see the github packages have been moved to

                                        https://github.com/pfsense/FreeBSD-ports

                                        But i don't see the nut package in there.

                                        Where is the code for nut, or is it closed source now?

                                        In the upsmon configuration, can we please add two config boxes for the below files.

                                        /usr/local/etc/nut/upssched.conf with permission 644
                                        /usr/local/bin/upssched-cmd with permission 755

                                        To use the scheduler to trigger events from upsmon. these files need to be configurable.
                                        Also, there should be a note for using them, the notification box has to be disabled.
                                        here is a sample of working files

                                        upsmon

                                        # upsmon.conf - Configuration for network UPS Tools upsmon
                                        # set the path to the notify command processor !!! the UPS notifications option must be unchecked !!! 
                                        NOTIFYCMD /usr/local/sbin/upssched
                                        
                                        # Poll the UPS every 60 seconds.
                                        POLLFREQ 60
                                        
                                        # Wait this many seconds for "Notify Shutdown" messages from slaves
                                        POLLFREQALERT 30
                                        
                                        # time UPS may go missing before being declared dead
                                        DEADTIME 600
                                        
                                        # Warn every 12 hours if battery needs to be replaced
                                        RBWARNTIME 43200
                                        
                                        # Warn every 5 minutes, if UPS is unreachable
                                        NOCOMMWARNTIME 300
                                        
                                        # Messages for the events %s will be replaced with the UPS system identifier in question
                                        NOTIFYMSG ONLINE   "UPS %s on line power"
                                        NOTIFYMSG ONBATT   "UPS %s on battery"
                                        NOTIFYMSG LOWBATT  "UPS %s battery is low"
                                        NOTIFYMSG FSD      "UPS %s forced shutdown in progress"
                                        NOTIFYMSG COMMOK   "UPS %s communications (re-)established"
                                        NOTIFYMSG COMMBAD  "UPS %s communications lost"
                                        NOTIFYMSG SHUTDOWN "Auto logout and shutdown proceeding"
                                        NOTIFYMSG REPLBATT "UPS %s battery needs to be replaced"
                                        NOTIFYMSG NOCOMM   "UPS %s is not reachable"
                                        NOTIFYMSG NOPARENT "upsmon parent process died, shutdown impossible"
                                        
                                        # Change behavior of upsmon on certain events.
                                        # Possible values for the flags:
                                        # SYSLOG - Write the message in the syslog
                                        # WALL - Write the message to all users on the system
                                        # EXEC - Execute NOTIFYCMD (see above, in our case see upssched.conf) with the message
                                        # IGNORE - Don't do anything
                                        # If you use IGNORE, don't use any other flags on the same line.
                                        # NOTIFYFLAG <notify type> <flag>[+<flag>][+<flag>] ...
                                        NOTIFYFLAG ONLINE   SYSLOG
                                        NOTIFYFLAG ONBATT   SYSLOG
                                        NOTIFYFLAG LOWBATT  SYSLOG
                                        NOTIFYFLAG FSD      SYSLOG+WALL+EXEC
                                        NOTIFYFLAG COMMOK   SYSLOG+EXEC
                                        NOTIFYFLAG COMMBAD  SYSLOG+WALL+EXEC
                                        NOTIFYFLAG SHUTDOWN SYSLOG
                                        NOTIFYFLAG REPLBATT SYSLOG
                                        NOTIFYFLAG NOCOMM   SYSLOG
                                        NOTIFYFLAG NOPARENT SYSLOG
                                        

                                        upssched

                                        # Network UPS Tools - upssched.conf file
                                        
                                        #Command script to run
                                        CMDSCRIPT /usr/local/bin/upssched-cmd
                                        
                                        # command for pipe and lock files
                                        PIPEFN /var/db/nut/upssched.pipe
                                        LOCKFN /var/db/nut/upssched.lock
                                        
                                        # ============================================================================
                                        # AT <notifytype> <upsname> <command>
                                        # Define a handler for a specific event <notifytype> on UPS <upsname>.
                                        # <upsname> can be the special value * to apply this handler to every
                                        # possible value of <upsname>.
                                        # Run the command <command> via your CMDSCRIPT when it happens.
                                        # Note that any AT that matches both the <notifytype> and the <upsname>
                                        # for the current event will be used.
                                        # ============================================================================
                                        # Possible AT commands
                                        # - START-TIMER <timername> <interval>
                                        #   Start a timer called <timername> that will trigger after <interval>
                                        #   seconds, calling your CMDSCRIPT with <timername> as the first
                                        #   argument.
                                        #   Example:
                                        #   Start a timer that'll execute when any UPS (*) has been gone 10 seconds
                                        # AT COMMBAD * START-TIMER COMMBAD 1800
                                        #   -----------------------------------------------------------------------
                                        # - CANCEL-TIMER <timername> [cmd]
                                        #   Cancel a running timer called <timername>, if possible. If the timer
                                        #   has passed then pass the optional argument <cmd> to CMDSCRIPT.
                                        #   Example:
                                        #   If a specific UPS (myups@localhost) comes back online, then stop the
                                        #   timer before it triggers
                                        # AT COMMOK * CANCEL-TIMER COMMBAD COMMOK
                                        #   -----------------------------------------------------------------------
                                        # - EXECUTE <command>
                                        #   Immediately pass <command> as an argument to CMDSCRIPT.
                                        #
                                        #   Example:
                                        #   If any UPS (*) reverts to utility power, then execute
                                        #   'ups-back-on-line' via CMDSCRIPT.
                                        
                                        # UPS is online in syslog. we don't need action when no UPS connected
                                        # AT ONLINE * CANCEL-TIMER onbatt 
                                        
                                        # UPS on battery in syslog. badcomms will shutdown for us
                                        # AT ONBATT * START-TIMER onbatt 300
                                        
                                        # UPS low battery is syslog. we should badcomms to shutdown
                                        # AT LOWBATT * START-TIMER lowbatt 300
                                        
                                        # UPS forced shutdown by master or upsmon
                                        AT FSD * EXECUTE powerdown
                                        
                                        # UPS communications restored
                                        AT COMMOK * CANCEL-TIMER badcomms
                                        
                                        # UPS communications failed. 
                                        AT COMMBAD * START-TIMER badcomms 600
                                        
                                        # UPS shutdown recorded in syslog
                                        # AT SHUTDOWN * EXECUTE powerdown
                                        
                                        # UPS needs replacement battery. Info in syslog
                                        # AT REPLBATT * EXECUTE replbatt
                                        
                                        # UPS is not reachable. Relying on deadtime for shutdown
                                        AT NOCOMM * EXECUTE commbad
                                        
                                        # UPSMON parent process has died - shutdown not possible.
                                        # AT NOPARENT * EXECUTE noparent
                                        

                                        upssched-cmd

                                        #! /bin/sh
                                        #
                                        # This script should be called by upssched via the CMDSCRIPT directive.
                                        #
                                        # Here is a quick example to show how to handle a bunch of possible
                                        # timer names with the help of the case structure.
                                        #
                                        # This script may be replaced with another program without harm.
                                        #
                                        # The first argument passed to your CMDSCRIPT is the name of the timer
                                        # from your AT lines.
                                        #
                                        # case $1 in
                                        #	upsgone)
                                        #		logger -t upssched-cmd "The UPS has been gone for awhile"
                                        #		;;
                                        #	*)
                                        #		logger -t upssched-cmd "Unrecognized command: $1"
                                        #		;;
                                        # esac
                                        
                                        case $1 in
                                           onbatt)
                                              # function not needed as we only use syslog
                                              logger -t upssched-cmd "UPS is running on battery."
                                           ;;
                                           
                                           online)
                                              # function not needed as we only use syslog
                                              logger -t upssched-cmd "UPS back online."
                                           ;;
                                        
                                           lowbatt)
                                              # function not needed as we only use syslog
                                              logger -t upssched-cmd "UPS has low battery"
                                              # we rely on badcomms when no UPS connected
                                              # /usr/local/sbin/upsmon -c fsd
                                           ;;
                                        
                                           badcomms)
                                              logger -t upssched-cmd "UPS offline too long, forced shutdown."
                                              /usr/local/sbin/upsmon -c fsd
                                           ;;
                                        
                                           commok)
                                              # function not needed as we only use syslog
                                              logger -t upssched-cmd "UPS communications restored."
                                           ;;
                                           
                                           powerdown)
                                              logger -t upssched-cmd "UPS forced shutdown started"
                                              /usr/local/sbin/upsmon -c fsd
                                           ;;
                                        
                                           replbatt)
                                              # function not needed as we only use syslog
                                              logger -t upssched-cmd "UPS battery needs replacing"
                                           ;;
                                        
                                           noparent)
                                              # function not needed as we only use syslog
                                              logger -t upssched-cmd "upsmon parent process died. Shutdown not possible"
                                           ;;
                                        
                                           *)
                                              logger -t upssched-cmd "No code defined for command: $1"
                                           ;;
                                        esac
                                        
                                        dennypageD 1 Reply Last reply Reply Quote 1
                                        • dennypageD
                                          dennypage @4o4rh
                                          last edited by

                                          @gwaitsi It hasn't moved since I wrote it. sysutils/pfSense-pkg-nut.

                                          1 Reply Last reply Reply Quote 1
                                          • X
                                            xavier1 @dennypage
                                            last edited by

                                            This solved my issue. Everything is working great. Thank you :)

                                            @dennypage said in NUT package:

                                            @lcbbcl I believe I have found what is causing the issue you are experiencing. To correct the issue will require an update to the pfSense nut package as well as updating the underlying FreeBSD nut package used by pfSense. It will take some time.

                                            In the interim, you can address the issue by adding the line "user=root" to "Additional configuration lines for ups.conf" under Advanced settings.

                                            1 Reply Last reply Reply Quote 1
                                            • First post
                                              Last post
                                            Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.