+ Antworten
Ergebnis 1 bis 5 von 5
  1. #1
    Registriert seit
    Dec 2006
    Ort
    Friedberg (Hessen)
    Beiträge
    1,709

    Standard S.USV beim RaspberryPi -> Daten auslesen

    Ich betreibe 2 RaspberryPi mit S.SUSV.
    Zum Auslesen nutze ich ein eigenes Script. Ist nicht fertig, wirds auch nie, aber ich bin ein Freund von unfertigen Dingen.
    Vielleicht hilft es dem einen oder anderen:
    PHP-Code:
    <?
    // Pi S.USV Werte auslesen von Audi2010 30.12.2016
    // Kategorie anlegen, ID eintragen
    // Script starten
    //legt die Variablen automatisch an
    // Profile müssen man. erstellt werden


    $id_parent 25279 /*[S.USV]*/;
    exec("/opt/susvd/susv -status"$e);            //Werte holen

    // Zeit umwandeln in
    $zeit substr($e[17], 624);
    $e[17] = "* Zeit: " strtotime($zeit). "             *";
    //Testausgabe um Zeilennummer anzuzeigen
    //print_r ($e);

    //Array abarbeiten Zeile für Zeile
    $i ;
    foreach (
    $e as $zeile)  {
        
    $pos strpos($zeile":");
        if( 
    $pos <> )  {
           
    $name substr($zeile2$pos-2);
        
    //    echo $i . "  Name = " . $name ." \n ";
            
    $id = @IPS_GetVariableIDByName($name$id_parent);
            
    $wert trim(substr($zeile$pos+1, -2));
            
    //Boolean
            
    if ( ($i == 9) || ($i == 11) || ($i == 14) || ($i == 22) || ($i == 32)) {
               
    $typ ;
               if ((
    $wert == "Enabled") ||  ($wert == "enabled") || ($wert == "ONLINE"))    {
               
    $wert true ;
               
    $profil "AnAus";
               }
               else  {
               
    $wert false ;
               }
            }
            elseif ((
    $i == 17) || ($i == 12) || ($i == 15) || ($i == 31) || ($i == 33) )    {
            
    //Integer
                
    $typ 1;
                
    $wert intval(trim(substr($zeile$pos+1, -2)));
            }
            elseif ( (
    $i == 25) ||($i == 27) ||($i == 23)||($i == 26)||($i == 28)||($i == 29))   {
            
    //Float
                
    $typ ;
                
    $wert floatval(trim(substr($zeile$pos+1, -2)));
            }
            else {
            
    //String
                
    $typ 3;
                
    $wert trim(substr($zeile$pos+1, -2));
            }
            if (
    $id === false) {
                
    anlegen($id$typ$id_parent$zeile$pos);
            }
    //        echo "Wert = " . $wert  ."\n";
            
    SetValue($id,$wert);
    //        echo $i . "Ende \n";
        
    }
        
    $i++;
    }

    function 
    anlegen($id$typ$id_parent$zeile,$pos,$i)   {
                
    $id IPS_CreateVariable($typ);
                
    IPS_SetName($idsubstr($zeile2$pos-2)); // Variable benennen
                
    IPS_SetParent($id$id_parent);             // Variable in die Kategorie bringen
                
    IPS_SetPosition($id$i);                    // Variable in der Kategorie nach Zeilennummer sortieren
           
    }
    ?>
    Übertragen vom Thema "USV für Raspberry Pi", um es besser zu finden
    Geändert von audi2010 (26.01.17 um 18:02 Uhr)
    Viele Grüße Rainer
    Windows 10,IPS V 5.2 + Testsysteme -- FHZ -- PiVCCU3 -- Phillips Hue --1-Wire, Anwesendheits-Tracker, ESP-Easy und viele, viele Spielereien , I-View, Raspberry 2, 3, Zero, Tinkerboard, Nello, Nuki

  2. #2
    Registriert seit
    Oct 2010
    Beiträge
    604

    Zitat Zitat von audi2010 Beitrag anzeigen
    eigenes Script. Ist nicht fertig, wirds auch nie, aber ich bin ein Freund von unfertigen Dingen.
    das war mein Freitagsschmunzler
    Im Moment im Einsatz: IPS-Professional V4.1 auf RPi3, YAHM mit HM LAN-Adapter
    Komponenten: FWS20 Wetterstation, >35x DS18B20, HM-SCI-3-FM, HM-LC-Sw2-FM, HM-LC-Sw1-FM, HM-Sec-RHS, HM-Sec-SC-2,
    mehrere Pokeys, einige Philips Hue, 4x SDM630M

  3. #3
    Registriert seit
    Jul 2010
    Ort
    Südwestpfalz
    Beiträge
    6,813

    Super Sache. Danke
    Gruß Boui . . . IPS-unlim. auf Tinker Board S und pivccu

    Die gefährlichste Form der Zensur ist die Schere im eigenen Kopf.(Curzio Malaparte)

  4. #4
    Registriert seit
    Jun 2012
    Ort
    Dresden
    Beiträge
    273

    Hallo,

    habe das Skript mal etwas überarbeitet.

    PHP-Code:
    <?
    // Pi S.USV Werte auslesen von Audi2010 30.12.2016
    // Kategorie anlegen, ID eintragen
    // Script starten
    //legt die Variablen automatisch an
    // Profile müssen man. erstellt werden
    // 14.09.2018 jnicke
    // Anpassung an Windows sowie 2 Korrekturen
    // $i um 1 erhöht und in Zeile 79 $i ergänzt

    //SSH Login : Beginn
    include('Net/SSH2.php');

    // IP vom Raspberry
    $ssh = new Net_SSH2('192.168.x.x'); 

    //Anmeldeuser und Passwort für Raspberry nach UFT8 konvertieren
    //nur mit UTF8 Einstellung klappt auch ein putty login
    //ohne diese Konvertierung erscheint immer "Login Failed" auch hier per ssh->login
    $username utf8_encode'pi' );
    $password utf8_encode'xxxxxxxx' );

        if (!
    $ssh->login($username$password)) // Hier der echte Login
        
    {
            exit(
    'Login Failed');
        }
    //SSH Login: Ende
    $id_parent 48423 /*[Hardware\Raspberry\Raspi.pivCCU2.70N\S.USV.60N]*/;

    //exec("/opt/susvd/susv -status", $e);            //Werte holen direkt auf PI

    //#### unter Windows #################################################
    $a $ssh->exec("/opt/susvd/susv -status");            //Werte holen
    //echo $a;
    $e explode"\n"$a);   // Array aus der Meldung erstellen
    //####################################################################
    // Zeit umwandeln in
    $zeit substr($e[17], 624);
    $e[18] = "* Zeit: " strtotime($zeit). "             *";
    //Testausgabe um Zeilennummer anzuzeigen
    //print_r ($e);

    //Array abarbeiten Zeile für Zeile
    $i ;
    foreach (
    $e as $zeile)  {
        
    $pos strpos($zeile":");
        if( 
    $pos <> )  {
           
    $name substr($zeile2$pos-2);
            
    //echo $i . "  Name = " . $name ." \n ";
            
    $id = @IPS_GetVariableIDByName($name$id_parent);
            
    $wert trim(substr($zeile$pos+1, -2));
            
    //echo $i . "  Wert = " . $wert ." \n ";
            //Boolean
            
    if ( ($i == 10) || ($i == 12) || ($i == 15) || ($i == 23) || ($i == 33)) {
               
    $typ ;
               if ((
    $wert == "Enabled") ||  ($wert == "enabled") || ($wert == "ONLINE"))    {
               
    $wert true ;
               
    $profil "AnAus";
               }
               else  {
               
    $wert false ;
               }
            }
            elseif ((
    $i == 18) || ($i == 13) || ($i == 16) || ($i == 32) || ($i == 34) )    {
            
    //Integer
                
    $typ 1;
                
    $wert intval(trim(substr($zeile$pos+1, -2)));
            }
            elseif ( (
    $i == 26) ||($i == 28) ||($i == 24)||($i == 27)||($i == 29)||($i == 30))   {
            
    //Float
                
    $typ ;
                
    $wert floatval(trim(substr($zeile$pos+1, -2)));
            }
            else {
            
    //String
                
    $typ 3;
                
    $wert trim(substr($zeile$pos+1, -2));
            }
            if (
    $id === false) {
                
    anlegen($id$typ$id_parent$zeile$pos$i);
            }
    //        echo "Wert = " . $wert  ."\n";
            
    SetValue($id,$wert);
    //        echo $i . "Ende \n";
        
    }
        
    $i++;
    }

    function 
    anlegen($id$typ$id_parent$zeile,$pos,$i)   {
                
    $id IPS_CreateVariable($typ);
                
    IPS_SetName($idsubstr($zeile2$pos-2)); // Variable benennen
                
    IPS_SetParent($id$id_parent);             // Variable in die Kategorie bringen
                
    IPS_SetPosition($id$i);                    // Variable in der Kategorie nach Zeilennummer sortieren
           
    }
    ?>
    Gruss Jürgen

    IP-Symcon V5.1 auf Acer Veriton N2620G (6GB RAM), Windows 7 Prof. 64 Bit / 2x ipad Terminal / ipad / iphone / IPS-868 / piVCCU3, 103 HM Devices / VSM-102 / Sonos / Logitech Harmony / Philips HUE / IPSView

  5. #5
    Registriert seit
    Apr 2007
    Ort
    Lüneburg
    Beiträge
    3,448

    ...gibt es hier auch als Modul. Zufriedenheit mit der Hardware ist aber etwas anderes. Es sind diverse Fehler in der Dokumentation, die Hardware selbst hängt sich dann auch gerne mal auf, da hilft dann nur komplett - inkl. Akku - vom Netz trennen. Im FHEM-Forum ein ähnlicher Tenor...

    Hatte die Entwickler in zwei langen Mails explizit auf die Fehler zum einen, aber auch auf Verbesserungspotentiale zum anderen aufmerksam gemacht - bisher außer der Standardantwort aber leider keine Reaktion in Firmware und Dokumentation...

    Schade eigentlich...

    Joachim
    IP-Symcon seit 12/2009, iPhoneApp seit 01/2011, IPSView seit 12/2014!
    3xSiemensLOGO0BA7+DM16, 1xInstar 3010PoE, 1xInstar 2905PoE, 1x1-WireHub mit DS2450 von Eservice-online, 15xDS1820, 1xDS2423, 1xDS2408

Ähnliche Themen

  1. Auswertescript für NUT USV Daten
    Von tommi im Forum Anleitungen / Nützliche PHP Skripte
    Antworten: 19
    Letzter Beitrag: 18.10.18, 19:50
  2. SNMP Geräte auslesen am Beispiel einer APC USV
    Von sanman im Forum Anleitungen / Nützliche PHP Skripte
    Antworten: 8
    Letzter Beitrag: 03.06.13, 16:15
  3. Antworten: 15
    Letzter Beitrag: 08.10.12, 20:10
  4. USV über COMPort auslesen/steuern
    Von Simon im Forum Skripte, PHP, SQL
    Antworten: 11
    Letzter Beitrag: 29.03.10, 12:24
  5. APC USV-Daten einlesen
    Von Horst im Forum Anleitungen / Nützliche PHP Skripte
    Antworten: 0
    Letzter Beitrag: 12.03.09, 21:47

Stichworte