[gelöst] data-template mit Parametern und zusammengebauten Device-Namen

Begonnen von wowogiengen, 10 Dezember 2017, 19:05:56

Vorheriges Thema - Nächstes Thema

wowogiengen

Hallo,
ich habe mir zu diesem Code:

<div data-template="Hzg_template.html" data-parameter='{
    "par00":"Schlafzimmer",
    "par01":"HzgSetSchlafzimmer",
    "par02":"HzgStatusSchlafzimmer",
    "par03":"FileLog_HzgStatusSchlafzimmer",
    "par04":"HzgAktorSchlafzimmer",
    "par05":"Schlafzimmer"
}'>
</div>

ein HTML-Seite gebastelt, die auch brav alles anzeigt, was sie soll.
Da meine Gerätenamen alle gleich aufgebaut sind, würde es aber reichen, nur 'Schlafzimmer' als Parameter zu übergeben. Aber wie bekomme ich dann das in meine Template-Seite:


<!--
   par01 = HzgSetSchlafzimmer
   par02 = HzgStatusSchlafzimmer
   par03 = FileLog_HzgStatusSchlafzimmer
    par04 = HzgAktorSchlafzimmer
   par05 = Schlafzimmer
-->
<div class="sheet">
   <div class="row">
      <div class="cell-2 wider" data-type="thermostat" data-device="par01">
      </div>
<div class="cell" >
    <div data-type="level" data-device='par02'  data-get='humidity'
        data-limits='["[12]*[0-9]","[3456][0-9]","([789][0-9]|100)"]'
        data-colors='["#dd3366","#ffcc00","#55aa44"]'
        class="horizontal left" >
    </div>
    <div data-type="label" data-device='par02'
         data-get='humidity'
         data-unit="%" class="top-space left"></div>
</div>
<div class="cell" >
    <div data-type="level" data-device='PWMRBuero' data-get='energyusedp'
        data-limits='["20","70","95"]'
        data-colors='["#dd3366","#ffcc00","#55aa44"]'
        class="horizontal left" >
    </div>

hier kommt der Code, wo par05 den Devicenamen PWMR ergänzen soll zu PWMRSchlafzimmer:


    <div data-type="label" data-device='PWMR"par05"' data-get='energyusedp' data-unit="%"
         class="top-space left">
   </div>
</div>
      <div class="cell-2 wider">
         <div data-type="switch"
            data-icon="fa-power-off"
            data-background-icon="fa-circle-thin"
            data-device="par04"
            data-on-color="green"
            data-on-background-color="orange"
            data-off-color="red"
            data-off-background-color="orange">
         </div>
      </div>
      <div class="cell-4 wider border-gray" data-type="popup">
         <div class="wider bg-lightgray"
            data-type="simplechart"
            data-device="par02"
            data-logdevice="par03"
            data-columnspec="4:temperature"
            data-minvalue="15"
            data-maxvalue="30"
            data-height="50"
            data-width="150"
            data-yticks="5">
         </div>
         <div class="dialog">
            <div
               data-caption="Temperatur"
               data-yunit="°C"
               data-type="simplechart"
               data-device="par02"
               data-logdevice="par03"
               data-columnspec="4:temperature" data-minvalue="15" data-maxvalue="30" data-yticks="1"
               data-height="250"
               data-width="500"
               >
            </div>
         </div>
      </div>
      <div class="cell-4 wider border-gray" data-type="popup">
         <div class="wider bg-lightgray"
            data-type="simplechart"
            data-device="par02"
            data-logdevice="par03"
            data-columnspec="4:humidity"
            data-minvalue="0"
            data-maxvalue="100"
            data-height="50"
            data-width="150"
            data-yticks="25">
         </div>
         <div class="dialog">
            <div
               data-type="simplechart"
               data-device="par02"
               data-logdevice="par03"
               data-columnspec="4:humidity" data-minvalue="0" data-maxvalue="100" data-yticks="25" >
            </div>
         </div>
      </div>
   </div>
</div>


wowogiengen

Offenbar reicht es, wenn man
die Parameternamen einfach zusammenschreibt:


<div class="cell-2 wider" data-type="thermostat" data-device='HzgSetpar05'></div>

und par05 wird dann so übergeben:

<div data-template="Hzg_template.html" data-parameter='{
"par00":"Schlafzimmer",
"par01":"HzgSetSchlafzimmer",
"par02":"HzgStatusSchlafzimmer",
"par03":"FileLog_HzgStatusSchlafzimmer",
"par04":"HzgAktorSchlafzimmer",
"par05":"Schlafzimmer"
}'>
</div>

Standarduser

Zitat von: wowogiengen am 10 Dezember 2017, 19:47:54
Offenbar reicht es, wenn man
die Parameternamen einfach zusammenschreibt:


<div class="cell-2 wider" data-type="thermostat" data-device='HzgSetpar05'></div>

und par05 wird dann so übergeben:

<div data-template="Hzg_template.html" data-parameter='{
"par00":"Schlafzimmer",
"par01":"HzgSetSchlafzimmer",
"par02":"HzgStatusSchlafzimmer",
"par03":"FileLog_HzgStatusSchlafzimmer",
"par04":"HzgAktorSchlafzimmer",
"par05":"Schlafzimmer"
}'>
</div>


Du könntest auch par05 weglassen und stattdessen par00 verwenden, die sind ja beide gleich.
Wenn du alle Devices nach dem gleichen Schema benamst reicht auch in Summe nur ein Parameter.
Das hatten wir hier kürzlich erst. Einfach im Forum mal etwas runter scrollen.

wowogiengen

Hallo Standarduser,
da hast du wieder recht, hab ich offensichtlich übersehen. par00 sollte als Text für das Label dienen, und nicht als Bezeichnung für die Geräte... Deswegen hatte ich par05 genommen.
Kannst du mir den Link zu
ZitatDas hatten wir hier kürzlich erst. Einfach im Forum mal etwas runter scrollen.
geben? dann muss ich nicht so lange suchen ;D

Viele Grüße Wolfgang