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
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
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.
Der aktuelle Wert wird ausgelesen. Was steht aktuell in dem Reading. Dann kann man das ändern oder kpl. überschreiben.
Alles klar. Danke dir!
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>