Ankündigung

Einklappen
Keine Ankündigung bisher.

Generator für .conf-Files

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

    #31
    kein problem, und mach dir ja keinen stress!

    gerade nochmal alles durchgegangen, kann keine mail finden, aber egal, muß ja über github auch funktionieren. und das ETS 5 Projekt hab ich dir ja auch schon hochgeladen.

    Sieht besser aus, zumindest keine Fehler mehr, allerdings passiert auch nix, so siehts im moment aus

    Code:
    "conf2json.vshost.exe" (CLR v4.0.30319: conf2json.vshost.exe): "C:\Windows\Microsoft.Net\assembly\GAC_32\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll" geladen. Das Laden von Symbolen wurde übersprungen. Das Modul ist optimiert, und die Debugoption "Nur eigenen Code" ist aktiviert.
    "conf2json.vshost.exe" (CLR v4.0.30319: conf2json.vshost.exe): "C:\Windows\assembly\GAC_MSIL\Microsoft.VisualStudio.HostingProcess.Utilities\14.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.HostingProcess.Utilities.dll" geladen. Das Laden von Symbolen wurde übersprungen. Das Modul ist optimiert, und die Debugoption "Nur eigenen Code" ist aktiviert.
    "conf2json.vshost.exe" (CLR v4.0.30319: conf2json.vshost.exe): "C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Windows.Forms\v4.0_4.0.0.0__b77a5c561934e089\System.Windows.Forms.dll" geladen. Das Laden von Symbolen wurde übersprungen. Das Modul ist optimiert, und die Debugoption "Nur eigenen Code" ist aktiviert.
    "conf2json.vshost.exe" (CLR v4.0.30319: conf2json.vshost.exe): "C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c561934e089\System.dll" geladen. Das Laden von Symbolen wurde übersprungen. Das Modul ist optimiert, und die Debugoption "Nur eigenen Code" ist aktiviert.
    "conf2json.vshost.exe" (CLR v4.0.30319: conf2json.vshost.exe): "C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Drawing\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Drawing.dll" geladen. Das Laden von Symbolen wurde übersprungen. Das Modul ist optimiert, und die Debugoption "Nur eigenen Code" ist aktiviert.
    "conf2json.vshost.exe" (CLR v4.0.30319: conf2json.vshost.exe): "C:\Windows\assembly\GAC_MSIL\Microsoft.VisualStudio.HostingProcess.Utilities.Sync\14.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.HostingProcess.Utilities.Sync.dll" geladen. Das Laden von Symbolen wurde übersprungen. Das Modul ist optimiert, und die Debugoption "Nur eigenen Code" ist aktiviert.
    "conf2json.vshost.exe" (CLR v4.0.30319: conf2json.vshost.exe): "C:\Windows\assembly\GAC_MSIL\Microsoft.VisualStudio.Debugger.Runtime\14.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.Debugger.Runtime.dll" geladen. Das Laden von Symbolen wurde übersprungen. Das Modul ist optimiert, und die Debugoption "Nur eigenen Code" ist aktiviert.
    "conf2json.vshost.exe" (CLR v4.0.30319: conf2json.vshost.exe): "C:\Users\chris\Source\Repos\smarthome-json-2-conf\conf2json\bin\Debug\conf2json.vshost.exe" geladen. Das Laden von Symbolen wurde übersprungen. Das Modul ist optimiert, und die Debugoption "Nur eigenen Code" ist aktiviert.
    "conf2json.vshost.exe" (CLR v4.0.30319: conf2json.vshost.exe): "C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0__b77a5c561934e089\System.Core.dll" geladen. Das Laden von Symbolen wurde übersprungen. Das Modul ist optimiert, und die Debugoption "Nur eigenen Code" ist aktiviert.
    "conf2json.vshost.exe" (CLR v4.0.30319: conf2json.vshost.exe): "C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Xml.Linq\v4.0_4.0.0.0__b77a5c561934e089\System.Xml.Linq.dll" geladen. Das Laden von Symbolen wurde übersprungen. Das Modul ist optimiert, und die Debugoption "Nur eigenen Code" ist aktiviert.
    "conf2json.vshost.exe" (CLR v4.0.30319: conf2json.vshost.exe): "C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Data.DataSetExtensions\v4.0_4.0.0.0__b77a5c561934e089\System.Data.DataSetExtensions.dll" geladen. Das Laden von Symbolen wurde übersprungen. Das Modul ist optimiert, und die Debugoption "Nur eigenen Code" ist aktiviert.
    "conf2json.vshost.exe" (CLR v4.0.30319: conf2json.vshost.exe): "C:\Windows\Microsoft.Net\assembly\GAC_MSIL\Microsoft.CSharp\v4.0_4.0.0.0__b03f5f7f11d50a3a\Microsoft.CSharp.dll" geladen. Das Laden von Symbolen wurde übersprungen. Das Modul ist optimiert, und die Debugoption "Nur eigenen Code" ist aktiviert.
    "conf2json.vshost.exe" (CLR v4.0.30319: conf2json.vshost.exe): "C:\Windows\Microsoft.Net\assembly\GAC_32\System.Data\v4.0_4.0.0.0__b77a5c561934e089\System.Data.dll" geladen. Das Laden von Symbolen wurde übersprungen. Das Modul ist optimiert, und die Debugoption "Nur eigenen Code" ist aktiviert.
    "conf2json.vshost.exe" (CLR v4.0.30319: conf2json.vshost.exe): "C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Net.Http\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Net.Http.dll" geladen. Das Laden von Symbolen wurde übersprungen. Das Modul ist optimiert, und die Debugoption "Nur eigenen Code" ist aktiviert.
    "conf2json.vshost.exe" (CLR v4.0.30319: conf2json.vshost.exe): "C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Xml\v4.0_4.0.0.0__b77a5c561934e089\System.Xml.dll" geladen. Das Laden von Symbolen wurde übersprungen. Das Modul ist optimiert, und die Debugoption "Nur eigenen Code" ist aktiviert.
    "conf2json.vshost.exe" (CLR v4.0.30319: conf2json.vshost.exe): "C:\Windows\Microsoft.Net\assembly\GAC_MSIL\mscorlib.resources\v4.0_4.0.0.0_de_b77a5c561934e089\mscorlib.resources.dll" geladen. Das Modul wurde ohne Symbole erstellt.
    Der Thread 0x6a8 hat mit Code 0 (0x0) geendet.
    Der Thread 0x2ac4 hat mit Code 0 (0x0) geendet.
    Der Thread 0x598 hat mit Code 0 (0x0) geendet.
    "conf2json.vshost.exe" (CLR v4.0.30319: conf2json.vshost.exe): "C:\Users\chris\Source\Repos\smarthome-json-2-conf\conf2json\bin\Debug\conf2json.exe" geladen. Symbole wurden geladen.
    Der Thread 0x1ee4 hat mit Code 0 (0x0) geendet.
    Der Thread 0x2f78 hat mit Code 0 (0x0) geendet.
    Das Programm "[9052] conf2json.vshost.exe" wurde mit Code 0 (0x0) beendet.
    Christian

    Kommentar


      #32
      Hi Christian,

      vielen Dank für Dein feedback. Ich war bis eben unterwegs, deswegen jetzt erst die Antwort.
      Ich hab ein bisschen geforscht. Über git werden nicht alle Dateien ausgeliefert, die ich in meinem ZIP hatte, ich habe aber inzwischen gelernt, dass ich zu viel ausgeliefert habe (gibt dann Probleme mit Updates). Insofern ist doch noch was manuelles nach dem holen vom GitHub nötig. Ich hoffe, ich bekomme bis heute Abend die Anleitung fertig...

      Vorher hier der manuelle Schritt, der noch fehlt:

      Du klickst im Solution Explorer auf json2conf, expandierst es und machst einen Doppelklick auf "Properties". In dem neuen Fenster links auf Debug klicken. Dann in Start Options, command line arguments folgendes eintragen: "..\..\..\smarthome\items" (ohne Anführungsstriche). Das gleiche machst Du für conf2json, falls Du das noch benutzen willst.

      Mit der Korrektur heute Abend werden auch die GA der ETS5 über das .knxprod-file ausgewertet. Dein Beispielfile hat sehr geholfen.

      Noch was - nur damit es kein Missverständnis gibt: Das von GitHub runtergeladene Projekt wird standardmäßig in folgenden Pfad runtergeladen: "C:\Users\<user>\Source\Repos\smarthome-json-2-conf". Darin ist dann das smarthome\items-Verzeichnis, und da müssen dann die item.json-Files rein.

      Gruß, Waldemar

      OpenKNX www.openknx.de

      Kommentar


        #33
        Hi,

        jetzt ist eine neue Version online, mit ETS5 Unterstützung und einer neuen "InitialSetup.pdf"-Doku. Wie man ein Update von GitHub mit Visual Studio macht, ist im Wiki auf GitHub beschrieben, hier der Link https://github.com/mumpf/smarthome-json-2-conf/wiki.

        Gruß, Waldemar
        OpenKNX www.openknx.de

        Kommentar


          #34
          Hallo,

          würd sagen sieht soweit gut aus, die ETS5 Datei hat er gefressen, und der Debugger läuft jetzt ohne Fehler durch
          *Daumenhoch*

          Christian

          Kommentar


            #35
            Hi,

            ab heute gibt es ein kleines update:
            • FEATURE: Jedes Vorkommen von dem Muster .(#) in einem JSON-String wird durch .auto<nummer> ersetzt, wobei die Nummer per File eindeutig (monoton steigend) ist. Gedacht ist es für sv_widget, um die IDs der Widgets eindeutig zu bekommen. Bei intensiver Verwendung von Templates kann es nämlich mal schnell vorkommen, dass man doch Widgets mit gleicher Widget-ID bekommt. Durch das Einfügen des obigen Musters wird die Widget-ID auf jeden Fall eindeutig.
            • FEATURE: $delete kann man jetzt auch für einzelne Array-Zeilen verwenden. Ein "$delete": ["sv_widget[2]"] löscht jetzt die 3. Zeile im sv_widget-Array (Array-Indexe sind Null-Basiert)
            • BUGFIX: Die Überprüfung von Items auf Existenz hat bei Item-Pfaden, die "autoBlind" enthielten, nicht richtig funktioniert.
            Ferner sind die neuen Features vom AutoBlind-Plugin jetzt drin:
            • eval:- und item:-Notation wird jetzt auch in conditions unterstützt und die Item-Existenz geprüft
            • Das Schema (und damit der Editor) unterstützt die neuen Properties "as_value_laststate" und "as_negate_laststate"
            Für das smartvisu-Plugin werden jetzt auch die Properties von den "autogeneration-Hacks für Smartvisu" unterstützt, speziell
            • sv_page = overview
            • sv_overview
            • sv_nav_aside
            • sv_heading_left
            • sv_heading_center
            • sv_heading_right
            Bei Fehlern bitte melden,
            Gruß, Waldemar
            OpenKNX www.openknx.de

            Kommentar


              #36
              Hallo Waldemar,

              hast du mal überlegt, die Visualisierung direkt über Templates, statt über smarthome.py zu erstellen?
              Ich denke man ist darüber deutlich flexibler, z.B. die Blöcke (<div>), die man ja über den sh.py generator nicht erzeugen kann etc.

              Gruß,
              Hendrik

              Kommentar


                #37
                Hi Hendrik,

                ich hatte schon die Idee, mehr Richtung Visu mit dem Generator zu machen, allerdings fehlt mir hier nicht nur die Zeit, sondern auch hinreichendes html-Wissen, da bin ich ziemlich blank! Insofern nutze ich auch kaum direktes html, ich versuche eher, mir neue/weitere smartvisu-widgets zu basteln, die ich dann ja auch im smarthome-Generator verwenden kann. Ansonsten habe ich noch einiges mit meinen inzwischen ca. 4600 Items zu tun, derzeit ist meine Visu nur sekundär...

                Aber zu <div>: Ich weiß nicht, wie Dein Verwendungszweck aussieht, Du kannst ja beim sv_widget ja auch html eintragen. Reicht das bei Dir nicht?

                Gruß, Waldemar
                OpenKNX www.openknx.de

                Kommentar


                  #38
                  Hi Waldemar,

                  sorry, bin leider heute erst dazu gekommen den Konverter zu testen und habe nun leider schon vorzeitig abbrechen müssen da ich mich irgendwie zu dämlich anstelle bzgl. der initialen Konvertierung.

                  1. Installation hat nach Doku geklappt.
                  2.GitHub-Button usw. sind im VS vorhanden, Verwendung des Buttons auf der GitHub-Seite bringt sowohl im FF als auch im IE Fehler, daher Code manuell heruntergeladen.
                  3. Zip extrahiert und eigene Item.conf in das von Dir schon per Default mitgelieferte U-Verzeichnis smarthome/items reingelegt.
                  4. Nach Doku die Pfade in den beiden Debug-Seiten unter "Command line arguments" eingetragen
                  5. Es hagelt eine Exception (gekürzt): "System.ArgumentException was unhandled...Message=Illegales Zeichen im Pfad. Source=mscorlib"

                  Sorry, Irgendwas hab ich vergessen oder stelle mich echt zu dämlich an, könntest Du mir bitte mal kurz auf die Sprünge helfen?

                  Cheers,
                  Oliver

                  Kommentar


                    #39
                    Hi Oliver,

                    sorry dass es nicht gleich geklappt hat! Kannst Du mir den genauen Inhalt der "Command line arguments" schicken? Ist da irgendwo ein space, komma, <, =, > im Pfad? Wenn Du den Pfad nicht hier posten willst, dann gerne per PM oder per mail, ich würde dann - wenn wir es rausgefunden haben - eine abstrahierte Lösung hier einstellen und die Doku entsprechend anpassen.

                    Gruß, Waldemar
                    OpenKNX www.openknx.de

                    Kommentar


                      #40
                      Hi,

                      habe am Wochenende noch einen Bug bei Verarbeitung von Templates in Templates gefunden (erst ab einer Tiefe von 3). Der ist nun auf Github gefixed. Ferner habe ich einige Debug-Ausgaben entfernt. Der Fix ist nur interessant für jemanden, der komplexe Templates verwendet - das dürfte wohl derzeit nur ich sein

                      Gruß, Waldemar
                      OpenKNX www.openknx.de

                      Kommentar


                        #41
                        Hallo Waldemar,

                        erstmal danke für das tolle Hilfsmittel, mit den ausführlichen Anleitungen.

                        ich wollte gerade eine eine relative Referenz "~~~~.Lamellenposition" einsetzen. Das Item Lamellenposition wird aber in einem Template angelegt. So wird das Item nicht gefunden.

                        I
                        tem not found: ~~~~.Lamellenposition, referenced in File: items\eg.json, Path: Eg.Kueche.Jalousie.Tuer.Autoblind.as_item_lamellen position
                        Item not found: Eg.Kueche.Lamellenposition, referenced in File: items\eg.json, Path: Eg.Kueche.Jalousie.Tuer.Autoblind.as_item_lamellen position
                        Gibt es keine Möglichkeit über die relative Referenz auf ein Template-generiertes Item zuzugreifen?

                        Gruß Ivan

                        Code:
                        "Eg"{
                        "Kueche": {
                              "Jalousie": {
                                "Tuer": {
                                  "$template": {
                                    "source": "jalousie",
                                    "knx": "0/0/61"
                                  },
                                  "Autoblind": {
                                     "as_item_lamellenposition": "~~~~.Lamellenposition",
                        Template:

                        Code:
                        {
                          "$schema": "../schema/ItemSchema.json",
                          "Jalousie": {
                            "Lamellenposition": {
                            "type": "bool",

                        Kommentar


                          #42
                          Hi,

                          das ist nicht das Problem, sondern Deine relative Adresse: ~~~~.Lamellenposition gibt es wirklich nicht.
                          Das erste ~ ist das Item "Autoblind", das nächste ~ ist "Tuer", das naechste ~ dann "Jalousie", das letze ~ dann "Kueche". Kueche.Lamellenposition ist aber auch nach dem Ersetzen des Template nicht da.
                          Wenn Du die Adresse ~~.Lammellenposition nimmst, klappt das. Begründung: Das Template wird ersetzt, dabei wird der Root-Knoten ignoriert. Man hat somit unter "Tuer" die beiden Items "Autoblind" und "Lamellenposition". Die erste ~ adressiert "Autoblind", die zweite ~ dann Tuer, dort gibt es das Unteritem "Lamellenposition".

                          Hier hilft häufig, mal in das generierte .conf-File zu schauen das sieht dann ja so aus (im Fehlerfalle):
                          Code:
                          [Eg]
                              [[Kueche]]
                                  [[[Jalousie]]]
                                      [[[[Tuer]]]]
                                          [[[[[Autoblind]]]]]
                                              as_item_lamellenposition = Eg.Kueche.Lamellenposition
                                          [[[[[Lamellenposition]]]]]
                                              type = bool
                          und da sieht man sehr schnell, dass Eg.Kueche.Lamellenposition nicht da ist.

                          Noch 2 Tips:
                          1. wenn Du statt "Autoblind" den namen "autoBlind" nimmst, bekommst Du erweiterte Schema-Prüfung für die Inhalte von autoblind-Plugin und weitere Konsistenzprüfungen innerhalb des autoBlind-Items.
                          2. Wenn Du hinter as_item_* (und auch as_value_*, as_min_*, as_max_* etc.) mit einem Großbuchstaben beginnst, weiß der Konverter, dass es sich um frei definierbare Namen handelt und prüft hier auch die Konsistenz (zu einem as_value_Lamellenposition muss es ein ein as_item_Lamellenposition geben etc).
                          Gruß, Waldemar
                          OpenKNX www.openknx.de

                          Kommentar


                            #43
                            Hallo Waldemar,

                            ja mit "~~.Lamellenposition" passt die Sache.. ich habe in der falschen Richtung gezählt 1EG 2Küche 3Jalousie 4Tuer,.. desshalb 4x~..

                            danke auch noch für die beiden Tipps :-)

                            ich muss mich erst noch in Dein Tool einarbeiten. Da ich jedoch Visual-Studio schon benützt habe, ist es für mich angenehm damit zu arbeiten :-)

                            Gruß Ivan

                            Kommentar


                              #44
                              Klar, Einarbeitung muss sein. Ist (meiner Meinung nach) besser als vi, nano oder Notepad...

                              Ich habe auch nur versucht, die standard-Editoren, die Visual Studio mitbringt, sinnvoll zu nutzen. Irgendwo würde es mich zwar reizen, einen smarthome-Editor für VS2015 zu schreiben, aber mir fehlt die Zeit, mich da einzuarbeiten (die Zeit brauche ich, um mich mit KNX zu beschäftigen). Deswegen ist auch nicht alles perfekt...

                              Ansonsten bin ich dabei, die neuesten Erweiterungen von offline in das Schema für autoblind einzuarbeiten, das wird über Weihnachten fertig sein, dann mach ich auch mal wieder einen push.

                              Zur relativen Adressierung: ~ geht immer eine Stufe nach oben, da ist der Weg eindeutig, wenn Du wieder nach unten willst, musst Du das Item benennen, da es dann ja prinzipiell mehrere gibt. In Deinem Beispiel sind

                              ~~.Lamellenposition
                              ~~~.Tuer.Lamellenposition
                              ~~~~.Jalousie.Tuer.Lamellenposition
                              ...

                              jeweils äquivalent und führen zur gleichen Adresse.

                              Bei Fragen stehe ich gerne zur Verfügung,
                              Gruß, Waldemar
                              OpenKNX www.openknx.de

                              Kommentar


                                #45
                                Hallo Waldemar,

                                hast du vielleicht ein json-Beispiel für das autoBlind Schema.. das bring mich ganz schön ins Schwitzen :-(

                                Gruß Ivan

                                Kommentar

                                Lädt...
                                X