[gelöst] [FHEM-Tablet-UI] "get" und "set" unterschiedliche Devices

Begonnen von drhirn, 19 November 2015, 18:51:24

Vorheriges Thema - Nächstes Thema

drhirn

Hi,

ich müsste in einem Widget aus einem Reading von Device A einen Wert holen und mit einem Klick auf genau dieses Widget den Wert an Device B senden.

Konkret hole ich mir aus einem JSONREADING die Werte für Kanalnummer, Bild-URL und Sendername. Die Kanalnummer muss ich dann an einen Dummy senden, damit mein TV den Sender umschaltet.

Stelle mir das so vor:


<div data-device="TV" data-set-on="201"> <!--Kanalnummer jetzt mal hardcoded, automatisches Befüllen wär natürlich super-->
  <div data-type="image" data-device="Sender" data-get="channels_01_image" data-path="..."></div>
  <div data-type="label" data-device="Sender" data-get="channels_01_label" ...></div>
</div>


Aber es geht halt leider nicht immer so, wie man sich das vorstellt ;).

Hat jemand eine Idee, wie ich das lösen könnte?

Danke!
Stefan

drhirn

Oh, ich beantworte meine Frage mal zur Hälfte selber ;)

Bin gerade über das setFhemStatus gestolpert. Coole Sache!


<div onClick="setFhemStatus('set rcTVSony 202')">
<div class="cell" data-type="image" data-device="jnTVSender" data-get="channels_02_image" data-path="/fhem/images/TVSender/" data-size="80px"></div>
<div class="cell" data-type="label" data-device="jnTVSender" data-get="channels_02_name"></div>
</div>


So, wie bringe ich jetzt noch auf einfachem Wege die automatisch geholte Kanalnummer im onClick unter ohne dass ich mit den Anführungszeichen an Grenzen stoße?

Danke!
Stefan

setstate

Hallo Stefan,

alle Readings, die für die aktuelle Seiten benötigt werden, sind auf dem Client gespeichert und per Funktion verfügbar.
Es muss nur irgendein Widget das Reading benötigen und von FHEM abholen. Dann kann man es so benutzen


<div onClick="setFhemStatus('set dummy2 '+getDeviceValueByName('dummy1','sat'))">
         <div class="cell" data-type="label" data-device="dummy1" data-get="sat"></div>
</div>

drhirn


drhirn

Hi,

funktioniert bestens!


<div onClick="setFhemStatus('set rcTVSony '+getDeviceValueByName('jnTVSender','channels_02_channel'))" class="cell" style="display: table; float: left; height: 60px;">
<div data-type="image" data-device="jnTVSender" data-get="channels_02_image" data-path="/fhem/images/TVSender/" data-size="80px" style="display: table-cell; height: 100%; vertical-align: middle; text-align: center;"></div>
<div style="display:table-row;"></div>
<div data-type="label" data-device="jnTVSender" data-get="channels_02_name" class="small" style="display: table-cell;"></div>
</div>


Danke nochmal!
Stefan