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

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

Vorheriges Thema - Nächstes Thema

Phill

Hier ein kleiner FHEMWEB Mod der ein Textfeld inklusive Autocomplete erzeugt, mit dem das Aufrufen eines Devices erleichtert wird. Klickst du noch?  ;)

In der FHEMWEB Instanz dem Attribut JavaScripts folgedes hinzufügen
pgm2/fhem_details.js
fhem_details.js vom Anhang in Verzeichnis www/pgm2 kopieren
Datei fhem_devdetails.js in Verzeichnis www/pgm2 anlegen und Rechte anpassen.
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('","', 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 über ein Textfeld erfreuen, mit dem man direkt zu dem eingegebenen Device gelangt.

Wer das ganze in die Kommandozeile integrieren möchte kann sich dieses Script anschauen. link Danke ThoTo



Wer es nur kurz mal testen will, kann folgendes in der Kommandozeile eingeben.
{$data{FWEXT}{show} = {NAME => "Details:<form><input style='width:97%' name='detail' onmouseover='\$(this).parents(\"a\").removeAttr(\"href\").unbind(\"click\")'></input></form>", LINK=>"/"} }

Um es wieder zu deaktivieren folgendes ausführen.
{$data{FWEXT}{show} = undef}


Gruß

Update: 30.01 Hab mal die select-Funktion wie bei ThoTo reingenommen. Dadurch wird direkt beim auswählen geladen.
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

Fixel2012

Hi Phil,

wärst du so nett und Hängst noch ein Foto an und beschreibst, was dein "Hack" vereinfacht?

Habe das ehrlich gesagt so nicht ganz verstanden.

Habe gerade kein Zugriff auf Fhem, um es zu testen.  :)
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

ThoTo

Zitat von: Phill am 09 Januar 2018, 00:08:11
Hier ein kleiner HTML Hack. Einfach ausführen und über ein Textfeld erfreuen, mit dem man direkt zu dem eingegebenen Device gelangen kann.

Gibts das auch mit Autocomplete?  8)

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

#3
@Fixel2012: Bild ist da, und vereinfacht oder verkürzt wird der weg zu einer Detailansicht eines Devices. Einfach den Namen in das Textfeld eingeben.

@ThoTo: Das wäre cool. Zumindest tauchen bei mir die bereits eingegebenen im Dropdown auf.
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

Hallo,

ich habe es auch mal probiert, aber irgendwie war es bei mir (aktuelle FHEM-Stand) ein parent() zu wenig...

Ronny

Phill

#5
Komisch? Na dann eben parents("a").
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

Fixel2012

Habe es soeben getestet. Ist echt nützlich.

Vorher habe ich immer ein list <GeräteName> und bin dann auf das Gerät gegangen.

So geht es noch schneller, Danke.

Autocomplete wäre echt mega!  ;D
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

Esjay

Ist wirklich praktisch, wenn man jetzt noch die Breite irgendwie anpassen könnte, wäre es perfekt.

Grüße

Phill

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

Esjay

Zitat von: Phill am 09 Januar 2018, 19:57:20
So besser? Oder wie meinst du das?

Perfekt!! Mit style='width:85%'  hat es genau die richtige Größe!
Grüße

Fixel2012

Mir ist aufgefallen, dass das Feld nach einem Restart wieder weg ist.

Wie kann ich dem entgegen wirken? Auf einen Neustart triggern, ist ja nicht das tollste. Gibt es bessere Lösungen?
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

marvin78

Mach doch ein notify auf GLOBAL:INITIALIZED und führe darin die Funktion aus.

Fixel2012

Zitat von: marvin78 am 12 Januar 2018, 13:01:13
Mach doch ein notify auf GLOBAL:INITIALIZED und führe darin die Funktion aus.

Dachte, da gibt es eine Bessere Lösung  :) Dann mache ich es so.
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

marvin78

Verstehe nicht, was an der Lösung nicht "toll" ist. Einfach und effizient ist es.

Benni

Danke!
Praktisches Feature!

Kannst es ja Rudi mal zum Einbau in den (FHEMWEB-)Standard vorschlagen (ggf. per Attribut aktivier- und skalierbar).

Er ist ja anscheinend im Moment sowieso dabei an der Oberfläche zu optimieren ;)

gb#