LoxBerry Plugin APC-UPS PicoC Programm müllt meine Logs voll

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • DasBesteOderNichts
    Extension Master
    • 11.10.2017
    • 188

    #1

    LoxBerry Plugin APC-UPS PicoC Programm müllt meine Logs voll

    Hallo,

    mir ist heute beim Update auf die neue Config Version aufgefallen, dass sich 2 GB Log Dateien auf der SD Karte meines Miniservers befinden.
    Dabei habe ich außer beim NFC Code Zugang kein Loging / Statistiken aktiviert.
    Bei genauerer Betrachtung habe ich gesehen, dass fast alle Einträge in den Logs etwas mit meiner USV Überwachung via LoxBerry zutun haben.
    (Aktuell kommen alle paar Sekunden eine ganze Latte an Logs hinzu.)


    Das Problem müsste in dem PicoC Code liegen, da ich sonst alles andere in Verbindung mit der USV durchgeguckt habe.

    Ich nutze diesen PicoC Skript zur Abfrage der USV:

    Code:
    [FONT=Calibri][COLOR=#000000]char* p,*pS;[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]char* cStatus;[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]char* cBattdate;[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]char* cModel;[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]char szBuffer[1500];[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]int nLen;[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]int bOnline = 0;[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]double dCharge,dLoad,dLinev,dTimeleft,dBattv,dTonbatt,dCu monbatt;[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]printf("Starting USV APC BackUPS 1500 watch");[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]while(TRUE)[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]{[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]STREAM* stream = stream_create("/dev/tcp/xxx.xxx.xxx.xx/3551",0,0);[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]if (stream != NULL)[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]{[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]szBuffer[0] = 0;[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]szBuffer[1] = 6;[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]stream_write(stream,szBuffer,2);[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]stream_flush(stream);[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]stream_write(stream,"status",6);[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]stream_flush(stream);[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]nLen = stream_read(stream,szBuffer,2,1000);[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]nLen = stream_read(stream,szBuffer,sizeof(szBuffer) - 1,1000);[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]stream_close(stream);[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]szBuffer[nLen] = 0;[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]szBuffer[nLen + 1] = 0;[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]printf("APC BufferLen=%d",nLen);[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]pS = szBuffer;[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]while(*pS)[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]{[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]//MODEL : UPS model derived from UPS information[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]p = strstr(pS,"MODEL :");[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]if (p != NULL)[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]{[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]cModel = strstrskip(p,"MODEL : ");[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]printf("APC Model=%s",cModel);[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]setoutputtext(0,cModel);[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]}[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]//STATUS : UPS status (online, charging, on battery etc)[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]p = strstr(pS,"STATUS :");[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]if (p != NULL)[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]{[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]cStatus = strstrskip(p,"STATUS : ");[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]printf("APC Status=%s",cStatus);[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]setoutputtext(1,cStatus);[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]p = strstr(pS,"ONLINE");[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]if (p != NULL)[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]setoutput(0,0);[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]else[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]setoutput(0,1);[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]}[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]//LINEV : Current input line voltage[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]p = strstr(pS,"LINEV :");[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]if (p != NULL)[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]{[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]dLinev = batof(p + 11);[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]setoutput(1,dLinev);[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]printf("APC Linev=%f",dLinev);[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]}[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]//LOADPCT : Percentage of UPS load capacity used as estimated by UPS[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]p = strstr(pS,"LOADPCT :");[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]if (p != NULL)[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]{[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]dLoad = batof(p + 11);[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]setoutput(2,dLoad);[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]printf("APC Load=%f",dLoad);[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]}[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]//BCHARGE : Current battery capacity charge percentage[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]p = strstr(pS,"BCHARGE :");[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]if (p != NULL)[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]{[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]dCharge = batof(p + 11);[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]setoutput(3,dCharge);[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]printf("APC Bcharge=%f",dCharge);[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]}[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]//TIMELEFT: Remaining runtime left on battery as estimated by the UPS[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]p = strstr(pS,"TIMELEFT :");[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]if (p != NULL)[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]{[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]dTimeleft = batof(p + 11);[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]setoutput(4,dTimeleft);[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]printf("APC Timeleft=%f",dTimeleft);[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]}[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]//BATTV : Current battery voltage[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]p = strstr(pS,"BATTV :");[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]if (p != NULL)[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]{[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]dBattv = batof(p + 11);[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]setoutput(5,dBattv);[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]printf("APC Battv=%f",dBattv);[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]}[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]//TONBATT :Seconds currently on battery[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]p = strstr(pS,"TONBATT :");[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]if (p != NULL)[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]{[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]dTonbatt = batof(p + 11);[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]setoutput(6,dTonbatt);[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]printf("APC Tonbatt=%f",dTonbatt);[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]}[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]//CUMONBATT : Cumulative seconds on battery since apcupsd startup[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]p = strstr(pS,"CUMONBATT:");[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]if (p != NULL)[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]{[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]dCumonbatt = batof(p + 11);[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]setoutput(7,dCumonbatt);[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]printf("APC Cumonbatt=%f",dCumonbatt);[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]}[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]//BATTDATE: Date battery last replaced (if set)[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]p = strstr(pS,"BATTDATE :");[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]if (p != NULL)[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]{[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]cBattdate = strstrskip(p,"BATTDATE : ");[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]printf("APC Battdate=%s",cBattdate);[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]setoutputtext(2,cBattdate);[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]}[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]pS += (strlen(pS) + 1);[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]}[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]}[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]else[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]printf("APC no connection");[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]sleeps(10); // wait 10 seconds[/COLOR][/FONT]
    [FONT=Calibri][COLOR=#000000]}[/COLOR][/FONT]

    und so sehen die Logs dann in etwa aus:


    2021-10-13 16:44:51.342;APC BufferLen=1097
    2021-10-13 16:44:51.759;APC Model=Back-UPS RS 1500G

    2021-10-13 16:44:51.777;APC Status=ONLINE

    2021-10-13 16:44:51.795;APC Linev=234.0
    2021-10-13 16:44:51.813;APC Load=26.0
    2021-10-13 16:44:51.830;APC Bcharge=100.0
    2021-10-13 16:44:51.848;APC Timeleft=19.8
    2021-10-13 16:44:51.980;APC Battv=27.2
    2021-10-13 16:44:52.046;APC Tonbatt=0.0
    2021-10-13 16:44:52.064;APC Cumonbatt=146.0
    2021-10-13 16:44:52.160;APC Battdate=2014-10-19

    2021-10-13 16:45:03.272;APC BufferLen=1097
    2021-10-13 16:45:03.416;APC Model=Back-UPS RS 1500G

    2021-10-13 16:45:03.433;APC Status=ONLINE

    2021-10-13 16:45:03.451;APC Linev=234.0
    2021-10-13 16:45:03.469;APC Load=26.0
    2021-10-13 16:45:03.487;APC Bcharge=100.0
    2021-10-13 16:45:03.505;APC Timeleft=19.8
    2021-10-13 16:45:03.637;APC Battv=27.2
    2021-10-13 16:45:03.702;APC Tonbatt=0.0
    2021-10-13 16:45:03.720;APC Cumonbatt=146.0

    Kann mir vielleicht jemand sagen, was ich ändern muss, damit diese Logs ein Ende haben?
    Zuletzt geändert von DasBesteOderNichts; 13.10.2021, 16:20.
  • hme0354
    MS Profi
    • 06.07.2019
    • 970

    #2
    Einfach vor jedem printf befehl // setzen, damit sind die zeilen auskommentiert
    Smarthome: 1x Miniserver Gen. 2, 3x Relay Extensions, 1x Tree Extension, 1x DI-Extension, 1x Air Base Extension, 8x RGBW Tree Dimmer, 9x Touch-Tree, 1x Nano DI Tree, 10x Tree BWM
    Technik: IDM Aero SLM 3-11 mit HGL, MS4H mit 9 Zonen, 2x Loxberry, 2x RPI für Anzeige, Doorbird, Froggit WH2600, POE+ System für Peripherie, Gedad Luftgütesensoren, Deconz (Bridge + 2x BWM + 2x RGBW + 5 Smartplug)

    Kommentar

    • DasBesteOderNichts
      Extension Master
      • 11.10.2017
      • 188

      #3
      Danke hat geklappt.

      Kommentar

      Lädt...