Autor Thema: Neues Modul: APCUPSD  (Gelesen 21451 mal)

Offline Blablubblaber

  • Full Member
  • ***
  • Beiträge: 116
Antw:Neues Modul: APCUPSD
« Antwort #30 am: 21 November 2016, 09:49:00 »
Habe es jetzt angepasst das nur noch das drin steht was auch wirklich von der usv kommt.

Habe aber noch immer eine Warnung
  PERL WARNING: Use of uninitialized value in pattern match (m//) at ./FHEM/34_APCUPSD.pm line 142, <$fh> line 1813. 

Wie kann das sein ein list sieht jetzt so aus
  Internals:
   DEF        120 localhost
   HOST       localhost:3551
   INTERVAL   120
   LOWBATT    20
   MODEL      Smart-UPS 750
   NAME       USV
   NR         368
   SERIALNO   3S1540X02058
   STATE      ONLINE
   TYPE       APCUPSD
   Readings:
     2016-11-21 09:46:45   battery         ok
     2016-11-21 09:46:45   battv           27.1
     2016-11-21 09:46:45   bcharge         100
     2016-11-21 09:46:45   state           ONLINE
     2016-11-21 09:46:45   timeleft        127
   Helper:
     ALARMDEL   30 Seconds
     APC        001,027,0667
     BATTV      27.1 Volts
     BCHARGE    100.0 Percent
     CABLE      USB Cable
     CUMONBATT  0 Seconds
     DATE       2016-11-21 09:46:36 +0100
     DRIVER     USB UPS Driver
     END APC    2016-11-21 09:46:45 +0100
     FIRMWARE   UPS 09.3 / ID=18
     HOSTNAME   raspberrypi
     MANDATE    2015-09-30
     MAXTIME    0 Seconds
     MBATTCHG   5 Percent
     MINTIMEL   3 Minutes
     MODEL      Smart-UPS 750
     NOMBATTV   24.0 Volts
     NUMXFERS   0
     SERIALNO   3S1540X02058
     STARTTIME  2016-11-20 18:23:01 +0100
     STATFLAG   0x05000008
     STATUS     ONLINE
     TIMELEFT   127.0 Minutes
     TONBATT    0 Seconds
     UPSMODE    Stand Alone
     UPSNAME    raspberrypi
     VERSION    3.14.12 (29 March 2014) debian
     XOFFBATT   N/A
Attributes:
   asReadings BATTV,BCHARGE,TIMELEFT
   comment    LASTXFER,LINEV,OUTPUTV,LOADPCT
   room       Keller 


Gruß
Dennis

Offline premultiply

  • New Member
  • *
  • Beiträge: 49
Antw:Neues Modul: APCUPSD
« Antwort #31 am: 23 November 2016, 18:45:38 »
Ich habe leider gerade keine weitere Idee mehr woher die Meldung kommt.
Leider kann ich das nicht testen/nachvollziehen da bei meinen 3 USV-Systemen dies nicht auftaucht.

Probleme sollte es dadurch aber nicht geben.

Offline DeeSPe

  • Developer
  • Hero Member
  • ****
  • Beiträge: 4385
  • Wer anderen eine Bratwurst brät...
    • Buy me a coffee
Antw:Neues Modul: APCUPSD
« Antwort #32 am: 23 November 2016, 21:50:06 »
Habe aber noch immer eine Warnung
  PERL WARNING: Use of uninitialized value in pattern match (m//) at ./FHEM/34_APCUPSD.pm line 142, <$fh> line 1813. 

Ich würde die Zeile 142 so ergänzen:
$hash->{helper}{$_} =~ m/^([\-\d\.]*)(.*)$/ if ($hash->{helper}{$_});Dann dürfte die Perl Warnung nicht mehr kommen und es dürfte auch keinen Einfluss auf den weiteren Programmablauf haben.

Gruß
Dan
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

Offline DeeSPe

  • Developer
  • Hero Member
  • ****
  • Beiträge: 4385
  • Wer anderen eine Bratwurst brät...
    • Buy me a coffee
Antw:Neues Modul: APCUPSD
« Antwort #33 am: 23 November 2016, 21:59:11 »
Achso, ohne das Modul bisher zu benutzen ist mir beim Überfliegen des Codes aufgefallen dass das Modul blockierend arbeitet.
Ich empfehle das Modul auf DevIo zu erweitern um es non-blocking zu machen.
Bei einem offiziellem Check-In ins FHEM Repo sollte es möglichst auch non-blocking sein. 8)

Verstehe mich bitte nicht falsch, ich finde es toll dass es Leute wie Dich und mich gibt die in ihrer Freizeit Sachen für die Community bereitstellen.
Das Modul ist für den ersten Versuch toll, nur eben noch ausbaufähig... 8)

Gruß
Dan

P.S. Bin nur auf das Modul aufmerksam geworden weil ich selbst gerade eine APC UPS bestellt habe und die dann auch in FHEM einbinden will.
MAINTAINER: 22_HOMEMODE, 98_Hyperion, 98_FileLogConvert, 98_serviced

Als kleine Unterstützung für meine Programmierungen könnt ihr mir gerne einen Kaffee spendieren: https://buymeacoff.ee/DeeSPe

fsapienza

  • Gast
Antw:Neues Modul: APCUPSD
« Antwort #34 am: 27 November 2016, 19:10:07 »
Hi zusammen,
ich habe den Vorschlag von Dan mal getestet mit folgendem Ergebnis:
PERL WARNING: Use of uninitialized value $1 in numeric gt (>) at ./FHEM/34_APCUPSD.pm line 143.
Scheint leider noch nicht die Lösung zu sein...

Grüße
Franco


« Letzte Änderung: 27 November 2016, 19:59:19 von SFranco »

Offline Blablubblaber

  • Full Member
  • ***
  • Beiträge: 116
Antw:Neues Modul: APCUPSD
« Antwort #35 am: 05 Dezember 2016, 09:30:48 »
Also bei mir besteht der Fehler weiterhin.

Was mir auch aufgefallen ist wen ich das Modul öffne dann friert FHEM für ein paar Sekunden ein bis es offen ist.
Ist das wegen dem von @DeeSPe angesprochenen non-blocking?

Gruß
Dennis

Offline premultiply

  • New Member
  • *
  • Beiträge: 49
Antw:Neues Modul: APCUPSD
« Antwort #36 am: 05 Dezember 2016, 09:47:15 »
Was mir auch aufgefallen ist wen ich das Modul öffne dann friert FHEM für ein paar Sekunden ein bis es offen ist.
Ist das wegen dem von @DeeSPe angesprochenen non-blocking?

Kann ich mir kaum vorstellen, da im normalfall keine Aufrufe getätigt werden die FHEM ernsthaft blockieren. Der Datenabruf mittels apcaccess erfolgt initial und dann nur noch über einen Timer.

Ich betreibe dies bei mir selbst mit 3 größeren USV-Systemen und vielen anderen Geräten ohne solche Probleme.

Es könnte aber durchaus sein, dass z. B. mit deiner APCUPSD-Konfiguration grundsätzlich etwas nicht stimmt und dieses somit in irgendein Timeout läuft beim Datenabruf.

Wenn du auf der Konsole apcaccess ausführst sollte sofort eine Antwort kommen. Nichts anderes ruft das Modul auf.

Offline Blablubblaber

  • Full Member
  • ***
  • Beiträge: 116
Antw:Neues Modul: APCUPSD
« Antwort #37 am: 05 Dezember 2016, 10:18:18 »
Habe übers Wochenende FHEM einmal komplett neu aufgesetzt und es seitdem nicht nochmal probiert gehabt bevor ich das gerade geschrieben habe (sry).
Habe es nachdem Post von dir nochmal ausprobiert und muss sagen das das Problem weg ist.
Es muss wirklich an irgend einer Konfiguration gelegen haben.

Aber das Problem mit der Perl Fehlermeldung im Log nach einem neustart von FHEM bleibt bestehen.




Offline chr2k

  • Sr. Member
  • ****
  • Beiträge: 616
Antw:Neues Modul: APCUPSD
« Antwort #38 am: 21 August 2017, 23:45:36 »
Hallo,

schade dass das Modul noch nicht eingecheckt ist  ;) :-[ :-X :'(

Offline Jorche

  • New Member
  • *
  • Beiträge: 17
Antw:Neues Modul: APCUPSD
« Antwort #39 am: 11 September 2017, 23:54:52 »
Hallo premultiply,

ich stelle mich mit an. Kurze Zwischenfrage: Braucht Dein Modul dden Apache CGI Webserver?

Dank und Grüße
Jörg

Offline choenig

  • Developer
  • Full Member
  • ****
  • Beiträge: 395
  • Module: MieleAtHome, WS980, [ALP600]
Antw:Neues Modul: APCUPSD
« Antwort #40 am: 30 September 2017, 09:38:13 »
Hallo zusammen,

ich hatte das Problem, dass in den Helpers die Daten zwar korrekt angezeigt wurden, die Readings aber verkrüppelt waren:

xoffbatt: 2017

Das sollte eigentlich ein vollständiges Datum sein, so wie hier:

xoffbatt: 2017-09-27 13:42:06 +0200

Auf der Suche nach der Lösung bin ich auf Code im 34_APCUPSD Modul gestoßen, welches (vermutlich) die Einheiten der Readings entfernen soll, leider entfernt das mehr, als eigentlich nötig.

Eine Lösung war dann (für mein System) schnell gefunden:
Meine Version von /sbin/apcaccess (apcupsd-3.14.13) unterstützt den Parameter '-u', der die Units entfernt.

Folgender kleiner Patch löst für mich das o.a. Problem:

--- fhem/FHEM/34_APCUPSD.pm
+++ fhem/FHEM/34_APCUPSD.pm
@@ -97,7 +97,7 @@ sub APCUPSD_RetrieveData($) {
   my $name = $hash->{NAME};
 
   my ($cmd, $val);
-  $cmd = $apcaccess." status ".$hash->{HOST}."  2>&1";
+  $cmd = $apcaccess." -u status ".$hash->{HOST}."  2>&1";
   $val = `$cmd`;
 
   if ( $val =~ m/^Error/ | ! length($val) ) {
@@ -139,12 +139,7 @@ sub APCUPSD_RetrieveData($) {
   foreach (split (',', $attr{$name}{asReadings})) {
     s/^\s+//;
     s/\s+$//;
-    $hash->{helper}{$_} =~ m/^([\-\d\.]*)(.*)$/;
-    if ( length($1) > 0 ) {
-      readingsBulkUpdate($hash, lc($_), 0+$1) if defined $hash->{helper}{$_};
-    } else {
-      readingsBulkUpdate($hash, lc($_), $2) if defined $hash->{helper}{$_};
-    }
+    readingsBulkUpdate($hash, lc($_), $hash->{helper}{$_}) if defined $hash->{helper}{$_};
   }
   readingsEndUpdate($hash, 1);

Da ich ungerne verschieden Versionen des Moduls im Umlauf haben möchte, hänge ich keine vollständige neue 34_APCUPSD.pm an, könnte das aber machen, wenn Interesse besteht.

LG
Christian

Offline ChrisW

  • Hero Member
  • *****
  • Beiträge: 2129
Antw:Neues Modul: APCUPSD
« Antwort #41 am: 23 November 2017, 17:09:44 »
ich habe eine APC USV per USB an meiner Synology angeschlossen. Dort den USV Server Aktiv. Kann ich mit dem Modul nun was machen ?
Raspberry PI3 mit allem möglichen.

Offline Hauswart

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 859
Antw:Neues Modul: APCUPSD
« Antwort #42 am: 28 Dezember 2017, 11:26:25 »
Gibt es Alternativen zu diesem Modul?
1. Installation:
KNX, Tasmota (KNX), Sonos, Unifi

2. Installation:
HM-CFG-USB, Unifi (, SIGNALduino 868, MySensors, SIGNALduino 433)

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 20831
Antw:Neues Modul: APCUPSD
« Antwort #43 am: 28 Dezember 2017, 12:44:56 »
@ChrisW: das geht mit dem NUT modul.

FHEM5.4,DS1512+,2xCULv3,DS9490R,HMLAN,2xRasPi
CUL_HM:HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-MDIR,HM-SEC-RHS
HUEBridge,HUEDevice:LCT001,LLC001,LLC006,LWL001
OWDevice:DS1420,DS18B20,DS2406,DS2423
FS20:fs20as4,fs20bs,fs20di
AKCP:THS01,WS15
CUL_WS:S300TH

Offline Hauswart

  • Developer
  • Sr. Member
  • ****
  • Beiträge: 859
Antw:Neues Modul: APCUPSD
« Antwort #44 am: 28 Dezember 2017, 13:21:44 »
@ChrisW: das geht mit dem NUT modul.



Also installiere ich wohl doch auch besser unter Debian nicht nur APCUPSD sondern auch das NUT. Hat jemand mal Powerchute ausprobiert?
1. Installation:
KNX, Tasmota (KNX), Sonos, Unifi

2. Installation:
HM-CFG-USB, Unifi (, SIGNALduino 868, MySensors, SIGNALduino 433)