Ankündigung

Einklappen
Keine Ankündigung bisher.

Include-Widget

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Include-Widget

    Makki hat sich's in SourceForge.net: Open Automation: Detail: 3427308 - Ability to include config(snipplets) gewünscht und um eine Diskussion bzgl. Realisierung gebeten.

    Da ich nun auch die Automagische Russound-Config einbinden möchte, hab ich durchaus ein Eigeninteresse daran...

    Ich hätte einfach geplant ein neues "Widget" zu definieren das auf einen anderen Dateinamen verweist. Dort ist die oberste Ebene ein <page> Element und für'n Endanwender wird es auch nur so aussehen, als ob da eine Subseite ist.

    Gibt's andere Meinungen dazu?
    TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

    #2
    Keine Kritik, nur eine Anregung: ich denke PAGE ist etwas zu kurz gedacht, wenn dann gleich "richtig", also egal wo&wie eingefügt, ein generisches Include eben..
    Notfalls Server-seitig, ich hätte gehofft das es dafür evtl. magische XML/JS-Mechanismen gibt

    Aber Notfalls macht mans Server-seitig, bevor das einen mords-aufwand im Client/Editor nach sich zieht!? Da könnt ichs wenigstens ohne Hilfe

    Makki
    EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
    -> Bitte KEINE PNs!

    Kommentar


      #3
      Wie wäre es stattdessen mit einer Art Wizard im Editor, der einem das fertige Element-Wirrwarr rein zieht?

      Ich kenne den Russound-Code nicht, aber es klingt wie eine Vorlage, wie man sie für andere Szenarien (Rolläden Komplettpaket bspw.) auch verwenden würde.

      Includes werden dazu führen dass die User die auch anpassen wollen. Sprich Editor, spricht mehr Config-Dateien die man beim Update nicht überbügeln darf,... im Zweifel auch dass man das gleiche Include mehrmals aber in unterschiedlich nutzen will.

      Ich schreib das ohne jede Kenntnisse vom Russound-Code - vielleicht ist das Szenario ja ganz anders als ich es verstehe.

      Grüße,
      Julian

      Kommentar


        #4
        Der Russound Generator ist in SourceForge.net Repository - [openautomation] Contents of /tools/russconnectd/trunk/cfgmaker.pl

        Die Ausgabe sieht z.B. so aus:
        Code:
            <page name="Multiroom Zone3">
              <switch mapping="OnOff" styling="RedGreen">
                <label>Power</label>
                <address transform="DPT:1.001" readonly="false" type="">10/1/10</address>
                <address transform="DPT:1.001" readonly="true" type="">10/1/30</address>
              </switch>
              <slide min="0" max="100">
                <label>Vol</label>
                <address transform="DPT:5.001" readonly="false" type="">10/1/12</address>
                <address transform="DPT:5.001" readonly="true" type="">10/1/32</address>
              </slide>
              <info format="">
                <label>Source</label>
                <address transform="DPT:5.010" readonly="false" type="">10/1/11</address>
                <address transform="DPT:5.010" readonly="true" type="">10/1/31</address>
              </info>
              <multitrigger button1label="UKW-Tuner" button1value="0" button2label="vdr/mpd" button2value="1" button3label="Denon-WZ" button3value="2" button4label="WG1" button4value="3">
                <label>Source</label>
                <address transform="DPT:5.010" readonly="false" type="">10/1/11</address>
                <address transform="DPT:5.010" readonly="true" type="">10/1/31</address>
              </multitrigger>
              <multitrigger button1label="WG2" button1value="4" button2label="Hobby" button2value="5">
                <label>Source</label>
                <address transform="DPT:5.010" readonly="false" type="">10/1/11</address>
                <address transform="DPT:5.010" readonly="true" type="">10/1/31</address>
              </multitrigger>
              <switch mapping="OnOff" styling="RedGreen">
                <label>Loudness</label>
                <address transform="DPT:1.001" readonly="false" type="">10/1/15</address>
                <address transform="DPT:1.001" readonly="true" type="">10/1/35</address>
              </switch>
              <infotrigger button1label="+" button1value="1" button2label="-" button2value="0" align="center" infoposition="1" format="%.0f %%">
                <label>Volume</label>
                <address transform="DPT:1.008" readonly="false" type="">10/1/22</address>
                <address transform="DPT:5.001" readonly="true" type="">10/1/12</address>
                <address transform="DPT:5.001" readonly="true" type="">10/1/32</address>
              </infotrigger>
              <info format="%.0f %%">
                <label>TurnOn Vol</label>
                <address transform="DPT:5.001" readonly="false" type="">10/1/19</address>
                <address transform="DPT:5.001" readonly="true" type="">10/1/39</address>
              </info>
              <slide min="0" max="100">
                <label>TurnOn Vol</label>
                <address transform="DPT:5.001" readonly="false" type="">10/1/19</address>
                <address transform="DPT:5.001" readonly="true" type="">10/1/39</address>
              </slide>
              <slide min="-10" max="10">
                <label>Bass</label>
                <address transform="DPT:6.001" readonly="false" type="">10/1/13</address>
                <address transform="DPT:6.001" readonly="true" type="">10/1/33</address>
              </slide>
              <slide min="-10" max="10">
                <label>Treble</label>
                <address transform="DPT:6.001" readonly="false" type="">10/1/14</address>
                <address transform="DPT:6.001" readonly="true" type="">10/1/34</address>
              </slide>
              <slide min="-10" max="10">
                <label>Balance</label>
                <address transform="DPT:6.001" readonly="false" type="">10/1/16</address>
                <address transform="DPT:6.001" readonly="true" type="">10/1/36</address>
              </slide>
              <switch mapping="OnOff" styling="RedGreen">
                <label>Party</label>
                <address transform="DPT:1.001" readonly="false" type="">10/1/17</address>
                <address transform="DPT:1.001" readonly="true" type="">10/1/37</address>
              </switch>
              <switch mapping="OnOff" styling="RedGreen">
                <label>DnD</label>
                <address transform="DPT:1.001" readonly="false" type="">10/1/18</address>
                <address transform="DPT:1.001" readonly="true" type="">10/1/38</address>
              </switch>
            </page>
            <page name="Multiroom WireGate">
              <switch mapping="OnOff" styling="RedGreen">
                <label>Power</label>
                <address transform="DPT:1.001" readonly="false" type="">10/1/50</address>
                <address transform="DPT:1.001" readonly="true" type="">10/1/70</address>
              </switch>
              <slide min="0" max="100">
                <label>Vol</label>
                <address transform="DPT:5.001" readonly="false" type="">10/1/52</address>
                <address transform="DPT:5.001" readonly="true" type="">10/1/72</address>
              </slide>
              <info format="">
                <label>Source</label>
                <address transform="DPT:5.010" readonly="false" type="">10/1/51</address>
                <address transform="DPT:5.010" readonly="true" type="">10/1/71</address>
              </info>
              <multitrigger button1label="UKW-Tuner" button1value="0" button2label="vdr/mpd" button2value="1" button3label="Denon-WZ" button3value="2" button4label="WG1" button4value="3">
                <label>Source</label>
                <address transform="DPT:5.010" readonly="false" type="">10/1/51</address>
                <address transform="DPT:5.010" readonly="true" type="">10/1/71</address>
              </multitrigger>
              <multitrigger button1label="WG2" button1value="4" button2label="Hobby" button2value="5">
                <label>Source</label>
                <address transform="DPT:5.010" readonly="false" type="">10/1/51</address>
                <address transform="DPT:5.010" readonly="true" type="">10/1/71</address>
              </multitrigger>
              <switch mapping="OnOff" styling="RedGreen">
                <label>Loudness</label>
                <address transform="DPT:1.001" readonly="false" type="">10/1/55</address>
                <address transform="DPT:1.001" readonly="true" type="">10/1/75</address>
              </switch>
              <infotrigger button1label="+" button1value="1" button2label="-" button2value="0" align="center" infoposition="1" format="%.0f %%">
                <label>Volume</label>
                <address transform="DPT:1.008" readonly="false" type="">10/1/62</address>
                <address transform="DPT:5.001" readonly="true" type="">10/1/52</address>
                <address transform="DPT:5.001" readonly="true" type="">10/1/72</address>
              </infotrigger>
              <info format="%.0f %%">
                <label>TurnOn Vol</label>
                <address transform="DPT:5.001" readonly="false" type="">10/1/59</address>
                <address transform="DPT:5.001" readonly="true" type="">10/1/79</address>
              </info>
              <slide min="0" max="100">
                <label>TurnOn Vol</label>
                <address transform="DPT:5.001" readonly="false" type="">10/1/59</address>
                <address transform="DPT:5.001" readonly="true" type="">10/1/79</address>
              </slide>
              <slide min="-10" max="10">
                <label>Bass</label>
                <address transform="DPT:6.001" readonly="false" type="">10/1/53</address>
                <address transform="DPT:6.001" readonly="true" type="">10/1/73</address>
              </slide>
              <slide min="-10" max="10">
                <label>Treble</label>
                <address transform="DPT:6.001" readonly="false" type="">10/1/54</address>
                <address transform="DPT:6.001" readonly="true" type="">10/1/74</address>
              </slide>
              <slide min="-10" max="10">
                <label>Balance</label>
                <address transform="DPT:6.001" readonly="false" type="">10/1/56</address>
                <address transform="DPT:6.001" readonly="true" type="">10/1/76</address>
              </slide>
              <switch mapping="OnOff" styling="RedGreen">
                <label>Party</label>
                <address transform="DPT:1.001" readonly="false" type="">10/1/57</address>
                <address transform="DPT:1.001" readonly="true" type="">10/1/77</address>
              </switch>
              <switch mapping="OnOff" styling="RedGreen">
                <label>DnD</label>
                <address transform="DPT:1.001" readonly="false" type="">10/1/58</address>
                <address transform="DPT:1.001" readonly="true" type="">10/1/78</address>
              </switch>
            </page>
            <page name="Multiroom BadEG">
              <switch mapping="OnOff" styling="RedGreen">
                <label>Power</label>
                <address transform="DPT:1.001" readonly="false" type="">10/1/90</address>
                <address transform="DPT:1.001" readonly="true" type="">10/1/110</address>
              </switch>
              <slide min="0" max="100">
                <label>Vol</label>
                <address transform="DPT:5.001" readonly="false" type="">10/1/92</address>
                <address transform="DPT:5.001" readonly="true" type="">10/1/112</address>
              </slide>
              <info format="">
                <label>Source</label>
                <address transform="DPT:5.010" readonly="false" type="">10/1/91</address>
                <address transform="DPT:5.010" readonly="true" type="">10/1/111</address>
              </info>
              <multitrigger button1label="UKW-Tuner" button1value="0" button2label="vdr/mpd" button2value="1" button3label="Denon-WZ" button3value="2" button4label="WG1" button4value="3">
                <label>Source</label>
                <address transform="DPT:5.010" readonly="false" type="">10/1/91</address>
                <address transform="DPT:5.010" readonly="true" type="">10/1/111</address>
              </multitrigger>
              <multitrigger button1label="WG2" button1value="4" button2label="Hobby" button2value="5">
                <label>Source</label>
                <address transform="DPT:5.010" readonly="false" type="">10/1/91</address>
                <address transform="DPT:5.010" readonly="true" type="">10/1/111</address>
              </multitrigger>
              <switch mapping="OnOff" styling="RedGreen">
                <label>Loudness</label>
                <address transform="DPT:1.001" readonly="false" type="">10/1/95</address>
                <address transform="DPT:1.001" readonly="true" type="">10/1/115</address>
              </switch>
              <infotrigger button1label="+" button1value="1" button2label="-" button2value="0" align="center" infoposition="1" format="%.0f %%">
                <label>Volume</label>
                <address transform="DPT:1.008" readonly="false" type="">10/1/102</address>
                <address transform="DPT:5.001" readonly="true" type="">10/1/92</address>
                <address transform="DPT:5.001" readonly="true" type="">10/1/112</address>
              </infotrigger>
              <info format="%.0f %%">
                <label>TurnOn Vol</label>
                <address transform="DPT:5.001" readonly="false" type="">10/1/99</address>
                <address transform="DPT:5.001" readonly="true" type="">10/1/119</address>
              </info>
              <slide min="0" max="100">
                <label>TurnOn Vol</label>
                <address transform="DPT:5.001" readonly="false" type="">10/1/99</address>
                <address transform="DPT:5.001" readonly="true" type="">10/1/119</address>
              </slide>
              <slide min="-10" max="10">
                <label>Bass</label>
                <address transform="DPT:6.001" readonly="false" type="">10/1/93</address>
                <address transform="DPT:6.001" readonly="true" type="">10/1/113</address>
              </slide>
              <slide min="-10" max="10">
                <label>Treble</label>
                <address transform="DPT:6.001" readonly="false" type="">10/1/94</address>
                <address transform="DPT:6.001" readonly="true" type="">10/1/114</address>
              </slide>
              <slide min="-10" max="10">
                <label>Balance</label>
                <address transform="DPT:6.001" readonly="false" type="">10/1/96</address>
                <address transform="DPT:6.001" readonly="true" type="">10/1/116</address>
              </slide>
              <switch mapping="OnOff" styling="RedGreen">
                <label>Party</label>
                <address transform="DPT:1.001" readonly="false" type="">10/1/97</address>
                <address transform="DPT:1.001" readonly="true" type="">10/1/117</address>
              </switch>
              <switch mapping="OnOff" styling="RedGreen">
                <label>DnD</label>
                <address transform="DPT:1.001" readonly="false" type="">10/1/98</address>
                <address transform="DPT:1.001" readonly="true" type="">10/1/118</address>
              </switch>
            </page>
            <page name="Multiroom WC">
              <switch mapping="OnOff" styling="RedGreen">
                <label>Power</label>
                <address transform="DPT:1.001" readonly="false" type="">10/1/130</address>
                <address transform="DPT:1.001" readonly="true" type="">10/1/150</address>
              </switch>
              <slide min="0" max="100">
                <label>Vol</label>
                <address transform="DPT:5.001" readonly="false" type="">10/1/132</address>
                <address transform="DPT:5.001" readonly="true" type="">10/1/152</address>
              </slide>
              <info format="">
                <label>Source</label>
                <address transform="DPT:5.010" readonly="false" type="">10/1/131</address>
                <address transform="DPT:5.010" readonly="true" type="">10/1/151</address>
              </info>
              <multitrigger button1label="UKW-Tuner" button1value="0" button2label="vdr/mpd" button2value="1" button3label="Denon-WZ" button3value="2" button4label="WG1" button4value="3">
                <label>Source</label>
                <address transform="DPT:5.010" readonly="false" type="">10/1/131</address>
                <address transform="DPT:5.010" readonly="true" type="">10/1/151</address>
              </multitrigger>
              <multitrigger button1label="WG2" button1value="4" button2label="Hobby" button2value="5">
                <label>Source</label>
                <address transform="DPT:5.010" readonly="false" type="">10/1/131</address>
                <address transform="DPT:5.010" readonly="true" type="">10/1/151</address>
              </multitrigger>
              <switch mapping="OnOff" styling="RedGreen">
                <label>Loudness</label>
                <address transform="DPT:1.001" readonly="false" type="">10/1/135</address>
                <address transform="DPT:1.001" readonly="true" type="">10/1/155</address>
              </switch>
              <infotrigger button1label="+" button1value="1" button2label="-" button2value="0" align="center" infoposition="1" format="%.0f %%">
                <label>Volume</label>
                <address transform="DPT:1.008" readonly="false" type="">10/1/142</address>
                <address transform="DPT:5.001" readonly="true" type="">10/1/132</address>
                <address transform="DPT:5.001" readonly="true" type="">10/1/152</address>
              </infotrigger>
              <info format="%.0f %%">
                <label>TurnOn Vol</label>
                <address transform="DPT:5.001" readonly="false" type="">10/1/139</address>
                <address transform="DPT:5.001" readonly="true" type="">10/1/159</address>
              </info>
              <slide min="0" max="100">
                <label>TurnOn Vol</label>
                <address transform="DPT:5.001" readonly="false" type="">10/1/139</address>
                <address transform="DPT:5.001" readonly="true" type="">10/1/159</address>
              </slide>
              <slide min="-10" max="10">
                <label>Bass</label>
                <address transform="DPT:6.001" readonly="false" type="">10/1/133</address>
                <address transform="DPT:6.001" readonly="true" type="">10/1/153</address>
              </slide>
              <slide min="-10" max="10">
                <label>Treble</label>
                <address transform="DPT:6.001" readonly="false" type="">10/1/134</address>
                <address transform="DPT:6.001" readonly="true" type="">10/1/154</address>
              </slide>
              <slide min="-10" max="10">
                <label>Balance</label>
                <address transform="DPT:6.001" readonly="false" type="">10/1/136</address>
                <address transform="DPT:6.001" readonly="true" type="">10/1/156</address>
              </slide>
              <switch mapping="OnOff" styling="RedGreen">
                <label>Party</label>
                <address transform="DPT:1.001" readonly="false" type="">10/1/137</address>
                <address transform="DPT:1.001" readonly="true" type="">10/1/157</address>
              </switch>
              <switch mapping="OnOff" styling="RedGreen">
                <label>DnD</label>
                <address transform="DPT:1.001" readonly="false" type="">10/1/138</address>
                <address transform="DPT:1.001" readonly="true" type="">10/1/158</address>
              </switch>
            </page>
            <page name="Multiroom Kueche">
              <switch mapping="OnOff" styling="RedGreen">
                <label>Power</label>
                <address transform="DPT:1.001" readonly="false" type="">10/1/170</address>
                <address transform="DPT:1.001" readonly="true" type="">10/1/190</address>
              </switch>
              <slide min="0" max="100">
                <label>Vol</label>
                <address transform="DPT:5.001" readonly="false" type="">10/1/172</address>
                <address transform="DPT:5.001" readonly="true" type="">10/1/192</address>
              </slide>
              <info format="">
                <label>Source</label>
                <address transform="DPT:5.010" readonly="false" type="">10/1/171</address>
                <address transform="DPT:5.010" readonly="true" type="">10/1/191</address>
              </info>
              <multitrigger button1label="UKW-Tuner" button1value="0" button2label="vdr/mpd" button2value="1" button3label="Denon-WZ" button3value="2" button4label="WG1" button4value="3">
                <label>Source</label>
                <address transform="DPT:5.010" readonly="false" type="">10/1/171</address>
                <address transform="DPT:5.010" readonly="true" type="">10/1/191</address>
              </multitrigger>
              <multitrigger button1label="WG2" button1value="4" button2label="Hobby" button2value="5">
                <label>Source</label>
                <address transform="DPT:5.010" readonly="false" type="">10/1/171</address>
                <address transform="DPT:5.010" readonly="true" type="">10/1/191</address>
              </multitrigger>
              <switch mapping="OnOff" styling="RedGreen">
                <label>Loudness</label>
                <address transform="DPT:1.001" readonly="false" type="">10/1/175</address>
                <address transform="DPT:1.001" readonly="true" type="">10/1/195</address>
              </switch>
              <infotrigger button1label="+" button1value="1" button2label="-" button2value="0" align="center" infoposition="1" format="%.0f %%">
                <label>Volume</label>
                <address transform="DPT:1.008" readonly="false" type="">10/1/182</address>
                <address transform="DPT:5.001" readonly="true" type="">10/1/172</address>
                <address transform="DPT:5.001" readonly="true" type="">10/1/192</address>
              </infotrigger>
              <info format="%.0f %%">
                <label>TurnOn Vol</label>
                <address transform="DPT:5.001" readonly="false" type="">10/1/179</address>
                <address transform="DPT:5.001" readonly="true" type="">10/1/199</address>
              </info>
              <slide min="0" max="100">
                <label>TurnOn Vol</label>
                <address transform="DPT:5.001" readonly="false" type="">10/1/179</address>
                <address transform="DPT:5.001" readonly="true" type="">10/1/199</address>
              </slide>
              <slide min="-10" max="10">
                <label>Bass</label>
                <address transform="DPT:6.001" readonly="false" type="">10/1/173</address>
                <address transform="DPT:6.001" readonly="true" type="">10/1/193</address>
              </slide>
              <slide min="-10" max="10">
                <label>Treble</label>
                <address transform="DPT:6.001" readonly="false" type="">10/1/174</address>
                <address transform="DPT:6.001" readonly="true" type="">10/1/194</address>
              </slide>
              <slide min="-10" max="10">
                <label>Balance</label>
                <address transform="DPT:6.001" readonly="false" type="">10/1/176</address>
                <address transform="DPT:6.001" readonly="true" type="">10/1/196</address>
              </slide>
              <switch mapping="OnOff" styling="RedGreen">
                <label>Party</label>
                <address transform="DPT:1.001" readonly="false" type="">10/1/177</address>
                <address transform="DPT:1.001" readonly="true" type="">10/1/197</address>
              </switch>
              <switch mapping="OnOff" styling="RedGreen">
                <label>DnD</label>
                <address transform="DPT:1.001" readonly="false" type="">10/1/178</address>
                <address transform="DPT:1.001" readonly="true" type="">10/1/198</address>
              </switch>
            </page>
            <page name="Multiroom BadUG">
              <switch mapping="OnOff" styling="RedGreen">
                <label>Power</label>
                <address transform="DPT:1.001" readonly="false" type="">10/1/210</address>
                <address transform="DPT:1.001" readonly="true" type="">10/1/230</address>
              </switch>
              <slide min="0" max="100">
                <label>Vol</label>
                <address transform="DPT:5.001" readonly="false" type="">10/1/212</address>
                <address transform="DPT:5.001" readonly="true" type="">10/1/232</address>
              </slide>
              <info format="">
                <label>Source</label>
                <address transform="DPT:5.010" readonly="false" type="">10/1/211</address>
                <address transform="DPT:5.010" readonly="true" type="">10/1/231</address>
              </info>
              <multitrigger button1label="UKW-Tuner" button1value="0" button2label="vdr/mpd" button2value="1" button3label="Denon-WZ" button3value="2" button4label="WG1" button4value="3">
                <label>Source</label>
                <address transform="DPT:5.010" readonly="false" type="">10/1/211</address>
                <address transform="DPT:5.010" readonly="true" type="">10/1/231</address>
              </multitrigger>
              <multitrigger button1label="WG2" button1value="4" button2label="Hobby" button2value="5">
                <label>Source</label>
                <address transform="DPT:5.010" readonly="false" type="">10/1/211</address>
                <address transform="DPT:5.010" readonly="true" type="">10/1/231</address>
              </multitrigger>
              <switch mapping="OnOff" styling="RedGreen">
                <label>Loudness</label>
                <address transform="DPT:1.001" readonly="false" type="">10/1/215</address>
                <address transform="DPT:1.001" readonly="true" type="">10/1/235</address>
              </switch>
              <infotrigger button1label="+" button1value="1" button2label="-" button2value="0" align="center" infoposition="1" format="%.0f %%">
                <label>Volume</label>
                <address transform="DPT:1.008" readonly="false" type="">10/1/222</address>
                <address transform="DPT:5.001" readonly="true" type="">10/1/212</address>
                <address transform="DPT:5.001" readonly="true" type="">10/1/232</address>
              </infotrigger>
              <info format="%.0f %%">
                <label>TurnOn Vol</label>
                <address transform="DPT:5.001" readonly="false" type="">10/1/219</address>
                <address transform="DPT:5.001" readonly="true" type="">10/1/239</address>
              </info>
              <slide min="0" max="100">
                <label>TurnOn Vol</label>
                <address transform="DPT:5.001" readonly="false" type="">10/1/219</address>
                <address transform="DPT:5.001" readonly="true" type="">10/1/239</address>
              </slide>
              <slide min="-10" max="10">
                <label>Bass</label>
                <address transform="DPT:6.001" readonly="false" type="">10/1/213</address>
                <address transform="DPT:6.001" readonly="true" type="">10/1/233</address>
              </slide>
              <slide min="-10" max="10">
                <label>Treble</label>
                <address transform="DPT:6.001" readonly="false" type="">10/1/214</address>
                <address transform="DPT:6.001" readonly="true" type="">10/1/234</address>
              </slide>
              <slide min="-10" max="10">
                <label>Balance</label>
                <address transform="DPT:6.001" readonly="false" type="">10/1/216</address>
                <address transform="DPT:6.001" readonly="true" type="">10/1/236</address>
              </slide>
              <switch mapping="OnOff" styling="RedGreen">
                <label>Party</label>
                <address transform="DPT:1.001" readonly="false" type="">10/1/217</address>
                <address transform="DPT:1.001" readonly="true" type="">10/1/237</address>
              </switch>
              <switch mapping="OnOff" styling="RedGreen">
                <label>DnD</label>
                <address transform="DPT:1.001" readonly="false" type="">10/1/218</address>
                <address transform="DPT:1.001" readonly="true" type="">10/1/238</address>
              </switch>
            </page>
        Aber die Ausgabe kann man ja dahin bringen zu dem was man braucht...

        Wo ich mir Includes gut vorstellen kann wären:
        • Automatisch generierte Seiten, s.o.
        • Wiederkehrende Seiten bei Device oder Anwender spezifischen Seiten.

        Ersteres sollte natürlich auch mit dem Editor gehen, wenn der eine Art Template-Mechanismus unterstützt (was z.B. bei komplexeren, zusammengesetzten Widgets wie Rolladen/Jalousie schon im kleinen Sinn macht).
        Wichtig bei den Templates wäre aber, dass die "jeder" schreiben kann, d.h. nicht komplexer sind als einen Perl-Config-Generator...


        Ein Problem bei der Template-Geschichte gibt es aber noch: wenn es wieder Features gibt, die der Editor nicht kann, dann darf der die nicht mehr zerstören... (z.B. aktuell Groups, das 2D zählt nicht ganz da noch zu unreif - für mich bei der Entwicklung des 2D/3D Codes wäre dennoch ein Ingorieren besser als ein weglassen...)


        Gerade eine Lösung des Problems dürfte beim Editor einige Anstrengungen bedingen. Aber evtl. kann man die gemeinsam mit den Groups und dem 2D/3D angehen....

        Ein Include Serverseitig finde ich nicht so gut, denn wenn ich das ganze auf einem Mini-System laufen lassen möchte, das gerade so HTTP kann?
        (Und: der Editor hat bei SSI eigentlich keine Chance mehr das zu erkennen => das wäre eine Einbahnstraße sobald ich die Seite im Editor speichere, was aber gerade bei Includes nicht gewünscht sein kein. Die will ich 1x anfassen und alle Configs, die die einbinden, sollen die Änderung zeigen)

        Aber ein generisches Include das im Zweifel nur ein einziges Widget einbaut sollte eigentlich genau so leicht gehen.

        Evtl. baue ich später mal so was ein. Auch wenn wir Templates haben dürften die Includes nicht obsolet sein.
        Ein Überbügeln der includeten (sic!) Config-Dateien wird kaum passieren. Wir bügeln ja nur über die Demo drüber. Der Rest gehört dem Kunden.
        (Wäre es da nicht besser mal das ganze zu trennen? Keine Ahnung wie Debian oder gar die LSB vorschreibt mit konfigurierbaren Web-Anwendungen umzugehen...)
        TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

        Kommentar


          #5
          Wobei man den Generator (ist eh nicht in fertig im SVN sehe ich gerade) auch ändern kann, das muss nicht die Messlatte oder "Definition" sein!

          Es geht unterm Strich einfach nur darum, bestimmte Teile der Config mehrfach an verschiedenen Stellen oder in verschiedenen Configs oder auch auf versch. Hosts wiederzuverwenden, ohne es jew. individuell pflegen zu müssen; also wenn man zum Include/Template ein Widget XY hinzufügt oder dessen Namen ändert (oder...), man die Sache ggfs. nur einmal ändert und/oder rumkopieren kann.

          Makki
          EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
          -> Bitte KEINE PNs!

          Kommentar


            #6
            Ich hätte gern includes, um die immer weiter wachsende xml Datein mal in Räum/Funktionen etc aufzuteilen. Bleeding edge muss man ja mit dem XML Editor machen. Da würde das helfen, etwas den Überblick zu behalten.
            Aber ja, das kann man sich natürlich auch fix in bash lokal basteln...
            Derzeit zwischen Kistenauspacken und Garten anlegen.
            Baublog im Profil.

            Kommentar


              #7
              Genau das ist mit kürzlich auch aufgefallen.

              Ich hab z.B. eine normale Config in der nur das wichtigste drin ist, also keine eingebundenen Bilder, iframes etc. so dass das schön schnell läd, und eine extended in der alles drin ist (sein sollte ...).

              Praktisch wäre is jetzt die einzelnen Seiten oder weiß ich was zentral zu definieren und in den configs nurnoch dadrauf zu verweisen.

              Wie das umzusetzen ist, keine Ahnung jedenfalls nicht auf die schnelle, aber es geht auch in die include Richtung wie von Chris angesprochen.

              Kommentar


                #8
                So, in Revision 611 ist jetzt mal eine Implementierung drinnen.

                So minimalistisch die ist, ist sie auch erprobt

                Im Grunde gibt man beim Attribut src einfach eine andere XML-Datei an, die statt des Include-Elements eingebuden wird. D.h. die andere Datei mag aus einem <page>-Element mit allem möglichen bestehen, oder aber nur aus etwas einfachen wie einem <line/>...
                TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

                Kommentar


                  #9
                  [WICHTIG]Wichtig für jeden der hier über Geschwindigkeit spricht:
                  Ein Aufteilen in mehrere Dateien per Include-Widget macht das Laden der Seite langsamer!
                  [/WICHTIG]
                  Denn man muss synchron die eingebundenen Dateien nachladen. Dass heißt auf's Netzwerk und den Server zu warten.

                  Was man dafür gewinnt ist eine einfachere Konfiguration und Wartbarkeit so wie ggf. eine erhöhte Geschwindigkeit durch weniger Ballast zur Laufzeit.

                  (Ein Server seitiger Include-Mechanismus würde beide Vorteile vereinen, aber zum Nachteil der erhöhten Server Anforderungen. There's no free lunch...)
                  TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

                  Kommentar


                    #10
                    Deswegen auch in der Überschrift "not breaking the editor" und im Text "mainly to share opinions and find a possible way"

                    Denn das Feature ist es mir wirklich nicht Wert, im Editor trouble auszulösen; wie greentux schon eingeworfen hat, Männers machen sich dafür mal eben ein Shellscript, kein grösseres Problem, cat, grep, awk, sed&Co können sowas

                    Mir ging es wirklich eher um die (ggfs. mittel/langfristige) Diskussion wie man sowas geschickt integriert..
                    Die Patentidee dazu fehlt mir leider auch, Serverseitig wäre aber IMHO Ok, das geht recht zackig, ich will die (wenigen) PHP's des Editors eh mittelfristig auf C "backporten"

                    Makki
                    EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
                    -> Bitte KEINE PNs!

                    Kommentar


                      #11
                      Zitat von makki Beitrag anzeigen
                      Deswegen auch in der Überschrift "not breaking the editor" und im Text "mainly to share opinions and find a possible way"
                      [...]
                      Mir ging es wirklich eher um die (ggfs. mittel/langfristige) Diskussion wie man sowas geschickt integriert..
                      Deswegen hab ich den Feature-Request auch nicht geschlossen

                      Es ist jetzt einfach eine Art Proof-of-Concept als Basis für die Diskussion.

                      Evtl. sagt ja Julian dass das genial einfach in den Editor integrierbar ist. Oder er sagt das Gegenteil. Oder wir treffen uns in der Mitte. Oder [...].
                      TS2, B.IQ, DALI, WireGate für 1wire so wie Server für Logik und als KNX Visu die CometVisu auf HomeCockpit Minor. - Bitte keine PNs, Fragen gehören in das Forum, damit jeder was von den Antworten hat!

                      Kommentar


                        #12
                        Eben gut, jetzt haben wir zwei Diskussionsgrundlagen und ein bisschen mehr Fleisch dazu, ich denke bei sowas essentiellem ist das garnicht falsch..
                        Es hat sich manchmal bewährt, lieber erstmal 3 Monate darüber zu reden

                        Makki
                        EIB/KNX & WireGate & HS3, Russound,mpd,vdr,DM8000, DALI, DMX
                        -> Bitte KEINE PNs!

                        Kommentar


                          #13
                          Zitat von Chris M. Beitrag anzeigen
                          Evtl. sagt ja Julian dass das genial einfach in den Editor integrierbar ist. Oder er sagt das Gegenteil. Oder wir treffen uns in der Mitte. Oder [...].
                          "Genial einfach" nicht, aber realistischer als Gruppen.

                          Beim Speichern serialisiert der Editor alles was er im Browser vorfindet. Deshalb zerstört er auch "was er nicht kennt".

                          Für das Include braucht man ihm nur beibringen, dass er dessen Inhalt überspringt und nur den filename wegspeichert. Dazu muss er erst mal erkennen, dass es ein Include ist und gibt (= der Inhalt des Includes muss in einem eigenen div sein) und er muss den Original-filename vorfinden. Mit ein wenig räumlichen Abstand zu meiner Workstation behaupte ich mal, dass das geht.

                          Grüße,
                          Julian

                          Gesendet von meinem GT-I9100 mit Tapatalk

                          Kommentar


                            #14
                            Aktueller Stand vom include-widget?

                            Hallo allerseits,

                            die visu_config.xml wird ja schnell mächtig groß. Ich fände es sehr wertvoll, wenn ich <meta>, aber auch <page> in includes auslagern könnte, um im "Haupt-XML" nur die Gesamtstruktur festzulegen, jede Seitenbeschreibung aber in einem eigenen Include steckt.

                            Gerade beim bearbeiten der <meta>-Daten (z.B. Mappings) wäre es auch sehr hilfreich, dass ich beide auf einem großen Monitor nebeneinander darstellen und passend editieren könnte. Aus meiner (schlichten Anwender-) Sicht würde das vieles vereinfachen.

                            Mir ist klar, dass die Includes den Aufruf und das Framework eher verlangsamen, aber das dürfte nicht wirklich spürbar sein.

                            Ich habe gerade
                            <include src="./visu_config_include_meta.xml">
                            hat aber nicht funktioniert. Im Include habe ich im XML-Header "standalone" auf no gesetzt und beginne danach mit <mappings>. Geht das vielleicht alles schon und ich benutze es nur falsch? in der 0.8.0-Doku habe ich nichts gefunden. Und vom XSD her sollte es ja so zumindest formal korrekt sein.

                            Viele Grüße,
                            Carsten

                            Kommentar


                              #15
                              Hallo Carsten

                              Zu include steht im Handbuch auch nix weil es auch noch keine offizielle Funktion der CometVisu ist. Es ist lediglich ein Test-Widget als Diskusionsgrundlage für die Entwickler. So wie ich das Verstanden habe lassen sich damit momentan auch nur Seiten (Pages) auslagern. Es ist also nicht vergleichbar mit einem include Befehl z.B. bei PHP mit dem man jeden beliebigen Inhalt einbinden kann. Also kann auch das auslagern des Meta Bereichs so nicht funktionieren.
                              Gruss Patrik alias swiss

                              Kommentar

                              Lädt...
                              X