Ankündigung

Einklappen
Keine Ankündigung bisher.

Idee: "Meta-Configuration"/Templates

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

    Idee: "Meta-Configuration"/Templates

    Hallo,

    beim Betrachten einiger Beispiele hier im Forum kam mir folgende Idee:

    Viele arbeiten Raumweise. Da gibt's dann die Jalousien, die Heizung, PM-Status, Licht, ...

    Meine Visu ist momentan nach Gewerken aufgebaut: Licht, Heizung, Verschattung, PM-Status, Fensterkontakte.

    Eigentlich macht beides Sinn. Sprich: Man möchte eigentlich beides in der Visu haben. Mal ist das eine, mal das andere praktischer.

    Nun möchte man sich aber ja nicht beide Arten "Malen".

    Jetzt könnte man "Blöcke" definieren, die man dann wiederverwenden kann:

    ZurDefinition
    Code:
    <Block_Def type=Heating room=Wohnzimmer>
    BlaBlub
    </Block_Def>
    Zur Nutzung
    Code:
    <Block_Use type=Heating room=Wohnzimmer>
    <Block_Use type=Heating room=Arbeitszimmer>

    Eine andere Idee wäre es Templates zu erzeugen. Ein Zimmer wird dann einmal definiert bekommt dann nur noch verschiede GAs bei Nutzung zugewiesen

    Code:
    <MyRoom Heating Shutters Window1 Window2>
          <info mapping="Close_Open" styling="Red_Green">
            <label>Hintertür</label>
            <address transform="DPT:1.001" readonly="true" variant="">Window1</address>
          </info>
          <info mapping="Close_Open" styling="Red_Green">
            <label>Fenster</label>
            <address transform="DPT:1.001" readonly="true" variant="">Window2</address>
          </info>
          <info mapping="Close_Open" styling="Red_Green">
            <label>Hintertür</label>
            <address transform="DPT:1.001" readonly="true" variant="">Heating</address>
          </info>
          <info mapping="Close_Open" styling="Red_Green">
            <label>Hintertür</label>
            <address transform="DPT:1.001" readonly="true" variant="">Shutters</address>
          </info>
    Und bei der Nutzung:
    <UseMyRoom 6/1/1 6/2/3 5/3/3 5/3/4>
    <UseMyRoom 6/2/1 6/3/3 5/4/3 5/4/4>

    Usw.
    Code:
    <MyRoom Heating Shutters Window1 Window2>
          <info mapping="Close_Open" styling="Red_Green">
            <label>Hintertür</label>
            <address transform="DPT:1.001" readonly="true" variant="">Window1</address>
          </info>
    <Custom1>
          <info mapping="Close_Open" styling="Red_Green">
            <label>Fenster</label>
            <address transform="DPT:1.001" readonly="true" variant="">Window2</address>
          </info>
    <Custom2>
          <info mapping="Close_Open" styling="Red_Green">
            <label>Hintertür</label>
            <address transform="DPT:1.001" readonly="true" variant="">Heating</address>
          </info>
          <info mapping="Close_Open" styling="Red_Green">
            <label>Hintertür</label>
            <address transform="DPT:1.001" readonly="true" variant="">Shutters</address>
          </info>
    Und bei der Nutzung:
    <UseMyRoom 6/1/1 6/2/3 5/3/3 5/3/4>
    <Custom1>
    hier eben das eigene rein
    </Custom1>
    <UseMyRoom 6/2/1 6/3/3 5/4/3 5/4/4>
    <Custom1>
    hier eben das eigene rein
    </Custom1>
    <Custom2>
    hier eben das eigene rein
    </Custom2>
    Diese Variante wäre natürlich dann recht unflexibel, da man räume nicht weiter anpassen kann.
    Daher wäre vielleicht ein Skript clever, welches obiges in eine "klassische" visu_config.xml transferriert? Oder zusätzliche "custom" Bereiche?

    Schnappsidee?

    Gruß,
    Hendrik

    #2
    Nun, eine einfache Aufzählung der GAs kann leider nicht funktionieren, da ja Qualifyer wie read/write/readwrite noch dazu müssen. Aber das ist ja nur eine Frage der Notation...

    Nicht auf Widget-Level aber IIRC auf Seiten-Level geht so etwas ähnliches bereits per <include>-Widget (ab SVN).

    Für Widget-Level frage ich mich, ob das wirklich eine so große Arbeitserleichterung ist, 1x anlegen + 2x Referenzen erstellen statt 1x anlegen und 1x copy&paste?
    Ist das nicht eher eine Editor Frage, d.h. das der hier besser unterstützen soll?

    Würde es helfen das <include>-Widget auf Widget-Level zu bringen?
    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


      #3
      eigentlich eine gute Idee

      Zitat von Chris M. Beitrag anzeigen
      ob das wirklich eine so große Arbeitserleichterung ist, 1x anlegen + 2x Referenzen erstellen statt 1x anlegen und 1x copy&paste?
      Hoi

      Ich sehe das so wie bei subs / Unterprogrammen.
      Wenn man etwas oft braucht, lohnt sich der Aufwand schon. Sonst nicht.
      Und die Fehleranfälligkeit kann evtl. geringer sein.
      Grüsse Bodo
      Fragen gehören ins Forum, und nicht in mein Postfach;
      EibPC-Fan; Wiregate-Fan; Timberwolf-Fan mit 30x 1-Wire Sensoren;

      Kommentar


        #4
        Und der Aufwand wenn man mal etwas ändern möchte sinkt beträchtlich
        Endlich umgezogen. Fertig? Noch lange nicht... ;-)

        Kommentar


          #5
          Ich denke wenn man die Visu erstmal fertig hat dann ändert man so schnell nichts mehr ... man gewöhnt sich dann auch sehr schnell an seine Seiten. Ich habe meine nach dem erscheinen von Metal erstellt und ganz ehrlich ... die hab ich seit dem nicht mehr angefasst. Die Räume per copy&paste im XML-Editor erstellt und die paar kleinen Besonderheiten erstellt. Für Licht und Temperaturen gibt es zusätzlich jeweils eine Übersichtsseite für das ganze Haus, auch hier wieder copy&paste der einzelnen widgets und nur den Namen und die GA geändert.

          Das klingt zwar nach mehr Arbeit macht es aber deutlich einfacher das zu konfigurieren als noch irgendwelche Relationen zwischen Templates, Blöcken usw. zu beachten. You get what you see.

          Viel wichtiger wäre es die Entwickler den aktuellen SVN-Stand in ein Release bringen zu lassen als die ganze config jetzt nochmal umzukrempeln. Wer auch immer gerade am Editor arbeitet dürfte dann auch wieder von vorne anfangen. Zu dem hab ich auch keine Lust meine ganze config jetzt nochmal zu machen . Das ganze automatisch über ein Script zu erstellen halte ich auch nicht für praktikabel.

          Just my 2 cent.
          Gruß Mirko
          Umgezogen? Ja! ... Fertig? Nein!
          Baustelle 2.0 !

          Kommentar


            #6
            Hallo,

            ich verstehe all eure Argumente.
            Mir ging es v.a. um die Wartbarkeit.

            Vielleicht reicht es auch, GAs nach Namen spezifizieren zu können.
            Dann kann man sehr Leicht aus
            Temperatur_Esszimmer
            Licht_Esszimmer
            Fenster_Esszimmer

            in der XML
            durch suchen&ersetzen
            Temperatur_Wohnzimmer
            Licht_Wohnzimmer
            Fenster_Wohnzimmer

            machen.

            Ich denke nur, dass man wirklich viele Sachen durch copy&paste konfigurieren wird. Und überall dort wird die Wartbarkeit echt nevig, weil ich wenn ich etwas ändern will es wahrscheinlich für ein einheitliches Layout auf allen Seiten ändern will. Und dann ist es eben mehr arbeit.

            Zusätzlich könnte man einfach ein
            <copyblock name="meindefaultraum" replace="Esszimmer,Wohnzimmer,OG,EG"> definieren.

            Eine xml würde dann so aussehen:
            Code:
            <Block name=meindefaultraum>
            <info mapping="Close_Open" styling="Red_Green">
                     <label>Hintertür</label>
                     <address transform="DPT:1.001" readonly="true" variant="">EG_Esszimmer_Fenster</address>
                   </info>
                   <info mapping="Close_Open" styling="Red_Green">
                     <label>Fenster</label>
                     <address transform="DPT:1.001" readonly="true" variant="">EG_Esszimmer_Fenster</address>
                   </info>
                   <info mapping="Close_Open" styling="Red_Green">
                     <label>Hintertür</label>
                     <address transform="DPT:1.001" readonly="true" variant="">EG_Esszimmer_Heizung</address>
                   </info>
                   <info mapping="Close_Open" styling="Red_Green"> 
                    <label>Hintertür</label>
                     <address transform="DPT:1.001" readonly="true" variant="">EG_Esszimmer_Rolladen</address>
                   </info>
            
            
            <copyblock name="meindefaultraum" replace="Esszimmer,Wohnzimmer,OG,EG">
            <copyblock name="meindefaultraum" replace="Arbeitszimmer,Wohnzimmer,OG,EG">
            Wie gesagt: Ich weiß nicht, *wie* es am besten geht. Aber copy&paste schreit für mich beim Programmieren immer danach, eine Funktion zu definieren.

            Gruß,
            Hendrik

            Kommentar


              #7
              Zitat von henfri Beitrag anzeigen
              Vielleicht reicht es auch, GAs nach Namen spezifizieren zu können.
              Dann kann man sehr Leicht aus
              Temperatur_Esszimmer
              Licht_Esszimmer
              Fenster_Esszimmer
              Bitte nicht! Zumindest nicht auf der Client-Seite!

              Meistens wenn man von "CometVisu" spricht, meint man den Client, das was man im Browser sieht. Aber da gehört noch etwas mehr dazu, z.B. das Backend, das auf dem Server läuft und das Protokoll, dass das Backend mit Bibliothek im Client spricht.
              Dort ist ganz klar definiert, wie eine Adresse aussieht. Würde man nun im Client, um das XML per Hand schöner editieren zu können, mit Adress-Aliasen arbeiten, könnte man hier leicht Verwirrung hinein bekommen.

              So ein Alias mach für mich nur im Editor (der einfach eine hübsche Sicht auf das XML ist) Sinn - oder evtl. noch ganz Tief im Backend (z.Zt. eibread-cgi / eibwrite-cgi)

              Und da ist man auch schon am eigentlich relevanten Punkt: ist das ein Feature das dem Editor fehlt, oder eines das man in der Konfig-Datei benötigt?
              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


                #8
                Also mein Editor findet auch 6/2/22 ich verstehe aber was Du meinst.
                Dennoch glaube ich sind die Räume zu unterschiedlich (oder es sind zu wenig Räume) dass sich der Aufwand loht.
                Mal 2 Steckdosen zu schalten, mal eine, Wandlampe ja/nein, indirekte Beleuchtung, Szenen etc.. Da muss man dann eh an jeden Raum nochmal ran und Hand anlegen ...
                Umgezogen? Ja! ... Fertig? Nein!
                Baustelle 2.0 !

                Kommentar

                Lädt...
                X