Ankündigung

Einklappen
Keine Ankündigung bisher.

[Beta] ETS -> CometVisu Parser

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

    [Beta] ETS -> CometVisu Parser

    Hallo,

    ich habe einen einfachen PHP Parser geschrieben, der ETS Projekt Dateien lesen kann und daraus eine CometVisu Config erstellt.
    Dabei wird die Page Struktur für die Stockwerke und Räume erstellt. Geordnet werden die Stockwerke und Räume nach der Nummer, die man bei den Eigenschaften in der ETS eingeben kann. Ich verwende dabei diese Nummernfolge: Stockwerk.Raum.Funktion

    Für jeden Raum werden auch noch die verfügbaren Funktionen gelesen. Dabei wird in Licht, Heizung und Fenster gruppiert. Z.B. werden DimmableLight und SwitchableLicht in einer Page "Licht" zusammengefasst.

    Außerdem werden für die Funktionen automatisch Widgets hinzugefügt, falls die benötigten Gruppenadressen-Typen in der Funktion vorhanden sind.

    Den Parser findet ihr hier:
    https://github.com/alltime84/CometVi...rial/xmlparser

    Wenn ihr den Parser ausprobieren wollt, müsst ihr folgendes machen:
    1. Parser Dateien in einen Ordner in der CometVisu speichern
    2. ETS Projekt exportieren
    3. Dateiendung umbenennen in .zip
    4. .zip öffnen und in den Ordner P-022C wechseln (ich weiß nicht ob der überall so heißt...)
    5. Die Datei 0.xml extrahieren
    6. Diese Datei in den Ordner uploads beim Parser in der CometVisu kopieren
    7. Die Datei readets.php mit einem Browser aufrufen (z.B. http://wiregate.../CometVisu/Parser/readets.php)
    Update 02.01.16:

    Mit Hilfe von Stichworten in der ETS im Beschreibungsfeld können jetzt die Gruppenadressen richtig zugeordnet werden.
    Zum Beispiel wenn es eine Gruppenadresse für die Ist- und eine für die Soll-Temperatur gibt, wird mit diesen Stichworten read und write richtig zugeordnet:
    Ist Temperatur -> [CV:read]
    Soll Temperatur -> [CV:write]

    Licht: read und write für Dimmwerte
    Fenster: blade;read/write und position;read/write für Positionswerte
    Heizung: read/write für Temperaturwerte

    Außerdem können mit [CV;hidden] Funktionen versteckt werden, wenn dafür keine Struktur erzeugt werden soll.


    Zusätzlich wird jetzt jeweils eine Sturktur für mobile Geräte und PCs/Tablets erzeugt.
    Bei mobilen Geräten wird werden die Funktionen für Licht, Fenster und Heizung auf verschiedene Tabs verteilt um den Überblick zu verbessern. Siehe dazu die Screenshots in diesem Thread: https://knx-user-forum.de/forum/suppo...aterial-design

    Das Menü-Plugin zeigt dann automatisch nur die Seiten für mobile Geräte oder PCs an.
    Zuletzt geändert von alltime; 23.01.2016, 23:32. Grund: neuer Link

    #2
    Das ist super. Dann habe ich ja doch mal einen Grund mein ETS Projekt besser zu pflegen. Danke

    Kommentar


      #3
      Ich sehe zwei Möglichkeiten um das Problem mit Jalousien (Status/schreiben, Position/Lamellenposition) zu lösen:
      1. alle passenden Gruppenadressen kommentiert mit Namen ausgeben: Benutzer muss selbst in der Config die richtige wählen
      2. In der ETS eine Beschreibung hinzufügen: z.B. [CV:blade;read] oder [CV:Position;write]
      Was macht mehr Sinn?

      Kommentar


        #4
        Ich halte die ETS für einen besseren Ort. Denn: Jedes Mal, wenn man seine Gruppenadressen im Wiregate importiert, müsste man erneut den richtigen Typ auswählen. Das will ich aber nur einmalig festlegen müssen.
        Allerdings wäre es gut, wenn der Parser in der Lage wäre, die "echten" Kommentare zu ignorieren und wirklich nur die CV-Tags zu beachten, damit man in ein Kommentarfeld sowohl Klartextkommentare als auch CV-Anweisungen hinterlegen kann.
        Zuletzt geändert von wuestenfuchs; 09.12.2015, 15:27.
        "Wer die Freiheit aufgibt, um Sicherheit zu gewinnen, wird am Ende beides verlieren." - Benjamin Franklin

        Kommentar


          #5
          Hier ein kleines Update:
          Diese Datentypen konnte ich nicht unterscheiden:
          • Dimmwert lesen/schreiben
          • Rollladen Position lesen/schreiben
          • Lamellen Position lesen/schreiben
          darum habe ich folgende Kommentare vorgesehen:
          • Dimmwert:
            • [CV:read]
            • [CV:write]
          • Rollo Position:
            • Code:
              [CV:position;read]
            • Code:
              [CV:position;write]
          • Lamellen Position:
            • [CV:blade;read]
            • [CV:blade;write]
          Andere Kommentare werden ignoriert.
          Dabei fällt auf, dass alle diese Datentypen 5.1 sind. Hier sollten mal ein paar neue hinzugefügt werden...

          P.s.:
          Danke für den Hinweis mit [CODE]
          Zuletzt geändert von alltime; 20.12.2015, 12:04.

          Kommentar


            #6
            Nicht wenn man die code Tags verwendet:
            Code:
            :p bleibt[LIST][*][CV:position;read][/LIST]

            Kommentar


              #7
              Hallo Tim,

              gerade wollte ich den Parster und das Design ausprobieren. Allerdings scheiter ich wohl noch ziemlich früh:
              • Verzeichnisstruktur ist genau wie bei Dir (haben einen GitHub develop-Branch übernommen)
              • 0.xml extrahiert (Verzeichnis war bei mir: P-00A3) und nach /designs/material/xmlparser/uploads/ geschoben.
              • /designs/material/xmlparser/readets.php aufgerufen
              • Ich nehme an, die Config-Datei ist nun das, was dargestellt wird (d.h. per Copy&Paste nach /config/visu_....xml gebracht werden müsste?). Komplettes Ergebnis:

              HTML-Code:
                <page name="Start" showtopnavigation="true" showfooter="false" shownavbar-left="true">
                  <navbar position="top">
                    <header></header>
                  </navbar>
                  <navbar position="left" dynamic="true" width="250">
                    <text>
                      <label>CometVisu</label>
                    </text>
                    <line/>
                    <menu>
                    </menu>
                    <line/>
                    <pagejump target="[Settings]Settings">
                      <layout colspan="6"/>
                      <label>Settings</label>
                    </pagejump>
                  </navbar>
                  <page name="[Settings]Settings" visible="false">
                    <group name="setup">
                      <layout colspan="12"/>
                      <web src="designs/material/xmlparser/parser.html" width="800px" height="400px" frameborder="false" background="white">
                        <layout colspan="12"/>
                      </web>
                    </group>
                  </page>
                  <page name="[Menu][1.0.0]ßen" visible="false">
                  </page>
                  <page name="[Menu][2.0.0]" visible="false">
                  </page>
                  <page name="[Menu][3.0.0]" visible="false">
                  </page>
                  <page name="[Menu][4.0.0]eppe" visible="false">
                  </page>
                </page>
              Das ist allerdings keine vollständige CometVisu-Config.
              Ist das richtig? Soll ich die Header etc. pp. noch selber einbauen?

              Was aber eher das Problem ist: der Inhalt ist quasi leer.
              => Liegt das an falscher Benennung / Kommentaren / ??? in meiner ETS Config? Wie sollte das richtig aufgebaut sein?
              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
                Hi Chris,

                ja, der Parser erzeugt (im Moment) nur die Page-Strukturen.

                Der Parser ist für diese Art von Projektstruktur gedacht.
                Haus -> Stockwerk -> Raum -> Funktion -> Gruppenadresse
                Hier ein Beispiel: buildingstructure.png




                Dabei ist es wichtig, dass es wenigstens eine Funktion (Licht, Sonnenschutz oder Heizung) pro Raum mit wenigstens einer Gruppenadresse gibt.
                Da ich meine Räume mit Nummern durchnummeriert habe schneide ich bis einschließlich "] " den Namen ab.

                Ich habe erst mit der ETS5 angefangen, also weiß ich nicht seit wann es diese "Standard-Funktionen" gibt. Eventuell müsste ich von den Funktions-Namen weg hin zu dem Beschreibungsfeld (z.B. [CV:Function=Licht])

                Außerdem habe ich gerade eine neue Version des Parsers und des MaterialDesigns auf GitHub veröffentlicht. Dazu schreibe ich mehr im ersten Post und in dem MaterialDesign Thread.
                Zuletzt geändert von alltime; 02.01.2016, 22:13.

                Kommentar


                  #9
                  Update: Verbesserungen für den Parser sind verfügbar (siehe ersten Beitrag)

                  Kommentar


                    #10
                    Achja, nein, man sollte nichts mehr selbst in der config ändern müssen. Mein Ziel ist es nur noch in der ETS und eventuell auf einer Settings Page in der Visu (Settings.PHP) die Struktur und das Erscheinungsbild zu gestalten.

                    Kommentar

                    Lädt...
                    X