Ankündigung: NUT - Network UPS Tools

Begonnen von Creideiki, 18 September 2014, 14:32:38

Vorheriges Thema - Nächstes Thema

fruit

#105
What do you have in /etc/nut/ups.conf ?
Mine is
# To find out if your driver supports any extra settings, start it with
# the -h option and/or read the driver's documentation.

[Smart-UPS750]
        driver = usbhid-ups
        port = auto
        desc = "APC Smart-UPS 750"


and my Readings are

device.model    Smart-UPS 750
device.serial    AS0816143277
driver.name     usbhid-ups


Edit:
A long shot... but does re-enabling USB autocreate improve things at all?
(I realise that you said earlier that it was part of your problem - and that is why you disabled it)
Feel free to follow up in German if you prefer

Burny4600

Das ist mein Eintrag in der ups.conf für die lokale USV:
[apc1500VA]
        driver = usbhid-ups
        port = auto
        desc = "APC SMART-UPS 1500 SUA1500"


Und das der fhem.cfg für die USV
define USV NUT usbhid-ups localhost
attr USV asReadings device.model,device.serial,battery.charge,battery.runtime,input.voltage,ups.load
attr USV disable 0
attr USV pollState 10
attr USV pollVal 60
attr USV room _RXTX,USV
attr USV userReadings upsRealpower {ReadingsVal("USV","ups.realpower.nominal",0)*ReadingsVal("USV","ups.load",0)/100}
attr USV verbose 5


Port beim Server und FHEM ist 3493.

Benötigt FHEM um NUT zu nutzen noch spezielle Zugriffrechte?

LG Chris

Raspberry Pi 2-5, Bullseye Lite, Bookworm Lite
Schnittstellen: 1-Wire, FHEM2FEHEM, HM-MOD-UART, LAN, Modbus, MQTT, nanoCUL, RFXtrx433E, SIGNALduino, ser2net
Devices: APC, Eastron, FS20, IT, Homematic, MQTT, PV-(DEYE, EPEVER, FRONIUS), Resol-VBUS, S.USV, TEK603, WMR200, YouLess

Creideiki

Da ist was verrutscht:
Zitat von: Burny4600 am 22 Dezember 2015, 12:25:56
Das ist mein Eintrag in der ups.conf für die lokale USV:
[apc1500VA]
        driver = usbhid-ups
        port = auto
        desc = "APC SMART-UPS 1500 SUA1500"
Die USV heißt also apc1500VA und verwendet den Treiber usbhid-ups.
Zitat
Und das der fhem.cfg für die USV
define USV NUT usbhid-ups localhost
attr USV asReadings device.model,device.serial,battery.charge,battery.runtime,input.voltage,ups.load
attr USV disable 0
attr USV pollState 10
attr USV pollVal 60
attr USV room _RXTX,USV
attr USV userReadings upsRealpower {ReadingsVal("USV","ups.realpower.nominal",0)*ReadingsVal("USV","ups.load",0)/100}
attr USV verbose 5

Im define muß der Name der USV rein (also apc1500VA), nicht der Treibername. Sonst sucht er nach einer USB namens usbhid-ups, und die gibt es nicht.

Burny4600

@Creideiki

Danke für den Tipp.
Jetzt funktioniert es.
LG Chris

Raspberry Pi 2-5, Bullseye Lite, Bookworm Lite
Schnittstellen: 1-Wire, FHEM2FEHEM, HM-MOD-UART, LAN, Modbus, MQTT, nanoCUL, RFXtrx433E, SIGNALduino, ser2net
Devices: APC, Eastron, FS20, IT, Homematic, MQTT, PV-(DEYE, EPEVER, FRONIUS), Resol-VBUS, S.USV, TEK603, WMR200, YouLess

fruit

@Creideiki - and any others
This is a very useful module but I have one issue with it - it may be my configuration of course.

I have nut-server on a Pi.
fhem runs on a Cubietruck.
Cubietruck is a nut-client.
The NUT mdule uses the address of the Pi/nut-server

If I reboot the Pi then nut-client on Cubietruck will pick up and reconnect to nut-server shortly after but 34_NUT.pm does not reconnect and causes fhem to hang/block
The only way out seems to be to restart fhem

Any ideas please?
Feel free to follow up in German if you prefer

Creideiki


fruit

No, nothing from a quick look.

I will do some tests over the next few days and see if I can get anything from higher logging levels.

Perhaps it is/was an issue here as there do not seem to be any other similar reports - I think I am not alone in running nut-server on a different machine.
I am sure it was all OK before changing from wheezy Pi to jessie Pi2

Thanks for the reply
Feel free to follow up in German if you prefer

fruit

I have tried again this morning, lots of logs now but nothing to indicate NUT is at fault.

I think the blocking is actually caused by a PRESENCE definition that does not pick up that the Pi is back online
I knew there was was a very good reason I had disabled that some time ago :(
A pity I forgotten when I re-enabled it.
Now deleted so I don't do it again!

Sorry for the false alarm
Have a good Christmas and New Year
Feel free to follow up in German if you prefer

Burny4600

@Creideiki

Hat hier jemand auch schon das Steuern einer USV via FHEM realisiert?
LG Chris

Raspberry Pi 2-5, Bullseye Lite, Bookworm Lite
Schnittstellen: 1-Wire, FHEM2FEHEM, HM-MOD-UART, LAN, Modbus, MQTT, nanoCUL, RFXtrx433E, SIGNALduino, ser2net
Devices: APC, Eastron, FS20, IT, Homematic, MQTT, PV-(DEYE, EPEVER, FRONIUS), Resol-VBUS, S.USV, TEK603, WMR200, YouLess

Creideiki

Ich hatte es mir überlegt... aber da ich selbst keine Anwendung dafür habe, ist es nie über dieses Stadium herausgekommen. Es sollte aber nicht allzu schwer sein, das einzubauen.

Schwierig könnte es nur sein, die USV abzuschalten, an der FHEM hängt. Das gibt ein Timing-Problem.  ;D

Burny4600

Bekomme Fehlermeldungen von Pearl verursacht von NUT.
Wie kann ich herausfinden wo ich den Fehler suchen muss.
Fehlermeldung:
2016.03.13 12:55:33 1: Including /media/hdd/fhem/zeitplaene/zeitplaene.cfg
2016.03.13 12:55:33 1: Including /media/hdd/fhem/mycfg/USV/USV02.cfg
2016.03.13 12:55:34 3: Opening USV1 device localhost:3493
2016.03.13 12:55:34 3: USV1 device opened
2016.03.13 12:55:34 1: PERL WARNING: Use of uninitialized value $VALUE in sprintf at (eval 13) line 1.
2016.03.13 12:55:34 1: PERL WARNING: Use of uninitialized value $VALUE in sprintf at (eval 14) line 1.
2016.03.13 12:55:34 1: PERL WARNING: Use of uninitialized value $VALUE in sprintf at (eval 15) line 1.
2016.03.13 12:55:34 0: Featurelevel: 5.7


Config der USV:
#####################################
###    USV Gerätekonfiguration    ###
#####################################
define USV1 NUT apc1500VA
attr USV1 alias APC Smart-UPS 1500VA
attr USV1 asReadings battery.charge,battery.charge.low,battery.charge.warning,battery.runtime,battery.runtime.low,battery.temperature,input.voltage,ups.model,ups.delay.shutdown,ups.delay.start,ups.load
attr USV1 devStateIcon OL:measure_battery_100@green (DATA-STALE|UNKNOWN-UPS|opened|disconnected):measure_battery_100@red CHRG:measure_battery_100@yellow
attr USV1 disable 0
attr USV1 event-on-change-reading battery.(charge|charge.low|charge.warning|runtime|runtime.low|temperature),input.voltage,ups.(model|delay.shutdown|delay.start|load),Real(battery.runtime|ups.load|power)
attr USV1 pollState 10
attr USV1 pollVal 60
attr USV1 room _RxTx
attr USV1 userReadings Realbattery.runtime:input.voltage {ReadingsVal("USV1","battery.runtime",0)/60}, Realups.load:input.voltage {(ReadingsVal("USV1","ups.load",0)/(20+(1/3)+(1/15))+(17/100))},Realpower:input.voltage {(ReadingsVal("USV1","input.voltage",0))*(ReadingsVal("USV1","Realups.load",0))}
attr USV1 verbose 1

# -----------------------------------------------------------------------------------------------

#####################################
###     USV Anzeigenwerte für     ###
###     Floorplan definieren      ###
#####################################
define USV1_bc readingsProxy USV1:battery.charge
attr USV1_bc alias Batterie Ladung
attr USV1_bc group APC Smart-UPS 1500VA
attr USV1_bc icon measure_battery_100
attr USV1_bc room USV
attr USV1_bc stateFormat state %

define USV1_bcl readingsProxy USV1:battery.charge.low
attr USV1_bcl alias Batterie Ladung - 2. Warnung Begrenzung minimum
attr USV1_bcl group APC Smart-UPS 1500VA
attr USV1_bcl icon measure_battery_25@red
attr USV1_bcl room USV
attr USV1_bcl stateFormat state %

define USV1_bcw readingsProxy USV1:battery.charge.warning
attr USV1_bcw alias Batterie Ladung - 1. Warnung
attr USV1_bcw group APC Smart-UPS 1500VA
attr USV1_bcw icon measure_battery_50@yellow
attr USV1_bcw room USV
attr USV1_bcw stateFormat state %

define USV1_br readingsProxy USV1:battery.runtime
attr USV1_br alias Batterie Laufzeit
attr USV1_br icon time_clock
attr USV1_br room Unsorted
attr USV1_br stateFormat state Sec

define USV1_rbr readingsProxy USV1:Realbattery.runtime
attr USV1_rbr alias Batterie Laufzeit bei Shutdown
attr USV1_rbr group APC Smart-UPS 1500VA,APC Smart-UPS 1500VA
attr USV1_rbr icon time_timer@green
attr USV1_rbr room USV
attr USV1_rbr stateFormat state Min
attr USV1_rbr valueFn {sprintf("%.1f", $VALUE)}

define USV1_brl readingsProxy USV1:battery.runtime.low
attr USV1_brl alias Batterie Laufzeit bei Begrenzung Minimum
attr USV1_brl group APC Smart-UPS 1500VA
attr USV1_brl icon time_timer@red
attr USV1_brl room USV
attr USV1_brl stateFormat state Sec

define USV1_bt readingsProxy USV1:battery.temperature
attr USV1_bt alias Batterie Temperatur
attr USV1_bt group APC Smart-UPS 1500VA
attr USV1_bt icon temp_temperature
attr USV1_bt room USV
attr USV1_bt stateFormat state °C

define USV1_udsh readingsProxy USV1:ups.delay.shutdown
attr USV1_udsh alias Zeit bis zum Shutdown
attr USV1_udsh group APC Smart-UPS 1500VA
attr USV1_udsh icon general_aus_fuer_zeit
attr USV1_udsh room USV
attr USV1_udsh stateFormat state Min

define USV1_udst readingsProxy USV1:ups.delay.start
attr USV1_udst alias Zeit bis zum Wiedereinschalten
attr USV1_udst group APC Smart-UPS 1500VA
attr USV1_udst icon general_an_fuer_zeit
attr USV1_udst room USV
attr USV1_udst stateFormat state Min

define USV1_iv readingsProxy USV1:input.voltage
attr USV1_iv alias Spannung
attr USV1_iv group APC Smart-UPS 1500VA - Netzversorgung
attr USV1_iv icon measure_voltage
attr USV1_iv room USV
attr USV1_iv stateFormat state V

define USV1_ul readingsProxy USV1:ups.load
attr USV1_ul alias Stromaufnahme
attr USV1_ul icon measure_current
attr USV1_ul room Unsorted
attr USV1_ul stateFormat state A

define USV1_rul readingsProxy USV1:Realups.load
attr USV1_rul alias Stromaufnahme
attr USV1_rul group APC Smart-UPS 1500VA - Netzversorgung
attr USV1_rul icon measure_current
attr USV1_rul room USV
attr USV1_rul stateFormat state A
attr USV1_rul valueFn {sprintf("%.2f", $VALUE)}

define USV1_rp readingsProxy USV1:Realpower
attr USV1_rp alias Leistungsaufnahme
attr USV1_rp group APC Smart-UPS 1500VA - Netzversorgung
attr USV1_rp icon measure_power
attr USV1_rp room USV
attr USV1_rp stateFormat state W
attr USV1_rp valueFn {sprintf("%.1f", $VALUE)}
LG Chris

Raspberry Pi 2-5, Bullseye Lite, Bookworm Lite
Schnittstellen: 1-Wire, FHEM2FEHEM, HM-MOD-UART, LAN, Modbus, MQTT, nanoCUL, RFXtrx433E, SIGNALduino, ser2net
Devices: APC, Eastron, FS20, IT, Homematic, MQTT, PV-(DEYE, EPEVER, FRONIUS), Resol-VBUS, S.USV, TEK603, WMR200, YouLess

Creideiki

Zitat von: Burny4600 am 13 März 2016, 13:00:20
Bekomme Fehlermeldungen von Pearl verursacht von NUT.
Wie kann ich herausfinden wo ich den Fehler suchen muss.
Fehlermeldung:
2016.03.13 12:55:34 1: PERL WARNING: Use of uninitialized value $VALUE in sprintf at (eval 13) line 1.


Config der USV:
...
define USV1_rul readingsProxy USV1:Realups.load
attr USV1_rul valueFn {sprintf("%.2f", $VALUE)}
...

Glücklicherweise sind es nur Warnungen, keine Fehlermeldungen. Trotzdem ist das natürlich unschön.

Die Config ist ja gewaltig... da passiert eine Menge, das mit NUT nicht mehr viel zu tun hat. Ich habe oben mal eine der Zeilen rausgeholt, die ich verdächtig finde: Da kommt nämlich ein $VALUE in einer sprintf vor. Warum es aber vorkommen kann, dass $VALUE hier undefiniert ist, sollte vielleicht jemand beantworten, der sich mit valueFn besser auskennt.

gadget

Hallo,

Das NUT Modul funktioniert bei mir einwandfrei auf einem Pi mit per USB angebundener EATON3S. Ich habe aber ein kleines Problem mit einem Benarchrichtigungs-DOIF, vielleicht kann mir jemand auf die Sprünge helfen.



definde di_usv DOIF

([usv_eaton3s] =~ "OB")
({ DebianMail('me@mail.com','FHEM USV Alarm','USV auf Batteriebetrieb.');; })
DOELSEIF
([usv_eaton3s] =~ "OL")
({ DebianMail('me@mail.com','FHEM USV Alarm - OK','USV auf Normalbetrieb.');; })
DOELSEIF
([usv_eaton3s] =~ "disconnected")
({ DebianMail('me@mail.com','FHEM USV Alarm - keine Verbindung','USV Kommunikationsproblem.');; })

attr di_usv initialize cmd_2
attr di_usv wait 0:10:10



Das funktioniert im Normalbetrieb soweit prima, allerdings bekomme ich bei jedem FHEM Neustart eine Mail "USV auf Normalbetrieb" weil beim Start der Status von NUT beim Initialisieren erst kurze Zeit später auf OL CHRG wechselt (wenn die Kommunikation hergestellt ist). Dadurch erzeugt das DOIF einen Statuswechsel.

Ich hatte an irgendwas mit einer zusätzlichen Bedingung wie  ([sysmon:fhemuptime] > 60 gedacht aber ich hab da irgendwie grad einen gedanklichen Knoten im Hirn. Wie habt ihr das gelöst ?


Grüße, gadget

lonzo

Hallo,

ist jetzt nur indirekt eine Frage zum Modul .... aber ich habe jetzt alles soweit am laufen nur mag
er mir die input.voltage nicht ausgeben. Aber upsc liefert die schon nicht

pi@raspberrypi:/etc/nut $ sudo upsc apc750@127.0.0.1:3493
Init SSL without certificate database
battery.charge: 100
battery.charge.low: 10
battery.charge.warning: 50
battery.runtime: 9420
battery.runtime.low: 120
battery.type: PbAc
battery.voltage: 27.3
battery.voltage.nominal: 24.0
device.mfr: American Power Conversion
device.model: Smart-UPS 750
device.serial: AS1241224396
device.type: ups
driver.flag.pollonly: enabled
driver.name: usbhid-ups
driver.parameter.pollfreq: 30
driver.parameter.pollinterval: 2
driver.parameter.port: auto
driver.parameter.productid: 0003
driver.version: 2.7.2
driver.version.data: APC HID 0.95
driver.version.internal: 0.38
ups.beeper.status: disabled
ups.delay.shutdown: 20
ups.firmware: UPS 08.3 / ID=18
ups.mfr: American Power Conversion
ups.mfr.date: 2012/10/12
ups.model: Smart-UPS 750
ups.productid: 0003
ups.serial: AS1241224396
ups.status: OL
ups.timer.reboot: -1
ups.timer.shutdown: -1
ups.vendorid: 051d


Hat jemand eine SMT750I am laufen und bekommt diese Readings?

Oder überseh ich was grobes ;-)


Danke für jeden Tipp

LG
Timo

Christian72D

Meine USV hängt per USB an der Synology, die IP dort ist u.a. auch für den RasPi freigegeben.

Die Sachen am RasPi sind installiert, ich bekomme auch folgende Werte:

upsc ups@192.168.1.11
Init SSL without certificate database
battery.charge: 90
battery.charge.low: 20
battery.runtime: 1558
battery.type: PbAc
device.mfr: EATON
device.model: Eaton 3S 550
device.serial: 000000000
device.type: ups
driver.name: usbhid-ups
driver.parameter.pollfreq: 30
driver.parameter.pollinterval: 5
driver.parameter.port: auto
driver.version: DSM6-1-14872-161104
driver.version.data: MGE HID 1.33
driver.version.internal: 0.38
input.transfer.high: 264
input.transfer.low: 184
outlet.1.desc: PowerShare Outlet 1
outlet.1.id: 2
outlet.1.status: on
outlet.1.switchable: yes
outlet.2.desc: PowerShare Outlet 2
outlet.2.id: 3
outlet.2.status: off
outlet.2.switchable: yes
outlet.desc: Main Outlet
outlet.id: 1
outlet.switchable: no
output.frequency.nominal: 50
output.voltage: 230.0
output.voltage.nominal: 230
ups.beeper.status: enabled
ups.delay.shutdown: 20
ups.delay.start: 30
ups.firmware: 02
ups.load: 12
ups.mfr: EATON
ups.model: Eaton 3S 550
ups.power.nominal: 550
ups.productid: ffff
ups.serial: 000000000
ups.status: OL CHRG
ups.timer.shutdown: 0
ups.timer.start: 0
ups.vendorid: 0463


Wenn ich die jetzt mit
define USV NUT usbhid-ups localhost einbinden will findet fhem sie nicht, muß ich nicht die IP eingeben?