FHEM Forum

FHEM => Frontends => TabletUI => Thema gestartet von: drhirn am 08 Februar 2017, 21:12:33

Titel: Erklärung zu Input-Widget-Beispiel
Beitrag von: drhirn am 08 Februar 2017, 21:12:33
Hi,

hier (https://github.com/knowthelist/fhem-tablet-ui#input) ist ein Beispiel für ein Input-Widget mit jQuery-Referenzen.
Könnte mir bitte jemand erklären, warum sowohl im Input-Widget, als auch im Link-Widget auf #sendDev und #sendParam verwiesen wird?

Sollte das nicht eigentlich im Link-Widget reichen?

Danke!
Stefan
Titel: Antw:Erklärung zu Input-Widget-Beispiel
Beitrag von: setstate am 09 Februar 2017, 06:53:43
Mit dieser Anordnung bekommt man eine Art Formular, wobei erst beim Button drücken das Ergebniss an FHEM geschickt wird. Das erreicht man durch "notransmit" <- nicht auf Änderungen reagieren
Die Verweise beziehen sich hier immer auf das darüberliegende Element. Hat man im ersten Element etwas ausgewählt, ändert sich der Inhalt des zweiten Elements, weil dessen data-get keine Device:Reading Referenz und keine Reading Referenz hat, sondern einen jQuery Selector auf ein anderes Widget. Vom verwiesenen Widget wird dann das data-value (ändert sich beim Setzen von Werten im Widget) ausgewertet. Also bekomme ich im zweiten Widget den Readingnamen dynamisch vom ersten Widget und das dritte vom zweiten und der Link baut sein Commandstring durch den data-value vom dritten Widget endgültig zusammen.

Ist ansich eher ein Spezialfall :-)

Korrektur:
Ich habe mir den Code gerade nochmal richtig angesehen. Nur das dritte Widget hat hat Referenzen auf Ens und Zwei. Das zweite nicht auf das erste. Der Send-Knopf auf alle drei darüberliegende. Man setzt also mit dem ersten den Devicenamen und mit dem zweiten den Readingnamen für das Input und den Send-Knopf
Titel: Antw:Erklärung zu Input-Widget-Beispiel
Beitrag von: drhirn am 09 Februar 2017, 08:57:51
Ok, danke!
Aber interessiert es das dritte Widget (Input) wirklich, was in den beiden ersten steht? Könnte ihm in dem Fall ja egal sein, oder?

Ja, Spezialfall. Aber eigentlich durchaus brauchbar.
Titel: Antw:Erklärung zu Input-Widget-Beispiel
Beitrag von: setstate am 09 Februar 2017, 09:11:25
Der aktuelle Wert wird ausgelesen. Was steht aktuell in dem Reading. Dann kann man das ändern oder kpl. überschreiben.
Titel: Antw:Erklärung zu Input-Widget-Beispiel
Beitrag von: drhirn am 09 Februar 2017, 09:17:08
Alles klar. Danke dir!
Titel: Antw:Erklärung zu Input-Widget-Beispiel
Beitrag von: n4rrOx am 09 Februar 2017, 09:37:41
Hi,

als kleiner Hinweis (auch für andere) .... Hatte einen Anwendungsfall, bei der die Konstellation von setstate nicht zutreffen war .... habe mir dabei mit einer Sub beholfen, die die Parameter verarbeitet:

        <div class="head">Timer Heizung</div>
<div class="centered inline"><br />
<div data-type="select" data-device="PartyControl_Device"
data-items='["bad_Thermostat","sz_Thermostat","wz_Thermostat","ku_Thermostat","kz_Thermostat"]'
data-alias='["Bad","Schlafzimmer","Wohnzimmer","Küche","Kinderzimmer"]'
class="col-2-3">
</div><br />
<div data-type="select" data-device="PartyControl_Temp"
data-items='["6.0","12.0","14.0","16.0","18.0","18.5","19.0","19.5","20.0","20.5","21.0","21.5","22.0","22.5","23.0"]'
data-alias='["6.0 °C","12.0 °C","14.0 °C","16.0 °C","18.0 °C","18.5 °C","19.0 °C","19.5 °C","20.0 °C","20.5 °C","21.0 °C","21.5 °C","22.0 °C","22.5 °C","23.0 °C"]'
class="col-2-3">
</div><br />
<div data-type="select" data-device="PartyControl_Dauer"
data-items='["0.5","1","1.5","2","2.5","3","4","5","6","7","8","9","10","11","12","24","48"]'
data-alias='["0.5 h","1 h","1.5 h","2 h","2.5 h","3 h","4 h","5 h","6 h","7 h","8 h","9 h","10 h","11 h","12 h","24 h","48 h"]'
class="col-2-3">
</div><br />
<div data-type="link" data-fhem-cmd="{aufheizen()}"
class="round centered"
data-width="200" data-height="40"
data-color="white"
data-background-color="green"
data-icon="fa-feed">
OK
</div>
</div>
        </div>