Problemchen mit modulspezifischen Eingabefeldern

Begonnen von Thorsten Pferdekaemper, 30 Januar 2017, 11:03:50

Vorheriges Thema - Nächstes Thema

Thorsten Pferdekaemper

Hi,
Möglicherweise ist der Titel nicht so toll. Wenn jemandem was besseres einfällt, dann ändere ich es gerne.
Bei dem von mir betreuten Homematic-Wired Modul kann man über FHEMWEB Einstellungen ändern, die direkt im EEPROM der Geräte gespeichert sind. Das ganze sieht so aus, wie auf dem Screenshot.
Wenn man Werte ändert und die "Save config" Taste drückt (die auf dem Screenshot, nicht die zum Sichern der fhem.cfg), dann warden die Werte ins EEPROM der Geräte geschrieben und zugehörige Readings geändert. Im Prinzip macht die "Save config" Taste ein HTTP POST, das dann von FHEMWEB in ein set-Kommando umgewandelt wird. Das ist zumindest soweit ich es verstehe, ich habe diesen Teil nur übernommen und nicht selbst gemacht.   
Jetzt ergibt sich das Problemchen, dass bei "Save config" die geänderten Werte wieder auf den alten Zustand zurückspringen. Man sieht dann, wie sich die zugehörigen Readings ändern. Erst wenn man dann wieder einen Browser-Refresh (manuell) macht, sieht man die neuen Werte wieder in den Eingabefeldern.

Ich habe dazu ein paar Ideen, wie man das angehen könnte, aber so richtig toll ist davon nichts. Gibt es dazu eine "FHEMWEB-übliche" Vorgehensweise?
...oder auch andere Ideen?

Gruß,
    Thorsten
FUIP

rudolfkoenig

ZitatGibt es dazu eine "FHEMWEB-übliche" Vorgehensweise?
Nicht wirklich, da die uralte, Form-basierte Version immer noch verwendet wird, manches wird aber schon mit JavaScript/XHR-Aufrufen erledigt, z.bsp die gets auf der Detail-Seite.

Ich empfehle <form> zu meiden (form in form ist eh nicht Standardkonform, und manche Browser beschweren sich), ein FHEM-Befehl per jQuery zusammenzubasteln, und es per FW_cmd abzusetzen. Eine Alternative ist in 90_at.pm / at_fhemwebFn beschrieben, da wird aber die Detailseite neu geladen (statt mit FW_cmd nur die Aenderung durchzufuehren), um die geaenderten Internals richtig anzuzeigen.

Und ich wuerde "Save config" durch "Write EEPROM" ersetzen, um es nicht mit dem FHEM-Save zu verwechseln.

Thorsten Pferdekaemper

Zitat von: rudolfkoenig am 30 Januar 2017, 11:18:49
Ich empfehle <form> zu meiden (form in form ist eh nicht Standardkonform,
Warum form in form? Ich habe mir gerade mal den Seitenquelltext betrachtet. Die form vom Kommandofeld wird abgeschlossen und danach kommt "meine" form. Da sehe ich nirgends form in form.

Zitatein FHEM-Befehl per jQuery zusammenzubasteln, und es per FW_cmd abzusetzen.
Das werde ich mir mal anschauen.

Zitat
Und ich wuerde "Save config" durch "Write EEPROM" ersetzen, um es nicht mit dem FHEM-Save zu verwechseln.
Ja, das ist tatsächlich verwirrend. Das wollte ich sowieso ändern. Dein Vorschlag erscheint mir zwar ein bisschen technisch, macht aber klar, was gemeint ist. "Write to Device" wäre vielleicht auch nicht schlecht.

Danke&Gruß,
   Thorsten

FUIP

Thorsten Pferdekaemper

Hi,
ich habe das jetzt umgebaut und es wird FW_cmd verwendet. Die <form>-Tags sind auch weg und der "Save Config" Button heißt anders.
Funktioniert!
Danke&Gruß,
    Thorsten
FUIP