FHEM Forum

FHEM => Automatisierung => DOIF => Thema gestartet von: accessburn am 08 Mai 2017, 09:35:02

Titel: Sysmon USB-Stick voll
Beitrag von: accessburn am 08 Mai 2017, 09:35:02
Hallo,
mein Sysmon gibt mir folgenden Status über den USB-Stick aus:
ZitatUSB-Stick:    Total: 3700 MB, Used: 3171 MB, 91 %, Available: 323 MB at /media/usbstick

Wie müsste ein DOIF aussehen das auf die 91% anspricht?
Ich würde gerne ein Push setzen auf >90

Der Sysmon-Teil sieht so aus:
attr wl_sysmon_fs_usb1 group RPi
attr wl_sysmon_fs_usb1 label "USB1 Total: $data{max1}, Min: $data{min2}, Max: $data{max2}, Aktuell: $data{currval2}"
attr wl_sysmon_fs_usb1 room Raspberry



So weit bin ich aktuell, aber wie komm ich genau an die %-Zahl heran?

define stick_voll DOIF ([usb-stick] < 90) (set Telegram message Der scheiss USB-Stick ist voll *g*)



Titel: Antw:Sysmon USB-Stick voll
Beitrag von: Per am 08 Mai 2017, 12:02:23
Zitat von: accessburn am 08 Mai 2017, 09:35:02
Hallo,
mein Sysmon gibt mir folgenden Status über den USB-Stick aus:
ZitatUSB-Stick:    Total: 3700 MB, Used: 3171 MB, 91 %, Available: 323 MB at /media/usbstick
Ist das der Text, der im Eventlog auftaucht oder nur, wenn du Sysmon aktiv aufrufst?
Titel: Antw:Sysmon USB-Stick voll
Beitrag von: accessburn am 08 Mai 2017, 12:04:21
Das ist direkt die Ausgabe.
In der cfg hab ich das Label so definiert:
define wl_sysmon_fs_usb1 SVG FileLog_sysmon:SM_FS_usb1:CURRENT
attr wl_sysmon_fs_usb1 group RPi
attr wl_sysmon_fs_usb1 label "USB1 Total: $data{max1}, Min: $data{min2}, Max: $data{max2}, Aktuell: $data{currval2}"
Titel: Antw:Sysmon USB-Stick voll
Beitrag von: Ellert am 08 Mai 2017, 13:26:09
Zitat von: accessburn am 08 Mai 2017, 09:35:02
Hallo,
mein Sysmon gibt mir folgenden Status über den USB-Stick aus:
Wie müsste ein DOIF aussehen das auf die 91% anspricht?
Ich würde gerne ein Push setzen auf >90

Der Sysmon-Teil sieht so aus:
attr wl_sysmon_fs_usb1 group RPi
attr wl_sysmon_fs_usb1 label "USB1 Total: $data{max1}, Min: $data{min2}, Max: $data{max2}, Aktuell: $data{currval2}"
attr wl_sysmon_fs_usb1 room Raspberry



So weit bin ich aktuell, aber wie komm ich genau an die %-Zahl heran?

define stick_voll DOIF ([usb-stick] < 90) (set Telegram message Der scheiss USB-Stick ist voll *g*)


Der Filter könnte so aussehen "(\d+) %"

Die genaue Syntax ist hier beschrieben: https://fhem.de/commandref_DE.html#DOIF_Filtern_nach_Zahlen

Titel: Antw:Sysmon USB-Stick voll
Beitrag von: accessburn am 08 Mai 2017, 13:39:12
define stick_voll DOIF ([sysmon:fs_usb1:"(\d+) %"] < 90) (set Telegram message Der scheiss USB-Stick ist voll *g*)
attr stick_voll wait 86400


Macht das sinn? Auch das wait?
Titel: Antw:Sysmon USB-Stick voll
Beitrag von: gloob am 08 Mai 2017, 13:59:29
Wenn du die Nachricht erst 24 Stunden später bekommen möchte, dann macht es Sinn.


define stick_voll DOIF ([sysmon:fs_usb1:"(\d+) %"] > 90) (set Telegram message Der scheiss USB-Stick ist voll *g*)
attr stick_voll cmdpause 86400
attr stick_voll do always


Würde allerdings mehr Sinn machen, wenn man die Nachricht sofort haben möchte, jedoch frühstens 24 Stunden später noch einmal und auch nur wenn der Stick voller ist als 90%.
Titel: Antw:Sysmon USB-Stick voll
Beitrag von: accessburn am 08 Mai 2017, 14:02:06
Achso, wait führt nicht erst das nächste mal in x Sekunden aus, sondern das ganze erst x Sekunden nach Zutreffen der Bedingung.
Okay, das wäre doof. Dann mach ich das lieber so wie du das sagst :-)

Danke für die Hilfe, wieder was gelernt.
Titel: Antw:Sysmon USB-Stick voll
Beitrag von: gloob am 08 Mai 2017, 14:03:09
Hier gibt es ein gutes Beispiel für DOIF

https://fhem.de/commandref_DE.html#DOIF_cmdpause (https://fhem.de/commandref_DE.html#DOIF_cmdpause)
Titel: Antw:Sysmon USB-Stick voll
Beitrag von: accessburn am 08 Mai 2017, 14:13:44
Also trotz reboot, keine aktion. Kann ich mir anzeigen lassen was der Filter erkennt zur Kontrolle?
Zitatnternals:
   DEF        ([sysmon:fs_usb1:"(\d+) %"] > 90) (set Telegram message Der scheiss USB-Stick ist voll *g*)
   NAME       stick_voll
   NR         464
   NTFY_ORDER 50-stick_voll
   STATE      initialize
   TYPE       DOIF
   Readings:
     2017-05-08 14:11:42   Device          sysmon
     2017-05-08 14:11:42   e_sysmon_fs_usb1 Total: 3700 MB, Used: 3171 MB, 91 %, Available: 323 MB at /media/usbstick
     2017-05-08 14:07:49   mode            enable
     2017-05-08 14:06:02   state           initialize
   Condition:
     0          ReadingValDoIf($hash,'sysmon','fs_usb1','','(\d+) %') > 90
   Devices:
     0           sysmon
     all         sysmon
   Do:
     0:
       0          set Telegram message Der scheiss USB-Stick ist voll *g*
     1:
   Helper:
     event      cpu_temp_avg: 47.0,cpu_temp: 46.54,ram: Total: 862.50 MB, Used: 199.28 MB, 23.11 %, Free: 663.22 MB,eth0_diff: RX: 0.05 MB, TX: 0.08 MB, Total: 0.13 MB,loadavg: 0.10 0.15 0.14
     globalinit 1
     last_timer 0
     sleeptimer -1
     timerdev   sysmon
     timerevent cpu_temp_avg: 47.0,cpu_temp: 46.54,ram: Total: 862.50 MB, Used: 199.28 MB, 23.11 %, Free: 663.22 MB,eth0_diff: RX: 0.05 MB, TX: 0.08 MB, Total: 0.13 MB,loadavg: 0.10 0.15 0.14
     triggerDev sysmon
     timerevents:
       cpu_temp_avg: 47.0
       cpu_temp: 46.54
       ram: Total: 862.50 MB, Used: 199.28 MB, 23.11 %, Free: 663.22 MB
       eth0_diff: RX: 0.05 MB, TX: 0.08 MB, Total: 0.13 MB
       loadavg: 0.10 0.15 0.14
     timereventsState:
       cpu_temp_avg: 47.0
       cpu_temp: 46.54
       ram: Total: 862.50 MB, Used: 199.28 MB, 23.11 %, Free: 663.22 MB
       eth0_diff: RX: 0.05 MB, TX: 0.08 MB, Total: 0.13 MB
       loadavg: 0.10 0.15 0.14
     triggerEvents:
       cpu_temp_avg: 47.0
       cpu_temp: 46.54
       ram: Total: 862.50 MB, Used: 199.28 MB, 23.11 %, Free: 663.22 MB
       eth0_diff: RX: 0.05 MB, TX: 0.08 MB, Total: 0.13 MB
       loadavg: 0.10 0.15 0.14
     triggerEventsState:
       cpu_temp_avg: 47.0
       cpu_temp: 46.54
       ram: Total: 862.50 MB, Used: 199.28 MB, 23.11 %, Free: 663.22 MB
       eth0_diff: RX: 0.05 MB, TX: 0.08 MB, Total: 0.13 MB
       loadavg: 0.10 0.15 0.14
   Internals:
   Itimer:
   Readings:
     0           sysmon:fs_usb1
     all         sysmon:fs_usb1
   Regexp:
     0:
     All:
   State:
     State:
   Trigger:
Attributes:
   cmdpause   86400
   do         always


EDIT:
Habe versucht in den Text das Reading in telegram ausgeben zu lassen. Ohne den Filter kommt es an, mit dem Filter wird der rohe Text ausgegeben: [sysmon:fs_usb1:"(\d+) %"]
Titel: Antw:Sysmon USB-Stick voll
Beitrag von: Ellert am 08 Mai 2017, 17:32:45
Für die Befehlszeile
{ReadingsVal("sysmon","fs_usb1",0) =~ '(\d+) %';;return $1}

"" Anführungszeichen funktionieren bei mir in der Befehlszeile nicht, eigentlich sollten sie.
Titel: Antw:Sysmon USB-Stick voll
Beitrag von: Damian am 08 Mai 2017, 18:46:27
ZitatAlso trotz reboot, keine aktion. Kann ich mir anzeigen lassen was der Filter erkennt zur Kontrolle?

Arbeitest du denn mit der aktuellen Version von DOIF?
Titel: Antw:Sysmon USB-Stick voll
Beitrag von: accessburn am 08 Mai 2017, 21:26:09
Zitat von: Damian am 08 Mai 2017, 18:46:27
Arbeitest du denn mit der aktuellen Version von DOIF?

Aber sowas von  :P
Titel: Antw:Sysmon USB-Stick voll
Beitrag von: Damian am 08 Mai 2017, 21:51:36
Iternals:
   DEF        ([test_d:state:"(\d+) %"] > 90) (set bla [test_d:state:"(\d+) %"])
   NAME       di_bla
   NR         497
   NTFY_ORDER 50-di_bla
   STATE      cmd_1
   TYPE       DOIF
   Readings:
     2017-05-08 21:48:38   Device          test_d
     2017-05-08 21:48:38   cmd             1
     2017-05-08 21:48:38   cmd_event       test_d
     2017-05-08 21:48:38   cmd_nr          1
     2017-05-08 21:48:38   e_test_d_state  Total: 3700 MB, Used: 3171 MB, 91 %, Available: 323 MB at /media/usbstick
     2017-05-08 21:48:38   error           set bla 91: Please define bla first
     2017-05-08 21:48:38   state           cmd_1
 


und

Internals:
   NAME       test_d
   NR         480
   STATE      Total: 3700 MB, Used: 3171 MB, 91 %, Available: 323 MB at /media/usbstick
   TYPE       dummy



ausgelöst mit trigger test_d

funktioniert wie definiert.
Titel: Antw:Sysmon USB-Stick voll
Beitrag von: accessburn am 09 Mai 2017, 12:47:02
Jedoch die eigentliche Funktion überhaupt nicht, er spricht nicht an und löst keine Message aus :'(
Titel: Antw:Sysmon USB-Stick voll
Beitrag von: Damian am 09 Mai 2017, 13:52:28
Zitat von: accessburn am 09 Mai 2017, 12:47:02
Jedoch die eigentliche Funktion überhaupt nicht, er spricht nicht an und löst keine Message aus :'(
Dann gibt es keine Events dazu.