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

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

Vorheriges Thema - Nächstes Thema

FHEMAN

Könnte man es so erweitern, dass Autocomplete nur in Verbindung mit "list " losfeuert? List wäre ja ein ganz guter Indikator, dass man gerade ein Device sucht.
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

RoBra81

Zitat von: ThoTo am 21 Januar 2018, 16:58:08
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).* { {open my $FH, ">", "./www/pgm2/fhem_devdetails.js" or die "Could not open file $!";;;; print $FH 'var defs=["'.join('","', 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

Die Funktion ist echt praktisch, aber leider funktioniert dadurch die History des Textfeldes im Browser nicht mehr - gibt's da eine Möglichkeit, dass die trotzdem funktioniert?

Ronny

Phill

Ja nimm meine Methode aus dem ersten Beitrag.  :D
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

KernSani

Ich finde die Funktion klasse, mich hat nur ein bisschen gestört, dass writeDevices2JS ein bisschen zu häufig triggert (nämlich bei jedem "at" oder "on-till-timer" o.ä.), daher habe ich das notify leicht abgewandelt:

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 } }
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

ThoTo

Zitat von: KernSani am 29 Januar 2018, 21:06:42
Ich finde die Funktion klasse, mich hat nur ein bisschen gestört, dass writeDevices2JS ein bisschen zu häufig triggert (nämlich bei jedem "at" oder "on-till-timer" o.ä.), daher habe ich das notify leicht abgewandelt:

Danke für den Hinweis, habe mein ursprüngliches Posting angepasst.

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

Aber ist das nicht nur Relevant, wenn man seine at's und Co mit "_timer" am Schluss anlegt?
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

KernSani

Zitat von: Phill am 31 Januar 2018, 23:23:30
Aber ist das nicht nur Relevant, wenn man seine at's und Co mit "_timer" am Schluss anlegt?
Von FHEM erzeugte temporäre ATs (z.B. on-till... bei Geräten die das nicht selbst können - Baumarktsteckdosen) werden mit _timer angelegt.


Kurz, weil mobil...
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Amenophis86

Zitat von: KernSani am 29 Januar 2018, 21:06:42
Ich finde die Funktion klasse, mich hat nur ein bisschen gestört, dass writeDevices2JS ein bisschen zu häufig triggert (nämlich bei jedem "at" oder "on-till-timer" o.ä.), daher habe ich das notify leicht abgewandelt:

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 } }

Kannst du mir sagen, wie ich den Perl Teil ändere, damit nicht ständig eine Meldung im Log erscheint? Ich habe zwei Funktionen, welche ziemlich viele Temp-Ats anlegen und ständig Meldungen im Log dadurch.
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

#38
Zitat von: Amenophis86 am 11 März 2018, 12:26:55
Kannst du mir sagen, wie ich den Perl Teil ändere, damit nicht ständig eine Meldung im Log erscheint? Ich habe zwei Funktionen, welche ziemlich viele Temp-Ats anlegen und ständig Meldungen im Log dadurch.

Mit verbose 0 wird die Ausgabe unterdrückt, falls du das meinst:
attr writeDevices2JS verbose 0

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)

Amenophis86

Oh man, es kann so einfach sein :D Sry stand aufm Schlauch. Dank dir.
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...

TomLee

#40
Hallo,

mit dem Hack (aus dem ersten Post) verhält sich je nach verwendetem Style die Menü-Leiste anders. s. Bilder im Anhang.
Mein Standard-Style ist f18, kann mir jemand sagen was ich wo ändern muss, das das Menü nicht in die "Hauptseite" reinragt.

Gruß

Thomas

TomLee

Hat sich erledigt hab mich für die mMn komfortablere Variante entschieden.

Benni

Das hat sich inzwischen anscheinend erledigt, da direkt als FHEM-Befehl verfügbar:

Zitat von: rudolfkoenig am 13 Februar 2019, 08:09:07
Side-Note: da es nirgendwo dokumentiert, und was aehnliches tut:l <devicename>(das ist ein kleines L) oben in der FHEMWEB Kommandozeile ruft die Detailansicht von <devicename>" auf.

RoBra81

Wobei diese Lösung hier den entscheidenden Vorteil des (nicht case-sensitiven) Autocomplete hat!

Gesendet von meinem LYA-L29 mit Tapatalk


hmtec99

Wäre das nicht was um es standardmäßig in Fhem zu integrieren?

Gerade für Anfänger (und nicht nur die) eine tolle Sache.

Daumen hoch.

Habe die Zeichenzahl für Autocomplete übrigens auf 2 reduziert, damit es auf meine Umgebung matcht (z.B. wdXYZ oder atXYZ).

Was muß man ändern damit alle Ergebnisse alphabetisch sortiert werden?