Probleme mit automatischem Start von apcupsd

Begonnen von Blablubblaber, 04 Januar 2017, 10:27:24

Vorheriges Thema - Nächstes Thema

Blablubblaber

#15
Also ich habe eine APC USV mit Netzwerkkarte und dort SNMP aktiviert.

Dann habe ich auf dem Raspberry APCUPSD installiert und eingerichtet um die Verbindung zur USV zu haben.

Im Falle eines Stromausfalls soll der Raspberry mit FHEM drauf kontrolliert runterfahren bevor die USV leer ist das triggert APCUPSD an. (Wenn es denn auch Läuft was es ja momentan nicht macht bzw. keine Daten ausliest ohne manuell zu starten)

Auf FHEM läuft auch noch das Modul APCUPSD.

Das Problem ist ja aber das APCUPSD (als dienst auf dem Raspberry) keine Daten abruft oder Verbindung hat bis ich es manuell starte.


chris1284

ist denn nach dem startd es pi die website erreichbar ?
http://[ipraspberry]/cgi-bin/apcupsd/upsfstats.cgi?host=127.0.0.1
oder
http://[ipraspberry]/cgi-bin/apcupsd/multimon.cgi

ansonsten
http://www.apcupsd.org/manual/manual.html

beschreibt punkte wie "Verifying a Source Installation" evtl hilfts.

ich habs stumpf installiert und läuft out-of-box, abfragen in fhem erledige ich per httpmod und der http://[ipraspberry]/cgi-bin/apcupsd/upsfstats.cgi?host=127.0.0.1

Blablubblaber

Nein die Website ist nicht erreichbar da der dienst dafür auch garnicht Installiert ist ich nutze ja nur den Daemon und frage dessen Werte per FHEM ab.

chris1284

Zitatich nutze ja nur den Daemon und frage dessen Werte per FHEM ab.
nja, mehr schlecht als recht sonst würde es ja den hilferuf nicht geben.
evtl funktioniert der webservice zuverlässiger (zumal das apcupsd modul ja auch kein offizielles fhem modul ist)

Blablubblaber

Doch die Abfrage von FHEM Seite aus funktioniert wunderbar wen der Daemon auf dem Raspberry funktioniert aber der startet ja nicht einmal richtig ich kann ja nicht mal über die Console die Werte abrufen bis ich ein Start ausgeführt habe.

Hollo

Ich bleibe dabei (und sehe in Deinen Postings nirgends das Gegenteil), dass der Daemon immer startet bzw. läuft!
Was nicht immer klappt, ist der Network Information Server, über den Du auf die Daten zugreifst.
Versuch es doch bitte mal mit der Default-IP 0.0.0.0 anstatt 127.0.0.1 .
Außerdem gucken mal, ob der Port 3551 irgendwo gesperrt ist.

Parallel kannst Du auch Mal in die LOG-Datei vom apcupsd gucken.
FHEM 6.x auf RPi 3B Buster
Protokolle: Homematic, Z-Wave, MQTT, Modbus
Temp/Feuchte: JeeLink-Clone und LGW mit LaCrosse/IT
sonstiges: Linux-Server, Dreambox, "RSS-Tablet"

nh2

Zitat von: Hollo am 12 Januar 2017, 23:01:51
Ich bleibe dabei (und sehe in Deinen Postings nirgends das Gegenteil), dass der Daemon immer startet bzw. läuft!

Die Diagnose ist falsch, aber nur, weil systemd und `service` uns hier einen Streich spielen:

In Blablubblaber's post zeigt es nämlich: Active: active (exited).

Das zeigt systemd an, wenn der server gestartet, sich dann aber wieder beendet hat.

In systemd kann ein service auch active sein, wenn er sich selbst beendet. Nämlich dann, wenn im systemd .service file RemainAfterExit=yes, zu finden ist. Bei mir ist das da, guck mal mit systemctl cat apcupsd.service nach.

Blablubblaber, ich nehme an, dass wenn du ps aux | grep apcupsd machst, siehst du dort, dass (wie bei mir) kein apcupsd-Prozess auf deinem System läuft.

nh2

Wenn ich apcupsd manuell starte stat mit dem service, dann gehts:


% /sbin/apcupsd --debug 10
0.000 apcupsd: apcupsd.c:218 Options parsed.
0.000 apcupsd: apcupsd.c:241 Config file /etc/apcupsd/apcupsd.conf processed.
0.000 apcupsd: drivers.c:146 Attached to driver: usb
0.001 apcupsd: apcupsd.c:313 NIS thread started.                                       

% apcaccess
APC      : 001,017,0421
DATE     : 2018-01-10 22:46:13 +0100 
HOSTNAME : ares
VERSION  : 3.14.12 (29 March 2014) debian
CABLE    : USB Cable
DRIVER   : USB UPS Driver
UPSMODE  : Stand Alone
STARTTIME: 2018-01-10 22:46:03 +0100 
STATUS   : COMMLOST
MBATTCHG : 5 Percent
MINTIMEL : 3 Minutes
MAXTIME  : 0 Seconds
NUMXFERS : 0
TONBATT  : 0 Seconds
CUMONBATT: 0 Seconds
XOFFBATT : N/A
STATFLAG : 0x05000100
END APC  : 2018-01-10 22:46:13 +0100 


Guck mal, was bei dir kommt mit

/sbin/apcupsd --debug 10

nh2

#23
Und bei mir geht's auch, wenn ich's manuell über das init-script starte, aber nicht über "service" oder systemctl:


% sudo service apcupsd start

% ps aux | grep apc
user     15887  0.0  0.0  17636  1016 pts/4    S+   22:50   0:00 grep --color=auto apc

% sudo /etc/init.d/apcupsd start
Starting UPS power management: apcupsd.

% ps aux | grep apc
root     15918  0.0  0.0  95224   196 ?        Ssl  22:50   0:00 /sbin/apcupsd
user     15948  0.0  0.0  17636   996 pts/4    S+   22:50   0:00 grep --color=auto apc


Die systemd-unit ist automatisch generiert vom init-script. Das kann schon mal schiefgehen, ich glaube in unserem Fall.

Die Lösung: Ein ordentliches systemd-unitfile schreiben oder runterlaten.

Zum Beispiel so:


curl https://gist.githubusercontent.com/nh2/e6089d30ddc6be6191037b5098f1adb9/raw/f08e4174286cbba6ab19f619d896da265cb81552/apcupsd.service | sudo tee /etc/systemd/system/apcupsd.service


Danach


sudo systemctl daemon-reload


und "sudo service apcupsd start" sollte klappen.