Guten Morgen Zusammen,
könnte mir mal jemand kurz auf die Sprünge helfen..?
Ich nutze das SYSMON Modul um Daten meiner Syno DS716+ii in FHEM zu sehen.
Hier gibt es ein reading "ram" welches mehrere werte enthält...
ram
Total: 7903.75 MB, Used: 693.58 MB, 8.78 %, Free: 1674.68 MB
2019-05-11 10:44:50
Ich möchte gerne auf Used > 2000 einen Trigger haben der mir via Telegram Bot eine message schickt.
Brauche ich hier tatsächlich ein userReading, oder kann ich das mit DOIF anders lösen..?
Danke für eure Antworten.
Du kannst auf das Reading ram triggern und mit Filteroption den Wert hinter used: abfragen: https://fhem.de/commandref_DE.html#DOIF_Filtern_nach_Zahlen
Hm, also entweder habe ich was an der ComandRef falsch verstanden, oder der Wert ist vom SYSMON Modul her nicht Ok...
Ein list:
Internals:
CFGFN
DEF ([DS716:ram|Used:d0] > 705) (msg push @rr_Michael Ram Auslastung angestiegen Neustart von FHEM ausführen)
FUUID 5cd68542-f33f-68f5-bfa3-bc9ccd20f06eafb6
MODEL FHEM
NAME RAMmsgAdjust
NR 270
NTFY_ORDER 50-RAMmsgAdjust
STATE cmd_2
TYPE DOIF
VERSION 19303 2019-05-01 08:47:16
Helper:
DBLOG:
cmd:
DbLog:
TIME 1557566932.13008
VALUE 2
cmd_event:
DbLog:
TIME 1557566932.13008
VALUE DS716
cmd_nr:
DbLog:
TIME 1557566932.13008
VALUE 2
mode:
DbLog:
TIME 1557566912.94278
VALUE enabled
state:
DbLog:
TIME 1557566932.13008
VALUE cmd_2
warning:
DbLog:
TIME 1557566993.21775
VALUE condition c01
READINGS:
2019-05-11 11:29:53 Device DS716
2019-05-11 11:28:52 cmd 2
2019-05-11 11:28:52 cmd_event DS716
2019-05-11 11:28:52 cmd_nr 2
2019-05-11 11:28:32 mode enabled
2019-05-11 11:28:52 state cmd_2
2019-05-11 11:29:53 warning condition c01: Argument "" isn't numeric in numeric gt (>)
Regex:
accu:
attr:
cmdState:
wait:
waitdel:
condition:
0 ::ReadingValDoIf($hash,'DS716','ram|Used','','d0') > 705
devices:
0 DS716
all DS716
do:
0:
0 msg push @rr_Michael Ram Auslastung angestiegen Neustart von FHEM ausführen
1:
helper:
event ram: Total: 7903.75 MB, Used: 718.85 MB, 9.10 %, Free: 1625.81 MB
globalinit 1
last_timer 0
sleeptimer -1
timerdev DS716
timerevent ram: Total: 7903.75 MB, Used: 718.85 MB, 9.10 %, Free: 1625.81 MB
triggerDev DS716
DOIF_eventas:
cmd_nr: 2
cmd: 2
cmd_event: DS716
state: cmd_2
bm:
DOIF_Get:
cnt 2
dmx -1000
dtot 0
dtotcnt 0
mTS 11.05. 11:29:20
max 1.50203704833984e-05
tot 3.00407409667969e-05
mAr:
HASH(0x9098b58)
RAMmsgAdjust
?
DOIF_Notify:
cnt 206
dmx -1000
dtot 0
dtotcnt 0
mTS 11.05. 11:28:52
max 0.0148329734802246
tot 0.0300753116607666
mAr:
HASH(0x9098b58)
HASH(0x450fc68)
DOIF_Set:
cnt 8
dmx -1000
dtot 0
dtotcnt 0
mTS 11.05. 11:30:13
max 9.01222229003906e-05
tot 0.000542402267456055
mAr:
HASH(0x9098b58)
RAMmsgAdjust
?
timerevents:
ram: Total: 7903.75 MB, Used: 718.85 MB, 9.10 %, Free: 1625.81 MB
timereventsState:
ram: Total: 7903.75 MB, Used: 718.85 MB, 9.10 %, Free: 1625.81 MB
triggerEvents:
ram: Total: 7903.75 MB, Used: 718.85 MB, 9.10 %, Free: 1625.81 MB
triggerEventsState:
ram: Total: 7903.75 MB, Used: 718.85 MB, 9.10 %, Free: 1625.81 MB
internals:
itimer:
readings:
0 DS716:ram|Used
all DS716:ram|Used
trigger:
uiState:
uiTable:
Attributes:
room 99-Controller
aus dem Log von FHEM
2019.05.11 11:31:52 3: eval: RAMmsgAdjust: warning in condition c01
2019.05.11 11:31:52 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at (eval 12656) line 1.
2019.05.11 11:30:52 3: eval: RAMmsgAdjust: warning in condition c01
2019.05.11 11:30:52 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at (eval 12495) line 1.
2019.05.11 11:29:53 3: eval: RAMmsgAdjust: warning in condition c01
2019.05.11 11:29:53 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at (eval 12331) line 1.
2019.05.11 11:28:52 3: eval: RAMmsgAdjust: warning in condition c01
2019.05.11 11:28:52 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at (eval 12162) line 1.
2019.05.11 11:27:52 3: eval: RAMmsgAdjust: warning in condition c01
2019.05.11 11:27:52 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at (eval 11996) line 1.
2019.05.11 11:26:52 3: eval: RAMmsgAdjust: warning in condition c01
2019.05.11 11:26:52 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at (eval 11847) line 1.
2019.05.11 11:25:52 3: eval: RAMmsgAdjust: warning in condition c01
2019.05.11 11:25:52 1: PERL WARNING: Argument "" isn't numeric in numeric gt (>) at (eval 11672) line 1.
Was mache ich denn jetzt schon wieder falsch...?
([DS716:ram:"used: (\d+)"] > 705)
Och mensch - konnte man darauf kommen..?
Ein Regex problem gibt es aber noch..
RAMmsgAdjust DOIF: unknown expression format: (\d+)"
kommt im Popup..
Ich hab es jetzt am laufen - Used statt used - wie blind kann man sein..?
nochmal ein list:
Internals:
DEF ([DS716:ram:"Used: (\d+)"] > 2000) (msg push @rr_Michael Ram Auslastung angestiegen Neustart von FHEM ausführen)
DOELSEIF ([$SELF:cmd] eq "1" and [Eichenheim_Bot:msgText] eq "restart") (shutdown restart)
DOELSE()
FUUID 5cd68542-f33f-68f5-bfa3-bc9ccd20f06eafb6
MODEL FHEM
NAME RAMmsgAdjust
NR 202
NTFY_ORDER 50-RAMmsgAdjust
STATE cmd_3
TYPE DOIF
VERSION 19303 2019-05-01 08:47:16
Helper:
DBLOG:
cmd:
DbLog:
TIME 1557586503.44506
VALUE 3
cmd_event:
DbLog:
TIME 1557586503.44506
VALUE DS716
cmd_nr:
DbLog:
TIME 1557586503.44506
VALUE 3
mode:
DbLog:
TIME 1557586483.28269
VALUE enabled
state:
DbLog:
TIME 1557586503.44506
VALUE cmd_3
READINGS:
2019-05-11 17:09:03 Device DS716
2019-05-11 16:55:03 cmd 3
2019-05-11 16:55:03 cmd_event DS716
2019-05-11 16:55:03 cmd_nr 3
2019-05-11 17:09:03 e_DS716_ram Total: 7903.75 MB, Used: 687.65 MB, 8.70 %, Free: 1637.24 MB
2019-05-11 16:54:43 mode enabled
2019-05-11 16:55:03 state cmd_3
Regex:
accu:
attr:
cmdState:
wait:
waitdel:
condition:
0 ::ReadingValDoIf($hash,'DS716','ram','','Used: (\d+)') > 2000
1 ::ReadingValDoIf($hash,'RAMmsgAdjust','cmd') eq "1" and ::ReadingValDoIf($hash,'Eichenheim_Bot','msgText') eq "restart"
devices:
0 DS716
1 RAMmsgAdjust Eichenheim_Bot
all DS716 RAMmsgAdjust Eichenheim_Bot
do:
0:
0 msg push @rr_Michael Ram Auslastung angestiegen Neustart von FHEM ausführen
1:
0 shutdown restart
2:
0
helper:
event ram: Total: 7903.75 MB, Used: 687.65 MB, 8.70 %, Free: 1637.24 MB
globalinit 1
last_timer 0
sleeptimer -1
timerdev DS716
timerevent ram: Total: 7903.75 MB, Used: 687.65 MB, 8.70 %, Free: 1637.24 MB
triggerDev DS716
DOIF_eventas:
cmd_nr: 3
cmd: 3
cmd_event: DS716
state: cmd_3
bm:
DOIF_Get:
cnt 1
dmx -1000
dtot 0
dtotcnt 0
mTS 11.05. 16:57:52
max 1.50203704833984e-05
tot 1.50203704833984e-05
mAr:
HASH(0x90ef798)
RAMmsgAdjust
?
DOIF_Notify:
cnt 1549
dmx -1000
dtot 0
dtotcnt 0
mTS 11.05. 16:55:03
max 0.00888991355895996
tot 0.0915963649749756
mAr:
HASH(0x90ef798)
HASH(0x455a208)
DOIF_Set:
cnt 5
dmx -1000
dtot 0
dtotcnt 0
mTS 11.05. 16:57:52
max 6.79492950439453e-05
tot 0.000266790390014648
mAr:
HASH(0x90ef798)
RAMmsgAdjust
?
timerevents:
ram: Total: 7903.75 MB, Used: 687.65 MB, 8.70 %, Free: 1637.24 MB
timereventsState:
ram: Total: 7903.75 MB, Used: 687.65 MB, 8.70 %, Free: 1637.24 MB
triggerEvents:
ram: Total: 7903.75 MB, Used: 687.65 MB, 8.70 %, Free: 1637.24 MB
triggerEventsState:
ram: Total: 7903.75 MB, Used: 687.65 MB, 8.70 %, Free: 1637.24 MB
internals:
itimer:
readings:
0 DS716:ram
1 RAMmsgAdjust:cmd Eichenheim_Bot:msgText
all DS716:ram RAMmsgAdjust:cmd Eichenheim_Bot:msgText
trigger:
uiState:
uiTable:
Attributes:
group msg-adjust
room 97-Helper,99-Controller
Einen schönheitsfehler habe ich noch - ich kann ja jetzt via Telegram FHEM neustarten, funktioniert auch prächtig...
Toll wäre aber das bevor der shutdown ausgeführt wird geprüft werden würde auf "structural changes" also das rote fragezeichen.
Noch toller wäre wenn dann der Inhalt des popups via Telegram gesendet werden würde so könnte man sogar ein save absetzen.
In der regel habe ich aber einen gespeicherten Zustand und frage mich gerade ob ich das wirklich brauche..
Hm, das ganze funktioniert wie gewünscht -
einziger haken scheint zu sein, dass das SYSMON Modul die Infomationen der DS nur abfragt wenn FHEM auf einem Browser aktiv ist...
Bei 2GB wird nicht gesendet, es wird nur gesendet wenn > 2GB und ich einen FHEM raum im Browser öffne, es muss aber noch nichtmal der Controller - Room sein.