[FHEMWEB Mod] Textfeld für direkten Device aufruf!

Begonnen von Phill, 09 Januar 2018, 00:08:11

Vorheriges Thema - Nächstes Thema

FHEMAN

Cool, ich bin auch ein großer Fan solcher Improvements :)
Ein wenig stört mich persönlich das weitere Editfeld, dass man die Namen case sensitiv und ausschreiben muss. Da muss man schon viel vom Namen im Kopf haben (hab ich nicht).
Ich behelfe mir mit folgendem CMDALIAS (abgeleitet vom grep Beispiel):

define cmd.dev cmdalias dev .* AS {qx(grep -i \'define.*$EVENT\' *.cfg FHEM/99*.pm)}

Damit bekomme ich im CMD mittels "dev schlaf" bspw. alle Geräte / Defines  mit dem Namen .*[Ss]chlaf.*

Gruß
Ronny
NUC7i5 | PROXMOX | FHEM 6.2 | 1 HMLAND | 2 UART | HM | LMS | HIFIBERRY | DOORBIRD | BLINK | BUDERUS | HUE | ALEXA | MILIGHT | LUFTDATENINFO | MQTT| ZIGBEE2MQTT | INDEGO | ROBOROCK | SMA | APC | OPENWB

Benni

Zitat von: FHEMAN am 19 Januar 2018, 14:57:56
Damit bekomme ich im CMD mittels "dev schlaf" bspw. alle Geräte / Defines  mit dem Namen .*[Ss]chlaf.*

Im wesentlichen dasselbe bekomme ich doch auch mit einem

list .*[Ss]chlaf.*

Außerdem geht das CMDALIAS direkt auf die Dateien (u.a. fhem.cfg), funktioniert also nicht bei FHEM-Installationen, die stattdessen configDB verwenden.

gb#

Fixel2012

Zitat von: Benni am 19 Januar 2018, 17:27:48
Im wesentlichen dasselbe bekomme ich doch auch mit einem

list .*[Ss]chlaf.*

Außerdem geht das CMDALIAS direkt auf die Dateien (u.a. fhem.cfg), funktioniert also nicht bei FHEM-Installationen, die stattdessen configDB verwenden.

gb#

Ist allerdings wesentlich mehr Tipp-Arbeit!
Fhem 5.8 auf Raspi 3, HMLAN und 868MHz CUL mit einigen Komponenten, Z-Wave Rollladenaktoren, Tablet UI, 433 MHz CUL mit Baumarktsteckdosen und Temp Sensoren, Amazon Echo, Echo Dot, 2x SONOS  play1, 1x SONOS Connect AMP,  presence, HUE, Lightify

Benni

Zitat von: Fixel2012 am 19 Januar 2018, 17:54:01
Ist allerdings wesentlich mehr Tipp-Arbeit!

::)

Mit folgendem cmdalias

define ca_wlist cmdalias wlist .* AS {fhem 'list .*['.toupper(substr($EVENT,0,1)).tolower(substr($EVENT,0,1)).']'.substr($EVENT,1).'.*'}

kannst du das wieder ganz sparsam so aufrufen:


wlist schlaf

Phill

Ich würde es so lösen, dann ist es komplett case insensitiv.
define ca_wlist cmdalias wlist .* AS  {join("\n",grep { /.*$EVENT.*/i } keys %defs)}
Homebrew 1-Wire / HomeMatic Mix - Cubietruck mit FHEM als Server - Raspberry PI 3 als Informationsanzeige im MagicMirror Stil - Raspberry Pi 1 als Klingelanlage - VDR

Mein Modul: Talk2Fhem - Mein Tipp: https://forum.fhem.de/index.php/topic,82442.0.html

ThoTo

jetzt ist es soweit perfektioniert, dass nur noch auto-complete fehlt  8)
KNX | MQTT | Docker | Sonos | FHEMapp

"Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit, aber bei dem Universum bin ich mir noch nicht ganz sicher." (Albert Einstein)

Phill

Also gut, wenns so sehr gewünscht wird. Klick mich. ;)
Homebrew 1-Wire / HomeMatic Mix - Cubietruck mit FHEM als Server - Raspberry PI 3 als Informationsanzeige im MagicMirror Stil - Raspberry Pi 1 als Klingelanlage - VDR

Mein Modul: Talk2Fhem - Mein Tipp: https://forum.fhem.de/index.php/topic,82442.0.html

RoBra81

Zitat von: Phill am 20 Januar 2018, 02:26:07
Also gut, wenns so sehr gewünscht wird. Klick mich. ;)
Genial!

Gesendet von meinem SM-G935F mit Tapatalk


Fixel2012

Fhem 5.8 auf Raspi 3, HMLAN und 868MHz CUL mit einigen Komponenten, Z-Wave Rollladenaktoren, Tablet UI, 433 MHz CUL mit Baumarktsteckdosen und Temp Sensoren, Amazon Echo, Echo Dot, 2x SONOS  play1, 1x SONOS Connect AMP,  presence, HUE, Lightify

FHEMAN

Nice!! Danke für die Bereitstellung!

Für die, die es nicht wissen: zum reinen Testen des Features genügt es, den Code in der Console (F12 im Browser drücken) auszuführen.

Und für meinen favorisierten Fall in der Standard Commandbar oben lautet der Code dann

loadScript("pgm2/details.js", function () {
$("input[name=cmd]").autocomplete({source: defs});
});


(Kollidiert dann aber mit meiner Commandbar Historie)

So, wer macht noch das Schleifchen und das Dropdowngedöhns schick?
NUC7i5 | PROXMOX | FHEM 6.2 | 1 HMLAND | 2 UART | HM | LMS | HIFIBERRY | DOORBIRD | BLINK | BUDERUS | HUE | ALEXA | MILIGHT | LUFTDATENINFO | MQTT| ZIGBEE2MQTT | INDEGO | ROBOROCK | SMA | APC | OPENWB

Amenophis86

Mal ne Frage, die cmdalias waren aber nur für die normale commandzeile und nicht für den HACK, oder?
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

Benni

Zitat von: Amenophis86 am 20 Januar 2018, 19:02:51
Mal ne Frage, die cmdalias waren aber nur für die normale commandzeile und nicht für den HACK, oder?

Ja, wie das mit den cmdalias eben so ist ;)

Amenophis86

ok, hab mich schon gewundert, wie das gehen soll :D
Aktuell dabei unser neues Haus mit KNX am einrichten. Im nächsten Schritt dann KNX mit FHEM verbinden. Allein zwei Dinge sind dabei selten: Zeit und Geld...

ThoTo

#28
Anbei eine abgewandelte Version, die sich an die FHEM Kommandozeile hängt, Vorschläge werden ab dem 3. eingegebenen Zeichen angezeigt und müssen dann durch Click ausgewählt werden.
Das Notify berücksichtigt Aktionen der folgenden Typen: define, delete, rename, initialize (beim Start)

Die angehängte Datei fhem_details.js nach www/pgm2/ kopieren.
Im Verzeichnis www/pgm2/ zusätzlich eine fhem_devdetails.js anlegen und die Rechte für beide Dateien richtig setzen:
touch fhem_devdetails.js
chown -R $(stat . -c %u:%g) fhem_*details.js


In der gewünschten FHEMWeb-Instanz das Attribut JavaScripts ergänzen, die Fehlermeldung kann ignoriert werden:
pgm2/fhem_details.js

Das Notify für die Befüllung der Autocomplete-JS-Datei anlegen:
define writeDevices2JS notify global:(DEFINED|RENAMED|DELETED|INITIALIZED).*(?<!_timer)$ { {open my $FH, ">", "./www/pgm2/fhem_devdetails.js" or die "Could not open file $!"; print $FH 'var defs=["'.join('","', sort(keys %defs)).'"]'; close $FH } }

Das Notify einmal ausführen lassen:
trigger global DEFINED

Im Browser Cache leeren oder die Seite mit [STRG]+[F5] neu laden und in der Kommandozeile beginnen einen Devicenamen zu tippen  8) ;D


LG Thomas
KNX | MQTT | Docker | Sonos | FHEMapp

"Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit, aber bei dem Universum bin ich mir noch nicht ganz sicher." (Albert Einstein)

Phill

Find ich gut, allerdings habe ich mich an das zusätzliche Textfeld gewöhnt, und ich will auch nicht erst die Auswahl treffen müssen.

Ich habe mal deine Anleitung übernommen, und 2 kleine Änderungen vorgenommen.
1. Dem notify ein "sort" spendiert. Dadurch ist die Liste Alphabetisch sortiert.
2. Der focus wird beim Laden direkt auf das Textfeld gesetzt.

Gruß
Homebrew 1-Wire / HomeMatic Mix - Cubietruck mit FHEM als Server - Raspberry PI 3 als Informationsanzeige im MagicMirror Stil - Raspberry Pi 1 als Klingelanlage - VDR

Mein Modul: Talk2Fhem - Mein Tipp: https://forum.fhem.de/index.php/topic,82442.0.html