Nützliche aliase

Begonnen von P.A.Trick, 13 Oktober 2015, 19:36:13

Vorheriges Thema - Nächstes Thema

uniqueck

Ich bin gerade am probieren, wie ich ein cmdalias für pushnotifier bauen kann.


define c_msgconni cmdalias msgconni .* AS set pushMessageConni message 'FHEM' '$EVENT'


Allerdings weiß ich nicht recht, wie ich es machen soll, dass ich auch beim alias den Title der Nachricht mitgeben kann.
Kann mir da jemand weiterhelfen?

Ein ähnliches cmdalias unter say habe ich gefunden, aber das entspricht hier dem Part $EVENT.

Gruß uniqueck

igami

Habe mir eben noch ein cmdalias gebaut um bestimmte Zeilen aus dem Log zu entfernen

define c_wipelog cmdalias wipelog .+ AS {qx(sed -r '/.*$EVENT.*/d' $currlogfile > $currlogfile.tmp && cat $currlogfile.tmp > $currlogfile && rm $currlogfile.tmp);; Log 1, "Logfile um Zeilen mit \"$EVENT\" bereinigt.";;}

Noch etwas unschön, aber es funktioniert.

Grüße
igami
Pi3 mit fhem.cfg + DbLog/logProxy
Komm vorbei zum FHEM Treffen im Kreis Gütersloh! Das nächste Mal im April 2020.

MAINTAINER: archetype, LuftdatenInfo, monitoring, msgDialog, Nmap, powerMap
ToDo: AVScene, FluxLED

betateilchen

Um die uptime der Hardwareplattform (!) auf der fhem läuft, in fhem anzuzeigen, nutze ich folgenden cmdalias:

define alias_uptime cmdalias up AS {my @a = split(/,/,qx(uptime));; @a = split(/up /,$a[0]);;return $a[1]}
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

justme1968

falls man man den überblick verliert auf welchem fhem rechner man gerade eingeloggt ist: define hostname cmdalias hostname AS {(split('\.', qx(hostname)))[0]}

gruss
  andre
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

P.A.Trick

Zitat von: justme1968 am 03 Juni 2016, 14:44:52
falls man man den überblick verliert auf welchem fhem rechner man gerade eingeloggt ist: define hostname cmdalias hostname AS {(split('\.', qx(hostname)))[0]}

gruss
  andre

Cool! Habe ich ins Wiki übernommen!
Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn

betateilchen

attr global title {(split('\.', qx(hostname)))[0]}

Dann sieht man den Hostname sogar ständig im Browser, ohne ihn abfragen zu müssen ;)
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

P.A.Trick

Zitat von: betateilchen am 03 Juni 2016, 19:18:27
attr global title {(split('\.', qx(hostname)))[0]}

Dann sieht man den Hostname sogar ständig im Browser, ohne ihn abfragen zu müssen ;)

Stimmt aber ich arbeite oft in der Console und da hilft der alias doch schon!
Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn

betateilchen


MBA:~ udo$ telnet fhem-dev 7072
Trying 192.168.123.158...
Connected to fhem-dev.
Escape character is '^]'.

fhem-dev>


mit diesem Patch kriegst Du auch bei telnet den hostname als prompt angezeigt :)


Index: 98_telnet.pm
===================================================================
--- 98_telnet.pm (Revision 11601)
+++ 98_telnet.pm (Arbeitskopie)
@@ -194,7 +194,12 @@
     return if(!$chash);
     $chash->{canAsyncOutput} = 1;
     $chash->{encoding} = AttrVal($name, "encoding", "utf8");
-    $chash->{prompt}  = AttrVal($name, "prompt", "fhem>");
+    $chash->{prompt}  = AttrVal($name, "prompt", AttrVal('global','title','fhem'));
+    if($chash->{prompt} =~ m/^{.*}$/s) {
+       $chash->{prompt}  = eval $chash->{prompt};
+       $chash->{prompt}  =~ s/\n//;
+    }
+    $chash->{prompt} .= '>';
     syswrite($chash->{CD}, sprintf("%c%c%c", 255, 253, 0) )
         if( AttrVal($name, "encoding", "") ); #DO BINARY
     $chash->{CD}->flush();


Alternativ könnte man 98_telnet.pm auch so patchen, dass das Attribut prompt als perlSpecial aufgelöst wird.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

P.A.Trick

Zitat von: betateilchen am 03 Juni 2016, 19:49:19

MBA:~ udo$ telnet fhem-dev 7072
Trying 192.168.123.158...
Connected to fhem-dev.
Escape character is '^]'.

fhem-dev>


mit diesem Patch kriegst Du auch bei telnet den hostname als prompt angezeigt :)


Index: 98_telnet.pm
===================================================================
--- 98_telnet.pm (Revision 11601)
+++ 98_telnet.pm (Arbeitskopie)
@@ -194,7 +194,12 @@
     return if(!$chash);
     $chash->{canAsyncOutput} = 1;
     $chash->{encoding} = AttrVal($name, "encoding", "utf8");
-    $chash->{prompt}  = AttrVal($name, "prompt", "fhem>");
+    $chash->{prompt}  = AttrVal($name, "prompt", AttrVal('global','title','fhem'));
+    if($chash->{prompt} =~ m/^{.*}$/s) {
+       $chash->{prompt}  = eval $chash->{prompt};
+       $chash->{prompt}  =~ s/\n//;
+    }
+    $chash->{prompt} .= '>';
     syswrite($chash->{CD}, sprintf("%c%c%c", 255, 253, 0) )
         if( AttrVal($name, "encoding", "") ); #DO BINARY
     $chash->{CD}->flush();


Alternativ könnte man 98_telnet.pm auch so patchen, dass das Attribut prompt als perlSpecial aufgelöst wird.

Sehr gerne wenn du Rudi davon überzeugt bekommst!? :-)
Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn

justme1968

der patch ist eine gute idee.

das hilft aber nur wenn man auch mit prompt arbeitet. und der ist bei copy&paste immer im weg.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

betateilchen

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Zitat von: justme1968 am 03 Juni 2016, 19:55:32
und der ist bei copy&paste immer im weg.

das verstehe ich grade nicht - ich arbeite in telnet viel mit c&p aber der prompt geht mir dabei nicht verloren.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

P.A.Trick

Cubietruck,RPI,QNAP Ts-419p+, FS20, FRITZ!DECT200, 7 MAX! Thermostate, 3 MAX! Fensterkontakte, Kodi, CUL V3.3, EM1000S, LW12, LD382, HUE, HM-CFG-USB-2, 1x HM-LC-SW1-FM, 2x HM-LC-SW2-FM, 2x HM-LC-Sw1PBU-FM, 3xHM-LC-Bl1PBU-FM,HM-SEC-RHS, 2xHM-SEC-SD,HM-WDS30-T-O, 3x HM-LC-Dim1TPBU-FM, RPI+AddOn

justme1968

wenn man eine zeile per doppelklick markiert wird der prompt mit markiert wenn er vorhanden ist. deshalb arbeite ich immer ohne prompt.

es ging nicht gegen deinen vorschlag. den finde ich gut. er nützt aber nur demjenigen der mit prompt arbeitet.
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

betateilchen

Zitat von: justme1968 am 03 Juni 2016, 20:03:48
wenn man eine zeile per doppelklick markiert wird der prompt mit markiert wenn er vorhanden ist. deshalb arbeite ich immer ohne prompt.

verstehe ich immer noch nicht. Egal. Ich arbeite immer mit prompt und hatte damit noch nie Probleme.
Ich finde auch den cmdalias praktisch. Hab das einfach nur weitergedacht.

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!