Ankündigung

Einklappen
Keine Ankündigung bisher.

CreateKNXProd, multiply channels, Kaenx-Creator mit ETS6.06

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

    #16
    Bzw es gibt keinen OpenKNXCreator....

    Entweder Kaenx-Creator oder OpenKNXProducer.
    Oder CreateKnxProd aber der wurde eingestellt.
    Dabei kann ich nicht helfen.

    Am besten wäre es das plugin anzupassen, dass die xml richtig raus lässt.
    Alles jetzt auf ne ausgelaufen EXe zu drängen hilft in der Zukunft ja auch nicht
    OpenKNX www.openknx.de | Kaenx-Creator | Dali-GW

    Kommentar


      #17
      Es geht mir doch darum, dass ich das ganze jetzt einmal ausprobieren möchte.
      Und da thesing einen Stand von Plugin und executable hat der zusammen funktioniert, würde ich gerne damit arbeiten.

      Langfristig hast du natürlich recht. Aber ich sehe mich wieder in der Lage die executable, noch das Plugin anzupassen.

      Kommentar


        #18
        Hallo,

        ich habe die Ref-Objekte jetzt hinzugefügt.
        Code:
        <?xml version='1.0' encoding='utf-8'?>
        <KNX xmlns="http://knx.org/xml/project/20" CreatedBy="KNX MT" ToolVersion="5.1.255.16695">
          <ManufacturerData>
            <Manufacturer RefId="M-00FA">
              <Catalog>
                <CatalogSection Id="M-00FA_CS-1" Name="Geräte" Number="1" DefaultLanguage="de">
                  <CatalogItem Id="M-00FA_H-0-0_HP-0000-01-0000_CI-0-1" Name="SmarthomeNG" Number="1" ProductRefId="M-00FA_H-0-0_P-0" Hardware2ProgramRefId="M-00FA_H-0-0_HP-0000-01-0000" DefaultLanguage="de" />
                </CatalogSection>
              </Catalog>
              <ApplicationPrograms>
                <ApplicationProgram Id="M-00FA_A-0000-01-0000" ApplicationNumber="0" ApplicationVersion="1" ProgramType="ApplicationProgram" MaskVersion="MV-57B0" Name="SHNG" LoadProcedureStyle="MergedProcedure" PeiType="0" DefaultLanguage="de" DynamicTableManagement="false" Linkable="false" MinEtsVersion="4.0" ReplacesVersions="1">
                  <Static>
                    <Code>
                      <RelativeSegment Id="M-00FA_A-0000-01-0000_RS-04-00000" Name="Parameters" Offset="0" Size="0" LoadStateMachine="4" />
                    </Code>
                    <ParameterTypes />
                    <Parameters />
                    <ParameterRefs />
                    <ComObjectTable>
                      <ComObject Name="Alarmanlage.Scharf" Number="1" Text="Alarmanlage.Scharf" FunctionText="Alarmanlage.Scharf0" ObjectSize="1 Bit" DatapointType="" Id="M-00FA_A-0000-01-0000_O-1" ReadFlag="Disabled" WriteFlag="Enabled" UpdateFlag="Enabled" CommunicationFlag="Enabled" TransmitFlag="Disabled" ReadOnInitFlag="Enabled" />
                      <ComObject Name="Alarmanlage.Alarm" Number="2" Text="Alarmanlage.Alarm" FunctionText="Alarmanlage.Alarm0" ObjectSize="1 Bit" DatapointType="" Id="M-00FA_A-0000-01-0000_O-2" ReadFlag="Disabled" WriteFlag="Enabled" UpdateFlag="Enabled" CommunicationFlag="Enabled" TransmitFlag="Enabled" ReadOnInitFlag="Disabled" />
                      <ComObject Name="Alarmanlage.TVSimulation" Number="3" Text="Alarmanlage.TVSimulation" FunctionText="Alarmanlage.TVSimulation0" ObjectSize="1 Bit" DatapointType="" Id="M-00FA_A-0000-01-0000_O-3" ReadFlag="Disabled" WriteFlag="Disabled" UpdateFlag="Disabled" CommunicationFlag="Enabled" TransmitFlag="Enabled" ReadOnInitFlag="Disabled" />
                      <ComObject Name="og.Lina.heizung.basis_sollwert_komfort" Number="4" Text="og.Lina.heizung.basis_sollwert_komfort" FunctionText="og.Lina.heizung.basis_sollwert_komfort0" ObjectSize="2 Bytes" DatapointType="" Id="M-00FA_A-0000-01-0000_O-4" ReadFlag="Disabled" WriteFlag="Disabled" UpdateFlag="Disabled" CommunicationFlag="Enabled" TransmitFlag="Enabled" ReadOnInitFlag="Disabled" />
                    </ComObjectTable>
                    
                    ​<ComObjectRefs>
                      <ComObjectRef Id="M-00FA_A-0000-01-0000_O-1_R-1" RefId="M-00FA_A-0000-01-0000_O-1" />​​
        ​              <ComObjectRef Id="M-00FA_A-0000-01-0000_O-2_R-2" RefId="M-00FA_A-0000-01-0000_O-2" />​​
                    </ComObjectRefs>
                    <AddressTable MaxEntries="255" />
                    <AssociationTable MaxEntries="255" />
                    <LoadProcedures>
                      <LoadProcedure MergeId="2">
                        <LdCtrlRelSegment AppliesTo="full" LsmIdx="4" Size="0" Mode="0" Fill="0" />
                      </LoadProcedure>
                      <LoadProcedure MergeId="4">
                        <LdCtrlWriteRelMem ObjIdx="4" Offset="0" Size="0" Verify="true" />
                      </LoadProcedure>
                    </LoadProcedures>
                    <Options />
                  </Static>
                  <Dynamic>
                    <ChannelIndependentBlock>
                      <ComObjectRefRef RefId="M-00FA_A-0000-01-0000_O-1" />
                      <ComObjectRefRef RefId="M-00FA_A-0000-01-0000_O-2" />
        ​            </ChannelIndependentBlock>
                  </Dynamic>          
                  
                  
                </ApplicationProgram>
              </ApplicationPrograms>
              <Hardware>
                <Hardware Id="M-00FA_H-0-0" Name="SmartHomeNG" SerialNumber="0" VersionNumber="0" HasIndividualAddress="true" HasApplicationProgram="true" IsIPEnabled="true">
                  <Products>
                    <Product Id="M-00FA_H-0-0_P-0" Text="SmarthomeNG" OrderNumber="0" IsRailMounted="false" DefaultLanguage="de" />
                  </Products>
                  <Hardware2Programs>
                    <Hardware2Program Id="M-00FA_H-0-0_HP-0000-01-0000" MediumTypes="MT-5">
                      <ApplicationProgramRef RefId="M-00FA_A-0000-01-0000" />
                    </Hardware2Program>
                  </Hardware2Programs>
                </Hardware>
              </Hardware>
            </Manufacturer>
          </ManufacturerData>
        </KNX>
        ​
        Weiter der gleiche Fehler in der ETS mit dem mit OpenKNXProducer erzeugtem knxprod.
        KaenxCreator sagt "the given key 'de' was not present in the dictionary".

        Gruß,
        Hendrik

        Kommentar


          #19
          Hi,

          Zitat von thesing Beitrag anzeigen
          Was wären denn aktuell das "bessere" Programm und aus der xml eine knxprod zu machen, und was müsste man dann in der xml ändern?
          OpenKNXproducer kann per Kommandozeile aus einem gültigen xml eine knxprod machen, nimm aber den neusten (1.8.0 ist aktuell) https://github.com/OpenKNX/OpenKNXproducer/releases.

          Dein Generator müsste neben der <ComObjectTable> auch noch die <ComObjectRefs> generieren und dann nach </Static> ein <Dynamic> mit einem <ChannelIndependentBlock> und darin dann alle <ComObjectRefRef>. An sich straight forward...

          Zitat von henfri Beitrag anzeigen
          ich habe die Ref-Objekte jetzt hinzugefügt.

          Du hast eine falsche Id bei den Refs verwendet:
          Statt

          <ComObjectRefRef RefId="M-00FA_A-0000-01-0000_O-1" />

          muss das

          <ComObjectRefRef RefId="M-00FA_A-0000-01-0000_O-1_R-1" />

          heissen. Und bevor es missverständnisse gibt: Das muss für jedes KO gemacht werden, in dem obigen Beispiel werden es nur 2 KO sein, die erscheinen werden.

          Gruß, Waldemar
          OpenKNX www.openknx.de

          Kommentar


            #20
            Hallo,

            habe es gerade ausprobiert.
            Wenn du de durch de-DE ersetzt funktioniert der import und export mit Kaenx-Creator.
            Anbei mal die knxprod die bei mir raus kam. (einfach in knxprod umbenennen)
            image.png
            ​​thesing Wenn du magst kannst du in dein Plugin auch ein Attribut zusätzlich zur Applikation setzen, dann kann ich beim import auch automatisch Refs und Dynamic erzeugen. Zum Beispiel:
            Code:
            <ApplicationProgram IsSmartHomePlugin="True" Id="M-00FA_A-0000-01-0000" ApplicationNumber="0" ApplicationVersion="1" ...
            Angehängte Dateien
            OpenKNX www.openknx.de | Kaenx-Creator | Dali-GW

            Kommentar


              #21
              Zitat von mumpf Beitrag anzeigen
              <ComObjectRefRef RefId="M-00FA_A-0000-01-0000_O-1_R-1" />
              Zitat von thewhobox Beitrag anzeigen
              de-DE ersetzt
              Das habe ich beides umgesetzt:
              Code:
              <?xml version='1.0' encoding='utf-8'?>
              <KNX xmlns="http://knx.org/xml/project/20" CreatedBy="KNX MT" ToolVersion="5.1.255.16695">
                <ManufacturerData>
                  <Manufacturer RefId="M-00FA">
                    <Catalog>
                      <CatalogSection Id="M-00FA_CS-1" Name="Geräte" Number="1" DefaultLanguage="de">
                        <CatalogItem Id="M-00FA_H-0-0_HP-0000-01-0000_CI-0-1" Name="SmarthomeNG" Number="1" ProductRefId="M-00FA_H-0-0_P-0" Hardware2ProgramRefId="M-00FA_H-0-0_HP-0000-01-0000" DefaultLanguage="de" />
                      </CatalogSection>
                    </Catalog>
                    <ApplicationPrograms>
                      <ApplicationProgram Id="M-00FA_A-0000-01-0000" ApplicationNumber="0" ApplicationVersion="1" ProgramType="ApplicationProgram" MaskVersion="MV-57B0" Name="SHNG" LoadProcedureStyle="MergedProcedure" PeiType="0" DefaultLanguage="de" DynamicTableManagement="false" Linkable="false" MinEtsVersion="4.0" ReplacesVersions="1">
                        <Static>
                          <Code>
                            <RelativeSegment Id="M-00FA_A-0000-01-0000_RS-04-00000" Name="Parameters" Offset="0" Size="0" LoadStateMachine="4" />
                          </Code>
                          <ParameterTypes />
                          <Parameters />
                          <ParameterRefs />
                          <ComObjectTable>
                            <ComObject Name="Alarmanlage.Scharf" Number="1" Text="Alarmanlage.Scharf" FunctionText="Alarmanlage.Scharf0" ObjectSize="1 Bit" DatapointType="" Id="M-00FA_A-0000-01-0000_O-1" ReadFlag="Disabled" WriteFlag="Enabled" UpdateFlag="Enabled" CommunicationFlag="Enabled" TransmitFlag="Disabled" ReadOnInitFlag="Enabled" />
                            <ComObject Name="Alarmanlage.Alarm" Number="2" Text="Alarmanlage.Alarm" FunctionText="Alarmanlage.Alarm0" ObjectSize="1 Bit" DatapointType="" Id="M-00FA_A-0000-01-0000_O-2" ReadFlag="Disabled" WriteFlag="Enabled" UpdateFlag="Enabled" CommunicationFlag="Enabled" TransmitFlag="Enabled" ReadOnInitFlag="Disabled" />
                            <ComObject Name="Alarmanlage.TVSimulation" Number="3" Text="Alarmanlage.TVSimulation" FunctionText="Alarmanlage.TVSimulation0" ObjectSize="1 Bit" DatapointType="" Id="M-00FA_A-0000-01-0000_O-3" ReadFlag="Disabled" WriteFlag="Disabled" UpdateFlag="Disabled" CommunicationFlag="Enabled" TransmitFlag="Enabled" ReadOnInitFlag="Disabled" />
                            <ComObject Name="og.Lina.heizung.basis_sollwert_komfort" Number="4" Text="og.Lina.heizung.basis_sollwert_komfort" FunctionText="og.Lina.heizung.basis_sollwert_komfort0" ObjectSize="2 Bytes" DatapointType="" Id="M-00FA_A-0000-01-0000_O-4" ReadFlag="Disabled" WriteFlag="Disabled" UpdateFlag="Disabled" CommunicationFlag="Enabled" TransmitFlag="Enabled" ReadOnInitFlag="Disabled" />
                          </ComObjectTable>
                          
                          ​<ComObjectRefs>
                            <ComObjectRef Id="M-00FA_A-0000-01-0000_O-1_R-1" RefId="M-00FA_A-0000-01-0000_O-1" />​​
              ​              <ComObjectRef Id="M-00FA_A-0000-01-0000_O-2_R-2" RefId="M-00FA_A-0000-01-0000_O-2" />​​
                          </ComObjectRefs>
                          <AddressTable MaxEntries="255" />
                          <AssociationTable MaxEntries="255" />
                          <LoadProcedures>
                            <LoadProcedure MergeId="2">
                              <LdCtrlRelSegment AppliesTo="full" LsmIdx="4" Size="0" Mode="0" Fill="0" />
                            </LoadProcedure>
                            <LoadProcedure MergeId="4">
                              <LdCtrlWriteRelMem ObjIdx="4" Offset="0" Size="0" Verify="true" />
                            </LoadProcedure>
                          </LoadProcedures>
                          <Options />
                        </Static>
                        <Dynamic>
                          <ChannelIndependentBlock>
                            <ComObjectRefRef RefId="M-00FA_A-0000-01-0000_O-1_R-1" />
                            <ComObjectRefRef RefId="M-00FA_A-0000-01-0000_O-2_R-2" />
              ​            </ChannelIndependentBlock>
                        </Dynamic>          
                        
                        
                      </ApplicationProgram>
                    </ApplicationPrograms>
                    <Hardware>
                      <Hardware Id="M-00FA_H-0-0" Name="SmartHomeNG" SerialNumber="0" VersionNumber="0" HasIndividualAddress="true" HasApplicationProgram="true" IsIPEnabled="true">
                        <Products>
                          <Product Id="M-00FA_H-0-0_P-0" Text="SmarthomeNG" OrderNumber="0" IsRailMounted="false" DefaultLanguage="de-DE" />
                        </Products>
                        <Hardware2Programs>
                          <Hardware2Program Id="M-00FA_H-0-0_HP-0000-01-0000" MediumTypes="MT-5">
                            <ApplicationProgramRef RefId="M-00FA_A-0000-01-0000" />
                          </Hardware2Program>
                        </Hardware2Programs>
                      </Hardware>
                    </Hardware>
                  </Manufacturer>
                </ManufacturerData>
              </KNX>
              ​
              Kaenx-Creator sagt: Object Reference not set to an instance of an object.
              OpenKNXProducer erzeugt damit erfolgeich eine knxprod die auch die KOs zeigt.

              @thesing: Ich habe das knx_ets Plugin angepasst. Es funktioniert aber nicht. Die neuen Einträge werden nicht hinzugefügt. Wird aber eine Kleinigkeit sein, vermute ich.

              Gruß,
              Hendrik
              Angehängte Dateien

              Kommentar


                #22
                Zitat von henfri Beitrag anzeigen
                Kaenx-Creator sagt: Object Reference not set to an instance of an object.
                Ich habe gerade exakt den Ausschnitt von dir genommen und importiert und hatte keinerlei Probleme.
                Sicher, dass du den aktuellen Github stand hast?


                Btw da hast du zwei vertauscht:
                Code:
                newComObjectRef.set("Id", Id)
                newComObjectRef.set("RefId", Id + "_R-" + str(nextGoNr))​
                sollte so sein:
                Code:
                newComObjectRef.set("Id", Id + "_R-" + str(nextGoNr))
                newComObjectRef.set("RefId", Id)​


                Gruß Mike
                OpenKNX www.openknx.de | Kaenx-Creator | Dali-GW

                Kommentar


                  #23
                  Hi Mike,

                  Tatsache, jetzt hat es funktioniert. Mit der gleichen Datei... Vielleicht hatte ich nicht gespeichert, oder so.
                  Knxprod konnte ich jetzt auch mit KaenxCreator erstellen.
                  Die ETS meckert aber: The product has a different hash than the existing product.
                  Ich hatte ja vorher die "gleiche" knxprod aus dem OpenKNXProducer importiert. Den hatte ich aber vorher gelöscht.

                  @thesing: ich habe den von Mike gefundenen Fehler korrigiert (Anhang). Die neuen Einträge werden aber weiterhin nicht in die xml geschrieben.

                  Gruß,
                  Hendrik
                  Angehängte Dateien

                  Kommentar


                    #24
                    Nur das reine Löschen aus dem Katalog reicht nicht.
                    Du musst auch alle Geräte die die Applikation verwenden löschen und dann noch das Projekt "komprimieren".

                    Am einfachsten kannst du aber einfach die Applikationsversion im Kaenx-Creator auf 2 erhöhen. Dann hast V0.2 in der ETS.
                    OpenKNX www.openknx.de | Kaenx-Creator | Dali-GW

                    Kommentar


                      #25
                      Hallo,

                      leider hat beides nicht funktioniert.
                      image.png

                      Ich denke, so hast du es gemeint.
                      Gleicher Fehler in der ETS.
                      Selbst nach dem Löschen der DB aus dem Katalog UND aller Geräte (tatsächlich ist das Projekt nun leer, da es ein Test-Projekt war).
                      Und auch bei einem neuen Projekt bekomme ich weiterhin den Fehler. Hast du noch eine Idee?

                      Gruß,
                      Hendrik

                      Kommentar


                        #26
                        Hallo Hendrik,

                        du musst in der ETS noch unter Problembehebung gehen und die Caches usw löschen dann geht es...

                        Gruß
                        Robert

                        Kommentar


                          #27
                          Danke Robert,
                          das hat geholfen.
                          thesing
                          Die xml aus https://knx-user-forum.de/forum/proj...21#post1834821 habe ich jetzt also mit OpenKNX Producer und KaenxCreator erfolgreich genutzt.
                          Das geänderte Plugin aus https://knx-user-forum.de/forum/proj...38#post1834838 bereitet dies vor, aber die Änderungen schaffen es noch nicht in die Datei... Vielleicht siehtst du den Fehler?

                          Gruß,
                          Hendrik

                          Kommentar


                            #28
                            Ich hab mal neu gepusht. Aber irgentwas stimmt noch nicht ganz.

                            Kommentar


                              #29
                              henfri Jetzt sollte eine Version herauskommen die man problemlos importieren kann.

                              Kommentar


                                #30
                                Hallo,

                                im Commit (diff-ansicht) ist mir folgendes aufgefallen:
                                1) In Zeile 356&357 sind zwei Änderungen die nicht von mir sind. Sind die gewollt?
                                2) In Zeile 438&439 das Gleiche
                                3) In der XML ist beim Suchen und Ersetzen (de -> de-DE) etwas schief gegangen
                                Edit: unsere Beiträge haben sich überschnitten. Ich teste gleich.

                                Gruß,
                                Hendrik

                                ​​​​​​​
                                Zuletzt geändert von henfri; 09.01.2023, 22:18.

                                Kommentar

                                Lädt...
                                X