Ankündigung

Einklappen
Keine Ankündigung bisher.

Separate Datein in Visu-Config includieren?

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

    Separate Datein in Visu-Config includieren?

    Hallo miteinander,

    um gefahrlos mit der Konfiguration spielen zu können, verwalte ich alle relevanten Files in einem VCS. Nun ist es natürlich nicht sonderlich prickelnd, Zugangsdaten unter VCS-Kontrolle zu stellen. Ein Beispiel dafür wären die Magic-Cookies für die Google-Kalender. Gibt es eine Möglichkeit, in der CV-Konfig mit Includes zu arbeiten?

    Das wäre ausserdem sehr praktisch, um die Konfiguration generell in kleinere Abschnitte kapseln zu können, welche sich dann natürlich auch separat versionieren und bearbeiten lassen könnten.

    Leider hat es nicht funktioniert, die Konfig mit xmlns:xi="http://www.w3.org/2001/XInclude" zu erweitern, um dann via <xi:include href="calendars.xml"/> bspw. diesen Abschnitt einzubinden. Gibt es dazu evtl. bereits Überlegungen oder geht das schon irgendwie anders?
    Kind regards,
    Yves

    #2
    Naja die Diskusion gab es hier schon. Das Problem ist, dass includes das laden der Visu verlangsamt. Das spielt im LAN keine grosse Rolle auf dem Handy über 3G kann das aber schon einiges ausmachen.

    Es gibt ein include Plugin mit dem man Pages auslagern kann. aber eben NUR ganze Pages. Das ist nicht vergleichbar mit einem include Befehl wie z.B. in PHP wo "beliebiger" Inhalt eingebunden werden kann.
    Gruss Patrik alias swiss

    Kommentar


      #3
      XML Namespaces werden nicht unterstützt - aber wie Swiss schon schrieb, ein Include gibt es jetzt schon (ist allerdings ein Widget und kein Plugin, macht aber hier keinen wirklichen Unterschied).

      Wenn es dir Seitenweise reicht, dann kannst Du das jetzt schon wunderbar nutzen. (Bei mir im Live-Betrieb nutze ich es z.B. um die automatisch generierte Russound-Config einzubinden).

      Wenn Du es feiner granular brauchst und eh mit einem VCS System arbeitest dann kannst Du sicher auch ein kleines Skript schreiben, dass Config-Dateien aus Rohdateien generiert.
      (Was übrigens auch gehen müsste, wäre eine PHP Seite zu haben die die Config ausspuckt - aber wozu? Eine Config ist relativ statisch, die live zu erstellen macht IMHO wenig Sinn)
      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


        #4
        Hallo miteinander,

        mir geht es hauptsächlich darum, Zugangsdaten nicht in das VCS zu packen. Magic-Cookies etc. haben nichts in einer Versionskontrolle zu suchen.

        Die Konfig in kleinere und damit übersichtlichere Abschnitte unterteilen zu können, ist ein interessanter Nebeneffekt. Ich werde mir das Widget auf jeden Fall mal ansehen.

        Mit einem Script die Konfig zu generieren wäre kein Problem, ist nur trotzdem unterm Strich in der Handhabung recht aufwändig. Aber da muss ich noch ein wenig drüber nachdenken, vielleicht fällt mir noch etwas dazu ein...
        Kind regards,
        Yves

        Kommentar


          #5
          Zitat von starwarsfan Beitrag anzeigen
          mir geht es hauptsächlich darum, Zugangsdaten nicht in das VCS zu packen. Magic-Cookies etc. haben nichts in einer Versionskontrolle zu suchen.
          Das kommt ganz darauf an. In pauschalen Fall gebe ich Dir recht.

          Wenn Du aber das VCS selber hostest, d.h. die Dateien Deine sichere Umgebung nicht verlassen, spricht in diesem Fall IMHO nichts dagegen. Denn bedenke, die Config-Datei wird so wie sie ist an den Client übertragen. Der baut die Visu-Seite daraus.
          Oder mit anderen Worten, die Vorsicht beim VCS braucht nicht höher zu sein, als das Vertrauen in die Clients (und deren Anwender...). Was nützt eine Sicherheitshaustüre, wenn der Hintereingang offen steht? (Wobei das hier eher umgedreht wäre...)
          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


            #6
            Hallo zusammen,

            mich hat es auch geärgert, alles in ein riesiges XML file zu packen. Deshalb habe ich ein Tool (C#) gebastelt, dass unter anderem ein "include" unterstützt, also mehrere Dateien zu einer zusammen fassen kann. Auch habe ich weitere Möglichkeiten eingebaut, z.B. kann man mehrere Configs generieren lassen (z.B. eine mit erweiterten Optionen, die man nicht in der normalen Config haben möchte, wie Kühlschrank ausschalten...) oder "Templates" und Konstanten nutzen. Ich hatte eh vor, das Tool hier mal vor-/bereitzustellen, aber es gab bislang immer wichtigeres am/im Haus zu tun Wenn aber bedarf besteht, versuche ich das mal Zeitnah zu machen.

            Mal ein paar Beispiele...

            Ein XML für meine "EG" Seite, die einzelnen Pages für die Räume sind wiederum ausgegliedert in XMLs, siehe #CVB_INCLUDE weiter unten

            Code:
            <page name="EG" visible="false" shownavbar-left="true">
            
                <navbar position="left" dynamic="true">
                                
                    <group>
                        
                        <pagejump target="EG_Uebers" name="EG Übersicht">
                            <label>
                                <icon name="control_building_s_okg_eg"/>
                            </label>
                        </pagejump>
                        
                        <pagejump target="Diele_EG" name="Diele">
                            <label>
                                <icon name="scene_corridor"/>
                            </label>
                        </pagejump>
                            
                        <pagejump target="Kueche" name="Kueche">
                            <label>
                                <icon name="scene_kitchen_sink"/>
                            </label>
                        </pagejump>
                        
                        <pagejump target="Wohn-/Esszimmer" name="Wohnzimmer">
                            <label>
                                <icon name="scene_livingroom"/>
                            </label>
                        </pagejump>
                                            
                        <pagejump target="Buero" name="Werkstatt">
                            <label>
                                <icon name="scene_workshop"/>
                            </label>
                        </pagejump>                
                                        
                        <pagejump target="WC" name="WC">
                            <label>
                                <icon name="scene_toilet_alternat"/>
                            </label>
                        </pagejump>
                        
                        <pagejump target="SPK" name="Speißekammer">
                            <label>
                                <icon name="scene_storeroom"/>
                            </label>
                        </pagejump>
                                        
                        <pagejump target="EG_Technik" name="Technik">
                            <label>
                                <icon name="sani_cogeneration"/>
                            </label>
                        </pagejump>
                    
                    </group>
                    
                    #cvb_include name="eg_uebersicht.xml"
                    #cvb_include name="eg_diele.xml"
                    #cvb_include name="eg_kueche.xml"
                    #cvb_include name="eg_wozi.xml"
                    #cvb_include name="eg_buero.xml"
                    #cvb_include name="eg_wc.xml"
                    #cvb_include name="eg_spk.xml"
                    #cvb_include name="eg_technik.xml"
                
                </navbar>
                
            </page>
            Ein "Template":

            Code:
            <group nowidget="true">
            
                <layout colspan="$$DefaultGroupColspan$$"/>
                
                <text>                                
                    <label>??name??</label>
                    <layout colspan="2"/>
                </text>
                
                <slide nowidget = "true" min="0" max="100" step="1" format="%d%%" styling="GreyGrey" flavour="sodium" align="left">        
                    <layout colspan="3"/>
                    <address transform="DPT:5.001" mode="write">??pos_setzen??</address>
                    <address transform="DPT:5.001" mode="read">??pos_status??</address>
                </slide>                
                                                                
                <info mapping="CloseOpen">
                    <layout colspan="1"/>
                    <address transform="DPT:1.001" variant="">??fenster_status??</address>
                </info>
                            
            </group>
            Und wie es genutzt wird:

            Code:
                    <group name="Fenster/Rollos" >
                    
                        <layout colspan="$$DefaultGroupColspan$$"/>
                                                
                        <group nowidget="true">
                                
                            #cvb_template template_type="rollo" name="Terasse r. Küche" pos_setzen="3/4/32" pos_status="3/4/33" fenster_status="3/3/50"                                                    
                            #cvb_template template_type="rollo" name="Terasse r. Sofa" pos_setzen="3/4/42" pos_status="3/4/43" fenster_status="3/3/51"                                                
                            #cvb_template template_type="rollo" name="Fenster Sofa" pos_setzen="3/4/122" pos_status="3/4/123" fenster_status="3/3/130"
                                
                        </group>
                                    
                    </group>
            Zwei Konfigurationen für die Visu

            Code:
            #cvb_config_definition name="normal" output="visu_config_haus.xml"
            #cvb_config_definition name="full" output="visu_config_haus_full.xml"
            So kann ein Ausschnitt z.B. nur für eine Config genutzt werden (Exclude gibts auch noch):

            Code:
                    
                <switch nowidget = "true" mapping="OnOff" styling="GreyGrey" bind_click_to_widget="false" align="right">
                    <layout colspan="1"/>
                    <address transform="DPT:1.001" mode="read">??ga_status??</address>
                    #cvb_config_include configs="full"
                    <address transform="DPT:1.001" mode="write">??ga_schalten??</address>
                    #cvb_config_include_end
                </switch>
            Das Tool kann nach dem "zusammenstöpseln" Aktionen ausführen, ich nutze das z.B. für den Aufruf von WinSCP mit einem Script, um die Config aufs Wiregate hochzuladen.

            Code:
            #cvb_post_action execute="D:\WinSCP\WinSCP.exe" arguments="/console /script=W:\Haus\Pläne_Unterlagen\Elektro\Wiregate_1Wire\Visu\winscp_script.txt"
            ...

            Besteht Interesse? Läuft halt nur unter Windows

            Kommentar


              #7
              also bei mir würde da Interesse bestehen! Meine Config platzt mir auch schon fast und vor allem das Erstellen von verschiedenen xml ist bei mir die nächste Zeit ein Thema, da derzeit alles was Frau und Kinder nicht explizit benötigen (wie z.B. meine detailierte Einstellungsseite) in der Hauptkonfig ist.

              Gruß
              Andi
              Gruß
              Andi

              Kommentar


                #8
                Hallo Chris

                Zitat von frankenChris Beitrag anzeigen
                mich hat es auch geärgert, alles in ein riesiges XML file zu packen. Deshalb habe ich ein Tool (C#) gebastelt, dass unter anderem ein "include" unterstützt, also mehrere Dateien zu einer zusammen fassen kann.
                ...
                Besteht Interesse? Läuft halt nur unter Windows
                Das hört sich super an! Da habe ich definitiv grosses Interesse dran!
                Kind regards,
                Yves

                Kommentar


                  #9
                  Ok, ich werde versuchen mal in den nächsten Tagen was zusammenzuschreiben und das Tool bereitzustellen.

                  Kommentar


                    #10
                    Habe mir nun die Zeit genommen, siehe https://knx-user-forum.de/cometvisu/...v-builder.html

                    Kommentar

                    Lädt...
                    X