Hallo zusammen,
ich besitze seit kurzem eine GUDE Expert PDU welche ich via SNMP über das SYSSTAT Modul abfrage.
Die Rückgabewerte pro Schaltausgang werden mit 0 = off und 1 = on zurückgegeben.
Nun würde ich diese Werte gerne mit on/off darstellen.
EventMap tut hier genau was es soll.
Allerdings kann die Power pro Schaltausgang ja auch 0 oder 1 Watt sein (Rückgabewert ohne Einheit), damit würde mir das Eventmap auch diese Werte ersetzen und das Logging/Graphen unbrauchbar machen.
Wie kann ich das EventMap nur auf das Reading für den Schaltausgang anwenden (und ggf. ein weiteres für die Power da manchmal einfach -1 statt 0 zurückgegeben wird).
Anbei noch ein List vom Port_1 der PDU:
Internals:
CFGFN
DEF 5 5 192.168.200.3
FUUID 611237f0-f33f-98e1-7a8b-3ae965bc5e615cca
HAS_Net::SNMP 1
HOST 192.168.200.3
INTERVAL 60
LAST_DISCONNECT 2021-08-10 10:25:30
NAME Gude_Port_1
NR 3373761
NTFY_ORDER 50-Gude_Port_1
PARSED 0
PARTIAL
SENT 1
STARTED 0
STATE noSuchObject noSuchObject noSuchObject
SystemDescription Expert Power Control 8226-1
SystemName sysName
TYPE SYSSTAT
USE_SNMP 1
interval_fs
snmpCommunity private
snmpVersion 2
QUEUE:
READINGS:
2021-08-10 10:25:30 connection disconnected
2021-08-11 20:25:46 load noSuchObject
2021-08-11 20:25:46 port_power 0 W
2021-08-11 20:25:46 port_state 1
2021-08-11 20:25:46 raw_port_power 0
2021-08-11 20:25:46 raw_port_state 1
2021-08-11 20:25:46 state noSuchObject noSuchObject noSuchObject
helper:
Attributes:
eventMap -1:0
mibs .1.3.6.1.4.1.28507.58.1.3.1.2.1.3.1:raw_port_state
.1.3.6.1.4.1.28507.58.1.5.5.2.1.4.1:raw_port_power
noSSH 1
room 06_Test
snmp 1
snmpCommunity private
snmpVersion 2
suppressReading load,state
userReadings port_state:raw_port_state.* { ReadingsVal($name,"raw_port_state",0)},
port_power:raw_port_power.* { ReadingsVal($name,"raw_port_power",0)." W"}
Vielen Dank !
Hi,
Sei vorsichtig mit eventmap...
Wenn Du einfach dein userreadings entsprechend gestaltest? Statt einfach nur readingsval , dies hier:
ReadingsVal($name,"raw_port_state",0) ? 'on':'off'
Oder exakter
ReadingsNum($name,"raw_port_state",0) == 1 ? 'on':'off'
Beschreibung siehe perldoc ternärer Operator.
In der Art geht es auch für dein Power Reading.
Gruß Otto
Danke Otto für den Schubs in eine bessere Richtung.
Für das Power Reading schaue ich mir die entsprechenden Stellen in der Perldoc mal an.
Nach Ottos Hinweis habe ich es nun nach Vorlage mit den Userreadings hinbekommen.
port_state:raw_port_state.* { ReadingsNum($name,"raw_port_state",0) == 1 ? 'on':'off'},
port_power:raw_port_power.* { my $val = ReadingsNum($name,"raw_port_power",0);($val == -1) ? '0' : $val;}
Vielen Dank !