Neues Modul: APCUPSD

Begonnen von premultiply, 22 Juni 2015, 11:49:09

Vorheriges Thema - Nächstes Thema

premultiply

Welches Protokoll die APC Netwerkkarten sprechen kann ich dir momentan nicht sagen.
Habe selber darauf verzichtet und bei mir mehrere USV via USB und Seriell auf einem RasPi für gesamte Netzwerk gebündelt.

Allerdings ist es grundsätzlich so, dass APCUPSD als Server fungiert. D.h. mit entsprechender Konfiguration können andere Rechner im Netz mittels APCUPSD auf beliebige USV-Einheiten zugreifen.
APCUPSD spricht mit lokal angeschlossenen USV-Einheiten (z. B. per seriell oder USB) oder aber auch mit solchen die selbst über eine APC-Netzwerkkarte verfügen oder aber auch mit anderen APCUPSD-Instanzen im Netzwerk.

Das Modul spricht direkt mit je einer APCUPSD-Instanz. Diese muss auch nicht zwangsläufig auf dem gleichen System wie FHEM laufen. Es werden nur Teile des APCUPSD-Gesamtpakets, genauer das Tool apcaccess, für die Kommunikation zwischen Modul und Dienst benötigt.

ext23

Hallo,

hab das Modul auch ausprobiert, läuft (SMART-UPS 1000 RM)! Aber dein Screenshot ist ja nett, sind deine Batterien wirklich seit 2004 drin ?!?!

/Daniel
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

premultiply

Witzig, ist mir bisher nie aufgefallen dass das Akkutauschdatum bei der USV nie zurückgesetzt wurde.

Wenn sie aber nicht öfter benutzt werden oder der Entladestrom recht gering und die Umgebungstemperatur niedrig ist halten die Akkus aber schon ein paar Jährchen durch.

Blablubblaber

Also kurzes Feedback leider passt die Smart Slot Karte AP9619 nicht in die USV die neuen APC USVs haben einen ein klein wenig anderen Slot so das man für diese nun neue karten benötigt...

Habe das ganze jetzt per USB an einen Raspberry angeschlossen damit geht es.

Ich habe nun noch eine Frage.
Hast du noch vor das Module offiziell in FHEM einzuchecken würde mich sehr freuen wen du das noch machen würdest und einen kurzen Wiki Artikel dazu verfasst damit es Hand und Fuß hat.  :)

jorge

Hallo Zusammen,

ich habe eine APC-USV via USB an einen Win 7 Server angeschlossen. Auf dem Server läuft auch eine fhem Instanz (mit fhem2fhem verbunden).

Gibt es eine Möglichkeit, mit fhem auf Windows über das APCUPSD -Modul auf die USV zuzugreifen?

LG

Jorge
FHEM.RaspberryPi 2 (HM, 1Wire, Callmonitor.FB 7490, GPIO, I2C, MQTT-Server, MCP23018)
FHEM.RaspberryPi  (FHEM2FHEM, CUL, FS20)
FHEM.RPiZeroW (I2C, 1Wire, python.api, XiaomiBTLESens.MQTT)
FHEM.Win7 (FHEM2FHEM,DBLOG.MySql)
ESPEasy (WEMOSD1, I2C, Analog, 1Wire), Sonoff_T1_3ch, Mobotix QM25, robonect

premultiply

Es reicht wenn du auf dem Windows-System APCUPSD als Dienst installierst und entsprechend konfigurierst (Lokale USB-USV mit Netzwerkfreigabe).
Dann kannst du mittels des FHEM-Moduls und der APCUPSD-Installation auf dem FHEM-Server (bzw. genauer dessen apcaccess-Tool) auf den APCUPSD-Dienst auf dem Windows-System zugreifen.

Alternativ kannst du das FHEM-Modul auch so modifizieren (Dateipfad editieren) dass es apcaccess.exe unter Windows findet und aufruft.
Der Rest sollte identisch und Plattformunabhängig sein.

Das FHEM-Modul findest du unter https://github.com/premultiply/fhem-modules/blob/master/FHEM/34_APCUPSD.pm. Patches/Pull Requests sind willkommen.

jorge

Zitat von: premultiply am 14 Juni 2016, 18:23:43
Es reicht wenn du auf dem Windows-System APCUPSD als Dienst installierst und entsprechend konfigurierst (Lokale USB-USV mit Netzwerkfreigabe).
Dann kannst du mittels des FHEM-Moduls und der APCUPSD-Installation auf dem FHEM-Server (bzw. genauer dessen apcaccess-Tool) auf den APCUPSD-Dienst auf dem Windows-System zugreifen.
...


Danke für den Hinweis.

Habe jetzt das APCUPSD-Paket auf dem Windows-Server installiert. Funktionierte auf Anhieb ohne große Änderungen im Script. Den apcaccess Client für Windows habe ich probiert, funktioniert im Windows-fhem nach Änderung des Installationspfades. Noch besser: Habe auch auf dem RPI APCUPSD installiert, aber den Server nicht aktiviert, und in APCUPSD.pm den apcaccess Client mit dem Windows APCUPSD Server verbunden. Und das upsstats.cgi mit einem Weblink eingebunden (Auf dem Windows-Server läuft auch ein Apache Webserver). So habe ich in fhem volle Kontrolle über die Server-USV.

LG

Jorge



upsstats.cgi
FHEM.RaspberryPi 2 (HM, 1Wire, Callmonitor.FB 7490, GPIO, I2C, MQTT-Server, MCP23018)
FHEM.RaspberryPi  (FHEM2FHEM, CUL, FS20)
FHEM.RPiZeroW (I2C, 1Wire, python.api, XiaomiBTLESens.MQTT)
FHEM.Win7 (FHEM2FHEM,DBLOG.MySql)
ESPEasy (WEMOSD1, I2C, Analog, 1Wire), Sonoff_T1_3ch, Mobotix QM25, robonect

ext23

Sag mal wie lange halten die Akkus bei euch so?

BATTDATE : 30/09/13

Und heute hat sie das erste mal den wöchentlichen Test nicht mehr bestanden. Ist bei mir immer so ziemlich genau 3 Jahre was die Akkus halten.

/Daniel
HM, KNX, FS20, 1-Wire, PanStamp, AVR-NET-IO, EM1000EM, PCA301, EC3000, HM-LAN, CUL868, RFXtrx433, LGW, DMX @Ubuntu-Server (Hauptsystem) & Raspberry Pi (Satellit)

premultiply

Das ist nicht sonderlich lange aber noch im normaler Haltbarkeitsbereich.
Die mögliche Nutzungsdauer hängt von vielen Faktoren ab.

Da wäre zunächst die Qualität des Akkus selber und seine grundsätzliche Eignung für den USV-Betrieb (sehr hohe Entladeströme!)
Weitere Faktoren sind die Umgebungstemperatur sowie die Anzahl der, die Dauer von und die Strombelastung während der Entladevorgänge.
Soll heißen: Läuft die USV mit hoher Last und in gut geheizter Ungebung regelmäßig auf Akkubetrieb ist das derAkku-Lebensdauer nicht sonderlich zuträglich.

fsapienza

#25
Hallo premultiply,
ich nutze seit kurzem dein Modul, welches sehr gut funktioniert - danke hierfür!

Eine Frage: Im Log stehen regelmäßig PERL WARNINGS:
2016.10.22 11:31:52 1: PERL WARNING: Use of uninitialized value in pattern match (m//) at ./FHEM/34_APCUPSD.pm line 142, <$fh> line 145.

Kannst du bitte bei Gelegenheit mal prüfen ob du das korrigieren kannst?

Danke im Voraus und Grüße
Franco

premultiply

Ich vermute mal du hast bei asReadings entweder keine Angaben gemacht und/oder dort Werte drin stehen die deine USV nicht liefert.
Kannst du mal ein "list <DEVICE>" machen und die Antwort hier posten?

fsapienza

#27
Hi premultiply,
danke für deine Antwort - anbei ein list <device>
Internals:
   BATTDATE   2016-04-15
   CFGFN      ./FHEM/00_myDevices.cfg
   DEF        60 localhost:3551
   HOST       localhost:3551
   INTERVAL   60
   LOWBATT    20
   MODEL      Back-UPS ES 700G
   NAME       UsvWz
   NR         95
   SERIALNO   5B1615T46986
   STATE      ONLINE - BATTERY: ok L: 0 M: 38.4
   TYPE       APCUPSD
   Readings:
     2016-10-25 14:36:41   battery         ok
     2016-10-25 14:36:41   battv           13.6
     2016-10-25 14:36:41   bcharge         100
     2016-10-25 14:36:41   lastxfer        Automatic or explicit self test
     2016-10-25 14:36:41   linev           236
     2016-10-25 14:36:41   loadpct         0
     2016-10-25 14:36:41   state           ONLINE
     2016-10-25 14:36:41   timeleft        38.4
   Helper:
     ALARMDEL   No alarm
     APC        001,036,0943
     BATTDATE   2016-04-15
     BATTV      13.6 Volts
     BCHARGE    100.0 Percent
     CABLE      USB Cable
     CUMONBATT  11 Seconds
     DATE       2016-10-25 14:36:07 +0200
     DRIVER     USB UPS Driver
     END APC    2016-10-25 14:36:41 +0200
     FIRMWARE   871.O4 .I USB FW:O4
     HITRANS    266.0 Volts
     HOSTNAME   PI3-JESSIE
     LASTSTEST  2016-10-14 15:40:09 +0200
     LASTXFER   Automatic or explicit self test
     LINEV      236.0 Volts
     LOADPCT    0.0 Percent
     LOTRANS    180.0 Volts
     MAXTIME    0 Seconds
     MBATTCHG   5 Percent
     MINTIMEL   3 Minutes
     MODEL      Back-UPS ES 700G
     NOMBATTV   12.0 Volts
     NOMINV     230 Volts
     NUMXFERS   1
     SENSE      High
     SERIALNO   5B1615T46986
     STARTTIME  2016-10-03 22:28:39 +0200
     STATFLAG   0x05000008
     STATUS     ONLINE
     TIMELEFT   38.4 Minutes
     TONBATT    0 Seconds
     UPSMODE    Stand Alone
     UPSNAME    PI3-JESSIE
     VERSION    3.14.12 (29 March 2014) debian
     XOFFBATT   2016-10-14 15:40:20 +0200
     XONBATT    2016-10-14 15:40:09 +0200
Attributes:
   alias      WzMMediaUSV
   asReadings BATTV,BCHARGE,LINEV,LOADPCT,TIMELEFT,LASTXFER
   group      OTHER
   icon       measure_battery_100
   room       INFO,Devices
   stateFormat state - BATTERY: battery L: loadpct M: timeleft
   verbose    0


Kannst du hieraus ein Fehler von mir erkennen? Soweit ich sehe habe ich asReadings gesetzt...

Viele Grüße
Franco

Blablubblaber

Bei mir kommt auch der fehler

PERL WARNING: Use of uninitialized value in pattern match (m//) at ./FHEM/34_APCUPSD.pm line 142.

Und hier gleich das list dazu

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-19 07:24:59   battery         ok
     2016-11-19 07:24:59   battv           27.1
     2016-11-19 07:24:59   bcharge         100
     2016-11-19 07:24:59   state           ONLINE
     2016-11-19 07:24:59   timeleft        127
   Helper:
     ALARMDEL   30 seconds
     APC        001,027,0684
     BATTV      27.1 Volts
     BCHARGE    100.0 Percent
     CABLE      USB Cable
     CUMONBATT  0 seconds
     DATE       2016-11-19 07:24:30 +0100
     DRIVER     USB UPS Driver
     END APC    2016-11-19 07:24:59 +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-16 17:16:46 +0100
     STATFLAG   0x07000008 Status Flag
     STATUS     ONLINE
     TIMELEFT   127.0 Minutes
     TONBATT    0 seconds
     UPSMODE    Stand Alone
     UPSNAME    raspberrypi
     VERSION    3.14.10 (13 September 2011) debian
     XOFFBATT   N/A
Attributes:
   asReadings BATTV,BCHARGE,LINEV,LOADPCT,OUTPUTV,TIMELEFT,LASTXFER
   room       Keller 


Woran könnte das liegen?

premultiply

Es wurden per asReadings (Default)Werte angegeben die die angeschlossene USV offensichtlich nicht liefert.
Einfach manuell nur verfügbare Werte per asReadings angeben und schon sollte die Fehlermeldung verschwinden.