FHEM Forum

FHEM => Codeschnipsel => Thema gestartet von: dev0 am 08 September 2015, 11:11:05

Titel: FHEM grep
Beitrag von: dev0 am 08 September 2015, 11:11:05
define grep cmdalias grep .* AS {qx(grep -i \'$EVENT\' *.cfg FHEM/99*.pm)}

z.b. grep event-min-interval

fhem.cfg:attr BA_SENSOR_TEMP_HUM event-min-interval voltage:14400,temperature:900,humidity:900
myHeizung.cfg:attr ST_HEIZUNG event-min-interval measured-temp:900,desired-temp:900,actuator:900,batt.*:14400,Activity:86400
mySysinfo.cfg:attr SystemMem event-min-interval mem.*:3600
FHEM/99_myMotionUtils.pm:fhem("attr $mdName event-min-interval .*:3600");


Simpel aber hilfreich, wenn gerade keine Console offen ist...
Titel: Antw:FHEM grep
Beitrag von: justme1968 am 08 September 2015, 12:50:17
und wenn einem die aktuellen werte der vorhanden devices reichen geht es auch mit einem lis.t z.b.:

  list .* event-min-interval

gruss
  andre
Titel: Antw:FHEM grep
Beitrag von: dev0 am 08 September 2015, 13:07:47
Hi Andre, es gibt bestimmt viele Wege...
...ich suchte gerade eine Sub, die von einem Notify aufgerufen wird. Dabei bin in eher zufällig über den cmdalias Befehl gestolpert, den ich für temporäre Devices eingesetzt hatte. Da kam mir diese Idee.

/Uli
Titel: Antw:FHEM grep
Beitrag von: justme1968 am 08 September 2015, 13:18:00
das war auch nicht als kritik gedacht sondern nur als zusätzliche vatiante die viele vermutlich nicht kennen.

deine version kann nach allem möglichen suchen. das list nur nach internals, readings und attributen. dafür aber im web interface anklickbar.

mit cmdalias kann man noch ganz andere schöne sachen machen.

gruss
  andre
Titel: Antw:FHEM grep
Beitrag von: dev0 am 08 September 2015, 14:02:56
Mich hatte gewundert, dass bei "meiner Variante" die Devices anclickbar sind. Versuche selbst etwas mit html Tags auf der webkonsole auszugeben sind bisher gescheitert, da sie nur angezeigt und nicht angewendet werden.
Titel: Antw:FHEM grep
Beitrag von: justme1968 am 08 September 2015, 15:56:27
du hast recht. ich hatte das anklickbar machen von device namen damals so eingebaut das es generell ging und nicht nur bei list funktioniert.

wenn du deinen text in <html>...</html> einschließt werden html tags interpretiert statt angezeigt.

gruss
  andre
Titel: Antw:FHEM grep
Beitrag von: Brockmann am 08 September 2015, 16:23:05
Danke für den Codeschnipsel. Gute Idee. Habe ich direkt mal eingefügt. Kann man bestimmt immer mal gut gebrauchen.
Ja, cmdalias ist eine feine Sache. Für mich eines der meistunterschätzten Feature von FHEM.
Titel: Antw:FHEM grep
Beitrag von: dev0 am 09 September 2015, 13:08:45
Zitat von: justme1968 am 08 September 2015, 15:56:27
wenn du deinen text in <html>...</html> einschließt werden html tags interpretiert
Daran lag es nicht. Wenn hinter dem abschließenden "</html>" weiterer Text (in der gleichen Zeile?) existiert, dann werden die html Tags nicht interpretiert.

Btw: Hast Du (oder auch alle anderen) noch weitere Ideen, wie man cmdalias pfiffig einsetzen kann?
Titel: Antw:FHEM grep
Beitrag von: justme1968 am 09 September 2015, 13:13:44
der komplette text muss von anfang bis ende ein mal in ein <html> tag eingeschlossen sein.

man kann damit z.b. einem device neue set kommandos verpassen die sich auch auf das devStateIcon legen lassen.  z.b. um das ein oder aus schalten per wol oder ssh nachzurüsten wenn das device das nicht von sich aus kann.

gruss
  andre
Titel: Antw:FHEM grep
Beitrag von: dev0 am 09 September 2015, 16:05:38
Zitat von: justme1968 am 09 September 2015, 13:13:44
man kann damit z.b. einem device neue set kommandos verpassen die sich auch auf das devStateIcon legen lassen
Wau, gute Idee! Wäre ich wahrscheinlich nicht drauf gekommen.
<offtopic>Vielleicht auch deshalb, weil ich FHEMWEB nur noch zum Administrieren einsetze, da andere Frontends (bei mir smartVISU) einfach attraktiver zur Visualisierung sind. Eigentlich schade, wenn ich mir vorstelle, dass alle Entwickler an einem gemeinsamen (Frontend-)Strang ziehen würden, würde unterm Strich mehr raus kommen. Just my thoughts...</offtopic>

/Uli
Titel: Antw:FHEM grep
Beitrag von: justme1968 am 09 September 2015, 16:08:34
ebenso off-topic: mit fhemweb ist sehr sehr viel mehr möglich als auf den ersten blick sichtbar ist. wenn man hier gemeinsam an backend/frontend/design entwickeln würde könnte man sehr viel was die neunen frintends wie smartvisu und ftui ermöglichen auch mit fhemweb machen.
Titel: Antw:FHEM grep
Beitrag von: P.A.Trick am 03 September 2016, 02:42:53
Zitat von: dev0 am 08 September 2015, 11:11:05
define grep cmdalias grep .* AS {qx(grep -i \'$EVENT\' *.cfg FHEM/99*.pm)}

z.b. grep event-min-interval

fhem.cfg:attr BA_SENSOR_TEMP_HUM event-min-interval voltage:14400,temperature:900,humidity:900
myHeizung.cfg:attr ST_HEIZUNG event-min-interval measured-temp:900,desired-temp:900,actuator:900,batt.*:14400,Activity:86400
mySysinfo.cfg:attr SystemMem event-min-interval mem.*:3600
FHEM/99_myMotionUtils.pm:fhem("attr $mdName event-min-interval .*:3600");


Simpel aber hilfreich, wenn gerade keine Console offen ist...

Habe den grep ins Wiki übernommen!
Titel: Antw:FHEM grep
Beitrag von: frank am 03 September 2016, 21:01:14
könnte man eventuell mit dem grep auch die zeile herausfinden?
danke, nicht mehr nötig.  :)

gruss frank
Titel: Antw:FHEM grep
Beitrag von: Carsten K. am 04 November 2022, 10:00:59
Hallo,
ich verwende "grep" recht häufig, allerdings habe ich oft Treffer aus fhem.cfg. D.h., ich muss erst in der fhem.cfg nachschauen, zu welchem Device es gehört.
Ich habe einen Weg gefunden, der mir wie gewohnt die Treffer anzeigt, jedoch zusätzlich in fhem.cfg ÜBER dem Treffer das dazugehörige "define".
Über den Device-Namen aus der "define"-Zeile kann ich dann direkt den Code zu meiner Suche öffnen.

Ich habe bei mir das c_grep Device überschrieben, aber man kann selbstverständlich auch ein neues CMDALIAS anlegen...

defmod c_grep cmdalias grep .* AS {qx(grep -inE \'$EVENT|define\' *.cfg FHEM/99*.pm|grep -i -B 1 \'$EVENT\')}