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

    APC Status Widget

    Scheduled Pinned Locked Moved pfSense Packages
    15 Posts 3 Posters 1.5k 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.
    • fireodoF
      fireodo
      last edited by fireodo

      Hi,

      I have customized your script for my UPS (APC Back-UPS CS 350) and for my native language (german).
      See here:
      apc_status.widget.php

      <?php
      /*
      
      apc_status.php
      A widget developed by John Van Winkle to monitor the status of my APC UPS.
      Copyright (c) 2018 John Van Winkle
      All rights reserved.
      Licensed under the Apache License, Version 2.0 (the "License");
      you may not use this file except in compliance with the License.
      You may obtain a copy of the License at
      http://www.apache.org/licenses/LICENSE-2.0
      Unless required by applicable law or agreed to in writing, software
      distributed under the License is distributed on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
      See the License for the specific language governing permissions and
      limitations under the License.
      */
      require_once("guiconfig.inc");
      require_once("pfsense-utils.inc");
      require_once("/usr/local/pkg/apcupsd.inc");
      
      /* Build table to display data */
      ?>
      
      <meta http-equiv="refresh" content="900" >
      
      <div class="table-responsive">
      <table class="table table-striped table-hover table-condensed">
      <thead>
      <tr>
      <th>Status</th>
      <th>Modell</th>
      <th>Netz</th>
      <th>Last</th>
      <th>Laufzeit</th>
      <th>Batterie</th>
      </tr>
      </thead>
      <tr>
      <td><font color=limegreen><?=$stat?></td>
      <td><font color=cyan><?=$model?></td>
      <td><?=$linev?> V</td>
      <td><?=$load?> %</td>
      <td><?=$time?> min.</td>
      <td><font color=yellow><?=$batt?> sek.</td>
      </tr>
      </table>
      </div>
      <?php
      

      apc_status.inc

      <?php
      /*
      
      apc_status.inc
      part of pfSense (https://www.pfsense.org)
      Copyright (c) 2004-2020 Rubicon Communications, LLC (Netgate)
      All rights reserved.
      Licensed under the Apache License, Version 2.0 (the "License");
      you may not use this file except in compliance with the License.
      You may obtain a copy of the License at
      http://www.apache.org/licenses/LICENSE-2.0
      Unless required by applicable law or agreed to in writing, software
      distributed under the License is distributed on an "AS IS" BASIS,
      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
      See the License for the specific language governing permissions and
      limitations under the License.
      */
      //set variable for custom title
      $apc_status_title = "APC Status";
      $apc_status_title_link = "apcupsd_status.php";
      
      /* Build database */
      unset($apcstatus);
      $instruction = "apcaccess -h 0.0.0.0:3551";
      $result = shell_exec($instruction);
      $apcstatus = explode("\n",$result);
      
      /* Checking the status of UPS communication */
      $stat = substr($apcstatus[10], -7 );
      if ($stat = "ONLINE") {
      
      /* display online status */
      $stat = substr($apcstatus[10], -7);
      $model = substr($apcstatus[4], -7);
      $linev = substr($apcstatus[11], 10, -5);
      $load = substr($apcstatus[12], 10, -7);
      $time = substr($apcstatus[14], 10, -8);
      $batt = substr($apcstatus[31], 10, -8);
      
      } else {
      /* display offline status */
      $stat = "COMMLOST";
      $model = "";
      $linev = "";
      $load = "";
      $time = "";
      $batt = "";
      
      }
      ?>
      

      Looks like here:
      pfsense65.png.jpg

      Regards,
      fireodo

      Kettop Mi4300YL CPU: i5-4300Y @ 1.60GHz RAM: 8GB Ethernet Ports: 4
      SSD: SanDisk pSSD-S2 16GB (ZFS) WiFi: WLE200NX
      pfsense 2.8.0 CE
      Packages: Apcupsd, Cron, Iftop, Iperf, LCDproc, Nmap, pfBlockerNG, RRD_Summary, Shellcmd, Snort, Speedtest, System_Patches.

      C 1 Reply Last reply Reply Quote 0
      • C
        Carver @fireodo
        last edited by Carver

        @fireodo

        Thank you for the correction to the code. I was not sure if it was correct or if there was a more correct way to code it. I will check it out on my system. How does it work with loss of communication?

        fireodoF 2 Replies Last reply Reply Quote 0
        • fireodoF
          fireodo @Carver
          last edited by

          @carver said in APC Status Widget:

          @fireodo

          Thank you for the correction to the code.

          Its only a adaptation on my personal UPS - the results are diferite depending on the UPS that is utilized (the output of "apcaccess -h 0.0.0.0:3551" vary from UPS to UPS)

          I will check it out on my system.

          You probably will have to make some corrections. The refresh of the widget is also something that can have some improvements.

          How does it work with loss of communication?

          No, I couldn't do it here ... sorry!

          Regards,
          fireodo

          Kettop Mi4300YL CPU: i5-4300Y @ 1.60GHz RAM: 8GB Ethernet Ports: 4
          SSD: SanDisk pSSD-S2 16GB (ZFS) WiFi: WLE200NX
          pfsense 2.8.0 CE
          Packages: Apcupsd, Cron, Iftop, Iperf, LCDproc, Nmap, pfBlockerNG, RRD_Summary, Shellcmd, Snort, Speedtest, System_Patches.

          1 Reply Last reply Reply Quote 0
          • fireodoF
            fireodo @Carver
            last edited by

            @carver

            Hello,

            look what I have found:

            APC-Status Widget

            Regards,
            fireodo

            Kettop Mi4300YL CPU: i5-4300Y @ 1.60GHz RAM: 8GB Ethernet Ports: 4
            SSD: SanDisk pSSD-S2 16GB (ZFS) WiFi: WLE200NX
            pfsense 2.8.0 CE
            Packages: Apcupsd, Cron, Iftop, Iperf, LCDproc, Nmap, pfBlockerNG, RRD_Summary, Shellcmd, Snort, Speedtest, System_Patches.

            C 1 Reply Last reply Reply Quote 0
            • C
              Carver @fireodo
              last edited by Carver

              @fireodo
              It doesn't work on my machine. Widget is displayed but not values. Correction, it does work.......grin

              fireodoF 1 Reply Last reply Reply Quote 0
              • fireodoF
                fireodo @Carver
                last edited by fireodo

                @carver said in APC Status Widget:

                @fireodo
                It doesn't work on my machine. Widget is displayed but not values. Correction, it does work.......grin

                😊 Now, if you look at the code, you can maybe make modifications to customize the widget for your personal needs ... and perhaps you can also test the "COMMLOST" - scenario.
                If you want I can sent you my customized version and you can compare it with the original so you can see where you can make customizations.

                Regards,
                fireodo

                Kettop Mi4300YL CPU: i5-4300Y @ 1.60GHz RAM: 8GB Ethernet Ports: 4
                SSD: SanDisk pSSD-S2 16GB (ZFS) WiFi: WLE200NX
                pfsense 2.8.0 CE
                Packages: Apcupsd, Cron, Iftop, Iperf, LCDproc, Nmap, pfBlockerNG, RRD_Summary, Shellcmd, Snort, Speedtest, System_Patches.

                C 1 Reply Last reply Reply Quote 0
                • C
                  Carver @fireodo
                  last edited by

                  @fireodo
                  I was thinking about customizing it for my tastes. It's a nice piece of code and works great with both scenarios, online and commlost. Yes, if you would like to send me yours, that will be great.......grin

                  Carver

                  fireodoF 1 Reply Last reply Reply Quote 0
                  • fireodoF
                    fireodo @Carver
                    last edited by

                    @carver said in APC Status Widget:

                    @fireodo
                    I was thinking about customizing it for my tastes. It's a nice piece of code and works great with both scenarios, online and commlost. Yes, if you would like to send me yours, that will be great.......grin

                    Carver

                    apc_usv.widget.zip

                    ☺

                    Kettop Mi4300YL CPU: i5-4300Y @ 1.60GHz RAM: 8GB Ethernet Ports: 4
                    SSD: SanDisk pSSD-S2 16GB (ZFS) WiFi: WLE200NX
                    pfsense 2.8.0 CE
                    Packages: Apcupsd, Cron, Iftop, Iperf, LCDproc, Nmap, pfBlockerNG, RRD_Summary, Shellcmd, Snort, Speedtest, System_Patches.

                    C 1 Reply Last reply Reply Quote 0
                    • C
                      Carver @fireodo
                      last edited by

                      @fireodo
                      Thanks for sending yours. I changed his original to the info I wanted to see on my firewall. I am going to try and test it today and make sure all aspects of it work. It is obvious after looking at his coding I don’t have a clue what I am doing. I am too old school........grin

                      Carver

                      fireodoF 1 Reply Last reply Reply Quote 0
                      • fireodoF
                        fireodo @Carver
                        last edited by

                        @carver said in APC Status Widget:

                        @fireodo
                        Thanks for sending yours.

                        You're welcome!

                        I changed his original to the info I wanted to see on my firewall. I am going to try and test it today and make sure all aspects of it work. It is obvious after looking at his coding I don’t have a clue what I am doing. I am too old school........grin

                        In fact its important that you get what you want! 😊

                        Regards,
                        fireodo

                        Kettop Mi4300YL CPU: i5-4300Y @ 1.60GHz RAM: 8GB Ethernet Ports: 4
                        SSD: SanDisk pSSD-S2 16GB (ZFS) WiFi: WLE200NX
                        pfsense 2.8.0 CE
                        Packages: Apcupsd, Cron, Iftop, Iperf, LCDproc, Nmap, pfBlockerNG, RRD_Summary, Shellcmd, Snort, Speedtest, System_Patches.

                        1 Reply Last reply Reply Quote 0
                        • occamsrazorO
                          occamsrazor
                          last edited by

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