FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Elektrolurch am 17 Januar 2015, 16:04:30

Titel: Bildschirm aktualisieren nach Aktion von Knopf
Beitrag von: Elektrolurch am 17 Januar 2015, 16:04:30
Hallo,

ich habe an mehreren readingsGroups unten Knöpfe zur Umschaltung der Darstellung implementiert. Beispiel:

[A-Z][a-z]_helper:state <{appendTrigger($DEVICE,"alle","Alle anzeigen");}>,<{appendTrigger($DEVICE,"offen","nur offene");}>,<{appendTrigger($DEVICE,"geschlossen","nur geschlossene");}>

Mit der perl-Routine wird dann per "modify" die readingsGroup neu definiert und so die Darstellung geändert.
Leider wird nach Drücken des Knopfes der Bildschirm nicht neu aufgebaut. Ich muss erst F5 im akt. FF drücken.

Ähnliches Beispiel:

an einer Liste hängt der Knopf "Alle Löschen". Die readings des dummys, der in der Liste dargestellt wird, werden mit "deletereading" gelöscht. Auch hier erfolgt keine Aktualisierung des Bildschirms.

Es gibt zwar die fhem - Funktion "inform", aber die Beschreibung ist dermaassen dürftig, dass ich daraus nicht schliessen kann, ob ich damit das Problem lösen kann und wie dich "inform" überhaupt aufrufen müsste.... ?
Eine Forumssuche  mit "inform" ergab auch nichts.

Hat jemand eine Idee, wie man einen Bildschirm-Refresh anstossen kann?

Elektrolurch
(
Titel: Antw:Bildschirm aktualisieren nach Aktion von Knopf
Beitrag von: justme1968 am 19 Januar 2015, 12:52:47
in der aktuellen version kannst du ein reload der seite so anstossen:

das folgende in 99_myUtils:
sub                                                                                     
myUtils_refresh($)                                                                     
{                                                                                       
  my ($name) = @_;                                                                     
                                                                                       
  FW_directNotify("#FHEMWEB:$name", "location.reload(true);","" );
}


und dann so aufrufen:
myUtils_refresh("WEB")

gruss
  andre
Titel: Antw:Bildschirm aktualisieren nach Aktion von Knopf
Beitrag von: justme1968 am 27 Februar 2015, 21:02:26
inzwischen geht es auch ohne eigene sub:trigger WEB JS:location.reload(true)

gruss
  andre
Titel: Antw:Bildschirm aktualisieren nach Aktion von Knopf
Beitrag von: ujaudio am 12 März 2015, 20:06:44
Was muss ich hier genau triggern, um meinen Floorplan zu aktualisieren?

trigger WEB JS:location.reload(true)


Meine Interpretation:

trigger ist der FHEM-Befehl
WEB gibt an, dass etwas mit der dem Webinterface passieren soll
JS könnte JavaScript bedeuten??!?
location: ist mir unklar, der Versuch, dass es der Name meines Floorplans ist, war wohl falsch
reload sagt nur aus, dass eben die Seite aktualisiert werden soll - aber welche?
(true) ist mir völlig unklar
Titel: Antw:Bildschirm aktualisieren nach Aktion von Knopf
Beitrag von: justme1968 am 12 März 2015, 20:12:26
trigger ist das normale fhem trigger kommando um ein event zu erzeugen.

WEB ist das fhem device

JS: ist ein schlüsselwort damit fhemweb weiss das jetzt javascript kommt das direkt im browser ausgeführt werden soll

location.reload(true) ist javascript code um die aktuelle seite komplett neu vom server zu laden und muss in diesem fall genau so dort stehen

natürlich kann man so auch anderen javascript code an den browser schicken.
Titel: Antw:Bildschirm aktualisieren nach Aktion von Knopf
Beitrag von: ujaudio am 12 März 2015, 20:15:49
Verstanden, nur wie sorge ich dafür, dass die aktuelle Seite (mein Floorplan) nun den Trigger auslöst? Auf der Eingabezeile eingeben will ich es nicht, es soll automatisch z.B. alle 5 Minuten passieren.

Ich kann mir die Frage selbst beantworten: wenn ich in meinem Browser 2 Tabs habe, einmal den Floorplan und einmal das fhem Grundbild mit der Befehlszeile, so wird bei Eingabe des o.g. Kommandos automatisch auch der Floorplan aktualisiert, weil eben WEB aktualisiert wird.

Eigentlich muss ich jetzt nur noch ein passendes "at" definieren...

Funktioniert nun einwandfrei - danke!

Das Danke geht sowohl an justme1968 für seine Antworten als auch an Rudolf König, der wohl erst kürzlich diese Funktion realisierte.